ets-fe-ng-sdk 17.0.352 → 17.0.354

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.
@@ -1,8 +1,8 @@
1
- import { Component, Input, ViewChild, signal } from '@angular/core';
1
+ import { Component, Input, ViewChild, computed } from '@angular/core';
2
2
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
3
  import { MatAutocomplete, MatAutocompleteModule, } from '@angular/material/autocomplete';
4
- import { merge, ReplaySubject } from 'rxjs';
5
- import { debounceTime, filter, startWith } from 'rxjs/operators';
4
+ import { ReplaySubject } from 'rxjs';
5
+ import { debounceTime, filter, switchMap, tap } from 'rxjs/operators';
6
6
  import { InputTD_RFComponent } from '../../input/input-td-rf.component';
7
7
  import { InputClassPipe } from '../../input/inputs-pipes.pipe';
8
8
  import { ToAnyPipe } from '../../../pipes/utility.pipe';
@@ -27,7 +27,9 @@ export class AutocompleteTdRfComponent extends InputTD_RFComponent {
27
27
  constructor(autoS) {
28
28
  super();
29
29
  this.autoS = autoS;
30
- this.filteredOptions = signal([]);
30
+ this.filteredOptions = computed(() => {
31
+ return this.autoS.filterOptions(this.valueSignal(), this.options());
32
+ });
31
33
  this.validate = true;
32
34
  this.valueChanged = new ReplaySubject();
33
35
  this.displayWith = (val) =>
@@ -66,24 +68,14 @@ export class AutocompleteTdRfComponent extends InputTD_RFComponent {
66
68
  super.change({ target: { value: r } });
67
69
  });
68
70
  };
69
- if (this.optionsFunc) {
71
+ if (this.optionsFunc)
70
72
  this.valueChanged
71
- .pipe(debounceTime(600), filter((v) => v != null && v != ''))
73
+ .pipe(tap(() => (this.loading = true)), debounceTime(600), filter((v) => v != null && v != ''), switchMap((v) => this.optionsFunc(v)))
72
74
  .subscribe((r) => {
73
- this.loading = true;
74
- this.optionsFunc(r).subscribe((options) => {
75
- this._options = options;
76
- });
77
- });
78
- this.options$.subscribe((r) => {
79
- this.filteredOptions.set(r);
75
+ // debugger
76
+ this._options = r;
80
77
  this.loading = false;
81
78
  });
82
- }
83
- else
84
- merge(this.control().valueChanges.pipe(startWith('')), this.options$).subscribe((r) => {
85
- this.filteredOptions.set(this.autoS.filterOptions(this.control().value, this.options()));
86
- });
87
79
  }
