@alfresco/adf-content-services 8.1.0-15902121227 → 8.1.0-15928551305
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/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +5 -6
- package/esm2022/lib/aspect-list/aspect-list.component.mjs +5 -6
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +6 -7
- package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -5
- package/esm2022/lib/category/categories-management/categories-management.component.mjs +10 -11
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -5
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +6 -7
- package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -5
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +8 -9
- package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +6 -7
- package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +11 -12
- package/esm2022/lib/content-type/content-type-dialog.component.mjs +7 -8
- package/esm2022/lib/content.module.mjs +2 -2
- package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +5 -6
- package/esm2022/lib/dialogs/folder/folder.dialog.mjs +7 -8
- package/esm2022/lib/dialogs/library/library.dialog.mjs +8 -9
- package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +9 -10
- package/esm2022/lib/directives/content-directive.module.mjs +2 -2
- package/esm2022/lib/directives/node-counter.directive.mjs +4 -5
- package/esm2022/lib/document-list/components/document-list.component.mjs +6 -7
- package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +7 -8
- package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +5 -7
- package/esm2022/lib/document-list/document-list.module.mjs +1 -5
- package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +5 -6
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +5 -6
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +7 -8
- package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -5
- package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +6 -7
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +5 -6
- package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -5
- package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +6 -7
- package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +8 -9
- package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +5 -6
- package/esm2022/lib/search/components/search-control.component.mjs +4 -5
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +8 -9
- package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -5
- package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -5
- package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -5
- package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -5
- package/esm2022/lib/search/components/search-form/search-form.component.mjs +6 -7
- package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -5
- package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +5 -6
- package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +5 -6
- package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
- package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +6 -7
- package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -5
- package/esm2022/lib/search/components/search-text/search-text.component.mjs +8 -9
- package/esm2022/lib/search/components/search.component.mjs +4 -5
- package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +6 -7
- package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +6 -7
- package/esm2022/lib/tree/components/tree.component.mjs +10 -11
- package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -5
- package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +6 -7
- package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +5 -6
- package/esm2022/lib/upload/components/upload-button.component.mjs +5 -6
- package/esm2022/lib/upload/components/upload-version-button.component.mjs +5 -6
- package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -5
- package/esm2022/lib/version-manager/version-list.component.mjs +5 -6
- package/esm2022/lib/version-manager/version-manager.component.mjs +4 -5
- package/esm2022/lib/version-manager/version-upload.component.mjs +7 -8
- package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +6 -7
- package/fesm2022/adf-content-services.mjs +188 -192
- package/fesm2022/adf-content-services.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -22,15 +22,14 @@ import { first, map } from 'rxjs/operators';
|
|
|
22
22
|
import { CommonModule } from '@angular/common';
|
|
23
23
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
24
24
|
import { MatInputModule } from '@angular/material/input';
|
|
25
|
-
import {
|
|
25
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
26
26
|
import { MatButtonModule } from '@angular/material/button';
|
|
27
27
|
import * as i0 from "@angular/core";
|
|
28
28
|
import * as i1 from "@angular/common";
|
|
29
29
|
import * as i2 from "@angular/forms";
|
|
30
30
|
import * as i3 from "@angular/material/form-field";
|
|
31
31
|
import * as i4 from "@angular/material/input";
|
|
32
|
-
import * as i5 from "@
|
|
33
|
-
import * as i6 from "@angular/material/button";
|
|
32
|
+
import * as i5 from "@angular/material/button";
|
|
34
33
|
export class SearchNumberRangeComponent {
|
|
35
34
|
constructor() {
|
|
36
35
|
this.matcher = new LiveErrorStateMatcher();
|
|
@@ -146,10 +145,10 @@ export class SearchNumberRangeComponent {
|
|
|
146
145
|
}
|
|
147
146
|
}
|
|
148
147
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchNumberRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchNumberRangeComponent, isStandalone: true, selector: "adf-search-number-range", host: { classAttribute: "adf-search-number-range" }, ngImport: i0, template: "<form [formGroup]=\"form\" novalidate (ngSubmit)=\"apply(form.value, form.valid)\">\n\n <mat-form-field>\n <input\n matInput [formControl]=\"from\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.FROM' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-from-input\">\n <mat-error *ngIf=\"from.hasError('pattern') || from.hasError('min')\" data-automation-id=\"number-range-from-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"from.hasError('required')\" data-automation-id=\"number-range-from-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput [formControl]=\"to\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.TO' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-to-input\">\n <mat-error *ngIf=\"to.hasError('pattern') || to.hasError('min')\" data-automation-id=\"number-range-to-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"to.hasError('required')\" data-automation-id=\"number-range-to-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n\n <div class=\"adf-facet-buttons\" *ngIf=\"!settings?.hideDefaultAction\">\n <button mat-button color=\"primary\" type=\"button\" (click)=\"clear()\" data-automation-id=\"number-range-btn-clear\">\n {{ 'SEARCH.FILTER.ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button color=\"primary\" type=\"submit\" [disabled]=\"!form.valid\" data-automation-id=\"number-range-btn-apply\">\n {{ 'SEARCH.FILTER.ACTIONS.APPLY' | translate }}\n </button>\n </div>\n</form>\n", styles: [".adf-search-number-range>form{display:inline-flex;flex-direction:column;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "
|
|
148
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchNumberRangeComponent, isStandalone: true, selector: "adf-search-number-range", host: { classAttribute: "adf-search-number-range" }, ngImport: i0, template: "<form [formGroup]=\"form\" novalidate (ngSubmit)=\"apply(form.value, form.valid)\">\n\n <mat-form-field>\n <input\n matInput [formControl]=\"from\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.FROM' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-from-input\">\n <mat-error *ngIf=\"from.hasError('pattern') || from.hasError('min')\" data-automation-id=\"number-range-from-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"from.hasError('required')\" data-automation-id=\"number-range-from-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput [formControl]=\"to\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.TO' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-to-input\">\n <mat-error *ngIf=\"to.hasError('pattern') || to.hasError('min')\" data-automation-id=\"number-range-to-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"to.hasError('required')\" data-automation-id=\"number-range-to-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n\n <div class=\"adf-facet-buttons\" *ngIf=\"!settings?.hideDefaultAction\">\n <button mat-button color=\"primary\" type=\"button\" (click)=\"clear()\" data-automation-id=\"number-range-btn-clear\">\n {{ 'SEARCH.FILTER.ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button color=\"primary\" type=\"submit\" [disabled]=\"!form.valid\" data-automation-id=\"number-range-btn-apply\">\n {{ 'SEARCH.FILTER.ACTIONS.APPLY' | translate }}\n </button>\n </div>\n</form>\n", styles: [".adf-search-number-range>form{display:inline-flex;flex-direction:column;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
150
149
|
}
|
|
151
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchNumberRangeComponent, decorators: [{
|
|
152
151
|
type: Component,
|
|
153
|
-
args: [{ selector: 'adf-search-number-range', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule,
|
|
152
|
+
args: [{ selector: 'adf-search-number-range', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, TranslatePipe, MatButtonModule], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-number-range' }, template: "<form [formGroup]=\"form\" novalidate (ngSubmit)=\"apply(form.value, form.valid)\">\n\n <mat-form-field>\n <input\n matInput [formControl]=\"from\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.FROM' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-from-input\">\n <mat-error *ngIf=\"from.hasError('pattern') || from.hasError('min')\" data-automation-id=\"number-range-from-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"from.hasError('required')\" data-automation-id=\"number-range-from-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput [formControl]=\"to\" [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.TO' | translate }}\"\n autocomplete=\"off\"\n data-automation-id=\"number-range-to-input\">\n <mat-error *ngIf=\"to.hasError('pattern') || to.hasError('min')\" data-automation-id=\"number-range-to-error-invalid\">\n {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }}\n </mat-error>\n <mat-error *ngIf=\"to.hasError('required')\" data-automation-id=\"number-range-to-error-required\">\n {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }}\n </mat-error>\n </mat-form-field>\n\n\n <div class=\"adf-facet-buttons\" *ngIf=\"!settings?.hideDefaultAction\">\n <button mat-button color=\"primary\" type=\"button\" (click)=\"clear()\" data-automation-id=\"number-range-btn-clear\">\n {{ 'SEARCH.FILTER.ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button color=\"primary\" type=\"submit\" [disabled]=\"!form.valid\" data-automation-id=\"number-range-btn-apply\">\n {{ 'SEARCH.FILTER.ACTIONS.APPLY' | translate }}\n </button>\n </div>\n</form>\n", styles: [".adf-search-number-range>form{display:inline-flex;flex-direction:column;width:100%}\n"] }]
|
|
154
153
|
}] });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1udW1iZXItcmFuZ2Uvc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1udW1iZXItcmFuZ2Uvc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQVczRCxNQUFNLE9BQU8sMEJBQTBC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LE1BQU0sRUFBRSxDQUFDO1lBQzFCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSTtRQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDOytHQXZKUSwwQkFBMEI7bUdBQTFCLDBCQUEwQix3SUN4Q3ZDLDZpRUF3Q0EsOElETmMsWUFBWSxrSUFBRSxtQkFBbUIsKzlCQUFFLGtCQUFrQixzVUFBRSxjQUFjLDBXQUFFLGVBQWUsMkZBQUUsZUFBZTs7NEZBTXhHLDBCQUEwQjtrQkFUdEMsU0FBUzsrQkFDSSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLGlCQUduRyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlYXJjaFdpZGdldCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LXNldHRpbmdzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VhcmNoLXF1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMaXZlRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICcuLi8uLi9mb3Jtcy9saXZlLWVycm9yLXN0YXRlLW1hdGNoZXInO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zZWFyY2gtbnVtYmVyLXJhbmdlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zZWFyY2gtbnVtYmVyLXJhbmdlJyB9XG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaE51bWJlclJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIGZyb206IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgICB0bzogVW50eXBlZEZvcm1Db250cm9sO1xuXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBtYXRjaGVyID0gbmV3IExpdmVFcnJvclN0YXRlTWF0Y2hlcigpO1xuXG4gICAgaWQ6IHN0cmluZztcbiAgICBzZXR0aW5ncz86IFNlYXJjaFdpZGdldFNldHRpbmdzO1xuICAgIGNvbnRleHQ/OiBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlO1xuXG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBmb3JtYXQgPSAnW3tGUk9NfSBUTyB7VE99XSc7XG5cbiAgICBpc0FjdGl2ZSA9IGZhbHNlO1xuICAgIHN0YXJ0VmFsdWU6IGFueTtcblxuICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnM7XG4gICAgZW5hYmxlQ2hhbmdlVXBkYXRlOiBib29sZWFuO1xuICAgIGRpc3BsYXlWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkID0gdGhpcy5zZXR0aW5ncy5maWVsZDtcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0ID0gdGhpcy5zZXR0aW5ncy5mb3JtYXQgfHwgJ1t7RlJPTX0gVE8ge1RPfV0nO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14tPygwfFsxLTldXFxkKik/JC8pLCBWYWxpZGF0b3JzLm1pbigwKV0pO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZnJvbSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5zdGFydFZhbHVlWydmcm9tJ10sIHRoaXMudmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB0aGlzLnRvID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnN0YXJ0VmFsdWVbJ3RvJ10sIHRoaXMudmFsaWRhdG9ycyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZyb20gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCB0aGlzLnZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgdGhpcy50byA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIHRoaXMudmFsaWRhdG9ycyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmcm9tOiB0aGlzLmZyb20sXG4gICAgICAgICAgICAgICAgdG86IHRoaXMudG9cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmVuYWJsZUNoYW5nZVVwZGF0ZSA9IHRoaXMuc2V0dGluZ3M/LmFsbG93VXBkYXRlT25DaGFuZ2UgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnBvcHVsYXRlRmlsdGVyc1xuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGZpbHRlcnNRdWVyaWVzKSA9PiBmaWx0ZXJzUXVlcmllc1t0aGlzLmlkXSksXG4gICAgICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyUXVlcnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyUXVlcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmcm9tOiBmaWx0ZXJRdWVyeS5mcm9tLCB0bzogZmlsdGVyUXVlcnkudG8gfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5KHsgZnJvbTogZmlsdGVyUXVlcnkuZnJvbSwgdG86IGZpbHRlclF1ZXJ5LnRvIH0sIHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlckxvYWRlZC5uZXh0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3JtVmFsaWRhdG9yKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQoZm9ybUdyb3VwLmdldCgnZnJvbScpLnZhbHVlLCAxMCkgPCBwYXJzZUludChmb3JtR3JvdXAuZ2V0KCd0bycpLnZhbHVlLCAxMCkgPyBudWxsIDogeyBtaXNtYXRjaDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIGFwcGx5KG1vZGVsOiB7IGZyb206IHN0cmluZzsgdG86IHN0cmluZyB9LCBpc1ZhbGlkOiBib29sZWFuLCB1cGRhdGVDb250ZXh0ID0gdHJ1ZSkge1xuICAgICAgICBpZiAoaXNWYWxpZCAmJiB0aGlzLmlkICYmIHRoaXMuY29udGV4dCAmJiB0aGlzLmZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uT2JqZWN0ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uT2JqZWN0LnNldCgnRlJPTScsIG1vZGVsLmZyb20pO1xuICAgICAgICAgICAgZGVzdGluYXRpb25PYmplY3Quc2V0KCdUTycsIG1vZGVsLnRvKTtcblxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1hdFN0cmluZyh0aGlzLmZvcm1hdCwgZGVzdGluYXRpb25PYmplY3QpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSBgJHt0aGlzLmZpZWxkfToke3ZhbHVlfWA7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJQYXJhbSA9IHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPz8ge307XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID0gZmlsdGVyUGFyYW07XG4gICAgICAgICAgICBmaWx0ZXJQYXJhbS5mcm9tID0gbW9kZWwuZnJvbTtcbiAgICAgICAgICAgIGZpbHRlclBhcmFtLnRvID0gbW9kZWwudG87XG4gICAgICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0U3RyaW5nKHN0cjogc3RyaW5nLCBkZXN0aW5hdGlvbk9iamVjdDogTWFwPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXN1bHQgPSBzdHI7XG5cbiAgICAgICAgZGVzdGluYXRpb25PYmplY3QuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhwciA9IG5ldyBSZWdFeHAoJ3snICsga2V5ICsgJ30nLCAnZ20nKTtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKGV4cHIsIHZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBzdWJtaXRWYWx1ZXMoKSB7XG4gICAgICAgIHRoaXMuYXBwbHkodGhpcy5mb3JtLnZhbHVlLCB0aGlzLmZvcm0udmFsaWQpO1xuICAgIH1cblxuICAgIGhhc1ZhbGlkVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQ7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbHVlO1xuICAgIH1cblxuICAgIHVwZGF0ZURpc3BsYXlWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkIHx8IHRoaXMuZm9ybS5wcmlzdGluZSkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUkLm5leHQoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUkLm5leHQoYCR7dGhpcy5mb3JtLnZhbHVlLmZyb219IC0gJHt0aGlzLmZvcm0udmFsdWUudG99ICR7dGhpcy5zZXR0aW5ncy51bml0ID8/ICcnfWApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLmZvcm1bJ2Zyb20nXS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZm9ybVsndG8nXS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgfVxuXG4gICAgY2xlYXIodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7XG4gICAgICAgICAgICBmcm9tOiAnJyxcbiAgICAgICAgICAgIHRvOiAnJ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5pZCAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5lbmFibGVDaGFuZ2VVcGRhdGUgJiYgdXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0KHVwZGF0ZUNvbnRleHQgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0ICYmIHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cImFwcGx5KGZvcm0udmFsdWUsIGZvcm0udmFsaWQpXCI+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImZyb21cIiBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwibWF0Y2hlclwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdTRUFSQ0guRklMVEVSLlJBTkdFLkZST00nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtZnJvbS1pbnB1dFwiPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZnJvbS5oYXNFcnJvcigncGF0dGVybicpIHx8IGZyb20uaGFzRXJyb3IoJ21pbicpXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibnVtYmVyLXJhbmdlLWZyb20tZXJyb3ItaW52YWxpZFwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5JTlZBTElELUZPUk1BVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmcm9tLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibnVtYmVyLXJhbmdlLWZyb20tZXJyb3ItcmVxdWlyZWRcIj5cbiAgICAgICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uUkVRVUlSRUQtVkFMVUUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cInRvXCIgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnU0VBUkNILkZJTFRFUi5SQU5HRS5UTycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cIm51bWJlci1yYW5nZS10by1pbnB1dFwiPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwidG8uaGFzRXJyb3IoJ3BhdHRlcm4nKSB8fCB0by5oYXNFcnJvcignbWluJylcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtdG8tZXJyb3ItaW52YWxpZFwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5JTlZBTElELUZPUk1BVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ0by5oYXNFcnJvcigncmVxdWlyZWQnKVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm51bWJlci1yYW5nZS10by1lcnJvci1yZXF1aXJlZFwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5SRVFVSVJFRC1WQUxVRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuXG4gICAgPGRpdiBjbGFzcz1cImFkZi1mYWNldC1idXR0b25zXCIgKm5nSWY9XCIhc2V0dGluZ3M/LmhpZGVEZWZhdWx0QWN0aW9uXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyKClcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtYnRuLWNsZWFyXCI+XG4gICAgICAgICAgICB7eyAnU0VBUkNILkZJTFRFUi5BQ1RJT05TLkNMRUFSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtYnRuLWFwcGx5XCI+XG4gICAgICAgICAgICB7eyAnU0VBUkNILkZJTFRFUi5BQ1RJT05TLkFQUExZJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1udW1iZXItcmFuZ2Uvc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1udW1iZXItcmFuZ2Uvc2VhcmNoLW51bWJlci1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBVzNELE1BQU0sT0FBTywwQkFBMEI7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TUFBTSxFQUFFLENBQUM7WUFDMUIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsR0FBRyxJQUFJO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7K0dBdkpRLDBCQUEwQjttR0FBMUIsMEJBQTBCLHdJQ3hDdkMsNmlFQXdDQSw4SUROYyxZQUFZLGtJQUFFLG1CQUFtQiwrOUJBQUUsa0JBQWtCLHNVQUFFLGNBQWMsc1dBQUUsYUFBYSxpREFBRSxlQUFlOzs0RkFNdEcsMEJBQTBCO2tCQVR0QyxTQUFTOytCQUNJLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsaUJBR2pHLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC13aWRnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlYXJjaFdpZGdldFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC13aWRnZXQtc2V0dGluZ3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWFyY2gtcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IExpdmVFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uLy4uL2Zvcm1zL2xpdmUtZXJyb3Itc3RhdGUtbWF0Y2hlcic7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zZWFyY2gtbnVtYmVyLXJhbmdlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1udW1iZXItcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1udW1iZXItcmFuZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtc2VhcmNoLW51bWJlci1yYW5nZScgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hOdW1iZXJSYW5nZUNvbXBvbmVudCBpbXBsZW1lbnRzIFNlYXJjaFdpZGdldCwgT25Jbml0IHtcbiAgICBmcm9tOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gICAgdG86IFVudHlwZWRGb3JtQ29udHJvbDtcblxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgbWF0Y2hlciA9IG5ldyBMaXZlRXJyb3JTdGF0ZU1hdGNoZXIoKTtcblxuICAgIGlkOiBzdHJpbmc7XG4gICAgc2V0dGluZ3M/OiBTZWFyY2hXaWRnZXRTZXR0aW5ncztcbiAgICBjb250ZXh0PzogU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZTtcblxuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgZm9ybWF0ID0gJ1t7RlJPTX0gVE8ge1RPfV0nO1xuXG4gICAgaXNBY3RpdmUgPSBmYWxzZTtcbiAgICBzdGFydFZhbHVlOiBhbnk7XG5cbiAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzO1xuICAgIGVuYWJsZUNoYW5nZVVwZGF0ZTogYm9vbGVhbjtcbiAgICBkaXNwbGF5VmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncykge1xuICAgICAgICAgICAgdGhpcy5maWVsZCA9IHRoaXMuc2V0dGluZ3MuZmllbGQ7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdCA9IHRoaXMuc2V0dGluZ3MuZm9ybWF0IHx8ICdbe0ZST019IFRPIHtUT31dJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eLT8oMHxbMS05XVxcZCopPyQvKSwgVmFsaWRhdG9ycy5taW4oMCldKTtcblxuICAgICAgICBpZiAodGhpcy5zdGFydFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZyb20gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuc3RhcnRWYWx1ZVsnZnJvbSddLCB0aGlzLnZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgdGhpcy50byA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5zdGFydFZhbHVlWyd0byddLCB0aGlzLnZhbGlkYXRvcnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mcm9tID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgdGhpcy52YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIHRoaXMudG8gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCB0aGlzLnZhbGlkYXRvcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZnJvbTogdGhpcy5mcm9tLFxuICAgICAgICAgICAgICAgIHRvOiB0aGlzLnRvXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5lbmFibGVDaGFuZ2VVcGRhdGUgPSB0aGlzLnNldHRpbmdzPy5hbGxvd1VwZGF0ZU9uQ2hhbmdlID8/IHRydWU7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICAgIHRoaXMuY29udGV4dC5wb3B1bGF0ZUZpbHRlcnNcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChmaWx0ZXJzUXVlcmllcykgPT4gZmlsdGVyc1F1ZXJpZXNbdGhpcy5pZF0pLFxuICAgICAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlclF1ZXJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgZnJvbTogZmlsdGVyUXVlcnkuZnJvbSwgdG86IGZpbHRlclF1ZXJ5LnRvIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseSh7IGZyb206IGZpbHRlclF1ZXJ5LmZyb20sIHRvOiBmaWx0ZXJRdWVyeS50byB9LCB0cnVlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJMb2FkZWQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9ybVZhbGlkYXRvcihmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGZvcm1Hcm91cC5nZXQoJ2Zyb20nKS52YWx1ZSwgMTApIDwgcGFyc2VJbnQoZm9ybUdyb3VwLmdldCgndG8nKS52YWx1ZSwgMTApID8gbnVsbCA6IHsgbWlzbWF0Y2g6IHRydWUgfTtcbiAgICB9XG5cbiAgICBhcHBseShtb2RlbDogeyBmcm9tOiBzdHJpbmc7IHRvOiBzdHJpbmcgfSwgaXNWYWxpZDogYm9vbGVhbiwgdXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgaWYgKGlzVmFsaWQgJiYgdGhpcy5pZCAmJiB0aGlzLmNvbnRleHQgJiYgdGhpcy5maWVsZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICBjb25zdCBkZXN0aW5hdGlvbk9iamVjdCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbk9iamVjdC5zZXQoJ0ZST00nLCBtb2RlbC5mcm9tKTtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uT2JqZWN0LnNldCgnVE8nLCBtb2RlbC50byk7XG5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtYXRTdHJpbmcodGhpcy5mb3JtYXQsIGRlc3RpbmF0aW9uT2JqZWN0KTtcblxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnF1ZXJ5RnJhZ21lbnRzW3RoaXMuaWRdID0gYCR7dGhpcy5maWVsZH06JHt2YWx1ZX1gO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyUGFyYW0gPSB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID8/IHt9O1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXSA9IGZpbHRlclBhcmFtO1xuICAgICAgICAgICAgZmlsdGVyUGFyYW0uZnJvbSA9IG1vZGVsLmZyb207XG4gICAgICAgICAgICBmaWx0ZXJQYXJhbS50byA9IG1vZGVsLnRvO1xuICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdFN0cmluZyhzdHI6IHN0cmluZywgZGVzdGluYXRpb25PYmplY3Q6IE1hcDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmVzdWx0ID0gc3RyO1xuXG4gICAgICAgIGRlc3RpbmF0aW9uT2JqZWN0LmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHIgPSBuZXcgUmVnRXhwKCd7JyArIGtleSArICd9JywgJ2dtJyk7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShleHByLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgc3VibWl0VmFsdWVzKCkge1xuICAgICAgICB0aGlzLmFwcGx5KHRoaXMuZm9ybS52YWx1ZSwgdGhpcy5mb3JtLnZhbGlkKTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZFZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZTtcbiAgICB9XG5cbiAgICB1cGRhdGVEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCB8fCB0aGlzLmZvcm0ucHJpc3RpbmUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KCcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KGAke3RoaXMuZm9ybS52YWx1ZS5mcm9tfSAtICR7dGhpcy5mb3JtLnZhbHVlLnRvfSAke3RoaXMuc2V0dGluZ3MudW5pdCA/PyAnJ31gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5mb3JtWydmcm9tJ10uc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmZvcm1bJ3RvJ10uc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIH1cblxuICAgIGNsZWFyKHVwZGF0ZUNvbnRleHQgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoe1xuICAgICAgICAgICAgZnJvbTogJycsXG4gICAgICAgICAgICB0bzogJydcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSAnJztcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZW5hYmxlQ2hhbmdlVXBkYXRlICYmIHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNldCh1cGRhdGVDb250ZXh0ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIGlmICh0aGlzLmlkICYmIHRoaXMuY29udGV4dCAmJiB1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBub3ZhbGlkYXRlIChuZ1N1Ym1pdCk9XCJhcHBseShmb3JtLnZhbHVlLCBmb3JtLnZhbGlkKVwiPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJmcm9tXCIgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnU0VBUkNILkZJTFRFUi5SQU5HRS5GUk9NJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwibnVtYmVyLXJhbmdlLWZyb20taW5wdXRcIj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZyb20uaGFzRXJyb3IoJ3BhdHRlcm4nKSB8fCBmcm9tLmhhc0Vycm9yKCdtaW4nKVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm51bWJlci1yYW5nZS1mcm9tLWVycm9yLWludmFsaWRcIj5cbiAgICAgICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uSU5WQUxJRC1GT1JNQVQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZnJvbS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm51bWJlci1yYW5nZS1mcm9tLWVycm9yLXJlcXVpcmVkXCI+XG4gICAgICAgICAgICB7eyAnU0VBUkNILkZJTFRFUi5WQUxJREFUSU9OLlJFUVVJUkVELVZBTFVFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJ0b1wiIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJtYXRjaGVyXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ1NFQVJDSC5GSUxURVIuUkFOR0UuVE8nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtdG8taW5wdXRcIj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInRvLmhhc0Vycm9yKCdwYXR0ZXJuJykgfHwgdG8uaGFzRXJyb3IoJ21pbicpXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibnVtYmVyLXJhbmdlLXRvLWVycm9yLWludmFsaWRcIj5cbiAgICAgICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uSU5WQUxJRC1GT1JNQVQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwidG8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJudW1iZXItcmFuZ2UtdG8tZXJyb3ItcmVxdWlyZWRcIj5cbiAgICAgICAgICAgIHt7ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uUkVRVUlSRUQtVkFMVUUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cblxuICAgIDxkaXYgY2xhc3M9XCJhZGYtZmFjZXQtYnV0dG9uc1wiICpuZ0lmPVwiIXNldHRpbmdzPy5oaWRlRGVmYXVsdEFjdGlvblwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhcigpXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibnVtYmVyLXJhbmdlLWJ0bi1jbGVhclwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuQUNUSU9OUy5DTEVBUicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibnVtYmVyLXJhbmdlLWJ0bi1hcHBseVwiPlxuICAgICAgICAgICAge3sgJ1NFQVJDSC5GSUxURVIuQUNUSU9OUy5BUFBMWScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -19,7 +19,7 @@ import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
|
19
19
|
import { FileSizeOperator } from './file-size-operator.enum';
|
|
20
20
|
import { FileSizeUnit } from './file-size-unit.enum';
|
|
21
21
|
import { ReplaySubject, Subject } from 'rxjs';
|
|
22
|
-
import {
|
|
22
|
+
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
23
23
|
import { CommonModule } from '@angular/common';
|
|
24
24
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
25
25
|
import { MatSelectModule } from '@angular/material/select';
|
|
@@ -232,13 +232,13 @@ export class SearchPropertiesComponent {
|
|
|
232
232
|
return `${this.getCssStyle(el, 'font-weight')} ${this.getCssStyle(el, 'font-size')} ${this.getCssStyle(el, 'font-family')}`;
|
|
233
233
|
}
|
|
234
234
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchPropertiesComponent, deps: [{ token: i1.FormBuilder }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
235
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchPropertiesComponent, isStandalone: true, selector: "adf-search-properties", viewQueries: [{ propertyName: "fileSizeOperatorSelectElement", first: true, predicate: ["fileSizeOperatorSelect"], descendants: true, read: ElementRef }], ngImport: i0, template: "<form [formGroup]=\"form\" class=\"adf-search-properties-form\">\n <div class=\"adf-search-properties-file-size-container\">\n <label\n for=\"adf-search-properties-file-size\"\n class=\"adf-search-properties-file-size-label\">\n {{ 'SEARCH.SEARCH_PROPERTIES.FILE_SIZE' | translate }}\n </label>\n <mat-form-field\n [style.width.px]=\"fileSizeOperatorsMaxWidth\"\n subscriptSizing=\"dynamic\"\n class=\"adf-search-properties-file-size-operator\">\n <mat-select\n data-automation-id=\"adf-search-properties-file-size-operator-select\"\n [formControl]=\"form.controls.fileSizeOperator\"\n #fileSizeOperatorSelect>\n <mat-option\n *ngFor=\"let fileSizeOperator of fileSizeOperators\"\n [value]=\"fileSizeOperator\">\n {{ fileSizeOperator | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <input\n [formControl]=\"form.controls.fileSize\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n (input)=\"narrowDownAllowedCharacters($event)\"\n (keydown)=\"preventIncorrectNumberCharacters($event)\"\n id=\"adf-search-properties-file-size\"\n [placeholder]=\"'SEARCH.SEARCH_PROPERTIES.FILE_SIZE_PLACEHOLDER' | translate\"\n (blur)=\"clearNumberFieldWhenInvalid($event)\"\n data-automation-id=\"adf-search-properties-file-size-input\" />\n <mat-form-field class=\"adf-search-properties-file-size-unit\" subscriptSizing=\"dynamic\">\n <mat-select\n [formControl]=\"form.controls.fileSizeUnit\"\n data-automation-id=\"adf-search-properties-file-size-unit-select\">\n <mat-option\n *ngFor=\"let fileSizeUnit of fileSizeUnits\"\n [value]=\"fileSizeUnit\">\n {{ fileSizeUnit.abbreviation | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <p class=\"adf-search-properties-file-type-label\">{{ 'SEARCH.SEARCH_PROPERTIES.FILE_TYPE' | translate }}</p>\n <adf-search-chip-autocomplete-input\n [autocompleteOptions]=\"autocompleteOptions\"\n [preselectedOptions]=\"preselectedOptions\"\n (optionsChanged)=\"selectedExtensions = $event\"\n [onReset$]=\"reset$\"\n [allowOnlyPredefinedValues]=\"false\"\n [compareOption]=\"compareFileExtensions\"\n [formatChipValue]=\"getExtensionWithoutDot\"\n [filter]=\"filterExtensions\"\n placeholder=\"SEARCH.SEARCH_PROPERTIES.FILE_TYPE\" />\n</form>\n", styles: ["adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .adf-search-properties-file-size-label{margin-top:4px;display:block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:9px;padding-bottom:9px;display:inline-block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-form-field-infix{height:37.5px;min-height:37.5px;display:inline-block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-trigger{height:17.5px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-arrow-wrapper{width:16px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mdc-line-ripple:before{display:none}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-arrow{margin-left:5px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-form-field{margin-bottom:18px}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input{display:block}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-start,adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-end{border-top:1px solid var(--adf-theme-mat-grey-color-a400);border-bottom:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-start{border-left:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-end{border-right:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-focused .mdc-text-field--outlined{outline:2px auto -webkit-focus-ring-color}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-form-field-appearance-outline .mdc-text-field--outlined-thick .mdc-text-field--outlined-start,adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-form-field-appearance-outline .mdc-text-field--outlined-thick .mdc-text-field--outlined-end{border-width:1px}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-notched-outline__leading{border-color:var(--adf-theme-foreground-text-color-027)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-notched-outline__trailing{border-color:var(--adf-theme-foreground-text-color-027)}adf-search-properties input,adf-search-properties .mat-form-field-infix.mat-form-field-infix{height:25px;border:1px solid var(--adf-theme-mat-grey-color-a400);border-radius:5px;margin-top:5px;padding:5px;font-size:14px;color:var(--adf-theme-foreground-text-color);margin-left:8px;margin-right:8px}adf-search-properties .adf-search-properties-file-size-operator .mat-mdc-form-field-infix,adf-search-properties .adf-search-properties-file-size-unit .mat-mdc-form-field-infix{border:1px solid var(--adf-theme-mat-grey-color-a400);border-radius:5px;padding:9px}adf-search-properties .adf-search-properties-file-size-operator.mat-focused .mat-mdc-form-field-infix,adf-search-properties .adf-search-properties-file-size-unit.mat-focused .mat-mdc-form-field-infix{outline:2px auto -webkit-focus-ring-color}adf-search-properties .adf-search-properties-file-size-unit{width:78px}adf-search-properties .adf-search-properties-file-type-label{margin-top:10px;margin-bottom:6px}.adf-search-filter-chip-menu-panel-properties{max-width:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: SearchChipAutocompleteInputComponent, selector: "adf-search-chip-autocomplete-input", inputs: ["autocompleteOptions", "preselectedOptions", "onReset$", "allowOnlyPredefinedValues", "placeholder", "compareOption", "formatChipValue", "filter"], outputs: ["optionsChanged", "inputChanged"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
235
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchPropertiesComponent, isStandalone: true, selector: "adf-search-properties", viewQueries: [{ propertyName: "fileSizeOperatorSelectElement", first: true, predicate: ["fileSizeOperatorSelect"], descendants: true, read: ElementRef }], ngImport: i0, template: "<form [formGroup]=\"form\" class=\"adf-search-properties-form\">\n <div class=\"adf-search-properties-file-size-container\">\n <label\n for=\"adf-search-properties-file-size\"\n class=\"adf-search-properties-file-size-label\">\n {{ 'SEARCH.SEARCH_PROPERTIES.FILE_SIZE' | translate }}\n </label>\n <mat-form-field\n [style.width.px]=\"fileSizeOperatorsMaxWidth\"\n subscriptSizing=\"dynamic\"\n class=\"adf-search-properties-file-size-operator\">\n <mat-select\n data-automation-id=\"adf-search-properties-file-size-operator-select\"\n [formControl]=\"form.controls.fileSizeOperator\"\n #fileSizeOperatorSelect>\n <mat-option\n *ngFor=\"let fileSizeOperator of fileSizeOperators\"\n [value]=\"fileSizeOperator\">\n {{ fileSizeOperator | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <input\n [formControl]=\"form.controls.fileSize\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n (input)=\"narrowDownAllowedCharacters($event)\"\n (keydown)=\"preventIncorrectNumberCharacters($event)\"\n id=\"adf-search-properties-file-size\"\n [placeholder]=\"'SEARCH.SEARCH_PROPERTIES.FILE_SIZE_PLACEHOLDER' | translate\"\n (blur)=\"clearNumberFieldWhenInvalid($event)\"\n data-automation-id=\"adf-search-properties-file-size-input\" />\n <mat-form-field class=\"adf-search-properties-file-size-unit\" subscriptSizing=\"dynamic\">\n <mat-select\n [formControl]=\"form.controls.fileSizeUnit\"\n data-automation-id=\"adf-search-properties-file-size-unit-select\">\n <mat-option\n *ngFor=\"let fileSizeUnit of fileSizeUnits\"\n [value]=\"fileSizeUnit\">\n {{ fileSizeUnit.abbreviation | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <p class=\"adf-search-properties-file-type-label\">{{ 'SEARCH.SEARCH_PROPERTIES.FILE_TYPE' | translate }}</p>\n <adf-search-chip-autocomplete-input\n [autocompleteOptions]=\"autocompleteOptions\"\n [preselectedOptions]=\"preselectedOptions\"\n (optionsChanged)=\"selectedExtensions = $event\"\n [onReset$]=\"reset$\"\n [allowOnlyPredefinedValues]=\"false\"\n [compareOption]=\"compareFileExtensions\"\n [formatChipValue]=\"getExtensionWithoutDot\"\n [filter]=\"filterExtensions\"\n placeholder=\"SEARCH.SEARCH_PROPERTIES.FILE_TYPE\" />\n</form>\n", styles: ["adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .adf-search-properties-file-size-label{margin-top:4px;display:block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:9px;padding-bottom:9px;display:inline-block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-form-field-infix{height:37.5px;min-height:37.5px;display:inline-block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-trigger{height:17.5px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-arrow-wrapper{width:16px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mdc-line-ripple:before{display:none}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-arrow{margin-left:5px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-form-field{margin-bottom:18px}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input{display:block}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-start,adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-end{border-top:1px solid var(--adf-theme-mat-grey-color-a400);border-bottom:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-start{border-left:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-end{border-right:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-focused .mdc-text-field--outlined{outline:2px auto -webkit-focus-ring-color}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-form-field-appearance-outline .mdc-text-field--outlined-thick .mdc-text-field--outlined-start,adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-form-field-appearance-outline .mdc-text-field--outlined-thick .mdc-text-field--outlined-end{border-width:1px}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-notched-outline__leading{border-color:var(--adf-theme-foreground-text-color-027)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-notched-outline__trailing{border-color:var(--adf-theme-foreground-text-color-027)}adf-search-properties input,adf-search-properties .mat-form-field-infix.mat-form-field-infix{height:25px;border:1px solid var(--adf-theme-mat-grey-color-a400);border-radius:5px;margin-top:5px;padding:5px;font-size:14px;color:var(--adf-theme-foreground-text-color);margin-left:8px;margin-right:8px}adf-search-properties .adf-search-properties-file-size-operator .mat-mdc-form-field-infix,adf-search-properties .adf-search-properties-file-size-unit .mat-mdc-form-field-infix{border:1px solid var(--adf-theme-mat-grey-color-a400);border-radius:5px;padding:9px}adf-search-properties .adf-search-properties-file-size-operator.mat-focused .mat-mdc-form-field-infix,adf-search-properties .adf-search-properties-file-size-unit.mat-focused .mat-mdc-form-field-infix{outline:2px auto -webkit-focus-ring-color}adf-search-properties .adf-search-properties-file-size-unit{width:78px}adf-search-properties .adf-search-properties-file-type-label{margin-top:10px;margin-bottom:6px}.adf-search-filter-chip-menu-panel-properties{max-width:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: SearchChipAutocompleteInputComponent, selector: "adf-search-chip-autocomplete-input", inputs: ["autocompleteOptions", "preselectedOptions", "onReset$", "allowOnlyPredefinedValues", "placeholder", "compareOption", "formatChipValue", "filter"], outputs: ["optionsChanged", "inputChanged"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
236
236
|
}
|
|
237
237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchPropertiesComponent, decorators: [{
|
|
238
238
|
type: Component,
|
|
239
|
-
args: [{ selector: 'adf-search-properties', standalone: true, imports: [CommonModule, ReactiveFormsModule,
|
|
239
|
+
args: [{ selector: 'adf-search-properties', standalone: true, imports: [CommonModule, ReactiveFormsModule, TranslatePipe, MatFormFieldModule, MatSelectModule, SearchChipAutocompleteInputComponent], encapsulation: ViewEncapsulation.None, template: "<form [formGroup]=\"form\" class=\"adf-search-properties-form\">\n <div class=\"adf-search-properties-file-size-container\">\n <label\n for=\"adf-search-properties-file-size\"\n class=\"adf-search-properties-file-size-label\">\n {{ 'SEARCH.SEARCH_PROPERTIES.FILE_SIZE' | translate }}\n </label>\n <mat-form-field\n [style.width.px]=\"fileSizeOperatorsMaxWidth\"\n subscriptSizing=\"dynamic\"\n class=\"adf-search-properties-file-size-operator\">\n <mat-select\n data-automation-id=\"adf-search-properties-file-size-operator-select\"\n [formControl]=\"form.controls.fileSizeOperator\"\n #fileSizeOperatorSelect>\n <mat-option\n *ngFor=\"let fileSizeOperator of fileSizeOperators\"\n [value]=\"fileSizeOperator\">\n {{ fileSizeOperator | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <input\n [formControl]=\"form.controls.fileSize\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n (input)=\"narrowDownAllowedCharacters($event)\"\n (keydown)=\"preventIncorrectNumberCharacters($event)\"\n id=\"adf-search-properties-file-size\"\n [placeholder]=\"'SEARCH.SEARCH_PROPERTIES.FILE_SIZE_PLACEHOLDER' | translate\"\n (blur)=\"clearNumberFieldWhenInvalid($event)\"\n data-automation-id=\"adf-search-properties-file-size-input\" />\n <mat-form-field class=\"adf-search-properties-file-size-unit\" subscriptSizing=\"dynamic\">\n <mat-select\n [formControl]=\"form.controls.fileSizeUnit\"\n data-automation-id=\"adf-search-properties-file-size-unit-select\">\n <mat-option\n *ngFor=\"let fileSizeUnit of fileSizeUnits\"\n [value]=\"fileSizeUnit\">\n {{ fileSizeUnit.abbreviation | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <p class=\"adf-search-properties-file-type-label\">{{ 'SEARCH.SEARCH_PROPERTIES.FILE_TYPE' | translate }}</p>\n <adf-search-chip-autocomplete-input\n [autocompleteOptions]=\"autocompleteOptions\"\n [preselectedOptions]=\"preselectedOptions\"\n (optionsChanged)=\"selectedExtensions = $event\"\n [onReset$]=\"reset$\"\n [allowOnlyPredefinedValues]=\"false\"\n [compareOption]=\"compareFileExtensions\"\n [formatChipValue]=\"getExtensionWithoutDot\"\n [filter]=\"filterExtensions\"\n placeholder=\"SEARCH.SEARCH_PROPERTIES.FILE_TYPE\" />\n</form>\n", styles: ["adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .adf-search-properties-file-size-label{margin-top:4px;display:block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:9px;padding-bottom:9px;display:inline-block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-form-field-infix{height:37.5px;min-height:37.5px;display:inline-block}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-trigger{height:17.5px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-arrow-wrapper{width:16px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mdc-line-ripple:before{display:none}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-select-arrow{margin-left:5px}adf-search-properties .adf-search-properties-form .adf-search-properties-file-size-container .mat-mdc-form-field{margin-bottom:18px}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input{display:block}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-start,adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-end{border-top:1px solid var(--adf-theme-mat-grey-color-a400);border-bottom:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-start{border-left:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-text-field--outlined-end{border-right:1px solid var(--adf-theme-mat-grey-color-a400)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-focused .mdc-text-field--outlined{outline:2px auto -webkit-focus-ring-color}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-form-field-appearance-outline .mdc-text-field--outlined-thick .mdc-text-field--outlined-start,adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mat-form-field-appearance-outline .mdc-text-field--outlined-thick .mdc-text-field--outlined-end{border-width:1px}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-notched-outline__leading{border-color:var(--adf-theme-foreground-text-color-027)}adf-search-properties .adf-search-properties-form adf-search-chip-autocomplete-input .mdc-notched-outline__trailing{border-color:var(--adf-theme-foreground-text-color-027)}adf-search-properties input,adf-search-properties .mat-form-field-infix.mat-form-field-infix{height:25px;border:1px solid var(--adf-theme-mat-grey-color-a400);border-radius:5px;margin-top:5px;padding:5px;font-size:14px;color:var(--adf-theme-foreground-text-color);margin-left:8px;margin-right:8px}adf-search-properties .adf-search-properties-file-size-operator .mat-mdc-form-field-infix,adf-search-properties .adf-search-properties-file-size-unit .mat-mdc-form-field-infix{border:1px solid var(--adf-theme-mat-grey-color-a400);border-radius:5px;padding:9px}adf-search-properties .adf-search-properties-file-size-operator.mat-focused .mat-mdc-form-field-infix,adf-search-properties .adf-search-properties-file-size-unit.mat-focused .mat-mdc-form-field-infix{outline:2px auto -webkit-focus-ring-color}adf-search-properties .adf-search-properties-file-size-unit{width:78px}adf-search-properties .adf-search-properties-file-type-label{margin-top:10px;margin-bottom:6px}.adf-search-filter-chip-menu-panel-properties{max-width:unset}\n"] }]
|
|
240
240
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.TranslateService }], propDecorators: { fileSizeOperatorSelectElement: [{
|
|
241
241
|
type: ViewChild,
|
|
242
242
|
args: ['fileSizeOperatorSelect', { read: ElementRef }]
|
|
243
243
|
}] } });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXByb3BlcnRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtcHJvcGVydGllcy9zZWFyY2gtcHJvcGVydGllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1wcm9wZXJ0aWVzL3NlYXJjaC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBb0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9B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LGVBQWUsRUFBRSxvQ0FBb0MsQ0FBQyxpQkFHekgsaUJBQWlCLENBQUMsSUFBSTsrR0EwQnJDLDZCQUE2QjtzQkFENUIsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIENvbXBvbmVudCwgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsZVNpemVDb25kaXRpb24gfSBmcm9tICcuL2ZpbGUtc2l6ZS1jb25kaXRpb24nO1xuaW1wb3J0IHsgRmlsZVNpemVPcGVyYXRvciB9IGZyb20gJy4vZmlsZS1zaXplLW9wZXJhdG9yLmVudW0nO1xuaW1wb3J0IHsgRmlsZVNpemVVbml0IH0gZnJvbSAnLi9maWxlLXNpemUtdW5pdC5lbnVtJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlYXJjaFdpZGdldFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC13aWRnZXQtc2V0dGluZ3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWFyY2gtcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFByb3BlcnRpZXMgfSBmcm9tICcuL3NlYXJjaC1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC13aWRnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRvY29tcGxldGUtb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgU2VhcmNoQ2hpcEF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoLWNoaXAtYXV0b2NvbXBsZXRlLWlucHV0JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLXByb3BlcnRpZXMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgU2VhcmNoQ2hpcEF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hQcm9wZXJ0aWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkLCBTZWFyY2hXaWRnZXQge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc2V0dGluZ3M/OiBTZWFyY2hXaWRnZXRTZXR0aW5ncztcbiAgICBjb250ZXh0PzogU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZTtcbiAgICBzdGFydFZhbHVlOiBTZWFyY2hQcm9wZXJ0aWVzO1xuICAgIGRpc3BsYXlWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICAgIGF1dG9jb21wbGV0ZU9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbltdID0gW107XG4gICAgcHJlc2VsZWN0ZWRPcHRpb25zOiBBdXRvY29tcGxldGVPcHRpb25bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIubm9uTnVsbGFibGUuZ3JvdXA8RmlsZVNpemVDb25kaXRpb24+KHtcbiAgICAgICAgZmlsZVNpemVPcGVyYXRvcjogRmlsZVNpemVPcGVyYXRvci5BVF9MRUFTVCxcbiAgICAgICAgZmlsZVNpemU6IHVuZGVmaW5lZCxcbiAgICAgICAgZmlsZVNpemVVbml0OiBGaWxlU2l6ZVVuaXQuS0JcbiAgICB9KTtcbiAgICBwcml2YXRlIF9maWxlU2l6ZU9wZXJhdG9ycyA9IE9iamVjdC5rZXlzKEZpbGVTaXplT3BlcmF0b3IpLm1hcDxzdHJpbmc+KChrZXkpID0+IEZpbGVTaXplT3BlcmF0b3Jba2V5XSk7XG4gICAgcHJpdmF0ZSBfZmlsZVNpemVVbml0cyA9IFtGaWxlU2l6ZVVuaXQuS0IsIEZpbGVTaXplVW5pdC5NQiwgRmlsZVNpemVVbml0LkdCXTtcbiAgICBwcml2YXRlIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIHByaXZhdGUgX2ZpbGVTaXplT3BlcmF0b3JzTWF4V2lkdGg6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zZWxlY3RlZEV4dGVuc2lvbnM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgX3Jlc2V0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBzaXplRmllbGQ6IHN0cmluZztcbiAgICBwcml2YXRlIG5hbWVGaWVsZDogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZCgnZmlsZVNpemVPcGVyYXRvclNlbGVjdCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGZpbGVTaXplT3BlcmF0b3JTZWxlY3RFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgZ2V0IGZvcm0oKTogU2VhcmNoUHJvcGVydGllc0NvbXBvbmVudFsnX2Zvcm0nXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtO1xuICAgIH1cblxuICAgIGdldCBmaWxlU2l6ZU9wZXJhdG9ycygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlU2l6ZU9wZXJhdG9ycztcbiAgICB9XG5cbiAgICBnZXQgZmlsZVNpemVVbml0cygpOiBGaWxlU2l6ZVVuaXRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlU2l6ZVVuaXRzO1xuICAgIH1cblxuICAgIGdldCBmaWxlU2l6ZU9wZXJhdG9yc01heFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlU2l6ZU9wZXJhdG9yc01heFdpZHRoO1xuICAgIH1cblxuICAgIGdldCByZXNldCQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNldCQ7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGVkRXh0ZW5zaW9ucygpOiBBdXRvY29tcGxldGVPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlVG9BdXRvY29tcGxldGVPcHRpb25zKHRoaXMuX3NlbGVjdGVkRXh0ZW5zaW9ucyk7XG4gICAgfVxuXG4gICAgc2V0IHNlbGVjdGVkRXh0ZW5zaW9ucyhleHRlbnNpb25zOiBBdXRvY29tcGxldGVPcHRpb25bXSkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZEV4dGVuc2lvbnMgPSB0aGlzLnBhcnNlRnJvbUF1dG9jb21wbGV0ZU9wdGlvbnMoZXh0ZW5zaW9ucyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnNldHRpbmdzLmZpbGVFeHRlbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5maWxlRXh0ZW5zaW9ucyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVPcHRpb25zID0gdGhpcy5wYXJzZVRvQXV0b2NvbXBsZXRlT3B0aW9ucyh0aGlzLnNldHRpbmdzLmZpbGVFeHRlbnNpb25zKTtcbiAgICAgICAgICAgIFt0aGlzLnNpemVGaWVsZCwgdGhpcy5uYW1lRmllbGRdID0gdGhpcy5zZXR0aW5ncy5maWVsZC5zcGxpdCgnLCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN0YXJ0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5zdGFydFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHQucG9wdWxhdGVGaWx0ZXJzXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoZmlsdGVyc1F1ZXJpZXMpID0+IGZpbHRlcnNRdWVyaWVzW3RoaXMuaWRdKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyUXVlcnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyUXVlcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUXVlcnkuZmlsZVNpemVDb25kaXRpb24uZmlsZVNpemVVbml0ID0gdGhpcy5maWxlU2l6ZVVuaXRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAoZmlsZVNpemVVbml0KSA9PiBmaWxlU2l6ZVVuaXQuYnl0ZXMgPT09IGZpbHRlclF1ZXJ5LmZpbGVTaXplQ29uZGl0aW9uLmZpbGVTaXplVW5pdC5ieXRlc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShmaWx0ZXJRdWVyeS5maWxlU2l6ZUNvbmRpdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkRXh0ZW5zaW9ucyA9IGZpbHRlclF1ZXJ5LmZpbGVFeHRlbnNpb25zID8/IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXNlbGVjdGVkT3B0aW9ucyA9IHRoaXMucGFyc2VUb0F1dG9jb21wbGV0ZU9wdGlvbnModGhpcy5fc2VsZWN0ZWRFeHRlbnNpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXRWYWx1ZXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyTG9hZGVkLm5leHQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsZVNpemVPcGVyYXRvclNlbGVjdEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggJiYgIXRoaXMuX2ZpbGVTaXplT3BlcmF0b3JzTWF4V2lkdGgpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhRnJlZVNwYWNlID0gMjA7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmlsZVNpemVPcGVyYXRvcnNNYXhXaWR0aCA9XG4gICAgICAgICAgICAgICAgICAgIE1hdGgubWF4KFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fZmlsZVNpemVPcGVyYXRvcnMubWFwKChvcGVyYXRvcikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldE9wZXJhdG9yTmFtZVdpZHRoKG9wZXJhdG9yLCB0aGlzLmdldENhbnZhc0ZvbnQodGhpcy5maWxlU2l6ZU9wZXJhdG9yU2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZVNpemVPcGVyYXRvclNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWF0LW1kYy1zZWxlY3QtYXJyb3ctd3JhcHBlcicpLmNsaWVudFdpZHRoICtcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFGcmVlU3BhY2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hcnJvd0Rvd25BbGxvd2VkQ2hhcmFjdGVycyhldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICBpZiAoIShldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGV2ZW50IGFzIElucHV0RXZlbnQpLmRhdGEgIT09ICcsJyAmJiAoZXZlbnQgYXMgSW5wdXRFdmVudCkuZGF0YSAhPT0gJy4nKSB7XG4gICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gdmFsdWUucmVwbGFjZSgvW14wLTkuLF0vZywgJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXJOdW1iZXJGaWVsZFdoZW5JbnZhbGlkKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIGlmICghKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWxpZGl0eS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmZpbGVTaXplLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcmV2ZW50SW5jb3JyZWN0TnVtYmVyQ2hhcmFjdGVycyhldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZXZlbnQua2V5ICE9PSAnLScgJiYgZXZlbnQua2V5ICE9PSAnZScgJiYgZXZlbnQua2V5ICE9PSAnKyc7XG4gICAgfVxuXG4gICAgY29tcGFyZUZpbGVFeHRlbnNpb25zKGV4dGVuc2lvbjE6IEF1dG9jb21wbGV0ZU9wdGlvbiwgZXh0ZW5zaW9uMjogQXV0b2NvbXBsZXRlT3B0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBleHRlbnNpb24xLnZhbHVlLnRvVXBwZXJDYXNlKCkgPT09IGV4dGVuc2lvbjIudmFsdWUudG9VcHBlckNhc2UoKTtcbiAgICB9XG5cbiAgICBnZXRFeHRlbnNpb25XaXRob3V0RG90KGV4dGVuc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uU3BsaXRCeURvdCA9IGV4dGVuc2lvbi5zcGxpdCgnLicpO1xuICAgICAgICByZXR1cm4gZXh0ZW5zaW9uU3BsaXRCeURvdFtleHRlbnNpb25TcGxpdEJ5RG90Lmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIGZpbHRlckV4dGVuc2lvbnMgPSAoZXh0ZW5zaW9uczogQXV0b2NvbXBsZXRlT3B0aW9uW10sIGZpbHRlclZhbHVlOiBzdHJpbmcpOiBBdXRvY29tcGxldGVPcHRpb25bXSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlclZhbHVlTG93ZXJDYXNlID0gdGhpcy5nZXRFeHRlbnNpb25XaXRob3V0RG90KGZpbHRlclZhbHVlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBleHRlbnNpb25XaXRoRG90ID0gZmlsdGVyVmFsdWUuc3RhcnRzV2l0aCgnLicpO1xuICAgICAgICByZXR1cm4gZXh0ZW5zaW9ucy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uTG93ZXJDYXNlID0gb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gZXh0ZW5zaW9uV2l0aERvdCAmJiBmaWx0ZXJWYWx1ZUxvd2VyQ2FzZVxuICAgICAgICAgICAgICAgID8gb3B0aW9uTG93ZXJDYXNlLnN0YXJ0c1dpdGgoZmlsdGVyVmFsdWVMb3dlckNhc2UpXG4gICAgICAgICAgICAgICAgOiBvcHRpb25Mb3dlckNhc2UuaW5jbHVkZXMoZmlsdGVyVmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmVzZXQodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgIGlmICh0aGlzLmlkICYmIHRoaXMuY29udGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnF1ZXJ5RnJhZ21lbnRzW3RoaXMuaWRdID0gJyc7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldCQubmV4dCgpO1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSQubmV4dCgnJyk7XG4gICAgfVxuXG4gICAgc3VibWl0VmFsdWVzKHVwZGF0ZUNvbnRleHQgPSB0cnVlKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQ/LmZpbHRlclJhd1BhcmFtcykge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXSA9IHtcbiAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9uczogdGhpcy5fc2VsZWN0ZWRFeHRlbnNpb25zLFxuICAgICAgICAgICAgICAgIGZpbGVTaXplQ29uZGl0aW9uOiB0aGlzLmZvcm0udmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNldHRpbmdzQW5kQ29udGV4dCh1cGRhdGVDb250ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhc1ZhbGlkVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRWYWx1ZSgpOiBTZWFyY2hQcm9wZXJ0aWVzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbGVTaXplQ29uZGl0aW9uOiB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSxcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb25zOiB0aGlzLl9zZWxlY3RlZEV4dGVuc2lvbnNcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZShzZWFyY2hQcm9wZXJ0aWVzOiBTZWFyY2hQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHNlYXJjaFByb3BlcnRpZXMuZmlsZVNpemVDb25kaXRpb24pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRXh0ZW5zaW9ucyA9IHRoaXMucGFyc2VUb0F1dG9jb21wbGV0ZU9wdGlvbnMoc2VhcmNoUHJvcGVydGllcy5maWxlRXh0ZW5zaW9ucyA/PyBbXSk7XG4gICAgICAgIHRoaXMuc3VibWl0VmFsdWVzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTZXR0aW5nc0FuZENvbnRleHQodXBkYXRlQ29udGV4dCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gJyc7XG4gICAgICAgIGxldCBkaXNwbGF5ZWRWYWx1ZSA9ICcnO1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbHVlLmZpbGVTaXplICE9PSB1bmRlZmluZWQgJiYgdGhpcy5mb3JtLnZhbHVlLmZpbGVTaXplICE9PSBudWxsKSB7XG4gICAgICAgICAgICBkaXNwbGF5ZWRWYWx1ZSA9IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMuZm9ybS52YWx1ZS5maWxlU2l6ZU9wZXJhdG9yKX0gJHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWUuZmlsZVNpemVcbiAgICAgICAgICAgIH0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmZvcm0udmFsdWUuZmlsZVNpemVVbml0LmFiYnJldmlhdGlvbil9YDtcbiAgICAgICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLmZvcm0udmFsdWUuZmlsZVNpemUgKiB0aGlzLmZvcm0udmFsdWUuZmlsZVNpemVVbml0LmJ5dGVzO1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmZvcm0udmFsdWUuZmlsZVNpemVPcGVyYXRvcikge1xuICAgICAgICAgICAgICAgIGNhc2UgRmlsZVNpemVPcGVyYXRvci5BVF9NT1NUOlxuICAgICAgICAgICAgICAgICAgICBxdWVyeSA9IGAke3RoaXMuc2l6ZUZpZWxkfTpbMCBUTyAke3NpemV9XWA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmlsZVNpemVPcGVyYXRvci5BVF9MRUFTVDpcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkgPSBgJHt0aGlzLnNpemVGaWVsZH06WyR7c2l6ZX0gVE8gTUFYXWA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5ID0gYCR7dGhpcy5zaXplRmllbGR9Olske3NpemV9IFRPICR7c2l6ZX1dYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRFeHRlbnNpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChxdWVyeSkge1xuICAgICAgICAgICAgICAgIHF1ZXJ5ICs9ICcgQU5EICc7XG4gICAgICAgICAgICAgICAgZGlzcGxheWVkVmFsdWUgKz0gJywgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHF1ZXJ5ICs9IGAke3RoaXMubmFtZUZpZWxkfTooXCIqLiR7dGhpcy5fc2VsZWN0ZWRFeHRlbnNpb25zLmpvaW4oJ1wiIE9SIFwiKi4nKX1cIilgO1xuICAgICAgICAgICAgZGlzcGxheWVkVmFsdWUgKz0gdGhpcy5fc2VsZWN0ZWRFeHRlbnNpb25zLmpvaW4oJywgJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUkLm5leHQoZGlzcGxheWVkVmFsdWUpO1xuICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSBxdWVyeTtcbiAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VUb0F1dG9jb21wbGV0ZU9wdGlvbnMoYXJyYXk6IHN0cmluZ1tdKTogQXV0b2NvbXBsZXRlT3B0aW9uW10ge1xuICAgICAgICByZXR1cm4gYXJyYXkubWFwKCh2YWx1ZSkgPT4gKHsgdmFsdWUgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VGcm9tQXV0b2NvbXBsZXRlT3B0aW9ucyhhcnJheTogQXV0b2NvbXBsZXRlT3B0aW9uW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBhcnJheS5mbGF0TWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcGVyYXRvck5hbWVXaWR0aChvcGVyYXRvcjogc3RyaW5nLCBmb250OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgY29udGV4dC5mb250ID0gZm9udDtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQubWVhc3VyZVRleHQodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQob3BlcmF0b3IpKS53aWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENzc1N0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2FudmFzRm9udChlbDogSFRNTEVsZW1lbnQpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRDc3NTdHlsZShlbCwgJ2ZvbnQtd2VpZ2h0Jyl9ICR7dGhpcy5nZXRDc3NTdHlsZShlbCwgJ2ZvbnQtc2l6ZScpfSAke3RoaXMuZ2V0Q3NzU3R5bGUoZWwsICdmb250LWZhbWlseScpfWA7XG4gICAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZmlsZS1zaXplLWNvbnRhaW5lclwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGZvcj1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1maWxlLXNpemVcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZmlsZS1zaXplLWxhYmVsXCI+XG4gICAgICAgICAgICB7eyAnU0VBUkNILlNFQVJDSF9QUk9QRVJUSUVTLkZJTEVfU0laRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZmlsZVNpemVPcGVyYXRvcnNNYXhXaWR0aFwiXG4gICAgICAgICAgICBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNlYXJjaC1wcm9wZXJ0aWVzLWZpbGUtc2l6ZS1vcGVyYXRvclwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZmlsZS1zaXplLW9wZXJhdG9yLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMuZmlsZVNpemVPcGVyYXRvclwiXG4gICAgICAgICAgICAgICAgI2ZpbGVTaXplT3BlcmF0b3JTZWxlY3Q+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGVTaXplT3BlcmF0b3Igb2YgZmlsZVNpemVPcGVyYXRvcnNcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmlsZVNpemVPcGVyYXRvclwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWxlU2l6ZU9wZXJhdG9yIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzLmZpbGVTaXplXCJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICBzdGVwPVwiYW55XCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJuYXJyb3dEb3duQWxsb3dlZENoYXJhY3RlcnMoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJwcmV2ZW50SW5jb3JyZWN0TnVtYmVyQ2hhcmFjdGVycygkZXZlbnQpXCJcbiAgICAgICAgICAgIGlkPVwiYWRmLXNlYXJjaC1wcm9wZXJ0aWVzLWZpbGUtc2l6ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFQVJDSC5TRUFSQ0hfUFJPUEVSVElFUy5GSUxFX1NJWkVfUExBQ0VIT0xERVInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChibHVyKT1cImNsZWFyTnVtYmVyRmllbGRXaGVuSW52YWxpZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1maWxlLXNpemUtaW5wdXRcIiAvPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZmlsZS1zaXplLXVuaXRcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzLmZpbGVTaXplVW5pdFwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXNlYXJjaC1wcm9wZXJ0aWVzLWZpbGUtc2l6ZS11bml0LXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlU2l6ZVVuaXQgb2YgZmlsZVNpemVVbml0c1wiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmaWxlU2l6ZVVuaXRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZmlsZVNpemVVbml0LmFiYnJldmlhdGlvbiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8cCBjbGFzcz1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1maWxlLXR5cGUtbGFiZWxcIj57eyAnU0VBUkNILlNFQVJDSF9QUk9QRVJUSUVTLkZJTEVfVFlQRScgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPGFkZi1zZWFyY2gtY2hpcC1hdXRvY29tcGxldGUtaW5wdXRcbiAgICAgICAgW2F1dG9jb21wbGV0ZU9wdGlvbnNdPVwiYXV0b2NvbXBsZXRlT3B0aW9uc1wiXG4gICAgICAgIFtwcmVzZWxlY3RlZE9wdGlvbnNdPVwicHJlc2VsZWN0ZWRPcHRpb25zXCJcbiAgICAgICAgKG9wdGlvbnNDaGFuZ2VkKT1cInNlbGVjdGVkRXh0ZW5zaW9ucyA9ICRldmVudFwiXG4gICAgICAgIFtvblJlc2V0JF09XCJyZXNldCRcIlxuICAgICAgICBbYWxsb3dPbmx5UHJlZGVmaW5lZFZhbHVlc109XCJmYWxzZVwiXG4gICAgICAgIFtjb21wYXJlT3B0aW9uXT1cImNvbXBhcmVGaWxlRXh0ZW5zaW9uc1wiXG4gICAgICAgIFtmb3JtYXRDaGlwVmFsdWVdPVwiZ2V0RXh0ZW5zaW9uV2l0aG91dERvdFwiXG4gICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyRXh0ZW5zaW9uc1wiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU0VBUkNILlNFQVJDSF9QUk9QRVJUSUVTLkZJTEVfVFlQRVwiIC8+XG48L2Zvcm0+XG4iXX0=
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXByb3BlcnRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtcHJvcGVydGllcy9zZWFyY2gtcHJvcGVydGllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1wcm9wZXJ0aWVzL3NlYXJjaC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBb0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9B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LGVBQWUsRUFBRSxvQ0FBb0MsQ0FBQyxpQkFHdkgsaUJBQWlCLENBQUMsSUFBSTsrR0EwQnJDLDZCQUE2QjtzQkFENUIsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIENvbXBvbmVudCwgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsZVNpemVDb25kaXRpb24gfSBmcm9tICcuL2ZpbGUtc2l6ZS1jb25kaXRpb24nO1xuaW1wb3J0IHsgRmlsZVNpemVPcGVyYXRvciB9IGZyb20gJy4vZmlsZS1zaXplLW9wZXJhdG9yLmVudW0nO1xuaW1wb3J0IHsgRmlsZVNpemVVbml0IH0gZnJvbSAnLi9maWxlLXNpemUtdW5pdC5lbnVtJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlYXJjaFdpZGdldFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC13aWRnZXQtc2V0dGluZ3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWFyY2gtcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFByb3BlcnRpZXMgfSBmcm9tICcuL3NlYXJjaC1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNlYXJjaFdpZGdldCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYXV0b2NvbXBsZXRlLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IFNlYXJjaENoaXBBdXRvY29tcGxldGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXNlYXJjaC1wcm9wZXJ0aWVzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBTZWFyY2hDaGlwQXV0b2NvbXBsZXRlSW5wdXRDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXByb3BlcnRpZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFByb3BlcnRpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIFNlYXJjaFdpZGdldCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBzZXR0aW5ncz86IFNlYXJjaFdpZGdldFNldHRpbmdzO1xuICAgIGNvbnRleHQ/OiBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlO1xuICAgIHN0YXJ0VmFsdWU6IFNlYXJjaFByb3BlcnRpZXM7XG4gICAgZGlzcGxheVZhbHVlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG4gICAgYXV0b2NvbXBsZXRlT3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9uW10gPSBbXTtcbiAgICBwcmVzZWxlY3RlZE9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbltdID0gW107XG5cbiAgICBwcml2YXRlIF9mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ub25OdWxsYWJsZS5ncm91cDxGaWxlU2l6ZUNvbmRpdGlvbj4oe1xuICAgICAgICBmaWxlU2l6ZU9wZXJhdG9yOiBGaWxlU2l6ZU9wZXJhdG9yLkFUX0xFQVNULFxuICAgICAgICBmaWxlU2l6ZTogdW5kZWZpbmVkLFxuICAgICAgICBmaWxlU2l6ZVVuaXQ6IEZpbGVTaXplVW5pdC5LQlxuICAgIH0pO1xuICAgIHByaXZhdGUgX2ZpbGVTaXplT3BlcmF0b3JzID0gT2JqZWN0LmtleXMoRmlsZVNpemVPcGVyYXRvcikubWFwPHN0cmluZz4oKGtleSkgPT4gRmlsZVNpemVPcGVyYXRvcltrZXldKTtcbiAgICBwcml2YXRlIF9maWxlU2l6ZVVuaXRzID0gW0ZpbGVTaXplVW5pdC5LQiwgRmlsZVNpemVVbml0Lk1CLCBGaWxlU2l6ZVVuaXQuR0JdO1xuICAgIHByaXZhdGUgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgcHJpdmF0ZSBfZmlsZVNpemVPcGVyYXRvcnNNYXhXaWR0aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3NlbGVjdGVkRXh0ZW5zaW9uczogc3RyaW5nW107XG4gICAgcHJpdmF0ZSBfcmVzZXQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIHNpemVGaWVsZDogc3RyaW5nO1xuICAgIHByaXZhdGUgbmFtZUZpZWxkOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCdmaWxlU2l6ZU9wZXJhdG9yU2VsZWN0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgZmlsZVNpemVPcGVyYXRvclNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBnZXQgZm9ybSgpOiBTZWFyY2hQcm9wZXJ0aWVzQ29tcG9uZW50WydfZm9ybSddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm07XG4gICAgfVxuXG4gICAgZ2V0IGZpbGVTaXplT3BlcmF0b3JzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVTaXplT3BlcmF0b3JzO1xuICAgIH1cblxuICAgIGdldCBmaWxlU2l6ZVVuaXRzKCk6IEZpbGVTaXplVW5pdFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVTaXplVW5pdHM7XG4gICAgfVxuXG4gICAgZ2V0IGZpbGVTaXplT3BlcmF0b3JzTWF4V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVTaXplT3BlcmF0b3JzTWF4V2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0IHJlc2V0JCgpOiBTdWJqZWN0PHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc2V0JDtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWRFeHRlbnNpb25zKCk6IEF1dG9jb21wbGV0ZU9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VUb0F1dG9jb21wbGV0ZU9wdGlvbnModGhpcy5fc2VsZWN0ZWRFeHRlbnNpb25zKTtcbiAgICB9XG5cbiAgICBzZXQgc2VsZWN0ZWRFeHRlbnNpb25zKGV4dGVuc2lvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbltdKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRXh0ZW5zaW9ucyA9IHRoaXMucGFyc2VGcm9tQXV0b2NvbXBsZXRlT3B0aW9ucyhleHRlbnNpb25zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc2V0dGluZ3MuZmlsZUV4dGVuc2lvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmZpbGVFeHRlbnNpb25zID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnMgPSB0aGlzLnBhcnNlVG9BdXRvY29tcGxldGVPcHRpb25zKHRoaXMuc2V0dGluZ3MuZmlsZUV4dGVuc2lvbnMpO1xuICAgICAgICAgICAgW3RoaXMuc2l6ZUZpZWxkLCB0aGlzLm5hbWVGaWVsZF0gPSB0aGlzLnNldHRpbmdzLmZpZWxkLnNwbGl0KCcsJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnN0YXJ0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dC5wb3B1bGF0ZUZpbHRlcnNcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChmaWx0ZXJzUXVlcmllcykgPT4gZmlsdGVyc1F1ZXJpZXNbdGhpcy5pZF0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmaWx0ZXJRdWVyeSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeS5maWxlU2l6ZUNvbmRpdGlvbi5maWxlU2l6ZVVuaXQgPSB0aGlzLmZpbGVTaXplVW5pdHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlU2l6ZVVuaXQpID0+IGZpbGVTaXplVW5pdC5ieXRlcyA9PT0gZmlsdGVyUXVlcnkuZmlsZVNpemVDb25kaXRpb24uZmlsZVNpemVVbml0LmJ5dGVzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKGZpbHRlclF1ZXJ5LmZpbGVTaXplQ29uZGl0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRFeHRlbnNpb25zID0gZmlsdGVyUXVlcnkuZmlsZUV4dGVuc2lvbnMgPz8gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5wYXJzZVRvQXV0b2NvbXBsZXRlT3B0aW9ucyh0aGlzLl9zZWxlY3RlZEV4dGVuc2lvbnMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdFZhbHVlcyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJMb2FkZWQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICBpZiAodGhpcy5maWxlU2l6ZU9wZXJhdG9yU2VsZWN0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAmJiAhdGhpcy5fZmlsZVNpemVPcGVyYXRvcnNNYXhXaWR0aCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmFGcmVlU3BhY2UgPSAyMDtcbiAgICAgICAgICAgICAgICB0aGlzLl9maWxlU2l6ZU9wZXJhdG9yc01heFdpZHRoID1cbiAgICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9maWxlU2l6ZU9wZXJhdG9ycy5tYXAoKG9wZXJhdG9yKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0T3BlcmF0b3JOYW1lV2lkdGgob3BlcmF0b3IsIHRoaXMuZ2V0Q2FudmFzRm9udCh0aGlzLmZpbGVTaXplT3BlcmF0b3JTZWxlY3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlU2l6ZU9wZXJhdG9yU2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtbWRjLXNlbGVjdC1hcnJvdy13cmFwcGVyJykuY2xpZW50V2lkdGggK1xuICAgICAgICAgICAgICAgICAgICBleHRyYUZyZWVTcGFjZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmFycm93RG93bkFsbG93ZWRDaGFyYWN0ZXJzKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgIGlmICghKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoZXZlbnQgYXMgSW5wdXRFdmVudCkuZGF0YSAhPT0gJywnICYmIChldmVudCBhcyBJbnB1dEV2ZW50KS5kYXRhICE9PSAnLicpIHtcbiAgICAgICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXjAtOS4sXS9nLCAnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhck51bWJlckZpZWxkV2hlbkludmFsaWQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgaWYgKCEoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbGlkaXR5LnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMuZmlsZVNpemUuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByZXZlbnRJbmNvcnJlY3ROdW1iZXJDaGFyYWN0ZXJzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBldmVudC5rZXkgIT09ICctJyAmJiBldmVudC5rZXkgIT09ICdlJyAmJiBldmVudC5rZXkgIT09ICcrJztcbiAgICB9XG5cbiAgICBjb21wYXJlRmlsZUV4dGVuc2lvbnMoZXh0ZW5zaW9uMTogQXV0b2NvbXBsZXRlT3B0aW9uLCBleHRlbnNpb24yOiBBdXRvY29tcGxldGVPcHRpb24pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGV4dGVuc2lvbjEudmFsdWUudG9VcHBlckNhc2UoKSA9PT0gZXh0ZW5zaW9uMi52YWx1ZS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIGdldEV4dGVuc2lvbldpdGhvdXREb3QoZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBleHRlbnNpb25TcGxpdEJ5RG90ID0gZXh0ZW5zaW9uLnNwbGl0KCcuJyk7XG4gICAgICAgIHJldHVybiBleHRlbnNpb25TcGxpdEJ5RG90W2V4dGVuc2lvblNwbGl0QnlEb3QubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgZmlsdGVyRXh0ZW5zaW9ucyA9IChleHRlbnNpb25zOiBBdXRvY29tcGxldGVPcHRpb25bXSwgZmlsdGVyVmFsdWU6IHN0cmluZyk6IEF1dG9jb21wbGV0ZU9wdGlvbltdID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWVMb3dlckNhc2UgPSB0aGlzLmdldEV4dGVuc2lvbldpdGhvdXREb3QoZmlsdGVyVmFsdWUpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGV4dGVuc2lvbldpdGhEb3QgPSBmaWx0ZXJWYWx1ZS5zdGFydHNXaXRoKCcuJyk7XG4gICAgICAgIHJldHVybiBleHRlbnNpb25zLmZpbHRlcigob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25Mb3dlckNhc2UgPSBvcHRpb24udmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiBleHRlbnNpb25XaXRoRG90ICYmIGZpbHRlclZhbHVlTG93ZXJDYXNlXG4gICAgICAgICAgICAgICAgPyBvcHRpb25Mb3dlckNhc2Uuc3RhcnRzV2l0aChmaWx0ZXJWYWx1ZUxvd2VyQ2FzZSlcbiAgICAgICAgICAgICAgICA6IG9wdGlvbkxvd2VyQ2FzZS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXNldCh1cGRhdGVDb250ZXh0ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSAnJztcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2V0JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KCcnKTtcbiAgICB9XG5cbiAgICBzdWJtaXRWYWx1ZXModXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dD8uZmlsdGVyUmF3UGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID0ge1xuICAgICAgICAgICAgICAgIGZpbGVFeHRlbnNpb25zOiB0aGlzLl9zZWxlY3RlZEV4dGVuc2lvbnMsXG4gICAgICAgICAgICAgICAgZmlsZVNpemVDb25kaXRpb246IHRoaXMuZm9ybS52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncyAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2V0dGluZ3NBbmRDb250ZXh0KHVwZGF0ZUNvbnRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzVmFsaWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbHVlKCk6IFNlYXJjaFByb3BlcnRpZXMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsZVNpemVDb25kaXRpb246IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpLFxuICAgICAgICAgICAgZmlsZUV4dGVuc2lvbnM6IHRoaXMuX3NlbGVjdGVkRXh0ZW5zaW9uc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldFZhbHVlKHNlYXJjaFByb3BlcnRpZXM6IFNlYXJjaFByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoc2VhcmNoUHJvcGVydGllcy5maWxlU2l6ZUNvbmRpdGlvbik7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFeHRlbnNpb25zID0gdGhpcy5wYXJzZVRvQXV0b2NvbXBsZXRlT3B0aW9ucyhzZWFyY2hQcm9wZXJ0aWVzLmZpbGVFeHRlbnNpb25zID8/IFtdKTtcbiAgICAgICAgdGhpcy5zdWJtaXRWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNldHRpbmdzQW5kQ29udGV4dCh1cGRhdGVDb250ZXh0ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBsZXQgcXVlcnkgPSAnJztcbiAgICAgICAgbGV0IGRpc3BsYXllZFZhbHVlID0gJyc7XG4gICAgICAgIGlmICh0aGlzLmZvcm0udmFsdWUuZmlsZVNpemUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmZvcm0udmFsdWUuZmlsZVNpemUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGRpc3BsYXllZFZhbHVlID0gYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5mb3JtLnZhbHVlLmZpbGVTaXplT3BlcmF0b3IpfSAke1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZS5maWxlU2l6ZVxuICAgICAgICAgICAgfSAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMuZm9ybS52YWx1ZS5maWxlU2l6ZVVuaXQuYWJicmV2aWF0aW9uKX1gO1xuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuZm9ybS52YWx1ZS5maWxlU2l6ZSAqIHRoaXMuZm9ybS52YWx1ZS5maWxlU2l6ZVVuaXQuYnl0ZXM7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZm9ybS52YWx1ZS5maWxlU2l6ZU9wZXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWxlU2l6ZU9wZXJhdG9yLkFUX01PU1Q6XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5ID0gYCR7dGhpcy5zaXplRmllbGR9OlswIFRPICR7c2l6ZX1dYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWxlU2l6ZU9wZXJhdG9yLkFUX0xFQVNUOlxuICAgICAgICAgICAgICAgICAgICBxdWVyeSA9IGAke3RoaXMuc2l6ZUZpZWxkfTpbJHtzaXplfSBUTyBNQVhdYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkgPSBgJHt0aGlzLnNpemVGaWVsZH06WyR7c2l6ZX0gVE8gJHtzaXplfV1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgcXVlcnkgKz0gJyBBTkQgJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5ZWRWYWx1ZSArPSAnLCAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcXVlcnkgKz0gYCR7dGhpcy5uYW1lRmllbGR9OihcIiouJHt0aGlzLl9zZWxlY3RlZEV4dGVuc2lvbnMuam9pbignXCIgT1IgXCIqLicpfVwiKWA7XG4gICAgICAgICAgICBkaXNwbGF5ZWRWYWx1ZSArPSB0aGlzLl9zZWxlY3RlZEV4dGVuc2lvbnMuam9pbignLCAnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSQubmV4dChkaXNwbGF5ZWRWYWx1ZSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IHF1ZXJ5O1xuICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZVRvQXV0b2NvbXBsZXRlT3B0aW9ucyhhcnJheTogc3RyaW5nW10pOiBBdXRvY29tcGxldGVPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiBhcnJheS5tYXAoKHZhbHVlKSA9PiAoeyB2YWx1ZSB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZUZyb21BdXRvY29tcGxldGVPcHRpb25zKGFycmF5OiBBdXRvY29tcGxldGVPcHRpb25bXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIGFycmF5LmZsYXRNYXAoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wZXJhdG9yTmFtZVdpZHRoKG9wZXJhdG9yOiBzdHJpbmcsIGZvbnQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICBjb250ZXh0LmZvbnQgPSBmb250O1xuICAgICAgICByZXR1cm4gY29udGV4dC5tZWFzdXJlVGV4dCh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChvcGVyYXRvcikpLndpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3NzU3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHByb3BlcnR5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDYW52YXNGb250KGVsOiBIVE1MRWxlbWVudCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldENzc1N0eWxlKGVsLCAnZm9udC13ZWlnaHQnKX0gJHt0aGlzLmdldENzc1N0eWxlKGVsLCAnZm9udC1zaXplJyl9ICR7dGhpcy5nZXRDc3NTdHlsZShlbCwgJ2ZvbnQtZmFtaWx5Jyl9YDtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1mb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1maWxlLXNpemUtY29udGFpbmVyXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgZm9yPVwiYWRmLXNlYXJjaC1wcm9wZXJ0aWVzLWZpbGUtc2l6ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1maWxlLXNpemUtbGFiZWxcIj5cbiAgICAgICAgICAgIHt7ICdTRUFSQ0guU0VBUkNIX1BST1BFUlRJRVMuRklMRV9TSVpFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJmaWxlU2l6ZU9wZXJhdG9yc01heFdpZHRoXCJcbiAgICAgICAgICAgIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZmlsZS1zaXplLW9wZXJhdG9yXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1maWxlLXNpemUtb3BlcmF0b3Itc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9scy5maWxlU2l6ZU9wZXJhdG9yXCJcbiAgICAgICAgICAgICAgICAjZmlsZVNpemVPcGVyYXRvclNlbGVjdD5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZVNpemVPcGVyYXRvciBvZiBmaWxlU2l6ZU9wZXJhdG9yc1wiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmaWxlU2l6ZU9wZXJhdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZpbGVTaXplT3BlcmF0b3IgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMuZmlsZVNpemVcIlxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgIHN0ZXA9XCJhbnlcIlxuICAgICAgICAgICAgKGlucHV0KT1cIm5hcnJvd0Rvd25BbGxvd2VkQ2hhcmFjdGVycygkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cInByZXZlbnRJbmNvcnJlY3ROdW1iZXJDaGFyYWN0ZXJzKCRldmVudClcIlxuICAgICAgICAgICAgaWQ9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZmlsZS1zaXplXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VBUkNILlNFQVJDSF9QUk9QRVJUSUVTLkZJTEVfU0laRV9QTEFDRUhPTERFUicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgKGJsdXIpPVwiY2xlYXJOdW1iZXJGaWVsZFdoZW5JbnZhbGlkKCRldmVudClcIlxuICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXNlYXJjaC1wcm9wZXJ0aWVzLWZpbGUtc2l6ZS1pbnB1dFwiIC8+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1zZWFyY2gtcHJvcGVydGllcy1maWxlLXNpemUtdW5pdFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHMuZmlsZVNpemVVbml0XCJcbiAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtc2VhcmNoLXByb3BlcnRpZXMtZmlsZS1zaXplLXVuaXQtc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGVTaXplVW5pdCBvZiBmaWxlU2l6ZVVuaXRzXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZpbGVTaXplVW5pdFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWxlU2l6ZVVuaXQuYWJicmV2aWF0aW9uIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxwIGNsYXNzPVwiYWRmLXNlYXJjaC1wcm9wZXJ0aWVzLWZpbGUtdHlwZS1sYWJlbFwiPnt7ICdTRUFSQ0guU0VBUkNIX1BST1BFUlRJRVMuRklMRV9UWVBFJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8YWRmLXNlYXJjaC1jaGlwLWF1dG9jb21wbGV0ZS1pbnB1dFxuICAgICAgICBbYXV0b2NvbXBsZXRlT3B0aW9uc109XCJhdXRvY29tcGxldGVPcHRpb25zXCJcbiAgICAgICAgW3ByZXNlbGVjdGVkT3B0aW9uc109XCJwcmVzZWxlY3RlZE9wdGlvbnNcIlxuICAgICAgICAob3B0aW9uc0NoYW5nZWQpPVwic2VsZWN0ZWRFeHRlbnNpb25zID0gJGV2ZW50XCJcbiAgICAgICAgW29uUmVzZXQkXT1cInJlc2V0JFwiXG4gICAgICAgIFthbGxvd09ubHlQcmVkZWZpbmVkVmFsdWVzXT1cImZhbHNlXCJcbiAgICAgICAgW2NvbXBhcmVPcHRpb25dPVwiY29tcGFyZUZpbGVFeHRlbnNpb25zXCJcbiAgICAgICAgW2Zvcm1hdENoaXBWYWx1ZV09XCJnZXRFeHRlbnNpb25XaXRob3V0RG90XCJcbiAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJFeHRlbnNpb25zXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTRUFSQ0guU0VBUkNIX1BST1BFUlRJRVMuRklMRV9UWVBFXCIgLz5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -21,16 +21,15 @@ import { ReplaySubject } from 'rxjs';
|
|
|
21
21
|
import { first } from 'rxjs/operators';
|
|
22
22
|
import { CommonModule } from '@angular/common';
|
|
23
23
|
import { FormsModule } from '@angular/forms';
|
|
24
|
-
import {
|
|
24
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
25
25
|
import { MatButtonModule } from '@angular/material/button';
|
|
26
26
|
import { MatIconModule } from '@angular/material/icon';
|
|
27
27
|
import * as i0 from "@angular/core";
|
|
28
28
|
import * as i1 from "@angular/common";
|
|
29
29
|
import * as i2 from "@angular/material/radio";
|
|
30
30
|
import * as i3 from "@angular/forms";
|
|
31
|
-
import * as i4 from "@
|
|
32
|
-
import * as i5 from "@angular/material/
|
|
33
|
-
import * as i6 from "@angular/material/icon";
|
|
31
|
+
import * as i4 from "@angular/material/button";
|
|
32
|
+
import * as i5 from "@angular/material/icon";
|
|
34
33
|
export class SearchRadioComponent {
|
|
35
34
|
constructor() {
|
|
36
35
|
this.pageSize = 5;
|
|
@@ -135,12 +134,12 @@ export class SearchRadioComponent {
|
|
|
135
134
|
}
|
|
136
135
|
}
|
|
137
136
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
138
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchRadioComponent, isStandalone: true, selector: "adf-search-radio", inputs: { value: "value" }, host: { classAttribute: "adf-search-radio" }, ngImport: i0, template: "<mat-radio-group\n class=\"adf-search-radio-group\"\n [(ngModel)]=\"value\"\n (change)=\"changeHandler($event)\">\n <mat-radio-button [attr.data-automation-id]=\"'search-radio-'+(option.name | translate)\"\n *ngFor=\"let option of options\"\n [value]=\"option.value\"\n class=\"adf-facet-filter\">\n <div title=\"{{ option.name | translate }}\" class=\"adf-filter-label\">\n {{ option.name | translate }}\n </div>\n </mat-radio-button>\n</mat-radio-group>\n\n<div class=\"adf-facet-buttons\" *ngIf=\"!options.fitsPage\">\n <button mat-icon-button\n *ngIf=\"options.canShowLessItems\"\n title=\"{{ 'SEARCH.FILTER.ACTIONS.SHOW-LESS' | translate }}\"\n (click)=\"options.showLessItems()\">\n <mat-icon>keyboard_arrow_up</mat-icon>\n </button>\n <button mat-icon-button\n *ngIf=\"options.canShowMoreItems\"\n title=\"{{ 'SEARCH.FILTER.ACTIONS.SHOW-MORE' | translate }}\"\n (click)=\"options.showMoreItems()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n</div>\n", styles: [".adf-search-radio .adf-search-radio-group{display:flex;flex-direction:column}.adf-search-radio .adf-facet-filter{margin:5px}.adf-search-radio .adf-facet-filter .adf-filter-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i2.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "
|
|
137
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchRadioComponent, isStandalone: true, selector: "adf-search-radio", inputs: { value: "value" }, host: { classAttribute: "adf-search-radio" }, ngImport: i0, template: "<mat-radio-group\n class=\"adf-search-radio-group\"\n [(ngModel)]=\"value\"\n (change)=\"changeHandler($event)\">\n <mat-radio-button [attr.data-automation-id]=\"'search-radio-'+(option.name | translate)\"\n *ngFor=\"let option of options\"\n [value]=\"option.value\"\n class=\"adf-facet-filter\">\n <div title=\"{{ option.name | translate }}\" class=\"adf-filter-label\">\n {{ option.name | translate }}\n </div>\n </mat-radio-button>\n</mat-radio-group>\n\n<div class=\"adf-facet-buttons\" *ngIf=\"!options.fitsPage\">\n <button mat-icon-button\n *ngIf=\"options.canShowLessItems\"\n title=\"{{ 'SEARCH.FILTER.ACTIONS.SHOW-LESS' | translate }}\"\n (click)=\"options.showLessItems()\">\n <mat-icon>keyboard_arrow_up</mat-icon>\n </button>\n <button mat-icon-button\n *ngIf=\"options.canShowMoreItems\"\n title=\"{{ 'SEARCH.FILTER.ACTIONS.SHOW-MORE' | translate }}\"\n (click)=\"options.showMoreItems()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n</div>\n", styles: [".adf-search-radio .adf-search-radio-group{display:flex;flex-direction:column}.adf-search-radio .adf-facet-filter{margin:5px}.adf-search-radio .adf-facet-filter .adf-filter-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i2.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
139
138
|
}
|
|
140
139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchRadioComponent, decorators: [{
|
|
141
140
|
type: Component,
|
|
142
|
-
args: [{ selector: 'adf-search-radio', standalone: true, imports: [CommonModule, MatRadioModule, FormsModule,
|
|
141
|
+
args: [{ selector: 'adf-search-radio', standalone: true, imports: [CommonModule, MatRadioModule, FormsModule, TranslatePipe, MatButtonModule, MatIconModule], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-radio' }, template: "<mat-radio-group\n class=\"adf-search-radio-group\"\n [(ngModel)]=\"value\"\n (change)=\"changeHandler($event)\">\n <mat-radio-button [attr.data-automation-id]=\"'search-radio-'+(option.name | translate)\"\n *ngFor=\"let option of options\"\n [value]=\"option.value\"\n class=\"adf-facet-filter\">\n <div title=\"{{ option.name | translate }}\" class=\"adf-filter-label\">\n {{ option.name | translate }}\n </div>\n </mat-radio-button>\n</mat-radio-group>\n\n<div class=\"adf-facet-buttons\" *ngIf=\"!options.fitsPage\">\n <button mat-icon-button\n *ngIf=\"options.canShowLessItems\"\n title=\"{{ 'SEARCH.FILTER.ACTIONS.SHOW-LESS' | translate }}\"\n (click)=\"options.showLessItems()\">\n <mat-icon>keyboard_arrow_up</mat-icon>\n </button>\n <button mat-icon-button\n *ngIf=\"options.canShowMoreItems\"\n title=\"{{ 'SEARCH.FILTER.ACTIONS.SHOW-MORE' | translate }}\"\n (click)=\"options.showMoreItems()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n</div>\n", styles: [".adf-search-radio .adf-search-radio-group{display:flex;flex-direction:column}.adf-search-radio .adf-facet-filter{margin:5px}.adf-search-radio .adf-facet-filter .adf-filter-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}\n"] }]
|
|
143
142
|
}], ctorParameters: () => [], propDecorators: { value: [{
|
|
144
143
|
type: Input
|
|
145
144
|
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLXJhZGlvL3NlYXJjaC1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1yYWRpby9zZWFyY2gtcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFrQixjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQWdCdkQsTUFBTSxPQUFPLG9CQUFvQjtJQWU3QjtRQU5BLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGtCQUFhLEdB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QkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRSYWRpb0NoYW5nZSwgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5cbmltcG9ydCB7IFNlYXJjaFdpZGdldCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9zZWFyY2gtd2lkZ2V0LXNldHRpbmdzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VhcmNoLXF1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC1maWx0ZXItbGlzdC5tb2RlbCc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSYWRpb09wdGlvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXNlYXJjaC1yYWRpbycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRSYWRpb01vZHVsZSwgRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtc2VhcmNoLXJhZGlvJyB9XG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIHNlbGVjdGVkIHJhZGlvIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBpZDogc3RyaW5nO1xuICAgIHNldHRpbmdzOiBTZWFyY2hXaWRnZXRTZXR0aW5ncztcbiAgICBjb250ZXh0OiBTZWFyY2hRdWVyeUJ1aWxkZXJTZXJ2aWNlO1xuICAgIG9wdGlvbnM6IFNlYXJjaEZpbHRlckxpc3Q8U2VhcmNoUmFkaW9PcHRpb24+O1xuICAgIHBhZ2VTaXplID0gNTtcbiAgICBpc0FjdGl2ZSA9IGZhbHNlO1xuICAgIHN0YXJ0VmFsdWU6IGFueTtcbiAgICBlbmFibGVDaGFuZ2VVcGRhdGU6IGJvb2xlYW47XG4gICAgZGlzcGxheVZhbHVlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gbmV3IFNlYXJjaEZpbHRlckxpc3Q8U2VhcmNoUmFkaW9PcHRpb24+KCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5zZXR0aW5ncy5wYWdlU2l6ZSB8fCA1O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zICYmIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gbmV3IFNlYXJjaEZpbHRlckxpc3Q8U2VhcmNoUmFkaW9PcHRpb24+KHRoaXMuc2V0dGluZ3Mub3B0aW9ucywgdGhpcy5wYWdlU2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmdldFNlbGVjdGVkVmFsdWUoKTtcblxuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gaW5pdGlhbFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnF1ZXJ5RnJhZ21lbnRzW3RoaXMuaWRdID0gaW5pdGlhbFZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGluaXRpYWxWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IGluaXRpYWxWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVuYWJsZUNoYW5nZVVwZGF0ZSA9IHRoaXMuc2V0dGluZ3MuYWxsb3dVcGRhdGVPbkNoYW5nZSA/PyB0cnVlO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgICB0aGlzLmNvbnRleHQucG9wdWxhdGVGaWx0ZXJzXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmaWx0ZXJzUXVlcmllcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzUXVlcmllc1t0aGlzLmlkXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZmlsdGVyc1F1ZXJpZXNbdGhpcy5pZF07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0VmFsdWVzKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlckxvYWRlZC5uZXh0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogYW55W10gPSB0aGlzLnNldHRpbmdzWydvcHRpb25zJ10gfHwgW107XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IG9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQuZGVmYXVsdCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBvcHRpb25zWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHN1Ym1pdFZhbHVlcyh1cGRhdGVDb250ZXh0ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzVmFsaWRWYWx1ZSgpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5nZXRTZWxlY3RlZFZhbHVlKCk7XG4gICAgICAgIHJldHVybiAhIWN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZShuZXdWYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnF1ZXJ5RnJhZ21lbnRzW3RoaXMuaWRdID0gbmV3VmFsdWU7XG4gICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPSBuZXdWYWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlQ2hhbmdlVXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxlY3RlZFZhbHVlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlRGlzcGxheVZhbHVlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RPcHRpb25zID0gdGhpcy5vcHRpb25zLml0ZW1zLmZpbmQoKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IHRoaXMudmFsdWUpO1xuICAgICAgICBpZiAoc2VsZWN0T3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUkLm5leHQoc2VsZWN0T3B0aW9ucy5uYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KCcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUhhbmRsZXIoZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUoZXZlbnQudmFsdWUpO1xuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZSgpO1xuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKGluaXRpYWxWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNldCh1cGRhdGVDb250ZXh0ID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmdldFNlbGVjdGVkVmFsdWUoKTtcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShpbml0aWFsVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgICAgIGlmICh1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG1hdC1yYWRpby1ncm91cFxuICAgIGNsYXNzPVwiYWRmLXNlYXJjaC1yYWRpby1ncm91cFwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgKGNoYW5nZSk9XCJjaGFuZ2VIYW5kbGVyKCRldmVudClcIj5cbiAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ3NlYXJjaC1yYWRpby0nKyhvcHRpb24ubmFtZSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJhZGYtZmFjZXQtZmlsdGVyXCI+XG4gICAgICAgIDxkaXYgdGl0bGU9XCJ7eyBvcHRpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fVwiIGNsYXNzPVwiYWRmLWZpbHRlci1sYWJlbFwiPlxuICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuPC9tYXQtcmFkaW8tZ3JvdXA+XG5cbjxkaXYgY2xhc3M9XCJhZGYtZmFjZXQtYnV0dG9uc1wiICpuZ0lmPVwiIW9wdGlvbnMuZml0c1BhZ2VcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAqbmdJZj1cIm9wdGlvbnMuY2FuU2hvd0xlc3NJdGVtc1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1NFQVJDSC5GSUxURVIuQUNUSU9OUy5TSE9XLUxFU1MnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuc2hvd0xlc3NJdGVtcygpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd191cDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgKm5nSWY9XCJvcHRpb25zLmNhblNob3dNb3JlSXRlbXNcIlxuICAgICAgICB0aXRsZT1cInt7ICdTRUFSQ0guRklMVEVSLkFDVElPTlMuU0hPVy1NT1JFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIChjbGljayk9XCJvcHRpb25zLnNob3dNb3JlSXRlbXMoKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLXJhZGlvL3NlYXJjaC1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1yYWRpby9zZWFyY2gtcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFrQixjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBZ0J2RCxNQUFNLE9BQU8sb0JBQW9CO0lBZTdCO1FBTkEsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsa0JBQWEsR0FB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QURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFJhZGlvQ2hhbmdlLCBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcblxuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC13aWRnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlYXJjaFdpZGdldFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC13aWRnZXQtc2V0dGluZ3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWFyY2gtcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckxpc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLWZpbHRlci1saXN0Lm1vZGVsJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSYWRpb09wdGlvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXNlYXJjaC1yYWRpbycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRSYWRpb01vZHVsZSwgRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLXNlYXJjaC1yYWRpbycgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hSYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIFNlYXJjaFdpZGdldCwgT25Jbml0IHtcbiAgICAvKiogVGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCByYWRpbyBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZTogc3RyaW5nO1xuXG4gICAgaWQ6IHN0cmluZztcbiAgICBzZXR0aW5nczogU2VhcmNoV2lkZ2V0U2V0dGluZ3M7XG4gICAgY29udGV4dDogU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZTtcbiAgICBvcHRpb25zOiBTZWFyY2hGaWx0ZXJMaXN0PFNlYXJjaFJhZGlvT3B0aW9uPjtcbiAgICBwYWdlU2l6ZSA9IDU7XG4gICAgaXNBY3RpdmUgPSBmYWxzZTtcbiAgICBzdGFydFZhbHVlOiBhbnk7XG4gICAgZW5hYmxlQ2hhbmdlVXBkYXRlOiBib29sZWFuO1xuICAgIGRpc3BsYXlWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG5ldyBTZWFyY2hGaWx0ZXJMaXN0PFNlYXJjaFJhZGlvT3B0aW9uPigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5zZXR0aW5ncykge1xuICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuc2V0dGluZ3MucGFnZVNpemUgfHwgNTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucyAmJiB0aGlzLnNldHRpbmdzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IG5ldyBTZWFyY2hGaWx0ZXJMaXN0PFNlYXJjaFJhZGlvT3B0aW9uPih0aGlzLnNldHRpbmdzLm9wdGlvbnMsIHRoaXMucGFnZVNpemUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gdGhpcy5nZXRTZWxlY3RlZFZhbHVlKCk7XG5cbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGluaXRpYWxWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IGluaXRpYWxWYWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBpbml0aWFsVmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSBpbml0aWFsVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmFibGVDaGFuZ2VVcGRhdGUgPSB0aGlzLnNldHRpbmdzLmFsbG93VXBkYXRlT25DaGFuZ2UgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnBvcHVsYXRlRmlsdGVyc1xuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyc1F1ZXJpZXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyc1F1ZXJpZXNbdGhpcy5pZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGZpbHRlcnNRdWVyaWVzW3RoaXMuaWRdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdFZhbHVlcyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJMb2FkZWQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IGFueVtdID0gdGhpcy5zZXR0aW5nc1snb3B0aW9ucyddIHx8IFtdO1xuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSBvcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LmRlZmF1bHQpO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkID0gb3B0aW9uc1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBzdWJtaXRWYWx1ZXModXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhc1ZhbGlkVmFsdWUoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZSgpO1xuICAgICAgICByZXR1cm4gISFjdXJyZW50VmFsdWU7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUobmV3VmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IG5ld1ZhbHVlO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID0gbmV3VmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUNoYW5nZVVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEN1cnJlbnRWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHVwZGF0ZURpc3BsYXlWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHRoaXMub3B0aW9ucy5pdGVtcy5maW5kKCh7IHZhbHVlIH0pID0+IHZhbHVlID09PSB0aGlzLnZhbHVlKTtcbiAgICAgICAgaWYgKHNlbGVjdE9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KHNlbGVjdE9wdGlvbnMubmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSQubmV4dCgnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGFuZ2VIYW5kbGVyKGV2ZW50OiBNYXRSYWRpb0NoYW5nZSkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKGV2ZW50LnZhbHVlKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmdldFNlbGVjdGVkVmFsdWUoKTtcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShpbml0aWFsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXQodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gdGhpcy5nZXRTZWxlY3RlZFZhbHVlKCk7XG4gICAgICAgIGlmIChpbml0aWFsVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxtYXQtcmFkaW8tZ3JvdXBcbiAgICBjbGFzcz1cImFkZi1zZWFyY2gtcmFkaW8tZ3JvdXBcIlxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIChjaGFuZ2UpPVwiY2hhbmdlSGFuZGxlcigkZXZlbnQpXCI+XG4gICAgPG1hdC1yYWRpby1idXR0b24gW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidzZWFyY2gtcmFkaW8tJysob3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgIGNsYXNzPVwiYWRmLWZhY2V0LWZpbHRlclwiPlxuICAgICAgICA8ZGl2IHRpdGxlPVwie3sgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cIiBjbGFzcz1cImFkZi1maWx0ZXItbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbjwvbWF0LXJhZGlvLWdyb3VwPlxuXG48ZGl2IGNsYXNzPVwiYWRmLWZhY2V0LWJ1dHRvbnNcIiAqbmdJZj1cIiFvcHRpb25zLmZpdHNQYWdlXCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgKm5nSWY9XCJvcHRpb25zLmNhblNob3dMZXNzSXRlbXNcIlxuICAgICAgICB0aXRsZT1cInt7ICdTRUFSQ0guRklMVEVSLkFDVElPTlMuU0hPVy1MRVNTJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIChjbGljayk9XCJvcHRpb25zLnNob3dMZXNzSXRlbXMoKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfdXA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uXG4gICAgICAgICpuZ0lmPVwib3B0aW9ucy5jYW5TaG93TW9yZUl0ZW1zXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnU0VBUkNILkZJTFRFUi5BQ1RJT05TLlNIT1ctTU9SRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAoY2xpY2spPVwib3B0aW9ucy5zaG93TW9yZUl0ZW1zKClcIj5cbiAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|