import {InstanceFeDetails} from "../../../../../../../models/instance-fe-details";
import {ToscaTypeHelper} from "app/utils/tosca-type-helper";
import {CustomToscaFunction} from "../../../../../../../models/default-custom-functions";
+import {SubPropertyToscaFunction} from "../../../../../../../models/sub-property-tosca-function";
@Component({
selector: 'app-input-list-item',
@Input() isMapChild: boolean = false;
@Input() showToscaFunctionOption: boolean = false;
@Input() listIndex: number;
- @Input() subPropertyToscaFunctions: SubPropertyToscaFunctions[];
+ @Input() subPropertyToscaFunctions: SubPropertyToscaFunction[];
@Input() isViewOnly: boolean;
@Input() allowDeletion: boolean = false;
@Input() toscaFunction: ToscaFunction;
}
}
+ ngOnChanges(): void {
+ if (this.isToscaFunction) {
+ this.property.toscaFunction = this.toscaFunction;
+ this.valueObjRef = this.toscaFunction.value;
+ } else {
+ this.property.toscaFunction = undefined;
+ }
+ }
+
private initEmptyPropertyInValueObjRef(property: PropertyBEModel) {
if (this.valueObjRef[property.name] == undefined) {
if (this.isTypeComplex(property.type) || this.isTypeMap(property.type)) {
getToscaFunction(key: any): any {
if (this.subPropertyToscaFunctions) {
for (let subPropertyToscaFunction of this.subPropertyToscaFunctions) {
- let found = subPropertyToscaFunction.subPropertyPath.find(value => value === key);
+ let found = subPropertyToscaFunction.subPropertyPath ? subPropertyToscaFunction.subPropertyPath.find(value => value === key) : false;
if (found) {
return subPropertyToscaFunction.toscaFunction;
}
}
}
- if ((key && this.valueObjRef[key] && this.valueObjRef[key].type)) {
- const type = this.valueObjRef[key].type;
- if (type in ToscaFunctionType) {
- return <ToscaFunction> this.valueObjRef[key];
- }
- }
return undefined;
}
}
}
-
-export interface SubPropertyToscaFunctions {
- subPropertyPath: string[];
- toscaFunction: ToscaFunction;
-}