ngx-tethys 15.2.8 → 15.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,46 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [15.2.10](https://github.com/atinc/ngx-tethys/compare/15.2.4...15.2.10) (2023-05-10)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **date-picker:** compatibility null values at updateHourMinute ([#2633](https://github.com/atinc/ngx-tethys/issues/2633)) ([1207c47](https://github.com/atinc/ngx-tethys/commit/1207c473f98c18d8a30dc4d2e00b002b86aeb246))
11
+ * **input-number:** fix not call thyBlur when focus other input-number #INFR-7496 ([#2638](https://github.com/atinc/ngx-tethys/issues/2638)) ([1caccb3](https://github.com/atinc/ngx-tethys/commit/1caccb36d1a70637e736017896269635d60a207f)), closes [#INFR-7496](https://github.com/atinc/ngx-tethys/issues/INFR-7496)
12
+ * **layout:** collapse dom appears when the mouse hovers over the sidebar #INFR-5569 ([#2616](https://github.com/atinc/ngx-tethys/issues/2616)) ([e9b925d](https://github.com/atinc/ngx-tethys/commit/e9b925dce96175ac8f2b6eb1a48503391f877fc3)), closes [#INFR-5569](https://github.com/atinc/ngx-tethys/issues/INFR-5569) [#INFR-5569](https://github.com/atinc/ngx-tethys/issues/INFR-5569)
13
+ * **layout:** fix can't operate layout content ([#2635](https://github.com/atinc/ngx-tethys/issues/2635)) ([0c7ce6f](https://github.com/atinc/ngx-tethys/commit/0c7ce6f506db35fec9f523b2b3f5087df8810d64))
14
+ * **tree:** fix the problem of clicking to disable the parent node #INFR-7545 ([#2639](https://github.com/atinc/ngx-tethys/issues/2639)) ([4936aba](https://github.com/atinc/ngx-tethys/commit/4936aba4890c891f5792bf46d6df86802e095e3a)), closes [#INFR-7545](https://github.com/atinc/ngx-tethys/issues/INFR-7545)
15
+
16
+
17
+ ### Features
18
+
19
+ * **cascader:** support search #INFR-7498 ([#2644](https://github.com/atinc/ngx-tethys/issues/2644)) ([f490007](https://github.com/atinc/ngx-tethys/commit/f4900077721f2a95bf8116a93e351f767d637b78)), closes [#INFR-7498](https://github.com/atinc/ngx-tethys/issues/INFR-7498)
20
+ * **color-picker:** support hover trigger #INFR-7525 ([#2642](https://github.com/atinc/ngx-tethys/issues/2642)) ([78b5c7a](https://github.com/atinc/ngx-tethys/commit/78b5c7ac34e5fc897cbdac40579c12aeee25d991)), closes [#INFR-7525](https://github.com/atinc/ngx-tethys/issues/INFR-7525)
21
+ * **color-picker:** support thyPlacement params #INFR-7526 ([#2637](https://github.com/atinc/ngx-tethys/issues/2637)) ([366f742](https://github.com/atinc/ngx-tethys/commit/366f742859fd39c4f61ff04c2715aae96632a05b)), closes [#INFR-7526](https://github.com/atinc/ngx-tethys/issues/INFR-7526)
22
+
23
+
24
+
25
+ ## [15.2.9](https://github.com/atinc/ngx-tethys/compare/15.2.4...15.2.9) (2023-05-06)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * **date-picker:** compatibility null values at updateHourMinute ([#2633](https://github.com/atinc/ngx-tethys/issues/2633)) ([1207c47](https://github.com/atinc/ngx-tethys/commit/1207c473f98c18d8a30dc4d2e00b002b86aeb246))
31
+ * **input-number:** fix not call thyBlur when focus other input-number #INFR-7496 ([#2638](https://github.com/atinc/ngx-tethys/issues/2638)) ([1caccb3](https://github.com/atinc/ngx-tethys/commit/1caccb36d1a70637e736017896269635d60a207f)), closes [#INFR-7496](https://github.com/atinc/ngx-tethys/issues/INFR-7496)
32
+ * **layout:** collapse dom appears when the mouse hovers over the sidebar #INFR-5569 ([#2616](https://github.com/atinc/ngx-tethys/issues/2616)) ([e9b925d](https://github.com/atinc/ngx-tethys/commit/e9b925dce96175ac8f2b6eb1a48503391f877fc3)), closes [#INFR-5569](https://github.com/atinc/ngx-tethys/issues/INFR-5569) [#INFR-5569](https://github.com/atinc/ngx-tethys/issues/INFR-5569)
33
+ * **layout:** fix can't operate layout content ([#2635](https://github.com/atinc/ngx-tethys/issues/2635)) ([0c7ce6f](https://github.com/atinc/ngx-tethys/commit/0c7ce6f506db35fec9f523b2b3f5087df8810d64))
34
+ * **tree:** fix the problem of clicking to disable the parent node #INFR-7545 ([#2639](https://github.com/atinc/ngx-tethys/issues/2639)) ([4936aba](https://github.com/atinc/ngx-tethys/commit/4936aba4890c891f5792bf46d6df86802e095e3a)), closes [#INFR-7545](https://github.com/atinc/ngx-tethys/issues/INFR-7545)
35
+
36
+
37
+ ### Features
38
+
39
+ * **cascader:** support search #INFR-7498 ([#2644](https://github.com/atinc/ngx-tethys/issues/2644)) ([f490007](https://github.com/atinc/ngx-tethys/commit/f4900077721f2a95bf8116a93e351f767d637b78)), closes [#INFR-7498](https://github.com/atinc/ngx-tethys/issues/INFR-7498)
40
+ * **color-picker:** support hover trigger #INFR-7525 ([#2642](https://github.com/atinc/ngx-tethys/issues/2642)) ([78b5c7a](https://github.com/atinc/ngx-tethys/commit/78b5c7ac34e5fc897cbdac40579c12aeee25d991)), closes [#INFR-7525](https://github.com/atinc/ngx-tethys/issues/INFR-7525)
41
+ * **color-picker:** support thyPlacement params #INFR-7526 ([#2637](https://github.com/atinc/ngx-tethys/issues/2637)) ([366f742](https://github.com/atinc/ngx-tethys/commit/366f742859fd39c4f61ff04c2715aae96632a05b)), closes [#INFR-7526](https://github.com/atinc/ngx-tethys/issues/INFR-7526)
42
+
43
+
44
+
5
45
  ## [15.2.8](https://github.com/atinc/ngx-tethys/compare/15.2.4...15.2.8) (2023-05-05)
6
46
 
7
47
 
@@ -1,14 +1,18 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { AbstractControlValueAccessor, InputBoolean, InputNumber, mixinDisabled, mixinTabIndex } from 'ngx-tethys/core';
3
- import { DOWN_ARROW, elementMatchClosest, ENTER, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';
4
- import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
5
- import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
6
3
  import { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';
7
4
  import { ThyIconComponent } from 'ngx-tethys/icon';
8
5
  import { ThyInputDirective } from 'ngx-tethys/input';
9
6
  import { ThyAutofocusDirective } from 'ngx-tethys/shared';
7
+ import { DOWN_ARROW, ENTER, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';
8
+ import { Subject } from 'rxjs';
9
+ import { takeUntil } from 'rxjs/operators';
10
+ import { FocusMonitor } from '@angular/cdk/a11y';
11
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
12
+ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
10
13
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/forms";
14
+ import * as i1 from "@angular/cdk/a11y";
15
+ import * as i2 from "@angular/forms";
12
16
  var Type;
13
17
  (function (Type) {
14
18
  Type[Type["up"] = 0] = "up";
@@ -49,10 +53,11 @@ export class ThyInputNumberComponent extends _MixinBase {
49
53
  get thyMin() {
50
54
  return this.innerMin;
51
55
  }
52
- constructor(cdr, elementRef) {
56
+ constructor(cdr, elementRef, focusMonitor) {
53
57
  super();
54
58
  this.cdr = cdr;
55
59
  this.elementRef = elementRef;
60
+ this.focusMonitor = focusMonitor;
56
61
  this.disabledUp = false;
57
62
  this.disabledDown = false;
58
63
  /**
@@ -73,11 +78,27 @@ export class ThyInputNumberComponent extends _MixinBase {
73
78
  this.thyFocus = new EventEmitter();
74
79
  this.innerMax = Infinity;
75
80
  this.innerMin = -Infinity;
81
+ this.ngUnsubscribe$ = new Subject();
76
82
  }
77
83
  setDisabledState(isDisabled) {
78
84
  this.thyDisabled = isDisabled;
79
85
  }
80
- ngOnInit() { }
86
+ ngOnInit() {
87
+ this.focusMonitor
88
+ .monitor(this.elementRef, true)
89
+ .pipe(takeUntil(this.ngUnsubscribe$))
90
+ .subscribe(focusOrigin => {
91
+ if (!focusOrigin) {
92
+ this.onBlur();
93
+ }
94
+ else {
95
+ // call when inputElement.focus and input-number focus
96
+ if (!this.isFocused) {
97
+ this.onFocus();
98
+ }
99
+ }
100
+ });
101
+ }
81
102
  ngOnChanges(changes) {
82
103
  if (changes.thySuffix && !changes.thySuffix.isFirstChange()) {
83
104
  const validValue = this.getCurrentValidValue(this.validValue);
@@ -118,19 +139,24 @@ export class ThyInputNumberComponent extends _MixinBase {
118
139
  }
119
140
  }
120
141
  onBlur(event) {
121
- // Tab 聚焦后自动聚焦到 input 输入框,此分支下直接返回,无需触发 onTouchedFn
122
- if (elementMatchClosest(event?.relatedTarget, 'thy-input-number')) {
123
- return;
142
+ if (this.isFocused) {
143
+ this.displayValue = this.formatterValue(this.validValue);
144
+ this.onTouchedFn();
145
+ this.thyBlur.emit();
146
+ this.isFocused = false;
124
147
  }
125
- this.displayValue = this.formatterValue(this.validValue);
126
- this.onTouchedFn();
127
- this.thyBlur.emit(event);
128
148
  }
129
149
  onFocus(event) {
130
- this.inputElement.nativeElement.focus();
150
+ if (!this.isFocused) {
151
+ this.inputElement.nativeElement.focus();
152
+ }
131
153
  }
132
154
  onInputFocus(event) {
133
- this.thyFocus.emit(event);
155
+ if (!this.isFocused) {
156
+ this.isFocused = true;
157
+ this.focusMonitor.focusVia(this.inputElement, 'keyboard');
158
+ this.thyFocus.emit(event);
159
+ }
134
160
  }
135
161
  onKeyDown(e) {
136
162
  if (e.keyCode === UP_ARROW) {
@@ -270,16 +296,20 @@ export class ThyInputNumberComponent extends _MixinBase {
270
296
  }
271
297
  return Number(num);
272
298
  }
273
- ngOnDestroy() { }
299
+ ngOnDestroy() {
300
+ this.ngUnsubscribe$.next();
301
+ this.ngUnsubscribe$.complete();
302
+ this.focusMonitor.stopMonitoring(this.elementRef);
303
+ }
274
304
  }
275
- ThyInputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyInputNumberComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
276
- ThyInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ThyInputNumberComponent, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: "thyAutoFocus", thyPlaceholder: "thyPlaceholder", thyDisabled: "thyDisabled", thyMax: "thyMax", thyMin: "thyMin", thyStep: "thyStep", thySize: "thySize", thyPrecision: "thyPrecision", thySuffix: "thySuffix" }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)" }, properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
305
+ ThyInputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyInputNumberComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
306
+ ThyInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ThyInputNumberComponent, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: "thyAutoFocus", thyPlaceholder: "thyPlaceholder", thyDisabled: "thyDisabled", thyMax: "thyMax", thyMin: "thyMin", thyStep: "thyStep", thySize: "thySize", thyPrecision: "thyPrecision", thySuffix: "thySuffix" }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
277
307
  {
278
308
  provide: NG_VALUE_ACCESSOR,
279
309
  useExisting: forwardRef(() => ThyInputNumberComponent),
280
310
  multi: true
281
311
  }
282
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\"\n >\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\"\n >\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\"\n/>\n", dependencies: [{ kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyMinDirective, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: ["min"] }, { kind: "directive", type: ThyMaxDirective, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }] });
312
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\"\n >\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\"\n >\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\"\n/>\n", dependencies: [{ kind: "component", type: ThyIconComponent, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyMinDirective, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: ["min"] }, { kind: "directive", type: ThyMaxDirective, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }] });
283
313
  __decorate([
284
314
  InputBoolean(),
285
315
  __metadata("design:type", Boolean)
@@ -302,11 +332,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
302
332
  }
303
333
  ], standalone: true, imports: [ThyIconComponent, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyMinDirective, ThyMaxDirective], host: {
304
334
  class: 'thy-input-number',
305
- '[attr.tabindex]': 'tabIndex',
306
- '(focus)': 'onFocus($event)',
307
- '(blur)': 'onBlur($event)'
308
- }, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\"\n >\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\"\n >\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\"\n/>\n" }]
309
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { inputElement: [{
335
+ '[attr.tabindex]': 'tabIndex'
336
+ }, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp\"\n >\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown\"\n >\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutoFocus\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin\"\n [attr.max]=\"thyMax\"\n [placeholder]=\"thyPlaceholder\"\n [attr.step]=\"thyStep\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\"\n/>\n" }]
337
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusMonitor }]; }, propDecorators: { inputElement: [{
310
338
  type: ViewChild,
311
339
  args: ['input', { static: true }]
312
340
  }], thyAutoFocus: [{
@@ -332,4 +360,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
332
360
  }], thyFocus: [{
333
361
  type: Output
334
362
  }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsNEJBQTRCLEVBRTVCLFlBQVksRUFDWixXQUFXLEVBQ1gsYUFBYSxFQUNiLGFBQWEsRUFHaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEgsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJMUQsSUFBSyxJQUdKO0FBSEQsV0FBSyxJQUFJO0lBQ0wsMkJBQUUsQ0FBQTtJQUNGLCtCQUFJLENBQUE7QUFDUixDQUFDLEVBSEksSUFBSSxLQUFKLElBQUksUUFHUjtBQUVELE1BQU0sVUFBVSxHQUFtRyxhQUFhLENBQzVILGFBQWEsQ0FBQyw0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LHNIQUFFLGVBQWU7QUF5Qm5IO0lBQVUsWUFBWSxFQUFFOzs2REFBdUI7QUFXL0M7SUFBVSxZQUFZLEVBQUU7OzREQUFzQjtBQXFDOUM7SUFBVSxXQUFXLEVBQUU7O3dEQUFhOzJGQWpFM0IsdUJBQXVCO2tCQW5CbkMsU0FBUzsrQkFDSSxrQkFBa0IsYUFFakI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsUUFDOUc7d0JBQ0YsS0FBSyxFQUFFLGtCQUFrQjt3QkFDekIsaUJBQWlCLEVBQUUsVUFBVTt3QkFDN0IsU0FBUyxFQUFFLGlCQUFpQjt3QkFDNUIsUUFBUSxFQUFFLGdCQUFnQjtxQkFDN0I7aUlBR3FDLFlBQVk7c0JBQWpELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFnQlgsWUFBWTtzQkFBcEMsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1tQixXQUFXO3NCQUFuQyxLQUFLO2dCQU1PLE1BQU07c0JBQWxCLEtBQUs7Z0JBZ0JPLE1BQU07c0JBQWxCLEtBQUs7Z0JBZWtCLE9BQU87c0JBQTlCLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLSSxPQUFPO3NCQUFoQixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgQ29uc3RydWN0b3IsXG4gICAgSW5wdXRCb29sZWFuLFxuICAgIElucHV0TnVtYmVyLFxuICAgIG1peGluRGlzYWJsZWQsXG4gICAgbWl4aW5UYWJJbmRleCxcbiAgICBUaHlDYW5EaXNhYmxlLFxuICAgIFRoeUhhc1RhYkluZGV4XG59IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBlbGVtZW50TWF0Y2hDbG9zZXN0LCBFTlRFUiwgaXNOdW1iZXIsIGlzVW5kZWZpbmVkT3JOdWxsLCBVUF9BUlJPVyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRoeU1heERpcmVjdGl2ZSwgVGh5TWluRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9mb3JtJztcbmltcG9ydCB7IFRoeUljb25Db21wb25lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcblxudHlwZSBJbnB1dFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJyc7XG5cbmVudW0gVHlwZSB7XG4gICAgdXAsXG4gICAgZG93blxufVxuXG5jb25zdCBfTWl4aW5CYXNlOiBDb25zdHJ1Y3RvcjxUaHlIYXNUYWJJbmRleD4gJiBDb25zdHJ1Y3RvcjxUaHlDYW5EaXNhYmxlPiAmIHR5cGVvZiBBYnN0cmFjdENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gbWl4aW5UYWJJbmRleChcbiAgICBtaXhpbkRpc2FibGVkKEFic3RyYWN0Q29udHJvbFZhbHVlQWNjZXNzb3IpXG4pO1xuXG4vKipcbiAqIOaVsOWtl+i+k+WFpeahhlxuICogQG5hbWUgdGh5LWlucHV0LW51bWJlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWlucHV0LW51bWJlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5SW5wdXROdW1iZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5SWNvbkNvbXBvbmVudCwgVGh5SW5wdXREaXJlY3RpdmUsIFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIFRoeU1pbkRpcmVjdGl2ZSwgVGh5TWF4RGlyZWN0aXZlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWlucHV0LW51bWJlcicsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiSW5kZXgnLFxuICAgICAgICAnKGZvY3VzKSc6ICdvbkZvY3VzKCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ29uQmx1cigkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXROdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBfTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPGFueT47XG5cbiAgICBwcml2YXRlIGF1dG9TdGVwVGltZXI6IGFueTtcblxuICAgIHZhbGlkVmFsdWU6IG51bWJlciB8IHN0cmluZztcblxuICAgIGRpc3BsYXlWYWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgZGlzYWJsZWRVcCA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWREb3duID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKboh6rliqjogZrnhKZcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0aHlBdXRvRm9jdXM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYbnmoRwbGFjZWhvbGRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5pyA5aSn5YC8XG4gICAgICogQGRlZmF1bHQgSW5maW5pdHlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWF4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbm5lck1heCA9IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5pbm5lck1heDtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlIHx8IHRoaXMuZGlzcGxheVZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdmFsID49IHRoaXMuaW5uZXJNYXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5TWF4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lck1heDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/lgLxcbiAgICAgKiBAZGVmYXVsdCAtSW5maW5pdHlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWluKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbm5lck1pbiA9IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5pbm5lck1pbjtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlIHx8IHRoaXMuZGlzcGxheVZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZERvd24gPSB2YWwgPD0gdGhpcy5pbm5lck1pbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0aHlNaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyTWluO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOavj+asoeaUueWPmOatpeaVsO+8jOWPr+S7peS4uuWwj+aVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIHRoeVN0ZXAgPSAxO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBJbnB1dFNpemU7XG5cbiAgICAvKipcbiAgICAgKiDmlbDlgLznsr7luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmVjaXNpb246IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOaVsOWAvOWQjue8gFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVN1ZmZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog54Sm54K55aSx5Y675LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog54Sm54K55r+A5rS75LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIHByaXZhdGUgaW5uZXJNYXg6IG51bWJlciA9IEluZmluaXR5O1xuXG4gICAgcHJpdmF0ZSBpbm5lck1pbjogbnVtYmVyID0gLUluZmluaXR5O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGh5RGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMudGh5U3VmZml4ICYmICFjaGFuZ2VzLnRoeVN1ZmZpeC5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgX3ZhbHVlID0gdGhpcy5nZXRDdXJyZW50VmFsaWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZShfdmFsdWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUoX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsaWRWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkVmFsdWUgPSAnJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbGlkVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc2FibGVkVXAgPSB0aGlzLmRpc2FibGVkRG93biA9IGZhbHNlO1xuICAgICAgICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodmFsID49IHRoaXMudGh5TWF4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWwgPD0gdGhpcy50aHlNaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkRG93biA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyc2VWYWx1ZSA9IHRoaXMucGFyc2VyKHZhbHVlKTtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUocGFyc2VWYWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkVmFsdWUgIT09IHZhbGlkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWxpZFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGbih0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKGV2ZW50PzogRm9jdXNFdmVudCkge1xuICAgICAgICAvLyBUYWIg6IGa54Sm5ZCO6Ieq5Yqo6IGa54Sm5YiwIGlucHV0IOi+k+WFpeahhu+8jOatpOWIhuaUr+S4i+ebtOaOpei/lOWbnu+8jOaXoOmcgOinpuWPkSBvblRvdWNoZWRGblxuICAgICAgICBpZiAoZWxlbWVudE1hdGNoQ2xvc2VzdChldmVudD8ucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCwgJ3RoeS1pbnB1dC1udW1iZXInKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XG4gICAgICAgIHRoaXMudGh5Qmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkZvY3VzKGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uSW5wdXRGb2N1cyhldmVudD86IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5Rm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gVVBfQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMudXAoZSk7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT09IERPV05fQVJST1cpIHtcbiAgICAgICAgICAgIHRoaXMuZG93bihlKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXR0ZXJWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b1N0ZXBUaW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b1N0ZXBUaW1lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGVwKHR5cGU6IFR5cGUsIGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbGlkVmFsdWUgYXMgbnVtYmVyO1xuICAgICAgICBsZXQgdmFsO1xuICAgICAgICBpZiAodHlwZSA9PT0gVHlwZS51cCkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy51cFN0ZXAodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFR5cGUuZG93bikge1xuICAgICAgICAgICAgdmFsID0gdGhpcy5kb3duU3RlcCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3V0T2ZSYW5nZSA9IHZhbCA+IHRoaXMudGh5TWF4IHx8IHZhbCA8IHRoaXMudGh5TWluO1xuICAgICAgICB2YWwgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHZhbCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRWYWx1ZSh2YWwpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHZhbCk7XG4gICAgICAgIGlmIChvdXRPZlJhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hdXRvU3RlcFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAodGhpc1tUeXBlW3R5cGVdXSBhcyAoZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpID0+IHZvaWQpKGUpO1xuICAgICAgICB9LCAzMDApO1xuICAgIH1cblxuICAgIHVwU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uRmFjdG9yID0gdGhpcy5nZXRQcmVjaXNpb25GYWN0b3IodmFsdWUpO1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLmdldE1heFByZWNpc2lvbih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9ICgocHJlY2lzaW9uRmFjdG9yICogdmFsdWUgKyBwcmVjaXNpb25GYWN0b3IgKiB0aGlzLnRoeVN0ZXApIC8gcHJlY2lzaW9uRmFjdG9yKS50b0ZpeGVkKHByZWNpc2lvbik7XG4gICAgICAgIHJldHVybiB0aGlzLnRvTnVtYmVyKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgZG93blN0ZXAodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbkZhY3RvciA9IHRoaXMuZ2V0UHJlY2lzaW9uRmFjdG9yKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gTWF0aC5hYnModGhpcy5nZXRNYXhQcmVjaXNpb24odmFsdWUpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKChwcmVjaXNpb25GYWN0b3IgKiB2YWx1ZSAtIHByZWNpc2lvbkZhY3RvciAqIHRoaXMudGh5U3RlcCkgLyBwcmVjaXNpb25GYWN0b3IpLnRvRml4ZWQocHJlY2lzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIocmVzdWx0KTtcbiAgICB9XG5cbiAgICBnZXRNYXhQcmVjaXNpb24odmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICghaXNVbmRlZmluZWRPck51bGwodGhpcy50aHlQcmVjaXNpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHlQcmVjaXNpb247XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RlcFByZWNpc2lvbiA9IHRoaXMuZ2V0UHJlY2lzaW9uKHRoaXMudGh5U3RlcCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZVByZWNpc2lvbiA9IHRoaXMuZ2V0UHJlY2lzaW9uKHZhbHVlIGFzIG51bWJlcik7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGVwUHJlY2lzaW9uO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBNYXRoLm1heChjdXJyZW50VmFsdWVQcmVjaXNpb24sIHN0ZXBQcmVjaXNpb24pO1xuICAgIH1cblxuICAgIGdldFByZWNpc2lvbkZhY3RvcihjdXJyZW50VmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMuZ2V0TWF4UHJlY2lzaW9uKGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIHJldHVybiBNYXRoLnBvdygxMCwgcHJlY2lzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRQcmVjaXNpb24odmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgLy8gMC4wMDAwMDAwMDA0LnRvU3RyaW5nKCkgPSA0ZTEwICA9PiAxMFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWVTdHJpbmcuc2xpY2UodmFsdWVTdHJpbmcuaW5kZXhPZignZS0nKSArIDIpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByZWNpc2lvbiA9IDA7XG4gICAgICAgIC8vIDEuMjIyMiA9PiAgNFxuICAgICAgICBpZiAodmFsdWVTdHJpbmcuaW5kZXhPZignLicpID49IDApIHtcbiAgICAgICAgICAgIHByZWNpc2lvbiA9IHZhbHVlU3RyaW5nLmxlbmd0aCAtIHZhbHVlU3RyaW5nLmluZGV4T2YoJy4nKSAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZWNpc2lvbjtcbiAgICB9XG5cbiAgICB1cChlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuc3RlcChUeXBlLnVwLCBlKTtcbiAgICB9XG5cbiAgICBkb3duKGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5zdGVwKFR5cGUuZG93biwgZSk7XG4gICAgfVxuXG4gICAgZm9ybWF0dGVyVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJzZVZhbHVlID0gdGhpcy5wYXJzZXIoYCR7dmFsdWV9YCk7XG4gICAgICAgIGlmIChwYXJzZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHlTdWZmaXggPyBgJHtwYXJzZVZhbHVlfSAke3RoaXMudGh5U3VmZml4fWAgOiBwYXJzZVZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgv44CCL2csICcuJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXlxcd1xcLi1dKy9nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKHRoaXMudGh5U3VmZml4LCAnJyk7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB8IHN0cmluZyB7XG4gICAgICAgIGxldCB2YWwgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFsID0gcGFyc2VGbG9hdCh2YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICBpZiAodGhpcy5pc05vdFZhbGlkKHZhbCkpIHtcbiAgICAgICAgICAgIHZhbCA9IHRoaXMudmFsaWRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsIDwgdGhpcy50aHlNaW4pIHtcbiAgICAgICAgICAgIHZhbCA9IHRoaXMudGh5TWluO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgPiB0aGlzLnRoeU1heCkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy50aHlNYXg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcih2YWwpO1xuICAgIH1cbiAgICBpc05vdFZhbGlkKG51bTogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc05hTihudW0gYXMgbnVtYmVyKSB8fCBudW0gPT09ICcnIHx8IG51bSA9PT0gbnVsbCB8fCAhIShudW0gJiYgbnVtLnRvU3RyaW5nKCkuaW5kZXhPZignLicpID09PSBudW0udG9TdHJpbmcoKS5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICB0b051bWJlcihudW06IHN0cmluZyB8IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQobnVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bSBhcyBudW1iZXI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnVtU3RyID0gU3RyaW5nKG51bSk7XG4gICAgICAgIGlmIChudW1TdHIuaW5kZXhPZignLicpID49IDAgJiYgIWlzVW5kZWZpbmVkT3JOdWxsKHRoaXMudGh5UHJlY2lzaW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihOdW1iZXIobnVtKS50b0ZpeGVkKHRoaXMudGh5UHJlY2lzaW9uKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE51bWJlcihudW0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1udW1iZXItaGFuZGxlci13cmFwXCIgW2NsYXNzLmlucHV0LW51bWJlci1kaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiPlxuICA8c3BhblxuICAgIHVuc2VsZWN0YWJsZT1cInVuc2VsZWN0YWJsZVwiXG4gICAgY2xhc3M9XCJpbnB1dC1udW1iZXItaGFuZGxlciBpbnB1dC1udW1iZXItaGFuZGxlci11cFwiXG4gICAgKG1vdXNlZG93bik9XCJ1cCgkZXZlbnQpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3AoKVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkVXBcIlxuICA+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtdXBcIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgdW5zZWxlY3RhYmxlPVwidW5zZWxlY3RhYmxlXCJcbiAgICBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyIGlucHV0LW51bWJlci1oYW5kbGVyLWRvd25cIlxuICAgIChtb3VzZWRvd24pPVwiZG93bigkZXZlbnQpXCJcbiAgICAobW91c2V1cCk9XCJzdG9wKClcIlxuICAgIChtb3VzZWxlYXZlKT1cInN0b3AoKVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkRG93blwiXG4gID5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1kb3duXCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG48aW5wdXRcbiAgdGh5SW5wdXRcbiAgI2lucHV0XG4gIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWlucHV0IGZvcm0tY29udHJvbFwiXG4gIFt0aHlTaXplXT1cInRoeVNpemVcIlxuICBbdGh5QXV0b2ZvY3VzXT1cInRoeUF1dG9Gb2N1c1wiXG4gIFtkaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiXG4gIFthdHRyLm1pbl09XCJ0aHlNaW5cIlxuICBbYXR0ci5tYXhdPVwidGh5TWF4XCJcbiAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlaG9sZGVyXCJcbiAgW2F0dHIuc3RlcF09XCJ0aHlTdGVwXCJcbiAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAoa2V5dXApPVwic3RvcCgpXCJcbiAgWyhuZ01vZGVsKV09XCJkaXNwbGF5VmFsdWVcIlxuICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gIHRhYmluZGV4PVwiLTFcIlxuLz5cbiJdfQ==
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsNEJBQTRCLEVBRTVCLFlBQVksRUFDWixXQUFXLEVBQ1gsYUFBYSxFQUNiLGFBQWEsRUFHaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUl0RixJQUFLLElBR0o7QUFIRCxXQUFL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O0lBQVUsV0FBVyxFQUFFOzt3REFBYTsyRkFqRTNCLHVCQUF1QjtrQkFqQm5DLFNBQVM7K0JBQ0ksa0JBQWtCLGFBRWpCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLFFBQzlHO3dCQUNGLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLGlCQUFpQixFQUFFLFVBQVU7cUJBQ2hDOzRKQUdxQyxZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBZ0JYLFlBQVk7c0JBQXBDLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFNbUIsV0FBVztzQkFBbkMsS0FBSztnQkFNTyxNQUFNO3NCQUFsQixLQUFLO2dCQWdCTyxNQUFNO3NCQUFsQixLQUFLO2dCQWVrQixPQUFPO3NCQUE5QixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0ksT0FBTztzQkFBaEIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIENvbnN0cnVjdG9yLFxuICAgIElucHV0Qm9vbGVhbixcbiAgICBJbnB1dE51bWJlcixcbiAgICBtaXhpbkRpc2FibGVkLFxuICAgIG1peGluVGFiSW5kZXgsXG4gICAgVGh5Q2FuRGlzYWJsZSxcbiAgICBUaHlIYXNUYWJJbmRleFxufSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5TWF4RGlyZWN0aXZlLCBUaHlNaW5EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2Zvcm0nO1xuaW1wb3J0IHsgVGh5SWNvbkNvbXBvbmVudCB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIGlzTnVtYmVyLCBpc1VuZGVmaW5lZE9yTnVsbCwgVVBfQVJST1cgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbnR5cGUgSW5wdXRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICcnO1xuXG5lbnVtIFR5cGUge1xuICAgIHVwLFxuICAgIGRvd25cbn1cblxuY29uc3QgX01peGluQmFzZTogQ29uc3RydWN0b3I8VGh5SGFzVGFiSW5kZXg+ICYgQ29uc3RydWN0b3I8VGh5Q2FuRGlzYWJsZT4gJiB0eXBlb2YgQWJzdHJhY3RDb250cm9sVmFsdWVBY2Nlc3NvciA9IG1peGluVGFiSW5kZXgoXG4gICAgbWl4aW5EaXNhYmxlZChBYnN0cmFjdENvbnRyb2xWYWx1ZUFjY2Vzc29yKVxuKTtcblxuLyoqXG4gKiDmlbDlrZfovpPlhaXmoYZcbiAqIEBuYW1lIHRoeS1pbnB1dC1udW1iZXJcbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1pbnB1dC1udW1iZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeUlucHV0TnVtYmVyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUljb25Db21wb25lbnQsIFRoeUlucHV0RGlyZWN0aXZlLCBUaHlBdXRvZm9jdXNEaXJlY3RpdmUsIEZvcm1zTW9kdWxlLCBUaHlNaW5EaXJlY3RpdmUsIFRoeU1heERpcmVjdGl2ZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1pbnB1dC1udW1iZXInLFxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ3RhYkluZGV4J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGh5SW5wdXROdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBfTWl4aW5CYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPGFueT47XG5cbiAgICBwcml2YXRlIGF1dG9TdGVwVGltZXI6IGFueTtcblxuICAgIHZhbGlkVmFsdWU6IG51bWJlciB8IHN0cmluZztcblxuICAgIGRpc3BsYXlWYWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgZGlzYWJsZWRVcCA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWREb3duID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKboh6rliqjogZrnhKZcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0aHlBdXRvRm9jdXM6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDovpPlhaXmoYbnmoRwbGFjZWhvbGRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5pyA5aSn5YC8XG4gICAgICogQGRlZmF1bHQgSW5maW5pdHlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWF4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbm5lck1heCA9IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5pbm5lck1heDtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlIHx8IHRoaXMuZGlzcGxheVZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdmFsID49IHRoaXMuaW5uZXJNYXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5TWF4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lck1heDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/lgLxcbiAgICAgKiBAZGVmYXVsdCAtSW5maW5pdHlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWluKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pbm5lck1pbiA9IGlzTnVtYmVyKHZhbHVlKSA/IHZhbHVlIDogdGhpcy5pbm5lck1pbjtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlIHx8IHRoaXMuZGlzcGxheVZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZERvd24gPSB2YWwgPD0gdGhpcy5pbm5lck1pbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0aHlNaW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyTWluO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOavj+asoeaUueWPmOatpeaVsO+8jOWPr+S7peS4uuWwj+aVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIHRoeVN0ZXAgPSAxO1xuXG4gICAgLyoqXG4gICAgICog6L6T5YWl5qGG5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBJbnB1dFNpemU7XG5cbiAgICAvKipcbiAgICAgKiDmlbDlgLznsr7luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmVjaXNpb246IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOaVsOWAvOWQjue8gFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVN1ZmZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog54Sm54K55aSx5Y675LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog54Sm54K55r+A5rS75LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIHByaXZhdGUgaW5uZXJNYXg6IG51bWJlciA9IEluZmluaXR5O1xuXG4gICAgcHJpdmF0ZSBpbm5lck1pbjogbnVtYmVyID0gLUluZmluaXR5O1xuXG4gICAgcHJpdmF0ZSBpc0ZvY3VzZWQ6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeURpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3JcbiAgICAgICAgICAgIC5tb25pdG9yKHRoaXMuZWxlbWVudFJlZiwgdHJ1ZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZm9jdXNPcmlnaW4gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZm9jdXNPcmlnaW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkJsdXIoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBjYWxsIHdoZW4gaW5wdXRFbGVtZW50LmZvY3VzIGFuZCBpbnB1dC1udW1iZXIgZm9jdXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnRoeVN1ZmZpeCAmJiAhY2hhbmdlcy50aHlTdWZmaXguaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZFZhbHVlID0gdGhpcy5nZXRDdXJyZW50VmFsaWRWYWx1ZSh0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbGlkVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IF92YWx1ZSA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkVmFsdWUoX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKF92YWx1ZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHVwZGF0ZVZhbGlkVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc05vdFZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZFZhbHVlID0gJyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YWxpZFZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNhYmxlZFVwID0gdGhpcy5kaXNhYmxlZERvd24gPSBmYWxzZTtcbiAgICAgICAgaWYgKHZhbHVlIHx8IHZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKHZhbCA+PSB0aGlzLnRoeU1heCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRVcCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsIDw9IHRoaXMudGh5TWluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZERvd24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcnNlVmFsdWUgPSB0aGlzLnBhcnNlcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldEN1cnJlbnRWYWxpZFZhbHVlKHBhcnNlVmFsdWUpO1xuICAgICAgICBpZiAodGhpcy52YWxpZFZhbHVlICE9PSB2YWxpZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkVmFsdWUodmFsaWRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlRm4odGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmx1cihldmVudD86IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodGhpcy52YWxpZFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcbiAgICAgICAgICAgIHRoaXMudGh5Qmx1ci5lbWl0KCk7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cyhldmVudD86IEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSW5wdXRGb2N1cyhldmVudD86IEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuaW5wdXRFbGVtZW50LCAna2V5Ym9hcmQnKTtcbiAgICAgICAgICAgIHRoaXMudGh5Rm9jdXMuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZS5rZXlDb2RlID09PSBVUF9BUlJPVykge1xuICAgICAgICAgICAgdGhpcy51cChlKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PT0gRE9XTl9BUlJPVykge1xuICAgICAgICAgICAgdGhpcy5kb3duKGUpO1xuICAgICAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdHRlclZhbHVlKHRoaXMudmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvU3RlcFRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvU3RlcFRpbWVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0ZXAodHlwZTogVHlwZSwgZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsaWRWYWx1ZSBhcyBudW1iZXI7XG4gICAgICAgIGxldCB2YWw7XG4gICAgICAgIGlmICh0eXBlID09PSBUeXBlLnVwKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnVwU3RlcCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVHlwZS5kb3duKSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLmRvd25TdGVwKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdXRPZlJhbmdlID0gdmFsID4gdGhpcy50aHlNYXggfHwgdmFsIDwgdGhpcy50aHlNaW47XG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0Q3VycmVudFZhbGlkVmFsdWUodmFsKTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZFZhbHVlKHZhbCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VGbih0aGlzLnZhbGlkVmFsdWUpO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyVmFsdWUodmFsKTtcbiAgICAgICAgaWYgKG91dE9mUmFuZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF1dG9TdGVwVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICh0aGlzW1R5cGVbdHlwZV1dIGFzIChlOiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkgPT4gdm9pZCkoZSk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgfVxuXG4gICAgdXBTdGVwKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwcmVjaXNpb25GYWN0b3IgPSB0aGlzLmdldFByZWNpc2lvbkZhY3Rvcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMuZ2V0TWF4UHJlY2lzaW9uKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKChwcmVjaXNpb25GYWN0b3IgKiB2YWx1ZSArIHByZWNpc2lvbkZhY3RvciAqIHRoaXMudGh5U3RlcCkgLyBwcmVjaXNpb25GYWN0b3IpLnRvRml4ZWQocHJlY2lzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIocmVzdWx0KTtcbiAgICB9XG5cbiAgICBkb3duU3RlcCh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uRmFjdG9yID0gdGhpcy5nZXRQcmVjaXNpb25GYWN0b3IodmFsdWUpO1xuICAgICAgICBjb25zdCBwcmVjaXNpb24gPSBNYXRoLmFicyh0aGlzLmdldE1heFByZWNpc2lvbih2YWx1ZSkpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSAoKHByZWNpc2lvbkZhY3RvciAqIHZhbHVlIC0gcHJlY2lzaW9uRmFjdG9yICogdGhpcy50aHlTdGVwKSAvIHByZWNpc2lvbkZhY3RvcikudG9GaXhlZChwcmVjaXNpb24pO1xuICAgICAgICByZXR1cm4gdGhpcy50b051bWJlcihyZXN1bHQpO1xuICAgIH1cblxuICAgIGdldE1heFByZWNpc2lvbih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh0aGlzLnRoeVByZWNpc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeVByZWNpc2lvbjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGVwUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odGhpcy50aHlTdGVwKTtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlUHJlY2lzaW9uID0gdGhpcy5nZXRQcmVjaXNpb24odmFsdWUgYXMgbnVtYmVyKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ZXBQcmVjaXNpb247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGN1cnJlbnRWYWx1ZVByZWNpc2lvbiwgc3RlcFByZWNpc2lvbik7XG4gICAgfVxuXG4gICAgZ2V0UHJlY2lzaW9uRmFjdG9yKGN1cnJlbnRWYWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJlY2lzaW9uID0gdGhpcy5nZXRNYXhQcmVjaXNpb24oY3VycmVudFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIE1hdGgucG93KDEwLCBwcmVjaXNpb24pO1xuICAgIH1cblxuICAgIGdldFByZWNpc2lvbih2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAvLyAwLjAwMDAwMDAwMDQudG9TdHJpbmcoKSA9IDRlMTAgID0+IDEwXG4gICAgICAgIGlmICh2YWx1ZVN0cmluZy5pbmRleE9mKCdlLScpID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZVN0cmluZy5zbGljZSh2YWx1ZVN0cmluZy5pbmRleE9mKCdlLScpICsgMiksIDEwKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcHJlY2lzaW9uID0gMDtcbiAgICAgICAgLy8gMS4yMjIyID0+ICA0XG4gICAgICAgIGlmICh2YWx1ZVN0cmluZy5pbmRleE9mKCcuJykgPj0gMCkge1xuICAgICAgICAgICAgcHJlY2lzaW9uID0gdmFsdWVTdHJpbmcubGVuZ3RoIC0gdmFsdWVTdHJpbmcuaW5kZXhPZignLicpIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJlY2lzaW9uO1xuICAgIH1cblxuICAgIHVwKGU6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5zdGVwKFR5cGUudXAsIGUpO1xuICAgIH1cblxuICAgIGRvd24oZTogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLnN0ZXAoVHlwZS5kb3duLCBlKTtcbiAgICB9XG5cbiAgICBmb3JtYXR0ZXJWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlVmFsdWUgPSB0aGlzLnBhcnNlcihgJHt2YWx1ZX1gKTtcbiAgICAgICAgaWYgKHBhcnNlVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeVN1ZmZpeCA/IGAke3BhcnNlVmFsdWV9ICR7dGhpcy50aHlTdWZmaXh9YCA6IHBhcnNlVmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJzZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAgIC5yZXBsYWNlKC/jgIIvZywgJy4nKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1teXFx3XFwuLV0rL2csICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UodGhpcy50aHlTdWZmaXgsICcnKTtcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50VmFsaWRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICAgICAgbGV0IHZhbCA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICB2YWwgPSBwYXJzZUZsb2F0KHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgIGlmICh0aGlzLmlzTm90VmFsaWQodmFsKSkge1xuICAgICAgICAgICAgdmFsID0gdGhpcy52YWxpZFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgPCB0aGlzLnRoeU1pbikge1xuICAgICAgICAgICAgdmFsID0gdGhpcy50aHlNaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCA+IHRoaXMudGh5TWF4KSB7XG4gICAgICAgICAgICB2YWwgPSB0aGlzLnRoeU1heDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRvTnVtYmVyKHZhbCk7XG4gICAgfVxuICAgIGlzTm90VmFsaWQobnVtOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTmFOKG51bSBhcyBudW1iZXIpIHx8IG51bSA9PT0gJycgfHwgbnVtID09PSBudWxsIHx8ICEhKG51bSAmJiBudW0udG9TdHJpbmcoKS5pbmRleE9mKCcuJykgPT09IG51bS50b1N0cmluZygpLmxlbmd0aCAtIDEpO1xuICAgIH1cblxuICAgIHRvTnVtYmVyKG51bTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOb3RWYWxpZChudW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtIGFzIG51bWJlcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBudW1TdHIgPSBTdHJpbmcobnVtKTtcbiAgICAgICAgaWYgKG51bVN0ci5pbmRleE9mKCcuJykgPj0gMCAmJiAhaXNVbmRlZmluZWRPck51bGwodGhpcy50aHlQcmVjaXNpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKE51bWJlcihudW0pLnRvRml4ZWQodGhpcy50aHlQcmVjaXNpb24pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTnVtYmVyKG51bSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyLXdyYXBcIiBbY2xhc3MuaW5wdXQtbnVtYmVyLWRpc2FibGVkXT1cInRoeURpc2FibGVkXCI+XG4gIDxzcGFuXG4gICAgdW5zZWxlY3RhYmxlPVwidW5zZWxlY3RhYmxlXCJcbiAgICBjbGFzcz1cImlucHV0LW51bWJlci1oYW5kbGVyIGlucHV0LW51bWJlci1oYW5kbGVyLXVwXCJcbiAgICAobW91c2Vkb3duKT1cInVwKCRldmVudClcIlxuICAgIChtb3VzZXVwKT1cInN0b3AoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcCgpXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRVcFwiXG4gID5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS11cFwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICB1bnNlbGVjdGFibGU9XCJ1bnNlbGVjdGFibGVcIlxuICAgIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWhhbmRsZXIgaW5wdXQtbnVtYmVyLWhhbmRsZXItZG93blwiXG4gICAgKG1vdXNlZG93bik9XCJkb3duKCRldmVudClcIlxuICAgIChtb3VzZXVwKT1cInN0b3AoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcCgpXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWREb3duXCJcbiAgPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvd25cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L2Rpdj5cbjxpbnB1dFxuICB0aHlJbnB1dFxuICAjaW5wdXRcbiAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgY2xhc3M9XCJpbnB1dC1udW1iZXItaW5wdXQgZm9ybS1jb250cm9sXCJcbiAgW3RoeVNpemVdPVwidGh5U2l6ZVwiXG4gIFt0aHlBdXRvZm9jdXNdPVwidGh5QXV0b0ZvY3VzXCJcbiAgW2Rpc2FibGVkXT1cInRoeURpc2FibGVkXCJcbiAgW2F0dHIubWluXT1cInRoeU1pblwiXG4gIFthdHRyLm1heF09XCJ0aHlNYXhcIlxuICBbcGxhY2Vob2xkZXJdPVwidGh5UGxhY2Vob2xkZXJcIlxuICBbYXR0ci5zdGVwXT1cInRoeVN0ZXBcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChrZXl1cCk9XCJzdG9wKClcIlxuICBbKG5nTW9kZWwpXT1cImRpc3BsYXlWYWx1ZVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gIHRhYmluZGV4PVwiLTFcIlxuLz5cbiJdfQ==
@@ -4,7 +4,6 @@ import { filter, takeUntil, tap } from 'rxjs/operators';
4
4
  import { Directive, ElementRef, EventEmitter, HostBinding, Inject, Input, NgZone, Output, Renderer2 } from '@angular/core';
5
5
  import { FileSelectBaseDirective } from './file-select-base';
6
6
  import { THY_UPLOAD_DEFAULT_OPTIONS } from './upload.config';
7
- import { mimeTypeConvert } from './util';
8
7
  import * as i0 from "@angular/core";
9
8
  /**
10
9
  * @name thyFileDrop
@@ -13,9 +12,6 @@ export class ThyFileDropDirective extends FileSelectBaseDirective {
13
12
  set thyFileDropClassName(value) {
14
13
  this.dragOverCustomClass = value;
15
14
  }
16
- set thyAcceptType(value) {
17
- this.acceptType = mimeTypeConvert(value);
18
- }
19
15
  constructor(elementRef, renderer, ngZone, defaultConfig) {
20
16
  super(elementRef, defaultConfig);
21
17
  this.elementRef = elementRef;
@@ -133,7 +129,7 @@ export class ThyFileDropDirective extends FileSelectBaseDirective {
133
129
  }
134
130
  }
135
131
  ThyFileDropDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyFileDropDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: THY_UPLOAD_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Directive });
136
- ThyFileDropDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ThyFileDropDirective, isStandalone: true, selector: "[thyFileDrop]", inputs: { thyFileDropClassName: "thyFileDropClassName", thyAcceptType: "thyAcceptType" }, outputs: { thyOnDrop: "thyOnDrop" }, host: { properties: { "class.drop-over": "this.isDragOver", "class.thy-drop-over": "this.isDragOver" } }, usesInheritance: true, ngImport: i0 });
132
+ ThyFileDropDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ThyFileDropDirective, isStandalone: true, selector: "[thyFileDrop]", inputs: { thyFileDropClassName: "thyFileDropClassName" }, outputs: { thyOnDrop: "thyOnDrop" }, host: { properties: { "class.drop-over": "this.isDragOver", "class.thy-drop-over": "this.isDragOver" } }, usesInheritance: true, ngImport: i0 });
137
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyFileDropDirective, decorators: [{
138
134
  type: Directive,
139
135
  args: [{
@@ -151,9 +147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
151
147
  args: ['class.thy-drop-over']
152
148
  }], thyFileDropClassName: [{
153
149
  type: Input
154
- }], thyAcceptType: [{
155
- type: Input
156
150
  }], thyOnDrop: [{
157
151
  type: Output
158
152
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91cGxvYWQvZmlsZS1kcm9wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUVILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUV6Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx1QkFBdUI7SUFNN0QsSUFBYSxvQkFBb0IsQ0FBQyxLQUFhO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQ0ksYUFBYSxDQUFDLEtBQTZCO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFNRCxZQUNXLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLE1BQWMsRUFDc0IsYUFBOEI7UUFFekUsS0FBSyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUwxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixR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LENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN0RjtTQUNKO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDOztpSEFsSlEsb0JBQW9CLDJGQXVCakIsMEJBQTBCO3FHQXZCN0Isb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBd0JRLE1BQU07MkJBQUMsMEJBQTBCOzRDQXBCdEMsVUFBVTtzQkFGVCxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQzdCLFdBQVc7dUJBQUMscUJBQXFCO2dCQUlyQixvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBS0YsYUFBYTtzQkFEaEIsS0FBSztnQkFLSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmlsZVNlbGVjdEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuL2ZpbGUtc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHsgVEhZX1VQTE9BRF9ERUZBVUxUX09QVElPTlMsIFRoeVVwbG9hZENvbmZpZyB9IGZyb20gJy4vdXBsb2FkLmNvbmZpZyc7XG5pbXBvcnQgeyBtaW1lVHlwZUNvbnZlcnQgfSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIEBuYW1lIHRoeUZpbGVEcm9wXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoeUZpbGVEcm9wXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlGaWxlRHJvcERpcmVjdGl2ZSBleHRlbmRzIEZpbGVTZWxlY3RCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZHJvcC1vdmVyJylcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1kcm9wLW92ZXInKVxuICAgIGlzRHJhZ092ZXIgPSBmYWxzZTtcbiAgICBwcml2YXRlIGRyYWdPdmVyQ3VzdG9tQ2xhc3M6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHNldCB0aHlGaWxlRHJvcENsYXNzTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZHJhZ092ZXJDdXN0b21DbGFzcyA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUFjY2VwdFR5cGUodmFsdWU6IEFycmF5PHN0cmluZz4gfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5hY2NlcHRUeXBlID0gbWltZVR5cGVDb252ZXJ0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgdGh5T25Ecm9wID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwdWJsaWMgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoVEhZX1VQTE9BRF9ERUZBVUxUX09QVElPTlMpIHB1YmxpYyBkZWZhdWx0Q29uZmlnOiBUaHlVcGxvYWRDb25maWdcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgZGVmYXVsdENvbmZpZyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcmFnZW50ZXInKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoZXZlbnQ6IERyYWdFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC5kYXRhVHJhbnNmZXIuaXRlbXMgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLml0ZW1zLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tSZWplY3RGb2xkZXJBbmRIdG1sRWxlbWVudChldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gdGhpcy5maWx0ZXJGaWxlc09ySXRlbXMoQXJyYXkuZnJvbShldmVudC5kYXRhVHJhbnNmZXIuaXRlbXMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNFbXB0eShmaWxlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRHJhZ092ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZURyb3BPdmVyQ2xhc3NOYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZHJhZ292ZXInKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2RyYWdsZWF2ZScpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQuZnJvbUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldERyYWdPdmVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVEcm9wT3ZlckNsYXNzTmFtZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZHJvcCcpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSxcbiAgICAgICAgICAgICAgICAgICAgdGFwKChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja1JlamVjdEZvbGRlckFuZEh0bWxFbGVtZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gdGhpcy5maWx0ZXJGaWxlc09ySXRlbXMoZXZlbnQuZGF0YVRyYW5zZmVyID8gQXJyYXkuZnJvbShldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpIDogW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNFbXB0eShmaWxlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RGaWxlcyhldmVudCwgQXJyYXkuZnJvbShldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpLCB0aGlzLnRoeU9uRHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldERyYWdPdmVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZURyb3BPdmVyQ2xhc3NOYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrUmVqZWN0Rm9sZGVyQW5kSHRtbEVsZW1lbnQoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICAvLyDmjpLpmaTmlofku7blpLnlkoxIVE1M5YWD57Sg5ouW5ou9XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBEYXRhVHJhbnNmZXJJdGVtTGlzdCB8IERhdGFUcmFuc2Zlckl0ZW1bXSA9IGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcyA6IFtdO1xuICAgICAgICBsZXQgcmVzID0gdHJ1ZTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW1zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5nZXRBc0VudHJ5KGl0ZW0pO1xuICAgICAgICAgICAgaWYgKGl0ZW0ua2luZCAhPT0gJ2ZpbGUnIHx8IChlbnRyeSAmJiAhZW50cnkuaXNGaWxlKSkge1xuICAgICAgICAgICAgICAgIHJlcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoYGZpbGUgZXh0ZW5zaW9ucyBub3Qgc3VwcG9ydCBkcmFnIHVwbG9hZCwga2luZDogJHtpdGVtLmtpbmR9LCB0eXBlOiAke2l0ZW0udHlwZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QXNFbnRyeShpdGVtOiBEYXRhVHJhbnNmZXJJdGVtKTogRmlsZVN5c3RlbUVudHJ5IHtcbiAgICAgICAgbGV0IGVudHJ5OiBGaWxlU3lzdGVtRW50cnk7XG4gICAgICAgIGlmIChpdGVtWydnZXRBc0VudHJ5J10pIHtcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHJhZ0FuZERyb3BFbnRyaWVzXG4gICAgICAgICAgICBlbnRyeSA9IGl0ZW1bJ2dldEFzRW50cnknXSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0ud2Via2l0R2V0QXNFbnRyeSkge1xuICAgICAgICAgICAgZW50cnkgPSBpdGVtLndlYmtpdEdldEFzRW50cnkoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJGaWxlc09ySXRlbXMoaXRlbXM6IEFycmF5PERhdGFUcmFuc2Zlckl0ZW0gfCBGaWxlPik6IEFycmF5PERhdGFUcmFuc2Zlckl0ZW0gfCBGaWxlPiB7XG4gICAgICAgIGlmICh0aGlzLmFjY2VwdFR5cGUgJiYgdGhpcy5hY2NlcHRUeXBlICE9ICcqLyonKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFjY2VwdFR5cGUuaW5jbHVkZXMoaXRlbS50eXBlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVEcm9wT3ZlckNsYXNzTmFtZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ092ZXJDdXN0b21DbGFzcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNEcmFnT3Zlcikge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZHJhZ092ZXJDdXN0b21DbGFzcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZHJhZ092ZXJDdXN0b21DbGFzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERyYWdPdmVyU3RhdGUoaXNEcmFnT3ZlcjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzRHJhZ092ZXIgPSBpc0RyYWdPdmVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXREcmFnT3ZlcigpIHtcbiAgICAgICAgdGhpcy5zZXREcmFnT3ZlclN0YXRlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91cGxvYWQvZmlsZS1kcm9wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUVILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHOUU7O0dBRUc7QUFLSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXVCO0lBTTdELElBQWEsb0JBQW9CLENBQUMsS0FBYTtRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFNRCxZQUNXLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLE1BQWMsRUFDc0IsYUFBOEI7UUFFekUsS0FBSyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUwxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNzQixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFmN0UsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU9ULGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpD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QUM7SUFDakMsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7O2lIQTdJUSxvQkFBb0IsMkZBa0JqQiwwQkFBMEI7cUdBbEI3QixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFtQlEsTUFBTTsyQkFBQywwQkFBMEI7NENBZnRDLFVBQVU7c0JBRlQsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUM3QixXQUFXO3VCQUFDLHFCQUFxQjtnQkFJckIsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUlJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGaWxlU2VsZWN0QmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vZmlsZS1zZWxlY3QtYmFzZSc7XG5pbXBvcnQgeyBUSFlfVVBMT0FEX0RFRkFVTFRfT1BUSU9OUywgVGh5VXBsb2FkQ29uZmlnIH0gZnJvbSAnLi91cGxvYWQuY29uZmlnJztcbmltcG9ydCB7IG1pbWVUeXBlQ29udmVydCB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQG5hbWUgdGh5RmlsZURyb3BcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5RmlsZURyb3BdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeUZpbGVEcm9wRGlyZWN0aXZlIGV4dGVuZHMgRmlsZVNlbGVjdEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kcm9wLW92ZXInKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWRyb3Atb3ZlcicpXG4gICAgaXNEcmFnT3ZlciA9IGZhbHNlO1xuICAgIHByaXZhdGUgZHJhZ092ZXJDdXN0b21DbGFzczogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc2V0IHRoeUZpbGVEcm9wQ2xhc3NOYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kcmFnT3ZlckN1c3RvbUNsYXNzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHRoeU9uRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHVibGljIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRIWV9VUExPQURfREVGQVVMVF9PUFRJT05TKSBwdWJsaWMgZGVmYXVsdENvbmZpZzogVGh5VXBsb2FkQ29uZmlnXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGRlZmF1bHRDb25maWcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZHJhZ2VudGVyJylcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGF0YVRyYW5zZmVyLml0ZW1zICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrUmVqZWN0Rm9sZGVyQW5kSHRtbEVsZW1lbnQoZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlcyA9IHRoaXMuZmlsdGVyRmlsZXNPckl0ZW1zKEFycmF5LmZyb20oZXZlbnQuZGF0YVRyYW5zZmVyLml0ZW1zKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRW1wdHkoZmlsZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0RyYWdPdmVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVEcm9wT3ZlckNsYXNzTmFtZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2RyYWdvdmVyJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcmFnbGVhdmUnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LmZyb21FbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXREcmFnT3ZlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRHJvcE92ZXJDbGFzc05hbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Ryb3AnKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoZXZlbnQ6IERyYWdFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IERyYWdFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tSZWplY3RGb2xkZXJBbmRIdG1sRWxlbWVudChldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlcyA9IHRoaXMuZmlsdGVyRmlsZXNPckl0ZW1zKGV2ZW50LmRhdGFUcmFuc2ZlciA/IEFycmF5LmZyb20oZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKSA6IFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRW1wdHkoZmlsZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RmlsZXMoZXZlbnQsIEFycmF5LmZyb20oZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKSwgdGhpcy50aHlPbkRyb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXREcmFnT3ZlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVEcm9wT3ZlckNsYXNzTmFtZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1JlamVjdEZvbGRlckFuZEh0bWxFbGVtZW50KGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgLy8g5o6S6Zmk5paH5Lu25aS55ZKMSFRNTOWFg+e0oOaLluaLvVxuICAgICAgICBjb25zdCBpdGVtczogRGF0YVRyYW5zZmVySXRlbUxpc3QgfCBEYXRhVHJhbnNmZXJJdGVtW10gPSBldmVudC5kYXRhVHJhbnNmZXIgPyBldmVudC5kYXRhVHJhbnNmZXIuaXRlbXMgOiBbXTtcbiAgICAgICAgbGV0IHJlcyA9IHRydWU7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpbmRleF07XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0QXNFbnRyeShpdGVtKTtcbiAgICAgICAgICAgIGlmIChpdGVtLmtpbmQgIT09ICdmaWxlJyB8fCAoZW50cnkgJiYgIWVudHJ5LmlzRmlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmVycm9yKGBmaWxlIGV4dGVuc2lvbnMgbm90IHN1cHBvcnQgZHJhZyB1cGxvYWQsIGtpbmQ6ICR7aXRlbS5raW5kfSwgdHlwZTogJHtpdGVtLnR5cGV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFzRW50cnkoaXRlbTogRGF0YVRyYW5zZmVySXRlbSk6IEZpbGVTeXN0ZW1FbnRyeSB7XG4gICAgICAgIGxldCBlbnRyeTogRmlsZVN5c3RlbUVudHJ5O1xuICAgICAgICBpZiAoaXRlbVsnZ2V0QXNFbnRyeSddKSB7XG4gICAgICAgICAgICAvLyBodHRwczovL3dpa2kud2hhdHdnLm9yZy93aWtpL0RyYWdBbmREcm9wRW50cmllc1xuICAgICAgICAgICAgZW50cnkgPSBpdGVtWydnZXRBc0VudHJ5J10oKTtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLndlYmtpdEdldEFzRW50cnkpIHtcbiAgICAgICAgICAgIGVudHJ5ID0gaXRlbS53ZWJraXRHZXRBc0VudHJ5KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyRmlsZXNPckl0ZW1zKGl0ZW1zOiBBcnJheTxEYXRhVHJhbnNmZXJJdGVtIHwgRmlsZT4pOiBBcnJheTxEYXRhVHJhbnNmZXJJdGVtIHwgRmlsZT4ge1xuICAgICAgICBpZiAodGhpcy5hY2NlcHRUeXBlICYmIHRoaXMuYWNjZXB0VHlwZSAhPSAnKi8qJykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihpdGVtID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hY2NlcHRUeXBlLmluY2x1ZGVzKGl0ZW0udHlwZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKGl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRHJvcE92ZXJDbGFzc05hbWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYWdPdmVyQ3VzdG9tQ2xhc3MpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRHJhZ092ZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRyYWdPdmVyQ3VzdG9tQ2xhc3MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmRyYWdPdmVyQ3VzdG9tQ2xhc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREcmFnT3ZlclN0YXRlKGlzRHJhZ092ZXI6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0RyYWdPdmVyID0gaXNEcmFnT3ZlcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0RHJhZ092ZXIoKSB7XG4gICAgICAgIHRoaXMuc2V0RHJhZ092ZXJTdGF0ZShmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { coerceNumberValue, isNumber } from 'ngx-tethys/util';
2
2
  import { Directive, ElementRef, Inject, Input, NgZone } from '@angular/core';
3
3
  import { THY_UPLOAD_DEFAULT_OPTIONS } from './upload.config';
4
+ import { mimeTypeConvert } from './util';
4
5
  import * as i0 from "@angular/core";
5
6
  export class FileSelectBaseDirective {
6
7
  set thySizeThreshold(value) {
@@ -14,12 +15,19 @@ export class FileSelectBaseDirective {
14
15
  this.sizeExceedsHandler = value;
15
16
  }
16
17
  }
18
+ /**
19
+ * 指定文件后缀类型(MIME_Map),例如".xls,xlsx","[".doc",".docx"]"
20
+ */
21
+ set thyAcceptType(value) {
22
+ this.acceptType = mimeTypeConvert(value);
23
+ }
17
24
  constructor(elementRef, defaultConfig, ngZone) {
18
25
  this.elementRef = elementRef;
19
26
  this.defaultConfig = defaultConfig;
20
27
  this.ngZone = ngZone;
21
28
  this.sizeThreshold = defaultConfig.sizeThreshold;
22
29
  this.sizeExceedsHandler = defaultConfig.sizeExceedsHandler;
30
+ this.acceptType = defaultConfig.acceptType;
23
31
  }
24
32
  handleSizeExceeds(event, files) {
25
33
  let sizeExceedsFiles = files.filter(item => item.size / 1024 > this.sizeThreshold);
@@ -48,7 +56,7 @@ export class FileSelectBaseDirective {
48
56
  }
49
57
  }
50
58
  FileSelectBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FileSelectBaseDirective, deps: [{ token: i0.ElementRef }, { token: THY_UPLOAD_DEFAULT_OPTIONS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
51
- FileSelectBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: FileSelectBaseDirective, inputs: { thySizeThreshold: "thySizeThreshold", thySizeExceedsHandler: "thySizeExceedsHandler" }, ngImport: i0 });
59
+ FileSelectBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: FileSelectBaseDirective, inputs: { thySizeThreshold: "thySizeThreshold", thySizeExceedsHandler: "thySizeExceedsHandler", thyAcceptType: "thyAcceptType" }, ngImport: i0 });
52
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FileSelectBaseDirective, decorators: [{
53
61
  type: Directive
54
62
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
@@ -58,5 +66,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
58
66
  type: Input
59
67
  }], thySizeExceedsHandler: [{
60
68
  type: Input
69
+ }], thyAcceptType: [{
70
+ type: Input
61
71
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3QtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91cGxvYWQvZmlsZS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWdCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHOUUsTUFBTSxPQUFPLHVCQUF1QjtJQUtoQyxJQUFhLGdCQUFnQixDQUFDLEtBQWE7UUFDdkMsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRUQsSUFBYSxxQkFBcUIsQ0FBQyxLQUE0QjtRQUMzRCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRUQsWUFDVyxVQUFzQixFQUNjLGFBQThCLEVBQ2xFLE1BQWU7UUFGZixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2Msa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQ2xFLFdBQU0sR0FBTixNQUFNLENBQVM7UUFFdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxhQUFhLENBQUMsa0JBQWtCLENBQUM7SUFDL0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVksRUFBRSxLQUFhO1FBQ3pDLElBQUksZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRixJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxpQkFBaUIsR0FBRztnQkFDdEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osWUFBWSxFQUFFLGdCQUFnQjtnQkFDOUIsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNwQyxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNyRDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWSxFQUFFLEtBQWEsRUFBRSxZQUE4QztRQUNuRixJQUFJLFlBQVksR0FBa0IsS0FBSyxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRTtZQUM5QyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQUksWUFBWSxFQUFFO1lBQ2QsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDZCxLQUFLLEVBQUUsWUFBWTtnQkFDbkIsV0FBVyxFQUFFLEtBQUs7YUFDckIsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDOztvSEFwRFEsdUJBQXVCLDRDQW9CcEIsMEJBQTBCO3dHQXBCN0IsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFNBQVM7OzBCQXFCRCxNQUFNOzJCQUFDLDBCQUEwQjtpRUFmekIsZ0JBQWdCO3NCQUE1QixLQUFLO2dCQU9PLHFCQUFxQjtzQkFBakMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclZhbHVlLCBpc051bWJlciB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlGaWxlU2VsZWN0RXZlbnQsIFRoeVNpemVFeGNlZWRzSGFuZGxlciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgVEhZX1VQTE9BRF9ERUZBVUxUX09QVElPTlMsIFRoeVVwbG9hZENvbmZpZyB9IGZyb20gJy4vdXBsb2FkLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEZpbGVTZWxlY3RCYXNlRGlyZWN0aXZlIHtcbiAgICBhY2NlcHRUeXBlOiBzdHJpbmc7XG4gICAgc2l6ZVRocmVzaG9sZDogbnVtYmVyO1xuICAgIHNpemVFeGNlZWRzSGFuZGxlcjogVGh5U2l6ZUV4Y2VlZHNIYW5kbGVyO1xuXG4gICAgQElucHV0KCkgc2V0IHRoeVNpemVUaHJlc2hvbGQodmFsdWU6IG51bWJlcikge1xuICAgICAgICBjb25zdCBzaXplVGhyZXNob2xkID0gY29lcmNlTnVtYmVyVmFsdWUodmFsdWUpO1xuICAgICAgICBpZiAoaXNOdW1iZXIoc2l6ZVRocmVzaG9sZCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZVRocmVzaG9sZCA9IHNpemVUaHJlc2hvbGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdGh5U2l6ZUV4Y2VlZHNIYW5kbGVyKHZhbHVlOiBUaHlTaXplRXhjZWVkc0hhbmRsZXIpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNpemVFeGNlZWRzSGFuZGxlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBASW5qZWN0KFRIWV9VUExPQURfREVGQVVMVF9PUFRJT05TKSBwdWJsaWMgZGVmYXVsdENvbmZpZzogVGh5VXBsb2FkQ29uZmlnLFxuICAgICAgICBwdWJsaWMgbmdab25lPzogTmdab25lXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2l6ZVRocmVzaG9sZCA9IGRlZmF1bHRDb25maWcuc2l6ZVRocmVzaG9sZDtcbiAgICAgICAgdGhpcy5zaXplRXhjZWVkc0hhbmRsZXIgPSBkZWZhdWx0Q29uZmlnLnNpemVFeGNlZWRzSGFuZGxlcjtcbiAgICB9XG5cbiAgICBoYW5kbGVTaXplRXhjZWVkcyhldmVudDogRXZlbnQsIGZpbGVzOiBGaWxlW10pIHtcbiAgICAgICAgbGV0IHNpemVFeGNlZWRzRmlsZXMgPSBmaWxlcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnNpemUgLyAxMDI0ID4gdGhpcy5zaXplVGhyZXNob2xkKTtcbiAgICAgICAgaWYgKHNpemVFeGNlZWRzRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3Qgc2l6ZUV4Y2VlZENvbnRleHQgPSB7XG4gICAgICAgICAgICAgICAgZmlsZXM6IGZpbGVzLFxuICAgICAgICAgICAgICAgIGV4Y2VlZHNGaWxlczogc2l6ZUV4Y2VlZHNGaWxlcyxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnQsXG4gICAgICAgICAgICAgICAgc2l6ZVRocmVzaG9sZDogdGhpcy5zaXplVGhyZXNob2xkXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZUV4Y2VlZHNIYW5kbGVyKHNpemVFeGNlZWRDb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZXM7XG4gICAgfVxuXG4gICAgc2VsZWN0RmlsZXMoZXZlbnQ6IEV2ZW50LCBmaWxlczogRmlsZVtdLCBldmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxUaHlGaWxlU2VsZWN0RXZlbnQ+KSB7XG4gICAgICAgIGxldCBzdWNjZXNzRmlsZXM6IEZpbGVbXSB8IHZvaWQgPSBmaWxlcztcbiAgICAgICAgaWYgKHRoaXMuc2l6ZVRocmVzaG9sZCAmJiB0aGlzLnNpemVUaHJlc2hvbGQgPiAwKSB7XG4gICAgICAgICAgICBzdWNjZXNzRmlsZXMgPSB0aGlzLmhhbmRsZVNpemVFeGNlZWRzKGV2ZW50LCBmaWxlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1Y2Nlc3NGaWxlcykge1xuICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoe1xuICAgICAgICAgICAgICAgIGZpbGVzOiBzdWNjZXNzRmlsZXMsXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3QtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91cGxvYWQvZmlsZS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWdCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUd6QyxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLElBQWEsZ0JBQWdCLENBQUMsS0FBYTtRQUN2QyxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFRCxJQUFhLHFCQUFxQixDQUFDLEtBQTRCO1FBQzNELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksYUFBYSxDQUFDLEtBQTZCO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUNXLFVBQXNCLEVBQ2MsYUFBOEIsRUFDbEUsTUFBZTtRQUZmLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDYyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDbEUsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUV0QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7UUFDakQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7SUFDL0MsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVksRUFBRSxLQUFhO1FBQ3pDLElBQUksZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRixJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxpQkFBaUIsR0FBRztnQkFDdEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osWUFBWSxFQUFFLGdCQUFnQjtnQkFDOUIsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNwQyxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNyRDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWSxFQUFFLEtBQWEsRUFBRSxZQUE4QztRQUNuRixJQUFJLFlBQVksR0FBa0IsS0FBSyxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRTtZQUM5QyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQUksWUFBWSxFQUFFO1lBQ2QsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDZCxLQUFLLEVBQUUsWUFBWTtnQkFDbkIsV0FBVyxFQUFFLEtBQUs7YUFDckIsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDOztvSEE3RFEsdUJBQXVCLDRDQTRCcEIsMEJBQTBCO3dHQTVCN0IsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFNBQVM7OzBCQTZCRCxNQUFNOzJCQUFDLDBCQUEwQjtpRUF2QnpCLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFPTyxxQkFBcUI7c0JBQWpDLEtBQUs7Z0JBVUYsYUFBYTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclZhbHVlLCBpc051bWJlciB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlGaWxlU2VsZWN0RXZlbnQsIFRoeVNpemVFeGNlZWRzSGFuZGxlciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgVEhZX1VQTE9BRF9ERUZBVUxUX09QVElPTlMsIFRoeVVwbG9hZENvbmZpZyB9IGZyb20gJy4vdXBsb2FkLmNvbmZpZyc7XG5pbXBvcnQgeyBtaW1lVHlwZUNvbnZlcnQgfSBmcm9tICcuL3V0aWwnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBGaWxlU2VsZWN0QmFzZURpcmVjdGl2ZSB7XG4gICAgYWNjZXB0VHlwZTogc3RyaW5nO1xuICAgIHNpemVUaHJlc2hvbGQ6IG51bWJlcjtcbiAgICBzaXplRXhjZWVkc0hhbmRsZXI6IFRoeVNpemVFeGNlZWRzSGFuZGxlcjtcblxuICAgIEBJbnB1dCgpIHNldCB0aHlTaXplVGhyZXNob2xkKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3Qgc2l6ZVRocmVzaG9sZCA9IGNvZXJjZU51bWJlclZhbHVlKHZhbHVlKTtcbiAgICAgICAgaWYgKGlzTnVtYmVyKHNpemVUaHJlc2hvbGQpKSB7XG4gICAgICAgICAgICB0aGlzLnNpemVUaHJlc2hvbGQgPSBzaXplVGhyZXNob2xkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHRoeVNpemVFeGNlZWRzSGFuZGxlcih2YWx1ZTogVGh5U2l6ZUV4Y2VlZHNIYW5kbGVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zaXplRXhjZWVkc0hhbmRsZXIgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaMh+WumuaWh+S7tuWQjue8gOexu+Wei++8iE1JTUVfTWFw77yJ77yM5L6L5aaCXCIueGxzLHhsc3hcIu+8jFwiW1wiLmRvY1wiLFwiLmRvY3hcIl1cIlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUFjY2VwdFR5cGUodmFsdWU6IEFycmF5PHN0cmluZz4gfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5hY2NlcHRUeXBlID0gbWltZVR5cGVDb252ZXJ0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoVEhZX1VQTE9BRF9ERUZBVUxUX09QVElPTlMpIHB1YmxpYyBkZWZhdWx0Q29uZmlnOiBUaHlVcGxvYWRDb25maWcsXG4gICAgICAgIHB1YmxpYyBuZ1pvbmU/OiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgdGhpcy5zaXplVGhyZXNob2xkID0gZGVmYXVsdENvbmZpZy5zaXplVGhyZXNob2xkO1xuICAgICAgICB0aGlzLnNpemVFeGNlZWRzSGFuZGxlciA9IGRlZmF1bHRDb25maWcuc2l6ZUV4Y2VlZHNIYW5kbGVyO1xuICAgICAgICB0aGlzLmFjY2VwdFR5cGUgPSBkZWZhdWx0Q29uZmlnLmFjY2VwdFR5cGU7XG4gICAgfVxuXG4gICAgaGFuZGxlU2l6ZUV4Y2VlZHMoZXZlbnQ6IEV2ZW50LCBmaWxlczogRmlsZVtdKSB7XG4gICAgICAgIGxldCBzaXplRXhjZWVkc0ZpbGVzID0gZmlsZXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zaXplIC8gMTAyNCA+IHRoaXMuc2l6ZVRocmVzaG9sZCk7XG4gICAgICAgIGlmIChzaXplRXhjZWVkc0ZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNpemVFeGNlZWRDb250ZXh0ID0ge1xuICAgICAgICAgICAgICAgIGZpbGVzOiBmaWxlcyxcbiAgICAgICAgICAgICAgICBleGNlZWRzRmlsZXM6IHNpemVFeGNlZWRzRmlsZXMsXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgICAgIHNpemVUaHJlc2hvbGQ6IHRoaXMuc2l6ZVRocmVzaG9sZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNpemVFeGNlZWRzSGFuZGxlcihzaXplRXhjZWVkQ29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH1cblxuICAgIHNlbGVjdEZpbGVzKGV2ZW50OiBFdmVudCwgZmlsZXM6IEZpbGVbXSwgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8VGh5RmlsZVNlbGVjdEV2ZW50Pikge1xuICAgICAgICBsZXQgc3VjY2Vzc0ZpbGVzOiBGaWxlW10gfCB2b2lkID0gZmlsZXM7XG4gICAgICAgIGlmICh0aGlzLnNpemVUaHJlc2hvbGQgJiYgdGhpcy5zaXplVGhyZXNob2xkID4gMCkge1xuICAgICAgICAgICAgc3VjY2Vzc0ZpbGVzID0gdGhpcy5oYW5kbGVTaXplRXhjZWVkcyhldmVudCwgZmlsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdWNjZXNzRmlsZXMpIHtcbiAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KHtcbiAgICAgICAgICAgICAgICBmaWxlczogc3VjY2Vzc0ZpbGVzLFxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -3,6 +3,7 @@ export const THY_UPLOAD_DEFAULT_OPTIONS = new InjectionToken('thy-uploader-defau
3
3
  export const THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER = {
4
4
  provide: THY_UPLOAD_DEFAULT_OPTIONS,
5
5
  useValue: {
6
+ acceptType: '',
6
7
  sizeThreshold: 0,
7
8
  sizeExceedsHandler: sizeExceedsHandler
8
9
  }
@@ -17,4 +18,4 @@ export function sizeExceedsHandler(event) {
17
18
  console.error(`some files(${exceedsFilesMessage}) size exceeds threshold ${event.sizeThreshold}`);
18
19
  }
19
20
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91cGxvYWQvdXBsb2FkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUy9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFrQiw4QkFBOEIsQ0FBQyxDQUFDO0FBRTlHLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHO0lBQy9DLE9BQU8sRUFBRSwwQkFBMEI7SUFDbkMsUUFBUSxFQUFFO1FBQ04sYUFBYSxFQUFFLENBQUM7UUFDaEIsa0JBQWtCLEVBQUUsa0JBQWtCO0tBQ3pDO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFnQztJQUMvRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7UUFDL0MsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsWUFBWTthQUN6QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDUixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksV0FBVyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEQsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLG1CQUFtQiw0QkFBNEIsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7S0FDckc7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGh5RmlsZVNpemVFeGNlZWRzQ29udGV4dCwgVGh5U2l6ZUV4Y2VlZHNIYW5kbGVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGh5VXBsb2FkQ29uZmlnIHtcbiAgICBzaXplVGhyZXNob2xkPzogbnVtYmVyO1xuICAgIHNpemVFeGNlZWRzSGFuZGxlcj86IFRoeVNpemVFeGNlZWRzSGFuZGxlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRIWV9VUExPQURfREVGQVVMVF9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFRoeVVwbG9hZENvbmZpZz4oJ3RoeS11cGxvYWRlci1kZWZhdWx0LW9wdGlvbnMnKTtcblxuZXhwb3J0IGNvbnN0IFRIWV9VUExPQURfREVGQVVMVF9PUFRJT05TX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IFRIWV9VUExPQURfREVGQVVMVF9PUFRJT05TLFxuICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIHNpemVUaHJlc2hvbGQ6IDAsXG4gICAgICAgIHNpemVFeGNlZWRzSGFuZGxlcjogc2l6ZUV4Y2VlZHNIYW5kbGVyXG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpemVFeGNlZWRzSGFuZGxlcihldmVudDogVGh5RmlsZVNpemVFeGNlZWRzQ29udGV4dCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgY29uc3QgZXhjZWVkc0ZpbGVzTWVzc2FnZSA9IGV2ZW50LmV4Y2VlZHNGaWxlc1xuICAgICAgICAgICAgLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYGZpbGU6ICR7aXRlbS5uYW1lfSwgc2l6ZTogJHtpdGVtLnNpemV9YDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignLCcpO1xuICAgICAgICBjb25zb2xlLmVycm9yKGBzb21lIGZpbGVzKCR7ZXhjZWVkc0ZpbGVzTWVzc2FnZX0pIHNpemUgZXhjZWVkcyB0aHJlc2hvbGQgJHtldmVudC5zaXplVGhyZXNob2xkfWApO1xuICAgIH1cbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91cGxvYWQvdXBsb2FkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVS9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFrQiw4QkFBOEIsQ0FBQyxDQUFDO0FBRTlHLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHO0lBQy9DLE9BQU8sRUFBRSwwQkFBMEI7SUFDbkMsUUFBUSxFQUFFO1FBQ04sVUFBVSxFQUFFLEVBQUU7UUFDZCxhQUFhLEVBQUUsQ0FBQztRQUNoQixrQkFBa0IsRUFBRSxrQkFBa0I7S0FDekM7Q0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWdDO0lBQy9ELElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtRQUMvQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxZQUFZO2FBQ3pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNSLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwRCxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsbUJBQW1CLDRCQUE0QixLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztLQUNyRztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUaHlGaWxlU2l6ZUV4Y2VlZHNDb250ZXh0LCBUaHlTaXplRXhjZWVkc0hhbmRsZXIgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUaHlVcGxvYWRDb25maWcge1xuICAgIHNpemVUaHJlc2hvbGQ/OiBudW1iZXI7XG4gICAgc2l6ZUV4Y2VlZHNIYW5kbGVyPzogVGh5U2l6ZUV4Y2VlZHNIYW5kbGVyO1xuICAgIGFjY2VwdFR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBUSFlfVVBMT0FEX0RFRkFVTFRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUaHlVcGxvYWRDb25maWc+KCd0aHktdXBsb2FkZXItZGVmYXVsdC1vcHRpb25zJyk7XG5cbmV4cG9ydCBjb25zdCBUSFlfVVBMT0FEX0RFRkFVTFRfT1BUSU9OU19QUk9WSURFUiA9IHtcbiAgICBwcm92aWRlOiBUSFlfVVBMT0FEX0RFRkFVTFRfT1BUSU9OUyxcbiAgICB1c2VWYWx1ZToge1xuICAgICAgICBhY2NlcHRUeXBlOiAnJyxcbiAgICAgICAgc2l6ZVRocmVzaG9sZDogMCxcbiAgICAgICAgc2l6ZUV4Y2VlZHNIYW5kbGVyOiBzaXplRXhjZWVkc0hhbmRsZXJcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2l6ZUV4Y2VlZHNIYW5kbGVyKGV2ZW50OiBUaHlGaWxlU2l6ZUV4Y2VlZHNDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICBjb25zdCBleGNlZWRzRmlsZXNNZXNzYWdlID0gZXZlbnQuZXhjZWVkc0ZpbGVzXG4gICAgICAgICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBgZmlsZTogJHtpdGVtLm5hbWV9LCBzaXplOiAke2l0ZW0uc2l6ZX1gO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcsJyk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYHNvbWUgZmlsZXMoJHtleGNlZWRzRmlsZXNNZXNzYWdlfSkgc2l6ZSBleGNlZWRzIHRocmVzaG9sZCAke2V2ZW50LnNpemVUaHJlc2hvbGR9YCk7XG4gICAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('15.2.8');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNS4yLjgnKTtcbiJdfQ==
2
+ export const VERSION = new Version('15.2.10');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNS4yLjEwJyk7XG4iXX0=