@elderbyte/ngx-starter 18.13.0-beta.1 → 18.13.0
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/_index.scss +6 -23
- package/esm2022/lib/common/exceptions/public_api.mjs +2 -0
- package/esm2022/lib/common/exceptions/unreachable-case-error.mjs +6 -0
- package/esm2022/lib/common/public_api.mjs +2 -1
- package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +3 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
- package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
- package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox-controller.mjs +97 -0
- package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.mjs +50 -0
- package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox-controller.mjs +102 -0
- package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox.directive.mjs +50 -0
- package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +9 -3
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +5 -12
- package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +3 -3
- package/esm2022/lib/components/public_api.mjs +1 -2
- package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +3 -3
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +3 -3
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
- package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
- package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +5 -3
- package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +3 -3
- package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
- package/fesm2022/elderbyte-ngx-starter.mjs +349 -189
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/exceptions/public_api.d.ts +1 -0
- package/lib/common/exceptions/unreachable-case-error.d.ts +4 -0
- package/lib/common/public_api.d.ts +1 -0
- package/lib/components/forms/directives/checkbox/elder-single-state-checkbox-controller.d.ts +46 -0
- package/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.d.ts +34 -0
- package/lib/components/forms/directives/checkbox/elder-triple-state-checkbox-controller.d.ts +47 -0
- package/lib/components/forms/directives/{elder-triple-state-checkbox.directive.d.ts → checkbox/elder-triple-state-checkbox.directive.d.ts} +10 -23
- package/lib/components/forms/directives/elder-forms-directives.module.d.ts +9 -7
- package/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.d.ts +1 -2
- package/lib/components/public_api.d.ts +0 -1
- package/package.json +1 -1
- package/src/lib/components/badge/elder-badge/elder-badge.component.scss +1 -2
- package/src/lib/components/button-group/elder-button-group/elder-button-group.component.scss +7 -1
- package/src/lib/components/card-organizer/card-stack/elder-card-stack.component.scss +14 -3
- package/src/lib/components/cards/elder-card/elder-card.component.scss +8 -2
- package/src/lib/components/chips/_elder-chip-theme.scss +12 -101
- package/src/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.scss +6 -0
- package/src/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.scss +0 -11
- package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +22 -15
- package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +21 -12
- package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +9 -2
- package/src/lib/components/expand-toggle-button/elder-expand-toggle-button.component.scss +8 -2
- package/src/lib/components/files/blob-viewer/elder-blob-viewer.component.scss +9 -4
- package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +10 -7
- package/src/lib/components/iframes/iframe-host/iframe-host.component.scss +4 -0
- package/src/lib/components/navigation/nav/_elder-nav-theme.scss +24 -12
- package/src/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.scss +4 -1
- package/src/lib/components/panels/card-panel/elder-card-panel.component.scss +12 -3
- package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +12 -4
- package/src/lib/components/panels/flat/_elder-panel-theme.scss +9 -26
- package/src/lib/components/select/_elder-select-base.scss +9 -1
- package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +4 -1
- package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +39 -10
- package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +52 -19
- package/src/lib/components/select/single/elder-select/elder-select.component.scss +40 -24
- package/src/lib/components/time/_elder-time-input.theme.scss +3 -0
- package/src/lib/components/toasts/standard-toast/standard-toast.component.scss +2 -31
- package/theming/_elder-common.scss +399 -6
- package/theming/_elder-defaults.scss +7 -3
- package/theming/_elder-mdc-support.scss +142 -59
- package/theming/_elder-palettes.scss +148 -0
- package/theming/_elder-scrollbar-theme.scss +12 -2
- package/theming/_elder-style-fixes.scss +109 -42
- package/theming/_elder-theme.scss +51 -0
- package/theming/_elder-toast-theme.scss +46 -0
- package/theming/_elder-typography-utils.scss +11 -0
- package/theming/_mat-icon-button-size.scss +34 -0
- package/theming/_mixins.scss +0 -35
- package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +0 -120
- package/esm2022/lib/components/loader-background/loader-background.component.mjs +0 -11
- package/lib/components/loader-background/loader-background.component.d.ts +0 -5
- package/src/lib/components/chips/_elder-chip-theme-old.scss +0 -122
- package/src/lib/components/loader-background/loader-background.component.scss +0 -60
- package/theming/_elder-badge-sizing.scss +0 -21
- package/theming/_elder-color-variants.scss +0 -26
- package/theming/_elder-form.scss +0 -308
- package/theming/_elder-layout-system.scss +0 -242
- package/theming/_elder-m3-theme.scss +0 -879
|
@@ -13,7 +13,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
13
13
|
import { MatProgressBar } from '@angular/material/progress-bar';
|
|
14
14
|
import { MatIcon } from '@angular/material/icon';
|
|
15
15
|
import { MatOption } from '@angular/material/core';
|
|
16
|
-
import {
|
|
16
|
+
import { NgTemplateOutlet, AsyncPipe } from '@angular/common';
|
|
17
17
|
import { ElderInfiniteScrollDirective } from '../../../infinitescroll/elder-infinite-scroll.directive';
|
|
18
18
|
import { ElderInfiniteAutocompleteDirective } from '../../../infinitescroll/elder-infinite-autocomplete.directive';
|
|
19
19
|
import * as i0 from "@angular/core";
|
|
@@ -81,9 +81,6 @@ export class ElderSuggestionPanelComponent {
|
|
|
81
81
|
get valueTemplate() {
|
|
82
82
|
return this._valueTemplate || this.valueTemplateQuery;
|
|
83
83
|
}
|
|
84
|
-
set dataContext(data) {
|
|
85
|
-
this.dataContext$.next(data);
|
|
86
|
-
}
|
|
87
84
|
get dataContext() {
|
|
88
85
|
return this.dataContext$.getValue();
|
|
89
86
|
}
|
|
@@ -111,7 +108,7 @@ export class ElderSuggestionPanelComponent {
|
|
|
111
108
|
getEntityById(id) {
|
|
112
109
|
const dc = this.dataContext;
|
|
113
110
|
if (dc) {
|
|
114
|
-
return dc.snapshot.data.find((e) => this.getId(e)
|
|
111
|
+
return dc.snapshot.data.find((e) => this.getId(e) === id);
|
|
115
112
|
}
|
|
116
113
|
return undefined;
|
|
117
114
|
}
|
|
@@ -196,7 +193,7 @@ export class ElderSuggestionPanelComponent {
|
|
|
196
193
|
return this.PAGE_SIZE + this.hiddenOptionsCount$.getValue();
|
|
197
194
|
}
|
|
198
195
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderSuggestionPanelComponent, deps: [{ token: i0.NgZone }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ElderSuggestionPanelComponent, isStandalone: true, selector: "elder-suggestion-panel", inputs: { isOptionDisabledFn: "isOptionDisabledFn", isOptionHiddenFn: "isOptionHiddenFn", optionValueConverterFn: "optionValueConverterFn", enabled: "enabled", valueTemplate: "valueTemplate",
|
|
196
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ElderSuggestionPanelComponent, isStandalone: true, selector: "elder-suggestion-panel", inputs: { isOptionDisabledFn: "isOptionDisabledFn", isOptionHiddenFn: "isOptionHiddenFn", optionValueConverterFn: "optionValueConverterFn", enabled: "enabled", valueTemplate: "valueTemplate", dataSource: "dataSource", displayPropertyResolver: "displayPropertyResolver" }, outputs: { optionSelected: "optionSelected" }, queries: [{ propertyName: "valueTemplateQuery", first: true, predicate: ElderSelectValueDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true }], exportAs: ["elderSuggestionPanel"], ngImport: i0, template: "<mat-autocomplete\n #auto=\"matAutocomplete\"\n panelWidth=\"auto\"\n [autoActiveFirstOption]=\"true\"\n (opened)=\"onAutocompleteOpened($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n elderInfiniteScroll\n elderElderInfiniteAutocomplete\n (closeToEnd)=\"onAutoCompleteCloseToEnd()\"\n>\n @if (dataContext$ | async; as dc) {\n @if (dc.isClosed) {\n <mat-option disabled>\n <div class=\"layout-row place-start-center gap-sm\">\n <mat-icon color=\"warn\">warning</mat-icon>\n <span class=\"mat-caption\">DataContext Closed!</span>\n </div>\n </mat-option>\n }\n\n @if (availableSuggestions$ | async; as suggestions) {\n @if (suggestions.length === 0) {\n <mat-option disabled>No Data.</mat-option>\n }\n\n @for (suggestion of suggestions; track getIdAsString(suggestion)) {\n @if (isOptionVisible(suggestion)) {\n <mat-option\n [value]=\"toOptionValue(suggestion)\"\n [id]=\"getIdAsString(suggestion)\"\n [disabled]=\"!isOptionAvailable(suggestion)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n valueTemplate || simpleValueTemplate;\n context: { $implicit: suggestion }\n \"\n >\n </ng-container>\n <!--\n <span class=\"mat-caption\">value: {{toOptionValue(suggestion)}}</span>\n -->\n </mat-option>\n }\n }\n }\n } @else {\n <mat-option disabled>\n <span class=\"mat-caption\">\n No DataContext!\n @if (dataSource$ | async; as ds) {\n (DataSource: {{ ds ? 'available' : 'missing' }})\n {{ enabled ? 'Autocomplete Enabled' : 'Autocomplete DISABLED' }}\n }\n </span>\n </mat-option>\n }\n\n @if (dataState$ | async; as state) {\n @if (!state.idle || state.loading) {\n <mat-option disabled>\n <mat-progress-bar\n [value]=\"100\"\n [mode]=\"state.loading ? 'query' : 'determinate'\"\n [color]=\"state.error ? 'warn' : 'primary'\"\n ></mat-progress-bar>\n </mat-option>\n }\n }\n</mat-autocomplete>\n\n<ng-template #simpleValueTemplate let-value>\n @if (displayPropertyResolver$ | async; as propertyResolver) {\n <span class=\"noselect\">{{ propertyResolver(value) }}</span>\n }\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: ElderInfiniteAutocompleteDirective, selector: "mat-autocomplete[elderElderInfiniteAutocomplete]" }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
200
197
|
}
|
|
201
198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderSuggestionPanelComponent, decorators: [{
|
|
202
199
|
type: Component,
|
|
@@ -204,14 +201,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
204
201
|
MatAutocomplete,
|
|
205
202
|
ElderInfiniteAutocompleteDirective,
|
|
206
203
|
ElderInfiniteScrollDirective,
|
|
207
|
-
NgIf,
|
|
208
204
|
MatOption,
|
|
209
205
|
MatIcon,
|
|
210
|
-
NgFor,
|
|
211
206
|
NgTemplateOutlet,
|
|
212
207
|
MatProgressBar,
|
|
213
208
|
AsyncPipe,
|
|
214
|
-
], template: "<mat-autocomplete\n #auto=\"matAutocomplete\"\n panelWidth=\"auto\"\n [autoActiveFirstOption]=\"true\"\n (opened)=\"onAutocompleteOpened($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n elderInfiniteScroll\n elderElderInfiniteAutocomplete\n (closeToEnd)=\"onAutoCompleteCloseToEnd()\"\n>\n
|
|
209
|
+
], template: "<mat-autocomplete\n #auto=\"matAutocomplete\"\n panelWidth=\"auto\"\n [autoActiveFirstOption]=\"true\"\n (opened)=\"onAutocompleteOpened($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n elderInfiniteScroll\n elderElderInfiniteAutocomplete\n (closeToEnd)=\"onAutoCompleteCloseToEnd()\"\n>\n @if (dataContext$ | async; as dc) {\n @if (dc.isClosed) {\n <mat-option disabled>\n <div class=\"layout-row place-start-center gap-sm\">\n <mat-icon color=\"warn\">warning</mat-icon>\n <span class=\"mat-caption\">DataContext Closed!</span>\n </div>\n </mat-option>\n }\n\n @if (availableSuggestions$ | async; as suggestions) {\n @if (suggestions.length === 0) {\n <mat-option disabled>No Data.</mat-option>\n }\n\n @for (suggestion of suggestions; track getIdAsString(suggestion)) {\n @if (isOptionVisible(suggestion)) {\n <mat-option\n [value]=\"toOptionValue(suggestion)\"\n [id]=\"getIdAsString(suggestion)\"\n [disabled]=\"!isOptionAvailable(suggestion)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n valueTemplate || simpleValueTemplate;\n context: { $implicit: suggestion }\n \"\n >\n </ng-container>\n <!--\n <span class=\"mat-caption\">value: {{toOptionValue(suggestion)}}</span>\n -->\n </mat-option>\n }\n }\n }\n } @else {\n <mat-option disabled>\n <span class=\"mat-caption\">\n No DataContext!\n @if (dataSource$ | async; as ds) {\n (DataSource: {{ ds ? 'available' : 'missing' }})\n {{ enabled ? 'Autocomplete Enabled' : 'Autocomplete DISABLED' }}\n }\n </span>\n </mat-option>\n }\n\n @if (dataState$ | async; as state) {\n @if (!state.idle || state.loading) {\n <mat-option disabled>\n <mat-progress-bar\n [value]=\"100\"\n [mode]=\"state.loading ? 'query' : 'determinate'\"\n [color]=\"state.error ? 'warn' : 'primary'\"\n ></mat-progress-bar>\n </mat-option>\n }\n }\n</mat-autocomplete>\n\n<ng-template #simpleValueTemplate let-value>\n @if (displayPropertyResolver$ | async; as propertyResolver) {\n <span class=\"noselect\">{{ propertyResolver(value) }}</span>\n }\n</ng-template>\n" }]
|
|
215
210
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.DestroyRef }], propDecorators: { valueTemplateQuery: [{
|
|
216
211
|
type: ContentChild,
|
|
217
212
|
args: [ElderSelectValueDirective, { read: TemplateRef, static: true }]
|
|
@@ -230,11 +225,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
230
225
|
type: Input
|
|
231
226
|
}], valueTemplate: [{
|
|
232
227
|
type: Input
|
|
233
|
-
}], dataContext: [{
|
|
234
|
-
type: Input
|
|
235
228
|
}], dataSource: [{
|
|
236
229
|
type: Input
|
|
237
230
|
}], displayPropertyResolver: [{
|
|
238
231
|
type: Input
|
|
239
232
|
}] } });
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2F1dG9jb21wbGV0ZS9lbGRlci1hdXRvY29tcGxldGUvZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2F1dG9jb21wbGV0ZS9lbGRlci1hdXRvY29tcGxldGUvZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlFLE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSxtREFBbUQsQ0FBQTtBQUMxRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQWdDLE1BQU0sZ0NBQWdDLENBQUE7QUFDOUYsT0FBTyxFQUFFLHlCQUF5QixF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dHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERlc3Ryb3lSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgSURhdGFDb250ZXh0LFxuICBpc0NvbnRpbnVhYmxlRGF0YUNvbnRleHQsXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IHJ1bkluWm9uZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy9uZy16b25lLXV0aWxzJ1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LXN0YXR1cydcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZSwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSdcbmltcG9ydCB7IEVsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9zZWxlY3QvZWxkZXItc2VsZWN0LXZhbHVlLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVsZGVyQXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgfSBmcm9tICcuL2VsZGVyLWF1dG9jb21wbGV0ZS1vcHRpb24tc2VsZWN0ZWQnXG5pbXBvcnQgeyBJRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnXG5pbXBvcnQgeyBEYXRhQ29udGV4dEJ1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXInXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCdcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJ1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBNYXRPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEVsZGVySW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9pbmZpbml0ZXNjcm9sbC9lbGRlci1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJJbmZpbml0ZUF1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUnXG5cbnR5cGUgVGV4dFJlc29sdmVyRm4gPSAodmFsdWU6IGFueSkgPT4gc3RyaW5nXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXN1Z2dlc3Rpb24tcGFuZWwnLFxuICBleHBvcnRBczogJ2VsZGVyU3VnZ2VzdGlvblBhbmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXN1Z2dlc3Rpb24tcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1zdWdnZXN0aW9uLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0QXV0b2NvbXBsZXRlLFxuICAgIEVsZGVySW5maW5pdGVBdXRvY29tcGxldGVEaXJlY3RpdmUsXG4gICAgRWxkZXJJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICBOZ0lmLFxuICAgIE1hdE9wdGlvbixcbiAgICBNYXRJY29uLFxuICAgIE5nRm9yLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTWF0UHJvZ3Jlc3NCYXIsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclN1Z2dlc3Rpb25QYW5lbENvbXBvbmVudDxUID0gYW55LCBUSWQgPSBhbnk+IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG4gIHByaXZhdGUgcmVhZG9ubHkgUEFHRV9TSVpFID0gMTBcblxuICAvKipcbiAgICogSXMgdGhpcyBhdXRvLWNvbXBsZXRlIGVuYWJsZWQ/XG4gICAqL1xuICBwcml2YXRlIF9lbmFibGVkID0gdHJ1ZVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdGVtcGxhdGUgdG8gY3VzdG9taXplIHRoZSB1aSBsb29rLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdFZhbHVlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHZhbHVlVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PlxuICBwcml2YXRlIF92YWx1ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XG5cbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIE1hdGVyaWFsIEF1dG9jb21wbGV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1hdEF1dG9jb21wbGV0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hdEF1dG9jb21wbGV0ZT4obnVsbClcblxuICBAVmlld0NoaWxkKCdhdXRvJylcbiAgcHVibGljIHNldCBtYXRBdXRvY29tcGxldGUoYXV0bzogTWF0QXV0b2NvbXBsZXRlKSB7XG4gICAgdGhpcy5tYXRBdXRvY29tcGxldGUkLm5leHQoYXV0bylcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc09wdGlvbkRpc2FibGVkRm46IChvcHRpb246IFQpID0+IGJvb2xlYW5cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNPcHRpb25IaWRkZW5GbjogKG9wdGlvbjogVCkgPT4gYm9vbGVhblxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25WYWx1ZUNvbnZlcnRlckZuOiAob3B0aW9uOiBUKSA9PiBhbnlcblxuICAvKipcbiAgICogVGhlIERhdGFDb250ZXh0IHdoaWNoIGhvbGRzIHRoZSBhdXRvY29tcGxldGUgc3VnZ2VzdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YUNvbnRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJRGF0YUNvbnRleHQ8VD4+KG51bGwpXG4gIHB1YmxpYyByZWFkb25seSBkYXRhU291cmNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SURhdGFTb3VyY2U8VD4+KG51bGwpXG5cbiAgcHVibGljIHJlYWRvbmx5IHRyaWdnZXJSZWxvYWQkID0gbmV3IFN1YmplY3Q8YW55PigpXG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGV4dFJlc29sdmVyRm4+KCh2YWx1ZTogVCkgPT5cbiAgICB0aGlzLnByb3BlcnR5U3RyaW5nVmFsdWUodmFsdWUsIG51bGwpXG4gIClcblxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YVN0YXRlJDogT2JzZXJ2YWJsZTxEYXRhQ29udGV4dFN0YXR1cz5cblxuICBwdWJsaWMgcmVhZG9ubHkgYXZhaWxhYmxlU3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPFRbXT5cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IG9wdGlvblNlbGVjdGVkID0gbmV3IFN1YmplY3Q8RWxkZXJBdXRvY29tcGxldGVPcHRpb25TZWxlY3RlZD4oKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGlkZGVuT3B0aW9uc0NvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICApIHtcbiAgICB0aGlzLmRhdGFTdGF0ZSQgPSB0aGlzLmRhdGFDb250ZXh0JC5waXBlKFxuICAgICAgZmlsdGVyKChkYykgPT4gISFkYyksXG4gICAgICBzd2l0Y2hNYXAoKGRjKSA9PiBkYy5zdGF0dXMpLFxuICAgICAgcnVuSW5ab25lKHRoaXMuem9uZSlcbiAgICApXG5cbiAgICB0aGlzLmF2YWlsYWJsZVN1Z2dlc3Rpb25zJCA9IHRoaXMuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGRjKSA9PiAoZGMgPyBkYy5kYXRhIDogb2YoW10pKSksXG4gICAgICBydW5JblpvbmUodGhpcy56b25lKVxuICAgIClcblxuICAgIHRoaXMuYXZhaWxhYmxlU3VnZ2VzdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpLFxuICAgICAgICBtYXAoKHN1Z2dlc3Rpb25zKSA9PiBzdWdnZXN0aW9ucy5maWx0ZXIoKHN1Z2dlc3Rpb24pID0+IHRoaXMuaXNPcHRpb25IaWRkZW4oc3VnZ2VzdGlvbikpKSxcbiAgICAgICAgbWFwKChzdWdnZXN0aW9uKSA9PiBzdWdnZXN0aW9uLmxlbmd0aClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNvdW50KSA9PiB0aGlzLmhpZGRlbk9wdGlvbnNDb3VudCQubmV4dChjb3VudCkpXG5cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmRhdGFTb3VyY2UkLCB0aGlzLnRyaWdnZXJSZWxvYWQkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoZGVzdHJveVJlZiksXG4gICAgICAgIGZpbHRlcigoW2RzXSkgPT4gISFkcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtkc10pID0+IHtcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dCQubmV4dCh0aGlzLmJ1aWxkRGF0YUNvbnRleHRXaXRoUGFnZVNpemUoZHMpKVxuICAgICAgfSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW5hYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZFxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZVRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5fdmFsdWVUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlVGVtcGxhdGUgfHwgdGhpcy52YWx1ZVRlbXBsYXRlUXVlcnlcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YUNvbnRleHQoZGF0YTogSURhdGFDb250ZXh0PFQ+KSB7XG4gICAgdGhpcy5kYXRhQ29udGV4dCQubmV4dChkYXRhKVxuICB9XG5cbiAgcHVibGljIGdldCBkYXRhQ29udGV4dCgpOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0JC5nZXRWYWx1ZSgpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UoZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8VD4pIHtcbiAgICBpZiAoZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5kYXRhU291cmNlJC5uZXh0KGRhdGFTb3VyY2UpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IElEYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyKHJlc29sdmVyOiBUZXh0UmVzb2x2ZXJGbikge1xuICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLm5leHQocmVzb2x2ZXIpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgb25PcHRpb25TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbiA9IGV2ZW50Lm9wdGlvblxuICAgIGNvbnN0IGlkID0gb3B0aW9uLmlkIGFzIHVua25vd24gYXMgVElkXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5uZXh0KFxuICAgICAgbmV3IEVsZGVyQXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQodGhpcywgaWQsIHRoaXMuZ2V0RW50aXR5QnlJZChpZCksIG9wdGlvbi52YWx1ZSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUJ5SWQoaWQ6IFRJZCk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGRjID0gdGhpcy5kYXRhQ29udGV4dFxuICAgIGlmIChkYykge1xuICAgICAgcmV0dXJuIGRjLnNuYXBzaG90LmRhdGEuZmluZCgoZSkgPT4gdGhpcy5nZXRJZChlKSA9PSBpZClcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlT3BlbmVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmFibGVkKSB7XG4gICAgICB0aGlzLnRyaWdnZXJSZWxvYWQkLm5leHQobnVsbClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0F1dG9jb21wbGV0ZSBvcGVuZWQgLT4gQlVUIERJU0FCTEVEISEnLCBldmVudClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BdXRvQ29tcGxldGVDbG9zZVRvRW5kKCk6IHZvaWQge1xuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdBdXRvY29tcGxldGUgaXMgY2xvc2UgdG8gZW5kIScpO1xuICAgIGlmIChpc0NvbnRpbnVhYmxlRGF0YUNvbnRleHQodGhpcy5kYXRhQ29udGV4dCkpIHtcbiAgICAgIGlmICghdGhpcy5kYXRhQ29udGV4dC5zbmFwc2hvdC5pc0xvYWRpbmcpIHtcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5sb2FkTW9yZSgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldElkQXNTdHJpbmcodmFsdWU6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdHJpbmcodGhpcy5nZXRJZCh2YWx1ZSkpXG4gIH1cblxuICBwdWJsaWMgZ2V0SWQodmFsdWU6IFQpOiBUSWQge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0Py5kYXRhU291cmNlPy5nZXRJZCh2YWx1ZSkgfHwgdmFsdWVcbiAgfVxuXG4gIHB1YmxpYyBpc09wdGlvbkF2YWlsYWJsZShvcHRpb246IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkRm4pIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc09wdGlvbkRpc2FibGVkRm4ob3B0aW9uKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc09wdGlvblZpc2libGUob3B0aW9uOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNPcHRpb25IaWRkZW5Gbikge1xuICAgICAgcmV0dXJuICF0aGlzLmlzT3B0aW9uSGlkZGVuRm4ob3B0aW9uKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc09wdGlvbkhpZGRlbihvcHRpb246IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc09wdGlvbkhpZGRlbkZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkhpZGRlbkZuKG9wdGlvbilcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvT3B0aW9uVmFsdWUob3B0aW9uOiBUKTogYW55IHtcbiAgICBpZiAodGhpcy5vcHRpb25WYWx1ZUNvbnZlcnRlckZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25WYWx1ZUNvbnZlcnRlckZuKG9wdGlvbilcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvblxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBUT0RPIER1cGxpY2F0ZSBpbiBlbGRlci1zZWxlY3RcbiAgICovXG4gIHByaXZhdGUgcHJvcGVydHlTdHJpbmdWYWx1ZSh2YWx1ZTogVCwgcHJvcGVydHk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgcmV0dXJuICg8YW55PnZhbHVlKVtwcm9wZXJ0eV1cbiAgICB9XG5cbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZERhdGFDb250ZXh0V2l0aFBhZ2VTaXplKGRhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0PFQ+IHtcbiAgICBpZiAodGhpcy5kYXRhQ29udGV4dCkge1xuICAgICAgdGhpcy5kYXRhQ29udGV4dC5jbG9zZSgpXG4gICAgfVxuICAgIHJldHVybiBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQ8VD4oKS5wYWdlU2l6ZSh0aGlzLmNhbGN1bGF0ZVBhZ2VTaXplKCkpLmJ1aWxkKGRhdGFTb3VyY2UpXG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZVBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuUEFHRV9TSVpFICsgdGhpcy5oaWRkZW5PcHRpb25zQ291bnQkLmdldFZhbHVlKClcbiAgfVxufVxuIiwiPG1hdC1hdXRvY29tcGxldGVcbiAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICBwYW5lbFdpZHRoPVwiYXV0b1wiXG4gIFthdXRvQWN0aXZlRmlyc3RPcHRpb25dPVwidHJ1ZVwiXG4gIChvcGVuZWQpPVwib25BdXRvY29tcGxldGVPcGVuZWQoJGV2ZW50KVwiXG4gIChvcHRpb25TZWxlY3RlZCk9XCJvbk9wdGlvblNlbGVjdGVkKCRldmVudClcIlxuICBlbGRlckluZmluaXRlU2Nyb2xsXG4gIGVsZGVyRWxkZXJJbmZpbml0ZUF1dG9jb21wbGV0ZVxuICAoY2xvc2VUb0VuZCk9XCJvbkF1dG9Db21wbGV0ZUNsb3NlVG9FbmQoKVwiXG4+XG4gIDwhLS1cbiAgPG1hdC1vcHRpb24gKm5nSWY9XCJhbGxvd051bGxcIiBbdmFsdWVdPVwibnVsbFwiPnt7bnVsbERpc3BsYXkgfCB0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cbiAgLS0+XG5cbiAgQGlmIChkYXRhQ29udGV4dCQgfCBhc3luYzsgYXMgZGMpIHtcbiAgICBAaWYgKGRjLmlzQ2xvc2VkKSB7XG4gICAgICA8bWF0LW9wdGlvbiBkaXNhYmxlZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGdhcC1zbVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cIndhcm5cIj53YXJuaW5nPC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uXCI+RGF0YUNvbnRleHQgQ2xvc2VkITwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgfVxuXG4gICAgQGlmIChhdmFpbGFibGVTdWdnZXN0aW9ucyQgfCBhc3luYzsgYXMgc3VnZ2VzdGlvbnMpIHtcbiAgICAgIEBpZiAoc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIGRpc2FibGVkPk5vIERhdGEuPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuXG4gICAgICBAZm9yIChzdWdnZXN0aW9uIG9mIHN1Z2dlc3Rpb25zOyB0cmFjayBnZXRJZEFzU3RyaW5nKHN1Z2dlc3Rpb24pKSB7XG4gICAgICAgIEBpZiAoaXNPcHRpb25WaXNpYmxlKHN1Z2dlc3Rpb24pKSB7XG4gICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgIFt2YWx1ZV09XCJ0b09wdGlvblZhbHVlKHN1Z2dlc3Rpb24pXCJcbiAgICAgICAgICAgIFtpZF09XCJnZXRJZEFzU3RyaW5nKHN1Z2dlc3Rpb24pXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNPcHRpb25BdmFpbGFibGUoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICB2YWx1ZVRlbXBsYXRlIHx8IHNpbXBsZVZhbHVlVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHN1Z2dlc3Rpb24gfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8IS0tXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uXCI+dmFsdWU6IHt7dG9PcHRpb25WYWx1ZShzdWdnZXN0aW9uKX19PC9zcGFuPlxuICAgICAgICAgICAgLS0+XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICA8bWF0LW9wdGlvbiBkaXNhYmxlZD5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb25cIj5cbiAgICAgICAgTm8gRGF0YUNvbnRleHQhXG4gICAgICAgIEBpZiAoZGF0YVNvdXJjZSQgfCBhc3luYzsgYXMgZHMpIHtcbiAgICAgICAgICAoRGF0YVNvdXJjZToge3sgZHMgPyAnYXZhaWxhYmxlJyA6ICdtaXNzaW5nJyB9fSlcbiAgICAgICAgICB7eyBlbmFibGVkID8gJ0F1dG9jb21wbGV0ZSBFbmFibGVkJyA6ICdBdXRvY29tcGxldGUgRElTQUJMRUQnIH19XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L21hdC1vcHRpb24+XG4gIH1cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YVN0YXRlJCB8IGFzeW5jIGFzIHN0YXRlXCI+XG4gICAgPG1hdC1vcHRpb24gZGlzYWJsZWQgKm5nSWY9XCIhc3RhdGUuaWRsZSB8fCBzdGF0ZS5sb2FkaW5nXCI+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhclxuICAgICAgICBbdmFsdWVdPVwiMTAwXCJcbiAgICAgICAgW21vZGVdPVwic3RhdGUubG9hZGluZyA/ICdxdWVyeScgOiAnZGV0ZXJtaW5hdGUnXCJcbiAgICAgICAgW2NvbG9yXT1cInN0YXRlLmVycm9yID8gJ3dhcm4nIDogJ3ByaW1hcnknXCJcbiAgICAgID48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9tYXQtb3B0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LWF1dG9jb21wbGV0ZT5cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVWYWx1ZVRlbXBsYXRlIGxldC12YWx1ZT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jIGFzIHByb3BlcnR5UmVzb2x2ZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cIm5vc2VsZWN0XCI+e3sgcHJvcGVydHlSZXNvbHZlcih2YWx1ZSkgfX08L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2F1dG9jb21wbGV0ZS9lbGRlci1hdXRvY29tcGxldGUvZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2F1dG9jb21wbGV0ZS9lbGRlci1hdXRvY29tcGxldGUvZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlFLE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSxtREFBbUQsQ0FBQTtBQUMxRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQWdDLE1BQU0sZ0NBQWdDLENBQUE7QUFDOUYsT0FBTyxFQUFFLHlCQUF5QixF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RCxDQUFDOzhHQTlQVSw2QkFBNkI7a0dBQTdCLDZCQUE2QixpY0FrQjFCLHlCQUF5QiwyQkFBVSxXQUFXLHdMQ3hFOUQsNjJFQTRFQSwwRERoQ0ksZUFBZSx5V0FDZixrQ0FBa0MsNkZBQ2xDLDRCQUE0QiwwTkFDNUIsU0FBUyxxSkFDVCxPQUFPLDJJQUNQLGdCQUFnQixvSkFDaEIsY0FBYyxvS0FDZCxTQUFTOzsyRkFHQSw2QkFBNkI7a0JBbEJ6QyxTQUFTOytCQUNFLHdCQUF3QixZQUN4QixzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixrQ0FBa0M7d0JBQ2xDLDRCQUE0Qjt3QkFDNUIsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxTQUFTO3FCQUNWO29HQXFCTSxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBVWpFLGVBQWU7c0JBRHpCLFNBQVM7dUJBQUMsTUFBTTtnQkFNVixrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLHNCQUFzQjtzQkFENUIsS0FBSztnQkFvQlUsY0FBYztzQkFEN0IsTUFBTTtnQkFtREksT0FBTztzQkFEakIsS0FBSztnQkFVSyxhQUFhO3NCQUR2QixLQUFLO2dCQWNLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBWUssdUJBQXVCO3NCQURqQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIElEYXRhQ29udGV4dCxcbiAgaXNDb250aW51YWJsZURhdGFDb250ZXh0LFxufSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0J1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBydW5JblpvbmUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvbmctem9uZS11dGlscydcbmltcG9ydCB7IERhdGFDb250ZXh0U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1zdGF0dXMnXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGUsIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnXG5pbXBvcnQgeyBFbGRlclNlbGVjdFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vc2VsZWN0L2VsZGVyLXNlbGVjdC12YWx1ZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBFbGRlckF1dG9jb21wbGV0ZU9wdGlvblNlbGVjdGVkIH0gZnJvbSAnLi9lbGRlci1hdXRvY29tcGxldGUtb3B0aW9uLXNlbGVjdGVkJ1xuaW1wb3J0IHsgSURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2RhdGEtc291cmNlJ1xuaW1wb3J0IHsgRGF0YUNvbnRleHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1idWlsZGVyJ1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcidcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSdcbmltcG9ydCB7IE5nSWYsIE5nRm9yLCBOZ1RlbXBsYXRlT3V0bGV0LCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBFbGRlckluZmluaXRlU2Nyb2xsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vaW5maW5pdGVzY3JvbGwvZWxkZXItaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVsZGVySW5maW5pdGVBdXRvY29tcGxldGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9pbmZpbml0ZXNjcm9sbC9lbGRlci1pbmZpbml0ZS1hdXRvY29tcGxldGUuZGlyZWN0aXZlJ1xuXG50eXBlIFRleHRSZXNvbHZlckZuID0gKHZhbHVlOiBhbnkpID0+IHN0cmluZ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1zdWdnZXN0aW9uLXBhbmVsJyxcbiAgZXhwb3J0QXM6ICdlbGRlclN1Z2dlc3Rpb25QYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1zdWdnZXN0aW9uLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEF1dG9jb21wbGV0ZSxcbiAgICBFbGRlckluZmluaXRlQXV0b2NvbXBsZXRlRGlyZWN0aXZlLFxuICAgIEVsZGVySW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsXG4gICAgTWF0T3B0aW9uLFxuICAgIE1hdEljb24sXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBNYXRQcm9ncmVzc0JhcixcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU3VnZ2VzdGlvblBhbmVsQ29tcG9uZW50PFQgPSBhbnksIFRJZCA9IGFueT4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcbiAgcHJpdmF0ZSByZWFkb25seSBQQUdFX1NJWkUgPSAxMFxuXG4gIC8qKlxuICAgKiBJcyB0aGlzIGF1dG8tY29tcGxldGUgZW5hYmxlZD9cbiAgICovXG4gIHByaXZhdGUgX2VuYWJsZWQgPSB0cnVlXG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0ZW1wbGF0ZSB0byBjdXN0b21pemUgdGhlIHVpIGxvb2suXG4gICAqL1xuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgdmFsdWVUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+XG4gIHByaXZhdGUgX3ZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT5cblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgTWF0ZXJpYWwgQXV0b2NvbXBsZXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWF0QXV0b2NvbXBsZXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF0QXV0b2NvbXBsZXRlPihudWxsKVxuXG4gIEBWaWV3Q2hpbGQoJ2F1dG8nKVxuICBwdWJsaWMgc2V0IG1hdEF1dG9jb21wbGV0ZShhdXRvOiBNYXRBdXRvY29tcGxldGUpIHtcbiAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZSQubmV4dChhdXRvKVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzT3B0aW9uRGlzYWJsZWRGbjogKG9wdGlvbjogVCkgPT4gYm9vbGVhblxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc09wdGlvbkhpZGRlbkZuOiAob3B0aW9uOiBUKSA9PiBib29sZWFuXG5cbiAgQElucHV0KClcbiAgcHVibGljIG9wdGlvblZhbHVlQ29udmVydGVyRm46IChvcHRpb246IFQpID0+IGFueVxuXG4gIC8qKlxuICAgKiBUaGUgRGF0YUNvbnRleHQgd2hpY2ggaG9sZHMgdGhlIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9ucy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkYXRhQ29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEYXRhQ29udGV4dDxUPj4obnVsbClcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJRGF0YVNvdXJjZTxUPj4obnVsbClcblxuICBwdWJsaWMgcmVhZG9ubHkgdHJpZ2dlclJlbG9hZCQgPSBuZXcgU3ViamVjdDxhbnk+KClcblxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZXh0UmVzb2x2ZXJGbj4oKHZhbHVlOiBUKSA9PlxuICAgIHRoaXMucHJvcGVydHlTdHJpbmdWYWx1ZSh2YWx1ZSwgbnVsbClcbiAgKVxuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhU3RhdGUkOiBPYnNlcnZhYmxlPERhdGFDb250ZXh0U3RhdHVzPlxuXG4gIHB1YmxpYyByZWFkb25seSBhdmFpbGFibGVTdWdnZXN0aW9ucyQ6IE9ic2VydmFibGU8VFtdPlxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxFbGRlckF1dG9jb21wbGV0ZU9wdGlvblNlbGVjdGVkPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBoaWRkZW5PcHRpb25zQ291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmXG4gICkge1xuICAgIHRoaXMuZGF0YVN0YXRlJCA9IHRoaXMuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICBmaWx0ZXIoKGRjKSA9PiAhIWRjKSxcbiAgICAgIHN3aXRjaE1hcCgoZGMpID0+IGRjLnN0YXR1cyksXG4gICAgICBydW5JblpvbmUodGhpcy56b25lKVxuICAgIClcblxuICAgIHRoaXMuYXZhaWxhYmxlU3VnZ2VzdGlvbnMkID0gdGhpcy5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZGMpID0+IChkYyA/IGRjLmRhdGEgOiBvZihbXSkpKSxcbiAgICAgIHJ1bkluWm9uZSh0aGlzLnpvbmUpXG4gICAgKVxuXG4gICAgdGhpcy5hdmFpbGFibGVTdWdnZXN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoZGVzdHJveVJlZiksXG4gICAgICAgIG1hcCgoc3VnZ2VzdGlvbnMpID0+IHN1Z2dlc3Rpb25zLmZpbHRlcigoc3VnZ2VzdGlvbikgPT4gdGhpcy5pc09wdGlvbkhpZGRlbihzdWdnZXN0aW9uKSkpLFxuICAgICAgICBtYXAoKHN1Z2dlc3Rpb24pID0+IHN1Z2dlc3Rpb24ubGVuZ3RoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY291bnQpID0+IHRoaXMuaGlkZGVuT3B0aW9uc0NvdW50JC5uZXh0KGNvdW50KSlcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF0YVNvdXJjZSQsIHRoaXMudHJpZ2dlclJlbG9hZCRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZChkZXN0cm95UmVmKSxcbiAgICAgICAgZmlsdGVyKChbZHNdKSA9PiAhIWRzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW2RzXSkgPT4ge1xuICAgICAgICB0aGlzLmRhdGFDb250ZXh0JC5uZXh0KHRoaXMuYnVpbGREYXRhQ29udGV4dFdpdGhQYWdlU2l6ZShkcykpXG4gICAgICB9KVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbmFibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9lbmFibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKVxuICB9XG5cbiAgcHVibGljIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZhbHVlVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl92YWx1ZVRlbXBsYXRlID0gdGVtcGxhdGVcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWVUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVUZW1wbGF0ZSB8fCB0aGlzLnZhbHVlVGVtcGxhdGVRdWVyeVxuICB9XG5cbiAgcHVibGljIGdldCBkYXRhQ29udGV4dCgpOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0JC5nZXRWYWx1ZSgpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UoZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8VD4pIHtcbiAgICBpZiAoZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5kYXRhU291cmNlJC5uZXh0KGRhdGFTb3VyY2UpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IElEYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyKHJlc29sdmVyOiBUZXh0UmVzb2x2ZXJGbikge1xuICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLm5leHQocmVzb2x2ZXIpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgb25PcHRpb25TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbiA9IGV2ZW50Lm9wdGlvblxuICAgIGNvbnN0IGlkID0gb3B0aW9uLmlkIGFzIHVua25vd24gYXMgVElkXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5uZXh0KFxuICAgICAgbmV3IEVsZGVyQXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQodGhpcywgaWQsIHRoaXMuZ2V0RW50aXR5QnlJZChpZCksIG9wdGlvbi52YWx1ZSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUJ5SWQoaWQ6IFRJZCk6IFQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGRjID0gdGhpcy5kYXRhQ29udGV4dFxuICAgIGlmIChkYykge1xuICAgICAgcmV0dXJuIGRjLnNuYXBzaG90LmRhdGEuZmluZCgoZSkgPT4gdGhpcy5nZXRJZChlKSA9PT0gaWQpXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIHB1YmxpYyBvbkF1dG9jb21wbGV0ZU9wZW5lZChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy50cmlnZ2VyUmVsb2FkJC5uZXh0KG51bGwpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdBdXRvY29tcGxldGUgb3BlbmVkIC0+IEJVVCBESVNBQkxFRCEhJywgZXZlbnQpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQXV0b0NvbXBsZXRlQ2xvc2VUb0VuZCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnQXV0b2NvbXBsZXRlIGlzIGNsb3NlIHRvIGVuZCEnKTtcbiAgICBpZiAoaXNDb250aW51YWJsZURhdGFDb250ZXh0KHRoaXMuZGF0YUNvbnRleHQpKSB7XG4gICAgICBpZiAoIXRoaXMuZGF0YUNvbnRleHQuc25hcHNob3QuaXNMb2FkaW5nKSB7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQubG9hZE1vcmUoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJZEFzU3RyaW5nKHZhbHVlOiBUKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKHRoaXMuZ2V0SWQodmFsdWUpKVxuICB9XG5cbiAgcHVibGljIGdldElkKHZhbHVlOiBUKTogVElkIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udGV4dD8uZGF0YVNvdXJjZT8uZ2V0SWQodmFsdWUpIHx8IHZhbHVlXG4gIH1cblxuICBwdWJsaWMgaXNPcHRpb25BdmFpbGFibGUob3B0aW9uOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKSB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKG9wdGlvbilcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNPcHRpb25WaXNpYmxlKG9wdGlvbjogVCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzT3B0aW9uSGlkZGVuRm4pIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc09wdGlvbkhpZGRlbkZuKG9wdGlvbilcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNPcHRpb25IaWRkZW4ob3B0aW9uOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNPcHRpb25IaWRkZW5Gbikge1xuICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25IaWRkZW5GbihvcHRpb24pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b09wdGlvblZhbHVlKG9wdGlvbjogVCk6IGFueSB7XG4gICAgaWYgKHRoaXMub3B0aW9uVmFsdWVDb252ZXJ0ZXJGbikge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uVmFsdWVDb252ZXJ0ZXJGbihvcHRpb24pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25cbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogVE9ETyBEdXBsaWNhdGUgaW4gZWxkZXItc2VsZWN0XG4gICAqL1xuICBwcml2YXRlIHByb3BlcnR5U3RyaW5nVmFsdWUodmFsdWU6IFQsIHByb3BlcnR5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIHJldHVybiAoPGFueT52YWx1ZSlbcHJvcGVydHldXG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREYXRhQ29udGV4dFdpdGhQYWdlU2l6ZShkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgaWYgKHRoaXMuZGF0YUNvbnRleHQpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQuY2xvc2UoKVxuICAgIH1cbiAgICByZXR1cm4gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0PFQ+KCkucGFnZVNpemUodGhpcy5jYWxjdWxhdGVQYWdlU2l6ZSgpKS5idWlsZChkYXRhU291cmNlKVxuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVQYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLlBBR0VfU0laRSArIHRoaXMuaGlkZGVuT3B0aW9uc0NvdW50JC5nZXRWYWx1ZSgpXG4gIH1cbn1cbiIsIjxtYXQtYXV0b2NvbXBsZXRlXG4gICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgcGFuZWxXaWR0aD1cImF1dG9cIlxuICBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRydWVcIlxuICAob3BlbmVkKT1cIm9uQXV0b2NvbXBsZXRlT3BlbmVkKCRldmVudClcIlxuICAob3B0aW9uU2VsZWN0ZWQpPVwib25PcHRpb25TZWxlY3RlZCgkZXZlbnQpXCJcbiAgZWxkZXJJbmZpbml0ZVNjcm9sbFxuICBlbGRlckVsZGVySW5maW5pdGVBdXRvY29tcGxldGVcbiAgKGNsb3NlVG9FbmQpPVwib25BdXRvQ29tcGxldGVDbG9zZVRvRW5kKClcIlxuPlxuICBAaWYgKGRhdGFDb250ZXh0JCB8IGFzeW5jOyBhcyBkYykge1xuICAgIEBpZiAoZGMuaXNDbG9zZWQpIHtcbiAgICAgIDxtYXQtb3B0aW9uIGRpc2FibGVkPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZ2FwLXNtXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwid2FyblwiPndhcm5pbmc8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb25cIj5EYXRhQ29udGV4dCBDbG9zZWQhPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICB9XG5cbiAgICBAaWYgKGF2YWlsYWJsZVN1Z2dlc3Rpb25zJCB8IGFzeW5jOyBhcyBzdWdnZXN0aW9ucykge1xuICAgICAgQGlmIChzdWdnZXN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ+Tm8gRGF0YS48L21hdC1vcHRpb24+XG4gICAgICB9XG5cbiAgICAgIEBmb3IgKHN1Z2dlc3Rpb24gb2Ygc3VnZ2VzdGlvbnM7IHRyYWNrIGdldElkQXNTdHJpbmcoc3VnZ2VzdGlvbikpIHtcbiAgICAgICAgQGlmIChpc09wdGlvblZpc2libGUoc3VnZ2VzdGlvbikpIHtcbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgW3ZhbHVlXT1cInRvT3B0aW9uVmFsdWUoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgICAgW2lkXT1cImdldElkQXNTdHJpbmcoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc09wdGlvbkF2YWlsYWJsZShzdWdnZXN0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHZhbHVlVGVtcGxhdGUgfHwgc2ltcGxlVmFsdWVUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3VnZ2VzdGlvbiB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwhLS1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb25cIj52YWx1ZToge3t0b09wdGlvblZhbHVlKHN1Z2dlc3Rpb24pfX08L3NwYW4+XG4gICAgICAgICAgICAtLT5cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIDxtYXQtb3B0aW9uIGRpc2FibGVkPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtY2FwdGlvblwiPlxuICAgICAgICBObyBEYXRhQ29udGV4dCFcbiAgICAgICAgQGlmIChkYXRhU291cmNlJCB8IGFzeW5jOyBhcyBkcykge1xuICAgICAgICAgIChEYXRhU291cmNlOiB7eyBkcyA/ICdhdmFpbGFibGUnIDogJ21pc3NpbmcnIH19KVxuICAgICAgICAgIHt7IGVuYWJsZWQgPyAnQXV0b2NvbXBsZXRlIEVuYWJsZWQnIDogJ0F1dG9jb21wbGV0ZSBESVNBQkxFRCcgfX1cbiAgICAgICAgfVxuICAgICAgPC9zcGFuPlxuICAgIDwvbWF0LW9wdGlvbj5cbiAgfVxuXG4gIEBpZiAoZGF0YVN0YXRlJCB8IGFzeW5jOyBhcyBzdGF0ZSkge1xuICAgIEBpZiAoIXN0YXRlLmlkbGUgfHwgc3RhdGUubG9hZGluZykge1xuICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyXG4gICAgICAgICAgW3ZhbHVlXT1cIjEwMFwiXG4gICAgICAgICAgW21vZGVdPVwic3RhdGUubG9hZGluZyA/ICdxdWVyeScgOiAnZGV0ZXJtaW5hdGUnXCJcbiAgICAgICAgICBbY29sb3JdPVwic3RhdGUuZXJyb3IgPyAnd2FybicgOiAncHJpbWFyeSdcIlxuICAgICAgICA+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIH1cbiAgfVxuPC9tYXQtYXV0b2NvbXBsZXRlPlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZVZhbHVlVGVtcGxhdGUgbGV0LXZhbHVlPlxuICBAaWYgKGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jOyBhcyBwcm9wZXJ0eVJlc29sdmVyKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJub3NlbGVjdFwiPnt7IHByb3BlcnR5UmVzb2x2ZXIodmFsdWUpIH19PC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -20,10 +20,10 @@ export class ElderPageExitLockIndicatorComponent {
|
|
|
20
20
|
this.locks = toSignal(this.pageExitGuardService.locks$);
|
|
21
21
|
}
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderPageExitLockIndicatorComponent, deps: [{ token: i1.PageExitGuardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ElderPageExitLockIndicatorComponent, isStandalone: true, selector: "elder-page-exit-lock-indicator", ngImport: i0, template: "@if (isPageExitBlocked()) {\n <button mat-icon-button [elderOverlayTrigger]=\"overlay\">\n <mat-icon color=\"accent\">lock_clock</mat-icon>\n </button>\n}\n\n<elder-overlay #overlay=\"elderOverlay\" originX=\"center\" overlayX=\"center\">\n <elder-page-exit-lock-overview [locks]=\"locks()\" class=\"panel\"> </elder-page-exit-lock-overview>\n</elder-overlay>\n", styles: [".panel{width:250px;height:250px;border-radius:4px;overflow:hidden;box-shadow:
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ElderPageExitLockIndicatorComponent, isStandalone: true, selector: "elder-page-exit-lock-indicator", ngImport: i0, template: "@if (isPageExitBlocked()) {\n <button mat-icon-button [elderOverlayTrigger]=\"overlay\">\n <mat-icon color=\"accent\">lock_clock</mat-icon>\n </button>\n}\n\n<elder-overlay #overlay=\"elderOverlay\" originX=\"center\" overlayX=\"center\">\n <elder-page-exit-lock-overview [locks]=\"locks()\" class=\"panel\"> </elder-page-exit-lock-overview>\n</elder-overlay>\n", styles: [".panel{width:250px;height:250px;border-radius:4px;overflow:hidden;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}\n"], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ElderOverlayModule }, { kind: "component", type: i2.ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: i3.ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "component", type: ElderPageExitLockOverviewComponent, selector: "elder-page-exit-lock-overview", inputs: ["locks"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
24
|
}
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderPageExitLockIndicatorComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ selector: 'elder-page-exit-lock-indicator', standalone: true, imports: [MatIconButton, MatIcon, ElderOverlayModule, ElderPageExitLockOverviewComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isPageExitBlocked()) {\n <button mat-icon-button [elderOverlayTrigger]=\"overlay\">\n <mat-icon color=\"accent\">lock_clock</mat-icon>\n </button>\n}\n\n<elder-overlay #overlay=\"elderOverlay\" originX=\"center\" overlayX=\"center\">\n <elder-page-exit-lock-overview [locks]=\"locks()\" class=\"panel\"> </elder-page-exit-lock-overview>\n</elder-overlay>\n", styles: [".panel{width:250px;height:250px;border-radius:4px;overflow:hidden;box-shadow:
|
|
27
|
+
args: [{ selector: 'elder-page-exit-lock-indicator', standalone: true, imports: [MatIconButton, MatIcon, ElderOverlayModule, ElderPageExitLockOverviewComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isPageExitBlocked()) {\n <button mat-icon-button [elderOverlayTrigger]=\"overlay\">\n <mat-icon color=\"accent\">lock_clock</mat-icon>\n </button>\n}\n\n<elder-overlay #overlay=\"elderOverlay\" originX=\"center\" overlayX=\"center\">\n <elder-page-exit-lock-overview [locks]=\"locks()\" class=\"panel\"> </elder-page-exit-lock-overview>\n</elder-overlay>\n", styles: [".panel{width:250px;height:250px;border-radius:4px;overflow:hidden;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}\n"] }]
|
|
28
28
|
}], ctorParameters: () => [{ type: i1.PageExitGuardService }] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1leGl0LWxvY2staW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS9leGl0LWd1YXJkL3BhZ2UtZXhpdC1sb2NrLWluZGljYXRvci9wYWdlLWV4aXQtbG9jay1pbmRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9wYWdlL2V4aXQtZ3VhcmQvcGFnZS1leGl0LWxvY2staW5kaWNhdG9yL3BhZ2UtZXhpdC1sb2NrLWluZGljYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDaEQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOERBQThELENBQUE7QUFDakgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFBOzs7OztBQVUzRSxNQUFNLE9BQU8sbUNBQW1DO0lBVTlDOzs7O2dGQUk0RTtJQUU1RSxZQUFvQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUM1RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQy9FLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN6RCxDQUFDOzhHQW5CVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQywwRkNoQmhELGlYQVNBLGdOREVZLGFBQWEsNkZBQUUsT0FBTywwSUFBRSxrQkFBa0IsZ2hCQUFFLGtDQUFrQzs7MkZBSzdFLG1DQUFtQztrQkFSL0MsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQ0FBa0MsQ0FBQyxtQkFHeEUsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBQYWdlRXhpdEd1YXJkU2VydmljZSwgUGFnZUV4aXRMb2NrIH0gZnJvbSAnLi4vcGFnZS1leGl0LWd1YXJkLnNlcnZpY2UnXG5pbXBvcnQgeyBNYXRJY29uQnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBFbGRlclBhZ2VFeGl0TG9ja092ZXJ2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vcGFnZS1leGl0LWxvY2stb3ZlcnZpZXcvcGFnZS1leGl0LWxvY2stb3ZlcnZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCdcbmltcG9ydCB7IEVsZGVyT3ZlcmxheU1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL292ZXJsYXlzL2VsZGVyLW92ZXJsYXkubW9kdWxlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1wYWdlLWV4aXQtbG9jay1pbmRpY2F0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0SWNvbkJ1dHRvbiwgTWF0SWNvbiwgRWxkZXJPdmVybGF5TW9kdWxlLCBFbGRlclBhZ2VFeGl0TG9ja092ZXJ2aWV3Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtZXhpdC1sb2NrLWluZGljYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWdlLWV4aXQtbG9jay1pbmRpY2F0b3IuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJQYWdlRXhpdExvY2tJbmRpY2F0b3JDb21wb25lbnQge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVhZG9ubHkgaXNQYWdlRXhpdEJsb2NrZWQ6IFNpZ25hbDxib29sZWFuPlxuICBwdWJsaWMgcmVhZG9ubHkgbG9ja3M6IFNpZ25hbDxQYWdlRXhpdExvY2tbXT5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VFeGl0R3VhcmRTZXJ2aWNlOiBQYWdlRXhpdEd1YXJkU2VydmljZSkge1xuICAgIHRoaXMuaXNQYWdlRXhpdEJsb2NrZWQgPSB0b1NpZ25hbCh0aGlzLnBhZ2VFeGl0R3VhcmRTZXJ2aWNlLmlzUGFnZUV4aXRCbG9ja2VkJClcbiAgICB0aGlzLmxvY2tzID0gdG9TaWduYWwodGhpcy5wYWdlRXhpdEd1YXJkU2VydmljZS5sb2NrcyQpXG4gIH1cbn1cbiIsIkBpZiAoaXNQYWdlRXhpdEJsb2NrZWQoKSkge1xuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbZWxkZXJPdmVybGF5VHJpZ2dlcl09XCJvdmVybGF5XCI+XG4gICAgPG1hdC1pY29uIGNvbG9yPVwiYWNjZW50XCI+bG9ja19jbG9jazwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxufVxuXG48ZWxkZXItb3ZlcmxheSAjb3ZlcmxheT1cImVsZGVyT3ZlcmxheVwiIG9yaWdpblg9XCJjZW50ZXJcIiBvdmVybGF5WD1cImNlbnRlclwiPlxuICA8ZWxkZXItcGFnZS1leGl0LWxvY2stb3ZlcnZpZXcgW2xvY2tzXT1cImxvY2tzKClcIiBjbGFzcz1cInBhbmVsXCI+IDwvZWxkZXItcGFnZS1leGl0LWxvY2stb3ZlcnZpZXc+XG48L2VsZGVyLW92ZXJsYXk+XG4iXX0=
|
|
@@ -40,5 +40,4 @@ export * from './auditing/elder-audit.module';
|
|
|
40
40
|
export * from './tabs/elder-tab.module';
|
|
41
41
|
export * from './badge/elder-badge.module';
|
|
42
42
|
export * from './page/public_api';
|
|
43
|
-
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLDhDQUE4QyxDQUFBO0FBQzVELGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsa0RBQWtELENBQUE7QUFDaEUsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGhlbWUvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzLWRlbmllZC9lbGRlci1hY2Nlc3MtZGVuaWVkLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZXhwYW5kLXRvZ2dsZS1idXR0b24vZWxkZXItZXhwYW5kLXRvZ2dsZS1idXR0b24ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbHMvZWxkZXItbGFiZWxzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGFuZWxzL2VsZGVyLXBhbmVsLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMvZWxkZXItZmlsZS5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2NhcmQtb3JnYW5pemVyL2VsZGVyLWNhcmQtb3JnYW5pemVyLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS12aWV3L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24vcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vc2hlbGwvZWxkZXItc2hlbGwubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90aW1lL3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2kxOG4vcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY2hpcHMvZWxkZXItY2hpcHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtY2hpcC1saXN0L2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXRyYW5zZmVyL2VsZGVyLWRhdGEtdHJhbnNmZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5cy9lbGRlci1vdmVybGF5Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGl2aXR5L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGJhci9lbGRlci1zY3JvbGxiYXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3Jtcy9wdWJsaWNfYXBpJ1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLXN1cHBvcnQvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9ncy9lbGRlci1kaWFsb2cubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwtc2VhcmNoL2VsZGVyLWdsb2JhbC1zZWFyY2gubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdHMvZWxkZXItdG9hc3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZXMvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVycy9lbGRlci1oZWFkZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkcy9lbGRlci1jYXJkL2VsZGVyLWNhcmQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi92aWV3ZXJzL2VsZGVyLXZpZXdlcnMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi91cmwtZnJhZ21lbnQvZWxkZXItdXJsLWZyYWdtZW50Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLWdyb3VwL2VsZGVyLWJ1dHRvbi1ncm91cC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2dyYXBoL3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lcnMvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY3N2L2VsZGVyLWNzdi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2lmcmFtZXMvZWxkZXItaWZyYW1lLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2VsZGVyLWVycm9yLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vYXVkaXRpbmcvZWxkZXItYXVkaXQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90YWJzL2VsZGVyLXRhYi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2JhZGdlL2VsZGVyLWJhZGdlLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS9wdWJsaWNfYXBpJ1xuZXhwb3J0IHsgTG9hZGVyQmFja2dyb3VuZENvbXBvbmVudCB9IGZyb20gJy4vbG9hZGVyLWJhY2tncm91bmQvbG9hZGVyLWJhY2tncm91bmQuY29tcG9uZW50J1xuIl19
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLDhDQUE4QyxDQUFBO0FBQzVELGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsa0RBQWtELENBQUE7QUFDaEUsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGhlbWUvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzLWRlbmllZC9lbGRlci1hY2Nlc3MtZGVuaWVkLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZXhwYW5kLXRvZ2dsZS1idXR0b24vZWxkZXItZXhwYW5kLXRvZ2dsZS1idXR0b24ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbHMvZWxkZXItbGFiZWxzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGFuZWxzL2VsZGVyLXBhbmVsLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMvZWxkZXItZmlsZS5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2NhcmQtb3JnYW5pemVyL2VsZGVyLWNhcmQtb3JnYW5pemVyLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS12aWV3L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24vcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vc2hlbGwvZWxkZXItc2hlbGwubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90aW1lL3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2kxOG4vcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY2hpcHMvZWxkZXItY2hpcHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtY2hpcC1saXN0L2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXRyYW5zZmVyL2VsZGVyLWRhdGEtdHJhbnNmZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5cy9lbGRlci1vdmVybGF5Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGl2aXR5L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGJhci9lbGRlci1zY3JvbGxiYXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3Jtcy9wdWJsaWNfYXBpJ1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLXN1cHBvcnQvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9ncy9lbGRlci1kaWFsb2cubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwtc2VhcmNoL2VsZGVyLWdsb2JhbC1zZWFyY2gubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdHMvZWxkZXItdG9hc3QubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZXMvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVycy9lbGRlci1oZWFkZXIubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkcy9lbGRlci1jYXJkL2VsZGVyLWNhcmQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi92aWV3ZXJzL2VsZGVyLXZpZXdlcnMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi91cmwtZnJhZ21lbnQvZWxkZXItdXJsLWZyYWdtZW50Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLWdyb3VwL2VsZGVyLWJ1dHRvbi1ncm91cC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2dyYXBoL3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lcnMvcHVibGljX2FwaSdcbmV4cG9ydCAqIGZyb20gJy4vY3N2L2VsZGVyLWNzdi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0L3B1YmxpY19hcGknXG5leHBvcnQgKiBmcm9tICcuL2lmcmFtZXMvZWxkZXItaWZyYW1lLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzL2VsZGVyLWVycm9yLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vYXVkaXRpbmcvZWxkZXItYXVkaXQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi90YWJzL2VsZGVyLXRhYi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2JhZGdlL2VsZGVyLWJhZGdlLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS9wdWJsaWNfYXBpJ1xuIl19
|
|
@@ -39,13 +39,13 @@ export class ElderFilterChipTemplateComponent {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderFilterChipTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: ElderFilterChipTemplateComponent, isStandalone: true, selector: "elder-filter-chip-template", inputs: { avatarResolverFn: { classPropertyName: "avatarResolverFn", publicName: "avatarResolverFn", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "avatarRef", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<mat-icon *elderSelectChipAvatar=\"let chipModel\" class=\"material-icons-outlined\">\n {{ currentIcon(chipModel?.value?.id) }}\n</mat-icon>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}.cdk-drag-preview{box-sizing:border-box;box-shadow:
|
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: ElderFilterChipTemplateComponent, isStandalone: true, selector: "elder-filter-chip-template", inputs: { avatarResolverFn: { classPropertyName: "avatarResolverFn", publicName: "avatarResolverFn", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "avatarRef", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<mat-icon *elderSelectChipAvatar=\"let chipModel\" class=\"material-icons-outlined\">\n {{ currentIcon(chipModel?.value?.id) }}\n</mat-icon>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: ElderSelectChipAvatarDirective, selector: "[elderSelectChipAvatar]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43
43
|
}
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderFilterChipTemplateComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
46
|
-
args: [{ selector: 'elder-filter-chip-template', standalone: true, imports: [MatIcon, ElderSelectChipAvatarDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-icon *elderSelectChipAvatar=\"let chipModel\" class=\"material-icons-outlined\">\n {{ currentIcon(chipModel?.value?.id) }}\n</mat-icon>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}.cdk-drag-preview{box-sizing:border-box;box-shadow:
|
|
46
|
+
args: [{ selector: 'elder-filter-chip-template', standalone: true, imports: [MatIcon, ElderSelectChipAvatarDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-icon *elderSelectChipAvatar=\"let chipModel\" class=\"material-icons-outlined\">\n {{ currentIcon(chipModel?.value?.id) }}\n</mat-icon>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
47
47
|
}], propDecorators: { avatarRef: [{
|
|
48
48
|
type: ViewChild,
|
|
49
49
|
args: [ElderSelectChipAvatarDirective, { read: TemplateRef, static: true }]
|
|
50
50
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvZmlsdGVyL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L2ZpbHRlci9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOztBQVVsRixNQUFNLE9BQU8sZ0NBQWdDO0lBUjdDO1FBU0U7Ozs7b0ZBSTRFO1FBRXBFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW1CLElBQUksQ0FBQyxDQUFBO1FBQzFELHFCQUFnQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUE7S0ErQm5FO0lBN0JDOzs7O2dGQUk0RTtJQUU1RSxJQUNXLFNBQVMsQ0FBQyxTQUEyQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFdBQVcsQ0FBQyxFQUFVO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ25DLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxjQUFjLENBQUE7UUFDdkIsQ0FBQztJQUNILENBQUM7OEdBdENVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHFTQWdCaEMsOEJBQThCLDJCQUFVLFdBQVcsMkNDN0JoRSxpSkFHQSxvY0RPWSxPQUFPLDJJQUFFLDhCQUE4Qjs7MkZBR3RDLGdDQUFnQztrQkFSNUMsU0FBUzsrQkFDRSw0QkFBNEIsY0FHMUIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLDhCQUE4QixDQUFDLG1CQUNqQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQW1CcEMsU0FBUztzQkFEbkIsU0FBUzt1QkFBQyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0SWNvbiwgRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRmlsdGVyQ2hpcFRlbXBsYXRlQ29tcG9uZW50IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBfYXZhdGFyUmVmJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbClcbiAgcHVibGljIGF2YXRhclJlc29sdmVyRm4gPSBpbnB1dC5yZXF1aXJlZDwoaWQ6IHN0cmluZykgPT4gc3RyaW5nPigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQFZpZXdDaGlsZChFbGRlclNlbGVjdENoaXBBdmF0YXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2V0IGF2YXRhclJlZihhdmF0YXJSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9hdmF0YXJSZWYkLm5leHQoYXZhdGFyUmVmKVxuICB9XG5cbiAgcHVibGljIGdldCBhdmF0YXJSZWYkKCk6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLl9hdmF0YXJSZWYkLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY3VycmVudEljb24oaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZnVuID0gdGhpcy5hdmF0YXJSZXNvbHZlckZuKClcbiAgICBpZiAoaWQgIT0gbnVsbCB8fCBpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmdW4gPyBmdW4oaWQpIDogJ2hlbHBfb3V0bGluZSdcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdoZWxwX291dGxpbmUnXG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWljb24gKmVsZGVyU2VsZWN0Q2hpcEF2YXRhcj1cImxldCBjaGlwTW9kZWxcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XG4gIHt7IGN1cnJlbnRJY29uKGNoaXBNb2RlbD8udmFsdWU/LmlkKSB9fVxuPC9tYXQtaWNvbj5cbiJdfQ==
|
|
@@ -219,7 +219,7 @@ export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
|
219
219
|
provide: ELDER_SELECT_BASE,
|
|
220
220
|
useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent),
|
|
221
221
|
},
|
|
222
|
-
], queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_listBox", first: true, predicate: MatChipListbox, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (selectChips$ | async; as selectChips) {\n <div class=\"elder-flex-control\" [matTooltip]=\"(state$ | async)?.error\">\n <mat-chip-listbox #chips [class.mat-mdc-chip-set-stacked]=\"stacked\" [multiple]=\"multiple\">\n @if (state$ | async; as state) {\n @if (icon) {\n <div class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon\n disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n }\n }\n\n @if (templates$ | async; as templates) {\n <ng-content></ng-content>\n\n @for (chipModel of selectChips; track chipModel.value) {\n <mat-chip-option\n class=\"noselect\"\n [value]=\"resolveChipValue(chipModel.value)\"\n elderChipLabel\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [selectable]=\"!chipModel.locked\"\n [disabled]=\"chipModel.locked\"\n [selected]=\"chipModel.selected\"\n (selectionChange)=\"selectionChanged($event, chipModel.value)\"\n >\n @if (templates.avatar && !chipModel.avatarSpec?.hide) {\n <mat-chip-avatar [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\">\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: { $implicit: chipModel }\"\n >\n </ng-container>\n </mat-chip-avatar>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n templates.chip || simpleChipTemplate;\n context: { $implicit: chipModel }\n \"\n >\n </ng-container>\n\n @if (chipModel.trailingSpec?.icon) {\n <mat-icon\n matChipTrailingIcon\n class=\"elder-trailing-icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}\n </mat-icon>\n }\n </mat-chip-option>\n }\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n @if (selectionPopup) {\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n }\n </div>\n }\n </mat-chip-listbox>\n </div>\n}\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate: 20 }}</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "directive", type: MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
222
|
+
], queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_listBox", first: true, predicate: MatChipListbox, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (selectChips$ | async; as selectChips) {\n <div class=\"elder-flex-control\" [matTooltip]=\"(state$ | async)?.error\">\n <mat-chip-listbox #chips [class.mat-mdc-chip-set-stacked]=\"stacked\" [multiple]=\"multiple\">\n @if (state$ | async; as state) {\n @if (icon) {\n <div class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon\n disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n }\n }\n\n @if (templates$ | async; as templates) {\n <ng-content></ng-content>\n\n @for (chipModel of selectChips; track chipModel.value) {\n <mat-chip-option\n class=\"noselect\"\n [value]=\"resolveChipValue(chipModel.value)\"\n elderChipLabel\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [selectable]=\"!chipModel.locked\"\n [disabled]=\"chipModel.locked\"\n [selected]=\"chipModel.selected\"\n (selectionChange)=\"selectionChanged($event, chipModel.value)\"\n >\n @if (templates.avatar && !chipModel.avatarSpec?.hide) {\n <mat-chip-avatar [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\">\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: { $implicit: chipModel }\"\n >\n </ng-container>\n </mat-chip-avatar>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n templates.chip || simpleChipTemplate;\n context: { $implicit: chipModel }\n \"\n >\n </ng-container>\n\n @if (chipModel.trailingSpec?.icon) {\n <mat-icon\n matChipTrailingIcon\n class=\"elder-trailing-icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}\n </mat-icon>\n }\n </mat-chip-option>\n }\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n @if (selectionPopup) {\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n }\n </div>\n }\n </mat-chip-listbox>\n </div>\n}\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate: 20 }}</span>\n</ng-template>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}\n"], dependencies: [{ kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "directive", type: MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
223
223
|
}
|
|
224
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderMultiSelectChipOptionsComponent, decorators: [{
|
|
225
225
|
type: Component,
|
|
@@ -242,7 +242,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
242
242
|
ElderStopEventPropagationDirective,
|
|
243
243
|
AsyncPipe,
|
|
244
244
|
ElderTruncatePipe,
|
|
245
|
-
], template: "@if (selectChips$ | async; as selectChips) {\n <div class=\"elder-flex-control\" [matTooltip]=\"(state$ | async)?.error\">\n <mat-chip-listbox #chips [class.mat-mdc-chip-set-stacked]=\"stacked\" [multiple]=\"multiple\">\n @if (state$ | async; as state) {\n @if (icon) {\n <div class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon\n disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n }\n }\n\n @if (templates$ | async; as templates) {\n <ng-content></ng-content>\n\n @for (chipModel of selectChips; track chipModel.value) {\n <mat-chip-option\n class=\"noselect\"\n [value]=\"resolveChipValue(chipModel.value)\"\n elderChipLabel\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [selectable]=\"!chipModel.locked\"\n [disabled]=\"chipModel.locked\"\n [selected]=\"chipModel.selected\"\n (selectionChange)=\"selectionChanged($event, chipModel.value)\"\n >\n @if (templates.avatar && !chipModel.avatarSpec?.hide) {\n <mat-chip-avatar [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\">\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: { $implicit: chipModel }\"\n >\n </ng-container>\n </mat-chip-avatar>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n templates.chip || simpleChipTemplate;\n context: { $implicit: chipModel }\n \"\n >\n </ng-container>\n\n @if (chipModel.trailingSpec?.icon) {\n <mat-icon\n matChipTrailingIcon\n class=\"elder-trailing-icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}\n </mat-icon>\n }\n </mat-chip-option>\n }\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n @if (selectionPopup) {\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n }\n </div>\n }\n </mat-chip-listbox>\n </div>\n}\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate: 20 }}</span>\n</ng-template>\n" }]
|
|
245
|
+
], template: "@if (selectChips$ | async; as selectChips) {\n <div class=\"elder-flex-control\" [matTooltip]=\"(state$ | async)?.error\">\n <mat-chip-listbox #chips [class.mat-mdc-chip-set-stacked]=\"stacked\" [multiple]=\"multiple\">\n @if (state$ | async; as state) {\n @if (icon) {\n <div class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon\n disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n }\n }\n\n @if (templates$ | async; as templates) {\n <ng-content></ng-content>\n\n @for (chipModel of selectChips; track chipModel.value) {\n <mat-chip-option\n class=\"noselect\"\n [value]=\"resolveChipValue(chipModel.value)\"\n elderChipLabel\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [selectable]=\"!chipModel.locked\"\n [disabled]=\"chipModel.locked\"\n [selected]=\"chipModel.selected\"\n (selectionChange)=\"selectionChanged($event, chipModel.value)\"\n >\n @if (templates.avatar && !chipModel.avatarSpec?.hide) {\n <mat-chip-avatar [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\">\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: { $implicit: chipModel }\"\n >\n </ng-container>\n </mat-chip-avatar>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n templates.chip || simpleChipTemplate;\n context: { $implicit: chipModel }\n \"\n >\n </ng-container>\n\n @if (chipModel.trailingSpec?.icon) {\n <mat-icon\n matChipTrailingIcon\n class=\"elder-trailing-icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}\n </mat-icon>\n }\n </mat-chip-option>\n }\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n @if (selectionPopup) {\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n }\n </div>\n }\n </mat-chip-listbox>\n </div>\n}\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate: 20 }}</span>\n</ng-template>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}\n"] }]
|
|
246
246
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i0.DestroyRef }, { type: i4.NgControl, decorators: [{
|
|
247
247
|
type: Optional
|
|
248
248
|
}, {
|
|
@@ -269,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
269
269
|
}], chipAvatarTemplate: [{
|
|
270
270
|
type: Input
|
|
271
271
|
}] } });
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFHWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFLcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkQsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qix3QkFBd0IsR0FDekIsTUFBTSxtQ0FBbUMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMzRCxPQUFPLEVB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cnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJNdWx0aVNlbGVjdEJhc2UgfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSdcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBFbGRlckRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5zZXJ2aWNlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLFxuICBFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVMREVSX1NFTEVDVF9CQVNFIH0gZnJvbSAnLi4vLi4vZWxkZXItc2VsZWN0LWJhc2UnXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IElEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnXG5pbXBvcnQgeyBTZWxlY3RPcHRpb25DaGlwU3BlYywgU2VsZWN0T3B0aW9uQ2hpcFNwZWNVdGlsIH0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uLWNoaXAtc3BlYydcbmltcG9ydCB7XG4gIE1hdENoaXBMaXN0Ym94LFxuICBNYXRDaGlwU2VsZWN0aW9uQ2hhbmdlLFxuICBNYXRDaGlwT3B0aW9uLFxuICBNYXRDaGlwQXZhdGFyLFxuICBNYXRDaGlwVHJhaWxpbmdJY29uLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcydcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9lbGRlci1jaGlwLXNlbGVjdC1vcHRpb24vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgQ2hpcE9wdGlvbnNQcm92aWRlciwge1xuICBDaGlwT3B0aW9uTW9kZWwsXG4gIE11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb250ZXh0LFxufSBmcm9tICcuL2NoaXAtb3B0aW9ucy1wcm92aWRlcidcbmltcG9ydCB7IEVsZGVyVHJ1bmNhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMvZWxkZXItdHJ1bmNhdGUucGlwZSdcbmltcG9ydCB7IEVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLXN0b3AtZXZlbnQtcHJvcGFnYXRpb24uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbidcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEVsZGVyQ2hpcExhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vY2hpcHMvZWxkZXItY2hpcC1sYWJlbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnXG5cbmludGVyZmFjZSBUZW1wbGF0ZVdyYXBwZXIge1xuICBjaGlwOiBUZW1wbGF0ZVJlZjxhbnk+XG4gIGF2YXRhcjogVGVtcGxhdGVSZWY8YW55PlxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBFbGRlck11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTERFUl9TRUxFQ1RfQkFTRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdFRvb2x0aXAsXG4gICAgTWF0Q2hpcExpc3Rib3gsXG4gICAgTWF0SWNvbixcbiAgICBNYXRDaGlwT3B0aW9uLFxuICAgIEVsZGVyQ2hpcExhYmVsRGlyZWN0aXZlLFxuICAgIE1hdENoaXBBdmF0YXIsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBNYXRDaGlwVHJhaWxpbmdJY29uLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcbiAgICBBc3luY1BpcGUsXG4gICAgRWxkZXJUcnVuY2F0ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbXBvbmVudDxcbiAgVElkID0gYW55LFxuICBURW50aXR5ID0gYW55LFxuICBUVmFsdWUgPSBhbnksXG4+IGV4dGVuZHMgRWxkZXJNdWx0aVNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgcmVhZG9ubHkgdGVtcGxhdGVzJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVdyYXBwZXI+XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dCQ6IE9ic2VydmFibGU8TXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHQ+XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKVxuICBwcml2YXRlIHJlYWRvbmx5IGNoaXBBdmF0YXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpXG5cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdENoaXBzJDogT2JzZXJ2YWJsZTxDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT5bXT5cbiAgQElucHV0KClcbiAgcHVibGljIGRlZmF1bHRDaGlwU3BlYzogU2VsZWN0T3B0aW9uQ2hpcFNwZWMgPSBTZWxlY3RPcHRpb25DaGlwU3BlY1V0aWwuRGVmYXVsdENoaXBTcGVjXG5cbiAgcHVibGljIF9jaGlwU3BlY0ZuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8KGU6IFRFbnRpdHkpID0+IFNlbGVjdE9wdGlvbkNoaXBTcGVjPihcbiAgICAoZSkgPT4gdGhpcy5kZWZhdWx0Q2hpcFNwZWNcbiAgKVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2VcblxuICBwcml2YXRlIF9tdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQFZpZXdDaGlsZChNYXRDaGlwTGlzdGJveCkgX2xpc3RCb3g6IE1hdENoaXBMaXN0Ym94XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgaG9zdFJlZjogRWxlbWVudFJlZixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBkaWFsb2dTZXJ2aWNlOiBFbGRlckRpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICB6b25lLFxuICAgICAgaG9zdFJlZixcbiAgICAgICdtdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zJyxcbiAgICAgIGZvY3VzTW9uaXRvcixcbiAgICAgIHRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICBkaWFsb2dTZXJ2aWNlLFxuICAgICAgbmdDb250cm9sXG4gICAgKVxuXG4gICAgdGhpcy5jb250ZXh0JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdGF0ZSQsXG4gICAgICB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCxcbiAgICAgIHRoaXMucmVhZG9ubHkkLFxuICAgICAgdGhpcy5kaXNhYmxlZCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3N0YXRlLCBkUFIsIHJlYWRvbmx5LCBkaXNhYmxlZF0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29udGV4dD57XG4gICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgIGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyOiBkUFIsXG4gICAgICAgICAgcmVhZG9ubHk6IHJlYWRvbmx5LFxuICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG5cbiAgICBjb25zdCBvcHRpb25zUHJvdmlkZXIkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRhdGFDb250ZXh0JCxcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZGMpID0+ICEhZGMpLFxuICAgICAgICBzd2l0Y2hNYXAoKGRjKSA9PiBkYy5kYXRhKVxuICAgICAgKSxcbiAgICAgIHRoaXMuY2hpcFNwZWNGbiQsXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtkYywgZGF0YSwgY2hpcFNwZWNGbiwgdGVtcGxhdGVDaGlwc10pID0+XG4gICAgICAgICAgbmV3IENoaXBPcHRpb25zUHJvdmlkZXI8VElkLCBURW50aXR5PihcbiAgICAgICAgICAgIGRjLmRhdGFTb3VyY2UsXG4gICAgICAgICAgICB0aGlzLmJ1aWxkQXZhaWxhYmxlRW50aXRpZXMoZGF0YSwgdGVtcGxhdGVDaGlwcyksXG4gICAgICAgICAgICBjaGlwU3BlY0ZuXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcblxuICAgIHRoaXMuc2VsZWN0Q2hpcHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICBvcHRpb25zUHJvdmlkZXIkLFxuICAgICAgdGhpcy5lbnRpdGllcyQsXG4gICAgICB0aGlzLmVudGl0eUlkcyQsXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucyQsXG4gICAgICB0aGlzLmNvbnRleHQkLFxuICAgIF0pLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgIG1hcCgoW29wdGlvbnNQcm92aWRlciwgZW50aXRpZXMsIGVudGl0eUlkcywgdGVtcGxhdGVTZWxlY3RDaGlwcywgY29udGV4dF0pID0+XG4gICAgICAgIHRoaXMuYnVpbGRDaGlwTW9kZWxzKFxuICAgICAgICAgIG9wdGlvbnNQcm92aWRlcixcbiAgICAgICAgICBlbnRpdGllcyxcbiAgICAgICAgICBlbnRpdHlJZHMsXG4gICAgICAgICAgdGhpcy5idWlsZEVudGl0aWVzTGFiZWxNYXAodGVtcGxhdGVTZWxlY3RDaGlwcyksXG4gICAgICAgICAgY29udGV4dFxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuXG4gICAgdGhpcy50ZW1wbGF0ZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5jaGlwVGVtcGxhdGUkLCB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSRdKS5waXBlKFxuICAgICAgbWFwKChbY2hpcCwgYXZhdGFyXSkgPT4ge1xuICAgICAgICByZXR1cm4gPFRlbXBsYXRlV3JhcHBlcj57XG4gICAgICAgICAgY2hpcCxcbiAgICAgICAgICBhdmF0YXIsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtdWx0aXBsZSh2YWw6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbClcbiAgICBpZiAoIXRoaXMuX211bHRpcGxlICYmIHRoaXMuZW50aXRpZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdHkodGhpcy5lbnRpdGllc1t0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDFdKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gY3VzdG9taXplIGVhY2ggY2hpcCBpbmRpdmlkdWFsbHkgKENvbG9yLCBSZW1vdmFibGUsIEF2YXRhcikuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBTcGVjRm4oZm46IChlOiBURW50aXR5KSA9PiBTZWxlY3RPcHRpb25DaGlwU3BlYykge1xuICAgIHRoaXMuX2NoaXBTcGVjRm4kLm5leHQoZm4pXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBTcGVjRm4kKCk6IE9ic2VydmFibGU8KGU6IFRFbnRpdHkpID0+IFNlbGVjdE9wdGlvbkNoaXBTcGVjPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaXBTcGVjRm4kLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICBwdWJsaWMgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aXBsZVxuICB9XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcFRlbXBsYXRlID0gdGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwVGVtcGxhdGUkLmdldFZhbHVlKClcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJC5uZXh0KHRlbXBsYXRlKVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlwQXZhdGFyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHNob3VsZExhYmVsRmxvYXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2VkKGNoYW5nZUV2ZW50OiBNYXRDaGlwU2VsZWN0aW9uQ2hhbmdlLCBlbnRpdHk6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICAvKiovXG4gICAgdGhpcy5sb2cuZGVidWcoJ3NlbGVjdGlvbkNoYW5nZWQnLCB7XG4gICAgICBjaGFuZ2VFdmVudDogY2hhbmdlRXZlbnQsXG4gICAgICBlbnRpdHk6IGVudGl0eSxcbiAgICB9KVxuXG4gICAgaWYgKGNoYW5nZUV2ZW50LmlzVXNlcklucHV0KSB7XG4gICAgICBpZiAoY2hhbmdlRXZlbnQuc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RFbnRpdHkoZW50aXR5KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVFbnRpdHkoZW50aXR5KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlQ2hpcFZhbHVlKGUxOiBURW50aXR5KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlMSlcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2xpc3RCb3gpIHtcbiAgICAgIHRoaXMuX2xpc3RCb3guZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMubG9nLndhcm4oJ2JsdXIoKSBub3QgeWV0IHN1cHBvcnRlZCEnKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgc3RhcnQgREMgaWYgbm90IHlldCBzdGFydGVkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKCFkYXRhLmlzU3RhcnRlZCkge1xuICAgICAgICBkYXRhLnN0YXJ0KHRoaXMuc29ydHMsIHRoaXMuZmlsdGVycykuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICBzdXBlci5vbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhKVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdXBlci5vbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2VsZWN0RW50aXR5KGVudGl0eTogVEVudGl0eSk6IHZvaWQge1xuICAgIGNvbnN0IGlkVG9TZWxlY3QgPSB0aGlzLmdldEVudGl0eUlkKGVudGl0eSlcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMucmVtb3ZlRW50aXRpZXModGhpcy5lbnRpdGllcy5maWx0ZXIoKGUpID0+IHRoaXMuZ2V0RW50aXR5SWQoZSkgIT09IGlkVG9TZWxlY3QpKVxuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNFbnRpdHlJZFNlbGVjdGVkKGlkVG9TZWxlY3QpKSB7XG4gICAgICB0aGlzLmFwcGVuZEVudGl0eShlbnRpdHkpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0VudGl0eUlkU2VsZWN0ZWQoZW50aXR5SWQ6IFRJZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0aWVzLnNvbWUoKGUpID0+IHRoaXMuZ2V0RW50aXR5SWQoZSkgPT0gZW50aXR5SWQpXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVscyhcbiAgICBvcHRpb25zUHJvdmlkZXI6IENoaXBPcHRpb25zUHJvdmlkZXI8VElkLCBURW50aXR5PixcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIGVudGl0eUlkczogVElkW10sXG4gICAgZW50aXRpZXNMYWJlbHM6IE1hcDxhbnksIHN0cmluZz4sXG4gICAgY29udGV4dDogTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHRcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10ge1xuICAgIHJldHVybiBvcHRpb25zUHJvdmlkZXIuYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhlbnRpdGllcywgZW50aXR5SWRzLCB7XG4gICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgaXNMb2NrZWQ6IHRoaXMuaXNMb2NrZWQsXG4gICAgICBlbnRpdHlMYWJlbE1hcDogZW50aXRpZXNMYWJlbHMsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBdmFpbGFibGVFbnRpdGllcyhcbiAgICBkYXRhOiBURW50aXR5W10sXG4gICAgdGVtcGxhdGVDaGlwczogRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQ8VEVudGl0eT5bXVxuICApOiBURW50aXR5W10ge1xuICAgIHJldHVybiBbLi4udGhpcy5leHRyYWN0RW50aXRpZXNGcm9tVGVtcGxhdGVDaGlwcyh0ZW1wbGF0ZUNoaXBzKSwgLi4uZGF0YV1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdEVudGl0aWVzRnJvbVRlbXBsYXRlQ2hpcHMoXG4gICAgdGVtcGxhdGVDaGlwczogRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQ8VEVudGl0eT5bXVxuICApOiBURW50aXR5W10ge1xuICAgIHJldHVybiB0ZW1wbGF0ZUNoaXBzLm1hcCgoY2hpcCkgPT4gY2hpcC52YWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRFbnRpdGllc0xhYmVsTWFwKFxuICAgIHRlbXBsYXRlQ2hpcHM6IEVsZGVyU2VsZWN0T3B0aW9uQ29tcG9uZW50PFRFbnRpdHk+W11cbiAgKTogTWFwPFRFbnRpdHksIHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgTWFwKFxuICAgICAgdGVtcGxhdGVDaGlwc1xuICAgICAgICAuZmlsdGVyKChjaGlwKSA9PiBjaGlwLmxhYmVsICE9IHVuZGVmaW5lZClcbiAgICAgICAgLm1hcCgoY2hpcCkgPT4gW2NoaXAudmFsdWUsIGNoaXAubGFiZWxdKVxuICAgIClcbiAgfVxufVxuIiwiQGlmIChzZWxlY3RDaGlwcyQgfCBhc3luYzsgYXMgc2VsZWN0Q2hpcHMpIHtcbiAgPGRpdiBjbGFzcz1cImVsZGVyLWZsZXgtY29udHJvbFwiIFttYXRUb29sdGlwXT1cIihzdGF0ZSQgfCBhc3luYyk/LmVycm9yXCI+XG4gICAgPG1hdC1jaGlwLWxpc3Rib3ggI2NoaXBzIFtjbGFzcy5tYXQtbWRjLWNoaXAtc2V0LXN0YWNrZWRdPVwic3RhY2tlZFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiPlxuICAgICAgQGlmIChzdGF0ZSQgfCBhc3luYzsgYXMgc3RhdGUpIHtcbiAgICAgICAgQGlmIChpY29uKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVsZGVyLWlucHV0LXByZWZpeC1pY29uLWNvbnRhaW5lciBmbGV4LW5vbmVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLXByZWZpeC1pY29uIGVsZGVyLW1kYy1jb250cm9sLWljb24gZWxkZXItaWNvbi1zbWFsbCBub3NlbGVjdFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5sb2FkaW5nXT1cInN0YXRlLmxvYWRpbmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpY29uIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAodGVtcGxhdGVzJCB8IGFzeW5jOyBhcyB0ZW1wbGF0ZXMpIHtcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIEBmb3IgKGNoaXBNb2RlbCBvZiBzZWxlY3RDaGlwczsgdHJhY2sgY2hpcE1vZGVsLnZhbHVlKSB7XG4gICAgICAgICAgPG1hdC1jaGlwLW9wdGlvblxuICAgICAgICAgICAgY2xhc3M9XCJub3NlbGVjdFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwicmVzb2x2ZUNoaXBWYWx1ZShjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICAgIGVsZGVyQ2hpcExhYmVsXG4gICAgICAgICAgICBbbGV2ZWxDb2xvcl09XCJjaGlwTW9kZWwuY29sb3JTcGVjPy5sZXZlbENvbG9yXCJcbiAgICAgICAgICAgIFtzdGF0ZUNvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnN0YXRlQ29sb3JcIlxuICAgICAgICAgICAgW2NvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnRoZW1lQ29sb3JcIlxuICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwiIWNoaXBNb2RlbC5sb2NrZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNoaXBNb2RlbC5sb2NrZWRcIlxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cImNoaXBNb2RlbC5zZWxlY3RlZFwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHRlbXBsYXRlcy5hdmF0YXIgJiYgIWNoaXBNb2RlbC5hdmF0YXJTcGVjPy5oaWRlKSB7XG4gICAgICAgICAgICAgIDxtYXQtY2hpcC1hdmF0YXIgW2NsYXNzLmNoaXAtYXZhdGFyLXhsXT1cImNoaXBNb2RlbC5hdmF0YXJTcGVjPy5sYXJnZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmF2YXRhcjsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaXBNb2RlbCB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbWF0LWNoaXAtYXZhdGFyPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVzLmNoaXAgfHwgc2ltcGxlQ2hpcFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjaGlwTW9kZWwgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIEBpZiAoY2hpcE1vZGVsLnRyYWlsaW5nU3BlYz8uaWNvbikge1xuICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBtYXRDaGlwVHJhaWxpbmdJY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci10cmFpbGluZy1pY29uXCJcbiAgICAgICAgICAgICAgICBbZm9udFNldF09XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uRm9udFNldFwiXG4gICAgICAgICAgICAgICAgPnt7IGNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb24gfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1jaGlwLW9wdGlvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBlbGRlci1jaGlwLWlucHV0XCI+XG4gICAgICAgICAgQGlmIChzZWxlY3Rpb25Qb3B1cCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItY29udHJvbC1pY29uLWJ1dHRvbiBlbGRlci1icm93c2UtaWNvblwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbGRlci1tZGMtY29udHJvbC1pY29uXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWNoaXBNb2RlbD5cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57eyBjaGlwTW9kZWwuZGlzcGxheVRleHQgfCBlbGRlclRydW5jYXRlOiAyMCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFHWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFLcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkQsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qix3QkFBd0IsR0FDekIsTUFBTSxtQ0FBbUMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMzRCxPQUFPLEVB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cnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJNdWx0aVNlbGVjdEJhc2UgfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSdcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBFbGRlckRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5zZXJ2aWNlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLFxuICBFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVMREVSX1NFTEVDVF9CQVNFIH0gZnJvbSAnLi4vLi4vZWxkZXItc2VsZWN0LWJhc2UnXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IElEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnXG5pbXBvcnQgeyBTZWxlY3RPcHRpb25DaGlwU3BlYywgU2VsZWN0T3B0aW9uQ2hpcFNwZWNVdGlsIH0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uLWNoaXAtc3BlYydcbmltcG9ydCB7XG4gIE1hdENoaXBMaXN0Ym94LFxuICBNYXRDaGlwU2VsZWN0aW9uQ2hhbmdlLFxuICBNYXRDaGlwT3B0aW9uLFxuICBNYXRDaGlwQXZhdGFyLFxuICBNYXRDaGlwVHJhaWxpbmdJY29uLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcydcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9lbGRlci1jaGlwLXNlbGVjdC1vcHRpb24vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnXG5pbXBvcnQgQ2hpcE9wdGlvbnNQcm92aWRlciwge1xuICBDaGlwT3B0aW9uTW9kZWwsXG4gIE11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb250ZXh0LFxufSBmcm9tICcuL2NoaXAtb3B0aW9ucy1wcm92aWRlcidcbmltcG9ydCB7IEVsZGVyVHJ1bmNhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMvZWxkZXItdHJ1bmNhdGUucGlwZSdcbmltcG9ydCB7IEVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLXN0b3AtZXZlbnQtcHJvcGFnYXRpb24uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbidcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEVsZGVyQ2hpcExhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vY2hpcHMvZWxkZXItY2hpcC1sYWJlbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnXG5cbmludGVyZmFjZSBUZW1wbGF0ZVdyYXBwZXIge1xuICBjaGlwOiBUZW1wbGF0ZVJlZjxhbnk+XG4gIGF2YXRhcjogVGVtcGxhdGVSZWY8YW55PlxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBFbGRlck11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTERFUl9TRUxFQ1RfQkFTRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdFRvb2x0aXAsXG4gICAgTWF0Q2hpcExpc3Rib3gsXG4gICAgTWF0SWNvbixcbiAgICBNYXRDaGlwT3B0aW9uLFxuICAgIEVsZGVyQ2hpcExhYmVsRGlyZWN0aXZlLFxuICAgIE1hdENoaXBBdmF0YXIsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBNYXRDaGlwVHJhaWxpbmdJY29uLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcbiAgICBBc3luY1BpcGUsXG4gICAgRWxkZXJUcnVuY2F0ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbXBvbmVudDxcbiAgVElkID0gYW55LFxuICBURW50aXR5ID0gYW55LFxuICBUVmFsdWUgPSBhbnksXG4+IGV4dGVuZHMgRWxkZXJNdWx0aVNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgcmVhZG9ubHkgdGVtcGxhdGVzJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVdyYXBwZXI+XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dCQ6IE9ic2VydmFibGU8TXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHQ+XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKVxuICBwcml2YXRlIHJlYWRvbmx5IGNoaXBBdmF0YXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpXG5cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdENoaXBzJDogT2JzZXJ2YWJsZTxDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT5bXT5cbiAgQElucHV0KClcbiAgcHVibGljIGRlZmF1bHRDaGlwU3BlYzogU2VsZWN0T3B0aW9uQ2hpcFNwZWMgPSBTZWxlY3RPcHRpb25DaGlwU3BlY1V0aWwuRGVmYXVsdENoaXBTcGVjXG5cbiAgcHVibGljIF9jaGlwU3BlY0ZuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8KGU6IFRFbnRpdHkpID0+IFNlbGVjdE9wdGlvbkNoaXBTcGVjPihcbiAgICAoZSkgPT4gdGhpcy5kZWZhdWx0Q2hpcFNwZWNcbiAgKVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2VcblxuICBwcml2YXRlIF9tdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQFZpZXdDaGlsZChNYXRDaGlwTGlzdGJveCkgX2xpc3RCb3g6IE1hdENoaXBMaXN0Ym94XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgaG9zdFJlZjogRWxlbWVudFJlZixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBkaWFsb2dTZXJ2aWNlOiBFbGRlckRpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICB6b25lLFxuICAgICAgaG9zdFJlZixcbiAgICAgICdtdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zJyxcbiAgICAgIGZvY3VzTW9uaXRvcixcbiAgICAgIHRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICBkaWFsb2dTZXJ2aWNlLFxuICAgICAgbmdDb250cm9sXG4gICAgKVxuXG4gICAgdGhpcy5jb250ZXh0JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdGF0ZSQsXG4gICAgICB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCxcbiAgICAgIHRoaXMucmVhZG9ubHkkLFxuICAgICAgdGhpcy5kaXNhYmxlZCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3N0YXRlLCBkUFIsIHJlYWRvbmx5LCBkaXNhYmxlZF0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29udGV4dD57XG4gICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgIGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyOiBkUFIsXG4gICAgICAgICAgcmVhZG9ubHk6IHJlYWRvbmx5LFxuICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG5cbiAgICBjb25zdCBvcHRpb25zUHJvdmlkZXIkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRhdGFDb250ZXh0JCxcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZGMpID0+ICEhZGMpLFxuICAgICAgICBzd2l0Y2hNYXAoKGRjKSA9PiBkYy5kYXRhKVxuICAgICAgKSxcbiAgICAgIHRoaXMuY2hpcFNwZWNGbiQsXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtkYywgZGF0YSwgY2hpcFNwZWNGbiwgdGVtcGxhdGVDaGlwc10pID0+XG4gICAgICAgICAgbmV3IENoaXBPcHRpb25zUHJvdmlkZXI8VElkLCBURW50aXR5PihcbiAgICAgICAgICAgIGRjLmRhdGFTb3VyY2UsXG4gICAgICAgICAgICB0aGlzLmJ1aWxkQXZhaWxhYmxlRW50aXRpZXMoZGF0YSwgdGVtcGxhdGVDaGlwcyksXG4gICAgICAgICAgICBjaGlwU3BlY0ZuXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcblxuICAgIHRoaXMuc2VsZWN0Q2hpcHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICBvcHRpb25zUHJvdmlkZXIkLFxuICAgICAgdGhpcy5lbnRpdGllcyQsXG4gICAgICB0aGlzLmVudGl0eUlkcyQsXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucyQsXG4gICAgICB0aGlzLmNvbnRleHQkLFxuICAgIF0pLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgIG1hcCgoW29wdGlvbnNQcm92aWRlciwgZW50aXRpZXMsIGVudGl0eUlkcywgdGVtcGxhdGVTZWxlY3RDaGlwcywgY29udGV4dF0pID0+XG4gICAgICAgIHRoaXMuYnVpbGRDaGlwTW9kZWxzKFxuICAgICAgICAgIG9wdGlvbnNQcm92aWRlcixcbiAgICAgICAgICBlbnRpdGllcyxcbiAgICAgICAgICBlbnRpdHlJZHMsXG4gICAgICAgICAgdGhpcy5idWlsZEVudGl0aWVzTGFiZWxNYXAodGVtcGxhdGVTZWxlY3RDaGlwcyksXG4gICAgICAgICAgY29udGV4dFxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuXG4gICAgdGhpcy50ZW1wbGF0ZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5jaGlwVGVtcGxhdGUkLCB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSRdKS5waXBlKFxuICAgICAgbWFwKChbY2hpcCwgYXZhdGFyXSkgPT4ge1xuICAgICAgICByZXR1cm4gPFRlbXBsYXRlV3JhcHBlcj57XG4gICAgICAgICAgY2hpcCxcbiAgICAgICAgICBhdmF0YXIsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtdWx0aXBsZSh2YWw6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbClcbiAgICBpZiAoIXRoaXMuX211bHRpcGxlICYmIHRoaXMuZW50aXRpZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdHkodGhpcy5lbnRpdGllc1t0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDFdKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gY3VzdG9taXplIGVhY2ggY2hpcCBpbmRpdmlkdWFsbHkgKENvbG9yLCBSZW1vdmFibGUsIEF2YXRhcikuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBTcGVjRm4oZm46IChlOiBURW50aXR5KSA9PiBTZWxlY3RPcHRpb25DaGlwU3BlYykge1xuICAgIHRoaXMuX2NoaXBTcGVjRm4kLm5leHQoZm4pXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBTcGVjRm4kKCk6IE9ic2VydmFibGU8KGU6IFRFbnRpdHkpID0+IFNlbGVjdE9wdGlvbkNoaXBTcGVjPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaXBTcGVjRm4kLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICBwdWJsaWMgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aXBsZVxuICB9XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcFRlbXBsYXRlID0gdGVtcGxhdGVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwVGVtcGxhdGUkLmdldFZhbHVlKClcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJC5uZXh0KHRlbXBsYXRlKVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlwQXZhdGFyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHNob3VsZExhYmVsRmxvYXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2VkKGNoYW5nZUV2ZW50OiBNYXRDaGlwU2VsZWN0aW9uQ2hhbmdlLCBlbnRpdHk6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICAvKiovXG4gICAgdGhpcy5sb2cuZGVidWcoJ3NlbGVjdGlvbkNoYW5nZWQnLCB7XG4gICAgICBjaGFuZ2VFdmVudDogY2hhbmdlRXZlbnQsXG4gICAgICBlbnRpdHk6IGVudGl0eSxcbiAgICB9KVxuXG4gICAgaWYgKGNoYW5nZUV2ZW50LmlzVXNlcklucHV0KSB7XG4gICAgICBpZiAoY2hhbmdlRXZlbnQuc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RFbnRpdHkoZW50aXR5KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVFbnRpdHkoZW50aXR5KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlQ2hpcFZhbHVlKGUxOiBURW50aXR5KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlMSlcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2xpc3RCb3gpIHtcbiAgICAgIHRoaXMuX2xpc3RCb3guZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMubG9nLndhcm4oJ2JsdXIoKSBub3QgeWV0IHN1cHBvcnRlZCEnKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgc3RhcnQgREMgaWYgbm90IHlldCBzdGFydGVkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKCFkYXRhLmlzU3RhcnRlZCkge1xuICAgICAgICBkYXRhLnN0YXJ0KHRoaXMuc29ydHMsIHRoaXMuZmlsdGVycykuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICBzdXBlci5vbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhKVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdXBlci5vbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2VsZWN0RW50aXR5KGVudGl0eTogVEVudGl0eSk6IHZvaWQge1xuICAgIGNvbnN0IGlkVG9TZWxlY3QgPSB0aGlzLmdldEVudGl0eUlkKGVudGl0eSlcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMucmVtb3ZlRW50aXRpZXModGhpcy5lbnRpdGllcy5maWx0ZXIoKGUpID0+IHRoaXMuZ2V0RW50aXR5SWQoZSkgIT09IGlkVG9TZWxlY3QpKVxuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNFbnRpdHlJZFNlbGVjdGVkKGlkVG9TZWxlY3QpKSB7XG4gICAgICB0aGlzLmFwcGVuZEVudGl0eShlbnRpdHkpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0VudGl0eUlkU2VsZWN0ZWQoZW50aXR5SWQ6IFRJZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0aWVzLnNvbWUoKGUpID0+IHRoaXMuZ2V0RW50aXR5SWQoZSkgPT0gZW50aXR5SWQpXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVscyhcbiAgICBvcHRpb25zUHJvdmlkZXI6IENoaXBPcHRpb25zUHJvdmlkZXI8VElkLCBURW50aXR5PixcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIGVudGl0eUlkczogVElkW10sXG4gICAgZW50aXRpZXNMYWJlbHM6IE1hcDxhbnksIHN0cmluZz4sXG4gICAgY29udGV4dDogTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHRcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10ge1xuICAgIHJldHVybiBvcHRpb25zUHJvdmlkZXIuYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhlbnRpdGllcywgZW50aXR5SWRzLCB7XG4gICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgaXNMb2NrZWQ6IHRoaXMuaXNMb2NrZWQsXG4gICAgICBlbnRpdHlMYWJlbE1hcDogZW50aXRpZXNMYWJlbHMsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBdmFpbGFibGVFbnRpdGllcyhcbiAgICBkYXRhOiBURW50aXR5W10sXG4gICAgdGVtcGxhdGVDaGlwczogRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQ8VEVudGl0eT5bXVxuICApOiBURW50aXR5W10ge1xuICAgIHJldHVybiBbLi4udGhpcy5leHRyYWN0RW50aXRpZXNGcm9tVGVtcGxhdGVDaGlwcyh0ZW1wbGF0ZUNoaXBzKSwgLi4uZGF0YV1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdEVudGl0aWVzRnJvbVRlbXBsYXRlQ2hpcHMoXG4gICAgdGVtcGxhdGVDaGlwczogRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQ8VEVudGl0eT5bXVxuICApOiBURW50aXR5W10ge1xuICAgIHJldHVybiB0ZW1wbGF0ZUNoaXBzLm1hcCgoY2hpcCkgPT4gY2hpcC52YWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRFbnRpdGllc0xhYmVsTWFwKFxuICAgIHRlbXBsYXRlQ2hpcHM6IEVsZGVyU2VsZWN0T3B0aW9uQ29tcG9uZW50PFRFbnRpdHk+W11cbiAgKTogTWFwPFRFbnRpdHksIHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgTWFwKFxuICAgICAgdGVtcGxhdGVDaGlwc1xuICAgICAgICAuZmlsdGVyKChjaGlwKSA9PiBjaGlwLmxhYmVsICE9IHVuZGVmaW5lZClcbiAgICAgICAgLm1hcCgoY2hpcCkgPT4gW2NoaXAudmFsdWUsIGNoaXAubGFiZWxdKVxuICAgIClcbiAgfVxufVxuIiwiQGlmIChzZWxlY3RDaGlwcyQgfCBhc3luYzsgYXMgc2VsZWN0Q2hpcHMpIHtcbiAgPGRpdiBjbGFzcz1cImVsZGVyLWZsZXgtY29udHJvbFwiIFttYXRUb29sdGlwXT1cIihzdGF0ZSQgfCBhc3luYyk/LmVycm9yXCI+XG4gICAgPG1hdC1jaGlwLWxpc3Rib3ggI2NoaXBzIFtjbGFzcy5tYXQtbWRjLWNoaXAtc2V0LXN0YWNrZWRdPVwic3RhY2tlZFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiPlxuICAgICAgQGlmIChzdGF0ZSQgfCBhc3luYzsgYXMgc3RhdGUpIHtcbiAgICAgICAgQGlmIChpY29uKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVsZGVyLWlucHV0LXByZWZpeC1pY29uLWNvbnRhaW5lciBmbGV4LW5vbmVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLXByZWZpeC1pY29uIGVsZGVyLW1kYy1jb250cm9sLWljb24gZWxkZXItaWNvbi1zbWFsbCBub3NlbGVjdFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5sb2FkaW5nXT1cInN0YXRlLmxvYWRpbmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpY29uIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAodGVtcGxhdGVzJCB8IGFzeW5jOyBhcyB0ZW1wbGF0ZXMpIHtcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIEBmb3IgKGNoaXBNb2RlbCBvZiBzZWxlY3RDaGlwczsgdHJhY2sgY2hpcE1vZGVsLnZhbHVlKSB7XG4gICAgICAgICAgPG1hdC1jaGlwLW9wdGlvblxuICAgICAgICAgICAgY2xhc3M9XCJub3NlbGVjdFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwicmVzb2x2ZUNoaXBWYWx1ZShjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICAgIGVsZGVyQ2hpcExhYmVsXG4gICAgICAgICAgICBbbGV2ZWxDb2xvcl09XCJjaGlwTW9kZWwuY29sb3JTcGVjPy5sZXZlbENvbG9yXCJcbiAgICAgICAgICAgIFtzdGF0ZUNvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnN0YXRlQ29sb3JcIlxuICAgICAgICAgICAgW2NvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnRoZW1lQ29sb3JcIlxuICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwiIWNoaXBNb2RlbC5sb2NrZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNoaXBNb2RlbC5sb2NrZWRcIlxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cImNoaXBNb2RlbC5zZWxlY3RlZFwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHRlbXBsYXRlcy5hdmF0YXIgJiYgIWNoaXBNb2RlbC5hdmF0YXJTcGVjPy5oaWRlKSB7XG4gICAgICAgICAgICAgIDxtYXQtY2hpcC1hdmF0YXIgW2NsYXNzLmNoaXAtYXZhdGFyLXhsXT1cImNoaXBNb2RlbC5hdmF0YXJTcGVjPy5sYXJnZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmF2YXRhcjsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaXBNb2RlbCB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbWF0LWNoaXAtYXZhdGFyPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVzLmNoaXAgfHwgc2ltcGxlQ2hpcFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjaGlwTW9kZWwgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIEBpZiAoY2hpcE1vZGVsLnRyYWlsaW5nU3BlYz8uaWNvbikge1xuICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBtYXRDaGlwVHJhaWxpbmdJY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci10cmFpbGluZy1pY29uXCJcbiAgICAgICAgICAgICAgICBbZm9udFNldF09XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uRm9udFNldFwiXG4gICAgICAgICAgICAgICAgPnt7IGNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb24gfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L21hdC1jaGlwLW9wdGlvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBlbGRlci1jaGlwLWlucHV0XCI+XG4gICAgICAgICAgQGlmIChzZWxlY3Rpb25Qb3B1cCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItY29udHJvbC1pY29uLWJ1dHRvbiBlbGRlci1icm93c2UtaWNvblwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbGRlci1tZGMtY29udHJvbC1pY29uXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWNoaXBNb2RlbD5cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57eyBjaGlwTW9kZWwuZGlzcGxheVRleHQgfCBlbGRlclRydW5jYXRlOiAyMCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|