@openziti/ziti-console-lib 0.6.4 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -6
- package/assets/styles/global.scss +45 -0
- package/esm2022/lib/features/data-table/data-table.component.mjs +2 -2
- package/esm2022/lib/features/dynamic-widgets/number/number-input.component.mjs +27 -6
- package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +1 -1
- package/esm2022/lib/features/dynamic-widgets/selector/selector-input.component.mjs +88 -33
- package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +27 -6
- package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +9 -3
- package/esm2022/lib/services/schema.service.mjs +2 -2
- package/esm2022/lib/services/settings-service.class.mjs +2 -2
- package/fesm2022/openziti-ziti-console-lib.mjs +149 -49
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/dynamic-widgets/number/number-input.component.d.ts +2 -1
- package/lib/features/dynamic-widgets/number/number-input.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts +7 -2
- package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts +2 -1
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +1 -1
- package/lib/services/settings-service.class.d.ts +1 -1
- package/package.json +2 -2
|
@@ -4,6 +4,7 @@ import { debounce } from "lodash";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
7
|
+
import * as i3 from "@angular/material/tooltip";
|
|
7
8
|
class NumberInputComponent {
|
|
8
9
|
constructor() {
|
|
9
10
|
this._fieldName = 'Field Label';
|
|
@@ -31,32 +32,52 @@ class NumberInputComponent {
|
|
|
31
32
|
}, 500)();
|
|
32
33
|
}
|
|
33
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NumberInputComponent, selector: "lib-number-input", inputs: { fieldName: "fieldName", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", labelColor: "labelColor", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NumberInputComponent, selector: "lib-number-input", inputs: { fieldName: "fieldName", helpText: "helpText", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", labelColor: "labelColor", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
35
36
|
<div [ngClass]="fieldClass + (!_isValid ? 'invalid' : '')" class="{{!_isValid ? 'invalid' : ''}} number-input-container">
|
|
36
|
-
<
|
|
37
|
+
<div class="label-container">
|
|
38
|
+
<label for="schema_{{parentage?parentage+'_':''}}{{_idName}}" [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
39
|
+
<div
|
|
40
|
+
*ngIf="helpText"
|
|
41
|
+
class="form-field-info infoicon"
|
|
42
|
+
matTooltip="{{helpText}}"
|
|
43
|
+
matTooltipPosition="above"
|
|
44
|
+
matTooltipClass="wide-tooltip"
|
|
45
|
+
></div>
|
|
46
|
+
</div>
|
|
37
47
|
<input id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
38
48
|
type="number" class="jsonEntry"
|
|
39
49
|
[ngClass]="{'error': error}"
|
|
40
50
|
[placeholder]="placeholder" [(ngModel)]="fieldValue" (paste)="onKeyup()" (keyup)="onKeyup()"/>
|
|
41
51
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
42
52
|
</div>
|
|
43
|
-
`, isInline: true, styles: [".number-input-container{margin:var(--marginSmall) 0}.number-input-container label{margin-bottom:0;margin-top:0}.number-input-container input.error{border-color:red}.number-input-container div.error{color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
53
|
+
`, isInline: true, styles: [".number-input-container{margin:var(--marginSmall) 0}.number-input-container label{margin-bottom:0;margin-top:0}.number-input-container input.error{border-color:red}.number-input-container div.error{color:red}.label-container{display:flex;gap:5px;margin-bottom:var(--marginSmall);margin-top:var(--marginMedium)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
|
|
44
54
|
}
|
|
45
55
|
export { NumberInputComponent };
|
|
46
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
47
57
|
type: Component,
|
|
48
58
|
args: [{ selector: 'lib-number-input', template: `
|
|
49
59
|
<div [ngClass]="fieldClass + (!_isValid ? 'invalid' : '')" class="{{!_isValid ? 'invalid' : ''}} number-input-container">
|
|
50
|
-
<
|
|
60
|
+
<div class="label-container">
|
|
61
|
+
<label for="schema_{{parentage?parentage+'_':''}}{{_idName}}" [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
62
|
+
<div
|
|
63
|
+
*ngIf="helpText"
|
|
64
|
+
class="form-field-info infoicon"
|
|
65
|
+
matTooltip="{{helpText}}"
|
|
66
|
+
matTooltipPosition="above"
|
|
67
|
+
matTooltipClass="wide-tooltip"
|
|
68
|
+
></div>
|
|
69
|
+
</div>
|
|
51
70
|
<input id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
52
71
|
type="number" class="jsonEntry"
|
|
53
72
|
[ngClass]="{'error': error}"
|
|
54
73
|
[placeholder]="placeholder" [(ngModel)]="fieldValue" (paste)="onKeyup()" (keyup)="onKeyup()"/>
|
|
55
74
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
56
75
|
</div>
|
|
57
|
-
`, styles: [".number-input-container{margin:var(--marginSmall) 0}.number-input-container label{margin-bottom:0;margin-top:0}.number-input-container input.error{border-color:red}.number-input-container div.error{color:red}\n"] }]
|
|
76
|
+
`, styles: [".number-input-container{margin:var(--marginSmall) 0}.number-input-container label{margin-bottom:0;margin-top:0}.number-input-container input.error{border-color:red}.number-input-container div.error{color:red}.label-container{display:flex;gap:5px;margin-bottom:var(--marginSmall);margin-top:var(--marginMedium)}\n"] }]
|
|
58
77
|
}], propDecorators: { fieldName: [{
|
|
59
78
|
type: Input
|
|
79
|
+
}], helpText: [{
|
|
80
|
+
type: Input
|
|
60
81
|
}], fieldValue: [{
|
|
61
82
|
type: Input
|
|
62
83
|
}], placeholder: [{
|
|
@@ -72,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
72
93
|
}], fieldValueChange: [{
|
|
73
94
|
type: Output
|
|
74
95
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvbnVtYmVyL251bWJlci1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7O0FBRWhDLE1BdUJhLG9CQUFvQjtJQXZCakM7UUF3QkUsZUFBVSxHQUFHLGFBQWEsQ0FBQztRQUMzQixZQUFPLEdBQUcsV0FBVyxDQUFDO1FBT2IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsY0FBUyxHQUFhLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNWLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ25FLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFFaEQsYUFBUSxHQUFHLElBQUksQ0FBQztLQVdqQjtJQXpCQyxJQUFhLFNBQVMsQ0FBQyxJQUFZO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQVlNLFVBQVUsQ0FBQyxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNaLENBQUM7K0dBM0JVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHVUQXJCckI7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDs7U0FHVSxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkF2QmhDLFNBQVM7K0JBQ0Usa0JBQWtCLFlBQ2xCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQ7OEJBTVksU0FBUztzQkFBckIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2RlYm91bmNlfSBmcm9tIFwibG9kYXNoXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1udW1iZXItaW5wdXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW25nQ2xhc3NdPVwiZmllbGRDbGFzcyArICghX2lzVmFsaWQgPyAnaW52YWxpZCcgOiAnJylcIiBjbGFzcz1cInt7IV9pc1ZhbGlkID8gJ2ludmFsaWQnIDogJyd9fSBudW1iZXItaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJzY2hlbWFfe3twYXJlbnRhZ2U/cGFyZW50YWdlKydfJzonJ319e3tfaWROYW1lfX1cIiAgW25nU3R5bGVdPVwieydjb2xvcic6IGxhYmVsQ29sb3J9XCI+e3tfZmllbGROYW1lfX08L2xhYmVsPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZC1pbmZvIGluZm9pY29uXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7e2hlbHBUZXh0fX1cIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwid2lkZS10b29sdGlwXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8aW5wdXQgaWQ9XCJzY2hlbWFfe3twYXJlbnRhZ2U/cGFyZW50YWdlKydfJzonJ319e3tfaWROYW1lfX1cIlxuICAgICAgICAgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwianNvbkVudHJ5XCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Vycm9yJzogZXJyb3J9XCJcbiAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZVwiIChwYXN0ZSk9XCJvbktleXVwKClcIiAoa2V5dXApPVwib25LZXl1cCgpXCIvPlxuICAgICAgPGRpdiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvclwiPnt7ZXJyb3J9fTwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnbnVtYmVyLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXRDb21wb25lbnQge1xuICBfZmllbGROYW1lID0gJ0ZpZWxkIExhYmVsJztcbiAgX2lkTmFtZSA9ICdmaWVsZG5hbWUnO1xuICBASW5wdXQoKSBzZXQgZmllbGROYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ZpZWxkTmFtZSA9IG5hbWU7XG4gICAgdGhpcy5faWROYW1lID0gbmFtZS5yZXBsYWNlKC9cXHMvZywgJycpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgQElucHV0KCkgaGVscFRleHQ7XG4gIEBJbnB1dCgpIGZpZWxkVmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgcGFyZW50YWdlOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBsYWJlbENvbG9yID0gJyMwMDAwMDAnO1xuICBASW5wdXQoKSBmaWVsZENsYXNzID0gJyc7XG4gIEBJbnB1dCgpIGVycm9yID0gJyc7XG4gIEBPdXRwdXQoKSBmaWVsZFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJ8IHVuZGVmaW5lZD4oKTtcbiAgdmFsdWVDaGFuZ2UgPSBuZXcgU3ViamVjdDxudW1iZXJ8IHVuZGVmaW5lZD4gKCk7XG5cbiAgX2lzVmFsaWQgPSB0cnVlO1xuICBwdWJsaWMgc2V0SXNWYWxpZChpc1ZhbGlkKSB7XG4gICAgdGhpcy5faXNWYWxpZCA9IGlzVmFsaWQ7XG4gIH1cblxuICBvbktleXVwKCkge1xuICAgIGRlYm91bmNlKCgpID0+IHtcbiAgICAgIHRoaXMuZmllbGRWYWx1ZUNoYW5nZS5lbWl0KHRoaXMuZmllbGRWYWx1ZSk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy5maWVsZFZhbHVlKTtcbiAgICB9LCA1MDApKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -146,7 +146,7 @@ class ProtocolAddressPortInputComponent {
|
|
|
146
146
|
this.hostname = data.hostname;
|
|
147
147
|
}
|
|
148
148
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProtocolAddressPortInputComponent, deps: [{ token: i1.ValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProtocolAddressPortInputComponent, selector: "lib-protocol-address-port-input", inputs: { protocolList: "protocolList", showProtocol: "showProtocol", showAddress: "showAddress", showHostName: "showHostName", showPort: "showPort", disableProtocol: "disableProtocol", disableAddress: "disableAddress", disableHostName: "disableHostName", disablePort: "disablePort", protocol: "protocol", address: "address", hostname: "hostname", port: "port", parentage: "parentage", labelColor: "labelColor", labelPrefix: "labelPrefix", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange", portChange: "portChange", addressChange: "addressChange", hostnameChange: "hostnameChange", protocolChange: "protocolChange" }, ngImport: i0, template: "<div class=\"grid {{className}}\">\n <div *ngIf=\"showProtocol\" [ngClass]=\"{disabled: disableProtocol, invalid: errors['protocol']}\">\n <lib-selector-input [fieldName]=\"protocolFieldName\"\n [(fieldValue)]=\"protocol\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"undefined\"\n [valueList]=\"['tcp', 'udp']\"\n (fieldValueChange)=\"update()\"\n ></lib-selector-input>\n </div>\n <div *ngIf=\"showAddress\" [ngClass]=\"{disabled: disableAddress, invalid: errors['address']}\">\n <lib-string-input [fieldName]=\"addressFieldName\"\n [(fieldValue)]=\"address\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'host.name'\"\n (fieldValueChange)=\"update()\"\n ></lib-string-input>\n </div>\n <div *ngIf=\"showHostName\" [ngClass]=\"{disabled: disableHostName, invalid: errors['hostname']}\">\n <lib-string-input [fieldName]=\"hostnameFieldName\"\n [(fieldValue)]=\"hostname\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'host.name'\"\n (fieldValueChange)=\"update()\"\n ></lib-string-input>\n </div>\n <div *ngIf=\"showPort\" [ngClass]=\"{disabled: disablePort, invalid: errors['port']}\">\n <lib-number-input [fieldName]=\"portFieldName\"\n [(fieldValue)]=\"port\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'0'\"\n (fieldValueChange)=\"update()\"\n ></lib-number-input>\n </div>\n</div>\n", styles: [".grid{display:grid;grid-template-columns:auto;grid-gap:10px}.grid.addressFull{grid-template-columns:75px auto 75px}.grid.addressFull .disabled{opacity:.5;pointer-events:none}.grid.address-only{grid-template-columns:auto}.host-name-port{grid-template-columns:auto 75px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.StringInputComponent, selector: "lib-string-input", inputs: ["fieldName", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }, { kind: "component", type: i4.NumberInputComponent, selector: "lib-number-input", inputs: ["fieldName", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }, { kind: "component", type: i5.SelectorInputComponent, selector: "lib-selector-input", inputs: ["fieldName", "fieldValue", "placeholder", "parentage", "valueList", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }] }); }
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProtocolAddressPortInputComponent, selector: "lib-protocol-address-port-input", inputs: { protocolList: "protocolList", showProtocol: "showProtocol", showAddress: "showAddress", showHostName: "showHostName", showPort: "showPort", disableProtocol: "disableProtocol", disableAddress: "disableAddress", disableHostName: "disableHostName", disablePort: "disablePort", protocol: "protocol", address: "address", hostname: "hostname", port: "port", parentage: "parentage", labelColor: "labelColor", labelPrefix: "labelPrefix", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange", portChange: "portChange", addressChange: "addressChange", hostnameChange: "hostnameChange", protocolChange: "protocolChange" }, ngImport: i0, template: "<div class=\"grid {{className}}\">\n <div *ngIf=\"showProtocol\" [ngClass]=\"{disabled: disableProtocol, invalid: errors['protocol']}\">\n <lib-selector-input [fieldName]=\"protocolFieldName\"\n [(fieldValue)]=\"protocol\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"undefined\"\n [valueList]=\"['tcp', 'udp']\"\n (fieldValueChange)=\"update()\"\n ></lib-selector-input>\n </div>\n <div *ngIf=\"showAddress\" [ngClass]=\"{disabled: disableAddress, invalid: errors['address']}\">\n <lib-string-input [fieldName]=\"addressFieldName\"\n [(fieldValue)]=\"address\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'host.name'\"\n (fieldValueChange)=\"update()\"\n ></lib-string-input>\n </div>\n <div *ngIf=\"showHostName\" [ngClass]=\"{disabled: disableHostName, invalid: errors['hostname']}\">\n <lib-string-input [fieldName]=\"hostnameFieldName\"\n [(fieldValue)]=\"hostname\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'host.name'\"\n (fieldValueChange)=\"update()\"\n ></lib-string-input>\n </div>\n <div *ngIf=\"showPort\" [ngClass]=\"{disabled: disablePort, invalid: errors['port']}\">\n <lib-number-input [fieldName]=\"portFieldName\"\n [(fieldValue)]=\"port\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'0'\"\n (fieldValueChange)=\"update()\"\n ></lib-number-input>\n </div>\n</div>\n", styles: [".grid{display:grid;grid-template-columns:auto;grid-gap:10px}.grid.addressFull{grid-template-columns:75px auto 75px}.grid.addressFull .disabled{opacity:.5;pointer-events:none}.grid.address-only{grid-template-columns:auto}.host-name-port{grid-template-columns:auto 75px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.StringInputComponent, selector: "lib-string-input", inputs: ["fieldName", "helpText", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }, { kind: "component", type: i4.NumberInputComponent, selector: "lib-number-input", inputs: ["fieldName", "helpText", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }, { kind: "component", type: i5.SelectorInputComponent, selector: "lib-selector-input", inputs: ["fieldName", "fieldValue", "helpText", "placeholder", "parentage", "valueList", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }] }); }
|
|
150
150
|
}
|
|
151
151
|
export { ProtocolAddressPortInputComponent };
|
|
152
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProtocolAddressPortInputComponent, decorators: [{
|
|
@@ -4,13 +4,14 @@ import { debounce, defer } from "lodash";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
7
|
+
import * as i3 from "@angular/material/tooltip";
|
|
7
8
|
class SelectorInputComponent {
|
|
8
9
|
constructor() {
|
|
9
10
|
this._fieldName = 'Field Label';
|
|
10
11
|
this._idName = 'fieldname';
|
|
11
12
|
this._valueList = [];
|
|
12
13
|
this.listIsObject = false;
|
|
13
|
-
this.
|
|
14
|
+
this.hideSelect = false;
|
|
14
15
|
this.placeholder = '';
|
|
15
16
|
this.parentage = [];
|
|
16
17
|
this.labelColor = '#000000';
|
|
@@ -24,6 +25,12 @@ class SelectorInputComponent {
|
|
|
24
25
|
this._fieldName = name;
|
|
25
26
|
this._idName = name.replace(/\s/g, '').toLowerCase();
|
|
26
27
|
}
|
|
28
|
+
set fieldValue(val) {
|
|
29
|
+
this._fieldValue = val;
|
|
30
|
+
}
|
|
31
|
+
get fieldValue() {
|
|
32
|
+
return this._fieldValue;
|
|
33
|
+
}
|
|
27
34
|
set valueList(list) {
|
|
28
35
|
this.listIsObject = list?.length > 0 && typeof list[0] !== 'string';
|
|
29
36
|
this._valueList = list;
|
|
@@ -34,10 +41,7 @@ class SelectorInputComponent {
|
|
|
34
41
|
}
|
|
35
42
|
});
|
|
36
43
|
valToSet = valToSet || this.fieldValue;
|
|
37
|
-
this.
|
|
38
|
-
defer(() => {
|
|
39
|
-
this.fieldValue = valToSet;
|
|
40
|
-
});
|
|
44
|
+
this.reInitSelect();
|
|
41
45
|
}
|
|
42
46
|
;
|
|
43
47
|
setIsValid(isValid) {
|
|
@@ -45,55 +49,106 @@ class SelectorInputComponent {
|
|
|
45
49
|
}
|
|
46
50
|
selected() {
|
|
47
51
|
debounce(() => {
|
|
52
|
+
if (this.fieldValue === 'undefined') {
|
|
53
|
+
this.fieldValue = undefined;
|
|
54
|
+
}
|
|
48
55
|
this.fieldValueChange.emit(this.fieldValue);
|
|
49
56
|
this.valueChange.next(this.fieldValue);
|
|
50
57
|
}, 500)();
|
|
51
58
|
}
|
|
59
|
+
reInitSelect() {
|
|
60
|
+
this.hideSelect = true;
|
|
61
|
+
defer(() => {
|
|
62
|
+
this.hideSelect = false;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
52
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectorInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectorInputComponent, selector: "lib-selector-input", inputs: { fieldName: "fieldName", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", valueList: "valueList", labelColor: "labelColor", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SelectorInputComponent, selector: "lib-selector-input", inputs: { fieldName: "fieldName", fieldValue: "fieldValue", helpText: "helpText", placeholder: "placeholder", parentage: "parentage", valueList: "valueList", labelColor: "labelColor", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
54
67
|
<div [ngClass]="fieldClass + (!_isValid ? 'invalid' : '')" class="selector-input-container">
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
<div class="label-container">
|
|
69
|
+
<label [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
70
|
+
<div
|
|
71
|
+
*ngIf="helpText"
|
|
72
|
+
class="form-field-info infoicon"
|
|
73
|
+
matTooltip="{{helpText}}"
|
|
74
|
+
matTooltipPosition="above"
|
|
75
|
+
matTooltipClass="wide-tooltip"
|
|
76
|
+
></div>
|
|
77
|
+
</div>
|
|
78
|
+
<select
|
|
79
|
+
*ngIf="!hideSelect"
|
|
80
|
+
id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
81
|
+
class="jsonEntry"
|
|
82
|
+
[ngClass]="{'error': error}"
|
|
83
|
+
[(ngModel)]="fieldValue"
|
|
84
|
+
(change)="selected()"
|
|
85
|
+
>
|
|
86
|
+
<option [value]="undefined" *ngIf="placeholder">{{placeholder}}</option>
|
|
87
|
+
<ng-container *ngIf="!listIsObject">
|
|
88
|
+
<option *ngFor="let name of _valueList" [value]="name">{{name}}</option>
|
|
89
|
+
</ng-container>
|
|
90
|
+
<ng-container *ngIf="listIsObject">
|
|
91
|
+
<option *ngFor="let data of _valueList" [value]="data.value">{{data.name}}</option>
|
|
92
|
+
</ng-container>
|
|
93
|
+
</select>
|
|
94
|
+
<select
|
|
95
|
+
*ngIf="hideSelect"
|
|
96
|
+
class="placeholder-select"
|
|
97
|
+
[ngClass]="{'error': error}"
|
|
98
|
+
[(ngModel)]="fieldValue"
|
|
99
|
+
>
|
|
67
100
|
</select>
|
|
68
101
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
69
102
|
</div>
|
|
70
|
-
`, isInline: true, styles: [".selector-input-container{margin:var(--marginSmall) 0}.selector-input-container label{margin-bottom:0;margin-top:0}.selector-input-container input.error{border-color:red}.selector-input-container div.error{color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
103
|
+
`, isInline: true, styles: [".selector-input-container{margin:var(--marginSmall) 0}.selector-input-container label{margin-bottom:0;margin-top:0;width:-moz-fit-content;width:fit-content}.selector-input-container input.error{border-color:red}.selector-input-container div.error{color:red}.label-container{display:flex;gap:5px;margin-bottom:5px;margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
|
|
71
104
|
}
|
|
72
105
|
export { SelectorInputComponent };
|
|
73
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectorInputComponent, decorators: [{
|
|
74
107
|
type: Component,
|
|
75
108
|
args: [{ selector: 'lib-selector-input', template: `
|
|
76
109
|
<div [ngClass]="fieldClass + (!_isValid ? 'invalid' : '')" class="selector-input-container">
|
|
77
|
-
<
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
110
|
+
<div class="label-container">
|
|
111
|
+
<label [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
112
|
+
<div
|
|
113
|
+
*ngIf="helpText"
|
|
114
|
+
class="form-field-info infoicon"
|
|
115
|
+
matTooltip="{{helpText}}"
|
|
116
|
+
matTooltipPosition="above"
|
|
117
|
+
matTooltipClass="wide-tooltip"
|
|
118
|
+
></div>
|
|
119
|
+
</div>
|
|
120
|
+
<select
|
|
121
|
+
*ngIf="!hideSelect"
|
|
122
|
+
id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
123
|
+
class="jsonEntry"
|
|
124
|
+
[ngClass]="{'error': error}"
|
|
125
|
+
[(ngModel)]="fieldValue"
|
|
126
|
+
(change)="selected()"
|
|
127
|
+
>
|
|
128
|
+
<option [value]="undefined" *ngIf="placeholder">{{placeholder}}</option>
|
|
129
|
+
<ng-container *ngIf="!listIsObject">
|
|
130
|
+
<option *ngFor="let name of _valueList" [value]="name">{{name}}</option>
|
|
131
|
+
</ng-container>
|
|
132
|
+
<ng-container *ngIf="listIsObject">
|
|
133
|
+
<option *ngFor="let data of _valueList" [value]="data.value">{{data.name}}</option>
|
|
134
|
+
</ng-container>
|
|
135
|
+
</select>
|
|
136
|
+
<select
|
|
137
|
+
*ngIf="hideSelect"
|
|
138
|
+
class="placeholder-select"
|
|
139
|
+
[ngClass]="{'error': error}"
|
|
140
|
+
[(ngModel)]="fieldValue"
|
|
141
|
+
>
|
|
89
142
|
</select>
|
|
90
143
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
91
144
|
</div>
|
|
92
|
-
`, styles: [".selector-input-container{margin:var(--marginSmall) 0}.selector-input-container label{margin-bottom:0;margin-top:0}.selector-input-container input.error{border-color:red}.selector-input-container div.error{color:red}\n"] }]
|
|
145
|
+
`, styles: [".selector-input-container{margin:var(--marginSmall) 0}.selector-input-container label{margin-bottom:0;margin-top:0;width:-moz-fit-content;width:fit-content}.selector-input-container input.error{border-color:red}.selector-input-container div.error{color:red}.label-container{display:flex;gap:5px;margin-bottom:5px;margin-top:10px}\n"] }]
|
|
93
146
|
}], propDecorators: { fieldName: [{
|
|
94
147
|
type: Input
|
|
95
148
|
}], fieldValue: [{
|
|
96
149
|
type: Input
|
|
150
|
+
}], helpText: [{
|
|
151
|
+
type: Input
|
|
97
152
|
}], placeholder: [{
|
|
98
153
|
type: Input
|
|
99
154
|
}], parentage: [{
|
|
@@ -109,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
109
164
|
}], fieldValueChange: [{
|
|
110
165
|
type: Output
|
|
111
166
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9zZWxlY3Rvci9zZWxlY3Rvci1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDLE1BQU0sUUFBUSxDQUFDOzs7OztBQUV2QyxNQTBDYSxzQkFBc0I7SUExQ25DO1FBMkNFLGVBQVUsR0FBRyxhQUFhLENBQUM7UUFDM0IsWUFBTyxHQUFHLFdBQVcsQ0FBQztRQUN0QixlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFlVixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBY3pCLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1YscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN4RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFckMsYUFBUSxHQUFHLElBQUksQ0FBQztLQXFCakI7SUF2REMsSUFBYSxTQUFTLENBQUMsSUFBWTtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxHQUFXO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUtELElBQWEsU0FBUyxDQUFDLElBQVc7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxRQUFRLENBQUM7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xCLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZixRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQVNLLFVBQVUsQ0FBRSxPQUFPO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTdEVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixpVkF4Q3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNUOztTQUdVLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQTFDbEMsU0FBUzsrQkFDRSxvQkFBb0IsWUFDcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ1Q7OEJBVVksU0FBUztzQkFBckIsS0FBSztnQkFLTyxVQUFVO3NCQUF0QixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBYUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7ZGVib3VuY2UsIGRlZmVyfSBmcm9tIFwibG9kYXNoXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWxlY3Rvci1pbnB1dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbbmdDbGFzc109XCJmaWVsZENsYXNzICsgKCFfaXNWYWxpZCA/ICdpbnZhbGlkJyA6ICcnKVwiIGNsYXNzPVwic2VsZWN0b3ItaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgIDxsYWJlbCBbbmdTdHlsZV09XCJ7J2NvbG9yJzogbGFiZWxDb2xvcn1cIj57e19maWVsZE5hbWV9fTwvbGFiZWw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkLWluZm8gaW5mb2ljb25cIlxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7aGVscFRleHR9fVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJ3aWRlLXRvb2x0aXBcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzZWxlY3RcbiAgICAgICAgICAqbmdJZj1cIiFoaWRlU2VsZWN0XCJcbiAgICAgICAgICBpZD1cInNjaGVtYV97e3BhcmVudGFnZT9wYXJlbnRhZ2UrJ18nOicnfX17e19pZE5hbWV9fVwiXG4gICAgICAgICAgY2xhc3M9XCJqc29uRW50cnlcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZXJyb3InOiBlcnJvcn1cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RlZCgpXCJcbiAgICAgID5cbiAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJ1bmRlZmluZWRcIiAqbmdJZj1cInBsYWNlaG9sZGVyXCI+e3twbGFjZWhvbGRlcn19PC9vcHRpb24+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsaXN0SXNPYmplY3RcIj5cbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG5hbWUgb2YgX3ZhbHVlTGlzdFwiIFt2YWx1ZV09XCJuYW1lXCI+e3tuYW1lfX08L29wdGlvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdElzT2JqZWN0XCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBkYXRhIG9mIF92YWx1ZUxpc3RcIiBbdmFsdWVdPVwiZGF0YS52YWx1ZVwiPnt7ZGF0YS5uYW1lfX08L29wdGlvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc2VsZWN0PlxuICAgICAgPHNlbGVjdFxuICAgICAgICAgICpuZ0lmPVwiaGlkZVNlbGVjdFwiXG4gICAgICAgICAgY2xhc3M9XCJwbGFjZWhvbGRlci1zZWxlY3RcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZXJyb3InOiBlcnJvcn1cIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZVwiXG4gICAgICA+XG4gICAgICA8L3NlbGVjdD5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3JcIj57e2Vycm9yfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJ3NlbGVjdG9yLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0b3JJbnB1dENvbXBvbmVudCB7XG4gIF9maWVsZE5hbWUgPSAnRmllbGQgTGFiZWwnO1xuICBfaWROYW1lID0gJ2ZpZWxkbmFtZSc7XG4gIF92YWx1ZUxpc3Q6IGFueVtdID0gW107XG4gIGxpc3RJc09iamVjdCA9IGZhbHNlO1xuICBoaWRlU2VsZWN0ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IGZpZWxkTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWVsZE5hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2lkTmFtZSA9IG5hbWUucmVwbGFjZSgvXFxzL2csICcnKS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIF9maWVsZFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldCBmaWVsZFZhbHVlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZmllbGRWYWx1ZSA9IHZhbDtcbiAgfVxuICBnZXQgZmllbGRWYWx1ZSgpOnN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkVmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBoZWxwVGV4dDtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgcGFyZW50YWdlOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBzZXQgdmFsdWVMaXN0KGxpc3Q6IGFueVtdKSB7XG4gICAgdGhpcy5saXN0SXNPYmplY3QgPSBsaXN0Py5sZW5ndGggPiAwICYmIHR5cGVvZiBsaXN0WzBdICE9PSAnc3RyaW5nJztcbiAgICB0aGlzLl92YWx1ZUxpc3QgPSBsaXN0O1xuICAgIGxldCB2YWxUb1NldDtcbiAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZihpdGVtLmRlZmF1bHQpIHtcbiAgICAgICAgdmFsVG9TZXQgPSBpdGVtLnZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHZhbFRvU2V0ID0gdmFsVG9TZXQgfHwgdGhpcy5maWVsZFZhbHVlO1xuICAgIHRoaXMucmVJbml0U2VsZWN0KCk7XG4gIH07XG5cbiAgQElucHV0KCkgbGFiZWxDb2xvciA9ICcjMDAwMDAwJztcbiAgQElucHV0KCkgZmllbGRDbGFzcyA9ICcnO1xuICBASW5wdXQoKSBlcnJvciA9ICcnO1xuICBAT3V0cHV0KCkgZmllbGRWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICB2YWx1ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4gKCk7XG5cbiAgX2lzVmFsaWQgPSB0cnVlO1xuICBwdWJsaWMgc2V0SXNWYWxpZCAoaXNWYWxpZCkge1xuICAgIHRoaXMuX2lzVmFsaWQgPSBpc1ZhbGlkO1xuICB9XG5cbiAgc2VsZWN0ZWQoKSB7XG4gICAgZGVib3VuY2UoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmllbGRWYWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhpcy5maWVsZFZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhpcy5maWVsZFZhbHVlQ2hhbmdlLmVtaXQodGhpcy5maWVsZFZhbHVlKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLmZpZWxkVmFsdWUpO1xuICAgIH0sIDUwMCkoKTtcbiAgfVxuXG4gIHJlSW5pdFNlbGVjdCgpIHtcbiAgICB0aGlzLmhpZGVTZWxlY3QgPSB0cnVlO1xuICAgIGRlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMuaGlkZVNlbGVjdCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -4,6 +4,7 @@ import { debounce } from "lodash";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
7
|
+
import * as i3 from "@angular/material/tooltip";
|
|
7
8
|
class StringInputComponent {
|
|
8
9
|
constructor() {
|
|
9
10
|
this._fieldName = 'Field Label';
|
|
@@ -32,32 +33,52 @@ class StringInputComponent {
|
|
|
32
33
|
}, 500)();
|
|
33
34
|
}
|
|
34
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StringInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StringInputComponent, selector: "lib-string-input", inputs: { fieldName: "fieldName", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", labelColor: "labelColor", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StringInputComponent, selector: "lib-string-input", inputs: { fieldName: "fieldName", helpText: "helpText", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", labelColor: "labelColor", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
36
37
|
<div [ngClass]="fieldClass + (!_isValid ? 'invalid' : '')" class="string-input-container">
|
|
37
|
-
<
|
|
38
|
+
<div class="label-container">
|
|
39
|
+
<label for="schema_{{parentage?parentage+'_':''}}{{_idName}}" [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
40
|
+
<div
|
|
41
|
+
*ngIf="helpText"
|
|
42
|
+
class="form-field-info infoicon"
|
|
43
|
+
matTooltip="{{helpText}}"
|
|
44
|
+
matTooltipPosition="above"
|
|
45
|
+
matTooltipClass="wide-tooltip"
|
|
46
|
+
></div>
|
|
47
|
+
</div>
|
|
38
48
|
<input id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
39
49
|
type="text" class="jsonEntry"
|
|
40
50
|
[ngClass]="{'error': error}"
|
|
41
51
|
[placeholder]="placeholder" [(ngModel)]="fieldValue" (paste)="onKeyup()" (keyup)="onKeyup()"/>
|
|
42
52
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
43
53
|
</div>
|
|
44
|
-
`, isInline: true, styles: [".string-input-container{margin:var(--marginSmall) 0}.string-input-container label{margin-bottom:0;margin-top:0}.string-input-container input.error{border-color:red}.string-input-container div.error{color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
54
|
+
`, isInline: true, styles: [".string-input-container{margin:var(--marginSmall) 0}.string-input-container label{margin-bottom:0;margin-top:0;width:-moz-fit-content;width:fit-content}.string-input-container input.error{border-color:red}.string-input-container div.error{color:red}.label-container{display:flex;gap:5px;margin-bottom:5px;margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
|
|
45
55
|
}
|
|
46
56
|
export { StringInputComponent };
|
|
47
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StringInputComponent, decorators: [{
|
|
48
58
|
type: Component,
|
|
49
59
|
args: [{ selector: 'lib-string-input', template: `
|
|
50
60
|
<div [ngClass]="fieldClass + (!_isValid ? 'invalid' : '')" class="string-input-container">
|
|
51
|
-
<
|
|
61
|
+
<div class="label-container">
|
|
62
|
+
<label for="schema_{{parentage?parentage+'_':''}}{{_idName}}" [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
63
|
+
<div
|
|
64
|
+
*ngIf="helpText"
|
|
65
|
+
class="form-field-info infoicon"
|
|
66
|
+
matTooltip="{{helpText}}"
|
|
67
|
+
matTooltipPosition="above"
|
|
68
|
+
matTooltipClass="wide-tooltip"
|
|
69
|
+
></div>
|
|
70
|
+
</div>
|
|
52
71
|
<input id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
53
72
|
type="text" class="jsonEntry"
|
|
54
73
|
[ngClass]="{'error': error}"
|
|
55
74
|
[placeholder]="placeholder" [(ngModel)]="fieldValue" (paste)="onKeyup()" (keyup)="onKeyup()"/>
|
|
56
75
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
57
76
|
</div>
|
|
58
|
-
`, styles: [".string-input-container{margin:var(--marginSmall) 0}.string-input-container label{margin-bottom:0;margin-top:0}.string-input-container input.error{border-color:red}.string-input-container div.error{color:red}\n"] }]
|
|
77
|
+
`, styles: [".string-input-container{margin:var(--marginSmall) 0}.string-input-container label{margin-bottom:0;margin-top:0;width:-moz-fit-content;width:fit-content}.string-input-container input.error{border-color:red}.string-input-container div.error{color:red}.label-container{display:flex;gap:5px;margin-bottom:5px;margin-top:10px}\n"] }]
|
|
59
78
|
}], propDecorators: { fieldName: [{
|
|
60
79
|
type: Input
|
|
80
|
+
}], helpText: [{
|
|
81
|
+
type: Input
|
|
61
82
|
}], fieldValue: [{
|
|
62
83
|
type: Input
|
|
63
84
|
}], placeholder: [{
|
|
@@ -73,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
73
94
|
}], fieldValueChange: [{
|
|
74
95
|
type: Output
|
|
75
96
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvc3RyaW5nL3N0cmluZy1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7O0FBRWhDLE1BdUJhLG9CQUFvQjtJQXZCakM7UUF3QkksZUFBVSxHQUFHLGFBQWEsQ0FBQztRQUMzQixZQUFPLEdBQUcsV0FBVyxDQUFDO1FBTWIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1YscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN4RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFckMsYUFBUSxHQUFHLElBQUksQ0FBQztLQVduQjtJQXpCRyxJQUFhLFNBQVMsQ0FBQyxJQUFZO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQVlNLFVBQVUsQ0FBRSxPQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPO1FBQ0gsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNkLENBQUM7K0dBM0JRLG9CQUFvQjttR0FBcEIsb0JBQW9CLHVUQXJCckI7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDs7U0FHVSxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkF2QmhDLFNBQVM7K0JBQ0Usa0JBQWtCLFlBQ2xCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQ7OEJBTWMsU0FBUztzQkFBckIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7ZGVib3VuY2V9IGZyb20gXCJsb2Rhc2hcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXN0cmluZy1pbnB1dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cImZpZWxkQ2xhc3MgKyAoIV9pc1ZhbGlkID8gJ2ludmFsaWQnIDogJycpXCIgY2xhc3M9XCJzdHJpbmctaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2NoZW1hX3t7cGFyZW50YWdlP3BhcmVudGFnZSsnXyc6Jyd9fXt7X2lkTmFtZX19XCIgIFtuZ1N0eWxlXT1cInsnY29sb3InOiBsYWJlbENvbG9yfVwiPnt7X2ZpZWxkTmFtZX19PC9sYWJlbD5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoZWxwVGV4dFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGQtaW5mbyBpbmZvaWNvblwiXG4gICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3toZWxwVGV4dH19XCJcbiAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cIndpZGUtdG9vbHRpcFwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJzY2hlbWFfe3twYXJlbnRhZ2U/cGFyZW50YWdlKydfJzonJ319e3tfaWROYW1lfX1cIlxuICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIGNsYXNzPVwianNvbkVudHJ5XCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydlcnJvcic6IGVycm9yfVwiXG4gICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZVwiIChwYXN0ZSk9XCJvbktleXVwKClcIiAoa2V5dXApPVwib25LZXl1cCgpXCIvPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3JcIj57e2Vycm9yfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICBgLFxuICAgIHN0eWxlVXJsczogWydzdHJpbmctaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdHJpbmdJbnB1dENvbXBvbmVudCB7XG4gICAgX2ZpZWxkTmFtZSA9ICdGaWVsZCBMYWJlbCc7XG4gICAgX2lkTmFtZSA9ICdmaWVsZG5hbWUnO1xuICAgIEBJbnB1dCgpIHNldCBmaWVsZE5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkTmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuX2lkTmFtZSA9IG5hbWUucmVwbGFjZSgvXFxzL2csICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSBoZWxwVGV4dDtcbiAgICBASW5wdXQoKSBmaWVsZFZhbHVlID0gJyc7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBASW5wdXQoKSBwYXJlbnRhZ2U6IHN0cmluZ1tdID0gW107XG4gICAgQElucHV0KCkgbGFiZWxDb2xvciA9ICcjMDAwMDAwJztcbiAgICBASW5wdXQoKSBmaWVsZENsYXNzID0gJyc7XG4gICAgQElucHV0KCkgZXJyb3IgPSAnJztcbiAgICBAT3V0cHV0KCkgZmllbGRWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIHZhbHVlQ2hhbmdlID0gbmV3IFN1YmplY3Q8c3RyaW5nPiAoKTtcblxuICAgIF9pc1ZhbGlkID0gdHJ1ZTtcbiAgICBwdWJsaWMgc2V0SXNWYWxpZCAoaXNWYWxpZCkge1xuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gaXNWYWxpZDtcbiAgICB9XG5cbiAgICBvbktleXVwKCkge1xuICAgICAgICBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmZpZWxkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMuZmllbGRWYWx1ZSk7XG4gICAgICAgIH0sIDUwMCkoKTtcbiAgICB9XG59XG4iXX0=
|