|
|
|
@ -44,6 +44,9 @@ import { |
|
|
|
}) |
|
|
|
export class FilterPredicateValueComponent implements ControlValueAccessor, OnInit { |
|
|
|
|
|
|
|
private readonly inheritFromSources: DynamicValueSourceType[] = [DynamicValueSourceType.CURRENT_CUSTOMER, |
|
|
|
DynamicValueSourceType.CURRENT_DEVICE]; |
|
|
|
|
|
|
|
@Input() disabled: boolean; |
|
|
|
|
|
|
|
@Input() |
|
|
|
@ -72,6 +75,8 @@ export class FilterPredicateValueComponent implements ControlValueAccessor, OnIn |
|
|
|
|
|
|
|
dynamicMode = false; |
|
|
|
|
|
|
|
inheritMode = false; |
|
|
|
|
|
|
|
allow = true; |
|
|
|
|
|
|
|
private propagateChange = null; |
|
|
|
@ -105,7 +110,8 @@ export class FilterPredicateValueComponent implements ControlValueAccessor, OnIn |
|
|
|
dynamicValue: this.fb.group( |
|
|
|
{ |
|
|
|
sourceType: [null], |
|
|
|
sourceAttribute: [null] |
|
|
|
sourceAttribute: [null], |
|
|
|
inherit: [false] |
|
|
|
} |
|
|
|
) |
|
|
|
}); |
|
|
|
@ -114,6 +120,7 @@ export class FilterPredicateValueComponent implements ControlValueAccessor, OnIn |
|
|
|
if (!sourceType) { |
|
|
|
this.filterPredicateValueFormGroup.get('dynamicValue').get('sourceAttribute').patchValue(null, {emitEvent: false}); |
|
|
|
} |
|
|
|
this.updateInheritValue(sourceType); |
|
|
|
} |
|
|
|
); |
|
|
|
this.filterPredicateValueFormGroup.valueChanges.subscribe(() => { |
|
|
|
@ -139,10 +146,13 @@ export class FilterPredicateValueComponent implements ControlValueAccessor, OnIn |
|
|
|
|
|
|
|
writeValue(predicateValue: FilterPredicateValue<string | number | boolean>): void { |
|
|
|
this.filterPredicateValueFormGroup.get('defaultValue').patchValue(predicateValue.defaultValue, {emitEvent: false}); |
|
|
|
this.filterPredicateValueFormGroup.get('dynamicValue').get('sourceType').patchValue(predicateValue.dynamicValue ? |
|
|
|
this.filterPredicateValueFormGroup.get('dynamicValue.sourceType').patchValue(predicateValue.dynamicValue ? |
|
|
|
predicateValue.dynamicValue.sourceType : null, {emitEvent: false}); |
|
|
|
this.filterPredicateValueFormGroup.get('dynamicValue').get('sourceAttribute').patchValue(predicateValue.dynamicValue ? |
|
|
|
this.filterPredicateValueFormGroup.get('dynamicValue.inherit').patchValue(predicateValue.dynamicValue ? |
|
|
|
predicateValue.dynamicValue.inherit : false, {emitEvent: false}); |
|
|
|
this.filterPredicateValueFormGroup.get('dynamicValue.sourceAttribute').patchValue(predicateValue.dynamicValue ? |
|
|
|
predicateValue.dynamicValue.sourceAttribute : null, {emitEvent: false}); |
|
|
|
this.updateInheritValue(predicateValue?.dynamicValue?.sourceType); |
|
|
|
} |
|
|
|
|
|
|
|
private updateModel() { |
|
|
|
@ -158,4 +168,12 @@ export class FilterPredicateValueComponent implements ControlValueAccessor, OnIn |
|
|
|
this.propagateChange(predicateValue); |
|
|
|
} |
|
|
|
|
|
|
|
private updateInheritValue(sourceType: DynamicValueSourceType) { |
|
|
|
if (this.inheritFromSources.includes(sourceType)) { |
|
|
|
this.inheritMode = true; |
|
|
|
} else { |
|
|
|
this.filterPredicateValueFormGroup.get('dynamicValue.inherit').patchValue(false, {emitEvent: false}); |
|
|
|
this.inheritMode = false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|