88
80
  fetchOptions($event) {
89
81
  if (this.optionsFunc) {
@@ -96,9 +88,9 @@ export class AutocompleteTdRfComponent extends InputTD_RFComponent {
96
88
  }
97
89
  selected($event) {
98
90
  this.mSelectedOptionLabel.emit(this.displayWith(this.control()?.getRawValue()));
99
- setTimeout(() => {
100
- this.filteredOptions.set(this.options());
101
- }, 600);
91
+ // setTimeout(() => {
92
+ // this.filteredOptions.set(this.options());
93
+ // }, 600);
102
94
  }
103
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AutocompleteTdRfComponent, deps: [{ token: i1.AutocompleteService }], target: i0.ɵɵFactoryTarget.Component }); }
104
96
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: AutocompleteTdRfComponent, isStandalone: true, selector: "autocomplete-td-rf,app-autocomplete-td-rf", inputs: { validate: "validate", _options: ["options", "_options"] }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: MatAutocomplete, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"row align-items-center\">\n <!-- {{options()|json}} -->\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"form()|toAny\"\n [hint]=\"hint\"\n [id]=\"idSignal()\"\n [invalidCheckbox]=\"invalidCheckboxSignal()\"\n [isRequired]=\"isRequiredSignal()\"\n [label]=\"labelSignal()\"\n [lblCl]=\"lblCl\"\n [light]=\"light\"\n [mini]=\"miniSignal()\"\n [showRequiredTag]=\"showRequiredTagSignal()\"\n [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\" />\n }\n <div class=\"{{ stackedSignal() ? 'col-12' : 'col-md' }} position-relative\">\n <form [formGroup]=\"form()|toAny\" class=\"position-relative\">\n <input\n type=\"text\"\n data-noformat=\"true\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [id]=\"idSignal()\"\n (keyup)=\"fetchOptions($event)\"\n [class]=\"inputClassSignal()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n #trigger=\"matAutocompleteTrigger\"\n [matAutocomplete]=\"auto\"\n #inp />\n @if (!disabledSignal()) {\n <i class=\"input-icon fa fa-search\" (click)=\"$event.stopPropagation(); trigger.openPanel()\"></i>\n }\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayWith\" class=\"options-w-auto\" (optionSelected)=\"selected($event)\">\n <!-- <ng-container *ngIf=\"duplicateCheck; else elseNoDulicateTemplate\">\n <mat-option\n *ngFor=\"let item of filteredOptions|removeUsedOptionsReactive:(form.parent|toAny):(form.value):'value':name;trackBy:iS.trackByValue\"\n [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"ele.innerText\" [matTooltipDisabled]=\"ele.scrollWidth<=ele.offsetWidth\"\n #ele>\n {{ item.label | appTranslate: translateOptions | async }}\n </div>\n </mat-option>\n </ng-container>\n <ng-template #elseNoDulicateTemplate>\n <mat-option\n *ngFor=\"let item of filteredOptions;trackBy:iS.trackByValue\"\n [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"ele.innerText\" [matTooltipDisabled]=\"ele.scrollWidth<=ele.offsetWidth\"\n #ele>\n {{ item.label | appTranslate: translateOptions | async }}\n </div>\n </mat-option>\n </ng-template> -->\n\n @if (showEmptyOptionSignal()) {\n <mat-option selected [value]=\"null\" class=\"empty-option\">\n {{ optionsFunc ? 'Type to search' : placeholder() }}\n </mat-option>\n }\n @for (item of filteredOptions(); track iS.trackByValue) {\n <mat-option [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"ele.innerText\" [matTooltipShowDelay]=\"1000\" [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\" #ele>\n {{ item.label | appTranslate: translateOptions() | async }}\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n @if (dirtySignal() && showValidationSignal() && showValidationIconSignal()) {\n <div [ngClass]=\"{ valid: validSignal() }\" class=\"validity-icon\"><i class=\"fa fa-check\"></i></div>\n <div [ngClass]=\"{ pending: pendingSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n <div [ngClass]=\"{ invalid: invalidSignal() }\" class=\"validity-icon\"><i class=\"fa fa-times\"></i></div>\n }\n @if (loading) {\n <div class=\"d-flex text-primary me-1 validity-icon\"><i class=\"fa fa-spinner fa-spin\"></i></div>\n }\n </form>\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message [label]=\"labelSignal()\" [control]=\"control()\" />\n}\n", styles: ["i.input-icon{position:absolute;top:15px;right:7px;opacity:.4;font-size:10px}.option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: InputLabelComponent, selector: "app-input-label", inputs: ["colored", "form", "hint", "inlineHint", "id", "invalidCheckbox", "isRequired", "label", "labelLink", "lblCl", "light", "mini", "showLabel", "showRequiredTag", "small", "stacked", "theme", "xsmall"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }, { kind: "pipe", type: TranslatePipe, name: "appTranslate" }] }); }
@@ -130,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
130
122
  type: ViewChild,
131
123
  args: [MatAutocomplete]
132
124
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXRkLXJmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLXRkLXJmL2F1dG9jb21wbGV0ZS10ZC1yZi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBbUIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUNMLGVBQWUsRUFFZixxQkFBcUIsR0FDdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLGdCQUFnQixF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O3FCQUNmO3dGQUlRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ3lCLFFBQVE7c0JBQXRDLEtBQUs7dUJBQUMsU0FBUztnQkFLWSxlQUFlO3NCQUExQyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE1hdEF1dG9jb21wbGV0ZSxcbiAgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCxcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgbWVyZ2UsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElPcHRpb24gfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRURF9SRkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0LXRkLXJmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tICcuLi9hdXRvY29tcGxldGUuc2VydmljZSc7XG5pbXBvcnQgeyBJbnB1dENsYXNzUGlwZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0cy1waXBlcy5waXBlJztcbmltcG9ydCB7IFRvQW55UGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRPcHRpb24sIE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0LWxhYmVsL2lucHV0LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0ZvciwgTmdDbGFzcywgQXN5bmNQaXBlLCBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1dG9jb21wbGV0ZS10ZC1yZixhcHAtYXV0b2NvbXBsZXRlLXRkLXJmJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIElucHV0TGFiZWxDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxKc29uUGlwZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTmdDbGFzcyxcbiAgICBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgVG9BbnlQaXBlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgSW5wdXRDbGFzc1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVRkUmZDb21wb25lbnQ8VE9wdGlvbj4gZXh0ZW5kcyBJbnB1dFREX1JGQ29tcG9uZW50PFRPcHRpb24+IHtcbiAgZmlsdGVyZWRPcHRpb25zID0gc2lnbmFsPElPcHRpb25bXT4oW10pO1xuICBASW5wdXQoKSB2YWxpZGF0ZSA9IHRydWU7XG4gIEBJbnB1dCgnb3B0aW9ucycpIG92ZXJyaWRlIHNldCBfb3B0aW9ucyh2OiBUT3B0aW9uW10pIHtcbiAgICBzdXBlci5fb3B0aW9ucyA9IHY7XG4gICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlUmVmICYmIHRoaXMuY29udHJvbCgpPy5nZXRSYXdWYWx1ZSgpKVxuICAgICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUodGhpcy5jb250cm9sKCk/LmdldFJhd1ZhbHVlKCksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSkgYXV0b0NvbXBsZXRlUmVmOiBNYXRBdXRvY29tcGxldGU7XG5cbiAgcHJvdGVjdGVkIHZhbHVlQ2hhbmdlZCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0b1M6IEF1dG9jb21wbGV0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBsZXQgdlM6IFN1YnNjcmlwdGlvbjtcbiAgICB0aGlzLm9uQ29udHJvbFNldCA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5jb250cm9sKCk/Lmhhc1ZhbGlkYXRvcih0aGlzLmluY2x1ZGVzT3B0aW9uKSlcbiAgICAgICAgdGhpcy5jb250cm9sKCk/LmFkZFZhbGlkYXRvcnModGhpcy5pbmNsdWRlc09wdGlvbik7XG4gICAgICBlbHNlIGRlYnVnZ2VyO1xuICAgICAgdlM/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB2UyA9IHRoaXMuY29udHJvbCgpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgIC8vIGRlYnVnZ2VyXG4gICAgICAgIHN1cGVyLmNoYW5nZSh7IHRhcmdldDogeyB2YWx1ZTogciB9IH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICBpZiAodGhpcy5vcHRpb25zRnVuYykge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDYwMCksXG4gICAgICAgICAgZmlsdGVyKCh2KSA9PiB2ICE9IG51bGwgJiYgdiAhPSAnJyksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5vcHRpb25zRnVuYyhyKS5zdWJzY3JpYmUoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMub3B0aW9ucyQuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnNldChyKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2VcbiAgICAgIG1lcmdlKHRoaXMuY29udHJvbCgpLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCgnJykpLCB0aGlzLm9wdGlvbnMkKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMuc2V0KHRoaXMuYXV0b1MuZmlsdGVyT3B0aW9ucyh0aGlzLmNvbnRyb2woKS52YWx1ZSwgdGhpcy5vcHRpb25zKCkpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hPcHRpb25zKCRldmVudDogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zRnVuYykge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VkLm5leHQodGhpcy5jb250cm9sKCk/LmdldFJhd1ZhbHVlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgfVxuXG4gIHNlbGVjdGVkKCRldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIHRoaXMubVNlbGVjdGVkT3B0aW9uTGFiZWwuZW1pdCh0aGlzLmRpc3BsYXlXaXRoKHRoaXMuY29udHJvbCgpPy5nZXRSYXdWYWx1ZSgpKSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5zZXQodGhpcy5vcHRpb25zKCkpO1xuICAgIH0sIDYwMCk7XG4gIH1cblxuICBkaXNwbGF5V2l0aCA9ICh2YWw6IGFueSkgPT5cbiAgICAvLyB7XG4gICAgLy8gaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgdmFsIGluc3RhbmNlb2YgTWF0T3B0aW9uXG4gICAgICA/IHRoaXMuZGlzcGxheVdpdGgodmFsLnZhbHVlKVxuICAgICAgOiB0aGlzLmRvZXNPcHRpb25FeGlzdCh2YWwpPy5sYWJlbCB8fCB2YWw7XG4gIC8vIH07XG5cbiAgaW5jbHVkZXNPcHRpb24gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgY29uc3QgdmFsID0gY29udHJvbD8udmFsdWU7XG4gICAgaWYgKCF2YWwpIHJldHVybiBudWxsO1xuICAgIGlmICghdGhpcy5vcHRpb25zKCkgfHwgdGhpcy5vcHRpb25zKCkubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGlmICh0aGlzLmRvZXNPcHRpb25FeGlzdCh2YWwpKSByZXR1cm4gbnVsbDtcbiAgICBlbHNlIHJldHVybiB7IG5vdEZvdW5kOiB0cnVlIH07XG4gIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICA8IS0tIHt7b3B0aW9ucygpfGpzb259fSAtLT5cbiAgQGlmIChjb21wdXRlZFNob3dMYWJlbCgpKSB7XG4gICAgPGFwcC1pbnB1dC1sYWJlbFxuICAgICAgW2NvbG9yZWRdPVwiY29sb3JlZFNpZ25hbCgpXCJcbiAgICAgIFtmb3JtXT1cImZvcm0oKXx0b0FueVwiXG4gICAgICBbaGludF09XCJoaW50XCJcbiAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgIFtpbnZhbGlkQ2hlY2tib3hdPVwiaW52YWxpZENoZWNrYm94U2lnbmFsKClcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwiaXNSZXF1aXJlZFNpZ25hbCgpXCJcbiAgICAgIFtsYWJlbF09XCJsYWJlbFNpZ25hbCgpXCJcbiAgICAgIFtsYmxDbF09XCJsYmxDbFwiXG4gICAgICBbbGlnaHRdPVwibGlnaHRcIlxuICAgICAgW21pbmldPVwibWluaVNpZ25hbCgpXCJcbiAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2hvd1JlcXVpcmVkVGFnU2lnbmFsKClcIlxuICAgICAgW3Nob3dMYWJlbF09XCJzaG93TGFiZWxTaWduYWwoKVwiXG4gICAgICBbc21hbGxdPVwic21hbGxTaWduYWwoKVwiXG4gICAgICBbc3RhY2tlZF09XCJzdGFja2VkU2lnbmFsKClcIlxuICAgICAgW3RoZW1lXT1cInRoZW1lXCJcbiAgICAgIFt4c21hbGxdPVwieHNtYWxsXCIgLz5cbiAgfVxuICA8ZGl2IGNsYXNzPVwie3sgc3RhY2tlZFNpZ25hbCgpID8gJ2NvbC0xMicgOiAnY29sLW1kJyB9fSBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybSgpfHRvQW55XCIgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgZGF0YS1ub2Zvcm1hdD1cInRydWVcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWVTdHJTaWduYWwoKVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIoKSB9fVwiXG4gICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgKGtleXVwKT1cImZldGNoT3B0aW9ucygkZXZlbnQpXCJcbiAgICAgICAgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFNpZ25hbCgpXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5U2lnbmFsKClcIlxuICAgICAgICAjdHJpZ2dlcj1cIm1hdEF1dG9jb21wbGV0ZVRyaWdnZXJcIlxuICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAjaW5wIC8+XG4gICAgICBAaWYgKCFkaXNhYmxlZFNpZ25hbCgpKSB7XG4gICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaWNvbiBmYSBmYS1zZWFyY2hcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB0cmlnZ2VyLm9wZW5QYW5lbCgpXCI+PC9pPlxuICAgICAgfVxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVdpdGhcIiBjbGFzcz1cIm9wdGlvbnMtdy1hdXRvXCIgKG9wdGlvblNlbGVjdGVkKT1cInNlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiZHVwbGljYXRlQ2hlY2s7IGVsc2UgZWxzZU5vRHVsaWNhdGVUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZE9wdGlvbnN8cmVtb3ZlVXNlZE9wdGlvbnNSZWFjdGl2ZTooZm9ybS5wYXJlbnR8dG9BbnkpOihmb3JtLnZhbHVlKTondmFsdWUnOm5hbWU7dHJhY2tCeTppUy50cmFja0J5VmFsdWVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIiBbbWF0VG9vbHRpcF09XCJlbGUuaW5uZXJUZXh0XCIgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGg8PWVsZS5vZmZzZXRXaWR0aFwiXG4gICAgICAgICAgICAgICNlbGU+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCBhcHBUcmFuc2xhdGU6IHRyYW5zbGF0ZU9wdGlvbnMgfCBhc3luYyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlTm9EdWxpY2F0ZVRlbXBsYXRlPlxuICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZE9wdGlvbnM7dHJhY2tCeTppUy50cmFja0J5VmFsdWVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIiBbbWF0VG9vbHRpcF09XCJlbGUuaW5uZXJUZXh0XCIgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGg8PWVsZS5vZmZzZXRXaWR0aFwiXG4gICAgICAgICAgICAgICNlbGU+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCBhcHBUcmFuc2xhdGU6IHRyYW5zbGF0ZU9wdGlvbnMgfCBhc3luYyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cblxuICAgICAgICBAaWYgKHNob3dFbXB0eU9wdGlvblNpZ25hbCgpKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gc2VsZWN0ZWQgW3ZhbHVlXT1cIm51bGxcIiBjbGFzcz1cImVtcHR5LW9wdGlvblwiPlxuICAgICAgICAgICAge3sgb3B0aW9uc0Z1bmMgPyAnVHlwZSB0byBzZWFyY2gnIDogcGxhY2Vob2xkZXIoKSB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkT3B0aW9ucygpOyB0cmFjayBpUy50cmFja0J5VmFsdWUpIHtcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiIFttYXRUb29sdGlwXT1cImVsZS5pbm5lclRleHRcIiBbbWF0VG9vbHRpcFNob3dEZWxheV09XCIxMDAwXCIgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGggPD0gZWxlLm9mZnNldFdpZHRoXCIgI2VsZT5cbiAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IGFwcFRyYW5zbGF0ZTogdHJhbnNsYXRlT3B0aW9ucygpIHwgYXN5bmMgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgQGlmIChkaXJ0eVNpZ25hbCgpICYmIHNob3dWYWxpZGF0aW9uU2lnbmFsKCkgJiYgc2hvd1ZhbGlkYXRpb25JY29uU2lnbmFsKCkpIHtcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IHZhbGlkOiB2YWxpZFNpZ25hbCgpIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj48aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPjwvZGl2PlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgcGVuZGluZzogcGVuZGluZ1NpZ25hbCgpIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNwaW5uZXIgZmEtc3BpblwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyBpbnZhbGlkOiBpbnZhbGlkU2lnbmFsKCkgfVwiIGNsYXNzPVwidmFsaWRpdHktaWNvblwiPjxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+PC9kaXY+XG4gICAgICB9XG4gICAgICBAaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB0ZXh0LXByaW1hcnkgbWUtMSB2YWxpZGl0eS1pY29uXCI+PGkgY2xhc3M9XCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+PC9kaXY+XG4gICAgICB9XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvZGl2PlxuQGlmIChzaG93VmFsaWRhdGlvbk1zZ1NpZ25hbCgpKSB7XG4gIDxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlIFtsYWJlbF09XCJsYWJlbFNpZ25hbCgpXCIgW2NvbnRyb2xdPVwiY29udHJvbCgpXCIgLz5cbn1cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXRkLXJmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLXRkLXJmL2F1dG9jb21wbGV0ZS10ZC1yZi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBbUIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUNMLGVBQWUsRUFFZixxQkFBcUIsR0FDdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQVMsYUFBYSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLGdCQUFnQixF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LEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEYscUJBQXFCO1FBQ3JCLDhDQUE4QztRQUM5QyxXQUFXO0lBQ2IsQ0FBQzs4R0E5RFUseUJBQXlCO2tHQUF6Qix5QkFBeUIsMk5BVXpCLGVBQWUsdUVDdEQ1Qiw2OEhBMEZBLDBNRDdESSxtQkFBbUIsNFFBQ25CLFdBQVcsdzNCQUNYLG1CQUFtQiwrVUFDbkIscUJBQXFCLHcxQkFFckIsZUFBZSw4QkFDZixnQkFBZ0IsNlRBQ2hCLE9BQU8sb0ZBQ1AsMEJBQTBCLHNOQUMxQixTQUFTLHlDQUNULFNBQVMseUNBQ1QsYUFBYTs7MkZBSUoseUJBQXlCO2tCQXRCckMsU0FBUzsrQkFDRSwyQ0FBMkMsY0FHekMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLG1CQUFtQixFQUFDLFFBQVE7d0JBQzVCLHFCQUFxQjt3QkFDckIsS0FBSzt3QkFDTCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCwwQkFBMEI7d0JBQzFCLFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxhQUFhO3dCQUNiLGNBQWM7cUJBQ2Y7d0ZBTVEsUUFBUTtzQkFBaEIsS0FBSztnQkFDeUIsUUFBUTtzQkFBdEMsS0FBSzt1QkFBQyxTQUFTO2dCQUtZLGVBQWU7c0JBQTFDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE1hdEF1dG9jb21wbGV0ZSxcbiAgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCxcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgbWVyZ2UsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJT3B0aW9uIH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0VERfUkZDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC10ZC1yZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5wdXRDbGFzc1BpcGUgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dHMtcGlwZXMucGlwZSc7XG5pbXBvcnQgeyBUb0FueVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0T3B0aW9uLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IElucHV0TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC1sYWJlbC9pbnB1dC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nQ2xhc3MsIEFzeW5jUGlwZSwgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXRvY29tcGxldGUtdGQtcmYsYXBwLWF1dG9jb21wbGV0ZS10ZC1yZicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBJbnB1dExhYmVsQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsSnNvblBpcGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE5nRm9yLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRvQW55UGlwZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIElucHV0Q2xhc3NQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVUZFJmQ29tcG9uZW50PFRPcHRpb24+IGV4dGVuZHMgSW5wdXRURF9SRkNvbXBvbmVudDxUT3B0aW9uPiB7XG4gIGZpbHRlcmVkT3B0aW9ucyA9IGNvbXB1dGVkPElPcHRpb25bXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmF1dG9TLmZpbHRlck9wdGlvbnModGhpcy52YWx1ZVNpZ25hbCgpLCB0aGlzLm9wdGlvbnMoKSk7XG4gIH0pO1xuICBASW5wdXQoKSB2YWxpZGF0ZSA9IHRydWU7XG4gIEBJbnB1dCgnb3B0aW9ucycpIG92ZXJyaWRlIHNldCBfb3B0aW9ucyh2OiBUT3B0aW9uW10pIHtcbiAgICBzdXBlci5fb3B0aW9ucyA9IHY7XG4gICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlUmVmICYmIHRoaXMuY29udHJvbCgpPy5nZXRSYXdWYWx1ZSgpKVxuICAgICAgdGhpcy5jb250cm9sKCkuc2V0VmFsdWUodGhpcy5jb250cm9sKCk/LmdldFJhd1ZhbHVlKCksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSkgYXV0b0NvbXBsZXRlUmVmOiBNYXRBdXRvY29tcGxldGU7XG5cbiAgcHJvdGVjdGVkIHZhbHVlQ2hhbmdlZCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0b1M6IEF1dG9jb21wbGV0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBsZXQgdlM6IFN1YnNjcmlwdGlvbjtcbiAgICB0aGlzLm9uQ29udHJvbFNldCA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5jb250cm9sKCk/Lmhhc1ZhbGlkYXRvcih0aGlzLmluY2x1ZGVzT3B0aW9uKSlcbiAgICAgICAgdGhpcy5jb250cm9sKCk/LmFkZFZhbGlkYXRvcnModGhpcy5pbmNsdWRlc09wdGlvbik7XG4gICAgICBlbHNlIGRlYnVnZ2VyO1xuICAgICAgdlM/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB2UyA9IHRoaXMuY29udHJvbCgpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgIC8vIGRlYnVnZ2VyXG4gICAgICAgIHN1cGVyLmNoYW5nZSh7IHRhcmdldDogeyB2YWx1ZTogciB9IH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICBpZiAodGhpcy5vcHRpb25zRnVuYykgIFxuICAgICAgdGhpcy52YWx1ZUNoYW5nZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+ICh0aGlzLmxvYWRpbmcgPSB0cnVlKSksXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDYwMCksXG4gICAgICAgICAgZmlsdGVyKCh2KSA9PiB2ICE9IG51bGwgJiYgdiAhPSAnJyksXG4gICAgICAgICAgc3dpdGNoTWFwKCh2KSA9PiB0aGlzLm9wdGlvbnNGdW5jKHYpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgICAgLy8gZGVidWdnZXJcbiAgICAgICAgICB0aGlzLl9vcHRpb25zID0gcjtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7ICBcbiAgfVxuXG4gIGZldGNoT3B0aW9ucygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMub3B0aW9uc0Z1bmMpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlZC5uZXh0KHRoaXMuY29udHJvbCgpPy5nZXRSYXdWYWx1ZSgpKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gIH1cblxuICBzZWxlY3RlZCgkZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICB0aGlzLm1TZWxlY3RlZE9wdGlvbkxhYmVsLmVtaXQodGhpcy5kaXNwbGF5V2l0aCh0aGlzLmNvbnRyb2woKT8uZ2V0UmF3VmFsdWUoKSkpO1xuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIC8vICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMuc2V0KHRoaXMub3B0aW9ucygpKTtcbiAgICAvLyB9LCA2MDApO1xuICB9XG5cbiAgZGlzcGxheVdpdGggPSAodmFsOiBhbnkpID0+XG4gICAgLy8ge1xuICAgIC8vIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIHZhbCBpbnN0YW5jZW9mIE1hdE9wdGlvblxuICAgICAgPyB0aGlzLmRpc3BsYXlXaXRoKHZhbC52YWx1ZSlcbiAgICAgIDogdGhpcy5kb2VzT3B0aW9uRXhpc3QodmFsKT8ubGFiZWwgfHwgdmFsO1xuICAvLyB9O1xuXG4gIGluY2x1ZGVzT3B0aW9uID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2w/LnZhbHVlO1xuICAgIGlmICghdmFsKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIXRoaXMub3B0aW9ucygpIHx8IHRoaXMub3B0aW9ucygpLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG4gICAgLy8gZGVidWdnZXJcbiAgICBpZiAodGhpcy5kb2VzT3B0aW9uRXhpc3QodmFsKSkgcmV0dXJuIG51bGw7XG4gICAgZWxzZSByZXR1cm4geyBub3RGb3VuZDogdHJ1ZSB9O1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgPCEtLSB7e29wdGlvbnMoKXxqc29ufX0gLS0+XG4gIEBpZiAoY29tcHV0ZWRTaG93TGFiZWwoKSkge1xuICAgIDxhcHAtaW5wdXQtbGFiZWxcbiAgICAgIFtjb2xvcmVkXT1cImNvbG9yZWRTaWduYWwoKVwiXG4gICAgICBbZm9ybV09XCJmb3JtKCl8dG9BbnlcIlxuICAgICAgW2hpbnRdPVwiaGludFwiXG4gICAgICBbaWRdPVwiaWRTaWduYWwoKVwiXG4gICAgICBbaW52YWxpZENoZWNrYm94XT1cImludmFsaWRDaGVja2JveFNpZ25hbCgpXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cImlzUmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICBbbGFiZWxdPVwibGFiZWxTaWduYWwoKVwiXG4gICAgICBbbGJsQ2xdPVwibGJsQ2xcIlxuICAgICAgW2xpZ2h0XT1cImxpZ2h0XCJcbiAgICAgIFttaW5pXT1cIm1pbmlTaWduYWwoKVwiXG4gICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNob3dSZXF1aXJlZFRhZ1NpZ25hbCgpXCJcbiAgICAgIFtzaG93TGFiZWxdPVwic2hvd0xhYmVsU2lnbmFsKClcIlxuICAgICAgW3NtYWxsXT1cInNtYWxsU2lnbmFsKClcIlxuICAgICAgW3N0YWNrZWRdPVwic3RhY2tlZFNpZ25hbCgpXCJcbiAgICAgIFt0aGVtZV09XCJ0aGVtZVwiXG4gICAgICBbeHNtYWxsXT1cInhzbWFsbFwiIC8+XG4gIH1cbiAgPGRpdiBjbGFzcz1cInt7IHN0YWNrZWRTaWduYWwoKSA/ICdjb2wtMTInIDogJ2NvbC1tZCcgfX0gcG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm0oKXx0b0FueVwiIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGRhdGEtbm9mb3JtYXQ9XCJ0cnVlXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJuYW1lU3RyU2lnbmFsKClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyKCkgfX1cIlxuICAgICAgICBbaWRdPVwiaWRTaWduYWwoKVwiXG4gICAgICAgIChrZXl1cCk9XCJmZXRjaE9wdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgIFtjbGFzc109XCJpbnB1dENsYXNzU2lnbmFsKClcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVNpZ25hbCgpXCJcbiAgICAgICAgI3RyaWdnZXI9XCJtYXRBdXRvY29tcGxldGVUcmlnZ2VyXCJcbiAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgI2lucCAvPlxuICAgICAgQGlmICghZGlzYWJsZWRTaWduYWwoKSkge1xuICAgICAgICA8aSBjbGFzcz1cImlucHV0LWljb24gZmEgZmEtc2VhcmNoXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdHJpZ2dlci5vcGVuUGFuZWwoKVwiPjwvaT5cbiAgICAgIH1cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlXaXRoXCIgY2xhc3M9XCJvcHRpb25zLXctYXV0b1wiIChvcHRpb25TZWxlY3RlZCk9XCJzZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImR1cGxpY2F0ZUNoZWNrOyBlbHNlIGVsc2VOb0R1bGljYXRlVGVtcGxhdGVcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRPcHRpb25zfHJlbW92ZVVzZWRPcHRpb25zUmVhY3RpdmU6KGZvcm0ucGFyZW50fHRvQW55KTooZm9ybS52YWx1ZSk6J3ZhbHVlJzpuYW1lO3RyYWNrQnk6aVMudHJhY2tCeVZhbHVlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uXCIgW21hdFRvb2x0aXBdPVwiZWxlLmlubmVyVGV4dFwiIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiZWxlLnNjcm9sbFdpZHRoPD1lbGUub2Zmc2V0V2lkdGhcIlxuICAgICAgICAgICAgICAjZWxlPlxuICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIHwgYXBwVHJhbnNsYXRlOiB0cmFuc2xhdGVPcHRpb25zIHwgYXN5bmMgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZU5vRHVsaWNhdGVUZW1wbGF0ZT5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRPcHRpb25zO3RyYWNrQnk6aVMudHJhY2tCeVZhbHVlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uXCIgW21hdFRvb2x0aXBdPVwiZWxlLmlubmVyVGV4dFwiIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiZWxlLnNjcm9sbFdpZHRoPD1lbGUub2Zmc2V0V2lkdGhcIlxuICAgICAgICAgICAgICAjZWxlPlxuICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIHwgYXBwVHJhbnNsYXRlOiB0cmFuc2xhdGVPcHRpb25zIHwgYXN5bmMgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT4gLS0+XG5cbiAgICAgICAgQGlmIChzaG93RW1wdHlPcHRpb25TaWduYWwoKSkge1xuICAgICAgICAgIDxtYXQtb3B0aW9uIHNlbGVjdGVkIFt2YWx1ZV09XCJudWxsXCIgY2xhc3M9XCJlbXB0eS1vcHRpb25cIj5cbiAgICAgICAgICAgIHt7IG9wdGlvbnNGdW5jID8gJ1R5cGUgdG8gc2VhcmNoJyA6IHBsYWNlaG9sZGVyKCkgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAoaXRlbSBvZiBmaWx0ZXJlZE9wdGlvbnMoKTsgdHJhY2sgaVMudHJhY2tCeVZhbHVlKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIiBbbWF0VG9vbHRpcF09XCJlbGUuaW5uZXJUZXh0XCIgW21hdFRvb2x0aXBTaG93RGVsYXldPVwiMTAwMFwiIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiZWxlLnNjcm9sbFdpZHRoIDw9IGVsZS5vZmZzZXRXaWR0aFwiICNlbGU+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCBhcHBUcmFuc2xhdGU6IHRyYW5zbGF0ZU9wdGlvbnMoKSB8IGFzeW5jIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgIEBpZiAoZGlydHlTaWduYWwoKSAmJiBzaG93VmFsaWRhdGlvblNpZ25hbCgpICYmIHNob3dWYWxpZGF0aW9uSWNvblNpZ25hbCgpKSB7XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyB2YWxpZDogdmFsaWRTaWduYWwoKSB9XCIgY2xhc3M9XCJ2YWxpZGl0eS1pY29uXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiPjwvaT48L2Rpdj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IHBlbmRpbmc6IHBlbmRpbmdTaWduYWwoKSB9XCIgY2xhc3M9XCJ2YWxpZGl0eS1pY29uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgaW52YWxpZDogaW52YWxpZFNpZ25hbCgpIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj48aSBjbGFzcz1cImZhIGZhLXRpbWVzXCI+PC9pPjwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdGV4dC1wcmltYXJ5IG1lLTEgdmFsaWRpdHktaWNvblwiPjxpIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBmYS1zcGluXCI+PC9pPjwvZGl2PlxuICAgICAgfVxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L2Rpdj5cbkBpZiAoc2hvd1ZhbGlkYXRpb25Nc2dTaWduYWwoKSkge1xuICA8YXBwLXZhbGlkYXRpb24tbWVzc2FnZSBbbGFiZWxdPVwibGFiZWxTaWduYWwoKVwiIFtjb250cm9sXT1cImNvbnRyb2woKVwiIC8+XG59XG4iXX0=
@@ -120,7 +120,7 @@ export class InputBase {
120
120
  // @ViewChild('dateInput') dateInputRef?: DateInputComponent;
121
121
  this.control = toSignal(merge(toObservable(this.form), toObservable(this.name)).pipe(filter(() => this.form() != null && !!this.name() != null), map(() => this.form().controls[this.name()]), tap((control) => {
122
122
  this.onControlSet?.();
123
- console.log('control changed', control);
123
+ // console.log('control changed', control);
124
124
  })));
125
125
  this.formFieldNotifier = toSignal(toObservable(this.control).pipe(
126
126
  // tap((control) => {
@@ -251,4 +251,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
251
251
  }], mchange: [{
252
252
  type: Output
253
253
  }] } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMkMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFnQixTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBS3BFLE1BQU0sT0FBTyxTQUFTO0lBd0RwQixJQUE0QixjQUFjLENBQUMsQ0FBVTtRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFhLFFBQVEsQ0FBQyxDQUFVO1FBQzlCLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxF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dCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTW9kZWxTaWduYWwsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSU9wdGlvbiwgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi9pbnB1dC5zZXJ2aWNlJztcbmltcG9ydCB7IElPYmplY3RMaXRlcmFsLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBtZXJnZSwgbWVyZ2VNYXAsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbkxhYmVsVHlwZSB9IGZyb20gJy4vaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEJhc2U8XG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4gIFRDb250cm9sID0gYW55LFxuICBUT3B0aW9uID0gYW55LFxuPiB7XG4gIHJlYWRvbmx5IGRhdGVJbnB1dFJlZiA9IHZpZXdDaGlsZDxEYXRlSW5wdXRDb21wb25lbnQ+KERhdGVJbnB1dENvbXBvbmVudCk7XG4gIHJlYWRvbmx5IGNscyA9IGlucHV0PHN0cmluZz4obnVsbCk7XG4gIHJlYWRvbmx5IGRvbnRGb3JtYXRBc0lucHV0U2lnbmFsID0gaW5wdXQ8Ym9vbGVhbj4obnVsbCwgeyBhbGlhczogJ2RvbnRGb3JtYXRBc0lucHV0JyB9KTtcbiAgcmVhZG9ubHkgZHVwbGljYXRlQ2hlY2tTaWduYWwgPSBpbnB1dDxib29sZWFuPihudWxsLCB7IGFsaWFzOiAnZHVwbGljYXRlQ2hlY2snIH0pO1xuICByZWFkb25seSBwcmVzZXRWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgZW5kTGFiZWxTaWduYWwgPSBpbnB1dDxzdHJpbmc+KG51bGwsIHsgYWxpYXM6ICdlbmRMYWJlbCcgfSk7XG4gIHJlYWRvbmx5IGVuZExhYmVsVG9vbHRpcFNpZ25hbCA9IGlucHV0PHN0cmluZz4obnVsbCwgeyBhbGlhczogJ2VuZExhYmVsVG9vbHRpcCcgfSk7XG4gIHJlYWRvbmx5IGlkU2lnbmFsID0gaW5wdXQoJ2lkJyArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApLCB7IGFsaWFzOiAnaWQnIH0pO1xuICByZWFkb25seSBpbnB1dENvbnRDbGFzc1NpZ25hbCA9IGlucHV0PHN0cmluZz4obnVsbCwgeyBhbGlhczogJ2lucHV0Q29udENsYXNzJyB9KTtcbiAgcmVhZG9ubHkgbGFiZWxTaWduYWwgPSBpbnB1dDxzdHJpbmc+KG51bGwsIHsgYWxpYXM6ICdsYWJlbCcgfSk7XG4gIHJlYWRvbmx5IG5vRm9ybWF0ID0gaW5wdXQ8Ym9vbGVhbj4obnVsbCk7XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPihudWxsKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHlTaWduYWwgPSBpbnB1dDxib29sZWFuIHwgbnVsbD4obnVsbCwgeyBhbGlhczogJ3JlYWRvbmx5JyB9KTtcbiAgcmVhZG9ubHkgcmVxdWlyZWRTaWduYWwgPSBpbnB1dDxib29sZWFuIHwgbnVsbD4obnVsbCwgeyBhbGlhczogJ3JlcXVpcmVkJyB9KTtcbiAgcmVhZG9ubHkgc2hvd1JlcXVpcmVkVGFnU2lnbmFsID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSwgeyBhbGlhczogJ3Nob3dSZXF1aXJlZFRhZycgfSk7XG4gIHJlYWRvbmx5IHN1ZmZpeCA9IGlucHV0PHN0cmluZz4obnVsbCk7XG4gIHJlYWRvbmx5IHRleHRhcmVhUm93c1NpZ25hbCA9IGlucHV0PG51bWJlcj4obnVsbCwgeyBhbGlhczogJ3RleHRhcmVhUm93cycgfSk7XG4gIHJlYWRvbmx5IHRyYW5zbGF0ZU9wdGlvbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgY29tcHV0ZWROb0Zvcm1hdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBub0Zvcm1hdCA9IHRoaXMubm9Gb3JtYXQoKSxcbiAgICAgIHR5cGVTaWduYWwgPSB0aGlzLnR5cGVTaWduYWwoKSxcbiAgICAgIHNob3dWYWxpZGF0aW9uU2lnbmFsID0gdGhpcy5zaG93VmFsaWRhdGlvblNpZ25hbCgpLFxuICAgICAgc2hvd1ZhbGlkYXRpb25JY29uU2lnbmFsID0gdGhpcy5zaG93VmFsaWRhdGlvbkljb25TaWduYWwoKSxcbiAgICAgIGxhYmVsU2lnbmFsID0gdGhpcy5sYWJlbFNpZ25hbCgpO1xuICAgIHJldHVybiBub0Zvcm1hdCA9PSBudWxsXG4gICAgICA/IHR5cGVTaWduYWwgPT0gJ3ZpZXdlcicgfHxcbiAgICAgICAgICBzaG93VmFsaWRhdGlvblNpZ25hbCB8fFxuICAgICAgICAgIHNob3dWYWxpZGF0aW9uSWNvblNpZ25hbCB8fFxuICAgICAgICAgIGxhYmVsU2lnbmFsPy5pbmNsdWRlcygnY29kZScpXG4gICAgICA6IG5vRm9ybWF0O1xuICB9KTtcblxuICAvKiogRm9ybUdyb3VwICovXG4gIHJlYWRvbmx5IGZvcm0gPSBtb2RlbDxcbiAgICBGb3JtR3JvdXA8VEZvcm1Hcm91cD4gfCBGb3JtQ29udHJvbDxUQ29udHJvbD4gfCBBYnN0cmFjdENvbnRyb2w8VENvbnRyb2w+XG4gID4oKTtcblxuICAvKiogU2hvdyB0aGUgaGludCB3aXRob3V0IHRoZSB0b29sdGlwICovXG4gIEBJbnB1dCgpIGlubGluZUhpbnQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGF1dG9QaWNrVmFsdWVGaWVsZDogYm9vbGVhbjtcbiAgQElucHV0KCkgbGFiZWxGaWVsZDoga2V5b2YgVE9wdGlvbjtcbiAgQElucHV0KCkgbGFiZWxUeXBlOiBPcHRpb25MYWJlbFR5cGU7IC8vdXNlIHRoaXMgdG8gcGljayBhIHByZXNldCB2YWx1ZSBsYWJlbCBncm91cCBmb3IgdGhlIG9wdGlvbnNcbiAgQElucHV0KCkgb3B0aW9uRm9ybWF0dGVyOiAoaXRlbTogVE9wdGlvbikgPT4gc3RyaW5nO1xuXG4gIC8qKiBGb3JtQ29udHJvbE5hbWUgKi9cbiAgbmFtZSA9IG1vZGVsPGtleW9mIFRGb3JtR3JvdXA+KCk7XG4gIGluZGV0ZXJtaW5hdGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCdpbmRldGVybWluYXRlJykgc2V0IF9pbmRldGVybWluYXRlKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSB2O1xuICAgIGlmICh2KSB0aGlzLmNvbnRyb2woKT8ucGF0Y2hWYWx1ZShmYWxzZSk7XG4gIH1cbiAgQElucHV0KCkgc2V0IG1heFRvZGF5KHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodikgdGhpcy5tYXhTaWduYWwuc2V0KG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSk7XG4gIH1cbiAgQElucHV0KCkgc2V0IG1pblRvZGF5KHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodikgdGhpcy5taW5TaWduYWwuc2V0KG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSk7XG4gIH1cbiAgQElucHV0KCkgdmFsdWVGaWVsZDoga2V5b2YgVE9wdGlvbjsgLy91c2UgdGhpcyB0byBjaG9vc2UgYSBmaWVsZCBpbiB0aGUgb3B0aW9uIGZvciBtb2RlbGluZ1xuICByZWFkb25seSBwcmVmaXhTaWduYWwgPSBtb2RlbDxzdHJpbmc+KG51bGwsIHsgYWxpYXM6ICdwcmVmaXgnIH0pO1xuICByZWFkb25seSBtaW5pU2lnbmFsID0gbW9kZWw8Ym9vbGVhbj4obnVsbCwgeyBhbGlhczogJ21pbmknIH0pO1xuICByZWFkb25seSBpbnBDbFNpZ25hbCA9IG1vZGVsPHN0cmluZz4oJ2NvbnRyb2wtYmctZ3JheScsIHsgYWxpYXM6ICdpbnBDbCcgfSk7XG4gIHJlYWRvbmx5IHNob3dFbXB0eU9wdGlvblNpZ25hbCA9IG1vZGVsPGJvb2xlYW4+KHRydWUsIHtcbiAgICBhbGlhczogJ3Nob3dFbXB0eU9wdGlvbicsXG4gIH0pO1xuICByZWFkb25seSBzaG93TGFiZWxTaWduYWwgPSBtb2RlbDxib29sZWFuPih0cnVlLCB7XG4gICAgYWxpYXM6ICdzaG93TGFiZWwnLFxuICB9KTtcbiAgcmVhZG9ubHkgc2hvd1ZhbGlkYXRpb25TaWduYWwgPSBtb2RlbDxib29sZWFuPihmYWxzZSwge1xuICAgIGFsaWFzOiAnc2hvd1ZhbGlkYXRpb24nLFxuICB9KTtcbiAgcmVhZG9ubHkgc2hvd1ZhbGlkYXRpb25JY29uU2lnbmFsID0gbW9kZWw8Ym9vbGVhbj4obnVsbCwge1xuICAgIGFsaWFzOiAnc2hvd1ZhbGlkYXRpb25JY29uJyxcbiAgfSk7XG4gIHJlYWRvbmx5IHNtYWxsU2lnbmFsID0gbW9kZWw8Ym9vbGVhbj4obnVsbCwge1xuICAgIGFsaWFzOiAnc21hbGwnLFxuICB9KTtcbiAgcmVhZG9ubHkgc2hvd1ZhbGlkYXRpb25Nc2dTaWduYWwgPSBtb2RlbDxib29sZWFuPihmYWxzZSwge1xuICAgIGFsaWFzOiAnc2hvd1ZhbGlkYXRpb25Nc2cnLFxuICB9KTtcbiAgcmVhZG9ubHkgc3RhY2tlZFNpZ25hbCA9IGlucHV0PGJvb2xlYW4+KHRydWUsIHtcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgYXMgdW5kZWZpbmVkLFxuICAgIGFsaWFzOiAnc3RhY2tlZCcsXG4gIH0pO1xuICByZWFkb25seSBkZWJ1ZyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHZlcmJvc2UgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBjbGVhck9uRGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICBASW5wdXQoKSBtaW5MZW5ndGg6IG51bWJlcjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXI7XG5cbiAgQElucHV0KCdkaXNhYmxlZCcpIHNldCBfZGlzYWJsZWQodjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLmNvbnRyb2woKT8ucGFyZW50Py5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGlmICh2KSB7XG4gICAgICBpZiAodGhpcy5jbGVhck9uRGlzYWJsZSgpKSB0aGlzLmNvbnRyb2woKT8ucmVzZXQoKTtcbiAgICAgIHRoaXMuY29udHJvbCgpPy5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRyb2woKT8uZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY29udHJvbCgpPy5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ3R5cGUnKSBzZXQgX3R5cGUodjogSW5wdXRUeXBlKSB7XG4gICAgdGhpcy5vVHlwZVNpZ25hbC5zZXQodik7XG4gICAgaWYgKHYgPT0gJ3BlcmNlbnRhZ2UnKSB7XG4gICAgICB0aGlzLnR5cGVTaWduYWwuc2V0KCdudW1iZXInKTtcbiAgICAgIHRoaXMubWF4U2lnbmFsLnNldCgxMDApO1xuICAgICAgdGhpcy5taW5TaWduYWwuc2V0KDApO1xuICAgIH0gZWxzZSB0aGlzLnR5cGVTaWduYWwuc2V0KHYpO1xuICB9XG5cbiAgcmVhZG9ubHkgc2hvd1Bhc3N3b3JkU2lnbmFsID0gc2lnbmFsPGJvb2xlYW4+KG51bGwpO1xuXG4gIHJlYWRvbmx5IGRpc2FibGVkU2lnbmFsID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHRoaXMuZm9ybUZpZWxkTm90aWZpZXIoKTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCk/LmRpc2FibGVkO1xuICB9KTtcblxuICByZWFkb25seSBvVHlwZVNpZ25hbCA9IHNpZ25hbDxJbnB1dFR5cGUgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgdHlwZVNpZ25hbCA9IHNpZ25hbDxJbnB1dFR5cGU+KCd0ZXh0Jyk7XG4gIHJlYWRvbmx5IG1heFNpZ25hbCA9IG1vZGVsPG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KG51bGwsIHsgYWxpYXM6ICdtYXgnIH0pO1xuICByZWFkb25seSBtaW5TaWduYWwgPSBtb2RlbDxudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPihudWxsLCB7IGFsaWFzOiAnbWluJyB9KTtcblxuICByZWFkb25seSBjb21wdXRlZFNob3dMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzaG93TGFiZWwgPSB0aGlzLnNob3dMYWJlbFNpZ25hbCgpLFxuICAgICAgbGFiZWwgPSB0aGlzLmxhYmVsU2lnbmFsKCk7XG4gICAgcmV0dXJuIHNob3dMYWJlbCAmJiBsYWJlbCAhPSBudWxsO1xuICB9KTtcblxuICBwdWJsaWMgaVMgPSBpbmplY3QoSW5wdXRTZXJ2aWNlKTtcblxuICAvLyBAVmlld0NoaWxkKCdkYXRlSW5wdXQnKSBkYXRlSW5wdXRSZWY/OiBEYXRlSW5wdXRDb21wb25lbnQ7XG5cbiAgcmVhZG9ubHkgY29udHJvbCA9IHRvU2lnbmFsKFxuICAgIG1lcmdlKHRvT2JzZXJ2YWJsZSh0aGlzLmZvcm0pLCB0b09ic2VydmFibGUodGhpcy5uYW1lKSkucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmZvcm0oKSAhPSBudWxsICYmICEhdGhpcy5uYW1lKCkgIT0gbnVsbCksXG4gICAgICBtYXAoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgKHRoaXMuZm9ybSgpIGFzIEZvcm1Hcm91cDxURm9ybUdyb3VwPikuY29udHJvbHNbXG4gICAgICAgICAgICB0aGlzLm5hbWUoKSBhcyBrZXlvZiBGb3JtR3JvdXA8VEZvcm1Hcm91cD5bJ2NvbnRyb2xzJ11cbiAgICAgICAgICBdLFxuICAgICAgKSxcbiAgICAgIHRhcCgoY29udHJvbCkgPT4ge1xuICAgICAgICB0aGlzLm9uQ29udHJvbFNldD8uKClcbiAgICAgICAgY29uc29sZS5sb2coJ2NvbnRyb2wgY2hhbmdlZCcsIGNvbnRyb2wpO1xuICAgICAgfSksXG4gICAgKSxcbiAgKTtcblxuICByZWFkb25seSBmb3JtRmllbGROb3RpZmllciA9IHRvU2lnbmFsKFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLmNvbnRyb2wpLnBpcGUoXG4gICAgICAvLyB0YXAoKGNvbnRyb2wpID0+IHtcbiAgICAgIC8vICAgY29uc29sZS5sb2coJ2Zvcm1GaWVsZE5vdGlmaWVyIGNvbnRyb2wnLCBjb250cm9sKTtcbiAgICAgIC8vIH0pLFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMuY29udHJvbCgpICE9IG51bGwpLFxuICAgICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiBtZXJnZShjb250cm9sPy52YWx1ZUNoYW5nZXMsIGNvbnRyb2w/LnN0YXR1c0NoYW5nZXMpKSxcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgbWFwKCgpID0+IHBlcmZvcm1hbmNlLm5vdygpKSxcbiAgICAgIC8vIG1hcCgoKT0+TWF0aC5yYW5kb20oKSksXG4gICAgICAvLyB0YXAoKCkgPT4ge1xuICAgICAgLy8gICBjb25zb2xlLmxvZygnZm9ybUZpZWxkTm90aWZpZXIgY29udHJvbCBzd2l0Y2hNYXAgZW1pdHRlcicsIHRoaXMuY29udHJvbCgpPy5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgIC8vIH0pLFxuICAgICksXG4gICk7XG4gIHJlYWRvbmx5IHZhbGlkU2lnbmFsID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHRoaXMuZm9ybUZpZWxkTm90aWZpZXIoKTtcbiAgICAvLyBjb25zb2xlLmxvZygndmFsaWRTaWduYWwgbm90aWZpZWQnLCB0aGlzLmNvbnRyb2woKSk7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCgpPy52YWxpZDtcbiAgfSk7XG4gIHJlYWRvbmx5IGludmFsaWRTaWduYWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgdGhpcy5mb3JtRmllbGROb3RpZmllcigpO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2woKT8uaW52YWxpZDtcbiAgfSk7XG4gIHJlYWRvbmx5IHZhbHVlU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuZm9ybUZpZWxkTm90aWZpZXIoKTtcbiAgICAvLyBjb25zb2xlLmxvZygndmFsdWVTaWduYWwgbm90aWZpZWQnLCB0aGlzLmNvbnRyb2woKSk7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCgpPy5nZXRSYXdWYWx1ZSgpO1xuICB9KTtcbiAgcmVhZG9ubHkgaGFzVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZhbHVlU2lnbmFsKCk/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID4gMCk7XG4gIHJlYWRvbmx5IGludmFsaWRDaGVja2JveFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkU2lnbmFsKCkgJiYgdGhpcy50eXBlU2lnbmFsKCkgPT0gJ2NoZWNrYm94JztcbiAgfSk7XG4gIHJlYWRvbmx5IGRpcnR5U2lnbmFsID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHRoaXMuZm9ybUZpZWxkTm90aWZpZXIoKTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCk/LmRpcnR5O1xuICB9KTtcbiAgcmVhZG9ubHkgdG91Y2hlZFNpZ25hbCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICB0aGlzLmZvcm1GaWVsZE5vdGlmaWVyKCk7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCgpPy50b3VjaGVkO1xuICB9KTtcbiAgcmVhZG9ubHkgZXJyb3JzU2lnbmFsID0gY29tcHV0ZWQ8SU9iamVjdExpdGVyYWw+KCgpID0+IHtcbiAgICB0aGlzLmZvcm1GaWVsZE5vdGlmaWVyKCk7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCgpPy5lcnJvcnM7XG4gIH0pO1xuICByZWFkb25seSBlcnJvcnNTaWduYWxqc29uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmVycm9yc1NpZ25hbCgpIHx8IHt9KTtcbiAgfSk7XG4gIHJlYWRvbmx5IHBlbmRpbmdTaWduYWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgdGhpcy5mb3JtRmllbGROb3RpZmllcigpO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2woKT8ucGVuZGluZztcbiAgfSk7XG4gIHJlYWRvbmx5IHByaXN0aW5lU2lnbmFsID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHRoaXMuZm9ybUZpZWxkTm90aWZpZXIoKTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCk/LnByaXN0aW5lO1xuICB9KTtcbiAgcmVhZG9ubHkgY29udHJvbFJlcXVpcmVkU2lnbmFsID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHRoaXMuZm9ybUZpZWxkTm90aWZpZXIoKTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCk/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfSk7XG4gIHJlYWRvbmx5IGlzUmVxdWlyZWRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlcXVpcmVkU2lnbmFsKCkgfHwgdGhpcy5jb250cm9sUmVxdWlyZWRTaWduYWwoKSk7XG4gIHJlYWRvbmx5IG5hbWVTdHJTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5hbWUoKT8udG9TdHJpbmcoKSk7XG4gIHJlYWRvbmx5IGlucHV0Q2xhc3NTaWduYWwgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuaVMuaW5wdXRDbGFzcyhcbiAgICAgIHRoaXMuaW5wQ2xTaWduYWwoKSxcbiAgICAgIHRoaXMuZGlydHlTaWduYWwoKSxcbiAgICAgIHRoaXMudmFsaWRTaWduYWwoKSxcbiAgICAgIHRoaXMuaW52YWxpZFNpZ25hbCgpLFxuICAgICAgdGhpcy5zaG93VmFsaWRhdGlvblNpZ25hbCgpLFxuICAgICksXG4gICk7XG4gIHJlYWRvbmx5IGNvbG9yZWRTaWduYWwgPSBpbnB1dDxib29sZWFuPih0cnVlLCB7IGFsaWFzOiAnY29sb3JlZCcgfSk7XG4gIHJlYWRvbmx5IGNoZWNrZWRTaWduYWwgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vb3B0aW9uYWwgY2hlY2tlZCBvcHRpb24gZm9yIGNoZWNrYm94ZXNcbiAgcmVhZG9ubHkgcmF3T3B0aW9uc1NpZ25hbCA9IHNpZ25hbDxhbnlbXT4oW10pO1xuICByZWFkb25seSBvcHRpb25zID0gY29tcHV0ZWQ8SU9wdGlvbltdPigoKSA9PlxuICAgIHRoaXMuaVMub3B0aW9uc0Zvcm1hdHRlcihcbiAgICAgIHRoaXMucmF3T3B0aW9uc1NpZ25hbCgpLFxuICAgICAgdGhpcy52YWx1ZUZpZWxkIGFzIHN0cmluZyxcbiAgICAgIHRoaXMub3B0aW9uRm9ybWF0dGVyLFxuICAgICAgdGhpcy5sYWJlbFR5cGUsXG4gICAgICB0aGlzLmxhYmVsRmllbGQgYXMgc3RyaW5nLFxuICAgICAgdGhpcy5hdXRvUGlja1ZhbHVlRmllbGQsXG4gICAgKSxcbiAgKTtcbiAgcmVhZG9ubHkgb3B0aW9uc01hcCA9IGNvbXB1dGVkPHsgW3ZhbHVlOiBzdHJpbmddOiBJT3B0aW9uIH0+KCgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zKCk7XG4gICAgY29uc3QgbWFwOiB7IFt2YWx1ZUtleTogc3RyaW5nXTogSU9wdGlvbiB9ID0ge307XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIG9wdGlvbnMpIHtcbiAgICAgIG1hcFtKU09OLnN0cmluZ2lmeShpdGVtLnZhbHVlKV0gPSBpdGVtO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9KTtcbiAgcHJvdGVjdGVkIGRvZXNPcHRpb25FeGlzdCA9ICh2YWwpID0+IHRoaXMub3B0aW9uc01hcCgpW0pTT04uc3RyaW5naWZ5KHZhbCldO1xuICBvbkNvbnRyb2xTZXQ6ICgpID0+IGFueTtcbiAgQE91dHB1dCgpIG1jaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5sYWJlbFNpZ25hbCgpO1xuICAgICAgLy8gY29uc29sZS5sb2coJ0xhYmVsIHNldCB0byBjb250cm9sJyk7XG4gICAgICAvLyB2YWx1ZSA9IHRoaXMudmFsdWVTaWduYWwoKTtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2woKSkgdGhpcy5jb250cm9sKCkubGFiZWxWYWx1ZSA9IGxhYmVsO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHByZXNldFZhbHVlID0gdGhpcy5wcmVzZXRWYWx1ZSgpLFxuICAgICAgICBvcHRpb25zID0gdGhpcy5vcHRpb25zKCk7XG4gICAgICAvLyBjb25zb2xlLmxvZygnY2hlY2sgcHJlc2V0Jyk7XG4gICAgICBpZiAocHJlc2V0VmFsdWUgJiYgb3B0aW9ucz8ubGVuZ3RoID09IDEgJiYgIXRoaXMuY29udHJvbCgpPy52YWx1ZSkge1xuICAgICAgICB0aGlzLmNvbnRyb2woKT8ucGF0Y2hWYWx1ZShvcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGRhdGVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbCgpKSByZXR1cm47XG4gICAgdGhpcy5jb250cm9sKCkucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5tY2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG59XG4iXX0=
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMkMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFnQixTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBS3BFLE1BQU0sT0FBTyxTQUFTO0lBd0RwQixJQUE0QixjQUFjLENBQUMsQ0FBVTtRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFhLFFBQVEsQ0FBQyxDQUFVO1FBQzlCLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxF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QyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0FsUlUsU0FBUztrR0FBVCxTQUFTLG14T0FPa0Msa0JBQWtCLGdFQVQ5RCxFQUFFOzsyRkFFRCxTQUFTO2tCQUpyQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsRUFBRTtpQkFDYjt3REErQ1UsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTXNCLGNBQWM7c0JBQXpDLEtBQUs7dUJBQUMsZUFBZTtnQkFJVCxRQUFRO3NCQUFwQixLQUFLO2dCQUdPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkE2QkcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVpQixTQUFTO3NCQUEvQixLQUFLO3VCQUFDLFVBQVU7Z0JBV0UsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxNQUFNO2dCQTZJSCxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBNb2RlbFNpZ25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJT3B0aW9uLCBJbnB1dFNlcnZpY2UgfSBmcm9tICcuL2lucHV0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSU9iamVjdExpdGVyYWwsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIG1lcmdlLCBtZXJnZU1hcCwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0QmFzZTxcbiAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfSA9IGFueSxcbiAgVENvbnRyb2wgPSBhbnksXG4gIFRPcHRpb24gPSBhbnksXG4+IHtcbiAgcmVhZG9ubHkgZGF0ZUlucHV0UmVmID0gdmlld0NoaWxkPERhdGVJbnB1dENvbXBvbmVudD4oRGF0ZUlucHV0Q29tcG9uZW50KTtcbiAgcmVhZG9ubHkgY2xzID0gaW5wdXQ8c3RyaW5nPihudWxsKTtcbiAgcmVhZG9ubHkgZG9udEZvcm1hdEFzSW5wdXRTaWduYWwgPSBpbnB1dDxib29sZWFuPihudWxsLCB7IGFsaWFzOiAnZG9udEZvcm1hdEFzSW5wdXQnIH0pO1xuICByZWFkb25seSBkdXBsaWNhdGVDaGVja1NpZ25hbCA9IGlucHV0PGJvb2xlYW4+KG51bGwsIHsgYWxpYXM6ICdkdXBsaWNhdGVDaGVjaycgfSk7XG4gIHJlYWRvbmx5IHByZXNldFZhbHVlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBlbmRMYWJlbFNpZ25hbCA9IGlucHV0PHN0cmluZz4obnVsbCwgeyBhbGlhczogJ2VuZExhYmVsJyB9KTtcbiAgcmVhZG9ubHkgZW5kTGFiZWxUb29sdGlwU2lnbmFsID0gaW5wdXQ8c3RyaW5nPihudWxsLCB7IGFsaWFzOiAnZW5kTGFiZWxUb29sdGlwJyB9KTtcbiAgcmVhZG9ubHkgaWRTaWduYWwgPSBpbnB1dCgnaWQnICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDAwMCksIHsgYWxpYXM6ICdpZCcgfSk7XG4gIHJlYWRvbmx5IGlucHV0Q29udENsYXNzU2lnbmFsID0gaW5wdXQ8c3RyaW5nPihudWxsLCB7IGFsaWFzOiAnaW5wdXRDb250Q2xhc3MnIH0pO1xuICByZWFkb25seSBsYWJlbFNpZ25hbCA9IGlucHV0PHN0cmluZz4obnVsbCwgeyBhbGlhczogJ2xhYmVsJyB9KTtcbiAgcmVhZG9ubHkgbm9Gb3JtYXQgPSBpbnB1dDxib29sZWFuPihudWxsKTtcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KG51bGwpO1xuICByZWFkb25seSByZWFkb25seVNpZ25hbCA9IGlucHV0PGJvb2xlYW4gfCBudWxsPihudWxsLCB7IGFsaWFzOiAncmVhZG9ubHknIH0pO1xuICByZWFkb25seSByZXF1aXJlZFNpZ25hbCA9IGlucHV0PGJvb2xlYW4gfCBudWxsPihudWxsLCB7IGFsaWFzOiAncmVxdWlyZWQnIH0pO1xuICByZWFkb25seSBzaG93UmVxdWlyZWRUYWdTaWduYWwgPSBpbnB1dDxib29sZWFuPih0cnVlLCB7IGFsaWFzOiAnc2hvd1JlcXVpcmVkVGFnJyB9KTtcbiAgcmVhZG9ubHkgc3VmZml4ID0gaW5wdXQ8c3RyaW5nPihudWxsKTtcbiAgcmVhZG9ubHkgdGV4dGFyZWFSb3dzU2lnbmFsID0gaW5wdXQ8bnVtYmVyPihudWxsLCB7IGFsaWFzOiAndGV4dGFyZWFSb3dzJyB9KTtcbiAgcmVhZG9ubHkgdHJhbnNsYXRlT3B0aW9ucyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBjb21wdXRlZE5vRm9ybWF0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5vRm9ybWF0ID0gdGhpcy5ub0Zvcm1hdCgpLFxuICAgICAgdHlwZVNpZ25hbCA9IHRoaXMudHlwZVNpZ25hbCgpLFxuICAgICAgc2hvd1ZhbGlkYXRpb25TaWduYWwgPSB0aGlzLnNob3dWYWxpZGF0aW9uU2lnbmFsKCksXG4gICAgICBzaG93VmFsaWRhdGlvbkljb25TaWduYWwgPSB0aGlzLnNob3dWYWxpZGF0aW9uSWNvblNpZ25hbCgpLFxuICAgICAgbGFiZWxTaWduYWwgPSB0aGlzLmxhYmVsU2lnbmFsKCk7XG4gICAgcmV0dXJuIG5vRm9ybWF0ID09IG51bGxcbiAgICAgID8gdHlwZVNpZ25hbCA9PSAndmlld2VyJyB8fFxuICAgICAgICAgIHNob3dWYWxpZGF0aW9uU2lnbmFsIHx8XG4gICAgICAgICAgc2hvd1ZhbGlkYXRpb25JY29uU2lnbmFsIHx8XG4gICAgICAgICAgbGFiZWxTaWduYWw/LmluY2x1ZGVzKCdjb2RlJylcbiAgICAgIDogbm9Gb3JtYXQ7XG4gIH0pO1xuXG4gIC8qKiBGb3JtR3JvdXAgKi9cbiAgcmVhZG9ubHkgZm9ybSA9IG1vZGVsPFxuICAgIEZvcm1Hcm91cDxURm9ybUdyb3VwPiB8IEZvcm1Db250cm9sPFRDb250cm9sPiB8IEFic3RyYWN0Q29udHJvbDxUQ29udHJvbD5cbiAgPigpO1xuXG4gIC8qKiBTaG93IHRoZSBoaW50IHdpdGhvdXQgdGhlIHRvb2x0aXAgKi9cbiAgQElucHV0KCkgaW5saW5lSGludDogYm9vbGVhbjtcbiAgQElucHV0KCkgYXV0b1BpY2tWYWx1ZUZpZWxkOiBib29sZWFuO1xuICBASW5wdXQoKSBsYWJlbEZpZWxkOiBrZXlvZiBUT3B0aW9uO1xuICBASW5wdXQoKSBsYWJlbFR5cGU6IE9wdGlvbkxhYmVsVHlwZTsgLy91c2UgdGhpcyB0byBwaWNrIGEgcHJlc2V0IHZhbHVlIGxhYmVsIGdyb3VwIGZvciB0aGUgb3B0aW9uc1xuICBASW5wdXQoKSBvcHRpb25Gb3JtYXR0ZXI6IChpdGVtOiBUT3B0aW9uKSA9PiBzdHJpbmc7XG5cbiAgLyoqIEZvcm1Db250cm9sTmFtZSAqL1xuICBuYW1lID0gbW9kZWw8a2V5b2YgVEZvcm1Hcm91cD4oKTtcbiAgaW5kZXRlcm1pbmF0ZTogYm9vbGVhbjtcblxuICBASW5wdXQoJ2luZGV0ZXJtaW5hdGUnKSBzZXQgX2luZGV0ZXJtaW5hdGUodjogYm9vbGVhbikge1xuICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IHY7XG4gICAgaWYgKHYpIHRoaXMuY29udHJvbCgpPy5wYXRjaFZhbHVlKGZhbHNlKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgbWF4VG9kYXkodjogYm9vbGVhbikge1xuICAgIGlmICh2KSB0aGlzLm1heFNpZ25hbC5zZXQobmV3IERhdGUoKS50b0lTT1N0cmluZygpKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgbWluVG9kYXkodjogYm9vbGVhbikge1xuICAgIGlmICh2KSB0aGlzLm1pblNpZ25hbC5zZXQobmV3IERhdGUoKS50b0lTT1N0cmluZygpKTtcbiAgfVxuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBrZXlvZiBUT3B0aW9uOyAvL3VzZSB0aGlzIHRvIGNob29zZSBhIGZpZWxkIGluIHRoZSBvcHRpb24gZm9yIG1vZGVsaW5nXG4gIHJlYWRvbmx5IHByZWZpeFNpZ25hbCA9IG1vZGVsPHN0cmluZz4obnVsbCwgeyBhbGlhczogJ3ByZWZpeCcgfSk7XG4gIHJlYWRvbmx5IG1pbmlTaWduYWwgPSBtb2RlbDxib29sZWFuPihudWxsLCB7IGFsaWFzOiAnbWluaScgfSk7XG4gIHJlYWRvbmx5IGlucENsU2lnbmFsID0gbW9kZWw8c3RyaW5nPignY29udHJvbC1iZy1ncmF5JywgeyBhbGlhczogJ2lucENsJyB9KTtcbiAgcmVhZG9ubHkgc2hvd0VtcHR5T3B0aW9uU2lnbmFsID0gbW9kZWw8Ym9vbGVhbj4odHJ1ZSwge1xuICAgIGFsaWFzOiAnc2hvd0VtcHR5T3B0aW9uJyxcbiAgfSk7XG4gIHJlYWRvbmx5IHNob3dMYWJlbFNpZ25hbCA9IG1vZGVsPGJvb2xlYW4+KHRydWUsIHtcbiAgICBhbGlhczogJ3Nob3dMYWJlbCcsXG4gIH0pO1xuICByZWFkb25seSBzaG93VmFsaWRhdGlvblNpZ25hbCA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlLCB7XG4gICAgYWxpYXM6ICdzaG93VmFsaWRhdGlvbicsXG4gIH0pO1xuICByZWFkb25seSBzaG93VmFsaWRhdGlvbkljb25TaWduYWwgPSBtb2RlbDxib29sZWFuPihudWxsLCB7XG4gICAgYWxpYXM6ICdzaG93VmFsaWRhdGlvbkljb24nLFxuICB9KTtcbiAgcmVhZG9ubHkgc21hbGxTaWduYWwgPSBtb2RlbDxib29sZWFuPihudWxsLCB7XG4gICAgYWxpYXM6ICdzbWFsbCcsXG4gIH0pO1xuICByZWFkb25seSBzaG93VmFsaWRhdGlvbk1zZ1NpZ25hbCA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlLCB7XG4gICAgYWxpYXM6ICdzaG93VmFsaWRhdGlvbk1zZycsXG4gIH0pO1xuICByZWFkb25seSBzdGFja2VkU2lnbmFsID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSwge1xuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSBhcyB1bmRlZmluZWQsXG4gICAgYWxpYXM6ICdzdGFja2VkJyxcbiAgfSk7XG4gIHJlYWRvbmx5IGRlYnVnID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgdmVyYm9zZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGNsZWFyT25EaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlcjtcblxuICBASW5wdXQoJ2Rpc2FibGVkJykgc2V0IF9kaXNhYmxlZCh2OiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgaWYgKHRoaXMuY29udHJvbCgpPy5wYXJlbnQ/LmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKHYpIHtcbiAgICAgIGlmICh0aGlzLmNsZWFyT25EaXNhYmxlKCkpIHRoaXMuY29udHJvbCgpPy5yZXNldCgpO1xuICAgICAgdGhpcy5jb250cm9sKCk/LmRpc2FibGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbCgpPy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb250cm9sKCk/LmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgndHlwZScpIHNldCBfdHlwZSh2OiBJbnB1dFR5cGUpIHtcbiAgICB0aGlzLm9UeXBlU2lnbmFsLnNldCh2KTtcbiAgICBpZiAodiA9PSAncGVyY2VudGFnZScpIHtcbiAgICAgIHRoaXMudHlwZVNpZ25hbC5zZXQoJ251bWJlcicpO1xuICAgICAgdGhpcy5tYXhTaWduYWwuc2V0KDEwMCk7XG4gICAgICB0aGlzLm1pblNpZ25hbC5zZXQoMCk7XG4gICAgfSBlbHNlIHRoaXMudHlwZVNpZ25hbC5zZXQodik7XG4gIH1cblxuICByZWFkb25seSBzaG93UGFzc3dvcmRTaWduYWwgPSBzaWduYWw8Ym9vbGVhbj4obnVsbCk7XG5cbiAgcmVhZG9ubHkgZGlzYWJsZWRTaWduYWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgdGhpcy5mb3JtRmllbGROb3RpZmllcigpO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2woKT8uZGlzYWJsZWQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG9UeXBlU2lnbmFsID0gc2lnbmFsPElucHV0VHlwZSB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSB0eXBlU2lnbmFsID0gc2lnbmFsPElucHV0VHlwZT4oJ3RleHQnKTtcbiAgcmVhZG9ubHkgbWF4U2lnbmFsID0gbW9kZWw8bnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4obnVsbCwgeyBhbGlhczogJ21heCcgfSk7XG4gIHJlYWRvbmx5IG1pblNpZ25hbCA9IG1vZGVsPG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KG51bGwsIHsgYWxpYXM6ICdtaW4nIH0pO1xuXG4gIHJlYWRvbmx5IGNvbXB1dGVkU2hvd0xhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNob3dMYWJlbCA9IHRoaXMuc2hvd0xhYmVsU2lnbmFsKCksXG4gICAgICBsYWJlbCA9IHRoaXMubGFiZWxTaWduYWwoKTtcbiAgICByZXR1cm4gc2hvd0xhYmVsICYmIGxhYmVsICE9IG51bGw7XG4gIH0pO1xuXG4gIHB1YmxpYyBpUyA9IGluamVjdChJbnB1dFNlcnZpY2UpO1xuXG4gIC8vIEBWaWV3Q2hpbGQoJ2RhdGVJbnB1dCcpIGRhdGVJbnB1dFJlZj86IERhdGVJbnB1dENvbXBvbmVudDtcblxuICByZWFkb25seSBjb250cm9sID0gdG9TaWduYWwoXG4gICAgbWVyZ2UodG9PYnNlcnZhYmxlKHRoaXMuZm9ybSksIHRvT2JzZXJ2YWJsZSh0aGlzLm5hbWUpKS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybSgpICE9IG51bGwgJiYgISF0aGlzLm5hbWUoKSAhPSBudWxsKSxcbiAgICAgIG1hcChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAodGhpcy5mb3JtKCkgYXMgRm9ybUdyb3VwPFRGb3JtR3JvdXA+KS5jb250cm9sc1tcbiAgICAgICAgICAgIHRoaXMubmFtZSgpIGFzIGtleW9mIEZvcm1Hcm91cDxURm9ybUdyb3VwPlsnY29udHJvbHMnXVxuICAgICAgICAgIF0sXG4gICAgICApLFxuICAgICAgdGFwKChjb250cm9sKSA9PiB7XG4gICAgICAgIHRoaXMub25Db250cm9sU2V0Py4oKVxuICAgICAgICAvLyBjb25zb2xlLmxvZygnY29udHJvbCBjaGFuZ2VkJywgY29udHJvbCk7XG4gICAgICB9KSxcbiAgICApLFxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1GaWVsZE5vdGlmaWVyID0gdG9TaWduYWwoXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuY29udHJvbCkucGlwZShcbiAgICAgIC8vIHRhcCgoY29udHJvbCkgPT4ge1xuICAgICAgLy8gICBjb25zb2xlLmxvZygnZm9ybUZpZWxkTm90aWZpZXIgY29udHJvbCcsIGNvbnRyb2wpO1xuICAgICAgLy8gfSksXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5jb250cm9sKCkgIT0gbnVsbCksXG4gICAgICBzd2l0Y2hNYXAoKGNvbnRyb2wpID0+IG1lcmdlKGNvbnRyb2w/LnZhbHVlQ2hhbmdlcywgY29udHJvbD8uc3RhdHVzQ2hhbmdlcykpLFxuICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICBtYXAoKCkgPT4gcGVyZm9ybWFuY2Uubm93KCkpLFxuICAgICAgLy8gbWFwKCgpPT5NYXRoLnJhbmRvbSgpKSxcbiAgICAgIC8vIHRhcCgoKSA9PiB7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKCdmb3JtRmllbGROb3RpZmllciBjb250cm9sIHN3aXRjaE1hcCBlbWl0dGVyJywgdGhpcy5jb250cm9sKCk/LmdldFJhd1ZhbHVlKCkpO1xuICAgICAgLy8gfSksXG4gICAgKSxcbiAgKTtcbiAgcmVhZG9ubHkgdmFsaWRTaWduYWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgdGhpcy5mb3JtRmllbGROb3RpZmllcigpO1xuICAgIC8vIGNvbnNvbGUubG9nKCd2YWxpZFNpZ25hbCBub3RpZmllZCcsIHRoaXMuY29udHJvbCgpKTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCk/LnZhbGlkO1xuICB9KTtcbiAgcmVhZG9ubHkgaW52YWxpZFNpZ25hbCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICB0aGlzLmZvcm1GaWVsZE5vdGlmaWVyKCk7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCgpPy5pbnZhbGlkO1xuICB9KTtcbiAgcmVhZG9ubHkgdmFsdWVTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5mb3JtRmllbGROb3RpZmllcigpO1xuICAgIC8vIGNvbnNvbGUubG9nKCd2YWx1ZVNpZ25hbCBub3RpZmllZCcsIHRoaXMuY29udHJvbCgpKTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCk/LmdldFJhd1ZhbHVlKCk7XG4gIH0pO1xuICByZWFkb25seSBoYXNWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudmFsdWVTaWduYWwoKT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPiAwKTtcbiAgcmVhZG9ubHkgaW52YWxpZENoZWNrYm94U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmludmFsaWRTaWduYWwoKSAmJiB0aGlzLnR5cGVTaWduYWwoKSA9PSAnY2hlY2tib3gnO1xuICB9KTtcbiAgcmVhZG9ubHkgZGlydHlTaWduYWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgdGhpcy5mb3JtRmllbGROb3RpZmllcigpO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2woKT8uZGlydHk7XG4gIH0pO1xuICByZWFkb25seSB0b3VjaGVkU2lnbmFsID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHRoaXMuZm9ybUZpZWxkTm90aWZpZXIoKTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCk/LnRvdWNoZWQ7XG4gIH0pO1xuICByZWFkb25seSBlcnJvcnNTaWduYWwgPSBjb21wdXRlZDxJT2JqZWN0TGl0ZXJhbD4oKCkgPT4ge1xuICAgIHRoaXMuZm9ybUZpZWxkTm90aWZpZXIoKTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sKCk/LmVycm9ycztcbiAgfSk7XG4gIHJlYWRvbmx5IGVycm9yc1NpZ25hbGpzb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuZXJyb3JzU2lnbmFsKCkgfHwge30pO1xuICB9KTtcbiAgcmVhZG9ubHkgcGVuZGluZ1NpZ25hbCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICB0aGlzLmZvcm1GaWVsZE5vdGlmaWVyKCk7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbCgpPy5wZW5kaW5nO1xuICB9KTtcbiAgcmVhZG9ubHkgcHJpc3RpbmVTaWduYWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgdGhpcy5mb3JtRmllbGROb3RpZmllcigpO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2woKT8ucHJpc3RpbmU7XG4gIH0pO1xuICByZWFkb25seSBjb250cm9sUmVxdWlyZWRTaWduYWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgdGhpcy5mb3JtRmllbGROb3RpZmllcigpO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2woKT8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICB9KTtcbiAgcmVhZG9ubHkgaXNSZXF1aXJlZFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVxdWlyZWRTaWduYWwoKSB8fCB0aGlzLmNvbnRyb2xSZXF1aXJlZFNpZ25hbCgpKTtcbiAgcmVhZG9ubHkgbmFtZVN0clNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubmFtZSgpPy50b1N0cmluZygpKTtcbiAgcmVhZG9ubHkgaW5wdXRDbGFzc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5pUy5pbnB1dENsYXNzKFxuICAgICAgdGhpcy5pbnBDbFNpZ25hbCgpLFxuICAgICAgdGhpcy5kaXJ0eVNpZ25hbCgpLFxuICAgICAgdGhpcy52YWxpZFNpZ25hbCgpLFxuICAgICAgdGhpcy5pbnZhbGlkU2lnbmFsKCksXG4gICAgICB0aGlzLnNob3dWYWxpZGF0aW9uU2lnbmFsKCksXG4gICAgKSxcbiAgKTtcbiAgcmVhZG9ubHkgY29sb3JlZFNpZ25hbCA9IGlucHV0PGJvb2xlYW4+KHRydWUsIHsgYWxpYXM6ICdjb2xvcmVkJyB9KTtcbiAgcmVhZG9ubHkgY2hlY2tlZFNpZ25hbCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTsgLy9vcHRpb25hbCBjaGVja2VkIG9wdGlvbiBmb3IgY2hlY2tib3hlc1xuICByZWFkb25seSByYXdPcHRpb25zU2lnbmFsID0gc2lnbmFsPGFueVtdPihbXSk7XG4gIHJlYWRvbmx5IG9wdGlvbnMgPSBjb21wdXRlZDxJT3B0aW9uW10+KCgpID0+XG4gICAgdGhpcy5pUy5vcHRpb25zRm9ybWF0dGVyKFxuICAgICAgdGhpcy5yYXdPcHRpb25zU2lnbmFsKCksXG4gICAgICB0aGlzLnZhbHVlRmllbGQgYXMgc3RyaW5nLFxuICAgICAgdGhpcy5vcHRpb25Gb3JtYXR0ZXIsXG4gICAgICB0aGlzLmxhYmVsVHlwZSxcbiAgICAgIHRoaXMubGFiZWxGaWVsZCBhcyBzdHJpbmcsXG4gICAgICB0aGlzLmF1dG9QaWNrVmFsdWVGaWVsZCxcbiAgICApLFxuICApO1xuICByZWFkb25seSBvcHRpb25zTWFwID0gY29tcHV0ZWQ8eyBbdmFsdWU6IHN0cmluZ106IElPcHRpb24gfT4oKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICBjb25zdCBtYXA6IHsgW3ZhbHVlS2V5OiBzdHJpbmddOiBJT3B0aW9uIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygb3B0aW9ucykge1xuICAgICAgbWFwW0pTT04uc3RyaW5naWZ5KGl0ZW0udmFsdWUpXSA9IGl0ZW07XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG4gIH0pO1xuICBwcm90ZWN0ZWQgZG9lc09wdGlvbkV4aXN0ID0gKHZhbCkgPT4gdGhpcy5vcHRpb25zTWFwKClbSlNPTi5zdHJpbmdpZnkodmFsKV07XG4gIG9uQ29udHJvbFNldDogKCkgPT4gYW55O1xuICBAT3V0cHV0KCkgbWNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsU2lnbmFsKCk7XG4gICAgICAvLyBjb25zb2xlLmxvZygnTGFiZWwgc2V0IHRvIGNvbnRyb2wnKTtcbiAgICAgIC8vIHZhbHVlID0gdGhpcy52YWx1ZVNpZ25hbCgpO1xuICAgICAgaWYgKHRoaXMuY29udHJvbCgpKSB0aGlzLmNvbnRyb2woKS5sYWJlbFZhbHVlID0gbGFiZWw7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgcHJlc2V0VmFsdWUgPSB0aGlzLnByZXNldFZhbHVlKCksXG4gICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdjaGVjayBwcmVzZXQnKTtcbiAgICAgIGlmIChwcmVzZXRWYWx1ZSAmJiBvcHRpb25zPy5sZW5ndGggPT0gMSAmJiAhdGhpcy5jb250cm9sKCk/LnZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29udHJvbCgpPy5wYXRjaFZhbHVlKG9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGF0ZUNoYW5nZWQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5jb250cm9sKCkpIHJldHVybjtcbiAgICB0aGlzLmNvbnRyb2woKS5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLm1jaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -9,7 +9,7 @@ import { CommonModule, Location, CurrencyPipe, TitleCasePipe, DatePipe, DecimalP
9
9
  import { faPlus, faSlidersH, faMoneyCheck, faCancel, faCheck, faListAlt, faClone, faCogs, faTrash, faDownload, faEdit, faFileExport, faFile, faFilter, faPenFancy, faUserShield, faHistory, faHome, faFileImport, faInfoCircle, faLock, faArrowRight, faPause, faPen, faArrowLeft, faRecycle, faSave, faSearch, faEye, faBellSlash, faUpload, faUnlock, faUsers, faStop, faTruck, faTag, faReceipt, faBank, faArrowsH, faPlay, faPercent, faHandshake, faCircleExclamation, faTable, faSpoon } from '@fortawesome/free-solid-svg-icons';
10
10
  import { faPaperPlane } from '@fortawesome/free-regular-svg-icons';
11
11
  import { timer, take, tap, merge, Observable, BehaviorSubject, debounceTime, filter, ReplaySubject, lastValueFrom, isObservable, of, firstValueFrom, throwError, switchMap, map as map$1, fromEvent, interval, mergeMap, distinct, concat, startWith as startWith$1, Subject, debounce } from 'rxjs';
12
- import { catchError, tap as tap$1, map, retry, debounceTime as debounceTime$1, filter as filter$1, startWith, switchMap as switchMap$1, first, timeout } from 'rxjs/operators';
12
+ import { catchError, tap as tap$1, map, retry, debounceTime as debounceTime$1, filter as filter$1, switchMap as switchMap$1, startWith, first, timeout } from 'rxjs/operators';
13
13
  import { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpErrorResponse } from '@angular/common/http';
14
14
  import * as i1$1 from '@angular/material/dialog';
15
15
  import { MatDialog, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
@@ -6249,7 +6249,7 @@ class InputBase {
6249
6249
  // @ViewChild('dateInput') dateInputRef?: DateInputComponent;
6250
6250
  this.control = toSignal(merge(toObservable(this.form), toObservable(this.name)).pipe(filter(() => this.form() != null && !!this.name() != null), map$1(() => this.form().controls[this.name()]), tap((control) => {
6251
6251
  this.onControlSet?.();
6252
- console.log('control changed', control);
6252
+ // console.log('control changed', control);
6253
6253
  })));
6254
6254
  this.formFieldNotifier = toSignal(toObservable(this.control).pipe(
6255
6255
  // tap((control) => {
@@ -6660,7 +6660,9 @@ class AutocompleteTdRfComponent extends InputTD_RFComponent {
6660
6660
  constructor(autoS) {
6661
6661
  super();
6662
6662
  this.autoS = autoS;
6663
- this.filteredOptions = signal([]);
6663
+ this.filteredOptions = computed(() => {
6664
+ return this.autoS.filterOptions(this.valueSignal(), this.options());
6665
+ });
6664
6666
  this.validate = true;
6665
6667
  this.valueChanged = new ReplaySubject();
6666
6668
  this.displayWith = (val) =>
@@ -6699,24 +6701,14 @@ class AutocompleteTdRfComponent extends InputTD_RFComponent {
6699
6701
  super.change({ target: { value: r } });
6700
6702
  });
6701
6703
  };
6702
- if (this.optionsFunc) {
6704
+ if (this.optionsFunc)
6703
6705
  this.valueChanged
6704
- .pipe(debounceTime$1(600), filter$1((v) => v != null && v != ''))
6706
+ .pipe(tap$1(() => (this.loading = true)), debounceTime$1(600), filter$1((v) => v != null && v != ''), switchMap$1((v) => this.optionsFunc(v)))
6705
6707
  .subscribe((r) => {
6706
- this.loading = true;
6707
- this.optionsFunc(r).subscribe((options) => {
6708
- this._options = options;
6709
- });
6710
- });
6711
- this.options$.subscribe((r) => {
6712
- this.filteredOptions.set(r);
6708
+ // debugger
6709
+ this._options = r;
6713
6710
  this.loading = false;
6714
6711
  });
6715
- }
6716
- else
6717
- merge(this.control().valueChanges.pipe(startWith('')), this.options$).subscribe((r) => {
6718
- this.filteredOptions.set(this.autoS.filterOptions(this.control().value, this.options()));
6719
- });
6720
6712
  }
6721
6713
  fetchOptions($event) {
6722
6714
  if (this.optionsFunc) {
@@ -6729,9 +6721,9 @@ class AutocompleteTdRfComponent extends InputTD_RFComponent {
6729
6721
  }
6730
6722
  selected($event) {
6731
6723
  this.mSelectedOptionLabel.emit(this.displayWith(this.control()?.getRawValue()));
6732
- setTimeout(() => {
6733
- this.filteredOptions.set(this.options());
6734
- }, 600);
6724
+ // setTimeout(() => {
6725
+ // this.filteredOptions.set(this.options());
6726
+ // }, 600);
6735
6727
  }
6736
6728
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AutocompleteTdRfComponent, deps: [{ token: AutocompleteService }], target: i0.ɵɵFactoryTarget.Component }); }
6737
6729
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: AutocompleteTdRfComponent, isStandalone: true, selector: "autocomplete-td-rf,app-autocomplete-td-rf", inputs: { validate: "validate", _options: ["options", "_options"] }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: MatAutocomplete, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"row align-items-center\">\n <!-- {{options()|json}} -->\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"form()|toAny\"\n [hint]=\"hint\"\n [id]=\"idSignal()\"\n [invalidCheckbox]=\"invalidCheckboxSignal()\"\n [isRequired]=\"isRequiredSignal()\"\n [label]=\"labelSignal()\"\n [lblCl]=\"lblCl\"\n [light]=\"light\"\n [mini]=\"miniSignal()\"\n [showRequiredTag]=\"showRequiredTagSignal()\"\n [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\" />\n }\n <div class=\"{{ stackedSignal() ? 'col-12' : 'col-md' }} position-relative\">\n <form [formGroup]=\"form()|toAny\" class=\"position-relative\">\n <input\n type=\"text\"\n data-noformat=\"true\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [id]=\"idSignal()\"\n (keyup)=\"fetchOptions($event)\"\n [class]=\"inputClassSignal()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n #trigger=\"matAutocompleteTrigger\"\n [matAutocomplete]=\"auto\"\n #inp />\n @if (!disabledSignal()) {\n <i class=\"input-icon fa fa-search\" (click)=\"$event.stopPropagation(); trigger.openPanel()\"></i>\n }\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayWith\" class=\"options-w-auto\" (optionSelected)=\"selected($event)\">\n <!-- <ng-container *ngIf=\"duplicateCheck; else elseNoDulicateTemplate\">\n <mat-option\n *ngFor=\"let item of filteredOptions|removeUsedOptionsReactive:(form.parent|toAny):(form.value):'value':name;trackBy:iS.trackByValue\"\n [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"ele.innerText\" [matTooltipDisabled]=\"ele.scrollWidth<=ele.offsetWidth\"\n #ele>\n {{ item.label | appTranslate: translateOptions | async }}\n </div>\n </mat-option>\n </ng-container>\n <ng-template #elseNoDulicateTemplate>\n <mat-option\n *ngFor=\"let item of filteredOptions;trackBy:iS.trackByValue\"\n [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"ele.innerText\" [matTooltipDisabled]=\"ele.scrollWidth<=ele.offsetWidth\"\n #ele>\n {{ item.label | appTranslate: translateOptions | async }}\n </div>\n </mat-option>\n </ng-template> -->\n\n @if (showEmptyOptionSignal()) {\n <mat-option selected [value]=\"null\" class=\"empty-option\">\n {{ optionsFunc ? 'Type to search' : placeholder() }}\n </mat-option>\n }\n @for (item of filteredOptions(); track iS.trackByValue) {\n <mat-option [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"ele.innerText\" [matTooltipShowDelay]=\"1000\" [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\" #ele>\n {{ item.label | appTranslate: translateOptions() | async }}\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n @if (dirtySignal() && showValidationSignal() && showValidationIconSignal()) {\n <div [ngClass]=\"{ valid: validSignal() }\" class=\"validity-icon\"><i class=\"fa fa-check\"></i></div>\n <div [ngClass]=\"{ pending: pendingSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n <div [ngClass]=\"{ invalid: invalidSignal() }\" class=\"validity-icon\"><i class=\"fa fa-times\"></i></div>\n }\n @if (loading) {\n <div class=\"d-flex text-primary me-1 validity-icon\"><i class=\"fa fa-spinner fa-spin\"></i></div>\n }\n </form>\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message [label]=\"labelSignal()\" [control]=\"control()\" />\n}\n", styles: ["i.input-icon{position:absolute;top:15px;right:7px;opacity:.4;font-size:10px}.option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: InputLabelComponent, selector: "app-input-label", inputs: ["colored", "form", "hint", "inlineHint", "id", "invalidCheckbox", "isRequired", "label", "labelLink", "lblCl", "light", "mini", "showLabel", "showRequiredTag", "small", "stacked", "theme", "xsmall"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i3$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }, { kind: "pipe", type: TranslatePipe, name: "appTranslate" }] }); }