/*- * ============LICENSE_START======================================================= * SDC * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= */ /** * Created by obarda on 8/24/2016. */ 'use strict'; import {PropertyModel} from "./properties"; import {InputPropertyBase} from "./input-property-base"; import {SchemaPropertyGroupModel} from "./schema-property"; export class InputsGroup { constructor(inputsObj?: InputsGroup) { _.forEach(inputsObj, (inputs:Array, instance) => { this[instance] = []; _.forEach(inputs, (input:InputModel):void => { this[instance].push(new InputModel(input)); }); }); } } export interface IInputModel extends InputPropertyBase { //server data definition:boolean; value:string; componentInstanceName:string; //costom properties isNew:boolean; properties:Array; inputs:Array; filterTerm:string; } export class InputModel implements IInputModel { //server data uniqueId:string; name:string; type:string; password:boolean; required:boolean; definition:boolean; parentUniqueId:string; description:string; componentInstanceName:string; componentInstanceId:string; schema:SchemaPropertyGroupModel; defaultValue:string; value:string; toscaDefaultValue?: string; //costom properties isNew:boolean; isDeleteDisabled:boolean; properties:Array; inputs:Array; isAlreadySelected:boolean; filterTerm:string; constructor(input:InputModel) { if (input) { this.uniqueId = input.uniqueId; this.name = input.name; this.type = input.type; this.description = input.description; this.password = input.password; this.required = input.required; this.definition = input.definition; this.parentUniqueId = input.parentUniqueId; this.description = input.description; this.componentInstanceName = input.componentInstanceName; this.componentInstanceId = input.componentInstanceId; this.schema = input.schema; this.defaultValue = input.defaultValue; this.value = input.value; this.filterTerm = this.name + ' ' + this.description + ' ' + this.type + ' ' + this.componentInstanceName; this.inputs = input.inputs; this.properties = input.properties; this.toscaDefaultValue = input.toscaDefaultValue; } } public toJSON = ():any => { let input = angular.copy(this); input.isNew = undefined; input.isDeleteDisabled = undefined; input.properties = undefined; input.inputs = undefined; input.isAlreadySelected = undefined; input.filterTerm = undefined; return input; }; }