@apipass/inputs 1.0.129 → 1.0.131

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.
@@ -258,7 +258,7 @@ field-render .info-label {
258
258
 
259
259
  .apipass-input-text-slim {
260
260
  .mat-mdc-form-field-infix {
261
- padding-top: 5px !important;
261
+ padding-top: 3px !important;
262
262
  padding-bottom: 5px !important;
263
263
  min-height: 30px !important;
264
264
  max-height: 30px !important;
@@ -3,47 +3,65 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "@angular/forms";
5
5
  import * as i3 from "@angular/material/icon";
6
- import * as i4 from "../input-text/input-text.component";
6
+ import * as i4 from "@angular/material/tooltip";
7
+ import * as i5 from "../input-text/input-text.component";
7
8
  class InputKeyValueComponent {
9
+ initialized;
8
10
  _model;
9
- temporaryItem = { key: '', value: '' };
10
- showOptions = false;
11
+ temporaryItem = {};
12
+ size = 'DEFAULT';
13
+ keyField = 'key';
14
+ valueField = 'value';
11
15
  labelKey = 'Key';
12
16
  labelValue = 'Value';
17
+ removeLabel = 'Remove';
13
18
  widthPercentageInputOptions;
14
19
  inputOptionsInitSelected = null;
15
20
  inputOptions = [];
16
21
  set model(model) {
22
+ this.initializeModel(model);
23
+ }
24
+ get model() {
25
+ return this._model;
26
+ }
27
+ initializeModel(model) {
17
28
  if (model?.length > 0) {
18
29
  this._model = [...model];
30
+ if (this._model[this._model.length - 1].label && !this._model[this._model.length - 1].type) {
31
+ this.inputOptionChanged(this.inputOptionsInitSelected, this._model.length - 1);
32
+ }
19
33
  const lastModel = model[model.length - 1];
20
- if (lastModel?.key || lastModel?.value) {
21
- this._model.push({ key: '', value: '' });
34
+ if (lastModel?.[this.keyField] || lastModel?.[this.valueField]) {
35
+ this._model.push(this.getNewModel());
36
+ this.model = this._model;
22
37
  }
23
38
  }
24
- else {
25
- this._model = [{ key: '', value: '' }];
39
+ else if (this.initialized) {
40
+ this.model = [this.getNewModel()];
26
41
  }
27
42
  }
28
- get model() {
29
- return this._model;
30
- }
31
43
  modelChange = new EventEmitter();
32
44
  ngOnInit() {
45
+ this.inputOptionsInitSelected ||= this.inputOptions?.[0]?.value;
46
+ this.temporaryItem = this.getNewModel();
47
+ if (!this.model?.length) {
48
+ this._model = [this.getNewModel()];
49
+ this.model = this._model;
50
+ }
51
+ this.initialized = true;
33
52
  }
34
- onChangeValues(last, $event) {
53
+ getNewModel() {
54
+ const value = {};
55
+ value[this.keyField] = '';
56
+ value[this.valueField] = '';
57
+ return value;
58
+ }
59
+ onChangeValues(last) {
35
60
  if (last) {
36
- if (this.temporaryItem.key || this.temporaryItem.value) {
61
+ if (this.temporaryItem?.[this.keyField] || this.temporaryItem?.[this.valueField]) {
37
62
  this.model.push({ ...this.temporaryItem });
38
- this.temporaryItem = { key: '', value: '' };
63
+ this.temporaryItem = this.getNewModel();
39
64
  }
40
- }
41
- this.modelChange.emit(this.model);
42
- }
43
- addTemporaryItem() {
44
- if (this.temporaryItem.key || this.temporaryItem.value) {
45
- this.model.push({ ...this.temporaryItem });
46
- this.temporaryItem = { key: '', value: '' };
47
65
  this.modelChange.emit(this.model);
48
66
  }
49
67
  }
@@ -53,19 +71,26 @@ class InputKeyValueComponent {
53
71
  }
54
72
  inputOptionChanged(event, index) {
55
73
  this.model[index].type = event;
56
- this.modelChange.emit(this.model);
57
74
  }
58
75
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputKeyValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
59
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: InputKeyValueComponent, selector: "input-key-value", inputs: { labelKey: "labelKey", labelValue: "labelValue", widthPercentageInputOptions: "widthPercentageInputOptions", inputOptionsInitSelected: "inputOptionsInitSelected", inputOptions: "inputOptions", model: "model" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: " <div class=\"key-value-item\" *ngFor=\"let item of model; let last = last; let index = index\">\n <div class=\"div-input\">\n <input-text \n [label]=\"labelKey\"\n [inputOptions]=\"inputOptions\"\n [inputOptionsInitSelected]=\"inputOptionsInitSelected\"\n [widthPercentageInputOptions]=\"widthPercentageInputOptions\"\n [(ngModel)]=\"item.key\"\n (ngModelChange)=\"onChangeValues(last, $event)\"\n (optionChanged)=\"inputOptionChanged($event, index)\">\n </input-text>\n </div>\n <div class=\"div-input\">\n <input-text \n class=\"text-input-value\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item.value\"\n >\n </input-text>\n </div>\n <div class=\"div-button\">\n <button class=\"delete-button\" type=\"button\" *ngIf=\"!last\" (click)=\"removeItem(index)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n", styles: [".key-value-item{display:flex;margin-bottom:10px;width:100%}.key-value-item .div-input{width:40%}.key-value-item .div-input .text-input-value{margin-left:30px}.key-value-item .div-button{margin-left:50px;display:flex}\n"], dependencies: [{ 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: 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: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.InputTextComponent, selector: "input-text", inputs: ["label", "disabled", "iconSuffix", "iconPrefix", "autoComplete", "size", "debounceTime", "widthPercentageInputOptions", "inputOptions", "inputOptionsInitSelected"], outputs: ["suffixIconClick", "prefixIconClick", "onDebounce", "optionChanged"] }] });
76
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: InputKeyValueComponent, selector: "input-key-value", inputs: { size: "size", keyField: "keyField", valueField: "valueField", labelKey: "labelKey", labelValue: "labelValue", removeLabel: "removeLabel", widthPercentageInputOptions: "widthPercentageInputOptions", inputOptionsInitSelected: "inputOptionsInitSelected", inputOptions: "inputOptions", model: "model" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: "<div class=\"key-value-item\" *ngFor=\"let item of model; let last = last; let index = index\">\n <input-text\n class=\"input-key\"\n [size]=\"size\"\n [label]=\"labelKey\"\n [inputOptions]=\"inputOptions\"\n [inputOptionsInitSelected]=\"item.type ? item.type : inputOptionsInitSelected\"\n [widthPercentageInputOptions]=\"widthPercentageInputOptions\"\n [(ngModel)]=\"item[keyField]\"\n (ngModelChange)=\"onChangeValues(last)\"\n (optionChanged)=\"inputOptionChanged($event, index)\">\n </input-text>\n <input-text\n class=\"input-value\"\n [size]=\"size\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item[valueField]\">\n </input-text>\n <button class=\"delete-button\" [matTooltip]=\"removeLabel\" [ngClass]=\"{'delete-button-slim': size === 'SLIM'}\" type=\"button\" *ngIf=\"!last\"\n (click)=\"removeItem(index)\">\n <mat-icon>delete</mat-icon>\n </button>\n</div>\n\n", styles: [".key-value-item{display:flex;gap:10px;margin-bottom:10px;width:100%}.key-value-item .input-key{width:50%}.key-value-item .input-key ::ng-deep input{padding-left:10px!important;padding-right:10px!important}.key-value-item .input-value{width:calc(50% - 60px)}.key-value-item .input-value ::ng-deep input{padding-left:10px!important;padding-right:10px!important}.key-value-item .delete-button{display:flex;justify-content:center;align-items:center;cursor:pointer;background:#FFF;color:#c40606;border-radius:5px;border:1px solid var(--color-fonts-tertiary)}.key-value-item .delete-button.delete-button-slim{width:30px;height:30px}.key-value-item .delete-button.delete-button-slim ::ng-deep .mat-icon{width:auto!important;height:auto!important;font-size:22px!important;margin-left:-2.5px;padding:0!important}\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: 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: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i5.InputTextComponent, selector: "input-text", inputs: ["label", "disabled", "iconSuffix", "iconPrefix", "autoComplete", "size", "debounceTime", "widthPercentageInputOptions", "inputOptions", "inputOptionsInitSelected"], outputs: ["suffixIconClick", "prefixIconClick", "onDebounce", "optionChanged"] }] });
60
77
  }
61
78
  export { InputKeyValueComponent };
62
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputKeyValueComponent, decorators: [{
63
80
  type: Component,
64
- args: [{ selector: 'input-key-value', template: " <div class=\"key-value-item\" *ngFor=\"let item of model; let last = last; let index = index\">\n <div class=\"div-input\">\n <input-text \n [label]=\"labelKey\"\n [inputOptions]=\"inputOptions\"\n [inputOptionsInitSelected]=\"inputOptionsInitSelected\"\n [widthPercentageInputOptions]=\"widthPercentageInputOptions\"\n [(ngModel)]=\"item.key\"\n (ngModelChange)=\"onChangeValues(last, $event)\"\n (optionChanged)=\"inputOptionChanged($event, index)\">\n </input-text>\n </div>\n <div class=\"div-input\">\n <input-text \n class=\"text-input-value\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item.value\"\n >\n </input-text>\n </div>\n <div class=\"div-button\">\n <button class=\"delete-button\" type=\"button\" *ngIf=\"!last\" (click)=\"removeItem(index)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n", styles: [".key-value-item{display:flex;margin-bottom:10px;width:100%}.key-value-item .div-input{width:40%}.key-value-item .div-input .text-input-value{margin-left:30px}.key-value-item .div-button{margin-left:50px;display:flex}\n"] }]
65
- }], propDecorators: { labelKey: [{
81
+ args: [{ selector: 'input-key-value', template: "<div class=\"key-value-item\" *ngFor=\"let item of model; let last = last; let index = index\">\n <input-text\n class=\"input-key\"\n [size]=\"size\"\n [label]=\"labelKey\"\n [inputOptions]=\"inputOptions\"\n [inputOptionsInitSelected]=\"item.type ? item.type : inputOptionsInitSelected\"\n [widthPercentageInputOptions]=\"widthPercentageInputOptions\"\n [(ngModel)]=\"item[keyField]\"\n (ngModelChange)=\"onChangeValues(last)\"\n (optionChanged)=\"inputOptionChanged($event, index)\">\n </input-text>\n <input-text\n class=\"input-value\"\n [size]=\"size\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item[valueField]\">\n </input-text>\n <button class=\"delete-button\" [matTooltip]=\"removeLabel\" [ngClass]=\"{'delete-button-slim': size === 'SLIM'}\" type=\"button\" *ngIf=\"!last\"\n (click)=\"removeItem(index)\">\n <mat-icon>delete</mat-icon>\n </button>\n</div>\n\n", styles: [".key-value-item{display:flex;gap:10px;margin-bottom:10px;width:100%}.key-value-item .input-key{width:50%}.key-value-item .input-key ::ng-deep input{padding-left:10px!important;padding-right:10px!important}.key-value-item .input-value{width:calc(50% - 60px)}.key-value-item .input-value ::ng-deep input{padding-left:10px!important;padding-right:10px!important}.key-value-item .delete-button{display:flex;justify-content:center;align-items:center;cursor:pointer;background:#FFF;color:#c40606;border-radius:5px;border:1px solid var(--color-fonts-tertiary)}.key-value-item .delete-button.delete-button-slim{width:30px;height:30px}.key-value-item .delete-button.delete-button-slim ::ng-deep .mat-icon{width:auto!important;height:auto!important;font-size:22px!important;margin-left:-2.5px;padding:0!important}\n"] }]
82
+ }], propDecorators: { size: [{
83
+ type: Input
84
+ }], keyField: [{
85
+ type: Input
86
+ }], valueField: [{
87
+ type: Input
88
+ }], labelKey: [{
66
89
  type: Input
67
90
  }], labelValue: [{
68
91
  type: Input
92
+ }], removeLabel: [{
93
+ type: Input
69
94
  }], widthPercentageInputOptions: [{
70
95
  type: Input
71
96
  }], inputOptionsInitSelected: [{
@@ -77,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
77
102
  }], modelChange: [{
78
103
  type: Output
79
104
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQta2V5LXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXQta2V5LXZhbHVlL2lucHV0LWtleS12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LWtleS12YWx1ZS9pbnB1dC1rZXktdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUS9FLE1BS2Esc0JBQXNCO0lBRXpCLE1BQU0sQ0FBcUI7SUFDM0IsYUFBYSxHQUFzQixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBRWpFLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFcEIsUUFBUSxHQUFXLEtBQUssQ0FBQTtJQUN4QixVQUFVLEdBQVcsT0FBTyxDQUFBO0lBQzVCLDJCQUEyQixDQUFRO0lBQ25DLHdCQUF3QixHQUFXLElBQUksQ0FBQTtJQUN2QyxZQUFZLEdBQUcsRUFBRSxDQUFBO0lBRTFCLElBQ0ksS0FBSyxDQUFDLEtBQTBCO1FBQ2xDLElBQUksS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUE7WUFDeEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDekMsSUFBSSxTQUFTLEVBQUUsR0FBRyxJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTthQUN6QztTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBR00sV0FBVyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQTtJQUV4RixRQUFRO0lBQ2YsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFhLEVBQUUsTUFBYztRQUNqRCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzdDO1NBQ0Y7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzt1R0E5RFUsc0JBQXNCOzJGQUF0QixzQkFBc0IsNFRDYm5DLGk3QkEyQkE7O1NEZGEsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQVdsQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdGLEtBQUs7c0JBRFIsS0FBSztnQkFrQkMsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dEtleVZhbHVlVHlwZSB7XG4gIGtleTogc3RyaW5nXG4gIHZhbHVlOiBzdHJpbmdcbiAgdHlwZT86IHN0cmluZ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbnB1dC1rZXktdmFsdWUnLFxuICB0ZW1wbGF0ZVVybDogJ2lucHV0LWtleS12YWx1ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydpbnB1dC1rZXktdmFsdWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEtleVZhbHVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcml2YXRlIF9tb2RlbDogSW5wdXRLZXlWYWx1ZVR5cGVbXVxuICBwcml2YXRlIHRlbXBvcmFyeUl0ZW06IElucHV0S2V5VmFsdWVUeXBlID0geyBrZXk6ICcnLCB2YWx1ZTogJycgfVxuXG4gIHNob3dPcHRpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGFiZWxLZXk6IHN0cmluZyA9ICdLZXknXG4gIEBJbnB1dCgpIGxhYmVsVmFsdWU6IHN0cmluZyA9ICdWYWx1ZSdcbiAgQElucHV0KCkgd2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zOiBudW1iZXJcbiAgQElucHV0KCkgaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkOiBzdHJpbmcgPSBudWxsXG4gIEBJbnB1dCgpIGlucHV0T3B0aW9ucyA9IFtdXG5cbiAgQElucHV0KClcbiAgc2V0IG1vZGVsKG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdKSB7XG4gICAgaWYgKG1vZGVsPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IFsuLi5tb2RlbF1cbiAgICAgIGNvbnN0IGxhc3RNb2RlbCA9IG1vZGVsW21vZGVsLmxlbmd0aCAtIDFdXG4gICAgICBpZiAobGFzdE1vZGVsPy5rZXkgfHwgbGFzdE1vZGVsPy52YWx1ZSkge1xuICAgICAgICB0aGlzLl9tb2RlbC5wdXNoKHsga2V5OiAnJywgdmFsdWU6ICcnIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX21vZGVsID0gW3sga2V5OiAnJywgdmFsdWU6ICcnIH1dXG4gICAgfVxuICB9XG5cbiAgZ2V0IG1vZGVsKCk6IElucHV0S2V5VmFsdWVUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJbnB1dEtleVZhbHVlVHlwZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8SW5wdXRLZXlWYWx1ZVR5cGVbXT4oKVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZVZhbHVlcyhsYXN0OiBib29sZWFuLCAkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChsYXN0KSB7XG4gICAgICBpZiAodGhpcy50ZW1wb3JhcnlJdGVtLmtleSB8fCB0aGlzLnRlbXBvcmFyeUl0ZW0udmFsdWUpIHtcbiAgICAgICAgdGhpcy5tb2RlbC5wdXNoKHsgLi4udGhpcy50ZW1wb3JhcnlJdGVtIH0pO1xuICAgICAgICB0aGlzLnRlbXBvcmFyeUl0ZW0gPSB7IGtleTogJycsIHZhbHVlOiAnJyB9O1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XG4gIH1cblxuICBwdWJsaWMgYWRkVGVtcG9yYXJ5SXRlbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50ZW1wb3JhcnlJdGVtLmtleSB8fCB0aGlzLnRlbXBvcmFyeUl0ZW0udmFsdWUpIHtcbiAgICAgIHRoaXMubW9kZWwucHVzaCh7IC4uLnRoaXMudGVtcG9yYXJ5SXRlbSB9KTtcbiAgICAgIHRoaXMudGVtcG9yYXJ5SXRlbSA9IHsga2V5OiAnJywgdmFsdWU6ICcnIH07XG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubW9kZWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRPcHRpb25DaGFuZ2VkKGV2ZW50OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsW2luZGV4XS50eXBlID0gZXZlbnQ7XG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xuICB9XG5cbn1cbiIsIiAgPGRpdiBjbGFzcz1cImtleS12YWx1ZS1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kZWw7IGxldCBsYXN0ID0gbGFzdDsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGl2LWlucHV0XCI+XG4gICAgICA8aW5wdXQtdGV4dCAgXG4gICAgICBbbGFiZWxdPVwibGFiZWxLZXlcIlxuICAgICAgW2lucHV0T3B0aW9uc109XCJpbnB1dE9wdGlvbnNcIlxuICAgICAgW2lucHV0T3B0aW9uc0luaXRTZWxlY3RlZF09XCJpbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWRcIlxuICAgICAgW3dpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9uc109XCJ3aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnNcIlxuICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLmtleVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZVZhbHVlcyhsYXN0LCAkZXZlbnQpXCJcbiAgICAgIChvcHRpb25DaGFuZ2VkKT1cImlucHV0T3B0aW9uQ2hhbmdlZCgkZXZlbnQsIGluZGV4KVwiPlxuICAgICAgPC9pbnB1dC10ZXh0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaXYtaW5wdXRcIj5cbiAgICAgIDxpbnB1dC10ZXh0IFxuICAgICAgICBjbGFzcz1cInRleHQtaW5wdXQtdmFsdWVcIlxuICAgICAgICBbbGFiZWxdPVwibGFiZWxWYWx1ZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgPlxuICAgICAgPC9pbnB1dC10ZXh0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkaXYtYnV0dG9uXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIiFsYXN0XCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaW5kZXgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQta2V5LXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXQta2V5LXZhbHVlL2lucHV0LWtleS12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LWtleS12YWx1ZS9pbnB1dC1rZXktdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVMvRSxNQUthLHNCQUFzQjtJQUV6QixXQUFXLENBQVU7SUFDckIsTUFBTSxDQUFxQjtJQUMzQixhQUFhLEdBQXNCLEVBQUUsQ0FBQTtJQUVwQyxJQUFJLEdBQXVCLFNBQVMsQ0FBQTtJQUNwQyxRQUFRLEdBQVcsS0FBSyxDQUFBO0lBQ3hCLFVBQVUsR0FBVyxPQUFPLENBQUE7SUFDNUIsUUFBUSxHQUFXLEtBQUssQ0FBQTtJQUN4QixVQUFVLEdBQVcsT0FBTyxDQUFBO0lBQzVCLFdBQVcsR0FBVyxRQUFRLENBQUE7SUFDOUIsMkJBQTJCLENBQVE7SUFDbkMsd0JBQXdCLEdBQVcsSUFBSSxDQUFBO0lBQ3ZDLFlBQVksR0FBRyxFQUFFLENBQUE7SUFFMUIsSUFDSSxLQUFLLENBQUMsS0FBMEI7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBMEI7UUFDaEQsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQTtZQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQzFGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7YUFDL0U7WUFDRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUN6QyxJQUFJLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzlELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO2dCQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7YUFDekI7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBR00sV0FBVyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQTtJQUV4RixRQUFRO1FBQ2IsSUFBSSxDQUFDLHdCQUF3QixLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUE7UUFDL0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtZQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7U0FDekI7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sV0FBVztRQUNoQixNQUFNLEtBQUssR0FBc0IsRUFBRSxDQUFDO1FBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFhO1FBQ2pDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2hGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDekM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7dUdBOUVVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHNaQ2RuQyxpNkJBd0JBOztTRFZhLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjs4QkFVbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixLQUFLO2dCQTBCQyxXQUFXO3NCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElucHV0S2V5VmFsdWVUeXBlIHtcbiAgW2tleTogc3RyaW5nXTogYW55XG4gIGtleT86IHN0cmluZ1xuICB2YWx1ZT86IHN0cmluZ1xuICB0eXBlPzogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lucHV0LWtleS12YWx1ZScsXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXQta2V5LXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2lucHV0LWtleS12YWx1ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElucHV0S2V5VmFsdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX21vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdXG4gIHByaXZhdGUgdGVtcG9yYXJ5SXRlbTogSW5wdXRLZXlWYWx1ZVR5cGUgPSB7fVxuXG4gIEBJbnB1dCgpIHNpemU6ICdERUZBVUxUJyB8ICdTTElNJyA9ICdERUZBVUxUJ1xuICBASW5wdXQoKSBrZXlGaWVsZDogc3RyaW5nID0gJ2tleSdcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nID0gJ3ZhbHVlJ1xuICBASW5wdXQoKSBsYWJlbEtleTogc3RyaW5nID0gJ0tleSdcbiAgQElucHV0KCkgbGFiZWxWYWx1ZTogc3RyaW5nID0gJ1ZhbHVlJ1xuICBASW5wdXQoKSByZW1vdmVMYWJlbDogc3RyaW5nID0gJ1JlbW92ZSdcbiAgQElucHV0KCkgd2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zOiBudW1iZXJcbiAgQElucHV0KCkgaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkOiBzdHJpbmcgPSBudWxsXG4gIEBJbnB1dCgpIGlucHV0T3B0aW9ucyA9IFtdXG5cbiAgQElucHV0KClcbiAgc2V0IG1vZGVsKG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdKSB7XG4gICAgdGhpcy5pbml0aWFsaXplTW9kZWwobW9kZWwpO1xuICB9XG5cbiAgZ2V0IG1vZGVsKCk6IElucHV0S2V5VmFsdWVUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU1vZGVsKG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdKTogdm9pZCB7XG4gICAgaWYgKG1vZGVsPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IFsuLi5tb2RlbF1cbiAgICAgIGlmICh0aGlzLl9tb2RlbFt0aGlzLl9tb2RlbC5sZW5ndGggLSAxXS5sYWJlbCAmJiAhdGhpcy5fbW9kZWxbdGhpcy5fbW9kZWwubGVuZ3RoIC0gMV0udHlwZSkge1xuICAgICAgICB0aGlzLmlucHV0T3B0aW9uQ2hhbmdlZCh0aGlzLmlucHV0T3B0aW9uc0luaXRTZWxlY3RlZCwgdGhpcy5fbW9kZWwubGVuZ3RoIC0gMSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxhc3RNb2RlbCA9IG1vZGVsW21vZGVsLmxlbmd0aCAtIDFdXG4gICAgICBpZiAobGFzdE1vZGVsPy5bdGhpcy5rZXlGaWVsZF0gfHwgbGFzdE1vZGVsPy5bdGhpcy52YWx1ZUZpZWxkXSkge1xuICAgICAgICB0aGlzLl9tb2RlbC5wdXNoKHRoaXMuZ2V0TmV3TW9kZWwoKSlcbiAgICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuX21vZGVsXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLm1vZGVsID0gW3RoaXMuZ2V0TmV3TW9kZWwoKV1cbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SW5wdXRLZXlWYWx1ZVR5cGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0S2V5VmFsdWVUeXBlW10+KClcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQgfHw9IHRoaXMuaW5wdXRPcHRpb25zPy5bMF0/LnZhbHVlXG4gICAgdGhpcy50ZW1wb3JhcnlJdGVtID0gdGhpcy5nZXROZXdNb2RlbCgpO1xuICAgIGlmICghdGhpcy5tb2RlbD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IFt0aGlzLmdldE5ld01vZGVsKCldXG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5fbW9kZWxcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TmV3TW9kZWwoKTogSW5wdXRLZXlWYWx1ZVR5cGUge1xuICAgIGNvbnN0IHZhbHVlOiBJbnB1dEtleVZhbHVlVHlwZSA9IHt9O1xuICAgIHZhbHVlW3RoaXMua2V5RmllbGRdID0gJyc7XG4gICAgdmFsdWVbdGhpcy52YWx1ZUZpZWxkXSA9ICcnXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlVmFsdWVzKGxhc3Q6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAobGFzdCkge1xuICAgICAgaWYgKHRoaXMudGVtcG9yYXJ5SXRlbT8uW3RoaXMua2V5RmllbGRdIHx8IHRoaXMudGVtcG9yYXJ5SXRlbT8uW3RoaXMudmFsdWVGaWVsZF0pIHtcbiAgICAgICAgdGhpcy5tb2RlbC5wdXNoKHsgLi4udGhpcy50ZW1wb3JhcnlJdGVtIH0pO1xuICAgICAgICB0aGlzLnRlbXBvcmFyeUl0ZW0gPSB0aGlzLmdldE5ld01vZGVsKCk7XG4gICAgICB9XG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dE9wdGlvbkNoYW5nZWQoZXZlbnQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubW9kZWxbaW5kZXhdLnR5cGUgPSBldmVudDtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwia2V5LXZhbHVlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbDsgbGV0IGxhc3QgPSBsYXN0OyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICA8aW5wdXQtdGV4dFxuICAgIGNsYXNzPVwiaW5wdXQta2V5XCJcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICBbbGFiZWxdPVwibGFiZWxLZXlcIlxuICAgIFtpbnB1dE9wdGlvbnNdPVwiaW5wdXRPcHRpb25zXCJcbiAgICBbaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkXT1cIml0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZFwiXG4gICAgW3dpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9uc109XCJ3aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnNcIlxuICAgIFsobmdNb2RlbCldPVwiaXRlbVtrZXlGaWVsZF1cIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlVmFsdWVzKGxhc3QpXCJcbiAgICAob3B0aW9uQ2hhbmdlZCk9XCJpbnB1dE9wdGlvbkNoYW5nZWQoJGV2ZW50LCBpbmRleClcIj5cbiAgPC9pbnB1dC10ZXh0PlxuICA8aW5wdXQtdGV4dFxuICAgIGNsYXNzPVwiaW5wdXQtdmFsdWVcIlxuICAgIFtzaXplXT1cInNpemVcIlxuICAgIFtsYWJlbF09XCJsYWJlbFZhbHVlXCJcbiAgICBbKG5nTW9kZWwpXT1cIml0ZW1bdmFsdWVGaWVsZF1cIj5cbiAgPC9pbnB1dC10ZXh0PlxuICA8YnV0dG9uIGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiIFttYXRUb29sdGlwXT1cInJlbW92ZUxhYmVsXCIgW25nQ2xhc3NdPVwieydkZWxldGUtYnV0dG9uLXNsaW0nOiBzaXplID09PSAnU0xJTSd9XCIgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiIWxhc3RcIlxuICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGluZGV4KVwiPlxuICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG4iXX0=
@@ -3,6 +3,7 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { ValueAccessorBase } from '../value-acessor-base';
4
4
  import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
5
  import { Subject } from 'rxjs';
6
+ import { isNumber } from 'lodash';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common";
8
9
  import * as i2 from "@angular/forms";
@@ -69,17 +70,26 @@ class InputTextComponent extends ValueAccessorBase {
69
70
  return this.size === 'DEFAULT';
70
71
  }
71
72
  widthInput() {
72
- return this.inputOptions.length > 0 ? 100 - this.widthPercentageInputOptions : 100;
73
+ if (isNumber(this.widthPercentageInputOptions)) {
74
+ return this.inputOptions.length > 0 ? 100 - this.widthPercentageInputOptions : 100;
75
+ }
76
+ return 100;
73
77
  }
74
78
  onOptionSelected(event) {
75
79
  this.optionChanged.emit(event.value);
76
80
  }
81
+ getSelectWidth() {
82
+ if (isNumber(this.widthPercentageInputOptions)) {
83
+ return `${this.widthPercentageInputOptions}%`;
84
+ }
85
+ return this.widthPercentageInputOptions;
86
+ }
77
87
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
78
88
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: InputTextComponent, selector: "input-text", inputs: { label: "label", disabled: "disabled", iconSuffix: "iconSuffix", iconPrefix: "iconPrefix", autoComplete: "autoComplete", size: "size", debounceTime: "debounceTime", widthPercentageInputOptions: "widthPercentageInputOptions", inputOptions: "inputOptions", inputOptionsInitSelected: "inputOptionsInitSelected" }, outputs: { suffixIconClick: "suffixIconClick", prefixIconClick: "prefixIconClick", onDebounce: "onDebounce", optionChanged: "optionChanged" }, providers: [{
79
89
  provide: NG_VALUE_ACCESSOR,
80
90
  useExisting: forwardRef(() => InputTextComponent),
81
91
  multi: true
82
- }], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"apipass-input-text\" [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\" appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-icon class=\"mat-icon-prefix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matPrefix *ngIf=\"iconPrefix\" (click)=\"prefixClick()\">{{iconPrefix}}</mat-icon>\n <input matInput type=\"text\" class=\"input-text\" [ngStyle]=\"{ width: widthInput() + '%' }\" [(ngModel)]=\"value\"\n [disabled]=\"disabled\" [autocomplete]=\"autoComplete\"\n (input)=\"onSearchInput()\" />\n <div *ngIf=\"this.inputOptions.length > 0\" class=\"select-container\"\n [ngStyle]=\"{ width: widthPercentageInputOptions + '%' }\" [ngClass]=\"{ 'select-container': isDefault(),\n 'select-container-slim':isSlim()}\">\n <mat-form-field [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\">\n <mat-select [(value)]=\"inputOptionsInitSelected\" (selectionChange)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of inputOptions\" [value]=\"item.value\">{{item.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <mat-icon class=\"mat-icon-suffix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matSuffix *ngIf=\"iconSuffix\" (click)=\"suffixClick()\">{{iconSuffix}}</mat-icon>\n</mat-form-field>\n", styles: [".apipass-input-text,.apipass-input-text-slim{width:100%}.apipass-input-text .mdc-text-field--outlined,.apipass-input-text-slim .mdc-text-field--outlined{padding-right:5px}.apipass-input-text .select-container,.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container,.apipass-input-text-slim .select-container-slim{position:absolute;right:0;top:50%;transform:translateY(-50%)}.apipass-input-text .select-container .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-notched-outline{height:80%;margin-top:5px}.apipass-input-text .select-container .mdc-notched-outline__leading,.apipass-input-text .select-container .mdc-notched-outline__notch,.apipass-input-text .select-container .mdc-notched-outline__trailing,.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container .mdc-notched-outline__leading,.apipass-input-text-slim .select-container .mdc-notched-outline__notch,.apipass-input-text-slim .select-container .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{border-top:none!important;border-bottom:none!important;border-right:none!important;border-radius:0!important;height:43px}.apipass-input-text .select-container .mat-mdc-select-value,.apipass-input-text .select-container-slim .mat-mdc-select-value,.apipass-input-text-slim .select-container .mat-mdc-select-value,.apipass-input-text-slim .select-container-slim .mat-mdc-select-value{text-align:center}.apipass-input-text .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-text-field--outlined .mdc-notched-outline{margin-top:1px!important}.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container-slim{top:50%!important}.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{height:29px}.apipass-input-text .mdc-text-field,.apipass-input-text-slim .mdc-text-field{padding:0 5px!important}\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.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: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
92
+ }], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"apipass-input-text\" [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\" appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-icon class=\"mat-icon-prefix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matPrefix *ngIf=\"iconPrefix\" (click)=\"prefixClick()\">{{iconPrefix}}</mat-icon>\n <input matInput type=\"text\" class=\"input-text\" [ngStyle]=\"{ width: widthInput() + '%' }\" [(ngModel)]=\"value\"\n [disabled]=\"disabled\" [autocomplete]=\"autoComplete\"\n (input)=\"onSearchInput()\" />\n <div *ngIf=\"this.inputOptions.length > 0\" class=\"select-container\"\n [ngStyle]=\"{ width: getSelectWidth() }\" [ngClass]=\"{ 'select-container': isDefault(),\n 'select-container-slim':isSlim()}\">\n <mat-form-field [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\">\n <mat-select [(value)]=\"inputOptionsInitSelected\" (selectionChange)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of inputOptions\" [value]=\"item.value\">{{item.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <mat-icon class=\"mat-icon-suffix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matSuffix *ngIf=\"iconSuffix\" (click)=\"suffixClick()\">{{iconSuffix}}</mat-icon>\n</mat-form-field>\n", styles: [".apipass-input-text,.apipass-input-text-slim{width:100%}.apipass-input-text .mdc-text-field--outlined,.apipass-input-text-slim .mdc-text-field--outlined{padding-right:5px}.apipass-input-text .select-container,.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container,.apipass-input-text-slim .select-container-slim{position:absolute;right:0;top:50%;transform:translateY(-50%)}.apipass-input-text .select-container .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-notched-outline{height:80%;margin-top:5px}.apipass-input-text .select-container .mdc-notched-outline__leading,.apipass-input-text .select-container .mdc-notched-outline__notch,.apipass-input-text .select-container .mdc-notched-outline__trailing,.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container .mdc-notched-outline__leading,.apipass-input-text-slim .select-container .mdc-notched-outline__notch,.apipass-input-text-slim .select-container .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{border-top:none!important;border-bottom:none!important;border-right:none!important;border-radius:0!important;height:43px}.apipass-input-text .select-container .mat-mdc-select-value,.apipass-input-text .select-container-slim .mat-mdc-select-value,.apipass-input-text-slim .select-container .mat-mdc-select-value,.apipass-input-text-slim .select-container-slim .mat-mdc-select-value{text-align:left;padding-left:5px}.apipass-input-text .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-text-field--outlined .mdc-notched-outline{margin-top:1px!important}.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container-slim{top:50%!important}.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{height:29px}.apipass-input-text .mdc-text-field,.apipass-input-text-slim .mdc-text-field{padding:0 5px!important}\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.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: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
83
93
  }
84
94
  export { InputTextComponent };
85
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputTextComponent, decorators: [{
@@ -88,7 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
88
98
  provide: NG_VALUE_ACCESSOR,
89
99
  useExisting: forwardRef(() => InputTextComponent),
90
100
  multi: true
91
- }], encapsulation: ViewEncapsulation.None, template: "<mat-form-field class=\"apipass-input-text\" [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\" appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-icon class=\"mat-icon-prefix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matPrefix *ngIf=\"iconPrefix\" (click)=\"prefixClick()\">{{iconPrefix}}</mat-icon>\n <input matInput type=\"text\" class=\"input-text\" [ngStyle]=\"{ width: widthInput() + '%' }\" [(ngModel)]=\"value\"\n [disabled]=\"disabled\" [autocomplete]=\"autoComplete\"\n (input)=\"onSearchInput()\" />\n <div *ngIf=\"this.inputOptions.length > 0\" class=\"select-container\"\n [ngStyle]=\"{ width: widthPercentageInputOptions + '%' }\" [ngClass]=\"{ 'select-container': isDefault(),\n 'select-container-slim':isSlim()}\">\n <mat-form-field [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\">\n <mat-select [(value)]=\"inputOptionsInitSelected\" (selectionChange)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of inputOptions\" [value]=\"item.value\">{{item.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <mat-icon class=\"mat-icon-suffix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matSuffix *ngIf=\"iconSuffix\" (click)=\"suffixClick()\">{{iconSuffix}}</mat-icon>\n</mat-form-field>\n", styles: [".apipass-input-text,.apipass-input-text-slim{width:100%}.apipass-input-text .mdc-text-field--outlined,.apipass-input-text-slim .mdc-text-field--outlined{padding-right:5px}.apipass-input-text .select-container,.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container,.apipass-input-text-slim .select-container-slim{position:absolute;right:0;top:50%;transform:translateY(-50%)}.apipass-input-text .select-container .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-notched-outline{height:80%;margin-top:5px}.apipass-input-text .select-container .mdc-notched-outline__leading,.apipass-input-text .select-container .mdc-notched-outline__notch,.apipass-input-text .select-container .mdc-notched-outline__trailing,.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container .mdc-notched-outline__leading,.apipass-input-text-slim .select-container .mdc-notched-outline__notch,.apipass-input-text-slim .select-container .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{border-top:none!important;border-bottom:none!important;border-right:none!important;border-radius:0!important;height:43px}.apipass-input-text .select-container .mat-mdc-select-value,.apipass-input-text .select-container-slim .mat-mdc-select-value,.apipass-input-text-slim .select-container .mat-mdc-select-value,.apipass-input-text-slim .select-container-slim .mat-mdc-select-value{text-align:center}.apipass-input-text .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-text-field--outlined .mdc-notched-outline{margin-top:1px!important}.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container-slim{top:50%!important}.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{height:29px}.apipass-input-text .mdc-text-field,.apipass-input-text-slim .mdc-text-field{padding:0 5px!important}\n"] }]
101
+ }], encapsulation: ViewEncapsulation.None, template: "<mat-form-field class=\"apipass-input-text\" [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\" appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-icon class=\"mat-icon-prefix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matPrefix *ngIf=\"iconPrefix\" (click)=\"prefixClick()\">{{iconPrefix}}</mat-icon>\n <input matInput type=\"text\" class=\"input-text\" [ngStyle]=\"{ width: widthInput() + '%' }\" [(ngModel)]=\"value\"\n [disabled]=\"disabled\" [autocomplete]=\"autoComplete\"\n (input)=\"onSearchInput()\" />\n <div *ngIf=\"this.inputOptions.length > 0\" class=\"select-container\"\n [ngStyle]=\"{ width: getSelectWidth() }\" [ngClass]=\"{ 'select-container': isDefault(),\n 'select-container-slim':isSlim()}\">\n <mat-form-field [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\">\n <mat-select [(value)]=\"inputOptionsInitSelected\" (selectionChange)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of inputOptions\" [value]=\"item.value\">{{item.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <mat-icon class=\"mat-icon-suffix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matSuffix *ngIf=\"iconSuffix\" (click)=\"suffixClick()\">{{iconSuffix}}</mat-icon>\n</mat-form-field>\n", styles: [".apipass-input-text,.apipass-input-text-slim{width:100%}.apipass-input-text .mdc-text-field--outlined,.apipass-input-text-slim .mdc-text-field--outlined{padding-right:5px}.apipass-input-text .select-container,.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container,.apipass-input-text-slim .select-container-slim{position:absolute;right:0;top:50%;transform:translateY(-50%)}.apipass-input-text .select-container .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-notched-outline{height:80%;margin-top:5px}.apipass-input-text .select-container .mdc-notched-outline__leading,.apipass-input-text .select-container .mdc-notched-outline__notch,.apipass-input-text .select-container .mdc-notched-outline__trailing,.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container .mdc-notched-outline__leading,.apipass-input-text-slim .select-container .mdc-notched-outline__notch,.apipass-input-text-slim .select-container .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{border-top:none!important;border-bottom:none!important;border-right:none!important;border-radius:0!important;height:43px}.apipass-input-text .select-container .mat-mdc-select-value,.apipass-input-text .select-container-slim .mat-mdc-select-value,.apipass-input-text-slim .select-container .mat-mdc-select-value,.apipass-input-text-slim .select-container-slim .mat-mdc-select-value{text-align:left;padding-left:5px}.apipass-input-text .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-text-field--outlined .mdc-notched-outline{margin-top:1px!important}.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container-slim{top:50%!important}.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{height:29px}.apipass-input-text .mdc-text-field,.apipass-input-text-slim .mdc-text-field{padding:0 5px!important}\n"] }]
92
102
  }], propDecorators: { label: [{
93
103
  type: Input
94
104
  }], disabled: [{
@@ -118,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
118
128
  }], optionChanged: [{
119
129
  type: Output
120
130
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNyRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBTy9CLE1BV2Esa0JBQW1CLFNBQVEsaUJBQXlCO0lBRXZELHlCQUF5QixDQUFRO0lBQ2pDLGFBQWEsR0FBdUIsRUFBRSxDQUFBO0lBRXJDLEtBQUssR0FBRyxFQUFFLENBQUE7SUFDVixRQUFRLEdBQUcsS0FBSyxDQUFBO0lBQ2hCLFVBQVUsR0FBRyxFQUFFLENBQUE7SUFDZixVQUFVLEdBQUcsRUFBRSxDQUFBO0lBQ2YsWUFBWSxHQUFHLElBQUksQ0FBQTtJQUNuQixJQUFJLEdBQXVCLFNBQVMsQ0FBQTtJQUNwQyxZQUFZLEdBQVcsQ0FBQyxDQUFBO0lBQ3hCLDJCQUEyQixHQUFXLEVBQUUsQ0FBQTtJQUVqRCxJQUNJLFlBQVksQ0FBQyxZQUFnQztRQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQTtJQUNuQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2Qs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QUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFHRixZQUFZO3NCQURmLEtBQUs7Z0JBVUYsd0JBQXdCO3NCQUQzQixLQUFLO2dCQVNXLGVBQWU7c0JBQS9CLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUNVLGFBQWE7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFZhbHVlQWNjZXNzb3JCYXNlIH0gZnJvbSAnLi4vdmFsdWUtYWNlc3Nvci1iYXNlJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dE9wdGlvbnNUeXBlIHtcbiAgdmFsdWU6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lucHV0LXRleHQnLFxuICB0ZW1wbGF0ZVVybDogJ2lucHV0LXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnaW5wdXQtdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRUZXh0Q29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFRleHRDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yQmFzZTxzdHJpbmc+IHtcblxuICBwcml2YXRlIF9pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQ6IHN0cmluZ1xuICBwcml2YXRlIF9pbnB1dE9wdGlvbnM6IElucHV0T3B0aW9uc1R5cGVbXSA9IFtdXG5cbiAgQElucHV0KCkgbGFiZWwgPSAnJ1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIGljb25TdWZmaXggPSAnJ1xuICBASW5wdXQoKSBpY29uUHJlZml4ID0gJydcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlID0gJ29uJ1xuICBASW5wdXQoKSBzaXplOiAnREVGQVVMVCcgfCAnU0xJTScgPSAnREVGQVVMVCdcbiAgQElucHV0KCkgZGVib3VuY2VUaW1lOiBudW1iZXIgPSAwXG4gIEBJbnB1dCgpIHdpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9uczogbnVtYmVyID0gMTBcblxuICBASW5wdXQoKVxuICBzZXQgaW5wdXRPcHRpb25zKGlucHV0T3B0aW9uczogSW5wdXRPcHRpb25zVHlwZVtdKSB7XG4gICAgdGhpcy5faW5wdXRPcHRpb25zID0gaW5wdXRPcHRpb25zXG4gIH1cblxuICBnZXQgaW5wdXRPcHRpb25zKCk6IElucHV0T3B0aW9uc1R5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0T3B0aW9uc1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZChpbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQ6IHN0cmluZykge1xuICAgIHRoaXMuX2lucHV0T3B0aW9uc0luaXRTZWxlY3RlZCA9IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZFxuICB9XG5cbiAgZ2V0IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWRcbiAgfVxuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc3VmZml4SWNvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gIEBPdXRwdXQoKSBwdWJsaWMgcHJlZml4SWNvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EZWJvdW5jZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuICBAT3V0cHV0KCkgcHVibGljIG9wdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KClcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFRlcm1zOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KClcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRlcm1zLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5vbkRlYm91bmNlLmVtaXQodmFsdWUpXG4gICAgfSk7XG4gICAgdGhpcy5pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQgfHw9IHRoaXMuaW5wdXRPcHRpb25zPy5bMF0/LnZhbHVlXG4gIH1cblxuICBvblNlYXJjaElucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlYm91bmNlVGltZSkge1xuICAgICAgdGhpcy5zZWFyY2hUZXJtcy5uZXh0KHRoaXMudmFsdWUpXG4gICAgfVxuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDMyKSB7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgKz0gJyAnXG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gIH1cblxuICBwcmVmaXhDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnByZWZpeEljb25DbGljay5lbWl0KHRydWUpXG4gIH1cblxuICBzdWZmaXhDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnN1ZmZpeEljb25DbGljay5lbWl0KHRydWUpXG4gIH1cblxuICBpc1NsaW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ1NMSU0nXG4gIH1cblxuICBpc0RlZmF1bHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ0RFRkFVTFQnXG4gIH1cblxuICB3aWR0aElucHV0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRPcHRpb25zLmxlbmd0aCA+IDAgPyAxMDAgLSB0aGlzLndpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9ucyA6IDEwMFxuICB9XG5cbiAgb25PcHRpb25TZWxlY3RlZChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25DaGFuZ2VkLmVtaXQoZXZlbnQudmFsdWUpXG4gIH1cblxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYXBpcGFzcy1pbnB1dC10ZXh0XCIgW25nQ2xhc3NdPVwieydhcGlwYXNzLWlucHV0LXRleHQtc2xpbSc6IGlzU2xpbSgpLCAnYXBpcGFzcy1pbnB1dC10ZXh0JzogaXNEZWZhdWx0KCl9XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9tYXQtbGFiZWw+XG4gIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXByZWZpeFwiIFtuZ0NsYXNzXT1cInsnbWF0LWljb24tc2xpbSc6IGlzU2xpbSgpfVwiIG1hdFByZWZpeCAqbmdJZj1cImljb25QcmVmaXhcIiAoY2xpY2spPVwicHJlZml4Q2xpY2soKVwiPnt7aWNvblByZWZpeH19PC9tYXQtaWNvbj5cbiAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC10ZXh0XCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGhJbnB1dCgpICsgJyUnIH1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXV0b2NvbXBsZXRlXT1cImF1dG9Db21wbGV0ZVwiXG4gICAgKGlucHV0KT1cIm9uU2VhcmNoSW5wdXQoKVwiIC8+XG4gIDxkaXYgKm5nSWY9XCJ0aGlzLmlucHV0T3B0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJzZWxlY3QtY29udGFpbmVyXCJcbiAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnMgKyAnJScgfVwiIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdC1jb250YWluZXInOiBpc0RlZmF1bHQoKSxcbiAgICAnc2VsZWN0LWNvbnRhaW5lci1zbGltJzppc1NsaW0oKX1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgW25nQ2xhc3NdPVwieydhcGlwYXNzLWlucHV0LXRleHQtc2xpbSc6IGlzU2xpbSgpLCAnYXBpcGFzcy1pbnB1dC10ZXh0JzogaXNEZWZhdWx0KCl9XCI+XG4gICAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJpbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnB1dE9wdGlvbnNcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPnt7aXRlbS50aXRsZX19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1zdWZmaXhcIiBbbmdDbGFzc109XCJ7J21hdC1pY29uLXNsaW0nOiBpc1NsaW0oKX1cIiBtYXRTdWZmaXggKm5nSWY9XCJpY29uU3VmZml4XCIgKGNsaWNrKT1cInN1ZmZpeENsaWNrKClcIj57e2ljb25TdWZmaXh9fTwvbWF0LWljb24+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNyRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7QUFPbEMsTUFXYSxrQkFBbUIsU0FBUSxpQkFBeUI7SUFFdkQseUJBQXlCLENBQVE7SUFDakMsYUFBYSxHQUF1QixFQUFFLENBQUE7SUFFckMsS0FBSyxHQUFHLEVBQUUsQ0FBQTtJQUNWLFFBQVEsR0FBRyxLQUFLLENBQUE7SUFDaEIsVUFBVSxHQUFHLEVBQUUsQ0FBQTtJQUNmLFVBQVUsR0FBRyxFQUFFLENBQUE7SUFDZixZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQ25CLElBQUksR0FBdUIsU0FBUyxDQUFBO0lBQ3BDLFlBQVksR0FBVyxDQUFDLENBQUE7SUFDeEIsMkJBQTJCLEdBQVEsRUFBRSxDQUFBO0lBRTlDLElBQ0ksWUFBWSxDQUFDLFlBQWdDO1FBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcs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QUNqRCxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsaURDcEJKLGsxQ0FpQkE7O1NETWEsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMsaUJBQ2EsaUJBQWlCLENBQUMsSUFBSTs4QkFPNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUdGLFlBQVk7c0JBRGYsS0FBSztnQkFVRix3QkFBd0I7c0JBRDNCLEtBQUs7Z0JBU1csZUFBZTtzQkFBL0IsTUFBTTtnQkFDVSxlQUFlO3NCQUEvQixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvckJhc2UgfSBmcm9tICcuLi92YWx1ZS1hY2Vzc29yLWJhc2UnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElucHV0T3B0aW9uc1R5cGUge1xuICB2YWx1ZTogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW5wdXQtdGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydpbnB1dC10ZXh0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRleHRDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dENvbXBvbmVudCBleHRlbmRzIFZhbHVlQWNjZXNzb3JCYXNlPHN0cmluZz4ge1xuXG4gIHByaXZhdGUgX2lucHV0T3B0aW9uc0luaXRTZWxlY3RlZDogc3RyaW5nXG4gIHByaXZhdGUgX2lucHV0T3B0aW9uczogSW5wdXRPcHRpb25zVHlwZVtdID0gW11cblxuICBASW5wdXQoKSBsYWJlbCA9ICcnXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2VcbiAgQElucHV0KCkgaWNvblN1ZmZpeCA9ICcnXG4gIEBJbnB1dCgpIGljb25QcmVmaXggPSAnJ1xuICBASW5wdXQoKSBhdXRvQ29tcGxldGUgPSAnb24nXG4gIEBJbnB1dCgpIHNpemU6ICdERUZBVUxUJyB8ICdTTElNJyA9ICdERUZBVUxUJ1xuICBASW5wdXQoKSBkZWJvdW5jZVRpbWU6IG51bWJlciA9IDBcbiAgQElucHV0KCkgd2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zOiBhbnkgPSAxMFxuXG4gIEBJbnB1dCgpXG4gIHNldCBpbnB1dE9wdGlvbnMoaW5wdXRPcHRpb25zOiBJbnB1dE9wdGlvbnNUeXBlW10pIHtcbiAgICB0aGlzLl9pbnB1dE9wdGlvbnMgPSBpbnB1dE9wdGlvbnNcbiAgfVxuXG4gIGdldCBpbnB1dE9wdGlvbnMoKTogSW5wdXRPcHRpb25zVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRPcHRpb25zXG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkKGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZDogc3RyaW5nKSB7XG4gICAgdGhpcy5faW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkID0gaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkXG4gIH1cblxuICBnZXQgaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0T3B0aW9uc0luaXRTZWxlY3RlZFxuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBzdWZmaXhJY29uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBwcmVmaXhJY29uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRlYm91bmNlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG4gIEBPdXRwdXQoKSBwdWJsaWMgb3B0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoVGVybXM6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGVybXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLm9uRGVib3VuY2UuZW1pdCh2YWx1ZSlcbiAgICB9KTtcbiAgICB0aGlzLmlucHV0T3B0aW9uc0luaXRTZWxlY3RlZCB8fD0gdGhpcy5pbnB1dE9wdGlvbnM/LlswXT8udmFsdWVcbiAgfVxuXG4gIG9uU2VhcmNoSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVib3VuY2VUaW1lKSB7XG4gICAgICB0aGlzLnNlYXJjaFRlcm1zLm5leHQodGhpcy52YWx1ZSlcbiAgICB9XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC53aGljaCA9PT0gMzIpIHtcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSArPSAnICdcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIHByZWZpeENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMucHJlZml4SWNvbkNsaWNrLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIHN1ZmZpeENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc3VmZml4SWNvbkNsaWNrLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIGlzU2xpbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnU0xJTSdcbiAgfVxuXG4gIGlzRGVmYXVsdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnREVGQVVMVCdcbiAgfVxuXG4gIHdpZHRoSW5wdXQoKTogbnVtYmVyIHtcbiAgICBpZiAoaXNOdW1iZXIodGhpcy53aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnB1dE9wdGlvbnMubGVuZ3RoID4gMCA/IDEwMCAtIHRoaXMud2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zIDogMTAwXG4gICAgfVxuICAgIHJldHVybiAxMDBcbiAgfVxuXG4gIG9uT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9uQ2hhbmdlZC5lbWl0KGV2ZW50LnZhbHVlKVxuICB9XG5cbiAgZ2V0U2VsZWN0V2lkdGgoKTogc3RyaW5nIHtcbiAgICBpZiAoaXNOdW1iZXIodGhpcy53aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy53aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnN9JWBcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMud2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zO1xuICB9XG5cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFwaXBhc3MtaW5wdXQtdGV4dFwiIFtuZ0NsYXNzXT1cInsnYXBpcGFzcy1pbnB1dC10ZXh0LXNsaW0nOiBpc1NsaW0oKSwgJ2FwaXBhc3MtaW5wdXQtdGV4dCc6IGlzRGVmYXVsdCgpfVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWx9fTwvbWF0LWxhYmVsPlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1wcmVmaXhcIiBbbmdDbGFzc109XCJ7J21hdC1pY29uLXNsaW0nOiBpc1NsaW0oKX1cIiBtYXRQcmVmaXggKm5nSWY9XCJpY29uUHJlZml4XCIgKGNsaWNrKT1cInByZWZpeENsaWNrKClcIj57e2ljb25QcmVmaXh9fTwvbWF0LWljb24+XG4gIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiaW5wdXQtdGV4dFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoSW5wdXQoKSArICclJyB9XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW2F1dG9jb21wbGV0ZV09XCJhdXRvQ29tcGxldGVcIlxuICAgIChpbnB1dCk9XCJvblNlYXJjaElucHV0KClcIiAvPlxuICA8ZGl2ICpuZ0lmPVwidGhpcy5pbnB1dE9wdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwic2VsZWN0LWNvbnRhaW5lclwiXG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogZ2V0U2VsZWN0V2lkdGgoKSB9XCIgW25nQ2xhc3NdPVwieyAnc2VsZWN0LWNvbnRhaW5lcic6IGlzRGVmYXVsdCgpLFxuICAgICdzZWxlY3QtY29udGFpbmVyLXNsaW0nOmlzU2xpbSgpfVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7J2FwaXBhc3MtaW5wdXQtdGV4dC1zbGltJzogaXNTbGltKCksICdhcGlwYXNzLWlucHV0LXRleHQnOiBpc0RlZmF1bHQoKX1cIj5cbiAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cImlucHV0T3B0aW9uc0luaXRTZWxlY3RlZFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25PcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGlucHV0T3B0aW9uc1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3tpdGVtLnRpdGxlfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXN1ZmZpeFwiIFtuZ0NsYXNzXT1cInsnbWF0LWljb24tc2xpbSc6IGlzU2xpbSgpfVwiIG1hdFN1ZmZpeCAqbmdJZj1cImljb25TdWZmaXhcIiAoY2xpY2spPVwic3VmZml4Q2xpY2soKVwiPnt7aWNvblN1ZmZpeH19PC9tYXQtaWNvbj5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
@@ -23,6 +23,7 @@ import * as i3$1 from '@angular/material/tooltip';
23
23
  import { MatTooltipModule } from '@angular/material/tooltip';
24
24
  import { debounceTime, distinctUntilChanged, takeUntil, tap, skip } from 'rxjs/operators';
25
25
  import { Subject, fromEvent } from 'rxjs';
26
+ import { isNumber } from 'lodash';
26
27
  import * as i2$1 from '@apipass/icons';
27
28
  import { IconsModule } from '@apipass/icons';
28
29
  import * as i3$2 from '@ng-select/ng-select';
@@ -180,17 +181,26 @@ class InputTextComponent extends ValueAccessorBase {
180
181
  return this.size === 'DEFAULT';
181
182
  }
182
183
  widthInput() {
183
- return this.inputOptions.length > 0 ? 100 - this.widthPercentageInputOptions : 100;
184
+ if (isNumber(this.widthPercentageInputOptions)) {
185
+ return this.inputOptions.length > 0 ? 100 - this.widthPercentageInputOptions : 100;
186
+ }
187
+ return 100;
184
188
  }
185
189
  onOptionSelected(event) {
186
190
  this.optionChanged.emit(event.value);
187
191
  }
192
+ getSelectWidth() {
193
+ if (isNumber(this.widthPercentageInputOptions)) {
194
+ return `${this.widthPercentageInputOptions}%`;
195
+ }
196
+ return this.widthPercentageInputOptions;
197
+ }
188
198
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
189
199
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: InputTextComponent, selector: "input-text", inputs: { label: "label", disabled: "disabled", iconSuffix: "iconSuffix", iconPrefix: "iconPrefix", autoComplete: "autoComplete", size: "size", debounceTime: "debounceTime", widthPercentageInputOptions: "widthPercentageInputOptions", inputOptions: "inputOptions", inputOptionsInitSelected: "inputOptionsInitSelected" }, outputs: { suffixIconClick: "suffixIconClick", prefixIconClick: "prefixIconClick", onDebounce: "onDebounce", optionChanged: "optionChanged" }, providers: [{
190
200
  provide: NG_VALUE_ACCESSOR,
191
201
  useExisting: forwardRef(() => InputTextComponent),
192
202
  multi: true
193
- }], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"apipass-input-text\" [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\" appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-icon class=\"mat-icon-prefix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matPrefix *ngIf=\"iconPrefix\" (click)=\"prefixClick()\">{{iconPrefix}}</mat-icon>\n <input matInput type=\"text\" class=\"input-text\" [ngStyle]=\"{ width: widthInput() + '%' }\" [(ngModel)]=\"value\"\n [disabled]=\"disabled\" [autocomplete]=\"autoComplete\"\n (input)=\"onSearchInput()\" />\n <div *ngIf=\"this.inputOptions.length > 0\" class=\"select-container\"\n [ngStyle]=\"{ width: widthPercentageInputOptions + '%' }\" [ngClass]=\"{ 'select-container': isDefault(),\n 'select-container-slim':isSlim()}\">\n <mat-form-field [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\">\n <mat-select [(value)]=\"inputOptionsInitSelected\" (selectionChange)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of inputOptions\" [value]=\"item.value\">{{item.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <mat-icon class=\"mat-icon-suffix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matSuffix *ngIf=\"iconSuffix\" (click)=\"suffixClick()\">{{iconSuffix}}</mat-icon>\n</mat-form-field>\n", styles: [".apipass-input-text,.apipass-input-text-slim{width:100%}.apipass-input-text .mdc-text-field--outlined,.apipass-input-text-slim .mdc-text-field--outlined{padding-right:5px}.apipass-input-text .select-container,.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container,.apipass-input-text-slim .select-container-slim{position:absolute;right:0;top:50%;transform:translateY(-50%)}.apipass-input-text .select-container .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-notched-outline{height:80%;margin-top:5px}.apipass-input-text .select-container .mdc-notched-outline__leading,.apipass-input-text .select-container .mdc-notched-outline__notch,.apipass-input-text .select-container .mdc-notched-outline__trailing,.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container .mdc-notched-outline__leading,.apipass-input-text-slim .select-container .mdc-notched-outline__notch,.apipass-input-text-slim .select-container .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{border-top:none!important;border-bottom:none!important;border-right:none!important;border-radius:0!important;height:43px}.apipass-input-text .select-container .mat-mdc-select-value,.apipass-input-text .select-container-slim .mat-mdc-select-value,.apipass-input-text-slim .select-container .mat-mdc-select-value,.apipass-input-text-slim .select-container-slim .mat-mdc-select-value{text-align:center}.apipass-input-text .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-text-field--outlined .mdc-notched-outline{margin-top:1px!important}.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container-slim{top:50%!important}.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{height:29px}.apipass-input-text .mdc-text-field,.apipass-input-text-slim .mdc-text-field{padding:0 5px!important}\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.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: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
203
+ }], usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"apipass-input-text\" [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\" appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-icon class=\"mat-icon-prefix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matPrefix *ngIf=\"iconPrefix\" (click)=\"prefixClick()\">{{iconPrefix}}</mat-icon>\n <input matInput type=\"text\" class=\"input-text\" [ngStyle]=\"{ width: widthInput() + '%' }\" [(ngModel)]=\"value\"\n [disabled]=\"disabled\" [autocomplete]=\"autoComplete\"\n (input)=\"onSearchInput()\" />\n <div *ngIf=\"this.inputOptions.length > 0\" class=\"select-container\"\n [ngStyle]=\"{ width: getSelectWidth() }\" [ngClass]=\"{ 'select-container': isDefault(),\n 'select-container-slim':isSlim()}\">\n <mat-form-field [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\">\n <mat-select [(value)]=\"inputOptionsInitSelected\" (selectionChange)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of inputOptions\" [value]=\"item.value\">{{item.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <mat-icon class=\"mat-icon-suffix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matSuffix *ngIf=\"iconSuffix\" (click)=\"suffixClick()\">{{iconSuffix}}</mat-icon>\n</mat-form-field>\n", styles: [".apipass-input-text,.apipass-input-text-slim{width:100%}.apipass-input-text .mdc-text-field--outlined,.apipass-input-text-slim .mdc-text-field--outlined{padding-right:5px}.apipass-input-text .select-container,.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container,.apipass-input-text-slim .select-container-slim{position:absolute;right:0;top:50%;transform:translateY(-50%)}.apipass-input-text .select-container .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-notched-outline{height:80%;margin-top:5px}.apipass-input-text .select-container .mdc-notched-outline__leading,.apipass-input-text .select-container .mdc-notched-outline__notch,.apipass-input-text .select-container .mdc-notched-outline__trailing,.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container .mdc-notched-outline__leading,.apipass-input-text-slim .select-container .mdc-notched-outline__notch,.apipass-input-text-slim .select-container .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{border-top:none!important;border-bottom:none!important;border-right:none!important;border-radius:0!important;height:43px}.apipass-input-text .select-container .mat-mdc-select-value,.apipass-input-text .select-container-slim .mat-mdc-select-value,.apipass-input-text-slim .select-container .mat-mdc-select-value,.apipass-input-text-slim .select-container-slim .mat-mdc-select-value{text-align:left;padding-left:5px}.apipass-input-text .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-text-field--outlined .mdc-notched-outline{margin-top:1px!important}.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container-slim{top:50%!important}.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{height:29px}.apipass-input-text .mdc-text-field,.apipass-input-text-slim .mdc-text-field{padding:0 5px!important}\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.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: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
194
204
  }
195
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputTextComponent, decorators: [{
196
206
  type: Component,
@@ -198,7 +208,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
198
208
  provide: NG_VALUE_ACCESSOR,
199
209
  useExisting: forwardRef(() => InputTextComponent),
200
210
  multi: true
201
- }], encapsulation: ViewEncapsulation.None, template: "<mat-form-field class=\"apipass-input-text\" [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\" appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-icon class=\"mat-icon-prefix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matPrefix *ngIf=\"iconPrefix\" (click)=\"prefixClick()\">{{iconPrefix}}</mat-icon>\n <input matInput type=\"text\" class=\"input-text\" [ngStyle]=\"{ width: widthInput() + '%' }\" [(ngModel)]=\"value\"\n [disabled]=\"disabled\" [autocomplete]=\"autoComplete\"\n (input)=\"onSearchInput()\" />\n <div *ngIf=\"this.inputOptions.length > 0\" class=\"select-container\"\n [ngStyle]=\"{ width: widthPercentageInputOptions + '%' }\" [ngClass]=\"{ 'select-container': isDefault(),\n 'select-container-slim':isSlim()}\">\n <mat-form-field [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\">\n <mat-select [(value)]=\"inputOptionsInitSelected\" (selectionChange)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of inputOptions\" [value]=\"item.value\">{{item.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <mat-icon class=\"mat-icon-suffix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matSuffix *ngIf=\"iconSuffix\" (click)=\"suffixClick()\">{{iconSuffix}}</mat-icon>\n</mat-form-field>\n", styles: [".apipass-input-text,.apipass-input-text-slim{width:100%}.apipass-input-text .mdc-text-field--outlined,.apipass-input-text-slim .mdc-text-field--outlined{padding-right:5px}.apipass-input-text .select-container,.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container,.apipass-input-text-slim .select-container-slim{position:absolute;right:0;top:50%;transform:translateY(-50%)}.apipass-input-text .select-container .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-notched-outline{height:80%;margin-top:5px}.apipass-input-text .select-container .mdc-notched-outline__leading,.apipass-input-text .select-container .mdc-notched-outline__notch,.apipass-input-text .select-container .mdc-notched-outline__trailing,.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container .mdc-notched-outline__leading,.apipass-input-text-slim .select-container .mdc-notched-outline__notch,.apipass-input-text-slim .select-container .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{border-top:none!important;border-bottom:none!important;border-right:none!important;border-radius:0!important;height:43px}.apipass-input-text .select-container .mat-mdc-select-value,.apipass-input-text .select-container-slim .mat-mdc-select-value,.apipass-input-text-slim .select-container .mat-mdc-select-value,.apipass-input-text-slim .select-container-slim .mat-mdc-select-value{text-align:center}.apipass-input-text .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-text-field--outlined .mdc-notched-outline{margin-top:1px!important}.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container-slim{top:50%!important}.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{height:29px}.apipass-input-text .mdc-text-field,.apipass-input-text-slim .mdc-text-field{padding:0 5px!important}\n"] }]
211
+ }], encapsulation: ViewEncapsulation.None, template: "<mat-form-field class=\"apipass-input-text\" [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\" appearance=\"outline\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-icon class=\"mat-icon-prefix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matPrefix *ngIf=\"iconPrefix\" (click)=\"prefixClick()\">{{iconPrefix}}</mat-icon>\n <input matInput type=\"text\" class=\"input-text\" [ngStyle]=\"{ width: widthInput() + '%' }\" [(ngModel)]=\"value\"\n [disabled]=\"disabled\" [autocomplete]=\"autoComplete\"\n (input)=\"onSearchInput()\" />\n <div *ngIf=\"this.inputOptions.length > 0\" class=\"select-container\"\n [ngStyle]=\"{ width: getSelectWidth() }\" [ngClass]=\"{ 'select-container': isDefault(),\n 'select-container-slim':isSlim()}\">\n <mat-form-field [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\">\n <mat-select [(value)]=\"inputOptionsInitSelected\" (selectionChange)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of inputOptions\" [value]=\"item.value\">{{item.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <mat-icon class=\"mat-icon-suffix\" [ngClass]=\"{'mat-icon-slim': isSlim()}\" matSuffix *ngIf=\"iconSuffix\" (click)=\"suffixClick()\">{{iconSuffix}}</mat-icon>\n</mat-form-field>\n", styles: [".apipass-input-text,.apipass-input-text-slim{width:100%}.apipass-input-text .mdc-text-field--outlined,.apipass-input-text-slim .mdc-text-field--outlined{padding-right:5px}.apipass-input-text .select-container,.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container,.apipass-input-text-slim .select-container-slim{position:absolute;right:0;top:50%;transform:translateY(-50%)}.apipass-input-text .select-container .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-notched-outline{height:80%;margin-top:5px}.apipass-input-text .select-container .mdc-notched-outline__leading,.apipass-input-text .select-container .mdc-notched-outline__notch,.apipass-input-text .select-container .mdc-notched-outline__trailing,.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container .mdc-notched-outline__leading,.apipass-input-text-slim .select-container .mdc-notched-outline__notch,.apipass-input-text-slim .select-container .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{border-top:none!important;border-bottom:none!important;border-right:none!important;border-radius:0!important;height:43px}.apipass-input-text .select-container .mat-mdc-select-value,.apipass-input-text .select-container-slim .mat-mdc-select-value,.apipass-input-text-slim .select-container .mat-mdc-select-value,.apipass-input-text-slim .select-container-slim .mat-mdc-select-value{text-align:left;padding-left:5px}.apipass-input-text .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text .select-container-slim .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container .mdc-text-field--outlined .mdc-notched-outline,.apipass-input-text-slim .select-container-slim .mdc-text-field--outlined .mdc-notched-outline{margin-top:1px!important}.apipass-input-text .select-container-slim,.apipass-input-text-slim .select-container-slim{top:50%!important}.apipass-input-text .select-container-slim .mdc-notched-outline__leading,.apipass-input-text .select-container-slim .mdc-notched-outline__notch,.apipass-input-text .select-container-slim .mdc-notched-outline__trailing,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__leading,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__notch,.apipass-input-text-slim .select-container-slim .mdc-notched-outline__trailing{height:29px}.apipass-input-text .mdc-text-field,.apipass-input-text-slim .mdc-text-field{padding:0 5px!important}\n"] }]
202
212
  }], propDecorators: { label: [{
203
213
  type: Input
204
214
  }], disabled: [{
@@ -2124,45 +2134,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2124
2134
  }] } });
