@leanix/components 0.3.112 → 0.3.114

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.
@@ -8,6 +8,7 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
9
9
  import * as i2 from "@angular/forms";
10
10
  import * as i3 from "./currency-symbol.component";
11
+ import * as i4 from "../../directives/mark-invalid.directive";
11
12
  export class CurrencyInputComponent {
12
13
  constructor(changeDetector) {
13
14
  this.changeDetector = changeDetector;
@@ -17,6 +18,7 @@ export class CurrencyInputComponent {
17
18
  this.mode = 'edit';
18
19
  this.iconPosition = 'first';
19
20
  this.format = '1.2-2';
21
+ this.markInvalid = false;
20
22
  this.onFocusLost = new EventEmitter();
21
23
  this.onChange = new EventEmitter();
22
24
  this.showCurrencyInput = false;
@@ -93,13 +95,13 @@ export class CurrencyInputComponent {
93
95
  }
94
96
  }
95
97
  CurrencyInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CurrencyInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
96
- CurrencyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: CurrencyInputComponent, selector: "lx-currency-input", inputs: { code: "code", decimalSeparator: "decimalSeparator", placeholder: "placeholder", data: "data", disabled: "disabled", mode: "mode", fieldDefinitionType: "fieldDefinitionType", iconPosition: "iconPosition", format: "format" }, outputs: { onFocusLost: "onFocusLost", onChange: "onChange" }, providers: [
98
+ CurrencyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: CurrencyInputComponent, selector: "lx-currency-input", inputs: { code: "code", decimalSeparator: "decimalSeparator", placeholder: "placeholder", data: "data", disabled: "disabled", mode: "mode", fieldDefinitionType: "fieldDefinitionType", iconPosition: "iconPosition", format: "format", markInvalid: "markInvalid" }, outputs: { onFocusLost: "onFocusLost", onChange: "onChange" }, providers: [
97
99
  {
98
100
  provide: NG_VALUE_ACCESSOR,
99
101
  useExisting: forwardRef(() => CurrencyInputComponent),
100
102
  multi: true
101
103
  }
102
- ], viewQueries: [{ propertyName: "currencyInput", first: true, predicate: ["currencyInput"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode === 'edit'\" class=\"container input-group\">\n <div *ngIf=\"iconPosition === 'first'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n <input\n [attr.disabled]=\"disabled ? true : null\"\n *ngIf=\"!showCurrencyInput\"\n type=\"text\"\n class=\"form-control currencyDisplayValue\"\n placeholder=\"{{ placeholder }}\"\n [value]=\"dataValue$ | async | number : format\"\n (focus)=\"focusCurrencyInput()\"\n />\n <input\n [attr.disabled]=\"disabled ? true : null\"\n [class.hideInput]=\"!showCurrencyInput\"\n type=\"text\"\n inputmode=\"numeric\"\n class=\"form-control currencyInput\"\n name=\"inputAmount\"\n #currencyInput\n placeholder=\"{{ placeholder }}\"\n [ngModel]=\"dataValue$ | async\"\n (blur)=\"onBlur()\"\n (ngModelChange)=\"valueChanged($event)\"\n />\n <div *ngIf=\"iconPosition === 'end'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n</div>\n<span *ngIf=\"mode === 'view'\" [class.placeholder]=\"(dataValue$ | async) === null && placeholder\">\n <!-- Not using Angular 2 currency pipe since a lot of currency symbols are missing: https://github.com/angular/angular/issues/6724 -->\n <lx-currency-symbol *ngIf=\"iconPosition === 'first'\" [code]=\"code\"></lx-currency-symbol>\n {{ (dataValue$ | async | number : format) || placeholder }}\n <lx-currency-symbol *ngIf=\"iconPosition === 'end'\" [code]=\"code\"></lx-currency-symbol>\n</span>\n", styles: [".container{width:100%!important;padding:0}.labelContainer{width:5%!important;min-width:40px}input{width:100%}.hideInput{display:none}.placeholder{color:#99a5bb}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.CurrencySymbolComponent, selector: "lx-currency-symbol", inputs: ["code"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
+ ], viewQueries: [{ propertyName: "currencyInput", first: true, predicate: ["currencyInput"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode === 'edit'\" class=\"container input-group\">\n <div *ngIf=\"iconPosition === 'first'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n <input\n [attr.disabled]=\"disabled ? true : null\"\n *ngIf=\"!showCurrencyInput\"\n type=\"text\"\n class=\"form-control currencyDisplayValue\"\n placeholder=\"{{ placeholder }}\"\n [lxMarkInvalid]=\"markInvalid\"\n [value]=\"dataValue$ | async | number : format\"\n (focus)=\"focusCurrencyInput()\"\n />\n <input\n autocomplete=\"off\"\n [attr.disabled]=\"disabled ? true : null\"\n [class.hideInput]=\"!showCurrencyInput\"\n type=\"text\"\n inputmode=\"numeric\"\n class=\"form-control currencyInput\"\n name=\"inputAmount\"\n #currencyInput\n placeholder=\"{{ placeholder }}\"\n [ngModel]=\"dataValue$ | async\"\n (blur)=\"onBlur()\"\n (ngModelChange)=\"valueChanged($event)\"\n />\n <div *ngIf=\"iconPosition === 'end'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n</div>\n<span *ngIf=\"mode === 'view'\" [class.placeholder]=\"(dataValue$ | async) === null && placeholder\">\n <!-- Not using Angular 2 currency pipe since a lot of currency symbols are missing: https://github.com/angular/angular/issues/6724 -->\n <lx-currency-symbol *ngIf=\"iconPosition === 'first'\" [code]=\"code\"></lx-currency-symbol>\n {{ (dataValue$ | async | number : format) || placeholder }}\n <lx-currency-symbol *ngIf=\"iconPosition === 'end'\" [code]=\"code\"></lx-currency-symbol>\n</span>\n", styles: [".container{width:100%!important;padding:0}.labelContainer{width:5%!important;min-width:40px}input{width:100%}.hideInput{display:none}.placeholder{color:#99a5bb}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.CurrencySymbolComponent, selector: "lx-currency-symbol", inputs: ["code"] }, { kind: "directive", type: i4.MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
103
105
  __decorate([
104
106
  Observe('data')
105
107
  ], CurrencyInputComponent.prototype, "data$", void 0);
@@ -111,7 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
111
113
  useExisting: forwardRef(() => CurrencyInputComponent),
112
114
  multi: true
113
115
  }
114
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"mode === 'edit'\" class=\"container input-group\">\n <div *ngIf=\"iconPosition === 'first'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n <input\n [attr.disabled]=\"disabled ? true : null\"\n *ngIf=\"!showCurrencyInput\"\n type=\"text\"\n class=\"form-control currencyDisplayValue\"\n placeholder=\"{{ placeholder }}\"\n [value]=\"dataValue$ | async | number : format\"\n (focus)=\"focusCurrencyInput()\"\n />\n <input\n [attr.disabled]=\"disabled ? true : null\"\n [class.hideInput]=\"!showCurrencyInput\"\n type=\"text\"\n inputmode=\"numeric\"\n class=\"form-control currencyInput\"\n name=\"inputAmount\"\n #currencyInput\n placeholder=\"{{ placeholder }}\"\n [ngModel]=\"dataValue$ | async\"\n (blur)=\"onBlur()\"\n (ngModelChange)=\"valueChanged($event)\"\n />\n <div *ngIf=\"iconPosition === 'end'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n</div>\n<span *ngIf=\"mode === 'view'\" [class.placeholder]=\"(dataValue$ | async) === null && placeholder\">\n <!-- Not using Angular 2 currency pipe since a lot of currency symbols are missing: https://github.com/angular/angular/issues/6724 -->\n <lx-currency-symbol *ngIf=\"iconPosition === 'first'\" [code]=\"code\"></lx-currency-symbol>\n {{ (dataValue$ | async | number : format) || placeholder }}\n <lx-currency-symbol *ngIf=\"iconPosition === 'end'\" [code]=\"code\"></lx-currency-symbol>\n</span>\n", styles: [".container{width:100%!important;padding:0}.labelContainer{width:5%!important;min-width:40px}input{width:100%}.hideInput{display:none}.placeholder{color:#99a5bb}\n"] }]
116
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"mode === 'edit'\" class=\"container input-group\">\n <div *ngIf=\"iconPosition === 'first'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n <input\n [attr.disabled]=\"disabled ? true : null\"\n *ngIf=\"!showCurrencyInput\"\n type=\"text\"\n class=\"form-control currencyDisplayValue\"\n placeholder=\"{{ placeholder }}\"\n [lxMarkInvalid]=\"markInvalid\"\n [value]=\"dataValue$ | async | number : format\"\n (focus)=\"focusCurrencyInput()\"\n />\n <input\n autocomplete=\"off\"\n [attr.disabled]=\"disabled ? true : null\"\n [class.hideInput]=\"!showCurrencyInput\"\n type=\"text\"\n inputmode=\"numeric\"\n class=\"form-control currencyInput\"\n name=\"inputAmount\"\n #currencyInput\n placeholder=\"{{ placeholder }}\"\n [ngModel]=\"dataValue$ | async\"\n (blur)=\"onBlur()\"\n (ngModelChange)=\"valueChanged($event)\"\n />\n <div *ngIf=\"iconPosition === 'end'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n</div>\n<span *ngIf=\"mode === 'view'\" [class.placeholder]=\"(dataValue$ | async) === null && placeholder\">\n <!-- Not using Angular 2 currency pipe since a lot of currency symbols are missing: https://github.com/angular/angular/issues/6724 -->\n <lx-currency-symbol *ngIf=\"iconPosition === 'first'\" [code]=\"code\"></lx-currency-symbol>\n {{ (dataValue$ | async | number : format) || placeholder }}\n <lx-currency-symbol *ngIf=\"iconPosition === 'end'\" [code]=\"code\"></lx-currency-symbol>\n</span>\n", styles: [".container{width:100%!important;padding:0}.labelContainer{width:5%!important;min-width:40px}input{width:100%}.hideInput{display:none}.placeholder{color:#99a5bb}\n"] }]
115
117
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { code: [{
116
118
  type: Input
117
119
  }], decimalSeparator: [{
@@ -130,6 +132,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
130
132
  type: Input
131
133
  }], format: [{
132
134
  type: Input
135
+ }], markInvalid: [{
136
+ type: Input
133
137
  }], onFocusLost: [{
134
138
  type: Output
135
139
  }], onChange: [{
@@ -138,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
138
142
  type: ViewChild,
139
143
  args: ['currencyInput']
140
144
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9jdXJyZW5jeS9jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2N1cnJlbmN5L2N1cnJlbmN5LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBb0JsRCxNQUFNLE9BQU8sc0JBQXNCO0lBMEJqQyxZQUFvQixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUF4QnJDLHFCQUFnQixHQUFxQixHQUFHLENBQUM7UUFFekMsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUdqQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBc0IsTUFBTSxDQUFDO1FBRWpDLGlCQUFZLEdBQXlCLE9BQU8sQ0FBQztRQUM3QyxXQUFNLEdBQVcsT0FBTyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztR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QUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7O21IQTNHVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixxVkFUdEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztZQUNyRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMElDbENILGlqREFvQ0E7QURNMkI7SUFBeEIsT0FBTyxDQUFTLE1BQU0sQ0FBQztxREFBNEI7MkZBTHpDLHNCQUFzQjtrQkFibEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3dHQUcvQixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ21CLEtBQUssTUFFZCxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsbUJBQW1CO3NCQUFsQyxLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFFVyxXQUFXO3NCQUEzQixNQUFNO2dCQUNVLFFBQVE7c0JBQXhCLE1BQU07Z0JBRTZCLGFBQWE7c0JBQWhELFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcblxuZXhwb3J0IHR5cGUgQ3VycmVuY3lJbnB1dE1vZGUgPSAndmlldycgfCAnZWRpdCc7XG5leHBvcnQgdHlwZSBDdXJyZW5jeUljb25Qb3NpdGlvbiA9ICdmaXJzdCcgfCAnZW5kJyB8ICdub25lJztcblxudHlwZSBEZWNpbWFsU2VwYXJhdG9yID0gJywnIHwgJy4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1jdXJyZW5jeS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnY3VycmVuY3ktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXJyZW5jeUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGNvZGUhOiBzdHJpbmcgfCBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgZGVjaW1hbFNlcGFyYXRvcjogRGVjaW1hbFNlcGFyYXRvciA9ICcuJztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyITogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZGF0YTogbnVtYmVyID0gMDtcbiAgQE9ic2VydmU8bnVtYmVyPignZGF0YScpIGRhdGEkITogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbW9kZTogQ3VycmVuY3lJbnB1dE1vZGUgPSAnZWRpdCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZERlZmluaXRpb25UeXBlITogJ0RPVUJMRScgfCAnSU5URUdFUic7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uUG9zaXRpb246IEN1cnJlbmN5SWNvblBvc2l0aW9uID0gJ2ZpcnN0JztcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdDogc3RyaW5nID0gJzEuMi0yJztcblxuICBAT3V0cHV0KCkgcHVibGljIG9uRm9jdXNMb3N0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY3VycmVuY3lJbnB1dCcpIHByaXZhdGUgY3VycmVuY3lJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHNob3dDdXJyZW5jeUlucHV0OiBib29sZWFuID0gZmFsc2U7XG4gIGRhdGFWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBnZXQgYWxsb3dlZENoYXJhY3RlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGREZWZpbml0aW9uVHlwZSA9PT0gJ0RPVUJMRScgPyBuZXcgUmVnRXhwKGBbMC05XFxlXFxcXCR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfVxcXWApIDogL1swLTlcXGVcXFxcXS87XG4gIH1cblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRhdGEkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSh0aGlzLmRhdGFWYWx1ZSQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1cnJlbmN5SW5wdXQpIHtcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLmN1cnJlbmN5SW5wdXQubmF0aXZlRWxlbWVudCwgJ2tleXByZXNzJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChrZXlib2FyZEV2ZW50KSA9PiB0aGlzLnNob3VsZFJlamVjdEtleShrZXlib2FyZEV2ZW50KSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChrZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAga2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgaW52YWxpZFNlcGFyYXRvciA9IHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9PT0gJy4nID8gJywnIDogJy4nO1xuICAgICAgdmFsdWUgPSB0aGlzLnBhcnNlSW5wdXQodmFsdWUsIGludmFsaWRTZXBhcmF0b3IpIGFzIG51bWJlcjtcbiAgICB9XG4gICAgLy8gZml4IGNvcHkgJiBwYXN0ZSBzdHJpbmcgdmFsdWVzIGJlaW5nIGludGVycHJldGVkIHdyb25nbHlcbiAgICB0aGlzLmRhdGFWYWx1ZSQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5zaG93Q3VycmVuY3lJbnB1dCA9IGZhbHNlO1xuICAgIHRoaXMub25Gb2N1c0xvc3QuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIGZvY3VzQ3VycmVuY3lJbnB1dCgpIHtcbiAgICB0aGlzLnNob3dDdXJyZW5jeUlucHV0ID0gdHJ1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmN1cnJlbmN5SW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMuY3VycmVuY3lJbnB1dC5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIDApO1xuICB9XG5cbiAgc2hvdWxkUmVqZWN0S2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZmllbGREZWZpbml0aW9uVHlwZSA9PT0gJ0RPVUJMRScgJiYgZXZlbnQua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5zU2VwYXJhdG9ycyh0aGlzLmN1cnJlbmN5SW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5hbGxvd2VkQ2hhcmFjdGVycy50ZXN0KGV2ZW50LmtleSk7XG4gIH1cblxuICBwcm9wYWdhdGVDaGFuZ2UoX25ld1ZhbHVlOiBudW1iZXIpIHt9XG5cbiAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5kYXRhVmFsdWUkLm5leHQobmV3VmFsdWUpO1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChfZm46IGFueSkge31cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUlucHV0KHZhbHVlOiBzdHJpbmcsIGNoYXI6IHN0cmluZykge1xuICAgIGNvbnN0IGNvdW50T2NjdXJlbmNlcyA9IHZhbHVlLnNwbGl0KGNoYXIpLmxlbmd0aCAtIDE7XG4gICAgaWYgKGNvdW50T2NjdXJlbmNlcyA+IDEpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnRPY2N1cmVuY2VzOyBpKyspIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGNoYXIsICcnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlLnJlcGxhY2UoJywnLCAnLicpLnJlcGxhY2UoLyAvZywgJycpKTtcbiAgICByZXR1cm4gaXNOYU4ocGFyc2VkVmFsdWUpID8gbnVsbCA6IHBhcnNlZFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb250YWluc1NlcGFyYXRvcnModmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5pbmRleE9mKCcsJykgPiAtMSB8fCB2YWx1ZS5pbmRleE9mKCcuJykgPiAtMTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdlZGl0J1wiIGNsYXNzPVwiY29udGFpbmVyIGlucHV0LWdyb3VwXCI+XG4gIDxkaXYgKm5nSWY9XCJpY29uUG9zaXRpb24gPT09ICdmaXJzdCdcIiBjbGFzcz1cImxhYmVsQ29udGFpbmVyIGlucHV0LWdyb3VwLWFkZG9uXCI+XG4gICAgPGx4LWN1cnJlbmN5LXN5bWJvbCBbY29kZV09XCJjb2RlXCI+PC9seC1jdXJyZW5jeS1zeW1ib2w+XG4gIDwvZGl2PlxuICA8aW5wdXRcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAqbmdJZj1cIiFzaG93Q3VycmVuY3lJbnB1dFwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1cnJlbmN5RGlzcGxheVZhbHVlXCJcbiAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICBbdmFsdWVdPVwiZGF0YVZhbHVlJCB8IGFzeW5jIHwgbnVtYmVyIDogZm9ybWF0XCJcbiAgICAoZm9jdXMpPVwiZm9jdXNDdXJyZW5jeUlucHV0KClcIlxuICAvPlxuICA8aW5wdXRcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICBbY2xhc3MuaGlkZUlucHV0XT1cIiFzaG93Q3VycmVuY3lJbnB1dFwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1cnJlbmN5SW5wdXRcIlxuICAgIG5hbWU9XCJpbnB1dEFtb3VudFwiXG4gICAgI2N1cnJlbmN5SW5wdXRcbiAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICBbbmdNb2RlbF09XCJkYXRhVmFsdWUkIHwgYXN5bmNcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gIC8+XG4gIDxkaXYgKm5nSWY9XCJpY29uUG9zaXRpb24gPT09ICdlbmQnXCIgY2xhc3M9XCJsYWJlbENvbnRhaW5lciBpbnB1dC1ncm91cC1hZGRvblwiPlxuICAgIDxseC1jdXJyZW5jeS1zeW1ib2wgW2NvZGVdPVwiY29kZVwiPjwvbHgtY3VycmVuY3ktc3ltYm9sPlxuICA8L2Rpdj5cbjwvZGl2PlxuPHNwYW4gKm5nSWY9XCJtb2RlID09PSAndmlldydcIiBbY2xhc3MucGxhY2Vob2xkZXJdPVwiKGRhdGFWYWx1ZSQgfCBhc3luYykgPT09IG51bGwgJiYgcGxhY2Vob2xkZXJcIj5cbiAgPCEtLSBOb3QgdXNpbmcgQW5ndWxhciAyIGN1cnJlbmN5IHBpcGUgc2luY2UgYSBsb3Qgb2YgY3VycmVuY3kgc3ltYm9scyBhcmUgbWlzc2luZzogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNjcyNCAtLT5cbiAgPGx4LWN1cnJlbmN5LXN5bWJvbCAqbmdJZj1cImljb25Qb3NpdGlvbiA9PT0gJ2ZpcnN0J1wiIFtjb2RlXT1cImNvZGVcIj48L2x4LWN1cnJlbmN5LXN5bWJvbD5cbiAge3sgKGRhdGFWYWx1ZSQgfCBhc3luYyB8IG51bWJlciA6IGZvcm1hdCkgfHwgcGxhY2Vob2xkZXIgfX1cbiAgPGx4LWN1cnJlbmN5LXN5bWJvbCAqbmdJZj1cImljb25Qb3NpdGlvbiA9PT0gJ2VuZCdcIiBbY29kZV09XCJjb2RlXCI+PC9seC1jdXJyZW5jeS1zeW1ib2w+XG48L3NwYW4+XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9jdXJyZW5jeS9jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2N1cnJlbmN5L2N1cnJlbmN5LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztBQW9CbEQsTUFBTSxPQUFPLHNCQUFzQjtJQTJCakMsWUFBb0IsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBekJyQyxxQkFBZ0IsR0FBcUIsR0FBRyxDQUFDO1FBRXpDLFNBQUksR0FBVyxDQUFDLENBQUM7UUFHakIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQXNCLE1BQU0sQ0FBQztRQUVqQyxpQkFBWSxHQUF5QixPQUFPLENBQUM7UUFDN0MsV0FBTSxHQUFXLE9BQU8sQ0FBQztRQUNoQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVaLGdCQUFX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LENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7O21IQTVHVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixpWEFUdEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztZQUNyRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMElDbENILGduREFzQ0E7QURJMkI7SUFBeEIsT0FBTyxDQUFTLE1BQU0sQ0FBQztxREFBNEI7MkZBTHpDLHNCQUFzQjtrQkFibEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3dHQUcvQixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ21CLEtBQUssTUFFZCxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsbUJBQW1CO3NCQUFsQyxLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVXLFdBQVc7c0JBQTNCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFFNkIsYUFBYTtzQkFBaEQsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmUnO1xuXG5leHBvcnQgdHlwZSBDdXJyZW5jeUlucHV0TW9kZSA9ICd2aWV3JyB8ICdlZGl0JztcbmV4cG9ydCB0eXBlIEN1cnJlbmN5SWNvblBvc2l0aW9uID0gJ2ZpcnN0JyB8ICdlbmQnIHwgJ25vbmUnO1xuXG5leHBvcnQgdHlwZSBEZWNpbWFsU2VwYXJhdG9yID0gJywnIHwgJy4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1jdXJyZW5jeS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnY3VycmVuY3ktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY3VycmVuY3ktaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDdXJyZW5jeUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGNvZGUhOiBzdHJpbmcgfCBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgZGVjaW1hbFNlcGFyYXRvcjogRGVjaW1hbFNlcGFyYXRvciA9ICcuJztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyITogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZGF0YTogbnVtYmVyID0gMDtcbiAgQE9ic2VydmU8bnVtYmVyPignZGF0YScpIGRhdGEkITogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbW9kZTogQ3VycmVuY3lJbnB1dE1vZGUgPSAnZWRpdCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZERlZmluaXRpb25UeXBlITogJ0RPVUJMRScgfCAnSU5URUdFUic7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uUG9zaXRpb246IEN1cnJlbmN5SWNvblBvc2l0aW9uID0gJ2ZpcnN0JztcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdDogc3RyaW5nID0gJzEuMi0yJztcbiAgQElucHV0KCkgbWFya0ludmFsaWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcHVibGljIG9uRm9jdXNMb3N0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY3VycmVuY3lJbnB1dCcpIHByaXZhdGUgY3VycmVuY3lJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHNob3dDdXJyZW5jeUlucHV0OiBib29sZWFuID0gZmFsc2U7XG4gIGRhdGFWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBnZXQgYWxsb3dlZENoYXJhY3RlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGREZWZpbml0aW9uVHlwZSA9PT0gJ0RPVUJMRScgPyBuZXcgUmVnRXhwKGBbMC05XFxlXFxcXCR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfVxcXWApIDogL1swLTlcXGVcXFxcXS87XG4gIH1cblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRhdGEkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSh0aGlzLmRhdGFWYWx1ZSQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1cnJlbmN5SW5wdXQpIHtcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLmN1cnJlbmN5SW5wdXQubmF0aXZlRWxlbWVudCwgJ2tleXByZXNzJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChrZXlib2FyZEV2ZW50KSA9PiB0aGlzLnNob3VsZFJlamVjdEtleShrZXlib2FyZEV2ZW50KSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChrZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAga2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgaW52YWxpZFNlcGFyYXRvciA9IHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9PT0gJy4nID8gJywnIDogJy4nO1xuICAgICAgdmFsdWUgPSB0aGlzLnBhcnNlSW5wdXQodmFsdWUsIGludmFsaWRTZXBhcmF0b3IpIGFzIG51bWJlcjtcbiAgICB9XG4gICAgLy8gZml4IGNvcHkgJiBwYXN0ZSBzdHJpbmcgdmFsdWVzIGJlaW5nIGludGVycHJldGVkIHdyb25nbHlcbiAgICB0aGlzLmRhdGFWYWx1ZSQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5zaG93Q3VycmVuY3lJbnB1dCA9IGZhbHNlO1xuICAgIHRoaXMub25Gb2N1c0xvc3QuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIGZvY3VzQ3VycmVuY3lJbnB1dCgpIHtcbiAgICB0aGlzLnNob3dDdXJyZW5jeUlucHV0ID0gdHJ1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmN1cnJlbmN5SW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMuY3VycmVuY3lJbnB1dC5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIDApO1xuICB9XG5cbiAgc2hvdWxkUmVqZWN0S2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZmllbGREZWZpbml0aW9uVHlwZSA9PT0gJ0RPVUJMRScgJiYgZXZlbnQua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5zU2VwYXJhdG9ycyh0aGlzLmN1cnJlbmN5SW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5hbGxvd2VkQ2hhcmFjdGVycy50ZXN0KGV2ZW50LmtleSk7XG4gIH1cblxuICBwcm9wYWdhdGVDaGFuZ2UoX25ld1ZhbHVlOiBudW1iZXIpIHt9XG5cbiAgd3JpdGVWYWx1ZShuZXdWYWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5kYXRhVmFsdWUkLm5leHQobmV3VmFsdWUpO1xuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChfZm46IGFueSkge31cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUlucHV0KHZhbHVlOiBzdHJpbmcsIGNoYXI6IHN0cmluZykge1xuICAgIGNvbnN0IGNvdW50T2NjdXJlbmNlcyA9IHZhbHVlLnNwbGl0KGNoYXIpLmxlbmd0aCAtIDE7XG4gICAgaWYgKGNvdW50T2NjdXJlbmNlcyA+IDEpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnRPY2N1cmVuY2VzOyBpKyspIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGNoYXIsICcnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlLnJlcGxhY2UoJywnLCAnLicpLnJlcGxhY2UoLyAvZywgJycpKTtcbiAgICByZXR1cm4gaXNOYU4ocGFyc2VkVmFsdWUpID8gbnVsbCA6IHBhcnNlZFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb250YWluc1NlcGFyYXRvcnModmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5pbmRleE9mKCcsJykgPiAtMSB8fCB2YWx1ZS5pbmRleE9mKCcuJykgPiAtMTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdlZGl0J1wiIGNsYXNzPVwiY29udGFpbmVyIGlucHV0LWdyb3VwXCI+XG4gIDxkaXYgKm5nSWY9XCJpY29uUG9zaXRpb24gPT09ICdmaXJzdCdcIiBjbGFzcz1cImxhYmVsQ29udGFpbmVyIGlucHV0LWdyb3VwLWFkZG9uXCI+XG4gICAgPGx4LWN1cnJlbmN5LXN5bWJvbCBbY29kZV09XCJjb2RlXCI+PC9seC1jdXJyZW5jeS1zeW1ib2w+XG4gIDwvZGl2PlxuICA8aW5wdXRcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAqbmdJZj1cIiFzaG93Q3VycmVuY3lJbnB1dFwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1cnJlbmN5RGlzcGxheVZhbHVlXCJcbiAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICBbbHhNYXJrSW52YWxpZF09XCJtYXJrSW52YWxpZFwiXG4gICAgW3ZhbHVlXT1cImRhdGFWYWx1ZSQgfCBhc3luYyB8IG51bWJlciA6IGZvcm1hdFwiXG4gICAgKGZvY3VzKT1cImZvY3VzQ3VycmVuY3lJbnB1dCgpXCJcbiAgLz5cbiAgPGlucHV0XG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICBbY2xhc3MuaGlkZUlucHV0XT1cIiFzaG93Q3VycmVuY3lJbnB1dFwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1cnJlbmN5SW5wdXRcIlxuICAgIG5hbWU9XCJpbnB1dEFtb3VudFwiXG4gICAgI2N1cnJlbmN5SW5wdXRcbiAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICBbbmdNb2RlbF09XCJkYXRhVmFsdWUkIHwgYXN5bmNcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gIC8+XG4gIDxkaXYgKm5nSWY9XCJpY29uUG9zaXRpb24gPT09ICdlbmQnXCIgY2xhc3M9XCJsYWJlbENvbnRhaW5lciBpbnB1dC1ncm91cC1hZGRvblwiPlxuICAgIDxseC1jdXJyZW5jeS1zeW1ib2wgW2NvZGVdPVwiY29kZVwiPjwvbHgtY3VycmVuY3ktc3ltYm9sPlxuICA8L2Rpdj5cbjwvZGl2PlxuPHNwYW4gKm5nSWY9XCJtb2RlID09PSAndmlldydcIiBbY2xhc3MucGxhY2Vob2xkZXJdPVwiKGRhdGFWYWx1ZSQgfCBhc3luYykgPT09IG51bGwgJiYgcGxhY2Vob2xkZXJcIj5cbiAgPCEtLSBOb3QgdXNpbmcgQW5ndWxhciAyIGN1cnJlbmN5IHBpcGUgc2luY2UgYSBsb3Qgb2YgY3VycmVuY3kgc3ltYm9scyBhcmUgbWlzc2luZzogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNjcyNCAtLT5cbiAgPGx4LWN1cnJlbmN5LXN5bWJvbCAqbmdJZj1cImljb25Qb3NpdGlvbiA9PT0gJ2ZpcnN0J1wiIFtjb2RlXT1cImNvZGVcIj48L2x4LWN1cnJlbmN5LXN5bWJvbD5cbiAge3sgKGRhdGFWYWx1ZSQgfCBhc3luYyB8IG51bWJlciA6IGZvcm1hdCkgfHwgcGxhY2Vob2xkZXIgfX1cbiAgPGx4LWN1cnJlbmN5LXN5bWJvbCAqbmdJZj1cImljb25Qb3NpdGlvbiA9PT0gJ2VuZCdcIiBbY29kZV09XCJjb2RlXCI+PC9seC1jdXJyZW5jeS1zeW1ib2w+XG48L3NwYW4+XG4iXX0=
@@ -21,7 +21,7 @@ export class BaseSelectDirective {
21
21
  this.optionsKeyboardSelectAction$ = new Subject();
22
22
  this.virtualCursorPosition = 0;
23
23
  this.inputWasFocused = false;
24
- this.queryControl = new UntypedFormControl();
24
+ this.queryControl = new UntypedFormControl('');
25
25
  this.isInputFocused = false;
26
26
  this.destroyed$ = new Subject();
27
27
  }
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
148
148
  type: ViewChild,
149
149
  args: ['optionsContainer', { static: true }]
150
150
  }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvbW9kZWxzL2Jhc2Utc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVUvRSxNQUFNLE9BQWdCLG1CQUFtQjtJQUR6QztRQUdXLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isc0JBQWlCLEdBQVcsR0FBRyxDQUFDO1FBQ2hDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFMUIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDakMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFPN0IsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQW1CLFFBQVEsQ0FBQyxDQUFDO1FBQzlFLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRzVCLGtGQUFrRjtRQUNsRSxtQ0FBOEIsR0FBRyxJQUFJLE9BQU8sRUFBK0IsQ0FBQztRQUM1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LENBQUM7WUFDbkQscUJBQXFCO1lBQ3JCLGVBQWU7U0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sa0JBQWtCLENBQUMsTUFBVztRQUN0QyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0RSwrREFBK0Q7WUFDL0QsU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzFGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JFLENBQUM7O2dIQWhLbUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzs4QkFFQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFFMEMsZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLZXlib2FyZFNlbGVjdEFjdGlvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMva2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTZXQge1xuICBldmVudDogS2V5Ym9hcmRFdmVudDtcbiAgaW5wdXRDdXJzb3JQb3NpdGlvbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB2aXJ0dWFsQ3Vyc29yUG9zaXRpb246IG51bWJlcjtcbiAgc2VsZWN0aW9uTGVuZ3RoPzogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZm9jdXNPbkluaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZHJvcGRvd25NYXhIZWlnaHQ6IG51bWJlciA9IDI1MDtcbiAgQElucHV0KCkgYWxsb3dRdWVyeTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHF1ZXJ5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZCgnb3B0aW9uc0NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIG9wdGlvbnNDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBhYnN0cmFjdCBzZWxlY3Rpb24/OiBhbnk7XG4gIGFic3RyYWN0IHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgcHVibGljIHJlYWRvbmx5IHF1ZXJ5JCA9IHRoaXMucXVlcnkuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBkcm9wZG93bkRpcmVjdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdUT1AnIHwgJ0JPVFRPTSc+KCdCT1RUT00nKTtcbiAgcHVibGljIGRyb3Bkb3duT3BlbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBhY3RpdmVFbGVtZW50ITogRWxlbWVudDtcbiAgLy8gYW4gYXhpcywgd2hlcmUgdGhlIG5lZ2F0aXZlIHJhbmdlIHJlcHJlc2VudHMgdGhlIHNlbGVjdGVkIGl0ZW0gaW4gdGhlIHNlbGVjdGlvblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uS2V5Ym9hcmRTZWxlY3RBY3Rpb24kID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRTZWxlY3RBY3Rpb24gfCBudWxsPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uc0tleWJvYXJkU2VsZWN0QWN0aW9uJCA9IG5ldyBTdWJqZWN0PEtleWJvYXJkU2VsZWN0QWN0aW9uIHwgbnVsbD4oKTtcbiAgcHVibGljIHZpcnR1YWxDdXJzb3JQb3NpdGlvbjogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgaW5wdXRXYXNGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHJlYWRvbmx5IHF1ZXJ5Q29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcblxuICBwdWJsaWMgaXNJbnB1dEZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBhYnN0cmFjdCByZXNldElucHV0KCk6IHZvaWQ7XG5cbiAgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5xdWVyeUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuYWxsb3dRdWVyeSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMub3Blbi5uZXh0KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucXVlcnkuZW1pdCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0Rmlyc3RPcHRpb24oKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vcGVuXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmRpc2FibGVkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGlzT3BlbikgPT4ge1xuICAgICAgICB0aGlzLmRyb3Bkb3duT3BlbiA9IGlzT3BlbjtcblxuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5zZXRPcGVuRGlyZWN0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXNldFNlbGVjdFN0YXRlKCk7XG4gICAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZm9jdXNPbkluaXQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1cygpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCdkaXNhYmxlZCcgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdG9nZ2xlIGlzIHRydWUgd2hlbiB0aGUgY2FyZXQgdG8gdGhlIHJpZ2h0IGluIGEgc2VsZWN0IGNvbXBvbmVudCB3YXMgY2xpY2tlZFxuICAgKi9cbiAgcHVibGljIGhhbmRsZUNsaWNrKHRvZ2dsZTogYm9vbGVhbikge1xuICAgIGlmICh0b2dnbGUgfHwgIXRoaXMuZHJvcGRvd25PcGVuIHx8ICF0aGlzLmFsbG93UXVlcnkpIHtcbiAgICAgIHRoaXMub3Blbi5uZXh0KCF0aGlzLmRyb3Bkb3duT3Blbik7XG4gICAgfVxuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCYWNrZHJvcENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbG9zZUlucHV0KCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VJbnB1dCgpIHtcbiAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgdGhpcy5xdWVyeS5lbWl0KCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuSW5wdXQoKSB7XG4gICAgdGhpcy5vcGVuLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0T3BlbkRpcmVjdGlvbigpIHtcbiAgICBjb25zdCBkcm9wZG93blJlY3QgPSB0aGlzLm9wdGlvbnNDb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzcGFjZUF0VGhlQm90dG9tID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIGRyb3Bkb3duUmVjdC50b3AgLSBkcm9wZG93blJlY3QuaGVpZ2h0IC0gdGhpcy5kcm9wZG93bk1heEhlaWdodDtcbiAgICBjb25zdCBzcGFjZUF0VGhlVG9wID0gZHJvcGRvd25SZWN0LnRvcCAtIHRoaXMuZHJvcGRvd25NYXhIZWlnaHQ7XG4gICAgY29uc3QgaXNUb3AgPSBzcGFjZUF0VGhlQm90dG9tIDwgMCAmJiBzcGFjZUF0VGhlVG9wID4gc3BhY2VBdFRoZUJvdHRvbTtcblxuICAgIHRoaXMuZHJvcGRvd25EaXJlY3Rpb24kLm5leHQoaXNUb3AgPyAnVE9QJyA6ICdCT1RUT00nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldFNlbGVjdFN0YXRlKCkge1xuICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uID0gMDtcbiAgICB0aGlzLnNlbGVjdGlvbktleWJvYXJkU2VsZWN0QWN0aW9uJC5uZXh0KEtleWJvYXJkU2VsZWN0QWN0aW9uLlVOU0VMRUNUKTtcbiAgICB0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5VTlNFTEVDVCk7XG4gICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgdGhpcy5xdWVyeS5lbWl0KCcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXBUb0V2ZW50U2V0KFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50LFxuICAgIHZpcnR1YWxDdXJzb3JQb3NpdGlvbjogbnVtYmVyLFxuICAgIHNlbGVjdGlvbkxlbmd0aD86IG51bWJlclxuICApOiBFdmVudFNldCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV2ZW50LFxuICAgICAgaW5wdXRDdXJzb3JQb3NpdGlvbjogdGhpcy5kb0dldENhcmV0UG9zaXRpb24oaW5wdXQpLFxuICAgICAgdmlydHVhbEN1cnNvclBvc2l0aW9uLFxuICAgICAgc2VsZWN0aW9uTGVuZ3RoXG4gICAgfTtcbiAgfVxuXG4gIC8qXG4gICAqIFJldHVybnMgdGhlIGNhcmV0IChjdXJzb3IpIHBvc2l0aW9uIG9mIHRoZSBzcGVjaWZpZWQgdGV4dCBmaWVsZC5cbiAgICogUmV0dXJuIHZhbHVlIHJhbmdlIGlzIDAtb0ZpZWxkLnZhbHVlLmxlbmd0aC5cbiAgICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjg5NzE1NS9nZXQtY3Vyc29yLXBvc2l0aW9uLWluLWNoYXJhY3RlcnMtd2l0aGluLWEtdGV4dC1pbnB1dC1maWVsZFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvR2V0Q2FyZXRQb3NpdGlvbihvRmllbGQ6IGFueSkge1xuICAgIGxldCBpQ2FyZXRQb3MgPSAwO1xuICAgIGlmIChvRmllbGQuc2VsZWN0aW9uU3RhcnQgfHwgcGFyc2VJbnQob0ZpZWxkLnNlbGVjdGlvblN0YXJ0LCAxMCkgPT09IDApIHtcbiAgICAgIC8vIENoZWNrIHdoZW4gcmFuZ2Ugc2VsZWN0aW9uIHVzaW5nIG51bGwgd2UgcHJldmVudCBkZWxldGluZyBvblxuICAgICAgaUNhcmV0UG9zID0gb0ZpZWxkLnNlbGVjdGlvblN0YXJ0ID09PSBvRmllbGQuc2VsZWN0aW9uRW5kID8gb0ZpZWxkLnNlbGVjdGlvblN0YXJ0IDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGlDYXJldFBvcztcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RGaXJzdE9wdGlvbigpIHtcbiAgICB0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5GSVJTVCk7XG4gIH1cbn1cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvbW9kZWxzL2Jhc2Utc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVUvRSxNQUFNLE9BQWdCLG1CQUFtQjtJQUR6QztRQUdXLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isc0JBQWlCLEdBQVcsR0FBRyxDQUFDO1FBQ2hDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFMUIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDakMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFPN0IsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQW1CLFFBQVEsQ0FBQyxDQUFDO1FBQzlFLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRzVCLGtGQUFrRjtRQUNsRSxtQ0FBOEIsR0FBRyxJQUFJLE9BQU8sRUFBK0IsQ0FBQztRQUM1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LENBQUMsS0FBSyxDQUFDO1lBQ25ELHFCQUFxQjtZQUNyQixlQUFlO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGtCQUFrQixDQUFDLE1BQVc7UUFDdEMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksTUFBTSxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEUsK0RBQStEO1lBQy9ELFNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxLQUFLLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUMxRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDOztnSEFoS21CLG1CQUFtQjtvR0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRHhDLFNBQVM7OEJBRUMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBRTBDLGdCQUFnQjtzQkFBaEUsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRTZWxlY3RBY3Rpb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2tleWJvYXJkLXNlbGVjdC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U2V0IHtcbiAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ7XG4gIGlucHV0Q3Vyc29yUG9zaXRpb246IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgdmlydHVhbEN1cnNvclBvc2l0aW9uOiBudW1iZXI7XG4gIHNlbGVjdGlvbkxlbmd0aD86IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVNlbGVjdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZvY3VzT25Jbml0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTWF4SGVpZ2h0OiBudW1iZXIgPSAyNTA7XG4gIEBJbnB1dCgpIGFsbG93UXVlcnk6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBxdWVyeSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBvcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbnNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBvcHRpb25zQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgYWJzdHJhY3Qgc2VsZWN0aW9uPzogYW55O1xuICBhYnN0cmFjdCBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gIHB1YmxpYyByZWFkb25seSBxdWVyeSQgPSB0aGlzLnF1ZXJ5LmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgcmVhZG9ubHkgZHJvcGRvd25EaXJlY3Rpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDwnVE9QJyB8ICdCT1RUT00nPignQk9UVE9NJyk7XG4gIHB1YmxpYyBkcm9wZG93bk9wZW4gPSBmYWxzZTtcblxuICBwdWJsaWMgYWN0aXZlRWxlbWVudCE6IEVsZW1lbnQ7XG4gIC8vIGFuIGF4aXMsIHdoZXJlIHRoZSBuZWdhdGl2ZSByYW5nZSByZXByZXNlbnRzIHRoZSBzZWxlY3RlZCBpdGVtIGluIHRoZSBzZWxlY3Rpb25cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvbktleWJvYXJkU2VsZWN0QWN0aW9uJCA9IG5ldyBTdWJqZWN0PEtleWJvYXJkU2VsZWN0QWN0aW9uIHwgbnVsbD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IG9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQgPSBuZXcgU3ViamVjdDxLZXlib2FyZFNlbGVjdEFjdGlvbiB8IG51bGw+KCk7XG4gIHB1YmxpYyB2aXJ0dWFsQ3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGlucHV0V2FzRm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBxdWVyeUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcblxuICBwdWJsaWMgaXNJbnB1dEZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBhYnN0cmFjdCByZXNldElucHV0KCk6IHZvaWQ7XG5cbiAgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5xdWVyeUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuYWxsb3dRdWVyeSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMub3Blbi5uZXh0KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucXVlcnkuZW1pdCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0Rmlyc3RPcHRpb24oKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vcGVuXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmRpc2FibGVkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGlzT3BlbikgPT4ge1xuICAgICAgICB0aGlzLmRyb3Bkb3duT3BlbiA9IGlzT3BlbjtcblxuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5zZXRPcGVuRGlyZWN0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXNldFNlbGVjdFN0YXRlKCk7XG4gICAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZm9jdXNPbkluaXQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1cygpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCdkaXNhYmxlZCcgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdG9nZ2xlIGlzIHRydWUgd2hlbiB0aGUgY2FyZXQgdG8gdGhlIHJpZ2h0IGluIGEgc2VsZWN0IGNvbXBvbmVudCB3YXMgY2xpY2tlZFxuICAgKi9cbiAgcHVibGljIGhhbmRsZUNsaWNrKHRvZ2dsZTogYm9vbGVhbikge1xuICAgIGlmICh0b2dnbGUgfHwgIXRoaXMuZHJvcGRvd25PcGVuIHx8ICF0aGlzLmFsbG93UXVlcnkpIHtcbiAgICAgIHRoaXMub3Blbi5uZXh0KCF0aGlzLmRyb3Bkb3duT3Blbik7XG4gICAgfVxuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCYWNrZHJvcENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbG9zZUlucHV0KCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VJbnB1dCgpIHtcbiAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgdGhpcy5xdWVyeS5lbWl0KCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuSW5wdXQoKSB7XG4gICAgdGhpcy5vcGVuLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0T3BlbkRpcmVjdGlvbigpIHtcbiAgICBjb25zdCBkcm9wZG93blJlY3QgPSB0aGlzLm9wdGlvbnNDb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzcGFjZUF0VGhlQm90dG9tID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIGRyb3Bkb3duUmVjdC50b3AgLSBkcm9wZG93blJlY3QuaGVpZ2h0IC0gdGhpcy5kcm9wZG93bk1heEhlaWdodDtcbiAgICBjb25zdCBzcGFjZUF0VGhlVG9wID0gZHJvcGRvd25SZWN0LnRvcCAtIHRoaXMuZHJvcGRvd25NYXhIZWlnaHQ7XG4gICAgY29uc3QgaXNUb3AgPSBzcGFjZUF0VGhlQm90dG9tIDwgMCAmJiBzcGFjZUF0VGhlVG9wID4gc3BhY2VBdFRoZUJvdHRvbTtcblxuICAgIHRoaXMuZHJvcGRvd25EaXJlY3Rpb24kLm5leHQoaXNUb3AgPyAnVE9QJyA6ICdCT1RUT00nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldFNlbGVjdFN0YXRlKCkge1xuICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uID0gMDtcbiAgICB0aGlzLnNlbGVjdGlvbktleWJvYXJkU2VsZWN0QWN0aW9uJC5uZXh0KEtleWJvYXJkU2VsZWN0QWN0aW9uLlVOU0VMRUNUKTtcbiAgICB0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5VTlNFTEVDVCk7XG4gICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgdGhpcy5xdWVyeS5lbWl0KCcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXBUb0V2ZW50U2V0KFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50LFxuICAgIHZpcnR1YWxDdXJzb3JQb3NpdGlvbjogbnVtYmVyLFxuICAgIHNlbGVjdGlvbkxlbmd0aD86IG51bWJlclxuICApOiBFdmVudFNldCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV2ZW50LFxuICAgICAgaW5wdXRDdXJzb3JQb3NpdGlvbjogdGhpcy5kb0dldENhcmV0UG9zaXRpb24oaW5wdXQpLFxuICAgICAgdmlydHVhbEN1cnNvclBvc2l0aW9uLFxuICAgICAgc2VsZWN0aW9uTGVuZ3RoXG4gICAgfTtcbiAgfVxuXG4gIC8qXG4gICAqIFJldHVybnMgdGhlIGNhcmV0IChjdXJzb3IpIHBvc2l0aW9uIG9mIHRoZSBzcGVjaWZpZWQgdGV4dCBmaWVsZC5cbiAgICogUmV0dXJuIHZhbHVlIHJhbmdlIGlzIDAtb0ZpZWxkLnZhbHVlLmxlbmd0aC5cbiAgICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjg5NzE1NS9nZXQtY3Vyc29yLXBvc2l0aW9uLWluLWNoYXJhY3RlcnMtd2l0aGluLWEtdGV4dC1pbnB1dC1maWVsZFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvR2V0Q2FyZXRQb3NpdGlvbihvRmllbGQ6IGFueSkge1xuICAgIGxldCBpQ2FyZXRQb3MgPSAwO1xuICAgIGlmIChvRmllbGQuc2VsZWN0aW9uU3RhcnQgfHwgcGFyc2VJbnQob0ZpZWxkLnNlbGVjdGlvblN0YXJ0LCAxMCkgPT09IDApIHtcbiAgICAgIC8vIENoZWNrIHdoZW4gcmFuZ2Ugc2VsZWN0aW9uIHVzaW5nIG51bGwgd2UgcHJldmVudCBkZWxldGluZyBvblxuICAgICAgaUNhcmV0UG9zID0gb0ZpZWxkLnNlbGVjdGlvblN0YXJ0ID09PSBvRmllbGQuc2VsZWN0aW9uRW5kID8gb0ZpZWxkLnNlbGVjdGlvblN0YXJ0IDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGlDYXJldFBvcztcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RGaXJzdE9wdGlvbigpIHtcbiAgICB0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5GSVJTVCk7XG4gIH1cbn1cbiJdfQ==
@@ -2899,6 +2899,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
2899
2899
  type: Input
2900
2900
  }], code$: [] } });
2901
2901
 
2902
+ class MarkInvalidDirective {
2903
+ constructor(element, renderer) {
2904
+ this.element = element;
2905
+ this.renderer = renderer;
2906
+ this.lxMarkInvalid = false;
2907
+ this.destroyed$ = new Subject();
2908
+ }
2909
+ ngOnInit() {
2910
+ this.lxMarkInvalid$.pipe(takeUntil(this.destroyed$)).subscribe((invalid) => {
2911
+ const border = invalid ? `1px solid ${getCssVariable('--lx-color-danger')}` : '';
2912
+ this.renderer.setStyle(this.element.nativeElement, 'border', border);
2913
+ });
2914
+ }
2915
+ ngOnDestroy() {
2916
+ this.destroyed$.next();
2917
+ }
2918
+ }
2919
+ MarkInvalidDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: MarkInvalidDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2920
+ MarkInvalidDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: { lxMarkInvalid: "lxMarkInvalid" }, ngImport: i0 });
2921
+ __decorate([
2922
+ Observe('lxMarkInvalid')
2923
+ ], MarkInvalidDirective.prototype, "lxMarkInvalid$", void 0);
2924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: MarkInvalidDirective, decorators: [{
2925
+ type: Directive,
2926
+ args: [{
2927
+ selector: '[lxMarkInvalid]'
2928
+ }]
2929
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { lxMarkInvalid: [{
2930
+ type: Input
2931
+ }], lxMarkInvalid$: [] } });
2932
+
2902
2933
  class CurrencyInputComponent {
2903
2934
  constructor(changeDetector) {
2904
2935
  this.changeDetector = changeDetector;
@@ -2908,6 +2939,7 @@ class CurrencyInputComponent {
2908
2939
  this.mode = 'edit';
2909
2940
  this.iconPosition = 'first';
2910
2941
  this.format = '1.2-2';
2942
+ this.markInvalid = false;
2911
2943
  this.onFocusLost = new EventEmitter();
2912
2944
  this.onChange = new EventEmitter();
2913
2945
  this.showCurrencyInput = false;
@@ -2984,13 +3016,13 @@ class CurrencyInputComponent {
2984
3016
  }
2985
3017
  }
2986
3018
  CurrencyInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CurrencyInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2987
- CurrencyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: CurrencyInputComponent, selector: "lx-currency-input", inputs: { code: "code", decimalSeparator: "decimalSeparator", placeholder: "placeholder", data: "data", disabled: "disabled", mode: "mode", fieldDefinitionType: "fieldDefinitionType", iconPosition: "iconPosition", format: "format" }, outputs: { onFocusLost: "onFocusLost", onChange: "onChange" }, providers: [
3019
+ CurrencyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: CurrencyInputComponent, selector: "lx-currency-input", inputs: { code: "code", decimalSeparator: "decimalSeparator", placeholder: "placeholder", data: "data", disabled: "disabled", mode: "mode", fieldDefinitionType: "fieldDefinitionType", iconPosition: "iconPosition", format: "format", markInvalid: "markInvalid" }, outputs: { onFocusLost: "onFocusLost", onChange: "onChange" }, providers: [
2988
3020
  {
2989
3021
  provide: NG_VALUE_ACCESSOR,
2990
3022
  useExisting: forwardRef(() => CurrencyInputComponent),
2991
3023
  multi: true
2992
3024
  }
2993
- ], viewQueries: [{ propertyName: "currencyInput", first: true, predicate: ["currencyInput"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode === 'edit'\" class=\"container input-group\">\n <div *ngIf=\"iconPosition === 'first'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n <input\n [attr.disabled]=\"disabled ? true : null\"\n *ngIf=\"!showCurrencyInput\"\n type=\"text\"\n class=\"form-control currencyDisplayValue\"\n placeholder=\"{{ placeholder }}\"\n [value]=\"dataValue$ | async | number : format\"\n (focus)=\"focusCurrencyInput()\"\n />\n <input\n [attr.disabled]=\"disabled ? true : null\"\n [class.hideInput]=\"!showCurrencyInput\"\n type=\"text\"\n inputmode=\"numeric\"\n class=\"form-control currencyInput\"\n name=\"inputAmount\"\n #currencyInput\n placeholder=\"{{ placeholder }}\"\n [ngModel]=\"dataValue$ | async\"\n (blur)=\"onBlur()\"\n (ngModelChange)=\"valueChanged($event)\"\n />\n <div *ngIf=\"iconPosition === 'end'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n</div>\n<span *ngIf=\"mode === 'view'\" [class.placeholder]=\"(dataValue$ | async) === null && placeholder\">\n <!-- Not using Angular 2 currency pipe since a lot of currency symbols are missing: https://github.com/angular/angular/issues/6724 -->\n <lx-currency-symbol *ngIf=\"iconPosition === 'first'\" [code]=\"code\"></lx-currency-symbol>\n {{ (dataValue$ | async | number : format) || placeholder }}\n <lx-currency-symbol *ngIf=\"iconPosition === 'end'\" [code]=\"code\"></lx-currency-symbol>\n</span>\n", styles: [".container{width:100%!important;padding:0}.labelContainer{width:5%!important;min-width:40px}input{width:100%}.hideInput{display:none}.placeholder{color:#99a5bb}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CurrencySymbolComponent, selector: "lx-currency-symbol", inputs: ["code"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3025
+ ], viewQueries: [{ propertyName: "currencyInput", first: true, predicate: ["currencyInput"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode === 'edit'\" class=\"container input-group\">\n <div *ngIf=\"iconPosition === 'first'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n <input\n [attr.disabled]=\"disabled ? true : null\"\n *ngIf=\"!showCurrencyInput\"\n type=\"text\"\n class=\"form-control currencyDisplayValue\"\n placeholder=\"{{ placeholder }}\"\n [lxMarkInvalid]=\"markInvalid\"\n [value]=\"dataValue$ | async | number : format\"\n (focus)=\"focusCurrencyInput()\"\n />\n <input\n autocomplete=\"off\"\n [attr.disabled]=\"disabled ? true : null\"\n [class.hideInput]=\"!showCurrencyInput\"\n type=\"text\"\n inputmode=\"numeric\"\n class=\"form-control currencyInput\"\n name=\"inputAmount\"\n #currencyInput\n placeholder=\"{{ placeholder }}\"\n [ngModel]=\"dataValue$ | async\"\n (blur)=\"onBlur()\"\n (ngModelChange)=\"valueChanged($event)\"\n />\n <div *ngIf=\"iconPosition === 'end'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n</div>\n<span *ngIf=\"mode === 'view'\" [class.placeholder]=\"(dataValue$ | async) === null && placeholder\">\n <!-- Not using Angular 2 currency pipe since a lot of currency symbols are missing: https://github.com/angular/angular/issues/6724 -->\n <lx-currency-symbol *ngIf=\"iconPosition === 'first'\" [code]=\"code\"></lx-currency-symbol>\n {{ (dataValue$ | async | number : format) || placeholder }}\n <lx-currency-symbol *ngIf=\"iconPosition === 'end'\" [code]=\"code\"></lx-currency-symbol>\n</span>\n", styles: [".container{width:100%!important;padding:0}.labelContainer{width:5%!important;min-width:40px}input{width:100%}.hideInput{display:none}.placeholder{color:#99a5bb}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CurrencySymbolComponent, selector: "lx-currency-symbol", inputs: ["code"] }, { kind: "directive", type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2994
3026
  __decorate([
2995
3027
  Observe('data')
2996
3028
  ], CurrencyInputComponent.prototype, "data$", void 0);
@@ -3002,7 +3034,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
3002
3034
  useExisting: forwardRef(() => CurrencyInputComponent),
3003
3035
  multi: true
3004
3036
  }
3005
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"mode === 'edit'\" class=\"container input-group\">\n <div *ngIf=\"iconPosition === 'first'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n <input\n [attr.disabled]=\"disabled ? true : null\"\n *ngIf=\"!showCurrencyInput\"\n type=\"text\"\n class=\"form-control currencyDisplayValue\"\n placeholder=\"{{ placeholder }}\"\n [value]=\"dataValue$ | async | number : format\"\n (focus)=\"focusCurrencyInput()\"\n />\n <input\n [attr.disabled]=\"disabled ? true : null\"\n [class.hideInput]=\"!showCurrencyInput\"\n type=\"text\"\n inputmode=\"numeric\"\n class=\"form-control currencyInput\"\n name=\"inputAmount\"\n #currencyInput\n placeholder=\"{{ placeholder }}\"\n [ngModel]=\"dataValue$ | async\"\n (blur)=\"onBlur()\"\n (ngModelChange)=\"valueChanged($event)\"\n />\n <div *ngIf=\"iconPosition === 'end'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n</div>\n<span *ngIf=\"mode === 'view'\" [class.placeholder]=\"(dataValue$ | async) === null && placeholder\">\n <!-- Not using Angular 2 currency pipe since a lot of currency symbols are missing: https://github.com/angular/angular/issues/6724 -->\n <lx-currency-symbol *ngIf=\"iconPosition === 'first'\" [code]=\"code\"></lx-currency-symbol>\n {{ (dataValue$ | async | number : format) || placeholder }}\n <lx-currency-symbol *ngIf=\"iconPosition === 'end'\" [code]=\"code\"></lx-currency-symbol>\n</span>\n", styles: [".container{width:100%!important;padding:0}.labelContainer{width:5%!important;min-width:40px}input{width:100%}.hideInput{display:none}.placeholder{color:#99a5bb}\n"] }]
3037
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"mode === 'edit'\" class=\"container input-group\">\n <div *ngIf=\"iconPosition === 'first'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n <input\n [attr.disabled]=\"disabled ? true : null\"\n *ngIf=\"!showCurrencyInput\"\n type=\"text\"\n class=\"form-control currencyDisplayValue\"\n placeholder=\"{{ placeholder }}\"\n [lxMarkInvalid]=\"markInvalid\"\n [value]=\"dataValue$ | async | number : format\"\n (focus)=\"focusCurrencyInput()\"\n />\n <input\n autocomplete=\"off\"\n [attr.disabled]=\"disabled ? true : null\"\n [class.hideInput]=\"!showCurrencyInput\"\n type=\"text\"\n inputmode=\"numeric\"\n class=\"form-control currencyInput\"\n name=\"inputAmount\"\n #currencyInput\n placeholder=\"{{ placeholder }}\"\n [ngModel]=\"dataValue$ | async\"\n (blur)=\"onBlur()\"\n (ngModelChange)=\"valueChanged($event)\"\n />\n <div *ngIf=\"iconPosition === 'end'\" class=\"labelContainer input-group-addon\">\n <lx-currency-symbol [code]=\"code\"></lx-currency-symbol>\n </div>\n</div>\n<span *ngIf=\"mode === 'view'\" [class.placeholder]=\"(dataValue$ | async) === null && placeholder\">\n <!-- Not using Angular 2 currency pipe since a lot of currency symbols are missing: https://github.com/angular/angular/issues/6724 -->\n <lx-currency-symbol *ngIf=\"iconPosition === 'first'\" [code]=\"code\"></lx-currency-symbol>\n {{ (dataValue$ | async | number : format) || placeholder }}\n <lx-currency-symbol *ngIf=\"iconPosition === 'end'\" [code]=\"code\"></lx-currency-symbol>\n</span>\n", styles: [".container{width:100%!important;padding:0}.labelContainer{width:5%!important;min-width:40px}input{width:100%}.hideInput{display:none}.placeholder{color:#99a5bb}\n"] }]
3006
3038
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { code: [{
3007
3039
  type: Input
3008
3040
  }], decimalSeparator: [{
@@ -3021,6 +3053,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
3021
3053
  type: Input
3022
3054
  }], format: [{
3023
3055
  type: Input
3056
+ }], markInvalid: [{
3057
+ type: Input
3024
3058
  }], onFocusLost: [{
3025
3059
  type: Output
3026
3060
  }], onChange: [{
@@ -3841,7 +3875,7 @@ class BaseSelectDirective {
3841
3875
  this.optionsKeyboardSelectAction$ = new Subject();
3842
3876
  this.virtualCursorPosition = 0;
3843
3877
  this.inputWasFocused = false;
3844
- this.queryControl = new UntypedFormControl();
3878
+ this.queryControl = new UntypedFormControl('');
3845
3879
  this.isInputFocused = false;
3846
3880
  this.destroyed$ = new Subject();
3847
3881
  }
@@ -4063,37 +4097,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
4063
4097
  args: ['inputWidth', { static: true }]
4064
4098
  }] } });
4065
4099
 
4066
- class MarkInvalidDirective {
4067
- constructor(element, renderer) {
4068
- this.element = element;
4069
- this.renderer = renderer;
4070
- this.lxMarkInvalid = false;
4071
- this.destroyed$ = new Subject();
4072
- }
4073
- ngOnInit() {
4074
- this.lxMarkInvalid$.pipe(takeUntil(this.destroyed$)).subscribe((invalid) => {
4075
- const border = invalid ? `1px solid ${getCssVariable('--lx-color-danger')}` : '';
4076
- this.renderer.setStyle(this.element.nativeElement, 'border', border);
4077
- });
4078
- }
4079
- ngOnDestroy() {
4080
- this.destroyed$.next();
4081
- }
4082
- }
4083
- MarkInvalidDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: MarkInvalidDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4084
- MarkInvalidDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: { lxMarkInvalid: "lxMarkInvalid" }, ngImport: i0 });
4085
- __decorate([
4086
- Observe('lxMarkInvalid')
4087
- ], MarkInvalidDirective.prototype, "lxMarkInvalid$", void 0);
4088
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: MarkInvalidDirective, decorators: [{
4089
- type: Directive,
4090
- args: [{
4091
- selector: '[lxMarkInvalid]'
4092
- }]
4093
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { lxMarkInvalid: [{
4094
- type: Input
4095
- }], lxMarkInvalid$: [] } });
4096
-
4097
4100
  class MultiSelectComponent extends BaseSelectDirective {
4098
4101
  constructor(cd) {
4099
4102
  super();