3 ~ ============LICENSE_START=======================================================
4 ~ Copyright (C) 2022 Nordix Foundation.
5 ~ ================================================================================
6 ~ Licensed under the Apache License, Version 2.0 (the "License");
7 ~ you may not use this file except in compliance with the License.
8 ~ You may obtain a copy of the License at
10 ~ http://www.apache.org/licenses/LICENSE-2.0
12 ~ Unless required by applicable law or agreed to in writing, software
13 ~ distributed under the License is distributed on an "AS IS" BASIS,
14 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 ~ See the License for the specific language governing permissions and
16 ~ limitations under the License.
18 ~ SPDX-License-Identifier: Apache-2.0
19 ~ ============LICENSE_END=========================================================
22 <li [class.root]="isRoot()">
23 <span class="input-info">
24 <em class="sprite-new round-expand-icon" [class.open]="isExpanded" (click)="expandAndCollapse()"></em>
25 <label class="input-label">{{name}}:</label> <em data-tests-id="input-type">{{resolveType()}}</em>
26 <span class="sprite-new delete-btn" *ngIf="showInputDelete()" (click)="onInputDelete()"></span>
27 <span class="sprite-new delete-btn" *ngIf="showListItemDelete()" (click)="onChildListItemDelete()"></span>
30 <ng-container *ngIf="isExpanded && showToscaFunctionOption">
32 <fieldset [disabled]="isViewOnly" >
33 <input type="radio" name="hasGetFunctionValue"
34 [(ngModel)]="isToscaFunction"
36 (change)="onValueTypeChange()"/> Value
37 <input type="radio" name="hasGetFunctionValue"
38 [(ngModel)]="isToscaFunction"
39 [value]="true"/> {{'TOSCA_FUNCTION_LABEL' | translate}}
42 <div *ngIf="isToscaFunction">
45 <div *ngIf="componentInstanceMap">
49 [componentInstanceMap]="componentInstanceMap"
50 [customToscaFunctions]="customToscaFunctions"
51 (onValidityChange)="onToscaFunctionValidityChange($event)">
54 <div *ngIf="!componentInstanceMap">
58 [customToscaFunctions]="customToscaFunctions"
59 (onValidityChange)="onToscaFunctionValidityChange($event)">
67 <div *ngIf="!isToscaFunction">
68 <ng-container *ngIf="isTypeSimple(type.name)">
69 <ul *ngIf="isExpanded">
70 <li class="input-value">
71 <ng-container *ngIf="isViewOnly">
72 {{valueObjRef}}<em class="empty-value" *ngIf="valueObjRef !== false && !valueObjRef">{{'GENERAL_LABEL_EMPTY' | translate | lowercase}}</em>
74 <input *ngIf="!isViewOnly && isTypeLiteral(type.name)" type="text" name="value"
75 [(ngModel)]="valueObjRef" (ngModelChange)="onValueChange($event)"/>
76 <input *ngIf="!isViewOnly && isTypeNumber(type.name)" type="number"
77 [(ngModel)]="valueObjRef" (ngModelChange)="onValueChange($event)"/>
78 <select *ngIf="!isViewOnly && isTypeBoolean(type.name)" [(ngModel)]="valueObjRef" (ngModelChange)="onValueChange($event)">
79 <option [value]="true">{{'GENERAL_LABEL_TRUE' | translate}}</option>
80 <option [value]="false">{{'GENERAL_LABEL_FALSE' | translate}}</option>
85 <ng-container *ngIf="isTypeRange(type.name)">
86 <ul *ngIf="isExpanded">
87 <ng-container *ngFor="let value1 of [0, 1]; index as i">
88 <li class="input-value">
89 <ng-container *ngIf="isViewOnly">
92 <input type="text" *ngIf="!isViewOnly"
93 [(ngModel)]="valueObjRef[i]" (ngModelChange)="onListValueChange()" />
98 <ng-container *ngIf="isTypeComplex(type.name)" >
99 <ul *ngIf="isExpanded">
100 <ng-container *ngFor="let property of this.type.properties">
102 [name]="property.name"
103 [type]="getDataType(property.type)"
104 [dataTypeMap]="dataTypeMap"
105 [valueObjRef]="valueObjRef ? valueObjRef[property.name] : undefined"
106 [schema]="property.schema"
107 [toscaFunction]="getToscaFunction(property.name)"
108 [nestingLevel]="nestingLevel + 1"
109 [isViewOnly]="isViewOnly"
110 [showToscaFunctionOption]="showToscaFunctionOption"
111 [allowDeletion]="allowDeletion"
112 [componentInstanceMap]="componentInstanceMap"
113 (onValueChange)="onPropertyValueChange($event)">
114 </app-input-list-item>
118 <ng-container *ngIf="isTypeList(type.name)">
119 <ul *ngIf="isExpanded">
120 <ng-container *ngFor="let value1 of valueObjRef; index as i; trackBy: trackByIndex">
121 <li class="input-value" *ngIf="isTypeSimple(schema.property.type)">
122 <ng-container *ngIf="isViewOnly">
125 <input type="text" *ngIf="!isViewOnly"
126 [(ngModel)]="valueObjRef[i]" (ngModelChange)="onListValueChange()" />
127 <span class="sprite-new delete-btn" *ngIf="!isViewOnly" (click)="onListItemDelete(i)"></span>
129 <app-input-list-item *ngIf="!isTypeSimple(schema.property.type)"
131 [type]="getDataType(schema.property.type)"
132 [dataTypeMap]="dataTypeMap"
133 [valueObjRef]="valueObjRef[i]"
134 [schema]="buildSchemaGroupProperty()"
135 [toscaFunction]="getToscaFunction(i)"
136 [nestingLevel]="nestingLevel + 1"
139 [isViewOnly]="isViewOnly"
140 [allowDeletion]="allowDeletion"
141 [componentInstanceMap]="componentInstanceMap"
142 (onValueChange)="onPropertyValueChange($event)"
143 (onChildListItemDelete)="onListItemDelete($event)">
144 </app-input-list-item>
146 <li class="input-value" *ngIf="!isViewOnly">
147 <a class="add-btn" (click)="addListElement()">{{'INPUT_LIST_ADD_LIST_ENTRY' | translate}}</a>
151 <ng-container *ngIf="isTypeMap(type.name)">
152 <ul *ngIf="isExpanded">
153 <ng-container *ngFor="let key of getObjectEntries(valueObjRef); index as i">
154 <li class="input-value" *ngIf="isTypeSimple(schema.property.type)">
155 <label class="input-label">{{key}}:</label>
156 <ng-container *ngIf="isViewOnly">
159 <input type="text" *ngIf="!isViewOnly" [(ngModel)]="valueObjRef[key]" (ngModelChange)="onMapValueChange()"/>
160 <span class="sprite-new delete-btn" *ngIf="!isViewOnly" (click)="onMapKeyDelete(key)"></span>
163 *ngIf="!isTypeSimple(schema.property.type)"
165 [type]="getDataType(schema.property.type)"
166 [dataTypeMap]="dataTypeMap"
167 [valueObjRef]="valueObjRef[key]"
168 [schema]="buildSchemaGroupProperty()"
169 [toscaFunction]="getToscaFunction(key)"
171 [nestingLevel]="nestingLevel + 1"
172 [isViewOnly]="isViewOnly"
173 [allowDeletion]="allowDeletion"
174 [componentInstanceMap]="componentInstanceMap"
175 (onValueChange)="onPropertyValueChange($event)"
176 (onDelete)="onMapKeyDelete($event)">
177 </app-input-list-item>
179 <li class="input-value" *ngIf="!isViewOnly">
180 <input type="text" [(ngModel)]="mapEntryName" placeholder="{{ 'INPUT_LIST_MAP_KEY_PLACEHOLDER' | translate }}"/>
181 <a class="add-btn" (click)="addMapEntry()">{{ 'INPUT_LIST_ADD_MAP_ENTRY' | translate }}</a>