@fundamental-ngx/platform 0.52.2-rc.3 → 0.52.2-rc.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
- package/esm2022/form/date-picker/date-picker.component.mjs +2 -2
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +2 -2
- package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +9 -3
- package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +2 -2
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +3 -3
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +18 -4
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +4 -4
- package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +8 -3
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2022/table/table.component.mjs +5 -6
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +2 -1
- package/esm2022/variant-management/variant-management.component.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +10 -5
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +32 -13
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +1 -0
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/form/multi-combobox/commons/base-multi-combobox.d.ts +10 -3
- package/package.json +10 -10
- package/schematics/ng-add/index.js +1 -1
- package/table/components/table-cell-header-popover/table-cell-header-popover.component.d.ts +4 -1
- package/table/components/table-p13-dialog/table-p13-dialog.component.d.ts +4 -2
package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs
CHANGED
|
@@ -5,10 +5,11 @@ import { TemplateDirective } from '@fundamental-ngx/cdk/utils';
|
|
|
5
5
|
import { FormControlComponent, FormItemComponent, FormLabelComponent } from '@fundamental-ngx/core/form';
|
|
6
6
|
import { ListIconDirective, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';
|
|
7
7
|
import { PopoverComponent } from '@fundamental-ngx/core/popover';
|
|
8
|
+
import { PopoverPlacement } from '@fundamental-ngx/core/shared';
|
|
8
9
|
import { TablePopoverDirective } from '@fundamental-ngx/core/table';
|
|
9
10
|
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
10
11
|
import { FreeContentListItemComponent, ListComponent } from '@fundamental-ngx/platform/list';
|
|
11
|
-
import { FILTER_STRING_STRATEGY, FilterableColumnDataType, SortDirection, Table, TableColumn, TableService } from '@fundamental-ngx/platform/table-helpers';
|
|
12
|
+
import { ColumnAlign, FILTER_STRING_STRATEGY, FilterableColumnDataType, SortDirection, Table, TableColumn, TableService } from '@fundamental-ngx/platform/table-helpers';
|
|
12
13
|
import { startWith } from 'rxjs/operators';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
export class TableCellHeaderPopoverComponent {
|
|
@@ -105,8 +106,21 @@ export class TableCellHeaderPopoverComponent {
|
|
|
105
106
|
this._listComponent?._setCurrentActiveItemIndex(0);
|
|
106
107
|
}
|
|
107
108
|
}
|
|
109
|
+
/** @hidden */
|
|
110
|
+
mapColumnAlignToPlacement(columnAlignValue) {
|
|
111
|
+
switch (columnAlignValue) {
|
|
112
|
+
case ColumnAlign.START:
|
|
113
|
+
return PopoverPlacement.BOTTOM_START;
|
|
114
|
+
case ColumnAlign.CENTER:
|
|
115
|
+
return PopoverPlacement.BOTTOM;
|
|
116
|
+
case ColumnAlign.END:
|
|
117
|
+
return PopoverPlacement.BOTTOM_END;
|
|
118
|
+
default:
|
|
119
|
+
return PopoverPlacement.AUTO;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
108
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TableCellHeaderPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: TableCellHeaderPopoverComponent, isStandalone: true, selector: "fdp-table-cell-header-popover", inputs: { column: "column", popoverTemplate: "popoverTemplate", disabled: "disabled", columnFrozen: "columnFrozen", filteringFromHeaderDisabled: "filteringFromHeaderDisabled", columnIndex: "columnIndex" }, viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "_listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "_popoverItems", predicate: TemplateDirective, descendants: true }], ngImport: i0, template: "@if (!popoverTemplate) {\n <fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n [triggers]=\"_headerPopoverTriggers\"\n (isOpenChange)=\"_popoverOpened($event)\"\n >\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n @for (item of _popoverItems$(); track item) {\n <li fdp-free-content-list-item>\n <ng-template\n [ngTemplateOutlet]=\"item\"\n [ngTemplateOutletContext]=\"{ popover: popover }\"\n ></ng-template>\n </li>\n }\n </fdp-list>\n </fd-popover>\n} @else {\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asReadonly() }\"\n ></ng-template>\n}\n@if (column?.sortable) {\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n}\n@if (column?.groupable) {\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderGroupBy(column.key)\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key)\"\n >\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n}\n@if (column?.freezable || column?.endFreezable) {\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n @if (!columnFrozen) {\n <a fd-list-link role=\"button\" [focusable]=\"true\" (click)=\"_freeze()\" (keydown.enter)=\"_freeze()\">\n <span fd-list-title>{{\n (!column.endFreezable\n ? columnIndex > 0\n ? 'platformTable.headerMenuFreezePlural'\n : 'platformTable.headerMenuFreeze'\n : 'platformTable.headerMenuEndFreeze'\n ) | fdTranslate\n }}</span>\n </a>\n } @else {\n <a fd-list-link role=\"button\" [focusable]=\"true\" (click)=\"_unFreeze()\" (keydown.enter)=\"_unFreeze()\">\n <span fd-list-title>{{\n (columnIndex > 0 ? 'platformTable.headerMenuUnfreezePlural' : 'platformTable.headerMenuUnfreeze')\n | fdTranslate\n }}</span>\n </a>\n }\n </ng-template>\n}\n@if (column?.filterable && !filteringFromHeaderDisabled) {\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <div fd-list-link [style.cursor]=\"'auto'\" [focusable]=\"true\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value)\"\n />\n </div>\n </div>\n </ng-template>\n}\n", dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: TablePopoverDirective, selector: "[fdTablePopover], [fd-table-popover]" }, { kind: "component", type: ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator", "interceptTabKey"], outputs: ["selectedItemChange"] }, { kind: "component", type: FreeContentListItemComponent, selector: "fdp-free-content-list-item, li[fdp-free-content-list-item]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: TableCellHeaderPopoverComponent, isStandalone: true, selector: "fdp-table-cell-header-popover", inputs: { column: "column", popoverTemplate: "popoverTemplate", disabled: "disabled", columnFrozen: "columnFrozen", filteringFromHeaderDisabled: "filteringFromHeaderDisabled", columnIndex: "columnIndex" }, viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "_listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "_popoverItems", predicate: TemplateDirective, descendants: true }], ngImport: i0, template: "@if (!popoverTemplate) {\n <fd-popover\n [placement]=\"mapColumnAlignToPlacement(column?.align)\"\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n [triggers]=\"_headerPopoverTriggers\"\n (isOpenChange)=\"_popoverOpened($event)\"\n >\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n @for (item of _popoverItems$(); track item) {\n <li fdp-free-content-list-item>\n <ng-template\n [ngTemplateOutlet]=\"item\"\n [ngTemplateOutletContext]=\"{ popover: popover }\"\n ></ng-template>\n </li>\n }\n </fdp-list>\n </fd-popover>\n} @else {\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asReadonly() }\"\n ></ng-template>\n}\n@if (column?.sortable) {\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n}\n@if (column?.groupable) {\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderGroupBy(column.key)\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key)\"\n >\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n}\n@if (column?.freezable || column?.endFreezable) {\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n @if (!columnFrozen) {\n <a fd-list-link role=\"button\" [focusable]=\"true\" (click)=\"_freeze()\" (keydown.enter)=\"_freeze()\">\n <span fd-list-title>{{\n (!column.endFreezable\n ? columnIndex > 0\n ? 'platformTable.headerMenuFreezePlural'\n : 'platformTable.headerMenuFreeze'\n : 'platformTable.headerMenuEndFreeze'\n ) | fdTranslate\n }}</span>\n </a>\n } @else {\n <a fd-list-link role=\"button\" [focusable]=\"true\" (click)=\"_unFreeze()\" (keydown.enter)=\"_unFreeze()\">\n <span fd-list-title>{{\n (columnIndex > 0 ? 'platformTable.headerMenuUnfreezePlural' : 'platformTable.headerMenuUnfreeze')\n | fdTranslate\n }}</span>\n </a>\n }\n </ng-template>\n}\n@if (column?.filterable && !filteringFromHeaderDisabled) {\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <div fd-list-link [style.cursor]=\"'auto'\" [focusable]=\"true\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value)\"\n (keydown)=\"$event.stopPropagation()\"\n />\n </div>\n </div>\n </ng-template>\n}\n", dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: TablePopoverDirective, selector: "[fdTablePopover], [fd-table-popover]" }, { kind: "component", type: ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator", "interceptTabKey"], outputs: ["selectedItemChange"] }, { kind: "component", type: FreeContentListItemComponent, selector: "fdp-free-content-list-item, li[fdp-free-content-list-item]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
110
124
|
}
|
|
111
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TableCellHeaderPopoverComponent, decorators: [{
|
|
112
126
|
type: Component,
|
|
@@ -125,7 +139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
125
139
|
FormControlComponent,
|
|
126
140
|
AsyncPipe,
|
|
127
141
|
FdTranslatePipe
|
|
128
|
-
], template: "@if (!popoverTemplate) {\n <fd-popover\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n [triggers]=\"_headerPopoverTriggers\"\n (isOpenChange)=\"_popoverOpened($event)\"\n >\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n @for (item of _popoverItems$(); track item) {\n <li fdp-free-content-list-item>\n <ng-template\n [ngTemplateOutlet]=\"item\"\n [ngTemplateOutletContext]=\"{ popover: popover }\"\n ></ng-template>\n </li>\n }\n </fdp-list>\n </fd-popover>\n} @else {\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asReadonly() }\"\n ></ng-template>\n}\n@if (column?.sortable) {\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n}\n@if (column?.groupable) {\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderGroupBy(column.key)\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key)\"\n >\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n}\n@if (column?.freezable || column?.endFreezable) {\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n @if (!columnFrozen) {\n <a fd-list-link role=\"button\" [focusable]=\"true\" (click)=\"_freeze()\" (keydown.enter)=\"_freeze()\">\n <span fd-list-title>{{\n (!column.endFreezable\n ? columnIndex > 0\n ? 'platformTable.headerMenuFreezePlural'\n : 'platformTable.headerMenuFreeze'\n : 'platformTable.headerMenuEndFreeze'\n ) | fdTranslate\n }}</span>\n </a>\n } @else {\n <a fd-list-link role=\"button\" [focusable]=\"true\" (click)=\"_unFreeze()\" (keydown.enter)=\"_unFreeze()\">\n <span fd-list-title>{{\n (columnIndex > 0 ? 'platformTable.headerMenuUnfreezePlural' : 'platformTable.headerMenuUnfreeze')\n | fdTranslate\n }}</span>\n </a>\n }\n </ng-template>\n}\n@if (column?.filterable && !filteringFromHeaderDisabled) {\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <div fd-list-link [style.cursor]=\"'auto'\" [focusable]=\"true\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value)\"\n />\n </div>\n </div>\n </ng-template>\n}\n" }]
|
|
142
|
+
], template: "@if (!popoverTemplate) {\n <fd-popover\n [placement]=\"mapColumnAlignToPlacement(column?.align)\"\n [disabled]=\"disabled\"\n [noArrow]=\"true\"\n fd-table-popover\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n [triggers]=\"_headerPopoverTriggers\"\n (isOpenChange)=\"_popoverOpened($event)\"\n >\n <fdp-list [noBorder]=\"true\" [navigated]=\"true\">\n @for (item of _popoverItems$(); track item) {\n <li fdp-free-content-list-item>\n <ng-template\n [ngTemplateOutlet]=\"item\"\n [ngTemplateOutletContext]=\"{ popover: popover }\"\n ></ng-template>\n </li>\n }\n </fdp-list>\n </fd-popover>\n} @else {\n <ng-template\n [ngTemplateOutlet]=\"popoverTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: _popoverItems$.asReadonly() }\"\n ></ng-template>\n}\n@if (column?.sortable) {\n <ng-template fdkTemplate=\"sortingAscPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.ASC)\"\n >\n <span fd-list-icon glyph=\"sort-ascending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortAsc' | fdTranslate }}</span>\n </a>\n </ng-template>\n <ng-template fdkTemplate=\"sortingDescPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n (keydown.enter)=\"_setColumnHeaderSortBy(column.key, SORT_DIRECTION.DESC)\"\n >\n <span fd-list-icon glyph=\"sort-descending\"></span>\n <span fd-list-title>{{ 'platformTable.headerMenuSortDesc' | fdTranslate }}</span>\n </a>\n </ng-template>\n}\n@if (column?.groupable) {\n <ng-template fdkTemplate=\"groupPopoverItem\" let-popover=\"popover\">\n <a\n fd-list-link\n role=\"button\"\n [focusable]=\"true\"\n (click)=\"_setColumnHeaderGroupBy(column.key)\"\n (keydown.enter)=\"_setColumnHeaderGroupBy(column.key)\"\n >\n <span fd-list-title>{{ 'platformTable.headerMenuGroup' | fdTranslate }}</span>\n </a>\n </ng-template>\n}\n@if (column?.freezable || column?.endFreezable) {\n <ng-template fdkTemplate=\"freezePopoverItem\" let-popover=\"popover\">\n @if (!columnFrozen) {\n <a fd-list-link role=\"button\" [focusable]=\"true\" (click)=\"_freeze()\" (keydown.enter)=\"_freeze()\">\n <span fd-list-title>{{\n (!column.endFreezable\n ? columnIndex > 0\n ? 'platformTable.headerMenuFreezePlural'\n : 'platformTable.headerMenuFreeze'\n : 'platformTable.headerMenuEndFreeze'\n ) | fdTranslate\n }}</span>\n </a>\n } @else {\n <a fd-list-link role=\"button\" [focusable]=\"true\" (click)=\"_unFreeze()\" (keydown.enter)=\"_unFreeze()\">\n <span fd-list-title>{{\n (columnIndex > 0 ? 'platformTable.headerMenuUnfreezePlural' : 'platformTable.headerMenuUnfreeze')\n | fdTranslate\n }}</span>\n </a>\n }\n </ng-template>\n}\n@if (column?.filterable && !filteringFromHeaderDisabled) {\n <ng-template fdkTemplate=\"filteringPopoverItem\" let-popover=\"popover\">\n <div fd-list-link [style.cursor]=\"'auto'\" [focusable]=\"true\">\n <i fd-list-icon glyph=\"filter\"></i>\n <div fd-form-item [horizontal]=\"true\" (click)=\"$event.stopPropagation()\">\n <label fd-form-label [for]=\"'fdp-table-column-filtering-' + column.name\">{{\n 'platformTable.headerMenuFilter' | fdTranslate\n }}</label>\n <input\n fd-form-control\n [id]=\"'fdp-table-column-filtering-' + column.name\"\n (keydown.enter)=\"_setColumnHeaderFilterBy(column.key, $any($event.target)?.value)\"\n (keydown)=\"$event.stopPropagation()\"\n />\n </div>\n </div>\n </ng-template>\n}\n" }]
|
|
129
143
|
}], propDecorators: { column: [{
|
|
130
144
|
type: Input
|
|
131
145
|
}], popoverTemplate: [{
|
|
@@ -148,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
148
162
|
type: ViewChild,
|
|
149
163
|
args: [ListComponent]
|
|
150
164
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFZLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLCtCQUErQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIs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IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIElucHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbENvbXBvbmVudCwgRm9ybUl0ZW1Db21wb25lbnQsIEZvcm1MYWJlbENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IExpc3RJY29uRGlyZWN0aXZlLCBMaXN0TGlua0RpcmVjdGl2ZSwgTGlzdFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCwgVHJpZ2dlckNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IFRhYmxlUG9wb3ZlckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90YWJsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRnJlZUNvbnRlbnRMaXN0SXRlbUNvbXBvbmVudCwgTGlzdENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vbGlzdCc7XG5pbXBvcnQge1xuICAgIENvbGxlY3Rpb25TdHJpbmdGaWx0ZXIsXG4gICAgRklMVEVSX1NUUklOR19TVFJBVEVHWSxcbiAgICBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUsXG4gICAgU29ydERpcmVjdGlvbixcbiAgICBUYWJsZSxcbiAgICBUYWJsZUNvbHVtbixcbiAgICBUYWJsZVNlcnZpY2Vcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZS1oZWxwZXJzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGFibGUtY2VsbC1oZWFkZXItcG9wb3ZlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgIFRhYmxlUG9wb3ZlckRpcmVjdGl2ZSxcbiAgICAgICAgTGlzdENvbXBvbmVudCxcbiAgICAgICAgRnJlZUNvbnRlbnRMaXN0SXRlbUNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIExpc3RMaW5rRGlyZWN0aXZlLFxuICAgICAgICBMaXN0SWNvbkRpcmVjdGl2ZSxcbiAgICAgICAgTGlzdFRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGb3JtSXRlbUNvbXBvbmVudCxcbiAgICAgICAgRm9ybUxhYmVsQ29tcG9uZW50LFxuICAgICAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ2VsbEhlYWRlclBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKiogQ29sdW1uIGRlZmluaXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBjb2x1bW46IFRhYmxlQ29sdW1uO1xuXG4gICAgLyoqIEN1c3RvbSBwb3BvdmVyIHRlbXBsYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcG9wb3ZlclRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb2x1bW4gaXMgZnJvemVuLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uRnJvemVuID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgZmlsdGVyaW5nIGZyb20gaGVhZGVyIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyaW5nRnJvbUhlYWRlckRpc2FibGVkOiBOdWxsYWJsZTxib29sZWFuPiA9IGZhbHNlO1xuXG4gICAgLyoqIENvbHVtbiBpbmRleCAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uSW5kZXg6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChQb3BvdmVyQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwb3BvdmVyOiBOdWxsYWJsZTxQb3BvdmVyQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICBfcG9wb3Zlckl0ZW1zOiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKExpc3RDb21wb25lbnQpXG4gICAgX2xpc3RDb21wb25lbnQ6IExpc3RDb21wb25lbnQ8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3BvcG92ZXJJdGVtcyQgPSBzaWduYWw8VGVtcGxhdGVSZWY8YW55PltdPihbXSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oZWFkZXJQb3BvdmVyVHJpZ2dlcnM6IFRyaWdnZXJDb25maWdbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2NsaWNrJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0cmlnZ2VyOiAna2V5ZG93bi5lbnRlcicsXG4gICAgICAgICAgICBvcGVuQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWUsXG4gICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2tleWRvd24uc3BhY2UnLFxuICAgICAgICAgICAgb3BlbkFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiB0cnVlXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgU09SVF9ESVJFQ1RJT04gPSBTb3J0RGlyZWN0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJsZVNlcnZpY2UgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFibGUgPSBpbmplY3QoVGFibGUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvcG92ZXJJdGVtcy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wb3BvdmVySXRlbXMkLnNldCh0aGlzLl9wb3BvdmVySXRlbXMubWFwKCh0KSA9PiB0LnRlbXBsYXRlUmVmKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldENvbHVtbkhlYWRlclNvcnRCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddLCBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldFNvcnQoW3sgZmllbGQsIGRpcmVjdGlvbiB9XSk7XG4gICAgICAgIHRoaXMucG9wb3Zlcj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGZpZWxkOiBUYWJsZUNvbHVtblsna2V5J10pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl90YWJsZVNlcnZpY2UuZ2V0VGFibGVTdGF0ZSgpO1xuICAgICAgICBpZiAoc3RhdGUuZ3JvdXBCeT8ubGVuZ3RoID09PSAxICYmIHN0YXRlLmdyb3VwQnlbMF0uZmllbGQgPT09IGZpZWxkKSB7XG4gICAgICAgICAgICAvLyByZXNldCBncm91cGluZywgaWYgYWxyZWFkeSBncm91cGVkIGJ5IHRoaXMgZmllbGRcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRHcm91cHMoW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldEdyb3VwcyhbeyBmaWVsZCwgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uLk5PTkUsIHNob3dBc0NvbHVtbjogdHJ1ZSB9XSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRDb2x1bW5IZWFkZXJGaWx0ZXJCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5yZW1vdmVGaWx0ZXJzKFtmaWVsZF0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25GaWx0ZXI6IENvbGxlY3Rpb25TdHJpbmdGaWx0ZXIgPSB7XG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgdHlwZTogRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLlNUUklORyxcbiAgICAgICAgICAgIHN0cmF0ZWd5OiBGSUxURVJfU1RSSU5HX1NUUkFURUdZLkNPTlRBSU5TLFxuICAgICAgICAgICAgZXhjbHVkZTogZmFsc2VcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2UuYWRkRmlsdGVycyhbY29sbGVjdGlvbkZpbHRlcl0pO1xuICAgICAgICB0aGlzLnBvcG92ZXI/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZnJlZXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5mcmVlemVUb0NvbHVtbih0aGlzLmNvbHVtbi5uYW1lLCB0aGlzLmNvbHVtbi5lbmRGcmVlemFibGUpO1xuICAgICAgICB0aGlzLnBvcG92ZXI/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdW5GcmVlemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLnVuZnJlZXplKHRoaXMuY29sdW1uLm5hbWUsIHRoaXMuY29sdW1uLmVuZEZyZWV6YWJsZSk7XG4gICAgICAgIHRoaXMucG9wb3Zlcj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3BvdmVyT3BlbmVkKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0Q29tcG9uZW50Py5fc2V0Q3VycmVudEFjdGl2ZUl0ZW1JbmRleCgwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoIXBvcG92ZXJUZW1wbGF0ZSkge1xuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtub0Fycm93XT1cInRydWVcIlxuICAgICAgICBmZC10YWJsZS1wb3BvdmVyXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICBbdHJpZ2dlcnNdPVwiX2hlYWRlclBvcG92ZXJUcmlnZ2Vyc1wiXG4gICAgICAgIChpc09wZW5DaGFuZ2UpPVwiX3BvcG92ZXJPcGVuZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZmRwLWxpc3QgW25vQm9yZGVyXT1cInRydWVcIiBbbmF2aWdhdGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgX3BvcG92ZXJJdGVtcyQoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxsaSBmZHAtZnJlZS1jb250ZW50LWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBvcG92ZXI6IHBvcG92ZXIgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmRwLWxpc3Q+XG4gICAgPC9mZC1wb3BvdmVyPlxufSBAZWxzZSB7XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvcG92ZXJUZW1wbGF0ZSFcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IF9wb3BvdmVySXRlbXMkLmFzUmVhZG9ubHkoKSB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoY29sdW1uPy5zb3J0YWJsZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cInNvcnRpbmdBc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5BU0MpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uQVNDKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtaWNvbiBnbHlwaD1cInNvcnQtYXNjZW5kaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51U29ydEFzYycgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic29ydGluZ0Rlc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5ERVNDKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfc2V0Q29sdW1uSGVhZGVyU29ydEJ5KGNvbHVtbi5rZXksIFNPUlRfRElSRUNUSU9OLkRFU0MpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1pY29uIGdseXBoPVwic29ydC1kZXNjZW5kaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51U29ydERlc2MnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxufVxuQGlmIChjb2x1bW4/Lmdyb3VwYWJsZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImdyb3VwUG9wb3Zlckl0ZW1cIiBsZXQtcG9wb3Zlcj1cInBvcG92ZXJcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51R3JvdXAnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxufVxuQGlmIChjb2x1bW4/LmZyZWV6YWJsZSB8fCBjb2x1bW4/LmVuZEZyZWV6YWJsZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZyZWV6ZVBvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIEBpZiAoIWNvbHVtbkZyb3plbikge1xuICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIHJvbGU9XCJidXR0b25cIiBbZm9jdXNhYmxlXT1cInRydWVcIiAoY2xpY2spPVwiX2ZyZWV6ZSgpXCIgKGtleWRvd24uZW50ZXIpPVwiX2ZyZWV6ZSgpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57e1xuICAgICAgICAgICAgICAgICAgICAoIWNvbHVtbi5lbmRGcmVlemFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY29sdW1uSW5kZXggPiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RnJlZXplUGx1cmFsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUZyZWV6ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUVuZEZyZWV6ZSdcbiAgICAgICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIHJvbGU9XCJidXR0b25cIiBbZm9jdXNhYmxlXT1cInRydWVcIiAoY2xpY2spPVwiX3VuRnJlZXplKClcIiAoa2V5ZG93bi5lbnRlcik9XCJfdW5GcmVlemUoKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3tcbiAgICAgICAgICAgICAgICAgICAgKGNvbHVtbkluZGV4ID4gMCA/ICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVVbmZyZWV6ZVBsdXJhbCcgOiAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51VW5mcmVlemUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoY29sdW1uPy5maWx0ZXJhYmxlICYmICFmaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWQpIHtcbiAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJmaWx0ZXJpbmdQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8ZGl2IGZkLWxpc3QtbGluayBbc3R5bGUuY3Vyc29yXT1cIidhdXRvJ1wiIFtmb2N1c2FibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uIGdseXBoPVwiZmlsdGVyXCI+PC9pPlxuICAgICAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0gW2hvcml6b250YWxdPVwidHJ1ZVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBbZm9yXT1cIidmZHAtdGFibGUtY29sdW1uLWZpbHRlcmluZy0nICsgY29sdW1uLm5hbWVcIj57e1xuICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RmlsdGVyJyB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmZHAtdGFibGUtY29sdW1uLWZpbHRlcmluZy0nICsgY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfc2V0Q29sdW1uSGVhZGVyRmlsdGVyQnkoY29sdW1uLmtleSwgJGFueSgkZXZlbnQudGFyZ2V0KT8udmFsdWUpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG59XG4iXX0=
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2VsbC1oZWFkZXItcG9wb3Zlci90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyL3RhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFZLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLCtCQUErQixDQUFDO0FBQ2hGLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2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QWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLFNBQVM7d0JBQ1QsZUFBZTtxQkFDbEI7OEJBS0QsTUFBTTtzQkFETCxLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLDJCQUEyQjtzQkFEMUIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sT0FBTztzQkFETixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLOUMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGlCQUFpQjtnQkFLL0IsY0FBYztzQkFEYixTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIElucHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbENvbXBvbmVudCwgRm9ybUl0ZW1Db21wb25lbnQsIEZvcm1MYWJlbENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IExpc3RJY29uRGlyZWN0aXZlLCBMaXN0TGlua0RpcmVjdGl2ZSwgTGlzdFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCwgVHJpZ2dlckNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IFBsYWNlbWVudCwgUG9wb3ZlclBsYWNlbWVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgVGFibGVQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RhYmxlJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBGcmVlQ29udGVudExpc3RJdGVtQ29tcG9uZW50LCBMaXN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9saXN0JztcbmltcG9ydCB7XG4gICAgQ29sbGVjdGlvblN0cmluZ0ZpbHRlcixcbiAgICBDb2x1bW5BbGlnbixcbiAgICBDb2x1bW5BbGlnblZhbHVlLFxuICAgIEZJTFRFUl9TVFJJTkdfU1RSQVRFR1ksXG4gICAgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLFxuICAgIFNvcnREaXJlY3Rpb24sXG4gICAgVGFibGUsXG4gICAgVGFibGVDb2x1bW4sXG4gICAgVGFibGVTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXRhYmxlLWNlbGwtaGVhZGVyLXBvcG92ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jZWxsLWhlYWRlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBUYWJsZVBvcG92ZXJEaXJlY3RpdmUsXG4gICAgICAgIExpc3RDb21wb25lbnQsXG4gICAgICAgIEZyZWVDb250ZW50TGlzdEl0ZW1Db21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBMaXN0TGlua0RpcmVjdGl2ZSxcbiAgICAgICAgTGlzdEljb25EaXJlY3RpdmUsXG4gICAgICAgIExpc3RUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgRm9ybUl0ZW1Db21wb25lbnQsXG4gICAgICAgIEZvcm1MYWJlbENvbXBvbmVudCxcbiAgICAgICAgRm9ybUNvbnRyb2xDb21wb25lbnQsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNlbGxIZWFkZXJQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIENvbHVtbiBkZWZpbml0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sdW1uOiBUYWJsZUNvbHVtbjtcblxuICAgIC8qKiBDdXN0b20gcG9wb3ZlciB0ZW1wbGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBvcG92ZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29sdW1uIGlzIGZyb3plbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkZyb3plbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGZpbHRlcmluZyBmcm9tIGhlYWRlciBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbHRlcmluZ0Zyb21IZWFkZXJEaXNhYmxlZDogTnVsbGFibGU8Ym9vbGVhbj4gPSBmYWxzZTtcblxuICAgIC8qKiBDb2x1bW4gaW5kZXggKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoUG9wb3ZlckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcG9wb3ZlcjogTnVsbGFibGU8UG9wb3ZlckNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgX3BvcG92ZXJJdGVtczogUXVlcnlMaXN0PFRlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChMaXN0Q29tcG9uZW50KVxuICAgIF9saXN0Q29tcG9uZW50OiBMaXN0Q29tcG9uZW50PGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9wb3BvdmVySXRlbXMkID0gc2lnbmFsPFRlbXBsYXRlUmVmPGFueT5bXT4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGVhZGVyUG9wb3ZlclRyaWdnZXJzOiBUcmlnZ2VyQ29uZmlnW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdjbGljaycsXG4gICAgICAgICAgICBvcGVuQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWUsXG4gICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2tleWRvd24uZW50ZXInLFxuICAgICAgICAgICAgb3BlbkFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdrZXlkb3duLnNwYWNlJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlID0gaW5qZWN0KFRhYmxlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVySXRlbXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcG9wb3Zlckl0ZW1zJC5zZXQodGhpcy5fcG9wb3Zlckl0ZW1zLm1hcCgodCkgPT4gdC50ZW1wbGF0ZVJlZikpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoZmllbGQ6IFRhYmxlQ29sdW1uWydrZXknXSwgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRTb3J0KFt7IGZpZWxkLCBkaXJlY3Rpb24gfV0pO1xuICAgICAgICB0aGlzLnBvcG92ZXI/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0Q29sdW1uSGVhZGVyR3JvdXBCeShmaWVsZDogVGFibGVDb2x1bW5bJ2tleSddKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fdGFibGVTZXJ2aWNlLmdldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgaWYgKHN0YXRlLmdyb3VwQnk/Lmxlbmd0aCA9PT0gMSAmJiBzdGF0ZS5ncm91cEJ5WzBdLmZpZWxkID09PSBmaWVsZCkge1xuICAgICAgICAgICAgLy8gcmVzZXQgZ3JvdXBpbmcsIGlmIGFscmVhZHkgZ3JvdXBlZCBieSB0aGlzIGZpZWxkXG4gICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2Uuc2V0R3JvdXBzKFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRHcm91cHMoW3sgZmllbGQsIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbi5OT05FLCBzaG93QXNDb2x1bW46IHRydWUgfV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0Q29sdW1uSGVhZGVyRmlsdGVyQnkoZmllbGQ6IFRhYmxlQ29sdW1uWydrZXknXSwgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2UucmVtb3ZlRmlsdGVycyhbZmllbGRdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xsZWN0aW9uRmlsdGVyOiBDb2xsZWN0aW9uU3RyaW5nRmlsdGVyID0ge1xuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICBzdHJhdGVneTogRklMVEVSX1NUUklOR19TVFJBVEVHWS5DT05UQUlOUyxcbiAgICAgICAgICAgIGV4Y2x1ZGU6IGZhbHNlXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLmFkZEZpbHRlcnMoW2NvbGxlY3Rpb25GaWx0ZXJdKTtcbiAgICAgICAgdGhpcy5wb3BvdmVyPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZyZWV6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUuZnJlZXplVG9Db2x1bW4odGhpcy5jb2x1bW4ubmFtZSwgdGhpcy5jb2x1bW4uZW5kRnJlZXphYmxlKTtcbiAgICAgICAgdGhpcy5wb3BvdmVyPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3VuRnJlZXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS51bmZyZWV6ZSh0aGlzLmNvbHVtbi5uYW1lLCB0aGlzLmNvbHVtbi5lbmRGcmVlemFibGUpO1xuICAgICAgICB0aGlzLnBvcG92ZXI/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcG9wb3Zlck9wZW5lZChpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5fbGlzdENvbXBvbmVudD8uX3NldEN1cnJlbnRBY3RpdmVJdGVtSW5kZXgoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1hcENvbHVtbkFsaWduVG9QbGFjZW1lbnQoY29sdW1uQWxpZ25WYWx1ZTogTnVsbGFibGU8Q29sdW1uQWxpZ25WYWx1ZT4pOiBQbGFjZW1lbnQge1xuICAgICAgICBzd2l0Y2ggKGNvbHVtbkFsaWduVmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uQWxpZ24uU1RBUlQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBvcG92ZXJQbGFjZW1lbnQuQk9UVE9NX1NUQVJUO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5BbGlnbi5DRU5URVI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBvcG92ZXJQbGFjZW1lbnQuQk9UVE9NO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5BbGlnbi5FTkQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBvcG92ZXJQbGFjZW1lbnQuQk9UVE9NX0VORDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBvcG92ZXJQbGFjZW1lbnQuQVVUTztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoIXBvcG92ZXJUZW1wbGF0ZSkge1xuICAgIDxmZC1wb3BvdmVyXG4gICAgICAgIFtwbGFjZW1lbnRdPVwibWFwQ29sdW1uQWxpZ25Ub1BsYWNlbWVudChjb2x1bW4/LmFsaWduKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtub0Fycm93XT1cInRydWVcIlxuICAgICAgICBmZC10YWJsZS1wb3BvdmVyXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICBbdHJpZ2dlcnNdPVwiX2hlYWRlclBvcG92ZXJUcmlnZ2Vyc1wiXG4gICAgICAgIChpc09wZW5DaGFuZ2UpPVwiX3BvcG92ZXJPcGVuZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZmRwLWxpc3QgW25vQm9yZGVyXT1cInRydWVcIiBbbmF2aWdhdGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgX3BvcG92ZXJJdGVtcyQoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxsaSBmZHAtZnJlZS1jb250ZW50LWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBvcG92ZXI6IHBvcG92ZXIgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmRwLWxpc3Q+XG4gICAgPC9mZC1wb3BvdmVyPlxufSBAZWxzZSB7XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvcG92ZXJUZW1wbGF0ZSFcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IF9wb3BvdmVySXRlbXMkLmFzUmVhZG9ubHkoKSB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoY29sdW1uPy5zb3J0YWJsZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cInNvcnRpbmdBc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5BU0MpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJTb3J0QnkoY29sdW1uLmtleSwgU09SVF9ESVJFQ1RJT04uQVNDKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtaWNvbiBnbHlwaD1cInNvcnQtYXNjZW5kaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51U29ydEFzYycgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwic29ydGluZ0Rlc2NQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NldENvbHVtbkhlYWRlclNvcnRCeShjb2x1bW4ua2V5LCBTT1JUX0RJUkVDVElPTi5ERVNDKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfc2V0Q29sdW1uSGVhZGVyU29ydEJ5KGNvbHVtbi5rZXksIFNPUlRfRElSRUNUSU9OLkRFU0MpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1pY29uIGdseXBoPVwic29ydC1kZXNjZW5kaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51U29ydERlc2MnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxufVxuQGlmIChjb2x1bW4/Lmdyb3VwYWJsZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImdyb3VwUG9wb3Zlckl0ZW1cIiBsZXQtcG9wb3Zlcj1cInBvcG92ZXJcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIl9zZXRDb2x1bW5IZWFkZXJHcm91cEJ5KGNvbHVtbi5rZXkpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51R3JvdXAnIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxufVxuQGlmIChjb2x1bW4/LmZyZWV6YWJsZSB8fCBjb2x1bW4/LmVuZEZyZWV6YWJsZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBmZGtUZW1wbGF0ZT1cImZyZWV6ZVBvcG92ZXJJdGVtXCIgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCI+XG4gICAgICAgIEBpZiAoIWNvbHVtbkZyb3plbikge1xuICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIHJvbGU9XCJidXR0b25cIiBbZm9jdXNhYmxlXT1cInRydWVcIiAoY2xpY2spPVwiX2ZyZWV6ZSgpXCIgKGtleWRvd24uZW50ZXIpPVwiX2ZyZWV6ZSgpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57e1xuICAgICAgICAgICAgICAgICAgICAoIWNvbHVtbi5lbmRGcmVlemFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY29sdW1uSW5kZXggPiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RnJlZXplUGx1cmFsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUZyZWV6ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGFibGUuaGVhZGVyTWVudUVuZEZyZWV6ZSdcbiAgICAgICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIHJvbGU9XCJidXR0b25cIiBbZm9jdXNhYmxlXT1cInRydWVcIiAoY2xpY2spPVwiX3VuRnJlZXplKClcIiAoa2V5ZG93bi5lbnRlcik9XCJfdW5GcmVlemUoKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3tcbiAgICAgICAgICAgICAgICAgICAgKGNvbHVtbkluZGV4ID4gMCA/ICdwbGF0Zm9ybVRhYmxlLmhlYWRlck1lbnVVbmZyZWV6ZVBsdXJhbCcgOiAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51VW5mcmVlemUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoY29sdW1uPy5maWx0ZXJhYmxlICYmICFmaWx0ZXJpbmdGcm9tSGVhZGVyRGlzYWJsZWQpIHtcbiAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJmaWx0ZXJpbmdQb3BvdmVySXRlbVwiIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiPlxuICAgICAgICA8ZGl2IGZkLWxpc3QtbGluayBbc3R5bGUuY3Vyc29yXT1cIidhdXRvJ1wiIFtmb2N1c2FibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uIGdseXBoPVwiZmlsdGVyXCI+PC9pPlxuICAgICAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0gW2hvcml6b250YWxdPVwidHJ1ZVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBbZm9yXT1cIidmZHAtdGFibGUtY29sdW1uLWZpbHRlcmluZy0nICsgY29sdW1uLm5hbWVcIj57e1xuICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1UYWJsZS5oZWFkZXJNZW51RmlsdGVyJyB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmZHAtdGFibGUtY29sdW1uLWZpbHRlcmluZy0nICsgY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJfc2V0Q29sdW1uSGVhZGVyRmlsdGVyQnkoY29sdW1uLmtleSwgJGFueSgkZXZlbnQudGFyZ2V0KT8udmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG59XG4iXX0=
|
package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
1
|
+
import { AsyncPipe, NgStyle, NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, computed, inject, signal } from '@angular/core';
|
|
3
3
|
import { IconComponent } from '@fundamental-ngx/core/icon';
|
|
4
4
|
import { TableIconDirective } from '@fundamental-ngx/core/table';
|
|
@@ -36,14 +36,14 @@ export class TableHeaderCellContentComponent {
|
|
|
36
36
|
return this._column$();
|
|
37
37
|
}
|
|
38
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TableHeaderCellContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: TableHeaderCellContentComponent, isStandalone: true, selector: "fdp-table-header-cell-content", inputs: { id: "id", column: "column" }, ngImport: i0, template: "<div
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: TableHeaderCellContentComponent, isStandalone: true, selector: "fdp-table-header-cell-content", inputs: { id: "id", column: "column" }, ngImport: i0, template: "<div\n class=\"fd-table__text--no-wrap\"\n [class]=\"{ 'fd-table__inner': hasSorting$() || hasFilter$() }\"\n [ngStyle]=\"{ 'justify-content': column?.align, gap: column?.align ? '0.5rem' : '' }\"\n>\n <ng-template\n [ngTemplateOutlet]=\"tableHeaderCellContentTemplate\"\n [ngTemplateOutletContext]=\"{ column: column }\"\n ></ng-template>\n @if (hasSorting$() || hasFilter$()) {\n <div class=\"fd-table__column-header-icons\">\n @if (hasFilter$()) {\n <fd-icon fd-table-icon glyph=\"filter\"></fd-icon>\n }\n @if (hasSorting$()) {\n <fd-icon\n fd-table-icon\n [ariaHidden]=\"true\"\n [glyph]=\"sorting$()?.direction === SORT_DIRECTION.ASC ? 'sort-ascending' : 'sort-descending'\"\n ></fd-icon>\n }\n </div>\n }\n</div>\n<ng-content></ng-content>\n<ng-template #tableHeaderCellContentTemplate let-column=\"column\">\n @if (column?.headerCellTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"column.headerCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column }\"\n ></ng-template>\n } @else {\n <span [id]=\"id + '-header-cell-' + column?.name\" class=\"fd-table__cell--truncate-txt\">\n {{ column?.labelValueChanges$ | async }}\n </span>\n }\n</ng-template>\n", styles: ["fdp-table-header-cell-content{display:flex;align-items:center;justify-content:space-between;flex-grow:0}fdp-table-header-cell-content .fd-table__text--no-wrap{width:100%}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: TableIconDirective, selector: "[fdTableIcon], [fd-table-icon]", inputs: ["class", "glyph", "glyphFont", "navigation"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
40
40
|
}
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TableHeaderCellContentComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
|
-
args: [{ selector: 'fdp-table-header-cell-content', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, IconComponent, TableIconDirective, AsyncPipe], template: "<div
|
|
43
|
+
args: [{ selector: 'fdp-table-header-cell-content', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet, IconComponent, TableIconDirective, AsyncPipe, NgStyle], template: "<div\n class=\"fd-table__text--no-wrap\"\n [class]=\"{ 'fd-table__inner': hasSorting$() || hasFilter$() }\"\n [ngStyle]=\"{ 'justify-content': column?.align, gap: column?.align ? '0.5rem' : '' }\"\n>\n <ng-template\n [ngTemplateOutlet]=\"tableHeaderCellContentTemplate\"\n [ngTemplateOutletContext]=\"{ column: column }\"\n ></ng-template>\n @if (hasSorting$() || hasFilter$()) {\n <div class=\"fd-table__column-header-icons\">\n @if (hasFilter$()) {\n <fd-icon fd-table-icon glyph=\"filter\"></fd-icon>\n }\n @if (hasSorting$()) {\n <fd-icon\n fd-table-icon\n [ariaHidden]=\"true\"\n [glyph]=\"sorting$()?.direction === SORT_DIRECTION.ASC ? 'sort-ascending' : 'sort-descending'\"\n ></fd-icon>\n }\n </div>\n }\n</div>\n<ng-content></ng-content>\n<ng-template #tableHeaderCellContentTemplate let-column=\"column\">\n @if (column?.headerCellTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"column.headerCellTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column }\"\n ></ng-template>\n } @else {\n <span [id]=\"id + '-header-cell-' + column?.name\" class=\"fd-table__cell--truncate-txt\">\n {{ column?.labelValueChanges$ | async }}\n </span>\n }\n</ng-template>\n", styles: ["fdp-table-header-cell-content{display:flex;align-items:center;justify-content:space-between;flex-grow:0}fdp-table-header-cell-content .fd-table__text--no-wrap{width:100%}\n"] }]
|
|
44
44
|
}], propDecorators: { id: [{
|
|
45
45
|
type: Input
|
|
46
46
|
}], column: [{
|
|
47
47
|
type: Input
|
|
48
48
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLWNlbGwtY29udGVudC90YWJsZS1oZWFkZXItY2VsbC1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXItY2VsbC1jb250ZW50L3RhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBZSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUF1Qm5HLE1BQU0sT0FBTywrQkFBK0I7SUFyQjVDO1FBb0NJLDBDQUEwQztRQUNqQyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO1FBRUgsNENBQTRDO1FBQ25DLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztRQUVILHVCQUF1QjtRQUNkLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFPLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztRQUVILGNBQWM7UUFDTCxtQkFBYyxHQUFHLGFBQWEsQ0FBQztRQUV4QyxjQUFjO1FBQ0csYUFBUSxHQUFHLE1BQU0sQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFFaEUsY0FBYztRQUNHLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUM1RDtJQXBDRyx3QkFBd0I7SUFDeEIsSUFDSSxNQUFNLENBQUMsS0FBNEI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBYlEsK0JBQStCO2tHQUEvQiwrQkFBK0IsaUlDNUI1Qyw2NUNBcUNBLHNPRFhjLGdCQUFnQixvSkFBRSxhQUFhLDBJQUFFLGtCQUFrQiw2SEFBRSxTQUFTLDhDQUFFLE9BQU87OzJGQUV4RSwrQkFBK0I7a0JBckIzQyxTQUFTOytCQUNJLCtCQUErQixpQkFFMUIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQWNuQyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQzs4QkFLbEYsRUFBRTtzQkFERCxLQUFLO2dCQUtGLE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgVGFibGVJY29uRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RhYmxlJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24sIFRhYmxlQ29sdW1uLCBUYWJsZVNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1oZWFkZXItY2VsbC1jb250ZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZGVyLWNlbGwtY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgZmRwLXRhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmRwLXRhYmxlLWhlYWRlci1jZWxsLWNvbnRlbnQgLmZkLXRhYmxlX190ZXh0LS1uby13cmFwIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgSWNvbkNvbXBvbmVudCwgVGFibGVJY29uRGlyZWN0aXZlLCBBc3luY1BpcGUsIE5nU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyQ2VsbENvbnRlbnRDb21wb25lbnQge1xuICAgIC8qKiBUYWJsZSBJZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBDb2x1bW4gcmVmZXJlbmNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbHVtbih2YWx1ZTogTnVsbGFibGU8VGFibGVDb2x1bW4+KSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbiQuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uKCk6IE51bGxhYmxlPFRhYmxlQ29sdW1uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW4kKCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgY29sdW1uIGhhcyBhcHBsaWVkIHNvcnRpbmcuICovXG4gICAgcmVhZG9ubHkgaGFzU29ydGluZyQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX2NvbHVtbiQoKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbiAmJiB0aGlzLl9mZHBUYWJsZVNlcnZpY2Uuc29ydFJ1bGVzJCgpLmhhcyhjb2x1bW4ua2V5KTtcbiAgICB9KTtcblxuICAgIC8qKiBXaGV0aGVyIGNvbHVtbiBoYXMgYXBwbGllZCBmaWx0ZXJpbmcuICovXG4gICAgcmVhZG9ubHkgaGFzRmlsdGVyJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5fY29sdW1uJCgpO1xuICAgICAgICByZXR1cm4gY29sdW1uICYmIHRoaXMuX2ZkcFRhYmxlU2VydmljZS5maWx0ZXJSdWxlcyQoKS5oYXMoY29sdW1uLmtleSk7XG4gICAgfSk7XG5cbiAgICAvKiogQXBwbGllZCBzb3J0aW5nLiAqL1xuICAgIHJlYWRvbmx5IHNvcnRpbmckID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLl9jb2x1bW4kKCk7XG4gICAgICAgIHJldHVybiBjb2x1bW4gJiYgdGhpcy5fZmRwVGFibGVTZXJ2aWNlLnNvcnRSdWxlcyQoKS5nZXQoY29sdW1uLmtleSk7XG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IFNPUlRfRElSRUNUSU9OID0gU29ydERpcmVjdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uJCA9IHNpZ25hbDxOdWxsYWJsZTxUYWJsZUNvbHVtbj4+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mZHBUYWJsZVNlcnZpY2UgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZkLXRhYmxlX190ZXh0LS1uby13cmFwXCJcbiAgICBbY2xhc3NdPVwieyAnZmQtdGFibGVfX2lubmVyJzogaGFzU29ydGluZyQoKSB8fCBoYXNGaWx0ZXIkKCkgfVwiXG4gICAgW25nU3R5bGVdPVwieyAnanVzdGlmeS1jb250ZW50JzogY29sdW1uPy5hbGlnbiwgZ2FwOiBjb2x1bW4/LmFsaWduID8gJzAuNXJlbScgOiAnJyB9XCJcbj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVIZWFkZXJDZWxsQ29udGVudFRlbXBsYXRlXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29sdW1uOiBjb2x1bW4gfVwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gICAgQGlmIChoYXNTb3J0aW5nJCgpIHx8IGhhc0ZpbHRlciQoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtdGFibGVfX2NvbHVtbi1oZWFkZXItaWNvbnNcIj5cbiAgICAgICAgICAgIEBpZiAoaGFzRmlsdGVyJCgpKSB7XG4gICAgICAgICAgICAgICAgPGZkLWljb24gZmQtdGFibGUtaWNvbiBnbHlwaD1cImZpbHRlclwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoaGFzU29ydGluZyQoKSkge1xuICAgICAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRhYmxlLWljb25cbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJzb3J0aW5nJCgpPy5kaXJlY3Rpb24gPT09IFNPUlRfRElSRUNUSU9OLkFTQyA/ICdzb3J0LWFzY2VuZGluZycgOiAnc29ydC1kZXNjZW5kaW5nJ1wiXG4gICAgICAgICAgICAgICAgPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48bmctdGVtcGxhdGUgI3RhYmxlSGVhZGVyQ2VsbENvbnRlbnRUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgQGlmIChjb2x1bW4/LmhlYWRlckNlbGxUZW1wbGF0ZSkge1xuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjb2x1bW4gfVwiXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3BhbiBbaWRdPVwiaWQgKyAnLWhlYWRlci1jZWxsLScgKyBjb2x1bW4/Lm5hbWVcIiBjbGFzcz1cImZkLXRhYmxlX19jZWxsLS10cnVuY2F0ZS10eHRcIj5cbiAgICAgICAgICAgIHt7IGNvbHVtbj8ubGFiZWxWYWx1ZUNoYW5nZXMkIHwgYXN5bmMgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -51,7 +51,7 @@ export class FilterRuleComponent {
|
|
|
51
51
|
this.ruleChange.emit();
|
|
52
52
|
}
|
|
53
53
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FilterRuleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: FilterRuleComponent, isStandalone: true, selector: "fdp-table-filter-rule", inputs: { rule: "rule" }, outputs: { ruleChange: "ruleChange", ruleStateChange: "ruleStateChange" }, viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <!-- Column -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.columnKey\"\n (ngModelChange)=\"rule.setColumnKey($event); _onModelChange()\"\n >\n @for (column of rule.columns; track column) {\n <li fd-option [value]=\"column.key\">{{ column.label }}</li>\n }\n </fd-select>\n </div>\n <div fdLayoutGridCol colGrow>\n <!-- Strategy -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.strategy\"\n (ngModelChange)=\"rule.setStrategy($event); _onModelChange()\"\n >\n @for (strategy of rule.strategies; track strategy) {\n <li fd-option [value]=\"strategy\">\n {{\n strategyLabels[strategy] || 'platformTable.P13FilterStrategyLabelNotDefined'\n | fdTranslate\n }}\n </li>\n }\n </fd-select>\n </div>\n </div>\n </div>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow ngForm>\n @if (rule.strategy === FILTER_STRATEGY.BETWEEN) {\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-template>\n </div>\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value2' }\"\n ></ng-template>\n </div>\n } @else {\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-template>\n </div>\n }\n\n <!-- Rule Control Based on Data Type -->\n <ng-template #ruleInputTemplate let-valueKey=\"valueKey\">\n @if (rule.dataType === DATA_TYPE.DATE) {\n <fd-date-picker\n class=\"filter-row__input\"\n type=\"single\"\n [required]=\"true\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n ></fd-date-picker>\n } @else if (rule.dataType === DATA_TYPE.BOOLEAN) {\n <fd-select\n class=\"filter-row__select\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n [required]=\"true\"\n >\n <li fd-option [value]=\"undefined\">\n {{ 'platformTable.P13FilterBooleanOptionNotDefined' | fdTranslate }}\n </li>\n <li fd-option [value]=\"true\">\n {{ 'platformTable.P13FilterBooleanOptionTrue' | fdTranslate }}\n </li>\n <li fd-option [value]=\"false\">\n {{ 'platformTable.P13FilterBooleanOptionFalse' | fdTranslate }}\n </li>\n </fd-select>\n } @else {\n <input\n type=\"text\"\n class=\"filter-row__input\"\n fd-form-control\n required\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n />\n }\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "directive", type: LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "component", type: SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "glyphFont", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DatePickerComponent, selector: "fd-date-picker", inputs: ["type", "placeholder", "inputId", "required", "customDateTimeFormat", "message", "messageTriggers", "selectedDate", "selectedMultipleDates", "selectedRangeDate", "selectedMultipleDateRanges", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "allowNull", "activeView", "placement", "appendTo", "disabled", "closeOnDateChoose", "showTodayButton", "todayButtonLabel", "previousButtonDisableFunction", "nextButtonDisableFunction", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "allowMultipleSelection", "isOpen", "inline", "ariaLabelledBy", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedMultipleDatesChange", "selectedRangeDateChange", "selectedMultipleDateRangesChange", "activeViewChange"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: FilterRuleComponent, isStandalone: true, selector: "fdp-table-filter-rule", inputs: { rule: "rule" }, outputs: { ruleChange: "ruleChange", ruleStateChange: "ruleStateChange" }, viewQueries: [{ propertyName: "ngForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>\n <!-- Column -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.columnKey\"\n (ngModelChange)=\"rule.setColumnKey($event); _onModelChange()\"\n >\n @for (column of rule.columns; track column) {\n <li fd-option [value]=\"column.key\">{{ column.label }}</li>\n }\n </fd-select>\n </div>\n <div fdLayoutGridCol colGrow>\n <!-- Strategy -->\n <fd-select\n class=\"filter-row__select\"\n [ngModel]=\"rule.strategy\"\n (ngModelChange)=\"rule.setStrategy($event); _onModelChange()\"\n >\n @for (strategy of rule.strategies; track strategy) {\n <li fd-option [value]=\"strategy\">\n {{\n strategyLabels[strategy] || 'platformTable.P13FilterStrategyLabelNotDefined'\n | fdTranslate\n }}\n </li>\n }\n </fd-select>\n </div>\n </div>\n </div>\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow ngForm>\n @if (rule.strategy === FILTER_STRATEGY.BETWEEN) {\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-template>\n </div>\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value2' }\"\n ></ng-template>\n </div>\n } @else {\n <div fdLayoutGridCol colGrow>\n <ng-template\n [ngTemplateOutlet]=\"ruleInputTemplate\"\n [ngTemplateOutletContext]=\"{ valueKey: 'value' }\"\n ></ng-template>\n </div>\n }\n\n <!-- Rule Control Based on Data Type -->\n <ng-template #ruleInputTemplate let-valueKey=\"valueKey\">\n @if (rule.dataType === DATA_TYPE.DATE) {\n <fd-date-picker\n class=\"filter-row__input\"\n type=\"single\"\n [required]=\"true\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n ></fd-date-picker>\n } @else if (rule.dataType === DATA_TYPE.BOOLEAN) {\n <fd-select\n class=\"filter-row__select\"\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n [required]=\"true\"\n >\n <li fd-option [value]=\"undefined\">\n {{ 'platformTable.P13FilterBooleanOptionNotDefined' | fdTranslate }}\n </li>\n <li fd-option [value]=\"true\">\n {{ 'platformTable.P13FilterBooleanOptionTrue' | fdTranslate }}\n </li>\n <li fd-option [value]=\"false\">\n {{ 'platformTable.P13FilterBooleanOptionFalse' | fdTranslate }}\n </li>\n </fd-select>\n } @else {\n <input\n type=\"text\"\n class=\"filter-row__input\"\n fd-form-control\n required\n [name]=\"valueKey\"\n [(ngModel)]=\"rule[valueKey]\"\n (ngModelChange)=\"_onModelChange()\"\n />\n }\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "directive", type: LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "component", type: SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "glyphFont", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DatePickerComponent, selector: "fd-date-picker", inputs: ["type", "placeholder", "inputId", "required", "customDateTimeFormat", "message", "messageTriggers", "selectedDate", "selectedMultipleDates", "selectedRangeDate", "selectedMultipleDateRanges", "startingDayOfWeek", "rangeHoverEffect", "useValidation", "allowNull", "activeView", "placement", "appendTo", "disabled", "closeOnDateChoose", "showTodayButton", "todayButtonLabel", "previousButtonDisableFunction", "nextButtonDisableFunction", "state", "buttonFocusable", "specialDaysRules", "yearGrid", "aggregatedYearGrid", "markWeekends", "showWeekNumbers", "allowMultipleSelection", "isOpen", "inline", "ariaLabelledBy", "processInputOnBlur", "preventScrollOnFocus", "mobile", "mobileConfig", "mobileLandscape", "mobilePortrait", "dateRangeFormat", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["isOpenChange", "selectedDateChange", "selectedMultipleDatesChange", "selectedRangeDateChange", "selectedMultipleDateRangesChange", "activeViewChange"] }, { kind: "component", type: FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
55
55
|
}
|
|
56
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FilterRuleComponent, decorators: [{
|
|
57
57
|
type: Component,
|
|
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
76
76
|
type: ViewChild,
|
|
77
77
|
args: [NgForm]
|
|
78
78
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJ1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90YWJsZS9jb21wb25lbnRzL3RhYmxlLXAxMy1kaWFsb2cvZmlsdGVyaW5nL2ZpbHRlci1ydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL2ZpbHRlcmluZy9maWx0ZXItcnVsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUNILGVBQWUsRUFDZixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQzNCLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFvQi9DLE1BQU0sT0FBTyxtQkFBbUI7SUFsQmhDO1FBc0JJLGlDQUFpQztRQUN2QixlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsdUNBQXVDO1FBQzdCLG9CQUFlLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEUsY0FBYztRQUNMLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRTNDLGNBQWM7UUFDTCxjQUFTLEdBQUcsd0JBQXdCLENBQUM7UUFFOUMsY0FBYztRQUNMLG1CQUFjLEdBQUcscUJBQXFCLENBQUM7UUFzQmhELGNBQWM7UUFDTixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FXL0M7SUFoQ0csY0FBYztJQUNkLElBQ0ksTUFBTSxDQUFDLE1BQWM7UUFDckIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDbkIsTUFBTSxDQUFDLGFBQWE7WUFDaEIsRUFBRSxJQUFJO1FBQ0YsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDVjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUtELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsY0FBYztJQUNkLGNBQWM7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBbERRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhOQW9CakIsTUFBTSxnRENqRXJCLG80SUFzR0EsNENEcEVRLHNCQUFzQixvRkFDdEIsc0JBQXNCLDBOQUN0QixlQUFlLHNrQkFDZixXQUFXLDRwQ0FDWCxlQUFlLHNJQUNmLGdCQUFnQixvSkFDaEIsbUJBQW1CLHlnQ0FDbkIsb0JBQW9CLDRKQUNwQixlQUFlOzsyRkFHVixtQkFBbUI7a0JBbEIvQixTQUFTOytCQUNJLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ0wsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGVBQWU7cUJBQ2xCOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLGVBQWU7c0JBQXhCLE1BQU07Z0JBYUgsTUFBTTtzQkFEVCxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBGSUxURVJfU1RSQVRFR1ksXG4gICAgRklMVEVSX1NUUkFURUdZX0xBQkVMLFxuICAgIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBMYXlvdXRHcmlkQ29sRGlyZWN0aXZlLCBMYXlvdXRHcmlkUm93RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xheW91dC1ncmlkJztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCwgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NlbGVjdCc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRmlsdGVyUnVsZSB9IGZyb20gJy4vZmlsdGVyaW5nLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGFibGUtZmlsdGVyLXJ1bGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItcnVsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTGF5b3V0R3JpZFJvd0RpcmVjdGl2ZSxcbiAgICAgICAgTGF5b3V0R3JpZENvbERpcmVjdGl2ZSxcbiAgICAgICAgU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgT3B0aW9uQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgICAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJSdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogUnVsZSB0byBiZSBkaXNwbGF5ZWQgKiovXG4gICAgQElucHV0KCkgcnVsZTogRmlsdGVyUnVsZTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIHJ1bGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKSBydWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBydWxlIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KCkgcnVsZVN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IEZJTFRFUl9TVFJBVEVHWSA9IEZJTFRFUl9TVFJBVEVHWTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgREFUQV9UWVBFID0gRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBzdHJhdGVneUxhYmVscyA9IEZJTFRFUl9TVFJBVEVHWV9MQUJFTDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChOZ0Zvcm0pXG4gICAgc2V0IG5nRm9ybShuZ0Zvcm06IE5nRm9ybSkge1xuICAgICAgICBpZiAoIW5nRm9ybSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgbmdGb3JtLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgICAgICAgICA/LnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIC8vIFNraXAgZmlyc3QgdGhhdCB0cmlnZ2VycyBvbiBpbml0aWFsIHBoYXNlXG4gICAgICAgICAgICAgICAgICAgIHNraXAoMSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhIW5nRm9ybS52YWxpZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ydWxlLnNldFZhbGlkKGlzVmFsaWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJ1bGVTdGF0ZUNoYW5nZS5lbWl0KGlzVmFsaWQpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTW9kZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZUNoYW5nZS5lbWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdiBmZExheW91dEdyaWRSb3c+XG4gICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3c+XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICAgICAgICAgIDwhLS0gQ29sdW1uIC0tPlxuICAgICAgICAgICAgICAgIDxmZC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93X19zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJydWxlLmNvbHVtbktleVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJ1bGUuc2V0Q29sdW1uS2V5KCRldmVudCk7IF9vbk1vZGVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIHJ1bGUuY29sdW1uczsgdHJhY2sgY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtb3B0aW9uIFt2YWx1ZV09XCJjb2x1bW4ua2V5XCI+e3sgY29sdW1uLmxhYmVsIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZmQtc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICAgICAgICAgIDwhLS0gU3RyYXRlZ3kgLS0+XG4gICAgICAgICAgICAgICAgPGZkLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1yb3dfX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInJ1bGUuc3RyYXRlZ3lcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJydWxlLnNldFN0cmF0ZWd5KCRldmVudCk7IF9vbk1vZGVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoc3RyYXRlZ3kgb2YgcnVsZS5zdHJhdGVnaWVzOyB0cmFjayBzdHJhdGVneSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwic3RyYXRlZ3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneUxhYmVsc1tzdHJhdGVneV0gfHwgJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbE5vdERlZmluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZkLXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdyBuZ0Zvcm0+XG4gICAgICAgICAgICBAaWYgKHJ1bGUuc3RyYXRlZ3kgPT09IEZJTFRFUl9TVFJBVEVHWS5CRVRXRUVOKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlMicgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gUnVsZSBDb250cm9sIEJhc2VkIG9uIERhdGEgVHlwZSAtLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcnVsZUlucHV0VGVtcGxhdGUgbGV0LXZhbHVlS2V5PVwidmFsdWVLZXlcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHJ1bGUuZGF0YVR5cGUgPT09IERBVEFfVFlQRS5EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93X19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2luZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInZhbHVlS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicnVsZVt2YWx1ZUtleV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHJ1bGUuZGF0YVR5cGUgPT09IERBVEFfVFlQRS5CT09MRUFOKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd19fc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInZhbHVlS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicnVsZVt2YWx1ZUtleV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1vcHRpb24gW3ZhbHVlXT1cInVuZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckJvb2xlYW5PcHRpb25Ob3REZWZpbmVkJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckJvb2xlYW5PcHRpb25UcnVlJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJCb29sZWFuT3B0aW9uRmFsc2UnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtc2VsZWN0PlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd19faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwidmFsdWVLZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlW3ZhbHVlS2V5XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJfb25Nb2RlbENoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJ1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90YWJsZS9jb21wb25lbnRzL3RhYmxlLXAxMy1kaWFsb2cvZmlsdGVyaW5nL2ZpbHRlci1ydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGFibGUvY29tcG9uZW50cy90YWJsZS1wMTMtZGlhbG9nL2ZpbHRlcmluZy9maWx0ZXItcnVsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUNILGVBQWUsRUFDZixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQzNCLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFvQi9DLE1BQU0sT0FBTyxtQkFBbUI7SUFsQmhDO1FBc0JJLGlDQUFpQztRQUN2QixlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsdUNBQXVDO1FBQzdCLG9CQUFlLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEUsY0FBYztRQUNMLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRTNDLGNBQWM7UUFDTCxjQUFTLEdBQUcsd0JBQXdCLENBQUM7UUFFOUMsY0FBYztRQUNMLG1CQUFjLEdBQUcscUJBQXFCLENBQUM7UUFzQmhELGNBQWM7UUFDTixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FXL0M7SUFoQ0csY0FBYztJQUNkLElBQ0ksTUFBTSxDQUFDLE1BQWM7UUFDckIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDbkIsTUFBTSxDQUFDLGFBQWE7WUFDaEIsRUFBRSxJQUFJO1FBQ0YsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDVjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUtELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsY0FBYztJQUNkLGNBQWM7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBbERRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhOQW9CakIsTUFBTSxnRENqRXJCLG80SUFzR0EsNENEcEVRLHNCQUFzQixvRkFDdEIsc0JBQXNCLDBOQUN0QixlQUFlLHNrQkFDZixXQUFXLDRwQ0FDWCxlQUFlLHNJQUNmLGdCQUFnQixvSkFDaEIsbUJBQW1CLDRoQ0FDbkIsb0JBQW9CLDRKQUNwQixlQUFlOzsyRkFHVixtQkFBbUI7a0JBbEIvQixTQUFTOytCQUNJLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ0wsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGVBQWU7cUJBQ2xCOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLGVBQWU7c0JBQXhCLE1BQU07Z0JBYUgsTUFBTTtzQkFEVCxTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBGSUxURVJfU1RSQVRFR1ksXG4gICAgRklMVEVSX1NUUkFURUdZX0xBQkVMLFxuICAgIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlLWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBMYXlvdXRHcmlkQ29sRGlyZWN0aXZlLCBMYXlvdXRHcmlkUm93RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xheW91dC1ncmlkJztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCwgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NlbGVjdCc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRmlsdGVyUnVsZSB9IGZyb20gJy4vZmlsdGVyaW5nLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGFibGUtZmlsdGVyLXJ1bGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItcnVsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTGF5b3V0R3JpZFJvd0RpcmVjdGl2ZSxcbiAgICAgICAgTGF5b3V0R3JpZENvbERpcmVjdGl2ZSxcbiAgICAgICAgU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgT3B0aW9uQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgICAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJSdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogUnVsZSB0byBiZSBkaXNwbGF5ZWQgKiovXG4gICAgQElucHV0KCkgcnVsZTogRmlsdGVyUnVsZTtcblxuICAgIC8qKiBFbWl0cyB3aGVuIHJ1bGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKSBydWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBydWxlIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KCkgcnVsZVN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IEZJTFRFUl9TVFJBVEVHWSA9IEZJTFRFUl9TVFJBVEVHWTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgREFUQV9UWVBFID0gRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBzdHJhdGVneUxhYmVscyA9IEZJTFRFUl9TVFJBVEVHWV9MQUJFTDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChOZ0Zvcm0pXG4gICAgc2V0IG5nRm9ybShuZ0Zvcm06IE5nRm9ybSkge1xuICAgICAgICBpZiAoIW5nRm9ybSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgbmdGb3JtLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgICAgICAgICA/LnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIC8vIFNraXAgZmlyc3QgdGhhdCB0cmlnZ2VycyBvbiBpbml0aWFsIHBoYXNlXG4gICAgICAgICAgICAgICAgICAgIHNraXAoMSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhIW5nRm9ybS52YWxpZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ydWxlLnNldFZhbGlkKGlzVmFsaWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJ1bGVTdGF0ZUNoYW5nZS5lbWl0KGlzVmFsaWQpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTW9kZWxDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZUNoYW5nZS5lbWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdiBmZExheW91dEdyaWRSb3c+XG4gICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgPGRpdiBmZExheW91dEdyaWRSb3c+XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICAgICAgICAgIDwhLS0gQ29sdW1uIC0tPlxuICAgICAgICAgICAgICAgIDxmZC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93X19zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJydWxlLmNvbHVtbktleVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJ1bGUuc2V0Q29sdW1uS2V5KCRldmVudCk7IF9vbk1vZGVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIHJ1bGUuY29sdW1uczsgdHJhY2sgY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtb3B0aW9uIFt2YWx1ZV09XCJjb2x1bW4ua2V5XCI+e3sgY29sdW1uLmxhYmVsIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZmQtc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICAgICAgICAgIDwhLS0gU3RyYXRlZ3kgLS0+XG4gICAgICAgICAgICAgICAgPGZkLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1yb3dfX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInJ1bGUuc3RyYXRlZ3lcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJydWxlLnNldFN0cmF0ZWd5KCRldmVudCk7IF9vbk1vZGVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoc3RyYXRlZ3kgb2YgcnVsZS5zdHJhdGVnaWVzOyB0cmFjayBzdHJhdGVneSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwic3RyYXRlZ3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneUxhYmVsc1tzdHJhdGVneV0gfHwgJ3BsYXRmb3JtVGFibGUuUDEzRmlsdGVyU3RyYXRlZ3lMYWJlbE5vdERlZmluZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZkVHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZkLXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGZkTGF5b3V0R3JpZENvbCBjb2xHcm93PlxuICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdyBuZ0Zvcm0+XG4gICAgICAgICAgICBAaWYgKHJ1bGUuc3RyYXRlZ3kgPT09IEZJTFRFUl9TVFJBVEVHWS5CRVRXRUVOKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlMicgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdiBmZExheW91dEdyaWRDb2wgY29sR3Jvdz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJydWxlSW5wdXRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB2YWx1ZUtleTogJ3ZhbHVlJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gUnVsZSBDb250cm9sIEJhc2VkIG9uIERhdGEgVHlwZSAtLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcnVsZUlucHV0VGVtcGxhdGUgbGV0LXZhbHVlS2V5PVwidmFsdWVLZXlcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHJ1bGUuZGF0YVR5cGUgPT09IERBVEFfVFlQRS5EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItcm93X19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2luZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInZhbHVlS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicnVsZVt2YWx1ZUtleV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHJ1bGUuZGF0YVR5cGUgPT09IERBVEFfVFlQRS5CT09MRUFOKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd19fc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInZhbHVlS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicnVsZVt2YWx1ZUtleV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uTW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1vcHRpb24gW3ZhbHVlXT1cInVuZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckJvb2xlYW5PcHRpb25Ob3REZWZpbmVkJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVRhYmxlLlAxM0ZpbHRlckJvb2xlYW5PcHRpb25UcnVlJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1UYWJsZS5QMTNGaWx0ZXJCb29sZWFuT3B0aW9uRmFsc2UnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvZmQtc2VsZWN0PlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd19faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwidmFsdWVLZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlW3ZhbHVlS2V5XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJfb25Nb2RlbENoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import { Subscription } from 'rxjs';
|
|
3
3
|
import { filter } from 'rxjs/operators';
|
|
4
4
|
import { DialogService } from '@fundamental-ngx/core/dialog';
|
|
@@ -54,6 +54,8 @@ export class TableP13DialogComponent {
|
|
|
54
54
|
/** @hidden */
|
|
55
55
|
constructor(_dialogService) {
|
|
56
56
|
this._dialogService = _dialogService;
|
|
57
|
+
/** Event emitted when dialog is closed. */
|
|
58
|
+
this.dialogClosed = new EventEmitter();
|
|
57
59
|
/** @hidden */
|
|
58
60
|
this._subscriptions = new Subscription();
|
|
59
61
|
/** @hidden */
|
|
@@ -165,6 +167,7 @@ export class TableP13DialogComponent {
|
|
|
165
167
|
this._subscriptions.add(this._dialogRef.afterClosed
|
|
166
168
|
.pipe(filter((result) => !!result))
|
|
167
169
|
.subscribe(({ visibleColumns: result }) => {
|
|
170
|
+
this.dialogClosed.emit(result);
|
|
168
171
|
this._applyColumns(result);
|
|
169
172
|
}));
|
|
170
173
|
}
|
|
@@ -228,13 +231,15 @@ export class TableP13DialogComponent {
|
|
|
228
231
|
this._tableSubscriptions = new Subscription();
|
|
229
232
|
}
|
|
230
233
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TableP13DialogComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
231
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: TableP13DialogComponent, isStandalone: true, selector: "fdp-table-p13-dialog", inputs: { table: "table" }, queries: [{ propertyName: "sort", first: true, predicate: TableP13SortComponent, descendants: true }, { propertyName: "filter", first: true, predicate: TableP13FilterComponent, descendants: true }, { propertyName: "group", first: true, predicate: TableP13GroupComponent, descendants: true }, { propertyName: "columns", first: true, predicate: TableP13ColumnsComponent, descendants: true }], ngImport: i0, template: '', isInline: true, styles: [":host{z-index:999}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
234
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: TableP13DialogComponent, isStandalone: true, selector: "fdp-table-p13-dialog", inputs: { table: "table" }, outputs: { dialogClosed: "dialogClosed" }, queries: [{ propertyName: "sort", first: true, predicate: TableP13SortComponent, descendants: true }, { propertyName: "filter", first: true, predicate: TableP13FilterComponent, descendants: true }, { propertyName: "group", first: true, predicate: TableP13GroupComponent, descendants: true }, { propertyName: "columns", first: true, predicate: TableP13ColumnsComponent, descendants: true }], ngImport: i0, template: '', isInline: true, styles: [":host{z-index:999}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
232
235
|
}
|
|
233
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TableP13DialogComponent, decorators: [{
|
|
234
237
|
type: Component,
|
|
235
238
|
args: [{ selector: 'fdp-table-p13-dialog', template: '', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [":host{z-index:999}\n"] }]
|
|
236
239
|
}], ctorParameters: () => [{ type: i1.DialogService }], propDecorators: { table: [{
|
|
237
240
|
type: Input
|
|
241
|
+
}], dialogClosed: [{
|
|
242
|
+
type: Output
|
|
238
243
|
}], sort: [{
|
|
239
244
|
type: ContentChild,
|
|
240
245
|
args: [TableP13SortComponent]
|
|
@@ -248,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
248
253
|
type: ContentChild,
|
|
249
254
|
args: [TableP13ColumnsComponent]
|
|
250
255
|
}] } });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcDEzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcDEzLWRpYWxvZy90YWJsZS1wMTMtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUEyQixhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV0RixPQUFPLEVBSUgsS0FBSyxFQUlSLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUE4Qyx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BILE9BQU8sRUFBNEMsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4SCxPQUFPLEVBQTBDLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkgsT0FBTyxFQUFFLHlCQUF5QixFQUF3QyxNQUFNLDZCQUE2QixDQUFDOzs7QUFFOUcsTUFBTSxZQUFZLEdBQWlCO0lBQy9CLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsZUFBZSxFQUFFLElBQUk7SUFDckIsUUFBUSxFQUFFLE9BQU87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LENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsY0FBYztJQUNOLGNBQWMsQ0FBQyxlQUFrQztRQUNyRCxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsY0FBYztJQUNOLGFBQWEsQ0FBQyxPQUFpQjtRQUNuQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztJQUNOLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbEQsQ0FBQzs4R0E1UVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsOElBV2xCLHFCQUFxQix5RUFJckIsdUJBQXVCLHdFQUl2QixzQkFBc0IsMEVBSXRCLHdCQUF3QixnREFsQzVCLEVBQUU7OzJGQVdILHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDSSxzQkFBc0IsWUFDdEIsRUFBRSxtQkFRSyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUk7a0ZBS1osS0FBSztzQkFEUixLQUFLO2dCQVVOLElBQUk7c0JBREgsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBS25DLE1BQU07c0JBREwsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBS3JDLEtBQUs7c0JBREosWUFBWTt1QkFBQyxzQkFBc0I7Z0JBS3BDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEaWFsb2dDb25maWcsIERpYWxvZ1JlZiwgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuXG5pbXBvcnQge1xuICAgIENvbGxlY3Rpb25GaWx0ZXIsXG4gICAgQ29sbGVjdGlvbkdyb3VwLFxuICAgIENvbGxlY3Rpb25Tb3J0LFxuICAgIFRhYmxlLFxuICAgIFRhYmxlQ29sdW1uLFxuICAgIFRhYmxlRGlhbG9nQ29tbW9uRGF0YSxcbiAgICBUYWJsZVN0YXRlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5cbmltcG9ydCB7IFRhYmxlUDEzQ29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtcDEzLWNvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUDEzRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wMTMtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVAxM0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wMTMtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUDEzU29ydENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtcDEzLXNvcnQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ29sdW1uc0RpYWxvZ0RhdGEsIENvbHVtbnNEaWFsb2dSZXN1bHREYXRhLCBQMTNDb2x1bW5zRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW5zL2NvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlckRpYWxvZ0RhdGEsIEZpbHRlckRpYWxvZ1Jlc3VsdERhdGEsIFAxM0ZpbHRlcmluZ0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyaW5nL2ZpbHRlcmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JvdXBEaWFsb2dEYXRhLCBHcm91cERpYWxvZ1Jlc3VsdERhdGEsIFAxM0dyb3VwaW5nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9ncm91cGluZy9ncm91cGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUDEzU29ydGluZ0RpYWxvZ0NvbXBvbmVudCwgU29ydERpYWxvZ0RhdGEsIFNvcnREaWFsb2dSZXN1bHREYXRhIH0gZnJvbSAnLi9zb3J0aW5nL3NvcnRpbmcuY29tcG9uZW50JztcblxuY29uc3QgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcgPSB7XG4gICAgcmVzcG9uc2l2ZVBhZGRpbmc6IHRydWUsXG4gICAgdmVydGljYWxQYWRkaW5nOiB0cnVlLFxuICAgIG1pbldpZHRoOiAnMzByZW0nLFxuICAgIC8qKiA4OHB4IGl0J3MgdGhlIGhlYWRlciArIGZvb3RlciBoZWlnaHQgKi9cbiAgICBib2R5TWluSGVpZ2h0OiAnY2FsYyg1MHZoIC0gODhweCknXG59O1xuXG4vKipcbiAqIFZpZXcgc2V0dGluZ3MgZGlhbG9nIGNvbXBvbmVudC5cbiAqXG4gKiBVc2VkIHRvIGxpbmsgdmlldyBzZXR0aW5ncyBmaWx0ZXJzIG9wdGlvbnMgdG8gdGhlIGdyaWQgdGFibGUuXG4gKlxuICogYGBgaHRtbFxuICogPGZkcC10YWJsZSAjbXlUYWJsZT48L2ZkcC10YWJsZT5cbiAqIC4uLlxuICogPGZkcC10YWJsZS1wMTMtZGlhbG9nIFt0YWJsZV09XCJteVRhYmxlXCI+XG4gKiAgIDwhLS0gU29ydCBQYW5lbCAtLT5cbiAqICAgPGZkcC10YWJsZS1wMTMtc29ydD48L2ZkcC10YWJsZS1wMTMtc29ydD5cbiAqXG4gKiAgIDwhLS0gRmlsdGVyIFBhbmVsIC0tPlxuICogICA8ZmRwLXRhYmxlLXAxMy1maWx0ZXI+PC9mZHAtdGFibGUtcDEzLWZpbHRlcj5cbiAqXG4gKiAgIDwhLS0gR3JvdXAgUGFuZWwgLS0+XG4gKiAgIDxmZHAtdGFibGUtcDEzLWdyb3VwPjwvZmRwLXRhYmxlLXAxMy1ncm91cD5cbiAqXG4gKiAgIDwhLS0gQ29sdW1ucyBQYW5lbCAtLT5cbiAqICAgPGZkcC10YWJsZS1wMTMtY29sdW1ucz48L2ZkcC10YWJsZS1wMTMtY29sdW1ucz5cbiAqIDwvZmRwLXRhYmxlLXAxMy1kaWFsb2c+XG4gKiBgYGBcbiAqICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1wMTMtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVQMTNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGFibGUgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRhYmxlKHRhYmxlOiBUYWJsZSkge1xuICAgICAgICB0aGlzLl9zZXRUYWJsZSh0YWJsZSk7XG4gICAgfVxuICAgIGdldCB0YWJsZSgpOiBUYWJsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGFibGVQMTNTb3J0Q29tcG9uZW50KVxuICAgIHNvcnQ6IFRhYmxlUDEzU29ydENvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUYWJsZVAxM0ZpbHRlckNvbXBvbmVudClcbiAgICBmaWx0ZXI6IFRhYmxlUDEzRmlsdGVyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRhYmxlUDEzR3JvdXBDb21wb25lbnQpXG4gICAgZ3JvdXA6IFRhYmxlUDEzR3JvdXBDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGFibGVQMTNDb2x1bW5zQ29tcG9uZW50KVxuICAgIGNvbHVtbnM6IFRhYmxlUDEzQ29sdW1uc0NvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RhYmxlOiBUYWJsZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2RpYWxvZ1JlZjogRGlhbG9nUmVmPFRhYmxlRGlhbG9nQ29tbW9uRGF0YSwgYW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFibGVTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUZyb21UYWJsZSgpO1xuICAgIH1cblxuICAgIC8qKiBPcGVuIFNvcnQgU2V0dGluZ3MgRGlhbG9nICovXG4gICAgc2hvd1NvcnRpbmdTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9nZXRUYWJsZVN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9nZXRUYWJsZUNvbHVtbnMoKS5maWx0ZXIoKHsgc29ydGFibGUgfSkgPT4gc29ydGFibGUpO1xuICAgICAgICBjb25zdCBzb3J0QnkgPSBzdGF0ZS5zb3J0Qnk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IFNvcnREaWFsb2dEYXRhID0ge1xuICAgICAgICAgICAgY29sdW1uczogY29sdW1ucy5tYXAoKHsgbGFiZWwsIGtleSB9KSA9PiAoeyBsYWJlbCwga2V5IH0pKSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25Tb3J0OiBzb3J0QnlcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBkaXNtaXNzIGFueSBvcGVuIGRpYWxvZywgYmVmb3JlIG9wZW5pbmcgYSBuZXcgb25lXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBQMTNTb3J0aW5nRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy50YWJsZS5pbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChyZXN1bHQpID0+ICEhcmVzdWx0KSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh7IGNvbGxlY3Rpb25Tb3J0IH06IFNvcnREaWFsb2dSZXN1bHREYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGx5U29ydGluZyhjb2xsZWN0aW9uU29ydCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbiBGaWx0ZXJpbmcgU2V0dGluZ3MgRGlhbG9nICovXG4gICAgc2hvd0ZpbHRlcmluZ1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2dldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2dldFRhYmxlQ29sdW1ucygpO1xuICAgICAgICBjb25zdCBmaWx0ZXJCeSA9IHN0YXRlPy5maWx0ZXJCeTtcbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YTogRmlsdGVyRGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMubWFwKCh7IGxhYmVsLCBrZXksIGRhdGFUeXBlLCBmaWx0ZXJhYmxlIH0pID0+ICh7IGxhYmVsLCBrZXksIGRhdGFUeXBlLCBmaWx0ZXJhYmxlIH0pKSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25GaWx0ZXI6IGZpbHRlckJ5XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyICYmIHRoaXMuZmlsdGVyLnZhbGlkYXRvcikge1xuICAgICAgICAgICAgZGlhbG9nRGF0YS52YWxpZGF0b3IgPSB0aGlzLmZpbHRlci52YWxpZGF0b3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkaXNtaXNzIGFueSBvcGVuIGRpYWxvZywgYmVmb3JlIG9wZW5pbmcgYSBuZXcgb25lXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBQMTNGaWx0ZXJpbmdEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgICAgIGRpc2FibGVQYWRkaW5nczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzUwcmVtJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy50YWJsZS5pbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChyZXN1bHQpID0+ICEhcmVzdWx0KSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh7IGNvbGxlY3Rpb25GaWx0ZXIgfTogRmlsdGVyRGlhbG9nUmVzdWx0RGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUZpbHRlcmluZyhjb2xsZWN0aW9uRmlsdGVyKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBPcGVuIEdyb3VwaW5nIFNldHRpbmdzIERpYWxvZyAqL1xuICAgIHNob3dHcm91cGluZ1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2dldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2dldFRhYmxlQ29sdW1ucygpO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1ucyA9IHN0YXRlLmNvbHVtbnM7XG4gICAgICAgIGNvbnN0IGdyb3VwQnkgPSBzdGF0ZS5ncm91cEJ5O1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBHcm91cERpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zXG4gICAgICAgICAgICAgICAgLy8gV2UgY2FuIGdyb3VwIGJ5IHZpc2libGUgY29sdW1ucyBvbmx5XG4gICAgICAgICAgICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+IHZpc2libGVDb2x1bW5zLmluY2x1ZGVzKG5hbWUpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHsgZ3JvdXBhYmxlIH0pID0+IGdyb3VwYWJsZSlcbiAgICAgICAgICAgICAgICAubWFwKCh7IGxhYmVsLCBrZXkgfSkgPT4gKHsgbGFiZWwsIGtleSB9KSksXG4gICAgICAgICAgICBjb2xsZWN0aW9uR3JvdXA6IGdyb3VwQnlcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBkaXNtaXNzIGFueSBvcGVuIGRpYWxvZywgYmVmb3JlIG9wZW5pbmcgYSBuZXcgb25lXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBQMTNHcm91cGluZ0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5qZWN0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoeyBjb2xsZWN0aW9uR3JvdXAgfTogR3JvdXBEaWFsb2dSZXN1bHREYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGx5R3JvdXBpbmcoY29sbGVjdGlvbkdyb3VwKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBPcGVuIENvbHVtbnMgU2V0dGluZ3MgRGlhbG9nICovXG4gICAgc2hvd0NvbHVtbnNTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9nZXRUYWJsZVN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9nZXRUYWJsZUNvbHVtbnMoKTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSBzdGF0ZS5jb2x1bW5zO1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBDb2x1bW5zRGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICAgIGF2YWlsYWJsZUNvbHVtbnM6IGNvbHVtbnMubWFwKCh7IGxhYmVsLCBuYW1lIH0pID0+ICh7IGxhYmVsLCBrZXk6IG5hbWUgfSkpLFxuICAgICAgICAgICAgdmlzaWJsZUNvbHVtbnNcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBkaXNtaXNzIGFueSBvcGVuIGRpYWxvZywgYmVmb3JlIG9wZW5pbmcgYSBuZXcgb25lXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBQMTNDb2x1bW5zRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlUGFkZGluZ3M6IHRydWUsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICczNXJlbScsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudGFibGUuaW5qZWN0b3JcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigocmVzdWx0KSA9PiAhIXJlc3VsdCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoeyB2aXNpYmxlQ29sdW1uczogcmVzdWx0IH06IENvbHVtbnNEaWFsb2dSZXN1bHREYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGx5Q29sdW1ucyhyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRUYWJsZSh0YWJsZTogVGFibGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUgPSB0YWJsZTtcblxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUZyb21UYWJsZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLl90YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaWJlVG9UYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVUb1RhYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub1RhYmxlVHJpZ2dlcnNUb09wZW5EaWFsb2dzKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvVGFibGVDb2x1bW5zKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub1RhYmxlVHJpZ2dlcnNUb09wZW5EaWFsb2dzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3RhYmxlLm9wZW5UYWJsZVNvcnRTZXR0aW5ncy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93U29ydGluZ1NldHRpbmdzKCkpKTtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLmFkZCh0aGlzLl90YWJsZS5vcGVuVGFibGVGaWx0ZXJTZXR0aW5ncy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93RmlsdGVyaW5nU2V0dGluZ3MoKSkpO1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3RhYmxlLm9wZW5UYWJsZUdyb3VwU2V0dGluZ3Muc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd0dyb3VwaW5nU2V0dGluZ3MoKSkpO1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3RhYmxlLm9wZW5UYWJsZUNvbHVtblNldHRpbmdzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3dDb2x1bW5zU2V0dGluZ3MoKSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9UYWJsZUNvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlU3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl90YWJsZS50YWJsZUNvbHVtbnNTdHJlYW0uc3Vic2NyaWJlKChjb2x1bW5zOiBUYWJsZUNvbHVtbltdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGU/LnNob3dTb3J0U2V0dGluZ3NJblRvb2xiYXIoY29sdW1ucy5zb21lKCh7IHNvcnRhYmxlIH0pID0+IHNvcnRhYmxlKSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZT8uc2hvd0dyb3VwU2V0dGluZ3NJblRvb2xiYXIoY29sdW1ucy5zb21lKCh7IGdyb3VwYWJsZSB9KSA9PiBncm91cGFibGUpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zaG93Q29sdW1uU2V0dGluZ3NJblRvb2xiYXIoY29sdW1ucy5sZW5ndGggPiAwKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zaG93RmlsdGVyU2V0dGluZ3NJblRvb2xiYXIoY29sdW1ucy5zb21lKCh7IGZpbHRlcmFibGUgfSkgPT4gZmlsdGVyYWJsZSkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGU/LnNldEhlYWRlckNvbHVtbkZpbHRlcmluZ0Rpc2FibGVkKGNvbHVtbnMuc29tZSgoeyBmaWx0ZXJhYmxlIH0pID0+IGZpbHRlcmFibGUpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRUYWJsZVN0YXRlKCk6IFRhYmxlU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGU/LmdldFRhYmxlU3RhdGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFRhYmxlQ29sdW1ucygpOiBUYWJsZUNvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlPy5nZXRUYWJsZUNvbHVtbnMoKSB8fCBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5U29ydGluZyhjb2xsZWN0aW9uU29ydDogQ29sbGVjdGlvblNvcnRbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZT8uc29ydChjb2xsZWN0aW9uU29ydCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseUZpbHRlcmluZyhmaWx0ZXJzOiBDb2xsZWN0aW9uRmlsdGVyW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGU/LmZpbHRlcihmaWx0ZXJzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5R3JvdXBpbmcoY29sbGVjdGlvbkdyb3VwOiBDb2xsZWN0aW9uR3JvdXBbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZT8uZ3JvdXAoY29sbGVjdGlvbkdyb3VwKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5Q29sdW1ucyhjb2x1bW5zOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZT8uc2V0Q29sdW1ucyhjb2x1bW5zKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlRnJvbVRhYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIH1cbn1cbiJdfQ==
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcDEzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcDEzLWRpYWxvZy90YWJsZS1wMTMtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUEyQixhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV0RixPQUFPLEVBSUgsS0FBSyxFQUlSLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUE4Qyx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BILE9BQU8sRUFBNEMsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4SCxPQUFPLEVBQTBDLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkgsT0FBTyxFQUFFLHlCQUF5QixFQUF3QyxNQUFNLDZCQUE2QixDQUFDOzs7QUFFOUcsTUFBTSxZQUFZLEdBQWlCO0lBQy9CLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsZUFBZSxFQUFFLElBQUk7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SSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWM7SUFDTixlQUFlLENBQUMsT0FBMkI7UUFDL0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWM7SUFDTixjQUFjLENBQUMsZUFBa0M7UUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7SUFDTixhQUFhLENBQUMsT0FBaUI7UUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWM7SUFDTixxQkFBcUI7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7OEdBalJRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHlMQWVsQixxQkFBcUIseUVBSXJCLHVCQUF1Qix3RUFJdkIsc0JBQXNCLDBFQUl0Qix3QkFBd0IsZ0RBdEM1QixFQUFFOzsyRkFXSCx1QkFBdUI7a0JBYm5DLFNBQVM7K0JBQ0ksc0JBQXNCLFlBQ3RCLEVBQUUsbUJBUUssdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJO2tGQUtaLEtBQUs7c0JBRFIsS0FBSztnQkFVTixZQUFZO3NCQURYLE1BQU07Z0JBS1AsSUFBSTtzQkFESCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFLbkMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFLckMsS0FBSztzQkFESixZQUFZO3VCQUFDLHNCQUFzQjtnQkFLcEMsT0FBTztzQkFETixZQUFZO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEaWFsb2dDb25maWcsIERpYWxvZ1JlZiwgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuXG5pbXBvcnQge1xuICAgIENvbGxlY3Rpb25GaWx0ZXIsXG4gICAgQ29sbGVjdGlvbkdyb3VwLFxuICAgIENvbGxlY3Rpb25Tb3J0LFxuICAgIFRhYmxlLFxuICAgIFRhYmxlQ29sdW1uLFxuICAgIFRhYmxlRGlhbG9nQ29tbW9uRGF0YSxcbiAgICBUYWJsZVN0YXRlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5cbmltcG9ydCB7IFRhYmxlUDEzQ29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtcDEzLWNvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUDEzRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wMTMtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVAxM0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1wMTMtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUDEzU29ydENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtcDEzLXNvcnQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ29sdW1uc0RpYWxvZ0RhdGEsIENvbHVtbnNEaWFsb2dSZXN1bHREYXRhLCBQMTNDb2x1bW5zRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW5zL2NvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlckRpYWxvZ0RhdGEsIEZpbHRlckRpYWxvZ1Jlc3VsdERhdGEsIFAxM0ZpbHRlcmluZ0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyaW5nL2ZpbHRlcmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JvdXBEaWFsb2dEYXRhLCBHcm91cERpYWxvZ1Jlc3VsdERhdGEsIFAxM0dyb3VwaW5nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9ncm91cGluZy9ncm91cGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUDEzU29ydGluZ0RpYWxvZ0NvbXBvbmVudCwgU29ydERpYWxvZ0RhdGEsIFNvcnREaWFsb2dSZXN1bHREYXRhIH0gZnJvbSAnLi9zb3J0aW5nL3NvcnRpbmcuY29tcG9uZW50JztcblxuY29uc3QgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcgPSB7XG4gICAgcmVzcG9uc2l2ZVBhZGRpbmc6IHRydWUsXG4gICAgdmVydGljYWxQYWRkaW5nOiB0cnVlLFxuICAgIG1pbldpZHRoOiAnMzByZW0nLFxuICAgIC8qKiA4OHB4IGl0J3MgdGhlIGhlYWRlciArIGZvb3RlciBoZWlnaHQgKi9cbiAgICBib2R5TWluSGVpZ2h0OiAnY2FsYyg1MHZoIC0gODhweCknXG59O1xuXG4vKipcbiAqIFZpZXcgc2V0dGluZ3MgZGlhbG9nIGNvbXBvbmVudC5cbiAqXG4gKiBVc2VkIHRvIGxpbmsgdmlldyBzZXR0aW5ncyBmaWx0ZXJzIG9wdGlvbnMgdG8gdGhlIGdyaWQgdGFibGUuXG4gKlxuICogYGBgaHRtbFxuICogPGZkcC10YWJsZSAjbXlUYWJsZT48L2ZkcC10YWJsZT5cbiAqIC4uLlxuICogPGZkcC10YWJsZS1wMTMtZGlhbG9nIFt0YWJsZV09XCJteVRhYmxlXCI+XG4gKiAgIDwhLS0gU29ydCBQYW5lbCAtLT5cbiAqICAgPGZkcC10YWJsZS1wMTMtc29ydD48L2ZkcC10YWJsZS1wMTMtc29ydD5cbiAqXG4gKiAgIDwhLS0gRmlsdGVyIFBhbmVsIC0tPlxuICogICA8ZmRwLXRhYmxlLXAxMy1maWx0ZXI+PC9mZHAtdGFibGUtcDEzLWZpbHRlcj5cbiAqXG4gKiAgIDwhLS0gR3JvdXAgUGFuZWwgLS0+XG4gKiAgIDxmZHAtdGFibGUtcDEzLWdyb3VwPjwvZmRwLXRhYmxlLXAxMy1ncm91cD5cbiAqXG4gKiAgIDwhLS0gQ29sdW1ucyBQYW5lbCAtLT5cbiAqICAgPGZkcC10YWJsZS1wMTMtY29sdW1ucz48L2ZkcC10YWJsZS1wMTMtY29sdW1ucz5cbiAqIDwvZmRwLXRhYmxlLXAxMy1kaWFsb2c+XG4gKiBgYGBcbiAqICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS1wMTMtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVQMTNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGFibGUgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRhYmxlKHRhYmxlOiBUYWJsZSkge1xuICAgICAgICB0aGlzLl9zZXRUYWJsZSh0YWJsZSk7XG4gICAgfVxuICAgIGdldCB0YWJsZSgpOiBUYWJsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZTtcbiAgICB9XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGRpYWxvZyBpcyBjbG9zZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgZGlhbG9nQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUYWJsZVAxM1NvcnRDb21wb25lbnQpXG4gICAgc29ydDogVGFibGVQMTNTb3J0Q29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRhYmxlUDEzRmlsdGVyQ29tcG9uZW50KVxuICAgIGZpbHRlcjogVGFibGVQMTNGaWx0ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGFibGVQMTNHcm91cENvbXBvbmVudClcbiAgICBncm91cDogVGFibGVQMTNHcm91cENvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUYWJsZVAxM0NvbHVtbnNDb21wb25lbnQpXG4gICAgY29sdW1uczogVGFibGVQMTNDb2x1bW5zQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdGFibGU6IFRhYmxlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZGlhbG9nUmVmOiBEaWFsb2dSZWY8VGFibGVEaWFsb2dDb21tb25EYXRhLCBhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJsZVN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW4gU29ydCBTZXR0aW5ncyBEaWFsb2cgKi9cbiAgICBzaG93U29ydGluZ1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2dldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2dldFRhYmxlQ29sdW1ucygpLmZpbHRlcigoeyBzb3J0YWJsZSB9KSA9PiBzb3J0YWJsZSk7XG4gICAgICAgIGNvbnN0IHNvcnRCeSA9IHN0YXRlLnNvcnRCeTtcbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YTogU29ydERpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLm1hcCgoeyBsYWJlbCwga2V5IH0pID0+ICh7IGxhYmVsLCBrZXkgfSkpLFxuICAgICAgICAgICAgY29sbGVjdGlvblNvcnQ6IHNvcnRCeVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGRpc21pc3MgYW55IG9wZW4gZGlhbG9nLCBiZWZvcmUgb3BlbmluZyBhIG5ldyBvbmVcbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihcbiAgICAgICAgICAgIFAxM1NvcnRpbmdEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRpYWxvZ0RhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmluamVjdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWRcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKHJlc3VsdCkgPT4gISFyZXN1bHQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgY29sbGVjdGlvblNvcnQgfTogU29ydERpYWxvZ1Jlc3VsdERhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwbHlTb3J0aW5nKGNvbGxlY3Rpb25Tb3J0KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBPcGVuIEZpbHRlcmluZyBTZXR0aW5ncyBEaWFsb2cgKi9cbiAgICBzaG93RmlsdGVyaW5nU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fZ2V0VGFibGVTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5fZ2V0VGFibGVDb2x1bW5zKCk7XG4gICAgICAgIGNvbnN0IGZpbHRlckJ5ID0gc3RhdGU/LmZpbHRlckJ5O1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBGaWx0ZXJEaWFsb2dEYXRhID0ge1xuICAgICAgICAgICAgY29sdW1uczogY29sdW1ucy5tYXAoKHsgbGFiZWwsIGtleSwgZGF0YVR5cGUsIGZpbHRlcmFibGUgfSkgPT4gKHsgbGFiZWwsIGtleSwgZGF0YVR5cGUsIGZpbHRlcmFibGUgfSkpLFxuICAgICAgICAgICAgY29sbGVjdGlvbkZpbHRlcjogZmlsdGVyQnlcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5maWx0ZXIgJiYgdGhpcy5maWx0ZXIudmFsaWRhdG9yKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLnZhbGlkYXRvciA9IHRoaXMuZmlsdGVyLnZhbGlkYXRvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGRpc21pc3MgYW55IG9wZW4gZGlhbG9nLCBiZWZvcmUgb3BlbmluZyBhIG5ldyBvbmVcbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihcbiAgICAgICAgICAgIFAxM0ZpbHRlcmluZ0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgICAgZGlzYWJsZVBhZGRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnNTByZW0nLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRpYWxvZ0RhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmluamVjdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWRcbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKHJlc3VsdCkgPT4gISFyZXN1bHQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgY29sbGVjdGlvbkZpbHRlciB9OiBGaWx0ZXJEaWFsb2dSZXN1bHREYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGx5RmlsdGVyaW5nKGNvbGxlY3Rpb25GaWx0ZXIpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW4gR3JvdXBpbmcgU2V0dGluZ3MgRGlhbG9nICovXG4gICAgc2hvd0dyb3VwaW5nU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fZ2V0VGFibGVTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5fZ2V0VGFibGVDb2x1bW5zKCk7XG4gICAgICAgIGNvbnN0IHZpc2libGVDb2x1bW5zID0gc3RhdGUuY29sdW1ucztcbiAgICAgICAgY29uc3QgZ3JvdXBCeSA9IHN0YXRlLmdyb3VwQnk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IEdyb3VwRGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnNcbiAgICAgICAgICAgICAgICAvLyBXZSBjYW4gZ3JvdXAgYnkgdmlzaWJsZSBjb2x1bW5zIG9ubHlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT4gdmlzaWJsZUNvbHVtbnMuaW5jbHVkZXMobmFtZSkpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoeyBncm91cGFibGUgfSkgPT4gZ3JvdXBhYmxlKVxuICAgICAgICAgICAgICAgIC5tYXAoKHsgbGFiZWwsIGtleSB9KSA9PiAoeyBsYWJlbCwga2V5IH0pKSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25Hcm91cDogZ3JvdXBCeVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGRpc21pc3MgYW55IG9wZW4gZGlhbG9nLCBiZWZvcmUgb3BlbmluZyBhIG5ldyBvbmVcbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihcbiAgICAgICAgICAgIFAxM0dyb3VwaW5nRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy50YWJsZS5pbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChyZXN1bHQpID0+ICEhcmVzdWx0KSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh7IGNvbGxlY3Rpb25Hcm91cCB9OiBHcm91cERpYWxvZ1Jlc3VsdERhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwbHlHcm91cGluZyhjb2xsZWN0aW9uR3JvdXApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW4gQ29sdW1ucyBTZXR0aW5ncyBEaWFsb2cgKi9cbiAgICBzaG93Q29sdW1uc1NldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2dldFRhYmxlU3RhdGUoKTtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2dldFRhYmxlQ29sdW1ucygpO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1ucyA9IHN0YXRlLmNvbHVtbnM7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IENvbHVtbnNEaWFsb2dEYXRhID0ge1xuICAgICAgICAgICAgYXZhaWxhYmxlQ29sdW1uczogY29sdW1ucy5tYXAoKHsgbGFiZWwsIG5hbWUgfSkgPT4gKHsgbGFiZWwsIGtleTogbmFtZSB9KSksXG4gICAgICAgICAgICB2aXNpYmxlQ29sdW1uc1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGRpc21pc3MgYW55IG9wZW4gZGlhbG9nLCBiZWZvcmUgb3BlbmluZyBhIG5ldyBvbmVcbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZikge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihcbiAgICAgICAgICAgIFAxM0NvbHVtbnNEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgICAgIGRpc2FibGVQYWRkaW5nczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzM1cmVtJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy50YWJsZS5pbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChyZXN1bHQpID0+ICEhcmVzdWx0KSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh7IHZpc2libGVDb2x1bW5zOiByZXN1bHQgfTogQ29sdW1uc0RpYWxvZ1Jlc3VsdERhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dDbG9zZWQuZW1pdChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUNvbHVtbnMocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0VGFibGUodGFibGU6IFRhYmxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlID0gdGFibGU7XG5cbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVGcm9tVGFibGUoKTtcblxuICAgICAgICBpZiAodGhpcy5fdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmliZVRvVGFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9UYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9UYWJsZVRyaWdnZXJzVG9PcGVuRGlhbG9ncygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub1RhYmxlQ29sdW1ucygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9UYWJsZVRyaWdnZXJzVG9PcGVuRGlhbG9ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLmFkZCh0aGlzLl90YWJsZS5vcGVuVGFibGVTb3J0U2V0dGluZ3Muc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd1NvcnRpbmdTZXR0aW5ncygpKSk7XG4gICAgICAgIHRoaXMuX3RhYmxlU3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fdGFibGUub3BlblRhYmxlRmlsdGVyU2V0dGluZ3Muc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd0ZpbHRlcmluZ1NldHRpbmdzKCkpKTtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLmFkZCh0aGlzLl90YWJsZS5vcGVuVGFibGVHcm91cFNldHRpbmdzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3dHcm91cGluZ1NldHRpbmdzKCkpKTtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLmFkZCh0aGlzLl90YWJsZS5vcGVuVGFibGVDb2x1bW5TZXR0aW5ncy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93Q29sdW1uc1NldHRpbmdzKCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvVGFibGVDb2x1bW5zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fdGFibGUudGFibGVDb2x1bW5zU3RyZWFtLnN1YnNjcmliZSgoY29sdW1uczogVGFibGVDb2x1bW5bXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zaG93U29ydFNldHRpbmdzSW5Ub29sYmFyKGNvbHVtbnMuc29tZSgoeyBzb3J0YWJsZSB9KSA9PiBzb3J0YWJsZSkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGU/LnNob3dHcm91cFNldHRpbmdzSW5Ub29sYmFyKGNvbHVtbnMuc29tZSgoeyBncm91cGFibGUgfSkgPT4gZ3JvdXBhYmxlKSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZT8uc2hvd0NvbHVtblNldHRpbmdzSW5Ub29sYmFyKGNvbHVtbnMubGVuZ3RoID4gMCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZT8uc2hvd0ZpbHRlclNldHRpbmdzSW5Ub29sYmFyKGNvbHVtbnMuc29tZSgoeyBmaWx0ZXJhYmxlIH0pID0+IGZpbHRlcmFibGUpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zZXRIZWFkZXJDb2x1bW5GaWx0ZXJpbmdEaXNhYmxlZChjb2x1bW5zLnNvbWUoKHsgZmlsdGVyYWJsZSB9KSA9PiBmaWx0ZXJhYmxlKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0VGFibGVTdGF0ZSgpOiBUYWJsZVN0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlPy5nZXRUYWJsZVN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRUYWJsZUNvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZT8uZ2V0VGFibGVDb2x1bW5zKCkgfHwgW107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseVNvcnRpbmcoY29sbGVjdGlvblNvcnQ6IENvbGxlY3Rpb25Tb3J0W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGU/LnNvcnQoY29sbGVjdGlvblNvcnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwbHlGaWx0ZXJpbmcoZmlsdGVyczogQ29sbGVjdGlvbkZpbHRlcltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlPy5maWx0ZXIoZmlsdGVycyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseUdyb3VwaW5nKGNvbGxlY3Rpb25Hcm91cDogQ29sbGVjdGlvbkdyb3VwW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGU/Lmdyb3VwKGNvbGxlY3Rpb25Hcm91cCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBseUNvbHVtbnMoY29sdW1uczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGU/LnNldENvbHVtbnMoY29sdW1ucyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91bnN1YnNjcmliZUZyb21UYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3RhYmxlU3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICB9XG59XG4iXX0=
|