@apipass/inputs 1.0.131 → 1.0.133

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.
@@ -18,8 +18,12 @@ class InputKeyValueComponent {
18
18
  widthPercentageInputOptions;
19
19
  inputOptionsInitSelected = null;
20
20
  inputOptions = [];
21
+ onKeyDropEvent = new EventEmitter();
22
+ onValueDropEvent = new EventEmitter();
21
23
  set model(model) {
22
- this.initializeModel(model);
24
+ setTimeout(() => {
25
+ this.initializeModel(model);
26
+ }, 200);
23
27
  }
24
28
  get model() {
25
29
  return this._model;
@@ -27,9 +31,6 @@ class InputKeyValueComponent {
27
31
  initializeModel(model) {
28
32
  if (model?.length > 0) {
29
33
  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
- }
33
34
  const lastModel = model[model.length - 1];
34
35
  if (lastModel?.[this.keyField] || lastModel?.[this.valueField]) {
35
36
  this._model.push(this.getNewModel());
@@ -54,6 +55,9 @@ class InputKeyValueComponent {
54
55
  const value = {};
55
56
  value[this.keyField] = '';
56
57
  value[this.valueField] = '';
58
+ if (this.inputOptions?.length > 0 && this.inputOptionsInitSelected) {
59
+ value.type = this.inputOptionsInitSelected;
60
+ }
57
61
  return value;
58
62
  }
59
63
  onChangeValues(last) {
@@ -72,13 +76,29 @@ class InputKeyValueComponent {
72
76
  inputOptionChanged(event, index) {
73
77
  this.model[index].type = event;
74
78
  }
79
+ onKeyDrop(index, model, $event) {
80
+ this.onKeyDropEvent.emit({
81
+ index,
82
+ model,
83
+ keyField: this.keyField,
84
+ event: $event
85
+ });
86
+ }
87
+ onValueDrop(index, model, $event) {
88
+ this.onValueDropEvent.emit({
89
+ index,
90
+ model,
91
+ valueField: this.valueField,
92
+ event: $event
93
+ });
94
+ }
75
95
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputKeyValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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"] }] });
96
+ 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: { onKeyDropEvent: "onKeyDropEvent", onValueDropEvent: "onValueDropEvent", 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 (onDropEvent)=\"onKeyDrop(index, item, $event)\">\n </input-text>\n <input-text\n class=\"input-value\"\n [size]=\"size\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item[valueField]\"\n (onDropEvent)=\"onValueDrop(index, item, $event)\">\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", "onDropEvent"] }] });
77
97
  }
78
98
  export { InputKeyValueComponent };
79
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputKeyValueComponent, decorators: [{
80
100
  type: Component,
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"] }]
101
+ 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 (onDropEvent)=\"onKeyDrop(index, item, $event)\">\n </input-text>\n <input-text\n class=\"input-value\"\n [size]=\"size\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item[valueField]\"\n (onDropEvent)=\"onValueDrop(index, item, $event)\">\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
102
  }], propDecorators: { size: [{
83
103
  type: Input
84
104
  }], keyField: [{
@@ -97,9 +117,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
97
117
  type: Input
98
118
  }], inputOptions: [{
99
119
  type: Input
120
+ }], onKeyDropEvent: [{
121
+ type: Output
122
+ }], onValueDropEvent: [{
123
+ type: Output
100
124
  }], model: [{
101
125
  type: Input
102
126
  }], modelChange: [{
103
127
  type: Output
104
128
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQta2V5LXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXQta2V5LXZhbHVlL2lucHV0LWtleS12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LWtleS12YWx1ZS9pbnB1dC1rZXktdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVMvRSxNQUthLHNCQUFzQjtJQUV6QixXQUFXLENBQVU7SUFDckIsTUFBTSxDQUFxQjtJQUMzQixhQUFhLEdBQXNCLEVBQUUsQ0FBQTtJQUVwQyxJQUFJLEdBQXVCLFNBQVMsQ0FBQTtJQUNwQyxRQUFRLEdBQVcsS0FBSyxDQUFBO0lBQ3hCLFVBQVUsR0FBVyxPQUFPLENBQUE7SUFDNUIsUUFBUSxHQUFXLEtBQUssQ0FBQTtJQUN4QixVQUFVLEdBQVcsT0FBTyxDQUFBO0lBQzVCLFdBQVcsR0FBVyxRQUFRLENBQUE7SUFDOUIsMkJBQTJCLENBQVE7SUFDbkMsd0JBQXdCLEdBQVcsSUFBSSxDQUFBO0lBQ3ZDLFlBQVksR0FBRyxFQUFFLENBQUE7SUFFMUIsSUFDSSxLQUFLLENBQUMsS0FBMEI7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBMEI7UUFDaEQsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQTtZQUN4QixJ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QUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7dUdBOUVVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHNaQ2RuQyxpNkJBd0JBOztTRFZhLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjs4QkFVbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixLQUFLO2dCQTBCQyxXQUFXO3NCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElucHV0S2V5VmFsdWVUeXBlIHtcbiAgW2tleTogc3RyaW5nXTogYW55XG4gIGtleT86IHN0cmluZ1xuICB2YWx1ZT86IHN0cmluZ1xuICB0eXBlPzogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lucHV0LWtleS12YWx1ZScsXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXQta2V5LXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2lucHV0LWtleS12YWx1ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElucHV0S2V5VmFsdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX21vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdXG4gIHByaXZhdGUgdGVtcG9yYXJ5SXRlbTogSW5wdXRLZXlWYWx1ZVR5cGUgPSB7fVxuXG4gIEBJbnB1dCgpIHNpemU6ICdERUZBVUxUJyB8ICdTTElNJyA9ICdERUZBVUxUJ1xuICBASW5wdXQoKSBrZXlGaWVsZDogc3RyaW5nID0gJ2tleSdcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nID0gJ3ZhbHVlJ1xuICBASW5wdXQoKSBsYWJlbEtleTogc3RyaW5nID0gJ0tleSdcbiAgQElucHV0KCkgbGFiZWxWYWx1ZTogc3RyaW5nID0gJ1ZhbHVlJ1xuICBASW5wdXQoKSByZW1vdmVMYWJlbDogc3RyaW5nID0gJ1JlbW92ZSdcbiAgQElucHV0KCkgd2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zOiBudW1iZXJcbiAgQElucHV0KCkgaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkOiBzdHJpbmcgPSBudWxsXG4gIEBJbnB1dCgpIGlucHV0T3B0aW9ucyA9IFtdXG5cbiAgQElucHV0KClcbiAgc2V0IG1vZGVsKG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdKSB7XG4gICAgdGhpcy5pbml0aWFsaXplTW9kZWwobW9kZWwpO1xuICB9XG5cbiAgZ2V0IG1vZGVsKCk6IElucHV0S2V5VmFsdWVUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU1vZGVsKG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdKTogdm9pZCB7XG4gICAgaWYgKG1vZGVsPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IFsuLi5tb2RlbF1cbiAgICAgIGlmICh0aGlzLl9tb2RlbFt0aGlzLl9tb2RlbC5sZW5ndGggLSAxXS5sYWJlbCAmJiAhdGhpcy5fbW9kZWxbdGhpcy5fbW9kZWwubGVuZ3RoIC0gMV0udHlwZSkge1xuICAgICAgICB0aGlzLmlucHV0T3B0aW9uQ2hhbmdlZCh0aGlzLmlucHV0T3B0aW9uc0luaXRTZWxlY3RlZCwgdGhpcy5fbW9kZWwubGVuZ3RoIC0gMSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxhc3RNb2RlbCA9IG1vZGVsW21vZGVsLmxlbmd0aCAtIDFdXG4gICAgICBpZiAobGFzdE1vZGVsPy5bdGhpcy5rZXlGaWVsZF0gfHwgbGFzdE1vZGVsPy5bdGhpcy52YWx1ZUZpZWxkXSkge1xuICAgICAgICB0aGlzLl9tb2RlbC5wdXNoKHRoaXMuZ2V0TmV3TW9kZWwoKSlcbiAgICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuX21vZGVsXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLm1vZGVsID0gW3RoaXMuZ2V0TmV3TW9kZWwoKV1cbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SW5wdXRLZXlWYWx1ZVR5cGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0S2V5VmFsdWVUeXBlW10+KClcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQgfHw9IHRoaXMuaW5wdXRPcHRpb25zPy5bMF0/LnZhbHVlXG4gICAgdGhpcy50ZW1wb3JhcnlJdGVtID0gdGhpcy5nZXROZXdNb2RlbCgpO1xuICAgIGlmICghdGhpcy5tb2RlbD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IFt0aGlzLmdldE5ld01vZGVsKCldXG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5fbW9kZWxcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TmV3TW9kZWwoKTogSW5wdXRLZXlWYWx1ZVR5cGUge1xuICAgIGNvbnN0IHZhbHVlOiBJbnB1dEtleVZhbHVlVHlwZSA9IHt9O1xuICAgIHZhbHVlW3RoaXMua2V5RmllbGRdID0gJyc7XG4gICAgdmFsdWVbdGhpcy52YWx1ZUZpZWxkXSA9ICcnXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlVmFsdWVzKGxhc3Q6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAobGFzdCkge1xuICAgICAgaWYgKHRoaXMudGVtcG9yYXJ5SXRlbT8uW3RoaXMua2V5RmllbGRdIHx8IHRoaXMudGVtcG9yYXJ5SXRlbT8uW3RoaXMudmFsdWVGaWVsZF0pIHtcbiAgICAgICAgdGhpcy5tb2RlbC5wdXNoKHsgLi4udGhpcy50ZW1wb3JhcnlJdGVtIH0pO1xuICAgICAgICB0aGlzLnRlbXBvcmFyeUl0ZW0gPSB0aGlzLmdldE5ld01vZGVsKCk7XG4gICAgICB9XG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dE9wdGlvbkNoYW5nZWQoZXZlbnQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubW9kZWxbaW5kZXhdLnR5cGUgPSBldmVudDtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwia2V5LXZhbHVlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbDsgbGV0IGxhc3QgPSBsYXN0OyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICA8aW5wdXQtdGV4dFxuICAgIGNsYXNzPVwiaW5wdXQta2V5XCJcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICBbbGFiZWxdPVwibGFiZWxLZXlcIlxuICAgIFtpbnB1dE9wdGlvbnNdPVwiaW5wdXRPcHRpb25zXCJcbiAgICBbaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkXT1cIml0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZFwiXG4gICAgW3dpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9uc109XCJ3aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnNcIlxuICAgIFsobmdNb2RlbCldPVwiaXRlbVtrZXlGaWVsZF1cIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlVmFsdWVzKGxhc3QpXCJcbiAgICAob3B0aW9uQ2hhbmdlZCk9XCJpbnB1dE9wdGlvbkNoYW5nZWQoJGV2ZW50LCBpbmRleClcIj5cbiAgPC9pbnB1dC10ZXh0PlxuICA8aW5wdXQtdGV4dFxuICAgIGNsYXNzPVwiaW5wdXQtdmFsdWVcIlxuICAgIFtzaXplXT1cInNpemVcIlxuICAgIFtsYWJlbF09XCJsYWJlbFZhbHVlXCJcbiAgICBbKG5nTW9kZWwpXT1cIml0ZW1bdmFsdWVGaWVsZF1cIj5cbiAgPC9pbnB1dC10ZXh0PlxuICA8YnV0dG9uIGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiIFttYXRUb29sdGlwXT1cInJlbW92ZUxhYmVsXCIgW25nQ2xhc3NdPVwieydkZWxldGUtYnV0dG9uLXNsaW0nOiBzaXplID09PSAnU0xJTSd9XCIgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiIWxhc3RcIlxuICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGluZGV4KVwiPlxuICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQta2V5LXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXQta2V5LXZhbHVlL2lucHV0LWtleS12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LWtleS12YWx1ZS9pbnB1dC1rZXktdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQXdCL0UsTUFLYSxzQkFBc0I7SUFFekIsV0FBVyxDQUFVO0lBQ3JCLE1BQU0sQ0FBcUI7SUFDM0IsYUFBYSxHQUFzQixFQUFFLENBQUE7SUFFcEMsSUFBSSxHQUF1QixTQUFTLENBQUE7SUFDcEMsUUFBUSxHQUFXLEtBQUssQ0FBQTtJQUN4QixVQUFVLEdBQVcsT0FBTyxDQUFBO0lBQzVCLFFBQVEsR0FBVyxLQUFLLENBQUE7SUFDeEIsVUFBVSxHQUFXLE9BQU8sQ0FBQTtJQUM1QixXQUFXLEdBQVcsUUFBUSxDQUFBO0lBQzlCLDJCQUEyQixDQUFRO0lBQ25DLHdCQUF3QixHQUFXLElBQUksQ0FBQTtJQUN2QyxZQUFZLEdBQUcsRUFBRSxDQUFBO0lBRVQsY0FBYyxHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQTtJQUM3RSxnQkFBZ0IsR0FBaUMsSUFBSSxZQUFZLEVBQWtCLENBQUE7SUFFcEcsSUFDSSxLQUFLLENBQUMsS0FBMEI7UUFDbEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ1QsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FB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Q0FBQztJQUNqQyxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQWEsRUFBRSxLQUF3QixFQUFFLE1BQW9CO1FBQzVFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLEtBQUs7WUFDTCxLQUFLO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLEtBQUssRUFBRSxNQUFNO1NBQ2QsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFhLEVBQUUsS0FBd0IsRUFBRSxNQUFvQjtRQUM5RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1lBQ3pCLEtBQUs7WUFDTCxLQUFLO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLEtBQUssRUFBRSxNQUFNO1NBQ2QsQ0FBQyxDQUFBO0lBQ0osQ0FBQzt1R0FyR1Usc0JBQXNCOzJGQUF0QixzQkFBc0IsOGRDN0JuQywrZ0NBMEJBOztTREdhLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjs4QkFVbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRVcsY0FBYztzQkFBOUIsTUFBTTtnQkFDVSxnQkFBZ0I7c0JBQWhDLE1BQU07Z0JBR0gsS0FBSztzQkFEUixLQUFLO2dCQXlCQyxXQUFXO3NCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG5kRHJvcEV2ZW50IH0gZnJvbSAnbmd4LWRyYWctZHJvcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRLZXlWYWx1ZVR5cGUge1xuICBba2V5OiBzdHJpbmddOiBhbnlcbiAga2V5Pzogc3RyaW5nXG4gIHZhbHVlPzogc3RyaW5nXG4gIHR5cGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlEcm9wRXZlbnQge1xuICBpbmRleDogbnVtYmVyXG4gIG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVxuICBrZXlGaWVsZDogc3RyaW5nXG4gIGV2ZW50OiBEbmREcm9wRXZlbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZURyb3BFdmVudCB7XG4gIGluZGV4OiBudW1iZXJcbiAgbW9kZWw6IElucHV0S2V5VmFsdWVUeXBlXG4gIHZhbHVlRmllbGQ6IHN0cmluZ1xuICBldmVudDogRG5kRHJvcEV2ZW50XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lucHV0LWtleS12YWx1ZScsXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXQta2V5LXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2lucHV0LWtleS12YWx1ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElucHV0S2V5VmFsdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX21vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdXG4gIHByaXZhdGUgdGVtcG9yYXJ5SXRlbTogSW5wdXRLZXlWYWx1ZVR5cGUgPSB7fVxuXG4gIEBJbnB1dCgpIHNpemU6ICdERUZBVUxUJyB8ICdTTElNJyA9ICdERUZBVUxUJ1xuICBASW5wdXQoKSBrZXlGaWVsZDogc3RyaW5nID0gJ2tleSdcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nID0gJ3ZhbHVlJ1xuICBASW5wdXQoKSBsYWJlbEtleTogc3RyaW5nID0gJ0tleSdcbiAgQElucHV0KCkgbGFiZWxWYWx1ZTogc3RyaW5nID0gJ1ZhbHVlJ1xuICBASW5wdXQoKSByZW1vdmVMYWJlbDogc3RyaW5nID0gJ1JlbW92ZSdcbiAgQElucHV0KCkgd2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zOiBudW1iZXJcbiAgQElucHV0KCkgaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkOiBzdHJpbmcgPSBudWxsXG4gIEBJbnB1dCgpIGlucHV0T3B0aW9ucyA9IFtdXG5cbiAgQE91dHB1dCgpIHB1YmxpYyBvbktleURyb3BFdmVudDogRXZlbnRFbWl0dGVyPEtleURyb3BFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleURyb3BFdmVudD4oKVxuICBAT3V0cHV0KCkgcHVibGljIG9uVmFsdWVEcm9wRXZlbnQ6IEV2ZW50RW1pdHRlcjxWYWx1ZURyb3BFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFZhbHVlRHJvcEV2ZW50PigpXG5cbiAgQElucHV0KClcbiAgc2V0IG1vZGVsKG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmluaXRpYWxpemVNb2RlbChtb2RlbCk7XG4gICAgfSwgMjAwKVxuICB9XG5cbiAgZ2V0IG1vZGVsKCk6IElucHV0S2V5VmFsdWVUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU1vZGVsKG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZVtdKTogdm9pZCB7XG4gICAgaWYgKG1vZGVsPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IFsuLi5tb2RlbF1cbiAgICAgIGNvbnN0IGxhc3RNb2RlbCA9IG1vZGVsW21vZGVsLmxlbmd0aCAtIDFdXG4gICAgICBpZiAobGFzdE1vZGVsPy5bdGhpcy5rZXlGaWVsZF0gfHwgbGFzdE1vZGVsPy5bdGhpcy52YWx1ZUZpZWxkXSkge1xuICAgICAgICB0aGlzLl9tb2RlbC5wdXNoKHRoaXMuZ2V0TmV3TW9kZWwoKSlcbiAgICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuX21vZGVsXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLm1vZGVsID0gW3RoaXMuZ2V0TmV3TW9kZWwoKV1cbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SW5wdXRLZXlWYWx1ZVR5cGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0S2V5VmFsdWVUeXBlW10+KClcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQgfHw9IHRoaXMuaW5wdXRPcHRpb25zPy5bMF0/LnZhbHVlXG4gICAgdGhpcy50ZW1wb3JhcnlJdGVtID0gdGhpcy5nZXROZXdNb2RlbCgpO1xuICAgIGlmICghdGhpcy5tb2RlbD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IFt0aGlzLmdldE5ld01vZGVsKCldXG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5fbW9kZWxcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TmV3TW9kZWwoKTogSW5wdXRLZXlWYWx1ZVR5cGUge1xuICAgIGNvbnN0IHZhbHVlOiBJbnB1dEtleVZhbHVlVHlwZSA9IHt9O1xuICAgIHZhbHVlW3RoaXMua2V5RmllbGRdID0gJyc7XG4gICAgdmFsdWVbdGhpcy52YWx1ZUZpZWxkXSA9ICcnXG4gICAgaWYgKHRoaXMuaW5wdXRPcHRpb25zPy5sZW5ndGggPiAwICYmIHRoaXMuaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkKSB7XG4gICAgICB2YWx1ZS50eXBlID0gdGhpcy5pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQ7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZVZhbHVlcyhsYXN0OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGxhc3QpIHtcbiAgICAgIGlmICh0aGlzLnRlbXBvcmFyeUl0ZW0/Llt0aGlzLmtleUZpZWxkXSB8fCB0aGlzLnRlbXBvcmFyeUl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdKSB7XG4gICAgICAgIHRoaXMubW9kZWwucHVzaCh7IC4uLnRoaXMudGVtcG9yYXJ5SXRlbSB9KTtcbiAgICAgICAgdGhpcy50ZW1wb3JhcnlJdGVtID0gdGhpcy5nZXROZXdNb2RlbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubW9kZWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRPcHRpb25DaGFuZ2VkKGV2ZW50OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsW2luZGV4XS50eXBlID0gZXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgb25LZXlEcm9wKGluZGV4OiBudW1iZXIsIG1vZGVsOiBJbnB1dEtleVZhbHVlVHlwZSwgJGV2ZW50OiBEbmREcm9wRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uS2V5RHJvcEV2ZW50LmVtaXQoe1xuICAgICAgaW5kZXgsXG4gICAgICBtb2RlbCxcbiAgICAgIGtleUZpZWxkOiB0aGlzLmtleUZpZWxkLFxuICAgICAgZXZlbnQ6ICRldmVudFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgb25WYWx1ZURyb3AoaW5kZXg6IG51bWJlciwgbW9kZWw6IElucHV0S2V5VmFsdWVUeXBlLCAkZXZlbnQ6IERuZERyb3BFdmVudCk6IHZvaWQge1xuICAgIHRoaXMub25WYWx1ZURyb3BFdmVudC5lbWl0KHtcbiAgICAgIGluZGV4LFxuICAgICAgbW9kZWwsXG4gICAgICB2YWx1ZUZpZWxkOiB0aGlzLnZhbHVlRmllbGQsXG4gICAgICBldmVudDogJGV2ZW50XG4gICAgfSlcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwia2V5LXZhbHVlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbDsgbGV0IGxhc3QgPSBsYXN0OyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICA8aW5wdXQtdGV4dFxuICAgIGNsYXNzPVwiaW5wdXQta2V5XCJcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICBbbGFiZWxdPVwibGFiZWxLZXlcIlxuICAgIFtpbnB1dE9wdGlvbnNdPVwiaW5wdXRPcHRpb25zXCJcbiAgICBbaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkXT1cIml0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZFwiXG4gICAgW3dpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9uc109XCJ3aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnNcIlxuICAgIFsobmdNb2RlbCldPVwiaXRlbVtrZXlGaWVsZF1cIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlVmFsdWVzKGxhc3QpXCJcbiAgICAob3B0aW9uQ2hhbmdlZCk9XCJpbnB1dE9wdGlvbkNoYW5nZWQoJGV2ZW50LCBpbmRleClcIlxuICAgIChvbkRyb3BFdmVudCk9XCJvbktleURyb3AoaW5kZXgsIGl0ZW0sICRldmVudClcIj5cbiAgPC9pbnB1dC10ZXh0PlxuICA8aW5wdXQtdGV4dFxuICAgIGNsYXNzPVwiaW5wdXQtdmFsdWVcIlxuICAgIFtzaXplXT1cInNpemVcIlxuICAgIFtsYWJlbF09XCJsYWJlbFZhbHVlXCJcbiAgICBbKG5nTW9kZWwpXT1cIml0ZW1bdmFsdWVGaWVsZF1cIlxuICAgIChvbkRyb3BFdmVudCk9XCJvblZhbHVlRHJvcChpbmRleCwgaXRlbSwgJGV2ZW50KVwiPlxuICA8L2lucHV0LXRleHQ+XG4gIDxidXR0b24gY2xhc3M9XCJkZWxldGUtYnV0dG9uXCIgW21hdFRvb2x0aXBdPVwicmVtb3ZlTGFiZWxcIiBbbmdDbGFzc109XCJ7J2RlbGV0ZS1idXR0b24tc2xpbSc6IHNpemUgPT09ICdTTElNJ31cIiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhbGFzdFwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaW5kZXgpXCI+XG4gICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbiJdfQ==
@@ -12,6 +12,7 @@ import * as i4 from "@angular/material/input";
12
12
  import * as i5 from "@angular/material/select";
13
13
  import * as i6 from "@angular/material/core";
14
14
  import * as i7 from "@angular/material/icon";
15
+ import * as i8 from "ngx-drag-drop";
15
16
  class InputTextComponent extends ValueAccessorBase {
16
17
  _inputOptionsInitSelected;
17
18
  _inputOptions = [];
@@ -39,6 +40,7 @@ class InputTextComponent extends ValueAccessorBase {
39
40
  prefixIconClick = new EventEmitter();
40
41
  onDebounce = new EventEmitter();
41
42
  optionChanged = new EventEmitter();
43
+ onDropEvent = new EventEmitter();
42
44
  searchTerms = new Subject();
43
45
  ngOnInit() {
44
46
  this.searchTerms.pipe(debounceTime(this.debounceTime), distinctUntilChanged()).subscribe((value) => {
@@ -84,12 +86,15 @@ class InputTextComponent extends ValueAccessorBase {
84
86
  }
85
87
  return this.widthPercentageInputOptions;
86
88
  }
89
+ onDrop($event) {
90
+ this.onDropEvent.emit($event);
91
+ }
87
92
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
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: [{
93
+ 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", onDropEvent: "onDropEvent" }, providers: [{
89
94
  provide: NG_VALUE_ACCESSOR,
90
95
  useExisting: forwardRef(() => InputTextComponent),
91
96
  multi: true
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 });
97
+ }], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"apipass-input-text\"\n [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\"\n dndDropzone [dndAllowExternal]=\"true\" (dndDrop)=\"onDrop($event)\"\n 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"] }, { kind: "directive", type: i8.DndDropzoneDirective, selector: "[dndDropzone]", inputs: ["dndDropzone", "dndEffectAllowed", "dndAllowExternal", "dndHorizontal", "dndDragoverClass", "dndDropzoneDisabledClass", "dndDisableIf", "dndDisableDropIf"], outputs: ["dndDragover", "dndDrop"] }], encapsulation: i0.ViewEncapsulation.None });
93
98
  }
94
99
  export { InputTextComponent };
95
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputTextComponent, decorators: [{
@@ -98,7 +103,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
98
103
  provide: NG_VALUE_ACCESSOR,
99
104
  useExisting: forwardRef(() => InputTextComponent),
100
105
  multi: true
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"] }]
106
+ }], encapsulation: ViewEncapsulation.None, template: "<mat-form-field\n class=\"apipass-input-text\"\n [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\"\n dndDropzone [dndAllowExternal]=\"true\" (dndDrop)=\"onDrop($event)\"\n 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"] }]
102
107
  }], propDecorators: { label: [{
103
108
  type: Input
104
109
  }], disabled: [{
@@ -127,5 +132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
127
132
  type: Output
128
133
  }], optionChanged: [{
129
134
  type: Output
135
+ }], onDropEvent: [{
136
+ type: Output
130
137
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNyRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7QUFPbEMsTUFXYSxrQkFBbUIsU0FBUSxpQkFBeUI7SUFFdkQseUJBQXlCLENBQVE7SUFDakMsYUFBYSxHQUF1QixFQUFFLENBQUE7SUFFckMsS0FBSyxHQUFHLEVBQUUsQ0FBQTtJQUNWLFFBQVEsR0FBRyxLQUFLLENBQUE7SUFDaEIsVUFBVSxHQUFHLEVBQUUsQ0FBQTtJQUNmLFVBQVUsR0FBRyxFQUFFLENBQUE7SUFDZixZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQ25CLElBQUksR0FBdUIsU0FBUyxDQUFBO0lBQ3BDLFlBQVksR0FBVyxDQUFDLENBQUE7SUFDeEIsMkJBQTJCLEdBQVEsRUFBRSxDQUFBO0lBRTlDLElBQ0ksWUFBWSxDQUFDLFlBQWdDO1FBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcs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QUNqRCxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsaURDcEJKLGsxQ0FpQkE7O1NETWEsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMsaUJBQ2EsaUJBQWlCLENBQUMsSUFBSTs4QkFPNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUdGLFlBQVk7c0JBRGYsS0FBSztnQkFVRix3QkFBd0I7c0JBRDNCLEtBQUs7Z0JBU1csZUFBZTtzQkFBL0IsTUFBTTtnQkFDVSxlQUFlO3NCQUEvQixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvckJhc2UgfSBmcm9tICcuLi92YWx1ZS1hY2Vzc29yLWJhc2UnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElucHV0T3B0aW9uc1R5cGUge1xuICB2YWx1ZTogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW5wdXQtdGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydpbnB1dC10ZXh0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRleHRDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dENvbXBvbmVudCBleHRlbmRzIFZhbHVlQWNjZXNzb3JCYXNlPHN0cmluZz4ge1xuXG4gIHByaXZhdGUgX2lucHV0T3B0aW9uc0luaXRTZWxlY3RlZDogc3RyaW5nXG4gIHByaXZhdGUgX2lucHV0T3B0aW9uczogSW5wdXRPcHRpb25zVHlwZVtdID0gW11cblxuICBASW5wdXQoKSBsYWJlbCA9ICcnXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2VcbiAgQElucHV0KCkgaWNvblN1ZmZpeCA9ICcnXG4gIEBJbnB1dCgpIGljb25QcmVmaXggPSAnJ1xuICBASW5wdXQoKSBhdXRvQ29tcGxldGUgPSAnb24nXG4gIEBJbnB1dCgpIHNpemU6ICdERUZBVUxUJyB8ICdTTElNJyA9ICdERUZBVUxUJ1xuICBASW5wdXQoKSBkZWJvdW5jZVRpbWU6IG51bWJlciA9IDBcbiAgQElucHV0KCkgd2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zOiBhbnkgPSAxMFxuXG4gIEBJbnB1dCgpXG4gIHNldCBpbnB1dE9wdGlvbnMoaW5wdXRPcHRpb25zOiBJbnB1dE9wdGlvbnNUeXBlW10pIHtcbiAgICB0aGlzLl9pbnB1dE9wdGlvbnMgPSBpbnB1dE9wdGlvbnNcbiAgfVxuXG4gIGdldCBpbnB1dE9wdGlvbnMoKTogSW5wdXRPcHRpb25zVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRPcHRpb25zXG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkKGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZDogc3RyaW5nKSB7XG4gICAgdGhpcy5faW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkID0gaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkXG4gIH1cblxuICBnZXQgaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0T3B0aW9uc0luaXRTZWxlY3RlZFxuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBzdWZmaXhJY29uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBwcmVmaXhJY29uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRlYm91bmNlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG4gIEBPdXRwdXQoKSBwdWJsaWMgb3B0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoVGVybXM6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGVybXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLm9uRGVib3VuY2UuZW1pdCh2YWx1ZSlcbiAgICB9KTtcbiAgICB0aGlzLmlucHV0T3B0aW9uc0luaXRTZWxlY3RlZCB8fD0gdGhpcy5pbnB1dE9wdGlvbnM/LlswXT8udmFsdWVcbiAgfVxuXG4gIG9uU2VhcmNoSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVib3VuY2VUaW1lKSB7XG4gICAgICB0aGlzLnNlYXJjaFRlcm1zLm5leHQodGhpcy52YWx1ZSlcbiAgICB9XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC53aGljaCA9PT0gMzIpIHtcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSArPSAnICdcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIHByZWZpeENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMucHJlZml4SWNvbkNsaWNrLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIHN1ZmZpeENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc3VmZml4SWNvbkNsaWNrLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIGlzU2xpbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnU0xJTSdcbiAgfVxuXG4gIGlzRGVmYXVsdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnREVGQVVMVCdcbiAgfVxuXG4gIHdpZHRoSW5wdXQoKTogbnVtYmVyIHtcbiAgICBpZiAoaXNOdW1iZXIodGhpcy53aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnB1dE9wdGlvbnMubGVuZ3RoID4gMCA/IDEwMCAtIHRoaXMud2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zIDogMTAwXG4gICAgfVxuICAgIHJldHVybiAxMDBcbiAgfVxuXG4gIG9uT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9uQ2hhbmdlZC5lbWl0KGV2ZW50LnZhbHVlKVxuICB9XG5cbiAgZ2V0U2VsZWN0V2lkdGgoKTogc3RyaW5nIHtcbiAgICBpZiAoaXNOdW1iZXIodGhpcy53aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy53aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnN9JWBcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMud2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zO1xuICB9XG5cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFwaXBhc3MtaW5wdXQtdGV4dFwiIFtuZ0NsYXNzXT1cInsnYXBpcGFzcy1pbnB1dC10ZXh0LXNsaW0nOiBpc1NsaW0oKSwgJ2FwaXBhc3MtaW5wdXQtdGV4dCc6IGlzRGVmYXVsdCgpfVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWx9fTwvbWF0LWxhYmVsPlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1wcmVmaXhcIiBbbmdDbGFzc109XCJ7J21hdC1pY29uLXNsaW0nOiBpc1NsaW0oKX1cIiBtYXRQcmVmaXggKm5nSWY9XCJpY29uUHJlZml4XCIgKGNsaWNrKT1cInByZWZpeENsaWNrKClcIj57e2ljb25QcmVmaXh9fTwvbWF0LWljb24+XG4gIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiaW5wdXQtdGV4dFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoSW5wdXQoKSArICclJyB9XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW2F1dG9jb21wbGV0ZV09XCJhdXRvQ29tcGxldGVcIlxuICAgIChpbnB1dCk9XCJvblNlYXJjaElucHV0KClcIiAvPlxuICA8ZGl2ICpuZ0lmPVwidGhpcy5pbnB1dE9wdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwic2VsZWN0LWNvbnRhaW5lclwiXG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogZ2V0U2VsZWN0V2lkdGgoKSB9XCIgW25nQ2xhc3NdPVwieyAnc2VsZWN0LWNvbnRhaW5lcic6IGlzRGVmYXVsdCgpLFxuICAgICdzZWxlY3QtY29udGFpbmVyLXNsaW0nOmlzU2xpbSgpfVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7J2FwaXBhc3MtaW5wdXQtdGV4dC1zbGltJzogaXNTbGltKCksICdhcGlwYXNzLWlucHV0LXRleHQnOiBpc0RlZmF1bHQoKX1cIj5cbiAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cImlucHV0T3B0aW9uc0luaXRTZWxlY3RlZFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25PcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGlucHV0T3B0aW9uc1wiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3tpdGVtLnRpdGxlfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXN1ZmZpeFwiIFtuZ0NsYXNzXT1cInsnbWF0LWljb24tc2xpbSc6IGlzU2xpbSgpfVwiIG1hdFN1ZmZpeCAqbmdJZj1cImljb25TdWZmaXhcIiAoY2xpY2spPVwic3VmZml4Q2xpY2soKVwiPnt7aWNvblN1ZmZpeH19PC9tYXQtaWNvbj5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNyRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7O0FBUWxDLE1BV2Esa0JBQW1CLFNBQVEsaUJBQXlCO0lBRXZELHlCQUF5QixDQUFRO0lBQ2pDLGFBQWEsR0FBdUIsRUFBRSxDQUFBO0lBRXJDLEtBQUssR0FBRyxFQUFFLENBQUE7SUFDVixRQUFRLEdBQUcsS0FBSyxDQUFBO0lBQ2hCLFVBQVUsR0FBRyxFQUFFLENBQUE7SUFDZixVQUFVLEdBQUcsRUFBRSxDQUFBO0lBQ2YsWUFBWSxHQUFHLElBQUksQ0FBQTtJQUNuQixJQUFJLEdBQXVCLFNBQVMsQ0FBQTtJQUNwQyxZQUFZLEdBQVcsQ0FBQyxDQUFBO0lBQ3hCLDJCQUEyQixHQUFRLEVBQUUsQ0FBQTtJQUU5QyxJQUNJLFlBQVksQ0FBQyxZQUFnQztRQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFH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Qy9CLENBQUM7dUdBbkdVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLGdoQkFQbEIsQ0FBQztnQkFDVixPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2dCQUNqRCxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsaURDckJKLG02Q0FxQkE7O1NER2Esa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMsaUJBQ2EsaUJBQWlCLENBQUMsSUFBSTs4QkFPNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUdGLFlBQVk7c0JBRGYsS0FBSztnQkFVRix3QkFBd0I7c0JBRDNCLEtBQUs7Z0JBU1csZUFBZTtzQkFBL0IsTUFBTTtnQkFDVSxlQUFlO3NCQUEvQixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yQmFzZSB9IGZyb20gJy4uL3ZhbHVlLWFjZXNzb3ItYmFzZSdcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEbmREcm9wRXZlbnQgfSBmcm9tICduZ3gtZHJhZy1kcm9wJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dE9wdGlvbnNUeXBlIHtcbiAgdmFsdWU6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lucHV0LXRleHQnLFxuICB0ZW1wbGF0ZVVybDogJ2lucHV0LXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnaW5wdXQtdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRUZXh0Q29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFRleHRDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yQmFzZTxzdHJpbmc+IHtcblxuICBwcml2YXRlIF9pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQ6IHN0cmluZ1xuICBwcml2YXRlIF9pbnB1dE9wdGlvbnM6IElucHV0T3B0aW9uc1R5cGVbXSA9IFtdXG5cbiAgQElucHV0KCkgbGFiZWwgPSAnJ1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIGljb25TdWZmaXggPSAnJ1xuICBASW5wdXQoKSBpY29uUHJlZml4ID0gJydcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlID0gJ29uJ1xuICBASW5wdXQoKSBzaXplOiAnREVGQVVMVCcgfCAnU0xJTScgPSAnREVGQVVMVCdcbiAgQElucHV0KCkgZGVib3VuY2VUaW1lOiBudW1iZXIgPSAwXG4gIEBJbnB1dCgpIHdpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9uczogYW55ID0gMTBcblxuICBASW5wdXQoKVxuICBzZXQgaW5wdXRPcHRpb25zKGlucHV0T3B0aW9uczogSW5wdXRPcHRpb25zVHlwZVtdKSB7XG4gICAgdGhpcy5faW5wdXRPcHRpb25zID0gaW5wdXRPcHRpb25zXG4gIH1cblxuICBnZXQgaW5wdXRPcHRpb25zKCk6IElucHV0T3B0aW9uc1R5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0T3B0aW9uc1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZChpbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWQ6IHN0cmluZykge1xuICAgIHRoaXMuX2lucHV0T3B0aW9uc0luaXRTZWxlY3RlZCA9IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZFxuICB9XG5cbiAgZ2V0IGlucHV0T3B0aW9uc0luaXRTZWxlY3RlZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWRcbiAgfVxuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc3VmZml4SWNvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBwcmVmaXhJY29uQ2xpY2s6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuICBAT3V0cHV0KCkgcHVibGljIG9uRGVib3VuY2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBvcHRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Ecm9wRXZlbnQ6IEV2ZW50RW1pdHRlcjxEbmREcm9wRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEbmREcm9wRXZlbnQ+KClcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFRlcm1zOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KClcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXJtcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMub25EZWJvdW5jZS5lbWl0KHZhbHVlKVxuICAgIH0pO1xuICAgIHRoaXMuaW5wdXRPcHRpb25zSW5pdFNlbGVjdGVkIHx8PSB0aGlzLmlucHV0T3B0aW9ucz8uWzBdPy52YWx1ZVxuICB9XG5cbiAgcHVibGljIG9uU2VhcmNoSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVib3VuY2VUaW1lKSB7XG4gICAgICB0aGlzLnNlYXJjaFRlcm1zLm5leHQodGhpcy52YWx1ZSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDMyKSB7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgKz0gJyAnXG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gIH1cblxuICBwdWJsaWMgcHJlZml4Q2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5wcmVmaXhJY29uQ2xpY2suZW1pdCh0cnVlKVxuICB9XG5cbiAgcHVibGljIHN1ZmZpeENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc3VmZml4SWNvbkNsaWNrLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIHB1YmxpYyBpc1NsaW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ1NMSU0nXG4gIH1cblxuICBwdWJsaWMgaXNEZWZhdWx0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdERUZBVUxUJ1xuICB9XG5cbiAgcHVibGljIHdpZHRoSW5wdXQoKTogbnVtYmVyIHtcbiAgICBpZiAoaXNOdW1iZXIodGhpcy53aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnB1dE9wdGlvbnMubGVuZ3RoID4gMCA/IDEwMCAtIHRoaXMud2lkdGhQZXJjZW50YWdlSW5wdXRPcHRpb25zIDogMTAwXG4gICAgfVxuICAgIHJldHVybiAxMDBcbiAgfVxuXG4gIHB1YmxpYyBvbk9wdGlvblNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvbkNoYW5nZWQuZW1pdChldmVudC52YWx1ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3RXaWR0aCgpOiBzdHJpbmcge1xuICAgIGlmIChpc051bWJlcih0aGlzLndpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9ucykpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLndpZHRoUGVyY2VudGFnZUlucHV0T3B0aW9uc30lYFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy53aWR0aFBlcmNlbnRhZ2VJbnB1dE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgb25Ecm9wKCRldmVudDogRG5kRHJvcEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkRyb3BFdmVudC5lbWl0KCRldmVudClcbiAgfVxuXG59XG4iLCI8bWF0LWZvcm0tZmllbGRcbiAgY2xhc3M9XCJhcGlwYXNzLWlucHV0LXRleHRcIlxuICBbbmdDbGFzc109XCJ7J2FwaXBhc3MtaW5wdXQtdGV4dC1zbGltJzogaXNTbGltKCksICdhcGlwYXNzLWlucHV0LXRleHQnOiBpc0RlZmF1bHQoKX1cIlxuICBkbmREcm9wem9uZSBbZG5kQWxsb3dFeHRlcm5hbF09XCJ0cnVlXCIgKGRuZERyb3ApPVwib25Ecm9wKCRldmVudClcIlxuICBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsfX08L21hdC1sYWJlbD5cbiAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcHJlZml4XCIgW25nQ2xhc3NdPVwieydtYXQtaWNvbi1zbGltJzogaXNTbGltKCl9XCIgbWF0UHJlZml4ICpuZ0lmPVwiaWNvblByZWZpeFwiIChjbGljayk9XCJwcmVmaXhDbGljaygpXCI+e3tpY29uUHJlZml4fX08L21hdC1pY29uPlxuICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LXRleHRcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aElucHV0KCkgKyAnJScgfVwiIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFthdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlXCJcbiAgICAoaW5wdXQpPVwib25TZWFyY2hJbnB1dCgpXCIgLz5cbiAgPGRpdiAqbmdJZj1cInRoaXMuaW5wdXRPcHRpb25zLmxlbmd0aCA+IDBcIiBjbGFzcz1cInNlbGVjdC1jb250YWluZXJcIlxuICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGdldFNlbGVjdFdpZHRoKCkgfVwiIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdC1jb250YWluZXInOiBpc0RlZmF1bHQoKSxcbiAgICAnc2VsZWN0LWNvbnRhaW5lci1zbGltJzppc1NsaW0oKX1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgW25nQ2xhc3NdPVwieydhcGlwYXNzLWlucHV0LXRleHQtc2xpbSc6IGlzU2xpbSgpLCAnYXBpcGFzcy1pbnB1dC10ZXh0JzogaXNEZWZhdWx0KCl9XCI+XG4gICAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJpbnB1dE9wdGlvbnNJbml0U2VsZWN0ZWRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnB1dE9wdGlvbnNcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPnt7aXRlbS50aXRsZX19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1zdWZmaXhcIiBbbmdDbGFzc109XCJ7J21hdC1pY29uLXNsaW0nOiBpc1NsaW0oKX1cIiBtYXRTdWZmaXggKm5nSWY9XCJpY29uU3VmZml4XCIgKGNsaWNrKT1cInN1ZmZpeENsaWNrKClcIj57e2ljb25TdWZmaXh9fTwvbWF0LWljb24+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -24,14 +24,14 @@ 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
26
  import { isNumber } from 'lodash';
27
+ import * as i6$1 from 'ngx-drag-drop';
28
+ import { DndModule } from 'ngx-drag-drop';
27
29
  import * as i2$1 from '@apipass/icons';
28
30
  import { IconsModule } from '@apipass/icons';
29
31
  import * as i3$2 from '@ng-select/ng-select';
30
32
  import { NgSelectModule } from '@ng-select/ng-select';
31
33
  import * as i1$1 from '@angular/cdk/overlay';
32
34
  import { OverlayModule } from '@angular/cdk/overlay';
33
- import * as i6$1 from 'ngx-drag-drop';
34
- import { DndModule } from 'ngx-drag-drop';
35
35
  import { RouterModule } from '@angular/router';
36
36
  import 'brace';
37
37
  import 'brace/theme/monokai';
@@ -150,6 +150,7 @@ class InputTextComponent extends ValueAccessorBase {
150
150
  prefixIconClick = new EventEmitter();
151
151
  onDebounce = new EventEmitter();
152
152
  optionChanged = new EventEmitter();
153
+ onDropEvent = new EventEmitter();
153
154
  searchTerms = new Subject();
154
155
  ngOnInit() {
155
156
  this.searchTerms.pipe(debounceTime(this.debounceTime), distinctUntilChanged()).subscribe((value) => {
@@ -195,12 +196,15 @@ class InputTextComponent extends ValueAccessorBase {
195
196
  }
196
197
  return this.widthPercentageInputOptions;
197
198
  }
199
+ onDrop($event) {
200
+ this.onDropEvent.emit($event);
201
+ }
198
202
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
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: [{
203
+ 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", onDropEvent: "onDropEvent" }, providers: [{
200
204
  provide: NG_VALUE_ACCESSOR,
201
205
  useExisting: forwardRef(() => InputTextComponent),
202
206
  multi: true
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 });
207
+ }], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"apipass-input-text\"\n [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\"\n dndDropzone [dndAllowExternal]=\"true\" (dndDrop)=\"onDrop($event)\"\n 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"] }, { kind: "directive", type: i6$1.DndDropzoneDirective, selector: "[dndDropzone]", inputs: ["dndDropzone", "dndEffectAllowed", "dndAllowExternal", "dndHorizontal", "dndDragoverClass", "dndDropzoneDisabledClass", "dndDisableIf", "dndDisableDropIf"], outputs: ["dndDragover", "dndDrop"] }], encapsulation: i0.ViewEncapsulation.None });
204
208
  }
