@fundamental-ngx/platform 0.48.0-rc.21 → 0.48.0-rc.23
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/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +6 -8
- package/esm2022/form/combobox/commons/base-combobox.mjs +6 -5
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +8 -8
- package/esm2022/form/form-generator/form-generator.service.mjs +8 -13
- package/esm2022/form/form-group/form-field/form-field.component.mjs +27 -29
- package/esm2022/form/form-group/form-group.component.mjs +37 -40
- package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +9 -8
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
- package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +10 -13
- package/esm2022/form/multi-combobox/multi-combobox.interface.mjs +1 -1
- package/esm2022/form/multi-input/base-multi-input.mjs +5 -4
- package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +4 -7
- package/esm2022/form/radio-group/radio-group.component.mjs +23 -24
- package/esm2022/form/select/commons/base-select.mjs +3 -3
- package/esm2022/form/step-input/base.step-input.mjs +25 -35
- package/esm2022/form/step-input/number/number-step-input.component.mjs +3 -3
- package/esm2022/form/step-input/step-input-action-button.mjs +6 -10
- package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +6 -8
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +10 -19
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +7 -9
- package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +7 -8
- package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +9 -20
- package/esm2022/list/list.component.mjs +7 -8
- package/esm2022/menu/menu.component.mjs +3 -4
- package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +8 -11
- package/esm2022/message-popover/message-popover.component.mjs +52 -53
- package/esm2022/message-popover/models/message-popover-wrapper.interface.mjs +1 -1
- package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +3 -7
- package/esm2022/search-field/search-field.component.mjs +20 -21
- package/esm2022/settings-generator/settings-generator.service.mjs +9 -10
- package/esm2022/shared/form/base.input.mjs +7 -8
- package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +10 -15
- package/esm2022/split-menu-button/split-menu-button.component.mjs +7 -18
- package/esm2022/table/components/reset-button/reset-button.component.mjs +5 -6
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +6 -7
- package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +6 -8
- package/esm2022/table/components/table-group-row/table-group-row.component.mjs +3 -7
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +29 -13
- package/esm2022/table/components/table-header-row/table-header-row.component.mjs +7 -11
- package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +5 -7
- package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +5 -8
- package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +5 -8
- package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +5 -8
- package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +4 -5
- package/esm2022/table/components/table-row/table-row.component.mjs +6 -13
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +34 -21
- package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +5 -8
- package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +6 -9
- package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +6 -9
- package/esm2022/table/table.component.mjs +39 -49
- package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +1 -1
- package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +8 -10
- package/esm2022/table-helpers/directives/table-data-source.directive.mjs +6 -6
- package/esm2022/table-helpers/services/table-column-resize.service.mjs +14 -17
- package/esm2022/table-helpers/services/table-responsive.service.mjs +6 -11
- package/esm2022/table-helpers/services/table.service.mjs +20 -18
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +10 -18
- package/esm2022/wizard-generator/base-wizard-generator.mjs +12 -19
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +5 -4
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +7 -13
- package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +8 -7
- package/fesm2022/fundamental-ngx-platform-form.mjs +137 -174
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +24 -46
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +6 -7
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +57 -60
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +21 -38
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +6 -8
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-shared.mjs +6 -7
- package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +9 -15
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +6 -17
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +42 -52
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +145 -157
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +9 -17
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +20 -33
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +2 -4
- package/form/form-generator/form-generator/form-generator.component.d.ts +1 -1
- package/form/form-generator/form-generator.service.d.ts +3 -7
- package/form/form-group/form-field/form-field.component.d.ts +12 -12
- package/form/form-group/form-group.component.d.ts +35 -31
- package/form/multi-combobox/commons/base-multi-combobox.d.ts +2 -2
- package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +3 -5
- package/form/multi-combobox/multi-combobox.interface.d.ts +3 -3
- package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -4
- package/form/radio-group/radio-group.component.d.ts +3 -3
- package/form/step-input/base.step-input.d.ts +5 -6
- package/form/step-input/step-input-action-button.d.ts +4 -7
- package/fundamental-ngx-platform-v0.48.0-rc.23.tgz +0 -0
- package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +1 -1
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.d.ts +5 -8
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.d.ts +1 -1
- package/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.d.ts +1 -1
- package/icon-tab-bar/icon-tab-bar.component.d.ts +4 -6
- package/list/list.component.d.ts +1 -3
- package/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.d.ts +2 -4
- package/message-popover/message-popover.component.d.ts +13 -20
- package/message-popover/models/message-popover-wrapper.interface.d.ts +2 -2
- package/package.json +4 -4
- package/search-field/search-field-mobile/search-field/search-field-mobile.component.d.ts +4 -6
- package/search-field/search-field.component.d.ts +6 -4
- package/settings-generator/settings-generator.service.d.ts +1 -1
- package/shared/form/base.input.d.ts +2 -2
- package/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.d.ts +4 -8
- package/split-menu-button/split-menu-button.component.d.ts +3 -8
- package/table/components/reset-button/reset-button.component.d.ts +2 -3
- package/table/components/table-cell-header-popover/table-cell-header-popover.component.d.ts +1 -2
- package/table/components/table-column-resizer/table-column-resizer.component.d.ts +1 -1
- package/table/components/table-group-row/table-group-row.component.d.ts +2 -5
- package/table/components/table-header-cell-content/table-header-cell-content.component.d.ts +11 -6
- package/table/components/table-header-row/table-header-row.component.d.ts +1 -1
- package/table/components/table-p13-dialog/columns/columns.component.d.ts +2 -4
- package/table/components/table-p13-dialog/filtering/filtering.component.d.ts +1 -4
- package/table/components/table-p13-dialog/grouping/grouping.component.d.ts +1 -4
- package/table/components/table-p13-dialog/sorting/sorting.component.d.ts +1 -4
- package/table/components/table-row/table-row.component.d.ts +2 -2
- package/table/components/table-toolbar/table-toolbar.component.d.ts +20 -7
- package/table/components/table-view-settings-dialog/filtering/filters.component.d.ts +1 -4
- package/table/components/table-view-settings-dialog/grouping/grouping.component.d.ts +1 -4
- package/table/components/table-view-settings-dialog/sorting/sorting.component.d.ts +1 -4
- package/table/table.component.d.ts +4 -18
- package/table-helpers/directives/table-cell-header-popover.directive.d.ts +2 -3
- package/table-helpers/directives/table-cell-resizable.directive.d.ts +1 -1
- package/table-helpers/directives/table-data-source.directive.d.ts +1 -1
- package/table-helpers/services/table-column-resize.service.d.ts +2 -2
- package/table-helpers/services/table-responsive.service.d.ts +3 -5
- package/table-helpers/services/table.service.d.ts +12 -10
- package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +2 -1
- package/wizard-generator/base-wizard-generator.d.ts +4 -8
- package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +3 -7
- package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +1 -1
- package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +0 -16
- package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
- package/search-field/search-field-mobile/search-field-mobile.module.d.ts +0 -7
|
@@ -1,18 +1,36 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy,
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, DestroyRef, Directive, Input, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';
|
|
3
2
|
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { ToolbarComponent, ToolbarItemDirective, ToolbarSeparatorComponent, ToolbarSpacerDirective } from '@fundamental-ngx/core/toolbar';
|
|
5
5
|
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
6
6
|
import { ButtonComponent } from '@fundamental-ngx/platform/button';
|
|
7
7
|
import { SearchFieldComponent } from '@fundamental-ngx/platform/search-field';
|
|
8
8
|
import { Table, TableService } from '@fundamental-ngx/platform/table-helpers';
|
|
9
|
-
import { takeUntil } from 'rxjs/operators';
|
|
10
9
|
import { TABLE_TOOLBAR } from './table-toolbar';
|
|
11
10
|
import { TableToolbarActionsComponent } from './table-toolbar-actions.component';
|
|
12
11
|
import { TableToolbarLeftActionsComponent } from './table-toolbar-left-actions.component';
|
|
13
12
|
import * as i0 from "@angular/core";
|
|
14
13
|
import * as i1 from "@fundamental-ngx/platform/table-helpers";
|
|
15
14
|
let tableToolbarTitleUniqueId = 0;
|
|
15
|
+
export class TableToolbarTemplateDirective {
|
|
16
|
+
constructor() {
|
|
17
|
+
/** @hidden */
|
|
18
|
+
this.templateRef = inject(TemplateRef);
|
|
19
|
+
}
|
|
20
|
+
/** @hidden */
|
|
21
|
+
static ngTemplateContextGuard(_directive, context) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableToolbarTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: TableToolbarTemplateDirective, isStandalone: true, selector: "[fdpTableToolbarTemplate]", ngImport: i0 }); }
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableToolbarTemplateDirective, decorators: [{
|
|
28
|
+
type: Directive,
|
|
29
|
+
args: [{
|
|
30
|
+
selector: '[fdpTableToolbarTemplate]',
|
|
31
|
+
standalone: true
|
|
32
|
+
}]
|
|
33
|
+
}] });
|
|
16
34
|
/**
|
|
17
35
|
* The component that represents a table toolbar.
|
|
18
36
|
*
|
|
@@ -25,8 +43,7 @@ let tableToolbarTitleUniqueId = 0;
|
|
|
25
43
|
* */
|
|
26
44
|
export class TableToolbarComponent {
|
|
27
45
|
/** @hidden */
|
|
28
|
-
constructor(
|
|
29
|
-
this._cd = _cd;
|
|
46
|
+
constructor(_table, _tableService) {
|
|
30
47
|
this._table = _table;
|
|
31
48
|
this._tableService = _tableService;
|
|
32
49
|
/**
|
|
@@ -52,15 +69,10 @@ export class TableToolbarComponent {
|
|
|
52
69
|
/** @hidden */
|
|
53
70
|
this.tableLoading$ = this._tableService.tableLoading$;
|
|
54
71
|
/** @hidden */
|
|
55
|
-
this.
|
|
72
|
+
this._destroyRef = inject(DestroyRef);
|
|
56
73
|
this._listenToTableEvents();
|
|
57
74
|
}
|
|
58
75
|
/** @hidden */
|
|
59
|
-
ngOnDestroy() {
|
|
60
|
-
this._onDestroy$.next();
|
|
61
|
-
this._onDestroy$.complete();
|
|
62
|
-
}
|
|
63
|
-
/** @hidden */
|
|
64
76
|
submitSearch(search) {
|
|
65
77
|
this._table.search(search);
|
|
66
78
|
}
|
|
@@ -94,16 +106,16 @@ export class TableToolbarComponent {
|
|
|
94
106
|
}
|
|
95
107
|
/** @hidden */
|
|
96
108
|
_listenToTableEvents() {
|
|
97
|
-
this._table.emptyRowAdded.pipe(
|
|
109
|
+
this._table.emptyRowAdded.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
|
|
98
110
|
this._showSaveButton = true;
|
|
99
111
|
});
|
|
100
|
-
this._table.save.pipe(
|
|
112
|
+
this._table.save.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
|
|
101
113
|
this._showSaveButton = false;
|
|
102
114
|
});
|
|
103
|
-
this._table.cancel.pipe(
|
|
115
|
+
this._table.cancel.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
|
|
104
116
|
this._showSaveButton = false;
|
|
105
117
|
});
|
|
106
|
-
this._table.presetChanged.pipe(
|
|
118
|
+
this._table.presetChanged.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((state) => {
|
|
107
119
|
this._searchInputText = state.searchInput?.text ?? '';
|
|
108
120
|
});
|
|
109
121
|
}
|
|
@@ -115,8 +127,8 @@ export class TableToolbarComponent {
|
|
|
115
127
|
_collapseAll() {
|
|
116
128
|
this._table.collapseAll();
|
|
117
129
|
}
|
|
118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableToolbarComponent, deps: [{ token:
|
|
119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: TableToolbarComponent, isStandalone: true, selector: "fdp-table-toolbar", inputs: { shouldOverflow: "shouldOverflow", title: "title", hideItemCount: "hideItemCount", hideSearchInput: "hideSearchInput", showExpandCollapseButtons: "showExpandCollapseButtons", searchSuggestions: "searchSuggestions", editMode: "editMode" }, providers: [{ provide: TABLE_TOOLBAR, useExisting: TableToolbarComponent }], queries: [{ propertyName: "tableToolbarActionsComponent", first: true, predicate: TableToolbarActionsComponent, descendants: true }, { propertyName: "_tableToolbarLeftActionsComponent", first: true, predicate: TableToolbarLeftActionsComponent, descendants: true }], viewQueries: [{ propertyName: "contentTemplateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template\n let-counter=\"counter\"\n let-sortable=\"sortable\"\n let-filterable=\"filterable\"\n let-groupable=\"groupable\"\n let-columns=\"columns\"\n>\n <fd-toolbar\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [titleId]=\"tableToolbarTitleId\"\n [title]=\"title && !hideItemCount ? title + ' (' + (
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableToolbarComponent, deps: [{ token: i1.Table }, { token: i1.TableService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
131
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: TableToolbarComponent, isStandalone: true, selector: "fdp-table-toolbar", inputs: { shouldOverflow: "shouldOverflow", title: "title", hideItemCount: "hideItemCount", hideSearchInput: "hideSearchInput", showExpandCollapseButtons: "showExpandCollapseButtons", searchSuggestions: "searchSuggestions", editMode: "editMode" }, providers: [{ provide: TABLE_TOOLBAR, useExisting: TableToolbarComponent }], queries: [{ propertyName: "tableToolbarActionsComponent", first: true, predicate: TableToolbarActionsComponent, descendants: true }, { propertyName: "_tableToolbarLeftActionsComponent", first: true, predicate: TableToolbarLeftActionsComponent, descendants: true }], viewQueries: [{ propertyName: "contentTemplateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template\n fdpTableToolbarTemplate\n let-counter=\"counter\"\n let-sortable=\"sortable\"\n let-filterable=\"filterable\"\n let-groupable=\"groupable\"\n let-columns=\"columns\"\n let-hasAnyActions=\"hasAnyActions\"\n>\n <fd-toolbar\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [titleId]=\"tableToolbarTitleId\"\n [title]=\"title && !hideItemCount ? title + ' (' + counter() + ')' : title\"\n [shouldOverflow]=\"shouldOverflow\"\n >\n @if (_tableToolbarLeftActionsComponent) {\n <span fd-toolbar-item fdOverflowPriority=\"never\">\n @if (!!title || !hideItemCount) {\n <fd-toolbar-separator></fd-toolbar-separator>\n }\n <ng-template [ngTemplateOutlet]=\"_tableToolbarLeftActionsComponent._contentTemplateRef\"></ng-template>\n </span>\n }\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (!hideSearchInput) {\n <fdp-search-field\n fd-toolbar-item\n [style.min-width.rem]=\"15.5\"\n [placeholder]=\"'platformTable.toolbarSearchPlaceholder' | fdTranslate\"\n [inputText]=\"_searchInputText\"\n [disabled]=\"!!(tableLoading$ | async)\"\n [suggestions]=\"searchSuggestions\"\n [ariaLabelledBy]=\"tableToolbarTitleId\"\n (searchSubmit)=\"submitSearch($event)\"\n (cancelSearch)=\"submitSearch($event)\"\n [disableSuggestionsFoundAnnouncer]=\"true\"\n ></fdp-search-field>\n }\n @if (editMode !== 'none') {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n [label]=\"'platformTable.toolbarActionCreateButtonLabel' | fdTranslate\"\n (click)=\"_addRow()\"\n ></fdp-button>\n @if (_showSaveButton) {\n @if (_showSaveButton) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n [label]=\"'platformTable.toolbarActionSaveButtonLabel' | fdTranslate\"\n (click)=\"_saveRows()\"\n ></fdp-button>\n }\n <fd-toolbar-separator></fd-toolbar-separator>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n [label]=\"'platformTable.toolbarActionCancelButtonLabel' | fdTranslate\"\n (click)=\"_cancelEditing()\"\n buttonType=\"transparent\"\n ></fdp-button>\n }\n @if (tableToolbarActionsComponent || hasAnyActions()) {\n <fd-toolbar-separator fd-toolbar-item fdOverflowPriority=\"never\"></fd-toolbar-separator>\n }\n }\n @if (tableToolbarActionsComponent) {\n <span fd-toolbar-item class=\"fdp-table-toolbar-actions\">\n <ng-template [ngTemplateOutlet]=\"tableToolbarActionsComponent.contentTemplateRef\"></ng-template>\n </span>\n }\n @if (showExpandCollapseButtons || hasAnyActions()) {\n @if (tableToolbarActionsComponent) {\n <fd-toolbar-separator fd-toolbar-item fdOverflowPriority=\"never\"></fd-toolbar-separator>\n }\n @if (showExpandCollapseButtons) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"expand-all\"\n (click)=\"_expandAll()\"\n [title]=\"'platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"collapse-all\"\n (click)=\"_collapseAll()\"\n [title]=\"'platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n ></fdp-button>\n }\n @if (sortable()) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"sort\"\n [title]=\"'platformTable.toolbarActionSortButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionSortButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n aria-haspopup=\"modal\"\n (click)=\"openSorting()\"\n ></fdp-button>\n }\n @if (filterable()) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"filter\"\n [title]=\"'platformTable.toolbarActionFilterButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionFilterButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n aria-haspopup=\"modal\"\n (click)=\"openFiltering()\"\n ></fdp-button>\n }\n @if (groupable()) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"group-2\"\n [title]=\"'platformTable.toolbarActionGroupButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionGroupButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n aria-haspopup=\"modal\"\n (click)=\"openGrouping()\"\n ></fdp-button>\n }\n @if (columns()) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"'platformTable.toolbarActionColumnsButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionColumnsButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n aria-haspopup=\"modal\"\n (click)=\"openColumns()\"\n ></fdp-button>\n }\n }\n </fd-toolbar>\n</ng-template>\n", dependencies: [{ kind: "component", type: ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ToolbarSpacerDirective, selector: "fd-toolbar-spacer", inputs: ["width", "class", "fixed"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "component", type: ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "glyphFont", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "directive", type: TableToolbarTemplateDirective, selector: "[fdpTableToolbarTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
120
132
|
}
|
|
121
133
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableToolbarComponent, decorators: [{
|
|
122
134
|
type: Component,
|
|
@@ -129,9 +141,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
129
141
|
SearchFieldComponent,
|
|
130
142
|
ButtonComponent,
|
|
131
143
|
AsyncPipe,
|
|
132
|
-
FdTranslatePipe
|
|
133
|
-
|
|
134
|
-
|
|
144
|
+
FdTranslatePipe,
|
|
145
|
+
TableToolbarTemplateDirective
|
|
146
|
+
], template: "<ng-template\n fdpTableToolbarTemplate\n let-counter=\"counter\"\n let-sortable=\"sortable\"\n let-filterable=\"filterable\"\n let-groupable=\"groupable\"\n let-columns=\"columns\"\n let-hasAnyActions=\"hasAnyActions\"\n>\n <fd-toolbar\n fdType=\"transparent\"\n [clearBorder]=\"true\"\n [titleId]=\"tableToolbarTitleId\"\n [title]=\"title && !hideItemCount ? title + ' (' + counter() + ')' : title\"\n [shouldOverflow]=\"shouldOverflow\"\n >\n @if (_tableToolbarLeftActionsComponent) {\n <span fd-toolbar-item fdOverflowPriority=\"never\">\n @if (!!title || !hideItemCount) {\n <fd-toolbar-separator></fd-toolbar-separator>\n }\n <ng-template [ngTemplateOutlet]=\"_tableToolbarLeftActionsComponent._contentTemplateRef\"></ng-template>\n </span>\n }\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (!hideSearchInput) {\n <fdp-search-field\n fd-toolbar-item\n [style.min-width.rem]=\"15.5\"\n [placeholder]=\"'platformTable.toolbarSearchPlaceholder' | fdTranslate\"\n [inputText]=\"_searchInputText\"\n [disabled]=\"!!(tableLoading$ | async)\"\n [suggestions]=\"searchSuggestions\"\n [ariaLabelledBy]=\"tableToolbarTitleId\"\n (searchSubmit)=\"submitSearch($event)\"\n (cancelSearch)=\"submitSearch($event)\"\n [disableSuggestionsFoundAnnouncer]=\"true\"\n ></fdp-search-field>\n }\n @if (editMode !== 'none') {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n [label]=\"'platformTable.toolbarActionCreateButtonLabel' | fdTranslate\"\n (click)=\"_addRow()\"\n ></fdp-button>\n @if (_showSaveButton) {\n @if (_showSaveButton) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n [label]=\"'platformTable.toolbarActionSaveButtonLabel' | fdTranslate\"\n (click)=\"_saveRows()\"\n ></fdp-button>\n }\n <fd-toolbar-separator></fd-toolbar-separator>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n [label]=\"'platformTable.toolbarActionCancelButtonLabel' | fdTranslate\"\n (click)=\"_cancelEditing()\"\n buttonType=\"transparent\"\n ></fdp-button>\n }\n @if (tableToolbarActionsComponent || hasAnyActions()) {\n <fd-toolbar-separator fd-toolbar-item fdOverflowPriority=\"never\"></fd-toolbar-separator>\n }\n }\n @if (tableToolbarActionsComponent) {\n <span fd-toolbar-item class=\"fdp-table-toolbar-actions\">\n <ng-template [ngTemplateOutlet]=\"tableToolbarActionsComponent.contentTemplateRef\"></ng-template>\n </span>\n }\n @if (showExpandCollapseButtons || hasAnyActions()) {\n @if (tableToolbarActionsComponent) {\n <fd-toolbar-separator fd-toolbar-item fdOverflowPriority=\"never\"></fd-toolbar-separator>\n }\n @if (showExpandCollapseButtons) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"expand-all\"\n (click)=\"_expandAll()\"\n [title]=\"'platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionExpandAllButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n ></fdp-button>\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"collapse-all\"\n (click)=\"_collapseAll()\"\n [title]=\"'platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionCollapseAllButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n ></fdp-button>\n }\n @if (sortable()) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"sort\"\n [title]=\"'platformTable.toolbarActionSortButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionSortButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n aria-haspopup=\"modal\"\n (click)=\"openSorting()\"\n ></fdp-button>\n }\n @if (filterable()) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"filter\"\n [title]=\"'platformTable.toolbarActionFilterButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionFilterButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n aria-haspopup=\"modal\"\n (click)=\"openFiltering()\"\n ></fdp-button>\n }\n @if (groupable()) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"group-2\"\n [title]=\"'platformTable.toolbarActionGroupButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionGroupButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n aria-haspopup=\"modal\"\n (click)=\"openGrouping()\"\n ></fdp-button>\n }\n @if (columns()) {\n <fdp-button\n fd-toolbar-item\n fdOverflowPriority=\"never\"\n glyph=\"action-settings\"\n [title]=\"'platformTable.toolbarActionColumnsButtonTitle' | fdTranslate\"\n [ariaLabel]=\"'platformTable.toolbarActionColumnsButtonTitle' | fdTranslate\"\n buttonType=\"transparent\"\n aria-haspopup=\"modal\"\n (click)=\"openColumns()\"\n ></fdp-button>\n }\n }\n </fd-toolbar>\n</ng-template>\n" }]
|
|
147
|
+
}], ctorParameters: () => [{ type: i1.Table }, { type: i1.TableService }], propDecorators: { shouldOverflow: [{
|
|
135
148
|
type: Input
|
|
136
149
|
}], title: [{
|
|
137
150
|
type: Input
|
|
@@ -155,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
155
168
|
type: ViewChild,
|
|
156
169
|
args: [TemplateRef]
|
|
157
170
|
}] } });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtdG9vbGJhci90YWJsZS10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGFibGUvY29tcG9uZW50cy90YWJsZS10b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNILGdCQUFnQixFQUNoQixvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN6QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUErQixNQUFNLHdDQUF3QyxDQUFDO0FBQzNHLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQXlCLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNB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QkFBbUIsbUJBRVosdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLHVCQUF1QixFQUFFLENBQUMsY0FDL0QsSUFBSSxXQUNQO3dCQUNMLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxlQUFlO3FCQUNsQjtxSUFPRCxjQUFjO3NCQURiLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sNEJBQTRCO3NCQUQzQixZQUFZO3VCQUFDLDRCQUE0QjtnQkFLMUMsaUNBQWlDO3NCQURoQyxZQUFZO3VCQUFDLGdDQUFnQztnQkFLOUMsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBUb29sYmFySXRlbURpcmVjdGl2ZSxcbiAgICBUb29sYmFyU2VwYXJhdG9yQ29tcG9uZW50LFxuICAgIFRvb2xiYXJTcGFjZXJEaXJlY3RpdmVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Rvb2xiYXInO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vYnV0dG9uJztcbmltcG9ydCB7IFNlYXJjaEZpZWxkQ29tcG9uZW50LCBTZWFyY2hJbnB1dCwgU3VnZ2VzdGlvbkl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBUYWJsZSwgVGFibGVTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZS1oZWxwZXJzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRBQkxFX1RPT0xCQVIsIFRhYmxlVG9vbGJhckludGVyZmFjZSB9IGZyb20gJy4vdGFibGUtdG9vbGJhcic7XG5pbXBvcnQgeyBUYWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS10b29sYmFyLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlVG9vbGJhckxlZnRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS10b29sYmFyLWxlZnQtYWN0aW9ucy5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBFZGl0TW9kZSA9ICdub25lJyB8ICdpbmxpbmUnO1xuXG5sZXQgdGFibGVUb29sYmFyVGl0bGVVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogVGhlIGNvbXBvbmVudCB0aGF0IHJlcHJlc2VudHMgYSB0YWJsZSB0b29sYmFyLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxmZHAtdGFibGUtdG9vbGJhclxuICogICB0aXRsZT1cIk9yZGVyIExpbmUgSXRlbXNcIlxuICogICBbaGlkZUl0ZW1Db3VudF09XCJmYWxzZVwiPlxuICogPC9mZHAtdGFibGUtdG9vbGJhcj5cbiAqIGBgYFxuICogKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGFibGUtdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUQUJMRV9UT09MQkFSLCB1c2VFeGlzdGluZzogVGFibGVUb29sYmFyQ29tcG9uZW50IH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgICAgICBUb29sYmFySXRlbURpcmVjdGl2ZSxcbiAgICAgICAgVG9vbGJhclNlcGFyYXRvckNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVG9vbGJhclNwYWNlckRpcmVjdGl2ZSxcbiAgICAgICAgU2VhcmNoRmllbGRDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIFRhYmxlVG9vbGJhckludGVyZmFjZSwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0b29sYmFyIHNob3VsZCBoaWRlIGVsZW1lbnRzIGluIHBvcG92ZXIgd2hlbiB0aGV5IG92ZXJmbG93LlxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICBzaG91bGRPdmVyZmxvdyA9IGZhbHNlO1xuXG4gICAgLyoqIFRhYmxlIHRpdGxlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKiBUb2dnbGUgdG8gc2hvdyB0YWJsZSBpdGVtIGNvdW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlkZUl0ZW1Db3VudCA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZSB0byBzaG93IHNlYXJjaCBpbnB1dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVTZWFyY2hJbnB1dCA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZSB0byBleHBhbmQgYW5kIGNvbGxhcHNlIGFsbCBmZWF0dXJlICovXG4gICAgQElucHV0KClcbiAgICBzaG93RXhwYW5kQ29sbGFwc2VCdXR0b25zID0gZmFsc2U7XG4gICAgLyoqIFN1Z2dlc3Rpb25zIGZvciBzZWFyY2ggZmllbGQuICovXG4gICAgQElucHV0KClcbiAgICBzZWFyY2hTdWdnZXN0aW9uczogU3VnZ2VzdGlvbkl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIFRhYmxlIHJvd3MgZWRpdC9hZGQgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGVkaXRNb2RlOiBFZGl0TW9kZSA9ICdub25lJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUYWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50KVxuICAgIHRhYmxlVG9vbGJhckFjdGlvbnNDb21wb25lbnQ6IFRhYmxlVG9vbGJhckFjdGlvbnNDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGFibGVUb29sYmFyTGVmdEFjdGlvbnNDb21wb25lbnQpXG4gICAgX3RhYmxlVG9vbGJhckxlZnRBY3Rpb25zQ29tcG9uZW50OiBUYWJsZVRvb2xiYXJMZWZ0QWN0aW9uc0NvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZilcbiAgICBjb250ZW50VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRhYmxlVG9vbGJhclRpdGxlSWQ6IHN0cmluZyA9ICdmZC10YWJsZS10b29sYmFyLXRpdGxlLScgKyB0YWJsZVRvb2xiYXJUaXRsZVVuaXF1ZUlkKys7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaG93U2F2ZUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VhcmNoSW5wdXRUZXh0ID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IHRhYmxlTG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl90YWJsZVNlcnZpY2UudGFibGVMb2FkaW5nJDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlOiBUYWJsZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGFibGVTZXJ2aWNlOiBUYWJsZVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9UYWJsZUV2ZW50cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdWJtaXRTZWFyY2goc2VhcmNoOiBTZWFyY2hJbnB1dCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5zZWFyY2goc2VhcmNoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9wZW5Tb3J0aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5vcGVuVGFibGVTb3J0U2V0dGluZ3MuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3BlbkZpbHRlcmluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUub3BlblRhYmxlRmlsdGVyU2V0dGluZ3MuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3Blbkdyb3VwaW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5vcGVuVGFibGVHcm91cFNldHRpbmdzLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9wZW5Db2x1bW5zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5vcGVuVGFibGVDb2x1bW5TZXR0aW5ncy5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYWRkUm93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5hZGRSb3coKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zYXZlUm93cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUuc2F2ZVJvd3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jYW5jZWxFZGl0aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5jYW5jZWxFZGl0aW5nKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub1RhYmxlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5lbXB0eVJvd0FkZGVkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2hvd1NhdmVCdXR0b24gPSB0cnVlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl90YWJsZS5zYXZlLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2hvd1NhdmVCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdGFibGUuY2FuY2VsLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2hvd1NhdmVCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdGFibGUucHJlc2V0Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoSW5wdXRUZXh0ID0gc3RhdGUuc2VhcmNoSW5wdXQ/LnRleHQgPz8gJyc7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2V4cGFuZEFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUuZXhwYW5kQWxsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY29sbGFwc2VBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLmNvbGxhcHNlQWxsKCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlXG4gICAgbGV0LWNvdW50ZXI9XCJjb3VudGVyXCJcbiAgICBsZXQtc29ydGFibGU9XCJzb3J0YWJsZVwiXG4gICAgbGV0LWZpbHRlcmFibGU9XCJmaWx0ZXJhYmxlXCJcbiAgICBsZXQtZ3JvdXBhYmxlPVwiZ3JvdXBhYmxlXCJcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuPlxuICAgIDxmZC10b29sYmFyXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgW2NsZWFyQm9yZGVyXT1cInRydWVcIlxuICAgICAgICBbdGl0bGVJZF09XCJ0YWJsZVRvb2xiYXJUaXRsZUlkXCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlICYmICFoaWRlSXRlbUNvdW50ID8gdGl0bGUgKyAnICgnICsgKGNvdW50ZXIgfCBhc3luYykgKyAnKScgOiB0aXRsZVwiXG4gICAgICAgIFtzaG91bGRPdmVyZmxvd109XCJzaG91bGRPdmVyZmxvd1wiXG4gICAgPlxuICAgICAgICBAaWYgKF90YWJsZVRvb2xiYXJMZWZ0QWN0aW9uc0NvbXBvbmVudCkge1xuICAgICAgICAgICAgPHNwYW4gZmQtdG9vbGJhci1pdGVtIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCI+XG4gICAgICAgICAgICAgICAgQGlmICghIXRpdGxlIHx8ICFoaWRlSXRlbUNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvcj48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiX3RhYmxlVG9vbGJhckxlZnRBY3Rpb25zQ29tcG9uZW50Ll9jb250ZW50VGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIDxmZC10b29sYmFyLXNwYWNlcj48L2ZkLXRvb2xiYXItc3BhY2VyPlxuICAgICAgICBAaWYgKCFoaWRlU2VhcmNoSW5wdXQpIHtcbiAgICAgICAgICAgIDxmZHAtc2VhcmNoLWZpZWxkXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aC5yZW1dPVwiMTUuNVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJTZWFyY2hQbGFjZWhvbGRlcicgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2lucHV0VGV4dF09XCJfc2VhcmNoSW5wdXRUZXh0XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiISEodGFibGVMb2FkaW5nJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgW3N1Z2dlc3Rpb25zXT1cInNlYXJjaFN1Z2dlc3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwidGFibGVUb29sYmFyVGl0bGVJZFwiXG4gICAgICAgICAgICAgICAgKHNlYXJjaFN1Ym1pdCk9XCJzdWJtaXRTZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNhbmNlbFNlYXJjaCk9XCJzdWJtaXRTZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVTdWdnZXN0aW9uc0ZvdW5kQW5ub3VuY2VyXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvZmRwLXNlYXJjaC1maWVsZD5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGVkaXRNb2RlICE9PSAnbm9uZScpIHtcbiAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uQ3JlYXRlQnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfYWRkUm93KClcIlxuICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgIEBpZiAoX3Nob3dTYXZlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgQGlmIChfc2hvd1NhdmVCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25TYXZlQnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zYXZlUm93cygpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGZkLXRvb2xiYXItc2VwYXJhdG9yPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG4gICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25DYW5jZWxCdXR0b25MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfY2FuY2VsRWRpdGluZygpXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICB0YWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50IHx8XG4gICAgICAgICAgICAgICAgKHNvcnRhYmxlIHwgYXN5bmMpIHx8XG4gICAgICAgICAgICAgICAgKGZpbHRlcmFibGUgfCBhc3luYykgfHxcbiAgICAgICAgICAgICAgICAoZ3JvdXBhYmxlIHwgYXN5bmMpIHx8XG4gICAgICAgICAgICAgICAgKGNvbHVtbnMgfCBhc3luYylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvciBmZC10b29sYmFyLWl0ZW0gZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIj48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAodGFibGVUb29sYmFyQWN0aW9uc0NvbXBvbmVudCkge1xuICAgICAgICAgICAgPHNwYW4gZmQtdG9vbGJhci1pdGVtIGNsYXNzPVwiZmRwLXRhYmxlLXRvb2xiYXItYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50LmNvbnRlbnRUZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgIHNob3dFeHBhbmRDb2xsYXBzZUJ1dHRvbnMgfHxcbiAgICAgICAgICAgIChzb3J0YWJsZSB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgKGZpbHRlcmFibGUgfCBhc3luYykgfHxcbiAgICAgICAgICAgIChncm91cGFibGUgfCBhc3luYykgfHxcbiAgICAgICAgICAgIChjb2x1bW5zIHwgYXN5bmMpXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGlmICh0YWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgPGZkLXRvb2xiYXItc2VwYXJhdG9yIGZkLXRvb2xiYXItaXRlbSBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHNob3dFeHBhbmRDb2xsYXBzZUJ1dHRvbnMpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImV4cGFuZC1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2V4cGFuZEFsbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25FeHBhbmRBbGxCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvbkV4cGFuZEFsbEJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiY29sbGFwc2UtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9jb2xsYXBzZUFsbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25Db2xsYXBzZUFsbEJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uQ29sbGFwc2VBbGxCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc29ydGFibGUgfCBhc3luYykge1xuICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwic29ydFwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uU29ydEJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uU29ydEJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Tb3J0aW5nKClcIlxuICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGZpbHRlcmFibGUgfCBhc3luYykge1xuICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25GaWx0ZXJCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvbkZpbHRlckJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5GaWx0ZXJpbmcoKVwiXG4gICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoZ3JvdXBhYmxlIHwgYXN5bmMpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImdyb3VwLTJcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvbkdyb3VwQnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25Hcm91cEJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Hcm91cGluZygpXCJcbiAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChjb2x1bW5zIHwgYXN5bmMpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImFjdGlvbi1zZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uQ29sdW1uc0J1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uQ29sdW1uc0J1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Db2x1bW5zKClcIlxuICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2ZkLXRvb2xiYXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtdG9vbGJhci90YWJsZS10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGFibGUvY29tcG9uZW50cy90YWJsZS10b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNILGdCQUFnQixFQUNoQixvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN6QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUErQixNQUFNLHdDQUF3QyxDQUFDO0FBQzNHLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBeUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVB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QiwwSkFDcEIseUJBQXlCLGlFQUN6QixnQkFBZ0Isb0pBQ2hCLHNCQUFzQixtR0FDdEIsb0JBQW9CLGlkQUNwQixlQUFlLG9SQUNmLFNBQVMseUNBQ1QsZUFBZSxvREF4Q1YsNkJBQTZCOzsyRkE0QzdCLHFCQUFxQjtrQkFwQmpDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUVaLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyx1QkFBdUIsRUFBRSxDQUFDLGNBQy9ELElBQUksV0FDUDt3QkFDTCxnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIseUJBQXlCO3dCQUN6QixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZiw2QkFBNkI7cUJBQ2hDO3FHQU9ELGNBQWM7c0JBRGIsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTiw0QkFBNEI7c0JBRDNCLFlBQVk7dUJBQUMsNEJBQTRCO2dCQUsxQyxpQ0FBaUM7c0JBRGhDLFlBQVk7dUJBQUMsZ0NBQWdDO2dCQUs5QyxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBJbnB1dCxcbiAgICBTaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBUb29sYmFySXRlbURpcmVjdGl2ZSxcbiAgICBUb29sYmFyU2VwYXJhdG9yQ29tcG9uZW50LFxuICAgIFRvb2xiYXJTcGFjZXJEaXJlY3RpdmVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Rvb2xiYXInO1xuaW1wb3J0IHsgRmRUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vYnV0dG9uJztcbmltcG9ydCB7IFNlYXJjaEZpZWxkQ29tcG9uZW50LCBTZWFyY2hJbnB1dCwgU3VnZ2VzdGlvbkl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBUYWJsZSwgVGFibGVTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZS1oZWxwZXJzJztcbmltcG9ydCB7IFRBQkxFX1RPT0xCQVIsIFRhYmxlVG9vbGJhckludGVyZmFjZSB9IGZyb20gJy4vdGFibGUtdG9vbGJhcic7XG5pbXBvcnQgeyBUYWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS10b29sYmFyLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlVG9vbGJhckxlZnRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS10b29sYmFyLWxlZnQtYWN0aW9ucy5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xiYXJDb250ZXh0IHtcbiAgICBjb3VudGVyOiBTaWduYWw8bnVtYmVyPjtcbiAgICBzb3J0YWJsZTogU2lnbmFsPGJvb2xlYW4+O1xuICAgIGZpbHRlcmFibGU6IFNpZ25hbDxib29sZWFuPjtcbiAgICBncm91cGFibGU6IFNpZ25hbDxib29sZWFuPjtcbiAgICBjb2x1bW5zOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgaGFzQW55QWN0aW9uczogU2lnbmFsPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgdHlwZSBFZGl0TW9kZSA9ICdub25lJyB8ICdpbmxpbmUnO1xuXG5sZXQgdGFibGVUb29sYmFyVGl0bGVVbmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFRhYmxlVG9vbGJhclRlbXBsYXRlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVRvb2xiYXJUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjxUb29sYmFyQ29udGV4dD4+KFRlbXBsYXRlUmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXG4gICAgICAgIF9kaXJlY3RpdmU6IFRhYmxlVG9vbGJhclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBjb250ZXh0OiB1bmtub3duXG4gICAgKTogY29udGV4dCBpcyBUb29sYmFyQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyBhIHRhYmxlIHRvb2xiYXIuXG4gKlxuICogYGBgaHRtbFxuICogPGZkcC10YWJsZS10b29sYmFyXG4gKiAgIHRpdGxlPVwiT3JkZXIgTGluZSBJdGVtc1wiXG4gKiAgIFtoaWRlSXRlbUNvdW50XT1cImZhbHNlXCI+XG4gKiA8L2ZkcC10YWJsZS10b29sYmFyPlxuICogYGBgXG4gKiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10YWJsZS10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRBQkxFX1RPT0xCQVIsIHVzZUV4aXN0aW5nOiBUYWJsZVRvb2xiYXJDb21wb25lbnQgfV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgICAgIFRvb2xiYXJJdGVtRGlyZWN0aXZlLFxuICAgICAgICBUb29sYmFyU2VwYXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBUb29sYmFyU3BhY2VyRGlyZWN0aXZlLFxuICAgICAgICBTZWFyY2hGaWVsZENvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgVGFibGVUb29sYmFyVGVtcGxhdGVEaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIFRhYmxlVG9vbGJhckludGVyZmFjZSB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdG9vbGJhciBzaG91bGQgaGlkZSBlbGVtZW50cyBpbiBwb3BvdmVyIHdoZW4gdGhleSBvdmVyZmxvdy5cbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvdWxkT3ZlcmZsb3cgPSBmYWxzZTtcblxuICAgIC8qKiBUYWJsZSB0aXRsZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogVG9nZ2xlIHRvIHNob3cgdGFibGUgaXRlbSBjb3VudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVJdGVtQ291bnQgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGUgdG8gc2hvdyBzZWFyY2ggaW5wdXQuICovXG4gICAgQElucHV0KClcbiAgICBoaWRlU2VhcmNoSW5wdXQgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGUgdG8gZXhwYW5kIGFuZCBjb2xsYXBzZSBhbGwgZmVhdHVyZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0V4cGFuZENvbGxhcHNlQnV0dG9ucyA9IGZhbHNlO1xuICAgIC8qKiBTdWdnZXN0aW9ucyBmb3Igc2VhcmNoIGZpZWxkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VhcmNoU3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25JdGVtW10gPSBbXTtcblxuICAgIC8qKiBUYWJsZSByb3dzIGVkaXQvYWRkIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBlZGl0TW9kZTogRWRpdE1vZGUgPSAnbm9uZSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGFibGVUb29sYmFyQWN0aW9uc0NvbXBvbmVudClcbiAgICB0YWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50OiBUYWJsZVRvb2xiYXJBY3Rpb25zQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRhYmxlVG9vbGJhckxlZnRBY3Rpb25zQ29tcG9uZW50KVxuICAgIF90YWJsZVRvb2xiYXJMZWZ0QWN0aW9uc0NvbXBvbmVudDogVGFibGVUb29sYmFyTGVmdEFjdGlvbnNDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgY29udGVudFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0YWJsZVRvb2xiYXJUaXRsZUlkOiBzdHJpbmcgPSAnZmQtdGFibGUtdG9vbGJhci10aXRsZS0nICsgdGFibGVUb29sYmFyVGl0bGVVbmlxdWVJZCsrO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd1NhdmVCdXR0b24gPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlYXJjaElucHV0VGV4dCA9ICcnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSB0YWJsZUxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fdGFibGVTZXJ2aWNlLnRhYmxlTG9hZGluZyQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJsZTogVGFibGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlU2VydmljZTogVGFibGVTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvVGFibGVFdmVudHMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN1Ym1pdFNlYXJjaChzZWFyY2g6IFNlYXJjaElucHV0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLnNlYXJjaChzZWFyY2gpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3BlblNvcnRpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLm9wZW5UYWJsZVNvcnRTZXR0aW5ncy5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvcGVuRmlsdGVyaW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5vcGVuVGFibGVGaWx0ZXJTZXR0aW5ncy5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvcGVuR3JvdXBpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLm9wZW5UYWJsZUdyb3VwU2V0dGluZ3MuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3BlbkNvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLm9wZW5UYWJsZUNvbHVtblNldHRpbmdzLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hZGRSb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLmFkZFJvdygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NhdmVSb3dzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5zYXZlUm93cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NhbmNlbEVkaXRpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLmNhbmNlbEVkaXRpbmcoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvVGFibGVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlLmVtcHR5Um93QWRkZWQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zaG93U2F2ZUJ1dHRvbiA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3RhYmxlLnNhdmUucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zaG93U2F2ZUJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl90YWJsZS5jYW5jZWwucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zaG93U2F2ZUJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl90YWJsZS5wcmVzZXRDaGFuZ2VkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZWFyY2hJbnB1dFRleHQgPSBzdGF0ZS5zZWFyY2hJbnB1dD8udGV4dCA/PyAnJztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZXhwYW5kQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZS5leHBhbmRBbGwoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb2xsYXBzZUFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUuY29sbGFwc2VBbGwoKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGVcbiAgICBmZHBUYWJsZVRvb2xiYXJUZW1wbGF0ZVxuICAgIGxldC1jb3VudGVyPVwiY291bnRlclwiXG4gICAgbGV0LXNvcnRhYmxlPVwic29ydGFibGVcIlxuICAgIGxldC1maWx0ZXJhYmxlPVwiZmlsdGVyYWJsZVwiXG4gICAgbGV0LWdyb3VwYWJsZT1cImdyb3VwYWJsZVwiXG4gICAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgICBsZXQtaGFzQW55QWN0aW9ucz1cImhhc0FueUFjdGlvbnNcIlxuPlxuICAgIDxmZC10b29sYmFyXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgW2NsZWFyQm9yZGVyXT1cInRydWVcIlxuICAgICAgICBbdGl0bGVJZF09XCJ0YWJsZVRvb2xiYXJUaXRsZUlkXCJcbiAgICAgICAgW3RpdGxlXT1cInRpdGxlICYmICFoaWRlSXRlbUNvdW50ID8gdGl0bGUgKyAnICgnICsgY291bnRlcigpICsgJyknIDogdGl0bGVcIlxuICAgICAgICBbc2hvdWxkT3ZlcmZsb3ddPVwic2hvdWxkT3ZlcmZsb3dcIlxuICAgID5cbiAgICAgICAgQGlmIChfdGFibGVUb29sYmFyTGVmdEFjdGlvbnNDb21wb25lbnQpIHtcbiAgICAgICAgICAgIDxzcGFuIGZkLXRvb2xiYXItaXRlbSBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiPlxuICAgICAgICAgICAgICAgIEBpZiAoISF0aXRsZSB8fCAhaGlkZUl0ZW1Db3VudCkge1xuICAgICAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3I+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl90YWJsZVRvb2xiYXJMZWZ0QWN0aW9uc0NvbXBvbmVudC5fY29udGVudFRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICA8ZmQtdG9vbGJhci1zcGFjZXI+PC9mZC10b29sYmFyLXNwYWNlcj5cbiAgICAgICAgQGlmICghaGlkZVNlYXJjaElucHV0KSB7XG4gICAgICAgICAgICA8ZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucmVtXT1cIjE1LjVcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyU2VhcmNoUGxhY2Vob2xkZXInIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtpbnB1dFRleHRdPVwiX3NlYXJjaElucHV0VGV4dFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhKHRhYmxlTG9hZGluZyQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIFtzdWdnZXN0aW9uc109XCJzZWFyY2hTdWdnZXN0aW9uc1wiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cInRhYmxlVG9vbGJhclRpdGxlSWRcIlxuICAgICAgICAgICAgICAgIChzZWFyY2hTdWJtaXQpPVwic3VibWl0U2VhcmNoKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjYW5jZWxTZWFyY2gpPVwic3VibWl0U2VhcmNoKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlU3VnZ2VzdGlvbnNGb3VuZEFubm91bmNlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2ZkcC1zZWFyY2gtZmllbGQ+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChlZGl0TW9kZSAhPT0gJ25vbmUnKSB7XG4gICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvbkNyZWF0ZUJ1dHRvbkxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2FkZFJvdygpXCJcbiAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICBAaWYgKF9zaG93U2F2ZUJ1dHRvbikge1xuICAgICAgICAgICAgICAgIEBpZiAoX3Nob3dTYXZlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uU2F2ZUJ1dHRvbkxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfc2F2ZVJvd3MoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvcj48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxuICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJuZXZlclwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uQ2FuY2VsQnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2NhbmNlbEVkaXRpbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAodGFibGVUb29sYmFyQWN0aW9uc0NvbXBvbmVudCB8fCBoYXNBbnlBY3Rpb25zKCkpIHtcbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3IgZmQtdG9vbGJhci1pdGVtIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCI+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHRhYmxlVG9vbGJhckFjdGlvbnNDb21wb25lbnQpIHtcbiAgICAgICAgICAgIDxzcGFuIGZkLXRvb2xiYXItaXRlbSBjbGFzcz1cImZkcC10YWJsZS10b29sYmFyLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVUb29sYmFyQWN0aW9uc0NvbXBvbmVudC5jb250ZW50VGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc2hvd0V4cGFuZENvbGxhcHNlQnV0dG9ucyB8fCBoYXNBbnlBY3Rpb25zKCkpIHtcbiAgICAgICAgICAgIEBpZiAodGFibGVUb29sYmFyQWN0aW9uc0NvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvciBmZC10b29sYmFyLWl0ZW0gZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIj48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzaG93RXhwYW5kQ29sbGFwc2VCdXR0b25zKSB7XG4gICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJleHBhbmQtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9leHBhbmRBbGwoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uRXhwYW5kQWxsQnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25FeHBhbmRBbGxCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImNvbGxhcHNlLWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfY29sbGFwc2VBbGwoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uQ29sbGFwc2VBbGxCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvbkNvbGxhcHNlQWxsQnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBidXR0b25UeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHNvcnRhYmxlKCkpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cInNvcnRcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvblNvcnRCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvblNvcnRCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU29ydGluZygpXCJcbiAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChmaWx0ZXJhYmxlKCkpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgZmRPdmVyZmxvd1ByaW9yaXR5PVwibmV2ZXJcIlxuICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uRmlsdGVyQnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25GaWx0ZXJCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRmlsdGVyaW5nKClcIlxuICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGdyb3VwYWJsZSgpKSB7XG4gICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJncm91cC0yXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRhYmxlLnRvb2xiYXJBY3Rpb25Hcm91cEJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm1UYWJsZS50b29sYmFyQWN0aW9uR3JvdXBCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuR3JvdXBpbmcoKVwiXG4gICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY29sdW1ucygpKSB7XG4gICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cIm5ldmVyXCJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJhY3Rpb24tc2V0dGluZ3NcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvbkNvbHVtbnNCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUudG9vbGJhckFjdGlvbkNvbHVtbnNCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ29sdW1ucygpXCJcbiAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9mZC10b29sYmFyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, signal, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import equal from 'fast-deep-equal/es6';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
3
|
import { DialogRef } from '@fundamental-ngx/core/dialog';
|
|
5
4
|
import { CdkScrollable } from '@angular/cdk/overlay';
|
|
6
5
|
import { NgTemplateOutlet } from '@angular/common';
|
|
@@ -49,10 +48,8 @@ export class FiltersComponent {
|
|
|
49
48
|
this.activeFilter = null;
|
|
50
49
|
/** Table column key associated with the currently selected filter */
|
|
51
50
|
this.activeFilterColumnKey = null;
|
|
52
|
-
/** @hidden */
|
|
53
|
-
this._isResetAvailableSubject$ = new BehaviorSubject(false);
|
|
54
51
|
/** Indicates when reset command is available */
|
|
55
|
-
this.isResetAvailable$ =
|
|
52
|
+
this.isResetAvailable$ = signal(false);
|
|
56
53
|
/** @hidden */
|
|
57
54
|
this._initialFilters = [];
|
|
58
55
|
const dialogData = this.dialogRef.data;
|
|
@@ -99,7 +96,7 @@ export class FiltersComponent {
|
|
|
99
96
|
/** Reset changes to the initial state */
|
|
100
97
|
reset() {
|
|
101
98
|
this.filterBy = this._initialFilters;
|
|
102
|
-
this.
|
|
99
|
+
this.isResetAvailable$.set(false);
|
|
103
100
|
this._cd.detectChanges();
|
|
104
101
|
}
|
|
105
102
|
/** Close dialog */
|
|
@@ -120,7 +117,7 @@ export class FiltersComponent {
|
|
|
120
117
|
if (equal(this._initialFilters, this.filterBy)) {
|
|
121
118
|
return;
|
|
122
119
|
}
|
|
123
|
-
this.
|
|
120
|
+
this.isResetAvailable$.set(true);
|
|
124
121
|
}
|
|
125
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FiltersComponent, deps: [{ token: i1.DialogRef }, { token: i0.ChangeDetectorRef }, { token: i2.Table }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
126
123
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: FiltersComponent, isStandalone: true, selector: "ng-component", providers: [{ provide: RESETTABLE_TOKEN, useExisting: forwardRef(() => FiltersComponent) }], viewQueries: [{ propertyName: "setActiveFilterStepView", first: true, predicate: FILTERS_VIEW_STEP_TOKEN, descendants: true }], ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n @if (activeFilterStepView?.titleTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"activeFilterStepView.titleTemplateRef\"></ng-container>\n }\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n @if (activeFilterStepView?.bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"activeFilterStepView.bodyTemplateRef\"></ng-container>\n }\n </fd-dialog-body>\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformTable.filterDialogConfirmBtnLabel' | fdTranslate\"\n (click)=\"confirm()\"\n >\n </fd-button-bar>\n <fd-button-bar\n [label]=\"'platformTable.filterDialogCancelBtnLabel' | fdTranslate\"\n fdkInitialFocus\n (click)=\"cancel()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n<!-- Keep active step component -->\n@if (activeStep === ACTIVE_STEP.SELECT_FILTER) {\n <fdp-filters-list-step\n [filters]=\"viewSettingsFilters\"\n (selectFilter)=\"selectFilter($event)\"\n ></fdp-filters-list-step>\n} @else if (activeStep === ACTIVE_STEP.FILTER) {\n <fdp-filter-step\n [columnKey]=\"activeFilterColumnKey!\"\n [filter]=\"activeFilter!\"\n [filterBy]=\"filterBy\"\n (back)=\"goToFilters()\"\n (valueChange)=\"applyFilter($event, activeFilter!)\"\n ></fdp-filter-step>\n}\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ResetButtonComponent, selector: "fdp-table-reset-button" }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: FiltersListStepComponent, selector: "fdp-filters-list-step", inputs: ["filters"], outputs: ["selectFilter"] }, { kind: "component", type: FilterStepComponent, selector: "fdp-filter-step", inputs: ["filter", "columnKey", "contentDensity", "filterBy"], outputs: ["back", "valueChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
@@ -149,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
149
146
|
type: ViewChild,
|
|
150
147
|
args: [FILTERS_VIEW_STEP_TOKEN]
|
|
151
148
|
}] } });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtdmlldy1zZXR0aW5ncy1kaWFsb2cvZmlsdGVyaW5nL2ZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90YWJsZS9jb21wb25lbnRzL3RhYmxlLXZpZXctc2V0dGluZ3MtZGlhbG9nL2ZpbHRlcmluZy9maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUNILG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDeEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVB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QkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixlQUFlO3FCQUNsQjtrSUEwQ0csdUJBQXVCO3NCQUQxQixTQUFTO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcblxuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQge1xuICAgIEJhckVsZW1lbnREaXJlY3RpdmUsXG4gICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICBCdXR0b25CYXJDb21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQge1xuICAgIERpYWxvZ0JvZHlDb21wb25lbnQsXG4gICAgRGlhbG9nQ29tcG9uZW50LFxuICAgIERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgICBEaWFsb2dIZWFkZXJDb21wb25lbnRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQge1xuICAgIENvbGxlY3Rpb25GaWx0ZXIsXG4gICAgRmlsdGVyVHlwZSxcbiAgICBUYWJsZSxcbiAgICBUYWJsZUNvbHVtbixcbiAgICBUYWJsZURpYWxvZ0NvbW1vbkRhdGFcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZS1oZWxwZXJzJztcbmltcG9ydCB7IFJlc2V0QnV0dG9uQ29tcG9uZW50LCBSZXNldHRhYmxlLCBSRVNFVFRBQkxFX1RPS0VOIH0gZnJvbSAnLi4vLi4vcmVzZXQtYnV0dG9uL3Jlc2V0LWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVWaWV3U2V0dGluZ3NGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS12aWV3LXNldHRpbmdzLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZJTFRFUlNfVklFV19TVEVQX1RPS0VOLCBGaWx0ZXJzVmlld1N0ZXAgfSBmcm9tICcuL2ZpbHRlcnMtYWN0aXZlLXN0ZXAnO1xuaW1wb3J0IHsgRmlsdGVyc0xpc3RTdGVwQ29tcG9uZW50LCBTZWxlY3RhYmxlRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXJzLWxpc3Qtc3RlcC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlcnNEaWFsb2dEYXRhIGV4dGVuZHMgVGFibGVEaWFsb2dDb21tb25EYXRhIHtcbiAgICBmaWx0ZXJCeTogQ29sbGVjdGlvbkZpbHRlcltdO1xuICAgIGNvbHVtbnM6IFRhYmxlQ29sdW1uW107XG4gICAgdmlld1NldHRpbmdzRmlsdGVyczogVGFibGVWaWV3U2V0dGluZ3NGaWx0ZXJDb21wb25lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJzRGlhbG9nUmVzdWx0RGF0YSB7XG4gICAgZmlsdGVyQnk6IENvbGxlY3Rpb25GaWx0ZXJbXTtcbn1cblxuZXhwb3J0IGVudW0gQUNUSVZFX1NURVAge1xuICAgIFNFTEVDVF9GSUxURVIgPSAnU0VMRUNUX0ZJTFRFUicsXG4gICAgRklMVEVSID0gJ0ZJTFRFUidcbn1cblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUkVTRVRUQUJMRV9UT0tFTiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsdGVyc0NvbXBvbmVudCkgfV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBCYXJMZWZ0RGlyZWN0aXZlLFxuICAgICAgICBCYXJFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBCYXJSaWdodERpcmVjdGl2ZSxcbiAgICAgICAgUmVzZXRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIENka1Njcm9sbGFibGUsXG4gICAgICAgIFNjcm9sbGJhckRpcmVjdGl2ZSxcbiAgICAgICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25CYXJDb21wb25lbnQsXG4gICAgICAgIEZpbHRlcnNMaXN0U3RlcENvbXBvbmVudCxcbiAgICAgICAgRmlsdGVyU3RlcENvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgUmVzZXR0YWJsZSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgYXZhaWxhYmxlIHN0ZXBzICovXG4gICAgcmVhZG9ubHkgQUNUSVZFX1NURVAgPSBBQ1RJVkVfU1RFUDtcblxuICAgIC8qKiBDdXJyZW50bHkgYXBwbGllZCBmaWx0ZXJzIHJ1bGVzICovXG4gICAgZmlsdGVyQnk6IENvbGxlY3Rpb25GaWx0ZXJbXTtcblxuICAgIC8qKiBUYWJsZSBjb2x1bW5zLiBVc2VkIHRvIHJldHJpZXZlIGEgY29sdW1uIGtleSAqL1xuICAgIGNvbHVtbnM6IFRhYmxlQ29sdW1uW107XG5cbiAgICAvKiogRGVjbGFyZWQgZmlsdGVycyBvcHRpb25zICovXG4gICAgdmlld1NldHRpbmdzRmlsdGVyczogVGFibGVWaWV3U2V0dGluZ3NGaWx0ZXJDb21wb25lbnRbXTtcblxuICAgIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgc3RlcCAqL1xuICAgIGFjdGl2ZVN0ZXA6IEFDVElWRV9TVEVQID0gQUNUSVZFX1NURVAuU0VMRUNUX0ZJTFRFUjtcblxuICAgIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgZmlsdGVyIHRvIGRyaWxsIGRvd24gKi9cbiAgICBhY3RpdmVGaWx0ZXI6IFRhYmxlVmlld1NldHRpbmdzRmlsdGVyQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogVGFibGUgY29sdW1uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmaWx0ZXIgICovXG4gICAgYWN0aXZlRmlsdGVyQ29sdW1uS2V5OiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNSZXNldEF2YWlsYWJsZVN1YmplY3QkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZW4gcmVzZXQgY29tbWFuZCBpcyBhdmFpbGFibGUgKi9cbiAgICByZWFkb25seSBpc1Jlc2V0QXZhaWxhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2lzUmVzZXRBdmFpbGFibGVTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5pdGlhbEZpbHRlcnM6IENvbGxlY3Rpb25GaWx0ZXJbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCBGaWx0ZXJzVmlld1N0ZXAgY29tcG9uZW50IHRvIHJlbmRlci5cbiAgICAgKiBUaGUgZmQtZGlhbG9nIGNvbXBvbmVudCByZWxpZXMgb24gbmFtZWQgcHJvamVjdGVkIGNvbnRlbnQuXG4gICAgICogSXQgbWVhbnMgd2UgbXVzdCBkZWZpbmUgYWxsIHByb2plY3RlZCBkaWFsb2cgb3B0aW9ucyBpbiB0aGUgc2FtZSB2aWV3IHdpdGhpbmcgZmQtZGlhbG9nLlxuICAgICAqIEluIG9yZGVyIHRvIGtlZXAgZmlsdGVycyBzdGVwcyBhcyBzZXBhcmF0ZSBjb21wb25lbnRzXG4gICAgICogYW5kIGRvIG5vdCBicmVhayBkaWFsb2cgY29udGVudCB3ZSBhcmUgdXNpbmcgdGhpcyBWaWV3Q2hpbGQgaG9va1xuICAgICAqIGtlZXBpbmcgcmVmZXJlbmNlIHRvIHRoZSBjb25kaXRpb25hbGx5IHJlbmRlcmVkIGFjdGl2ZSBzdGVwLlxuICAgICAqIEVhY2ggXCJGaWx0ZXJTdGVwVmlld1wiIGhhcyB0ZW1wbGF0ZSByZWZzIGZvciBkaWFsb2cudGl0bGUgYW5kIGRpYWxvZy5ib2R5IHRlbXBsYXRlXG4gICAgICogKi9cbiAgICBAVmlld0NoaWxkKEZJTFRFUlNfVklFV19TVEVQX1RPS0VOKVxuICAgIHNldCBzZXRBY3RpdmVGaWx0ZXJTdGVwVmlldyh2aWV3OiBGaWx0ZXJzVmlld1N0ZXApIHtcbiAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJTdGVwVmlldyA9IHZpZXc7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQ3VycmVudCBzdGVwIGNvbXBvbmVudCB0byByZW5kZXIgKi9cbiAgICBhY3RpdmVGaWx0ZXJTdGVwVmlldzogRmlsdGVyc1ZpZXdTdGVwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGRpYWxvZ1JlZjogRGlhbG9nUmVmPEZpbHRlcnNEaWFsb2dEYXRhPixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJsZTogVGFibGVcbiAgICApIHtcbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YSA9IHRoaXMuZGlhbG9nUmVmLmRhdGE7XG4gICAgICAgIHRoaXMuZmlsdGVyQnkgPSBbLi4uZGlhbG9nRGF0YS5maWx0ZXJCeV07XG4gICAgICAgIHRoaXMudmlld1NldHRpbmdzRmlsdGVycyA9IGRpYWxvZ0RhdGEudmlld1NldHRpbmdzRmlsdGVycztcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gZGlhbG9nRGF0YS5jb2x1bW5zO1xuXG4gICAgICAgIHRoaXMuX3NldEluaXRpYWxGaWx0ZXJzKCk7XG4gICAgICAgIHRoaXMuX2NvbXBhcmVTZWxlY3RlZEZpbHRlcnMoKTtcbiAgICB9XG5cbiAgICAvKiogTmVlZCBpdCB0byBrZWVwIGFjdGl2ZUZpbHRlclN0ZXBWaWV3IHJlbmRlcmluZyB1cCB0byBkYXRlICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFNlbGVjdCBmaWx0ZXIgdG8gZHJpbGwgZG93biAqL1xuICAgIHNlbGVjdEZpbHRlcihmaWx0ZXI6IFNlbGVjdGFibGVGaWx0ZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gQUNUSVZFX1NURVAuRklMVEVSO1xuICAgICAgICB0aGlzLmFjdGl2ZUZpbHRlciA9IGZpbHRlciBhcyBUYWJsZVZpZXdTZXR0aW5nc0ZpbHRlckNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJDb2x1bW5LZXkgPSB0aGlzLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgICh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gKDxUYWJsZVZpZXdTZXR0aW5nc0ZpbHRlckNvbXBvbmVudD5maWx0ZXIpLmNvbHVtblxuICAgICAgICApPy5rZXk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogR28gYmFjayB0byB0aGUgdG9wIGZpbHRlcnMgbGlzdCAqL1xuICAgIGdvVG9GaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAgPSBBQ1RJVkVfU1RFUC5TRUxFQ1RfRklMVEVSO1xuICAgICAgICB0aGlzLmFjdGl2ZUZpbHRlciA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqIEFwcGx5IGZpbHRlciBydWxlIGNoYW5nZXMgYW5kIGVtaXQgdGhlIGV2ZW50ICovXG4gICAgYXBwbHlGaWx0ZXIoZmlsdGVyOiBDb2xsZWN0aW9uRmlsdGVyLCB7IHR5cGUgfTogVGFibGVWaWV3U2V0dGluZ3NGaWx0ZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBleGNsdWRlIHRoaXMgZmlsdGVyIGZyb20gZmlsdGVycyBsaXN0XG4gICAgICAgIHRoaXMuZmlsdGVyQnkgPSB0aGlzLmZpbHRlckJ5LmZpbHRlcigoeyBmaWVsZCB9KSA9PiBmaWVsZCAhPT0gZmlsdGVyLmZpZWxkKTtcblxuICAgICAgICBjb25zdCBmaWx0ZXJJc05vdEVtcHR5ID1cbiAgICAgICAgICAgIHR5cGUgPT09IEZpbHRlclR5cGUuQ1VTVE9NIHx8XG4gICAgICAgICAgICAodHlwZSA9PT0gRmlsdGVyVHlwZS5NVUxUSSAmJiBmaWx0ZXIudmFsdWU/Lmxlbmd0aCkgfHxcbiAgICAgICAgICAgICh0eXBlID09PSBGaWx0ZXJUeXBlLlNJTkdMRSAmJiBmaWx0ZXIudmFsdWU/Lmxlbmd0aCk7XG5cbiAgICAgICAgLy8gaWYgZmlsdGVyIGlzIG5vdCBlbXB0eSBhZGQgaXQgdG8gdGhlIGxpc3RcbiAgICAgICAgaWYgKGZpbHRlcklzTm90RW1wdHkpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyQnkucHVzaChmaWx0ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY29tcGFyZVNlbGVjdGVkRmlsdGVycygpO1xuXG4gICAgICAgIC8vIFRvIGZpeCBcIkV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWRcIlxuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFJlc2V0IGNoYW5nZXMgdG8gdGhlIGluaXRpYWwgc3RhdGUgKi9cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJCeSA9IHRoaXMuX2luaXRpYWxGaWx0ZXJzO1xuICAgICAgICB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2UgZGlhbG9nICovXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShudWxsKTtcbiAgICB9XG5cbiAgICAvKiogQ29uZmlybSBjaGFuZ2VzIGFuZCBjbG9zZSBkaWFsb2cgKi9cbiAgICBjb25maXJtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXN1bHQ6IEZpbHRlcnNEaWFsb2dSZXN1bHREYXRhID0geyBmaWx0ZXJCeTogdGhpcy5maWx0ZXJCeSB9O1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0SW5pdGlhbEZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxGaWx0ZXJzID0gdGhpcy5fdGFibGUuaW5pdGlhbFN0YXRlPy5pbml0aWFsRmlsdGVyQnkgPz8gW107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb21wYXJlU2VsZWN0ZWRGaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICBpZiAoZXF1YWwodGhpcy5faW5pdGlhbEZpbHRlcnMsIHRoaXMuZmlsdGVyQnkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pc1Jlc2V0QXZhaWxhYmxlU3ViamVjdCQubmV4dCh0cnVlKTtcbiAgICB9XG59XG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgZmRrVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZUZpbHRlclN0ZXBWaWV3Py50aXRsZVRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGl2ZUZpbHRlclN0ZXBWaWV3LnRpdGxlVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC10YWJsZS1yZXNldC1idXR0b24+PC9mZHAtdGFibGUtcmVzZXQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG4gICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICBAaWYgKGFjdGl2ZUZpbHRlclN0ZXBWaWV3Py5ib2R5VGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aXZlRmlsdGVyU3RlcFZpZXcuYm9keVRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUuZmlsdGVyRGlhbG9nQ29uZmlybUJ0bkxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb25maXJtKClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1UYWJsZS5maWx0ZXJEaWFsb2dDYW5jZWxCdG5MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBmZGtJbml0aWFsRm9jdXNcbiAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbjwvZmQtZGlhbG9nPlxuPCEtLSBLZWVwIGFjdGl2ZSBzdGVwIGNvbXBvbmVudCAgLS0+XG5AaWYgKGFjdGl2ZVN0ZXAgPT09IEFDVElWRV9TVEVQLlNFTEVDVF9GSUxURVIpIHtcbiAgICA8ZmRwLWZpbHRlcnMtbGlzdC1zdGVwXG4gICAgICAgIFtmaWx0ZXJzXT1cInZpZXdTZXR0aW5nc0ZpbHRlcnNcIlxuICAgICAgICAoc2VsZWN0RmlsdGVyKT1cInNlbGVjdEZpbHRlcigkZXZlbnQpXCJcbiAgICA+PC9mZHAtZmlsdGVycy1saXN0LXN0ZXA+XG59IEBlbHNlIGlmIChhY3RpdmVTdGVwID09PSBBQ1RJVkVfU1RFUC5GSUxURVIpIHtcbiAgICA8ZmRwLWZpbHRlci1zdGVwXG4gICAgICAgIFtjb2x1bW5LZXldPVwiYWN0aXZlRmlsdGVyQ29sdW1uS2V5IVwiXG4gICAgICAgIFtmaWx0ZXJdPVwiYWN0aXZlRmlsdGVyIVwiXG4gICAgICAgIFtmaWx0ZXJCeV09XCJmaWx0ZXJCeVwiXG4gICAgICAgIChiYWNrKT1cImdvVG9GaWx0ZXJzKClcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiYXBwbHlGaWx0ZXIoJGV2ZW50LCBhY3RpdmVGaWx0ZXIhKVwiXG4gICAgPjwvZmRwLWZpbHRlci1zdGVwPlxufVxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtdmlldy1zZXR0aW5ncy1kaWFsb2cvZmlsdGVyaW5nL2ZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90YWJsZS9jb21wb25lbnRzL3RhYmxlLXZpZXctc2V0dGluZ3MtZGlhbG9nL2ZpbHRlcmluZy9maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7QUFHeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNILG1CQUFtQixFQUNuQixlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztB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QixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLGVBQWU7cUJBQ2xCO2tJQXdDRyx1QkFBdUI7c0JBRDFCLFNBQVM7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIHNpZ25hbCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5cbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBCYXJFbGVtZW50RGlyZWN0aXZlLFxuICAgIEJhckxlZnREaXJlY3RpdmUsXG4gICAgQmFyUmlnaHREaXJlY3RpdmUsXG4gICAgQnV0dG9uQmFyQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHtcbiAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEaWFsb2dGb290ZXJDb21wb25lbnQsXG4gICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHtcbiAgICBDb2xsZWN0aW9uRmlsdGVyLFxuICAgIEZpbHRlclR5cGUsXG4gICAgVGFibGUsXG4gICAgVGFibGVDb2x1bW4sXG4gICAgVGFibGVEaWFsb2dDb21tb25EYXRhXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vdGFibGUtaGVscGVycyc7XG5pbXBvcnQgeyBSZXNldEJ1dHRvbkNvbXBvbmVudCwgUmVzZXR0YWJsZSwgUkVTRVRUQUJMRV9UT0tFTiB9IGZyb20gJy4uLy4uL3Jlc2V0LWJ1dHRvbi9yZXNldC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlVmlld1NldHRpbmdzRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtdmlldy1zZXR0aW5ncy1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlclN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGSUxURVJTX1ZJRVdfU1RFUF9UT0tFTiwgRmlsdGVyc1ZpZXdTdGVwIH0gZnJvbSAnLi9maWx0ZXJzLWFjdGl2ZS1zdGVwJztcbmltcG9ydCB7IEZpbHRlcnNMaXN0U3RlcENvbXBvbmVudCwgU2VsZWN0YWJsZUZpbHRlciB9IGZyb20gJy4vZmlsdGVycy1saXN0LXN0ZXAuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJzRGlhbG9nRGF0YSBleHRlbmRzIFRhYmxlRGlhbG9nQ29tbW9uRGF0YSB7XG4gICAgZmlsdGVyQnk6IENvbGxlY3Rpb25GaWx0ZXJbXTtcbiAgICBjb2x1bW5zOiBUYWJsZUNvbHVtbltdO1xuICAgIHZpZXdTZXR0aW5nc0ZpbHRlcnM6IFRhYmxlVmlld1NldHRpbmdzRmlsdGVyQ29tcG9uZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyc0RpYWxvZ1Jlc3VsdERhdGEge1xuICAgIGZpbHRlckJ5OiBDb2xsZWN0aW9uRmlsdGVyW107XG59XG5cbmV4cG9ydCBlbnVtIEFDVElWRV9TVEVQIHtcbiAgICBTRUxFQ1RfRklMVEVSID0gJ1NFTEVDVF9GSUxURVInLFxuICAgIEZJTFRFUiA9ICdGSUxURVInXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJFU0VUVEFCTEVfVE9LRU4sIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbHRlcnNDb21wb25lbnQpIH1dLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgQmFyTGVmdERpcmVjdGl2ZSxcbiAgICAgICAgQmFyRWxlbWVudERpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQmFyUmlnaHREaXJlY3RpdmUsXG4gICAgICAgIFJlc2V0QnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIERpYWxvZ0JvZHlDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ0Zvb3RlckNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQmFyQ29tcG9uZW50LFxuICAgICAgICBGaWx0ZXJzTGlzdFN0ZXBDb21wb25lbnQsXG4gICAgICAgIEZpbHRlclN0ZXBDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIFJlc2V0dGFibGUsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGF2YWlsYWJsZSBzdGVwcyAqL1xuICAgIHJlYWRvbmx5IEFDVElWRV9TVEVQID0gQUNUSVZFX1NURVA7XG5cbiAgICAvKiogQ3VycmVudGx5IGFwcGxpZWQgZmlsdGVycyBydWxlcyAqL1xuICAgIGZpbHRlckJ5OiBDb2xsZWN0aW9uRmlsdGVyW107XG5cbiAgICAvKiogVGFibGUgY29sdW1ucy4gVXNlZCB0byByZXRyaWV2ZSBhIGNvbHVtbiBrZXkgKi9cbiAgICBjb2x1bW5zOiBUYWJsZUNvbHVtbltdO1xuXG4gICAgLyoqIERlY2xhcmVkIGZpbHRlcnMgb3B0aW9ucyAqL1xuICAgIHZpZXdTZXR0aW5nc0ZpbHRlcnM6IFRhYmxlVmlld1NldHRpbmdzRmlsdGVyQ29tcG9uZW50W107XG5cbiAgICAvKiogQ3VycmVudGx5IHNlbGVjdGVkIHN0ZXAgKi9cbiAgICBhY3RpdmVTdGVwOiBBQ1RJVkVfU1RFUCA9IEFDVElWRV9TVEVQLlNFTEVDVF9GSUxURVI7XG5cbiAgICAvKiogQ3VycmVudGx5IHNlbGVjdGVkIGZpbHRlciB0byBkcmlsbCBkb3duICovXG4gICAgYWN0aXZlRmlsdGVyOiBUYWJsZVZpZXdTZXR0aW5nc0ZpbHRlckNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIFRhYmxlIGNvbHVtbiBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZmlsdGVyICAqL1xuICAgIGFjdGl2ZUZpbHRlckNvbHVtbktleTogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZW4gcmVzZXQgY29tbWFuZCBpcyBhdmFpbGFibGUgKi9cbiAgICByZWFkb25seSBpc1Jlc2V0QXZhaWxhYmxlJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxGaWx0ZXJzOiBDb2xsZWN0aW9uRmlsdGVyW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgRmlsdGVyc1ZpZXdTdGVwIGNvbXBvbmVudCB0byByZW5kZXIuXG4gICAgICogVGhlIGZkLWRpYWxvZyBjb21wb25lbnQgcmVsaWVzIG9uIG5hbWVkIHByb2plY3RlZCBjb250ZW50LlxuICAgICAqIEl0IG1lYW5zIHdlIG11c3QgZGVmaW5lIGFsbCBwcm9qZWN0ZWQgZGlhbG9nIG9wdGlvbnMgaW4gdGhlIHNhbWUgdmlldyB3aXRoaW5nIGZkLWRpYWxvZy5cbiAgICAgKiBJbiBvcmRlciB0byBrZWVwIGZpbHRlcnMgc3RlcHMgYXMgc2VwYXJhdGUgY29tcG9uZW50c1xuICAgICAqIGFuZCBkbyBub3QgYnJlYWsgZGlhbG9nIGNvbnRlbnQgd2UgYXJlIHVzaW5nIHRoaXMgVmlld0NoaWxkIGhvb2tcbiAgICAgKiBrZWVwaW5nIHJlZmVyZW5jZSB0byB0aGUgY29uZGl0aW9uYWxseSByZW5kZXJlZCBhY3RpdmUgc3RlcC5cbiAgICAgKiBFYWNoIFwiRmlsdGVyU3RlcFZpZXdcIiBoYXMgdGVtcGxhdGUgcmVmcyBmb3IgZGlhbG9nLnRpdGxlIGFuZCBkaWFsb2cuYm9keSB0ZW1wbGF0ZVxuICAgICAqICovXG4gICAgQFZpZXdDaGlsZChGSUxURVJTX1ZJRVdfU1RFUF9UT0tFTilcbiAgICBzZXQgc2V0QWN0aXZlRmlsdGVyU3RlcFZpZXcodmlldzogRmlsdGVyc1ZpZXdTdGVwKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlRmlsdGVyU3RlcFZpZXcgPSB2aWV3O1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEN1cnJlbnQgc3RlcCBjb21wb25lbnQgdG8gcmVuZGVyICovXG4gICAgYWN0aXZlRmlsdGVyU3RlcFZpZXc6IEZpbHRlcnNWaWV3U3RlcDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBkaWFsb2dSZWY6IERpYWxvZ1JlZjxGaWx0ZXJzRGlhbG9nRGF0YT4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGFibGU6IFRhYmxlXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGEgPSB0aGlzLmRpYWxvZ1JlZi5kYXRhO1xuICAgICAgICB0aGlzLmZpbHRlckJ5ID0gWy4uLmRpYWxvZ0RhdGEuZmlsdGVyQnldO1xuICAgICAgICB0aGlzLnZpZXdTZXR0aW5nc0ZpbHRlcnMgPSBkaWFsb2dEYXRhLnZpZXdTZXR0aW5nc0ZpbHRlcnM7XG4gICAgICAgIHRoaXMuY29sdW1ucyA9IGRpYWxvZ0RhdGEuY29sdW1ucztcblxuICAgICAgICB0aGlzLl9zZXRJbml0aWFsRmlsdGVycygpO1xuICAgICAgICB0aGlzLl9jb21wYXJlU2VsZWN0ZWRGaWx0ZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqIE5lZWQgaXQgdG8ga2VlcCBhY3RpdmVGaWx0ZXJTdGVwVmlldyByZW5kZXJpbmcgdXAgdG8gZGF0ZSAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBTZWxlY3QgZmlsdGVyIHRvIGRyaWxsIGRvd24gKi9cbiAgICBzZWxlY3RGaWx0ZXIoZmlsdGVyOiBTZWxlY3RhYmxlRmlsdGVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9IEFDVElWRV9TVEVQLkZJTFRFUjtcbiAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSBmaWx0ZXIgYXMgVGFibGVWaWV3U2V0dGluZ3NGaWx0ZXJDb21wb25lbnQ7XG4gICAgICAgIHRoaXMuYWN0aXZlRmlsdGVyQ29sdW1uS2V5ID0gdGhpcy5jb2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAoeyBuYW1lIH0pID0+IG5hbWUgPT09ICg8VGFibGVWaWV3U2V0dGluZ3NGaWx0ZXJDb21wb25lbnQ+ZmlsdGVyKS5jb2x1bW5cbiAgICAgICAgKT8ua2V5O1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEdvIGJhY2sgdG8gdGhlIHRvcCBmaWx0ZXJzIGxpc3QgKi9cbiAgICBnb1RvRmlsdGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gQUNUSVZFX1NURVAuU0VMRUNUX0ZJTFRFUjtcbiAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKiBBcHBseSBmaWx0ZXIgcnVsZSBjaGFuZ2VzIGFuZCBlbWl0IHRoZSBldmVudCAqL1xuICAgIGFwcGx5RmlsdGVyKGZpbHRlcjogQ29sbGVjdGlvbkZpbHRlciwgeyB0eXBlIH06IFRhYmxlVmlld1NldHRpbmdzRmlsdGVyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghZmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXhjbHVkZSB0aGlzIGZpbHRlciBmcm9tIGZpbHRlcnMgbGlzdFxuICAgICAgICB0aGlzLmZpbHRlckJ5ID0gdGhpcy5maWx0ZXJCeS5maWx0ZXIoKHsgZmllbGQgfSkgPT4gZmllbGQgIT09IGZpbHRlci5maWVsZCk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVySXNOb3RFbXB0eSA9XG4gICAgICAgICAgICB0eXBlID09PSBGaWx0ZXJUeXBlLkNVU1RPTSB8fFxuICAgICAgICAgICAgKHR5cGUgPT09IEZpbHRlclR5cGUuTVVMVEkgJiYgZmlsdGVyLnZhbHVlPy5sZW5ndGgpIHx8XG4gICAgICAgICAgICAodHlwZSA9PT0gRmlsdGVyVHlwZS5TSU5HTEUgJiYgZmlsdGVyLnZhbHVlPy5sZW5ndGgpO1xuXG4gICAgICAgIC8vIGlmIGZpbHRlciBpcyBub3QgZW1wdHkgYWRkIGl0IHRvIHRoZSBsaXN0XG4gICAgICAgIGlmIChmaWx0ZXJJc05vdEVtcHR5KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckJ5LnB1c2goZmlsdGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NvbXBhcmVTZWxlY3RlZEZpbHRlcnMoKTtcblxuICAgICAgICAvLyBUbyBmaXggXCJFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkXCJcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBSZXNldCBjaGFuZ2VzIHRvIHRoZSBpbml0aWFsIHN0YXRlICovXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyQnkgPSB0aGlzLl9pbml0aWFsRmlsdGVycztcbiAgICAgICAgdGhpcy5pc1Jlc2V0QXZhaWxhYmxlJC5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIENsb3NlIGRpYWxvZyAqL1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UobnVsbCk7XG4gICAgfVxuXG4gICAgLyoqIENvbmZpcm0gY2hhbmdlcyBhbmQgY2xvc2UgZGlhbG9nICovXG4gICAgY29uZmlybSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBGaWx0ZXJzRGlhbG9nUmVzdWx0RGF0YSA9IHsgZmlsdGVyQnk6IHRoaXMuZmlsdGVyQnkgfTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzdWx0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldEluaXRpYWxGaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0aWFsRmlsdGVycyA9IHRoaXMuX3RhYmxlLmluaXRpYWxTdGF0ZT8uaW5pdGlhbEZpbHRlckJ5ID8/IFtdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29tcGFyZVNlbGVjdGVkRmlsdGVycygpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVxdWFsKHRoaXMuX2luaXRpYWxGaWx0ZXJzLCB0aGlzLmZpbHRlckJ5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Jlc2V0QXZhaWxhYmxlJC5zZXQodHJ1ZSk7XG4gICAgfVxufVxuIiwiPGZkLWRpYWxvZz5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgIDxmZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVGaWx0ZXJTdGVwVmlldz8udGl0bGVUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3RpdmVGaWx0ZXJTdGVwVmlldy50aXRsZVRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtcmVzZXQtYnV0dG9uPjwvZmRwLXRhYmxlLXJlc2V0LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuICAgIDxmZC1kaWFsb2ctYm9keT5cbiAgICAgICAgQGlmIChhY3RpdmVGaWx0ZXJTdGVwVmlldz8uYm9keVRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGl2ZUZpbHRlclN0ZXBWaWV3LmJvZHlUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cbiAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgIGZkVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVRhYmxlLmZpbHRlckRpYWxvZ0NvbmZpcm1CdG5MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVGFibGUuZmlsdGVyRGlhbG9nQ2FuY2VsQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgZmRrSW5pdGlhbEZvY3VzXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG48L2ZkLWRpYWxvZz5cbjwhLS0gS2VlcCBhY3RpdmUgc3RlcCBjb21wb25lbnQgIC0tPlxuQGlmIChhY3RpdmVTdGVwID09PSBBQ1RJVkVfU1RFUC5TRUxFQ1RfRklMVEVSKSB7XG4gICAgPGZkcC1maWx0ZXJzLWxpc3Qtc3RlcFxuICAgICAgICBbZmlsdGVyc109XCJ2aWV3U2V0dGluZ3NGaWx0ZXJzXCJcbiAgICAgICAgKHNlbGVjdEZpbHRlcik9XCJzZWxlY3RGaWx0ZXIoJGV2ZW50KVwiXG4gICAgPjwvZmRwLWZpbHRlcnMtbGlzdC1zdGVwPlxufSBAZWxzZSBpZiAoYWN0aXZlU3RlcCA9PT0gQUNUSVZFX1NURVAuRklMVEVSKSB7XG4gICAgPGZkcC1maWx0ZXItc3RlcFxuICAgICAgICBbY29sdW1uS2V5XT1cImFjdGl2ZUZpbHRlckNvbHVtbktleSFcIlxuICAgICAgICBbZmlsdGVyXT1cImFjdGl2ZUZpbHRlciFcIlxuICAgICAgICBbZmlsdGVyQnldPVwiZmlsdGVyQnlcIlxuICAgICAgICAoYmFjayk9XCJnb1RvRmlsdGVycygpXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImFwcGx5RmlsdGVyKCRldmVudCwgYWN0aXZlRmlsdGVyISlcIlxuICAgID48L2ZkcC1maWx0ZXItc3RlcD5cbn1cbiJdfQ==
|