2125
2135
 
2126
2136
  class InputKeyValueComponent {
2137
+ initialized;
2127
2138
  _model;
2128
- temporaryItem = { key: '', value: '' };
2129
- showOptions = false;
2139
+ temporaryItem = {};
2140
+ size = 'DEFAULT';
2141
+ keyField = 'key';
2142
+ valueField = 'value';
2130
2143
  labelKey = 'Key';
2131
2144
  labelValue = 'Value';
2145
+ removeLabel = 'Remove';
2132
2146
  widthPercentageInputOptions;
2133
2147
  inputOptionsInitSelected = null;
2134
2148
  inputOptions = [];
2135
2149
  set model(model) {
2150
+ this.initializeModel(model);
2151
+ }
2152
+ get model() {
2153
+ return this._model;
2154
+ }
2155
+ initializeModel(model) {
2136
2156
  if (model?.length > 0) {
2137
2157
  this._model = [...model];
2158
+ if (this._model[this._model.length - 1].label && !this._model[this._model.length - 1].type) {
2159
+ this.inputOptionChanged(this.inputOptionsInitSelected, this._model.length - 1);
2160
+ }
2138
2161
  const lastModel = model[model.length - 1];
2139
- if (lastModel?.key || lastModel?.value) {
2140
- this._model.push({ key: '', value: '' });
2162
+ if (lastModel?.[this.keyField] || lastModel?.[this.valueField]) {
2163
+ this._model.push(this.getNewModel());
2164
+ this.model = this._model;
2141
2165
  }
2142
2166
  }
2143
- else {
2144
- this._model = [{ key: '', value: '' }];
2167
+ else if (this.initialized) {
2168
+ this.model = [this.getNewModel()];
2145
2169
  }
2146
2170
  }
2147
- get model() {
2148
- return this._model;
2149
- }
2150
2171
  modelChange = new EventEmitter();
2151
2172
  ngOnInit() {
2173
+ this.inputOptionsInitSelected ||= this.inputOptions?.[0]?.value;
2174
+ this.temporaryItem = this.getNewModel();
2175
+ if (!this.model?.length) {
2176
+ this._model = [this.getNewModel()];
2177
+ this.model = this._model;
2178
+ }
2179
+ this.initialized = true;
2180
+ }
2181
+ getNewModel() {
2182
+ const value = {};
2183
+ value[this.keyField] = '';
2184
+ value[this.valueField] = '';
2185
+ return value;
2152
2186
  }
2153
- onChangeValues(last, $event) {
2187
+ onChangeValues(last) {
2154
2188
  if (last) {
2155
- if (this.temporaryItem.key || this.temporaryItem.value) {
2189
+ if (this.temporaryItem?.[this.keyField] || this.temporaryItem?.[this.valueField]) {
2156
2190
  this.model.push({ ...this.temporaryItem });
2157
- this.temporaryItem = { key: '', value: '' };
2191
+ this.temporaryItem = this.getNewModel();
2158
2192
  }
2159
- }
2160
- this.modelChange.emit(this.model);
2161
- }
2162
- addTemporaryItem() {
2163
- if (this.temporaryItem.key || this.temporaryItem.value) {
2164
- this.model.push({ ...this.temporaryItem });
2165
- this.temporaryItem = { key: '', value: '' };
2166
2193
  this.modelChange.emit(this.model);
2167
2194
  }
2168
2195
  }
@@ -2172,18 +2199,25 @@ class InputKeyValueComponent {
2172
2199
  }
2173
2200
  inputOptionChanged(event, index) {
2174
2201
  this.model[index].type = event;
2175
- this.modelChange.emit(this.model);
2176
2202
  }
2177
2203
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputKeyValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2178
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: InputKeyValueComponent, selector: "input-key-value", inputs: { labelKey: "labelKey", labelValue: "labelValue", widthPercentageInputOptions: "widthPercentageInputOptions", inputOptionsInitSelected: "inputOptionsInitSelected", inputOptions: "inputOptions", model: "model" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: " <div class=\"key-value-item\" *ngFor=\"let item of model; let last = last; let index = index\">\n <div class=\"div-input\">\n <input-text \n [label]=\"labelKey\"\n [inputOptions]=\"inputOptions\"\n [inputOptionsInitSelected]=\"inputOptionsInitSelected\"\n [widthPercentageInputOptions]=\"widthPercentageInputOptions\"\n [(ngModel)]=\"item.key\"\n (ngModelChange)=\"onChangeValues(last, $event)\"\n (optionChanged)=\"inputOptionChanged($event, index)\">\n </input-text>\n </div>\n <div class=\"div-input\">\n <input-text \n class=\"text-input-value\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item.value\"\n >\n </input-text>\n </div>\n <div class=\"div-button\">\n <button class=\"delete-button\" type=\"button\" *ngIf=\"!last\" (click)=\"removeItem(index)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n", styles: [".key-value-item{display:flex;margin-bottom:10px;width:100%}.key-value-item .div-input{width:40%}.key-value-item .div-input .text-input-value{margin-left:30px}.key-value-item .div-button{margin-left:50px;display:flex}\n"], dependencies: [{ 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: 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: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: InputTextComponent, selector: "input-text", inputs: ["label", "disabled", "iconSuffix", "iconPrefix", "autoComplete", "size", "debounceTime", "widthPercentageInputOptions", "inputOptions", "inputOptionsInitSelected"], outputs: ["suffixIconClick", "prefixIconClick", "onDebounce", "optionChanged"] }] });
2204
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: InputKeyValueComponent, selector: "input-key-value", inputs: { size: "size", keyField: "keyField", valueField: "valueField", labelKey: "labelKey", labelValue: "labelValue", removeLabel: "removeLabel", widthPercentageInputOptions: "widthPercentageInputOptions", inputOptionsInitSelected: "inputOptionsInitSelected", inputOptions: "inputOptions", model: "model" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: "<div class=\"key-value-item\" *ngFor=\"let item of model; let last = last; let index = index\">\n <input-text\n class=\"input-key\"\n [size]=\"size\"\n [label]=\"labelKey\"\n [inputOptions]=\"inputOptions\"\n [inputOptionsInitSelected]=\"item.type ? item.type : inputOptionsInitSelected\"\n [widthPercentageInputOptions]=\"widthPercentageInputOptions\"\n [(ngModel)]=\"item[keyField]\"\n (ngModelChange)=\"onChangeValues(last)\"\n (optionChanged)=\"inputOptionChanged($event, index)\">\n </input-text>\n <input-text\n class=\"input-value\"\n [size]=\"size\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item[valueField]\">\n </input-text>\n <button class=\"delete-button\" [matTooltip]=\"removeLabel\" [ngClass]=\"{'delete-button-slim': size === 'SLIM'}\" type=\"button\" *ngIf=\"!last\"\n (click)=\"removeItem(index)\">\n <mat-icon>delete</mat-icon>\n </button>\n</div>\n\n", styles: [".key-value-item{display:flex;gap:10px;margin-bottom:10px;width:100%}.key-value-item .input-key{width:50%}.key-value-item .input-key ::ng-deep input{padding-left:10px!important;padding-right:10px!important}.key-value-item .input-value{width:calc(50% - 60px)}.key-value-item .input-value ::ng-deep input{padding-left:10px!important;padding-right:10px!important}.key-value-item .delete-button{display:flex;justify-content:center;align-items:center;cursor:pointer;background:#FFF;color:#c40606;border-radius:5px;border:1px solid var(--color-fonts-tertiary)}.key-value-item .delete-button.delete-button-slim{width:30px;height:30px}.key-value-item .delete-button.delete-button-slim ::ng-deep .mat-icon{width:auto!important;height:auto!important;font-size:22px!important;margin-left:-2.5px;padding:0!important}\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: 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: "component", type: i7$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: InputTextComponent, selector: "input-text", inputs: ["label", "disabled", "iconSuffix", "iconPrefix", "autoComplete", "size", "debounceTime", "widthPercentageInputOptions", "inputOptions", "inputOptionsInitSelected"], outputs: ["suffixIconClick", "prefixIconClick", "onDebounce", "optionChanged"] }] });
2179
2205
  }
2180
2206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputKeyValueComponent, decorators: [{
2181
2207
  type: Component,
2182
- args: [{ selector: 'input-key-value', template: " <div class=\"key-value-item\" *ngFor=\"let item of model; let last = last; let index = index\">\n <div class=\"div-input\">\n <input-text \n [label]=\"labelKey\"\n [inputOptions]=\"inputOptions\"\n [inputOptionsInitSelected]=\"inputOptionsInitSelected\"\n [widthPercentageInputOptions]=\"widthPercentageInputOptions\"\n [(ngModel)]=\"item.key\"\n (ngModelChange)=\"onChangeValues(last, $event)\"\n (optionChanged)=\"inputOptionChanged($event, index)\">\n </input-text>\n </div>\n <div class=\"div-input\">\n <input-text \n class=\"text-input-value\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item.value\"\n >\n </input-text>\n </div>\n <div class=\"div-button\">\n <button class=\"delete-button\" type=\"button\" *ngIf=\"!last\" (click)=\"removeItem(index)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n", styles: [".key-value-item{display:flex;margin-bottom:10px;width:100%}.key-value-item .div-input{width:40%}.key-value-item .div-input .text-input-value{margin-left:30px}.key-value-item .div-button{margin-left:50px;display:flex}\n"] }]
2183
- }], propDecorators: { labelKey: [{
2208
+ args: [{ selector: 'input-key-value', template: "<div class=\"key-value-item\" *ngFor=\"let item of model; let last = last; let index = index\">\n <input-text\n class=\"input-key\"\n [size]=\"size\"\n [label]=\"labelKey\"\n [inputOptions]=\"inputOptions\"\n [inputOptionsInitSelected]=\"item.type ? item.type : inputOptionsInitSelected\"\n [widthPercentageInputOptions]=\"widthPercentageInputOptions\"\n [(ngModel)]=\"item[keyField]\"\n (ngModelChange)=\"onChangeValues(last)\"\n (optionChanged)=\"inputOptionChanged($event, index)\">\n </input-text>\n <input-text\n class=\"input-value\"\n [size]=\"size\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item[valueField]\">\n </input-text>\n <button class=\"delete-button\" [matTooltip]=\"removeLabel\" [ngClass]=\"{'delete-button-slim': size === 'SLIM'}\" type=\"button\" *ngIf=\"!last\"\n (click)=\"removeItem(index)\">\n <mat-icon>delete</mat-icon>\n </button>\n</div>\n\n", styles: [".key-value-item{display:flex;gap:10px;margin-bottom:10px;width:100%}.key-value-item .input-key{width:50%}.key-value-item .input-key ::ng-deep input{padding-left:10px!important;padding-right:10px!important}.key-value-item .input-value{width:calc(50% - 60px)}.key-value-item .input-value ::ng-deep input{padding-left:10px!important;padding-right:10px!important}.key-value-item .delete-button{display:flex;justify-content:center;align-items:center;cursor:pointer;background:#FFF;color:#c40606;border-radius:5px;border:1px solid var(--color-fonts-tertiary)}.key-value-item .delete-button.delete-button-slim{width:30px;height:30px}.key-value-item .delete-button.delete-button-slim ::ng-deep .mat-icon{width:auto!important;height:auto!important;font-size:22px!important;margin-left:-2.5px;padding:0!important}\n"] }]
2209
+ }], propDecorators: { size: [{
2210
+ type: Input
2211
+ }], keyField: [{
2212
+ type: Input
2213
+ }], valueField: [{
2214
+ type: Input
2215
+ }], labelKey: [{
2184
2216
  type: Input
2185
2217
  }], labelValue: [{
2186
2218
  type: Input
2219
+ }], removeLabel: [{
2220
+ type: Input
2187
2221
  }], widthPercentageInputOptions: [{
2188
2222
  type: Input
2189
2223
  }], inputOptionsInitSelected: [{