205
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputTextComponent, decorators: [{
206
210
  type: Component,
@@ -208,7 +212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
208
212
  provide: NG_VALUE_ACCESSOR,
209
213
  useExisting: forwardRef(() => InputTextComponent),
210
214
  multi: true
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"] }]
215
+ }], encapsulation: ViewEncapsulation.None, template: "<mat-form-field\n class=\"apipass-input-text\"\n [ngClass]=\"{'apipass-input-text-slim': isSlim(), 'apipass-input-text': isDefault()}\"\n dndDropzone [dndAllowExternal]=\"true\" (dndDrop)=\"onDrop($event)\"\n 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"] }]
212
216
  }], propDecorators: { label: [{
213
217
  type: Input
214
218
  }], disabled: [{
@@ -237,6 +241,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
237
241
  type: Output
238
242
  }], optionChanged: [{
239
243
  type: Output
244
+ }], onDropEvent: [{
245
+ type: Output
240
246
  }] } });
241
247
 
242
248
  class InputAvatarComponent {
@@ -2146,8 +2152,12 @@ class InputKeyValueComponent {
2146
2152
  widthPercentageInputOptions;
2147
2153
  inputOptionsInitSelected = null;
2148
2154
  inputOptions = [];
2155
+ onKeyDropEvent = new EventEmitter();
2156
+ onValueDropEvent = new EventEmitter();
2149
2157
  set model(model) {
2150
- this.initializeModel(model);
2158
+ setTimeout(() => {
2159
+ this.initializeModel(model);
2160
+ }, 200);
2151
2161
  }
2152
2162
  get model() {
2153
2163
  return this._model;
@@ -2155,9 +2165,6 @@ class InputKeyValueComponent {
2155
2165
  initializeModel(model) {
2156
2166
  if (model?.length > 0) {
2157
2167
  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
- }
2161
2168
  const lastModel = model[model.length - 1];
2162
2169
  if (lastModel?.[this.keyField] || lastModel?.[this.valueField]) {
2163
2170
  this._model.push(this.getNewModel());
@@ -2182,6 +2189,9 @@ class InputKeyValueComponent {
2182
2189
  const value = {};
2183
2190
  value[this.keyField] = '';
2184
2191
  value[this.valueField] = '';
2192
+ if (this.inputOptions?.length > 0 && this.inputOptionsInitSelected) {
2193
+ value.type = this.inputOptionsInitSelected;
2194
+ }
2185
2195
  return value;
2186
2196
  }
2187
2197
  onChangeValues(last) {
@@ -2200,12 +2210,28 @@ class InputKeyValueComponent {
2200
2210
  inputOptionChanged(event, index) {
2201
2211
  this.model[index].type = event;
2202
2212
  }
2213
+ onKeyDrop(index, model, $event) {
2214
+ this.onKeyDropEvent.emit({
2215
+ index,
2216
+ model,
2217
+ keyField: this.keyField,
2218
+ event: $event
2219
+ });
2220
+ }
2221
+ onValueDrop(index, model, $event) {
2222
+ this.onValueDropEvent.emit({
2223
+ index,
2224
+ model,
2225
+ valueField: this.valueField,
2226
+ event: $event
2227
+ });
2228
+ }
2203
2229
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputKeyValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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"] }] });
2230
+ 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: { onKeyDropEvent: "onKeyDropEvent", onValueDropEvent: "onValueDropEvent", 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 (onDropEvent)=\"onKeyDrop(index, item, $event)\">\n </input-text>\n <input-text\n class=\"input-value\"\n [size]=\"size\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item[valueField]\"\n (onDropEvent)=\"onValueDrop(index, item, $event)\">\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", "onDropEvent"] }] });
2205
2231
  }
2206
2232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputKeyValueComponent, decorators: [{
2207
2233
  type: Component,
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"] }]
2234
+ 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 (onDropEvent)=\"onKeyDrop(index, item, $event)\">\n </input-text>\n <input-text\n class=\"input-value\"\n [size]=\"size\"\n [label]=\"labelValue\"\n [(ngModel)]=\"item[valueField]\"\n (onDropEvent)=\"onValueDrop(index, item, $event)\">\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
2235
  }], propDecorators: { size: [{
2210
2236
  type: Input
2211
2237
  }], keyField: [{
@@ -2224,6 +2250,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
2224
2250
  type: Input
2225
2251
  }], inputOptions: [{
2226
2252
  type: Input
2253
+ }], onKeyDropEvent: [{
2254
+ type: Output
2255
+ }], onValueDropEvent: [{
2256
+ type: Output
2227
2257
  }], model: [{
2228
2258
  type: Input
2229
2259
  }], modelChange: [{