summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/models/properties-inputs/input-fe-model.ts
blob: 4f3417186c3aee17391673dcaa305ac09b31808c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { SchemaPropertyGroupModel, SchemaProperty } from "../aschema-property";
import { PropertyBEModel } from "../../models";
import {PROPERTY_DATA} from "../../utils/constants";
import {InputBEModel} from "./input-be-model";

export class InputFEModel extends InputBEModel {
    isSimpleType: boolean;
    isDataType: boolean;
    instanceName: string;
    instanceId: string;
    propertyName: string;


    constructor(input?: InputBEModel) {
        super(input);
        if (input) {
            this.isSimpleType = PROPERTY_DATA.SIMPLE_TYPES.indexOf(this.type) > -1;
            this.isDataType = PROPERTY_DATA.TYPES.indexOf(this.type) == -1;

            let propNameIndex:number = this.name.indexOf('_');
            this.instanceName = this.name.substring(0, propNameIndex);

            if(input.properties && input.properties.length){
                this.instanceId = input.properties[0].componentInstanceId;
                this.propertyName = input.properties[0].name;
            }else if(input.inputs && input.inputs.length){
                this.instanceId = input.inputs[0].componentInstanceId;
                this.propertyName = input.inputs[0].name;
            }else{
                if (input.inputPath && input.inputPath.indexOf('#') > -1) { 
                    this.propertyName = input.inputPath.substring(0, input.inputPath.indexOf('#'))
                } else {
                    this.inputPath = undefined; //input path may be populated even if its a parent - ensure its empty
                    this.propertyName = this.name.substring(propNameIndex + 1);
                }
            }
        }
    }



    public toJSON = (): any => {
    };

}