|
|
|
@ -25,7 +25,8 @@ import { |
|
|
|
ArgumentType, |
|
|
|
ArgumentTypeTranslations, |
|
|
|
CalculatedFieldArgumentValue, |
|
|
|
CalculatedFieldType |
|
|
|
CalculatedFieldType, |
|
|
|
getCalculatedFieldCurrentEntityFilter |
|
|
|
} from '@shared/models/calculated-field.models'; |
|
|
|
import { debounceTime, distinctUntilChanged, filter } from 'rxjs/operators'; |
|
|
|
import { EntityType } from '@shared/models/entity-type.models'; |
|
|
|
@ -49,6 +50,7 @@ export class CalculatedFieldArgumentPanelComponent implements OnInit { |
|
|
|
@Input() argument: CalculatedFieldArgumentValue; |
|
|
|
@Input() entityId: EntityId; |
|
|
|
@Input() tenantId: string; |
|
|
|
@Input() entityName: string; |
|
|
|
@Input() calculatedFieldType: CalculatedFieldType; |
|
|
|
|
|
|
|
argumentsDataApplied = output<{ value: CalculatedFieldArgumentValue, index: number }>(); |
|
|
|
@ -83,6 +85,8 @@ export class CalculatedFieldArgumentPanelComponent implements OnInit { |
|
|
|
readonly ArgumentEntityType = ArgumentEntityType; |
|
|
|
readonly ArgumentEntityTypeParamsMap = ArgumentEntityTypeParamsMap; |
|
|
|
|
|
|
|
private currentEntityFilter: EntityFilter; |
|
|
|
|
|
|
|
constructor( |
|
|
|
private fb: FormBuilder, |
|
|
|
private cd: ChangeDetectorRef, |
|
|
|
@ -107,6 +111,7 @@ export class CalculatedFieldArgumentPanelComponent implements OnInit { |
|
|
|
|
|
|
|
ngOnInit(): void { |
|
|
|
this.argumentFormGroup.patchValue(this.argument, {emitEvent: false}); |
|
|
|
this.currentEntityFilter = getCalculatedFieldCurrentEntityFilter(this.entityName, this.entityId); |
|
|
|
this.updateEntityFilter(this.argument.refEntityId?.entityType, true); |
|
|
|
this.toggleByEntityKeyType(this.argument.refEntityKey?.type); |
|
|
|
this.setInitialEntityKeyType(); |
|
|
|
@ -138,27 +143,30 @@ export class CalculatedFieldArgumentPanelComponent implements OnInit { |
|
|
|
} |
|
|
|
|
|
|
|
private updateEntityFilter(entityType: ArgumentEntityType = ArgumentEntityType.Current, onInit = false): void { |
|
|
|
let entityId: EntityId; |
|
|
|
let entityFilter: EntityFilter; |
|
|
|
switch (entityType) { |
|
|
|
case ArgumentEntityType.Current: |
|
|
|
entityId = this.entityId |
|
|
|
entityFilter = this.currentEntityFilter; |
|
|
|
break; |
|
|
|
case ArgumentEntityType.Tenant: |
|
|
|
entityId = { |
|
|
|
id: this.tenantId, |
|
|
|
entityType: EntityType.TENANT |
|
|
|
entityFilter = { |
|
|
|
type: AliasFilterType.singleEntity, |
|
|
|
singleEntity: { |
|
|
|
id: this.tenantId, |
|
|
|
entityType: EntityType.TENANT |
|
|
|
}, |
|
|
|
}; |
|
|
|
break; |
|
|
|
default: |
|
|
|
entityId = this.argumentFormGroup.get('refEntityId').value as unknown as EntityId; |
|
|
|
entityFilter = { |
|
|
|
type: AliasFilterType.singleEntity, |
|
|
|
singleEntity: this.argumentFormGroup.get('refEntityId').value as unknown as EntityId, |
|
|
|
}; |
|
|
|
} |
|
|
|
if (!onInit) { |
|
|
|
this.argumentFormGroup.get('refEntityKey').get('key').setValue(''); |
|
|
|
} |
|
|
|
this.entityFilter = { |
|
|
|
type: AliasFilterType.singleEntity, |
|
|
|
singleEntity: entityId, |
|
|
|
}; |
|
|
|
this.entityFilter = entityFilter; |
|
|
|
this.cd.markForCheck(); |
|
|
|
} |
|
|
|
|
|
|
|
|