@skyux/data-manager 11.30.1 → 12.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +314 -313
- package/fesm2022/skyux-data-manager.mjs +47 -47
- package/fesm2022/skyux-data-manager.mjs.map +1 -1
- package/package.json +14 -16
- package/esm2022/index.mjs +0 -17
- package/esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.mjs +0 -9
- package/esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.mjs +0 -14
- package/esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-providers.mjs +0 -9
- package/esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.mjs +0 -171
- package/esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.mjs +0 -16
- package/esm2022/lib/modules/data-manager/data-manager-filter-context.mjs +0 -7
- package/esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.mjs +0 -18
- package/esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.mjs +0 -18
- package/esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.mjs +0 -17
- package/esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.mjs +0 -18
- package/esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.mjs +0 -222
- package/esm2022/lib/modules/data-manager/data-manager.component.mjs +0 -118
- package/esm2022/lib/modules/data-manager/data-manager.module.mjs +0 -56
- package/esm2022/lib/modules/data-manager/data-manager.service.mjs +0 -310
- package/esm2022/lib/modules/data-manager/data-view.component.mjs +0 -86
- package/esm2022/lib/modules/data-manager/models/data-manager-column-picker-option.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.mjs +0 -16
- package/esm2022/lib/modules/data-manager/models/data-manager-config.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-manager-filter-data.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-manager-init-args.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-manager-sort-option.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-manager-state-change.mjs +0 -11
- package/esm2022/lib/modules/data-manager/models/data-manager-state-options.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-manager-state-update-filter-args.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-manager-state.mjs +0 -70
- package/esm2022/lib/modules/data-manager/models/data-manager-summary-change.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-manager-summary.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-view-column-widths.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-view-config.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-view-state-options.mjs +0 -2
- package/esm2022/lib/modules/data-manager/models/data-view-state.mjs +0 -38
- package/esm2022/lib/modules/shared/sky-data-manager-resources.module.mjs +0 -65
- package/esm2022/skyux-data-manager.mjs +0 -5
package/esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.mjs
DELETED
@@ -1,222 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, isStandalone, } from '@angular/core';
|
2
|
-
import { FormsModule } from '@angular/forms';
|
3
|
-
import { SkyLogService } from '@skyux/core';
|
4
|
-
import { SkyCheckboxModule, SkyRadioModule, } from '@skyux/forms';
|
5
|
-
import { SkyIconModule } from '@skyux/icon';
|
6
|
-
import { SkyToolbarModule } from '@skyux/layout';
|
7
|
-
import { SkyFilterModule, SkySortModule } from '@skyux/lists';
|
8
|
-
import { SkySearchModule } from '@skyux/lookup';
|
9
|
-
import { SkyModalLegacyService, SkyModalService, } from '@skyux/modals';
|
10
|
-
import { Subject } from 'rxjs';
|
11
|
-
import { takeUntil } from 'rxjs/operators';
|
12
|
-
import { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';
|
13
|
-
import { SkyDataManagerColumnPickerContext } from '../data-manager-column-picker/data-manager-column-picker-context';
|
14
|
-
import { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from '../data-manager-column-picker/data-manager-column-picker-providers';
|
15
|
-
import { SkyDataManagerColumnPickerService } from '../data-manager-column-picker/data-manager-column-picker.service';
|
16
|
-
import { SkyDataManagerFilterModalContext } from '../data-manager-filter-context';
|
17
|
-
import { SkyDataManagerService } from '../data-manager.service';
|
18
|
-
import * as i0 from "@angular/core";
|
19
|
-
import * as i1 from "@angular/forms";
|
20
|
-
import * as i2 from "@skyux/forms";
|
21
|
-
import * as i3 from "@skyux/i18n";
|
22
|
-
import * as i4 from "@skyux/icon";
|
23
|
-
import * as i5 from "@skyux/lists";
|
24
|
-
import * as i6 from "@skyux/lookup";
|
25
|
-
import * as i7 from "@skyux/layout";
|
26
|
-
/**
|
27
|
-
* Renders a `sky-toolbar` with the contents specified by the active view's `SkyDataViewConfig`
|
28
|
-
* and the `SkyDataManagerToolbarLeftItemsComponent`, `SkyDataManagerToolbarRightItemsComponent`,
|
29
|
-
* and `SkyDataManagerToolbarSectionComponent` wrappers.
|
30
|
-
*/
|
31
|
-
export class SkyDataManagerToolbarComponent {
|
32
|
-
get activeView() {
|
33
|
-
return this.#_activeView;
|
34
|
-
}
|
35
|
-
set activeView(value) {
|
36
|
-
this.#_activeView = value;
|
37
|
-
this.#changeDetector.markForCheck();
|
38
|
-
}
|
39
|
-
get dataManagerConfig() {
|
40
|
-
return this.#_dataManagerConfig;
|
41
|
-
}
|
42
|
-
set dataManagerConfig(value) {
|
43
|
-
this.#_dataManagerConfig = value;
|
44
|
-
this.#changeDetector.markForCheck();
|
45
|
-
}
|
46
|
-
get dataState() {
|
47
|
-
return this.#_dataState;
|
48
|
-
}
|
49
|
-
set dataState(value) {
|
50
|
-
this.#_dataState = value;
|
51
|
-
if (value) {
|
52
|
-
this.#dataManagerService.updateDataState(value, this.#_source);
|
53
|
-
}
|
54
|
-
}
|
55
|
-
get views() {
|
56
|
-
return this.#_views;
|
57
|
-
}
|
58
|
-
set views(value) {
|
59
|
-
this.#_views = value;
|
60
|
-
this.#changeDetector.markForCheck();
|
61
|
-
}
|
62
|
-
#logger = inject(SkyLogService, { optional: true });
|
63
|
-
#ngUnsubscribe = new Subject();
|
64
|
-
// the source to provide for data state changes
|
65
|
-
#_source = 'toolbar';
|
66
|
-
#_activeView;
|
67
|
-
#_dataManagerConfig;
|
68
|
-
#_dataState;
|
69
|
-
#_views = [];
|
70
|
-
#changeDetector = inject(ChangeDetectorRef);
|
71
|
-
#columnPickerService = inject(SkyDataManagerColumnPickerService);
|
72
|
-
#dataManagerService = inject(SkyDataManagerService);
|
73
|
-
#modalService = inject(SkyModalService);
|
74
|
-
ngOnInit() {
|
75
|
-
this.#dataManagerService
|
76
|
-
.getActiveViewIdUpdates()
|
77
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
78
|
-
.subscribe((activeViewId) => {
|
79
|
-
/* istanbul ignore else */
|
80
|
-
if (activeViewId) {
|
81
|
-
this.activeView = this.#dataManagerService.getViewById(activeViewId);
|
82
|
-
this.#changeDetector.markForCheck();
|
83
|
-
}
|
84
|
-
});
|
85
|
-
this.#dataManagerService
|
86
|
-
.getDataViewsUpdates()
|
87
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
88
|
-
.subscribe((views) => {
|
89
|
-
this.views = views;
|
90
|
-
if (this.activeView) {
|
91
|
-
this.activeView = this.#dataManagerService.getViewById(this.activeView.id);
|
92
|
-
}
|
93
|
-
this.#changeDetector.markForCheck();
|
94
|
-
});
|
95
|
-
this.#dataManagerService
|
96
|
-
.getDataStateUpdates(this.#_source)
|
97
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
98
|
-
.subscribe((dataState) => {
|
99
|
-
this.#_dataState = dataState;
|
100
|
-
this.onlyShowSelected = dataState.onlyShowSelected;
|
101
|
-
this.#changeDetector.markForCheck();
|
102
|
-
});
|
103
|
-
this.#dataManagerService
|
104
|
-
.getDataManagerConfigUpdates()
|
105
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
106
|
-
.subscribe((config) => {
|
107
|
-
this.dataManagerConfig = config;
|
108
|
-
});
|
109
|
-
}
|
110
|
-
ngOnDestroy() {
|
111
|
-
this.#ngUnsubscribe.next();
|
112
|
-
this.#ngUnsubscribe.complete();
|
113
|
-
}
|
114
|
-
sortSelected(sortOption) {
|
115
|
-
if (this.dataState) {
|
116
|
-
this.dataState.activeSortOption = sortOption;
|
117
|
-
this.#dataManagerService.updateDataState(this.dataState, this.#_source);
|
118
|
-
}
|
119
|
-
}
|
120
|
-
onViewChange(viewId) {
|
121
|
-
this.#dataManagerService.updateActiveViewId(viewId);
|
122
|
-
}
|
123
|
-
searchApplied(text) {
|
124
|
-
if (this.dataState) {
|
125
|
-
this.dataState.searchText = text;
|
126
|
-
this.#dataManagerService.updateDataState(this.dataState, this.#_source);
|
127
|
-
}
|
128
|
-
}
|
129
|
-
filterButtonClicked() {
|
130
|
-
const context = new SkyDataManagerFilterModalContext();
|
131
|
-
const filterModal = this.dataManagerConfig && this.dataManagerConfig.filterModalComponent;
|
132
|
-
context.filterData = this.dataState?.filterData;
|
133
|
-
const options = {
|
134
|
-
providers: [
|
135
|
-
{ provide: SkyDataManagerFilterModalContext, useValue: context },
|
136
|
-
],
|
137
|
-
size: 'large',
|
138
|
-
};
|
139
|
-
if (filterModal) {
|
140
|
-
if (!(this.#modalService instanceof SkyModalLegacyService) &&
|
141
|
-
!isStandalone(filterModal)) {
|
142
|
-
this.#logger?.deprecated('SkyDataManagerConfig.filterModalComponent not standalone', {
|
143
|
-
deprecationMajorVersion: 9,
|
144
|
-
replacementRecommendation: `The SkyDataManagerConfig.filterModalComponent must be a standalone component in order to receive the right dependency injector context.`,
|
145
|
-
});
|
146
|
-
}
|
147
|
-
const modalInstance = this.#modalService.open(filterModal, options);
|
148
|
-
modalInstance.closed.subscribe((result) => {
|
149
|
-
if (this.dataState && result.reason === 'save') {
|
150
|
-
this.dataState.filterData = result.data;
|
151
|
-
this.#dataManagerService.updateDataState(this.dataState, this.#_source);
|
152
|
-
}
|
153
|
-
});
|
154
|
-
}
|
155
|
-
}
|
156
|
-
openColumnPicker() {
|
157
|
-
if (this.dataState && this.activeView && this.activeView.columnOptions) {
|
158
|
-
const viewState = this.dataState.getViewStateById(this.activeView.id);
|
159
|
-
if (viewState) {
|
160
|
-
const context = new SkyDataManagerColumnPickerContext(this.activeView.columnOptions, viewState.displayedColumnIds);
|
161
|
-
if (this.activeView.columnPickerSortStrategy) {
|
162
|
-
context.columnPickerSortStrategy =
|
163
|
-
this.activeView.columnPickerSortStrategy;
|
164
|
-
}
|
165
|
-
const options = {
|
166
|
-
providers: [
|
167
|
-
SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS,
|
168
|
-
{
|
169
|
-
provide: SkyDataManagerColumnPickerContext,
|
170
|
-
useValue: context,
|
171
|
-
},
|
172
|
-
],
|
173
|
-
};
|
174
|
-
const modalInstance = this.#modalService.open(this.#columnPickerService.getComponentType(), options);
|
175
|
-
modalInstance.closed.subscribe((result) => {
|
176
|
-
if (result.reason === 'save') {
|
177
|
-
const displayedColumnIds = result.data.map((col) => col.id);
|
178
|
-
viewState.displayedColumnIds = displayedColumnIds;
|
179
|
-
if (this.dataState && this.activeView) {
|
180
|
-
this.dataState = this.dataState.addOrUpdateView(this.activeView.id, viewState);
|
181
|
-
}
|
182
|
-
}
|
183
|
-
});
|
184
|
-
}
|
185
|
-
}
|
186
|
-
}
|
187
|
-
selectAll() {
|
188
|
-
/* istanbul ignore else */
|
189
|
-
if (this.activeView?.onSelectAllClick) {
|
190
|
-
this.activeView.onSelectAllClick();
|
191
|
-
}
|
192
|
-
}
|
193
|
-
clearAll() {
|
194
|
-
/* istanbul ignore else */
|
195
|
-
if (this.activeView?.onClearAllClick) {
|
196
|
-
this.activeView.onClearAllClick();
|
197
|
-
}
|
198
|
-
}
|
199
|
-
onOnlyShowSelected(event) {
|
200
|
-
if (this.dataState) {
|
201
|
-
this.dataState.onlyShowSelected = !!event.checked;
|
202
|
-
this.#dataManagerService.updateDataState(this.dataState, this.#_source);
|
203
|
-
}
|
204
|
-
}
|
205
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDataManagerToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
206
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyDataManagerToolbarComponent, isStandalone: true, selector: "sky-data-manager-toolbar", ngImport: i0, template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item>\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item>\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item) {\n <sky-sort-item\n [active]=\"!!(dataState?.activeSortOption?.id === item.id)\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon icon=\"columns\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item>\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [icon]=\"view.icon\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "icon", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i2.λ4, selector: "sky-checkbox-label" }, { kind: "ngmodule", type: SkyDataManagerResourcesModule }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i4.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyFilterModule }, { kind: "component", type: i5.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "ariaLabel", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { kind: "ngmodule", type: SkyRadioModule }, { kind: "component", type: i2.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "helpPopoverContent", "helpPopoverTitle", "icon", "radioType", "labelText", "labelHidden", "hintText", "helpKey"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i2.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "headingLevel", "headingStyle", "name", "required", "stacked", "value", "tabIndex", "headingText", "headingHidden", "hintText", "helpPopoverContent", "helpPopoverTitle", "helpKey"] }, { kind: "ngmodule", type: SkySearchModule }, { kind: "component", type: i6.SkySearchComponent, selector: "sky-search", inputs: ["ariaLabel", "ariaLabelledBy", "searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "ngmodule", type: SkySortModule }, { kind: "component", type: i5.λ14, selector: "sky-sort", inputs: ["ariaLabel", "showButtonText"] }, { kind: "component", type: i5.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i7.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i7.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i7.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i7.λ40, selector: "sky-toolbar-view-actions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
207
|
-
}
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDataManagerToolbarComponent, decorators: [{
|
209
|
-
type: Component,
|
210
|
-
args: [{ standalone: true, selector: 'sky-data-manager-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
211
|
-
FormsModule,
|
212
|
-
SkyCheckboxModule,
|
213
|
-
SkyDataManagerResourcesModule,
|
214
|
-
SkyIconModule,
|
215
|
-
SkyFilterModule,
|
216
|
-
SkyRadioModule,
|
217
|
-
SkySearchModule,
|
218
|
-
SkySortModule,
|
219
|
-
SkyToolbarModule,
|
220
|
-
], template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item>\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item>\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item) {\n <sky-sort-item\n [active]=\"!!(dataState?.activeSortOption?.id === item.id)\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon icon=\"columns\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item>\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [icon]=\"view.icon\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"] }]
|
221
|
-
}] });
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci10b29sYmFyL2RhdGEtbWFuYWdlci10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBR1QsTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFHTCxxQkFBcUIsRUFDckIsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNySCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUM5SCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNySCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7O0FBT2hFOzs7O0dBSUc7QUFtQkgsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxLQUFvQztRQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxpQkFBaUIsQ0FBQyxLQUF1QztRQUNsRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsU0FBUyxDQUFDLEtBQXNDO1FBQ3pELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLEtBQTBCO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUlRLE9BQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFN0QsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFckMsK0NBQStDO0lBQy9DLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDckIsWUFBWSxDQUFnQztJQUM1QyxtQkFBbUIsQ0FBbUM7SUFDdEQsV0FBVyxDQUFrQztJQUM3QyxPQUFPLEdBQXdCLEVBQUUsQ0FBQztJQUV6QixlQUFlLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDakUsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDcEQsYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUUxQyxRQUFRO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQjthQUNyQixzQkFBc0IsRUFBRTthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUMxQiwwQkFBMEI7WUFDMUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNyRSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxtQkFBbUI7YUFDckIsbUJBQW1CLEVBQUU7YUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQ25CLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxtQkFBbUI7YUFDckIsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztZQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1lBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLDJCQUEyQixFQUFFO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLFlBQVksQ0FBQyxVQUFvQztRQUN0RCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztZQUM3QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWM7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWTtRQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLGdDQUFnQyxFQUFFLENBQUM7UUFDdkQsTUFBTSxXQUFXLEdBQ2YsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztRQUV4RSxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDO1FBRWhELE1BQU0sT0FBTyxHQUFtQztZQUM5QyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTthQUNqRTtZQUNELElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQztRQUVGLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFDRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsWUFBWSxxQkFBcUIsQ0FBQztnQkFDdEQsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQzFCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQ3RCLDBEQUEwRCxFQUMxRDtvQkFDRSx1QkFBdUIsRUFBRSxDQUFDO29CQUMxQix5QkFBeUIsRUFBRSx5SUFBeUk7aUJBQ3JLLENBQ0YsQ0FBQztZQUNKLENBQUM7WUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFcEUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUF5QixFQUFFLEVBQUU7Z0JBQzNELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUN4QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUN0QyxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0RSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE1BQU0sT0FBTyxHQUFHLElBQUksaUNBQWlDLENBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUM3QixTQUFTLENBQUMsa0JBQWtCLENBQzdCLENBQUM7Z0JBRUYsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLENBQUM7b0JBQzdDLE9BQU8sQ0FBQyx3QkFBd0I7d0JBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUM7Z0JBQzdDLENBQUM7Z0JBRUQsTUFBTSxPQUFPLEdBQW1DO29CQUM5QyxTQUFTLEVBQUU7d0JBQ1Qsd0NBQXdDO3dCQUN4Qzs0QkFDRSxPQUFPLEVBQUUsaUNBQWlDOzRCQUMxQyxRQUFRLEVBQUUsT0FBTzt5QkFDbEI7cUJBQ0Y7aUJBQ0YsQ0FBQztnQkFFRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDM0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixFQUFFLEVBQzVDLE9BQU8sQ0FDUixDQUFDO2dCQUVGLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBeUIsRUFBRSxFQUFFO29CQUMzRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7d0JBQzdCLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ3hDLENBQUMsR0FBcUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDbEQsQ0FBQzt3QkFFRixTQUFTLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7d0JBQ2xELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7NEJBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUNsQixTQUFTLENBQ1YsQ0FBQzt3QkFDSixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxTQUFTO1FBQ2QsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYiwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUF3QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7K0dBdE9VLDhCQUE4QjttR0FBOUIsOEJBQThCLG9GQ2pFM0MseXlLQWtKQSwrOEJENUZJLFdBQVcsOFZBQ1gsaUJBQWlCLDhkQUNqQiw2QkFBNkIsdUdBQzdCLGFBQWEsbUtBQ2IsZUFBZSxrUEFDZixjQUFjLDJvQkFDZCxlQUFlLHVSQUNmLGFBQWEsK09BQ2IsZ0JBQWdCOzs0RkFHUCw4QkFBOEI7a0JBbEIxQyxTQUFTO2lDQUNJLElBQUksWUFDTiwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLDZCQUE2Qjt3QkFDN0IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIGluamVjdCxcbiAgaXNTdGFuZGFsb25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7XG4gIFNreUNoZWNrYm94Q2hhbmdlLFxuICBTa3lDaGVja2JveE1vZHVsZSxcbiAgU2t5UmFkaW9Nb2R1bGUsXG59IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sYXlvdXQnO1xuaW1wb3J0IHsgU2t5RmlsdGVyTW9kdWxlLCBTa3lTb3J0TW9kdWxlIH0gZnJvbSAnQHNreXV4L2xpc3RzJztcbmltcG9ydCB7IFNreVNlYXJjaE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuaW1wb3J0IHtcbiAgU2t5TW9kYWxDbG9zZUFyZ3MsXG4gIFNreU1vZGFsQ29uZmlndXJhdGlvbkludGVyZmFjZSxcbiAgU2t5TW9kYWxMZWdhY3lTZXJ2aWNlLFxuICBTa3lNb2RhbFNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NreS1kYXRhLW1hbmFnZXItcmVzb3VyY2VzLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlckNvbnRleHQgfSBmcm9tICcuLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1jb250ZXh0JztcbmltcG9ydCB7IFNLWV9EQVRBX01BTkFHRVJfQ09MVU1OX1BJQ0tFUl9QUk9WSURFUlMgfSBmcm9tICcuLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1wcm92aWRlcnMnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIvZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlck1vZGFsQ29udGV4dCB9IGZyb20gJy4uL2RhdGEtbWFuYWdlci1maWx0ZXItY29udGV4dCc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9kYXRhLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlck9wdGlvbiB9IGZyb20gJy4uL21vZGVscy9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1vcHRpb24nO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXNvcnQtb3B0aW9uJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN0YXRlJztcbmltcG9ydCB7IFNreURhdGFWaWV3Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGEtdmlldy1jb25maWcnO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBgc2t5LXRvb2xiYXJgIHdpdGggdGhlIGNvbnRlbnRzIHNwZWNpZmllZCBieSB0aGUgYWN0aXZlIHZpZXcncyBgU2t5RGF0YVZpZXdDb25maWdgXG4gKiBhbmQgdGhlIGBTa3lEYXRhTWFuYWdlclRvb2xiYXJMZWZ0SXRlbXNDb21wb25lbnRgLCBgU2t5RGF0YU1hbmFnZXJUb29sYmFyUmlnaHRJdGVtc0NvbXBvbmVudGAsXG4gKiBhbmQgYFNreURhdGFNYW5hZ2VyVG9vbGJhclNlY3Rpb25Db21wb25lbnRgIHdyYXBwZXJzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1tYW5hZ2VyLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLW1hbmFnZXItdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreURhdGFNYW5hZ2VyUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5RmlsdGVyTW9kdWxlLFxuICAgIFNreVJhZGlvTW9kdWxlLFxuICAgIFNreVNlYXJjaE1vZHVsZSxcbiAgICBTa3lTb3J0TW9kdWxlLFxuICAgIFNreVRvb2xiYXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFNYW5hZ2VyVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgcHVibGljIGdldCBhY3RpdmVWaWV3KCk6IFNreURhdGFWaWV3Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2FjdGl2ZVZpZXc7XG4gIH1cblxuICBwdWJsaWMgc2V0IGFjdGl2ZVZpZXcodmFsdWU6IFNreURhdGFWaWV3Q29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FjdGl2ZVZpZXcgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YU1hbmFnZXJDb25maWcoKTogU2t5RGF0YU1hbmFnZXJDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfZGF0YU1hbmFnZXJDb25maWc7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRhdGFNYW5hZ2VyQ29uZmlnKHZhbHVlOiBTa3lEYXRhTWFuYWdlckNvbmZpZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kYXRhTWFuYWdlckNvbmZpZyA9IHZhbHVlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU3RhdGUoKTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19kYXRhU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRhdGFTdGF0ZSh2YWx1ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kYXRhU3RhdGUgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU2VydmljZS51cGRhdGVEYXRhU3RhdGUodmFsdWUsIHRoaXMuI19zb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlld3MoKTogU2t5RGF0YVZpZXdDb25maWdbXSB7XG4gICAgcmV0dXJuIHRoaXMuI192aWV3cztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmlld3ModmFsdWU6IFNreURhdGFWaWV3Q29uZmlnW10pIHtcbiAgICB0aGlzLiNfdmlld3MgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvbmx5U2hvd1NlbGVjdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIHJlYWRvbmx5ICNsb2dnZXIgPSBpbmplY3QoU2t5TG9nU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gdGhlIHNvdXJjZSB0byBwcm92aWRlIGZvciBkYXRhIHN0YXRlIGNoYW5nZXNcbiAgI19zb3VyY2UgPSAndG9vbGJhcic7XG4gICNfYWN0aXZlVmlldzogU2t5RGF0YVZpZXdDb25maWcgfCB1bmRlZmluZWQ7XG4gICNfZGF0YU1hbmFnZXJDb25maWc6IFNreURhdGFNYW5hZ2VyQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAjX2RhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZDtcbiAgI192aWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IFtdO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNjb2x1bW5QaWNrZXJTZXJ2aWNlID0gaW5qZWN0KFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNkYXRhTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoU2t5RGF0YU1hbmFnZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI21vZGFsU2VydmljZSA9IGluamVjdChTa3lNb2RhbFNlcnZpY2UpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2VcbiAgICAgIC5nZXRBY3RpdmVWaWV3SWRVcGRhdGVzKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGl2ZVZpZXdJZCkgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoYWN0aXZlVmlld0lkKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlLmdldFZpZXdCeUlkKGFjdGl2ZVZpZXdJZCk7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YVZpZXdzVXBkYXRlcygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh2aWV3cykgPT4ge1xuICAgICAgICB0aGlzLnZpZXdzID0gdmlld3M7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2UuZ2V0Vmlld0J5SWQoXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcuaWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiNfc291cmNlKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YVN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuI19kYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgIHRoaXMub25seVNob3dTZWxlY3RlZCA9IGRhdGFTdGF0ZS5vbmx5U2hvd1NlbGVjdGVkO1xuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YU1hbmFnZXJDb25maWdVcGRhdGVzKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgICB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnID0gY29uZmlnO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNvcnRTZWxlY3RlZChzb3J0T3B0aW9uOiBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3RhdGUpIHtcbiAgICAgIHRoaXMuZGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSBzb3J0T3B0aW9uO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlLnVwZGF0ZURhdGFTdGF0ZSh0aGlzLmRhdGFTdGF0ZSwgdGhpcy4jX3NvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uVmlld0NoYW5nZSh2aWV3SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU2VydmljZS51cGRhdGVBY3RpdmVWaWV3SWQodmlld0lkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBcHBsaWVkKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFTdGF0ZSkge1xuICAgICAgdGhpcy5kYXRhU3RhdGUuc2VhcmNoVGV4dCA9IHRleHQ7XG4gICAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2UudXBkYXRlRGF0YVN0YXRlKHRoaXMuZGF0YVN0YXRlLCB0aGlzLiNfc291cmNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IFNreURhdGFNYW5hZ2VyRmlsdGVyTW9kYWxDb250ZXh0KCk7XG4gICAgY29uc3QgZmlsdGVyTW9kYWwgPVxuICAgICAgdGhpcy5kYXRhTWFuYWdlckNvbmZpZyAmJiB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnLmZpbHRlck1vZGFsQ29tcG9uZW50O1xuXG4gICAgY29udGV4dC5maWx0ZXJEYXRhID0gdGhpcy5kYXRhU3RhdGU/LmZpbHRlckRhdGE7XG5cbiAgICBjb25zdCBvcHRpb25zOiBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2UgPSB7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBTa3lEYXRhTWFuYWdlckZpbHRlck1vZGFsQ29udGV4dCwgdXNlVmFsdWU6IGNvbnRleHQgfSxcbiAgICAgIF0sXG4gICAgICBzaXplOiAnbGFyZ2UnLFxuICAgIH07XG5cbiAgICBpZiAoZmlsdGVyTW9kYWwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgISh0aGlzLiNtb2RhbFNlcnZpY2UgaW5zdGFuY2VvZiBTa3lNb2RhbExlZ2FjeVNlcnZpY2UpICYmXG4gICAgICAgICFpc1N0YW5kYWxvbmUoZmlsdGVyTW9kYWwpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jbG9nZ2VyPy5kZXByZWNhdGVkKFxuICAgICAgICAgICdTa3lEYXRhTWFuYWdlckNvbmZpZy5maWx0ZXJNb2RhbENvbXBvbmVudCBub3Qgc3RhbmRhbG9uZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDksXG4gICAgICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOiBgVGhlIFNreURhdGFNYW5hZ2VyQ29uZmlnLmZpbHRlck1vZGFsQ29tcG9uZW50IG11c3QgYmUgYSBzdGFuZGFsb25lIGNvbXBvbmVudCBpbiBvcmRlciB0byByZWNlaXZlIHRoZSByaWdodCBkZXBlbmRlbmN5IGluamVjdG9yIGNvbnRleHQuYCxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgbW9kYWxJbnN0YW5jZSA9IHRoaXMuI21vZGFsU2VydmljZS5vcGVuKGZpbHRlck1vZGFsLCBvcHRpb25zKTtcblxuICAgICAgbW9kYWxJbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKChyZXN1bHQ6IFNreU1vZGFsQ2xvc2VBcmdzKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFTdGF0ZSAmJiByZXN1bHQucmVhc29uID09PSAnc2F2ZScpIHtcbiAgICAgICAgICB0aGlzLmRhdGFTdGF0ZS5maWx0ZXJEYXRhID0gcmVzdWx0LmRhdGE7XG4gICAgICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuZGF0YVN0YXRlLFxuICAgICAgICAgICAgdGhpcy4jX3NvdXJjZSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlbkNvbHVtblBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3RhdGUgJiYgdGhpcy5hY3RpdmVWaWV3ICYmIHRoaXMuYWN0aXZlVmlldy5jb2x1bW5PcHRpb25zKSB7XG4gICAgICBjb25zdCB2aWV3U3RhdGUgPSB0aGlzLmRhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKHRoaXMuYWN0aXZlVmlldy5pZCk7XG4gICAgICBpZiAodmlld1N0YXRlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb250ZXh0KFxuICAgICAgICAgIHRoaXMuYWN0aXZlVmlldy5jb2x1bW5PcHRpb25zLFxuICAgICAgICAgIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlVmlldy5jb2x1bW5QaWNrZXJTb3J0U3RyYXRlZ3kpIHtcbiAgICAgICAgICBjb250ZXh0LmNvbHVtblBpY2tlclNvcnRTdHJhdGVneSA9XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcuY29sdW1uUGlja2VyU29ydFN0cmF0ZWd5O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3B0aW9uczogU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlID0ge1xuICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgU0tZX0RBVEFfTUFOQUdFUl9DT0xVTU5fUElDS0VSX1BST1ZJREVSUyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvdmlkZTogU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb250ZXh0LFxuICAgICAgICAgICAgICB1c2VWYWx1ZTogY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBtb2RhbEluc3RhbmNlID0gdGhpcy4jbW9kYWxTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgdGhpcy4jY29sdW1uUGlja2VyU2VydmljZS5nZXRDb21wb25lbnRUeXBlKCksXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKTtcblxuICAgICAgICBtb2RhbEluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKHJlc3VsdDogU2t5TW9kYWxDbG9zZUFyZ3MpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnJlYXNvbiA9PT0gJ3NhdmUnKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5ZWRDb2x1bW5JZHMgPSByZXN1bHQuZGF0YS5tYXAoXG4gICAgICAgICAgICAgIChjb2w6IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyT3B0aW9uKSA9PiBjb2wuaWQsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzID0gZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YVN0YXRlICYmIHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgICB0aGlzLmRhdGFTdGF0ZSA9IHRoaXMuZGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcuaWQsXG4gICAgICAgICAgICAgICAgdmlld1N0YXRlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXc/Lm9uU2VsZWN0QWxsQ2xpY2spIHtcbiAgICAgIHRoaXMuYWN0aXZlVmlldy5vblNlbGVjdEFsbENsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuYWN0aXZlVmlldz8ub25DbGVhckFsbENsaWNrKSB7XG4gICAgICB0aGlzLmFjdGl2ZVZpZXcub25DbGVhckFsbENsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uT25seVNob3dTZWxlY3RlZChldmVudDogU2t5Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3RhdGUpIHtcbiAgICAgIHRoaXMuZGF0YVN0YXRlLm9ubHlTaG93U2VsZWN0ZWQgPSAhIWV2ZW50LmNoZWNrZWQ7XG4gICAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2UudXBkYXRlRGF0YVN0YXRlKHRoaXMuZGF0YVN0YXRlLCB0aGlzLiNfc291cmNlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXJcIj5cbiAgPHNreS10b29sYmFyIFtsaXN0RGVzY3JpcHRvcl09XCJkYXRhTWFuYWdlckNvbmZpZz8ubGlzdERlc2NyaXB0b3JcIj5cbiAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1kYXRhLW1hbmFnZXItdG9vbGJhci1wcmltYXJ5LWl0ZW1cIiAvPlxuXG4gICAgICBAaWYgKGFjdGl2ZVZpZXc/LmZpbHRlckJ1dHRvbkVuYWJsZWQpIHtcbiAgICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgICAgPHNreS1maWx0ZXItYnV0dG9uXG4gICAgICAgICAgICBbc2hvd0J1dHRvblRleHRdPVwiYWN0aXZlVmlldz8uc2hvd0ZpbHRlckJ1dHRvblRleHRcIlxuICAgICAgICAgICAgKGZpbHRlckJ1dHRvbkNsaWNrKT1cImZpbHRlckJ1dHRvbkNsaWNrZWQoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGFjdGl2ZVZpZXc/LnNvcnRFbmFibGVkKSB7XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktc29ydCBbc2hvd0J1dHRvblRleHRdPVwiYWN0aXZlVmlldz8uc2hvd1NvcnRCdXR0b25UZXh0XCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGRhdGFNYW5hZ2VyQ29uZmlnPy5zb3J0T3B0aW9uczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICA8c2t5LXNvcnQtaXRlbVxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiISEoZGF0YVN0YXRlPy5hY3RpdmVTb3J0T3B0aW9uPy5pZCA9PT0gaXRlbS5pZClcIlxuICAgICAgICAgICAgICAgIChpdGVtU2VsZWN0KT1cInNvcnRTZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvc2t5LXNvcnQtaXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NreS1zb3J0PlxuICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoYWN0aXZlVmlldz8uY29sdW1uUGlja2VyRW5hYmxlZCkge1xuICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1jb2wtcGlja2VyLWJ0blwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgIGRhdGFNYW5hZ2VyQ29uZmlnPy5saXN0RGVzY3JpcHRvclxuICAgICAgICAgICAgICAgID8gKCdza3l1eF9kYXRhX21hbmFnZXJfY29sdW1uc19idXR0b25fYXJpYV9sYWJlbCdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBkYXRhTWFuYWdlckNvbmZpZz8ubGlzdERlc2NyaXB0b3IpXG4gICAgICAgICAgICAgICAgOiAoJ3NreXV4X2RhdGFfbWFuYWdlcl9jb2x1bW5zX2J1dHRvbl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiXG4gICAgICAgICAgICAgICdza3l1eF9kYXRhX21hbmFnZXJfY29sdW1uc19idXR0b25fdGl0bGUnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Db2x1bW5QaWNrZXIoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uIGljb249XCJjb2x1bW5zXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LWNvbHVtbi1zZWxlY3Rvci1hY3Rpb24tYnRuLXRleHRcIj5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2RhdGFfbWFuYWdlcl9jb2x1bW5zX2J1dHRvbl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgfVxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXItbGVmdC1pdGVtXCIgLz5cblxuICAgICAgQGlmIChhY3RpdmVWaWV3Py5zZWFyY2hFbmFibGVkKSB7XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxza3ktc2VhcmNoXG4gICAgICAgICAgICBbZXhwYW5kTW9kZV09XCJhY3RpdmVWaWV3Py5zZWFyY2hFeHBhbmRNb2RlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlclRleHRdPVwiYWN0aXZlVmlldz8uc2VhcmNoUGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgICAgICAgIFtzZWFyY2hUZXh0XT1cImRhdGFTdGF0ZT8uc2VhcmNoVGV4dFwiXG4gICAgICAgICAgICAoc2VhcmNoQXBwbHkpPVwic2VhcmNoQXBwbGllZCgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICB9XG5cbiAgICAgIDxza3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1kYXRhLW1hbmFnZXItdG9vbGJhci1yaWdodC1pdGVtXCIgLz5cbiAgICAgICAgQGlmIChhY3RpdmVWaWV3ICYmIHZpZXdzICYmIHZpZXdzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICA8c2t5LXJhZGlvLWdyb3VwXG4gICAgICAgICAgICBjbGFzcz1cInNreS1zd2l0Y2gtaWNvbi1ncm91cFwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidkYXRhIHZpZXcgc3dpdGNoZXInXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWN0aXZlVmlldy5pZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAodmlldyBvZiB2aWV3czsgdHJhY2sgdmlldy5pZCkge1xuICAgICAgICAgICAgICA8c2t5LXJhZGlvXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3Lm5hbWVcIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cInZpZXcuaWNvblwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZpZXcuaWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2aWV3Lm5hbWVcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25WaWV3Q2hhbmdlKHZpZXcuaWQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NreS1yYWRpby1ncm91cD5cbiAgICAgICAgfVxuICAgICAgPC9za3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1kYXRhLW1hbmFnZXItdG9vbGJhci1zZWN0aW9uXCIgLz5cbiAgPC9za3ktdG9vbGJhcj5cblxuICBAaWYgKGFjdGl2ZVZpZXc/Lm11bHRpc2VsZWN0VG9vbGJhckVuYWJsZWQpIHtcbiAgICA8c2t5LXRvb2xiYXIgY2xhc3M9XCJza3ktZGF0YS1tYW5hZ2VyLW11bHRpc2VsZWN0LXRvb2xiYXJcIj5cbiAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1kYXRhLW1hbmFnZXItc2VsZWN0LWFsbC1idG5cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICBkYXRhTWFuYWdlckNvbmZpZz8ubGlzdERlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICA/ICgnc2t5dXhfZGF0YV9tYW5hZ2VyX3NlbGVjdF9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnc2t5dXhfZGF0YV9tYW5hZ2VyX3NlbGVjdF9hbGxfYnV0dG9uX3RpdGxlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWRhdGEtbWFuYWdlci1jbGVhci1hbGwtYnRuXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X2RhdGFfbWFuYWdlcl9jbGVhcl9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdza3l1eF9kYXRhX21hbmFnZXJfY2xlYXJfYWxsX2J1dHRvbl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICAgIDxza3ktY2hlY2tib3hcbiAgICAgICAgICAgIFtjaGVja2VkXT1cIm9ubHlTaG93U2VsZWN0ZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICBkYXRhTWFuYWdlckNvbmZpZz8ubGlzdERlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICA/ICgnc2t5dXhfZGF0YV9tYW5hZ2VyX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbk9ubHlTaG93U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfZGF0YV9tYW5hZ2VyX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX3RpdGxlJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvc2t5LWNoZWNrYm94LWxhYmVsPlxuICAgICAgICAgIDwvc2t5LWNoZWNrYm94PlxuICAgICAgICA8L3NreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICA8L3NreS10b29sYmFyPlxuICB9XG48L2Rpdj5cbiJdfQ==
|
@@ -1,118 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, } from '@angular/core';
|
2
|
-
import { SkyLiveAnnouncerService, SkyViewkeeperModule } from '@skyux/core';
|
3
|
-
import { SkyLibResourcesService } from '@skyux/i18n';
|
4
|
-
import { SkyBackToTopMessageType, SkyBackToTopModule, } from '@skyux/layout';
|
5
|
-
import { Subject } from 'rxjs';
|
6
|
-
import { take, takeUntil } from 'rxjs/operators';
|
7
|
-
import { SkyDataManagerService } from './data-manager.service';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "@skyux/layout";
|
10
|
-
import * as i2 from "@skyux/core";
|
11
|
-
const VIEWKEEPER_CLASSES_DEFAULT = ['.sky-data-manager-toolbar'];
|
12
|
-
/**
|
13
|
-
* The top-level data manager component. Provide `SkyDataManagerService` at this level.
|
14
|
-
*/
|
15
|
-
export class SkyDataManagerComponent {
|
16
|
-
constructor() {
|
17
|
-
this.backToTopController = new Subject();
|
18
|
-
this.backToTopOptions = {
|
19
|
-
buttonHidden: true,
|
20
|
-
};
|
21
|
-
this.#allViewkeeperClasses = {};
|
22
|
-
this.#ngUnsubscribe = new Subject();
|
23
|
-
this.#sourceId = 'dataManagerComponent';
|
24
|
-
this.#_isInitialized = false;
|
25
|
-
this.#_currentViewkeeperClasses = VIEWKEEPER_CLASSES_DEFAULT;
|
26
|
-
this.#changeDetection = inject(ChangeDetectorRef);
|
27
|
-
this.#dataManagerService = inject(SkyDataManagerService);
|
28
|
-
this.#liveAnnouncer = inject(SkyLiveAnnouncerService);
|
29
|
-
this.#resourceSvc = inject(SkyLibResourcesService);
|
30
|
-
}
|
31
|
-
get currentViewkeeperClasses() {
|
32
|
-
return this.#_currentViewkeeperClasses;
|
33
|
-
}
|
34
|
-
set currentViewkeeperClasses(value) {
|
35
|
-
this.#_currentViewkeeperClasses = [
|
36
|
-
...VIEWKEEPER_CLASSES_DEFAULT,
|
37
|
-
...(value || []),
|
38
|
-
];
|
39
|
-
this.#changeDetection.markForCheck();
|
40
|
-
}
|
41
|
-
get isInitialized() {
|
42
|
-
return this.#_isInitialized;
|
43
|
-
}
|
44
|
-
set isInitialized(value) {
|
45
|
-
this.#_isInitialized = value;
|
46
|
-
this.#changeDetection.markForCheck();
|
47
|
-
}
|
48
|
-
#activeViewId;
|
49
|
-
#allViewkeeperClasses;
|
50
|
-
#ngUnsubscribe;
|
51
|
-
#sourceId;
|
52
|
-
#dataState;
|
53
|
-
#_isInitialized;
|
54
|
-
#_currentViewkeeperClasses;
|
55
|
-
#changeDetection;
|
56
|
-
#dataManagerService;
|
57
|
-
#liveAnnouncer;
|
58
|
-
#resourceSvc;
|
59
|
-
ngOnInit() {
|
60
|
-
this.#dataManagerService
|
61
|
-
.getDataStateUpdates(this.#sourceId)
|
62
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
63
|
-
.subscribe((state) => {
|
64
|
-
this.isInitialized = true;
|
65
|
-
this.#dataState = state;
|
66
|
-
});
|
67
|
-
this.#dataManagerService
|
68
|
-
.getDataSummaryUpdates(this.#sourceId)
|
69
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
70
|
-
.subscribe((summary) => {
|
71
|
-
const itemsSelected = this.#dataState?.selectedIds?.length || 0;
|
72
|
-
const resourceString = `skyux_data_manager_status_update_${this.#dataState?.onlyShowSelected
|
73
|
-
? 'only_selected'
|
74
|
-
: itemsSelected
|
75
|
-
? 'with_selections'
|
76
|
-
: 'without_selections'}`;
|
77
|
-
this.#announceState(resourceString, summary.itemsMatching, summary.totalItems, itemsSelected);
|
78
|
-
});
|
79
|
-
this.#dataManagerService.viewkeeperClasses
|
80
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
81
|
-
.subscribe((classes) => {
|
82
|
-
this.#allViewkeeperClasses = classes;
|
83
|
-
this.currentViewkeeperClasses = this.#activeViewId
|
84
|
-
? classes[this.#activeViewId]
|
85
|
-
: undefined;
|
86
|
-
});
|
87
|
-
this.#dataManagerService
|
88
|
-
.getActiveViewIdUpdates()
|
89
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
90
|
-
.subscribe((activeViewId) => {
|
91
|
-
this.#activeViewId = activeViewId;
|
92
|
-
this.backToTopController.next({
|
93
|
-
type: SkyBackToTopMessageType.BackToTop,
|
94
|
-
});
|
95
|
-
this.currentViewkeeperClasses =
|
96
|
-
this.#allViewkeeperClasses[this.#activeViewId];
|
97
|
-
});
|
98
|
-
}
|
99
|
-
ngOnDestroy() {
|
100
|
-
this.#ngUnsubscribe.next();
|
101
|
-
this.#ngUnsubscribe.complete();
|
102
|
-
}
|
103
|
-
#announceState(resourceString, itemsMatching, totalItems, itemsSelected) {
|
104
|
-
this.#resourceSvc
|
105
|
-
.getString(resourceString, itemsMatching, totalItems, itemsSelected)
|
106
|
-
.pipe(take(1))
|
107
|
-
.subscribe((internationalizedString) => {
|
108
|
-
this.#liveAnnouncer.announce(internationalizedString);
|
109
|
-
});
|
110
|
-
}
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDataManagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyDataManagerComponent, isStandalone: true, selector: "sky-data-manager", ngImport: i0, template: "@if (isInitialized) {\n <div\n #dataManager\n class=\"sky-data-manager\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n >\n <ng-content />\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: SkyBackToTopModule }, { kind: "directive", type: i1.λ7, selector: "[skyBackToTop]", inputs: ["skyBackToTop", "skyBackToTopMessageStream"] }, { kind: "ngmodule", type: SkyViewkeeperModule }, { kind: "directive", type: i2.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
113
|
-
}
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDataManagerComponent, decorators: [{
|
115
|
-
type: Component,
|
116
|
-
args: [{ standalone: true, selector: 'sky-data-manager', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyBackToTopModule, SkyViewkeeperModule], template: "@if (isInitialized) {\n <div\n #dataManager\n class=\"sky-data-manager\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n >\n <ng-content />\n </div>\n}\n" }]
|
117
|
-
}] });
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBR1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixrQkFBa0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBSS9ELE1BQU0sMEJBQTBCLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRWpFOztHQUVHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQTZCUyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztRQUV6RCxxQkFBZ0IsR0FBRztZQUN4QixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBR0YsMEJBQXFCLEdBQTZCLEVBQUUsQ0FBQztRQUNy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VSx1QkFBdUI7bUdBQXZCLHVCQUF1Qiw0RUNuQ3BDLDZRQVdBLDJDRHNCWSxrQkFBa0IscUpBQUUsbUJBQW1COzs0RkFFdEMsdUJBQXVCO2tCQVBuQyxTQUFTO2lDQUNJLElBQUksWUFDTixrQkFBa0IsbUJBRVgsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGl2ZUFubm91bmNlclNlcnZpY2UsIFNreVZpZXdrZWVwZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHtcbiAgU2t5QmFja1RvVG9wTWVzc2FnZSxcbiAgU2t5QmFja1RvVG9wTWVzc2FnZVR5cGUsXG4gIFNreUJhY2tUb1RvcE1vZHVsZSxcbn0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN0YXRlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3VtbWFyeSB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdW1tYXJ5JztcblxuY29uc3QgVklFV0tFRVBFUl9DTEFTU0VTX0RFRkFVTFQgPSBbJy5za3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXInXTtcblxuLyoqXG4gKiBUaGUgdG9wLWxldmVsIGRhdGEgbWFuYWdlciBjb21wb25lbnQuIFByb3ZpZGUgYFNreURhdGFNYW5hZ2VyU2VydmljZWAgYXQgdGhpcyBsZXZlbC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2t5LWRhdGEtbWFuYWdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLW1hbmFnZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1NreUJhY2tUb1RvcE1vZHVsZSwgU2t5Vmlld2tlZXBlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFNYW5hZ2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBwdWJsaWMgZ2V0IGN1cnJlbnRWaWV3a2VlcGVyQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuI19jdXJyZW50Vmlld2tlZXBlckNsYXNzZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRWaWV3a2VlcGVyQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfY3VycmVudFZpZXdrZWVwZXJDbGFzc2VzID0gW1xuICAgICAgLi4uVklFV0tFRVBFUl9DTEFTU0VTX0RFRkFVTFQsXG4gICAgICAuLi4odmFsdWUgfHwgW10pLFxuICAgIF07XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNJbml0aWFsaXplZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaXNJbml0aWFsaXplZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19pc0luaXRpYWxpemVkID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGJhY2tUb1RvcENvbnRyb2xsZXIgPSBuZXcgU3ViamVjdDxTa3lCYWNrVG9Ub3BNZXNzYWdlPigpO1xuXG4gIHB1YmxpYyBiYWNrVG9Ub3BPcHRpb25zID0ge1xuICAgIGJ1dHRvbkhpZGRlbjogdHJ1ZSxcbiAgfTtcblxuICAjYWN0aXZlVmlld0lkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNhbGxWaWV3a2VlcGVyQ2xhc3NlczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI3NvdXJjZUlkID0gJ2RhdGFNYW5hZ2VyQ29tcG9uZW50JztcbiAgI2RhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZDtcblxuICAjX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI19jdXJyZW50Vmlld2tlZXBlckNsYXNzZXMgPSBWSUVXS0VFUEVSX0NMQVNTRVNfREVGQVVMVDtcblxuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0aW9uID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2RhdGFNYW5hZ2VyU2VydmljZSA9IGluamVjdChTa3lEYXRhTWFuYWdlclNlcnZpY2UpO1xuICByZWFkb25seSAjbGl2ZUFubm91bmNlciA9IGluamVjdChTa3lMaXZlQW5ub3VuY2VyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNyZXNvdXJjZVN2YyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiNzb3VyY2VJZClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMuI2RhdGFTdGF0ZSA9IHN0YXRlO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2VcbiAgICAgIC5nZXREYXRhU3VtbWFyeVVwZGF0ZXModGhpcy4jc291cmNlSWQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChzdW1tYXJ5OiBTa3lEYXRhTWFuYWdlclN1bW1hcnkpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXNTZWxlY3RlZCA9IHRoaXMuI2RhdGFTdGF0ZT8uc2VsZWN0ZWRJZHM/Lmxlbmd0aCB8fCAwO1xuICAgICAgICBjb25zdCByZXNvdXJjZVN0cmluZyA9IGBza3l1eF9kYXRhX21hbmFnZXJfc3RhdHVzX3VwZGF0ZV8ke1xuICAgICAgICAgIHRoaXMuI2RhdGFTdGF0ZT8ub25seVNob3dTZWxlY3RlZFxuICAgICAgICAgICAgPyAnb25seV9zZWxlY3RlZCdcbiAgICAgICAgICAgIDogaXRlbXNTZWxlY3RlZFxuICAgICAgICAgICAgICA/ICd3aXRoX3NlbGVjdGlvbnMnXG4gICAgICAgICAgICAgIDogJ3dpdGhvdXRfc2VsZWN0aW9ucydcbiAgICAgICAgfWA7XG5cbiAgICAgICAgdGhpcy4jYW5ub3VuY2VTdGF0ZShcbiAgICAgICAgICByZXNvdXJjZVN0cmluZyxcbiAgICAgICAgICBzdW1tYXJ5Lml0ZW1zTWF0Y2hpbmcsXG4gICAgICAgICAgc3VtbWFyeS50b3RhbEl0ZW1zLFxuICAgICAgICAgIGl0ZW1zU2VsZWN0ZWQsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU2VydmljZS52aWV3a2VlcGVyQ2xhc3Nlc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoY2xhc3NlcykgPT4ge1xuICAgICAgICB0aGlzLiNhbGxWaWV3a2VlcGVyQ2xhc3NlcyA9IGNsYXNzZXM7XG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdrZWVwZXJDbGFzc2VzID0gdGhpcy4jYWN0aXZlVmlld0lkXG4gICAgICAgICAgPyBjbGFzc2VzW3RoaXMuI2FjdGl2ZVZpZXdJZF1cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0QWN0aXZlVmlld0lkVXBkYXRlcygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhY3RpdmVWaWV3SWQpID0+IHtcbiAgICAgICAgdGhpcy4jYWN0aXZlVmlld0lkID0gYWN0aXZlVmlld0lkO1xuICAgICAgICB0aGlzLmJhY2tUb1RvcENvbnRyb2xsZXIubmV4dCh7XG4gICAgICAgICAgdHlwZTogU2t5QmFja1RvVG9wTWVzc2FnZVR5cGUuQmFja1RvVG9wLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jdXJyZW50Vmlld2tlZXBlckNsYXNzZXMgPVxuICAgICAgICAgIHRoaXMuI2FsbFZpZXdrZWVwZXJDbGFzc2VzW3RoaXMuI2FjdGl2ZVZpZXdJZF07XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjYW5ub3VuY2VTdGF0ZShcbiAgICByZXNvdXJjZVN0cmluZzogc3RyaW5nLFxuICAgIGl0ZW1zTWF0Y2hpbmc6IG51bWJlcixcbiAgICB0b3RhbEl0ZW1zOiBudW1iZXIsXG4gICAgaXRlbXNTZWxlY3RlZDogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNvdXJjZVN2Y1xuICAgICAgLmdldFN0cmluZyhyZXNvdXJjZVN0cmluZywgaXRlbXNNYXRjaGluZywgdG90YWxJdGVtcywgaXRlbXNTZWxlY3RlZClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChpbnRlcm5hdGlvbmFsaXplZFN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLiNsaXZlQW5ub3VuY2VyLmFubm91bmNlKGludGVybmF0aW9uYWxpemVkU3RyaW5nKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgPGRpdlxuICAgICNkYXRhTWFuYWdlclxuICAgIGNsYXNzPVwic2t5LWRhdGEtbWFuYWdlclwiXG4gICAgW3NreUJhY2tUb1RvcF09XCJiYWNrVG9Ub3BPcHRpb25zXCJcbiAgICBbc2t5QmFja1RvVG9wTWVzc2FnZVN0cmVhbV09XCJiYWNrVG9Ub3BDb250cm9sbGVyXCJcbiAgICBbc2t5Vmlld2tlZXBlcl09XCJjdXJyZW50Vmlld2tlZXBlckNsYXNzZXNcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC9kaXY+XG59XG4iXX0=
|
@@ -1,56 +0,0 @@
|
|
1
|
-
import { NgModule } from '@angular/core';
|
2
|
-
import { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from './data-manager-column-picker/data-manager-column-picker-providers';
|
3
|
-
import { SkyDataManagerToolbarLeftItemComponent } from './data-manager-toolbar/data-manager-toolbar-left-item.component';
|
4
|
-
import { SkyDataManagerToolbarPrimaryItemComponent } from './data-manager-toolbar/data-manager-toolbar-primary-item.component';
|
5
|
-
import { SkyDataManagerToolbarRightItemComponent } from './data-manager-toolbar/data-manager-toolbar-right-item.component';
|
6
|
-
import { SkyDataManagerToolbarSectionComponent } from './data-manager-toolbar/data-manager-toolbar-section.component';
|
7
|
-
import { SkyDataManagerToolbarComponent } from './data-manager-toolbar/data-manager-toolbar.component';
|
8
|
-
import { SkyDataManagerComponent } from './data-manager.component';
|
9
|
-
import { SkyDataViewComponent } from './data-view.component';
|
10
|
-
import * as i0 from "@angular/core";
|
11
|
-
export class SkyDataManagerModule {
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDataManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SkyDataManagerModule, imports: [SkyDataManagerComponent,
|
14
|
-
SkyDataManagerToolbarComponent,
|
15
|
-
SkyDataManagerToolbarLeftItemComponent,
|
16
|
-
SkyDataManagerToolbarPrimaryItemComponent,
|
17
|
-
SkyDataManagerToolbarRightItemComponent,
|
18
|
-
SkyDataManagerToolbarSectionComponent,
|
19
|
-
SkyDataViewComponent], exports: [SkyDataManagerComponent,
|
20
|
-
SkyDataManagerToolbarComponent,
|
21
|
-
SkyDataManagerToolbarLeftItemComponent,
|
22
|
-
SkyDataManagerToolbarPrimaryItemComponent,
|
23
|
-
SkyDataManagerToolbarRightItemComponent,
|
24
|
-
SkyDataManagerToolbarSectionComponent,
|
25
|
-
SkyDataViewComponent] }); }
|
26
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDataManagerModule, providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS], imports: [SkyDataManagerComponent,
|
27
|
-
SkyDataManagerToolbarComponent,
|
28
|
-
SkyDataManagerToolbarLeftItemComponent,
|
29
|
-
SkyDataManagerToolbarPrimaryItemComponent,
|
30
|
-
SkyDataManagerToolbarSectionComponent] }); }
|
31
|
-
}
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyDataManagerModule, decorators: [{
|
33
|
-
type: NgModule,
|
34
|
-
args: [{
|
35
|
-
imports: [
|
36
|
-
SkyDataManagerComponent,
|
37
|
-
SkyDataManagerToolbarComponent,
|
38
|
-
SkyDataManagerToolbarLeftItemComponent,
|
39
|
-
SkyDataManagerToolbarPrimaryItemComponent,
|
40
|
-
SkyDataManagerToolbarRightItemComponent,
|
41
|
-
SkyDataManagerToolbarSectionComponent,
|
42
|
-
SkyDataViewComponent,
|
43
|
-
],
|
44
|
-
exports: [
|
45
|
-
SkyDataManagerComponent,
|
46
|
-
SkyDataManagerToolbarComponent,
|
47
|
-
SkyDataManagerToolbarLeftItemComponent,
|
48
|
-
SkyDataManagerToolbarPrimaryItemComponent,
|
49
|
-
SkyDataManagerToolbarRightItemComponent,
|
50
|
-
SkyDataManagerToolbarSectionComponent,
|
51
|
-
SkyDataViewComponent,
|
52
|
-
],
|
53
|
-
providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS],
|
54
|
-
}]
|
55
|
-
}] });
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDN0gsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDL0gsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDM0gsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBdUI3RCxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixZQW5CN0IsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5QixzQ0FBc0M7WUFDdEMseUNBQXlDO1lBQ3pDLHVDQUF1QztZQUN2QyxxQ0FBcUM7WUFDckMsb0JBQW9CLGFBR3BCLHVCQUF1QjtZQUN2Qiw4QkFBOEI7WUFDOUIsc0NBQXNDO1lBQ3RDLHlDQUF5QztZQUN6Qyx1Q0FBdUM7WUFDdkMscUNBQXFDO1lBQ3JDLG9CQUFvQjtnSEFJWCxvQkFBb0IsYUFGcEIsQ0FBQyx3Q0FBd0MsQ0FBQyxZQWpCbkQsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5QixzQ0FBc0M7WUFDdEMseUNBQXlDO1lBRXpDLHFDQUFxQzs7NEZBYzVCLG9CQUFvQjtrQkFyQmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3dCQUM5QixzQ0FBc0M7d0JBQ3RDLHlDQUF5Qzt3QkFDekMsdUNBQXVDO3dCQUN2QyxxQ0FBcUM7d0JBQ3JDLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3dCQUM5QixzQ0FBc0M7d0JBQ3RDLHlDQUF5Qzt3QkFDekMsdUNBQXVDO3dCQUN2QyxxQ0FBcUM7d0JBQ3JDLG9CQUFvQjtxQkFDckI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsd0NBQXdDLENBQUM7aUJBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU0tZX0RBVEFfTUFOQUdFUl9DT0xVTU5fUElDS0VSX1BST1ZJREVSUyB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIvZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItcHJvdmlkZXJzJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyVG9vbGJhckxlZnRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci1sZWZ0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyVG9vbGJhclByaW1hcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci1wcmltYXJ5LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyVG9vbGJhclJpZ2h0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXItcmlnaHQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJUb29sYmFyU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtbWFuYWdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdmlldy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2t5RGF0YU1hbmFnZXJDb21wb25lbnQsXG4gICAgU2t5RGF0YU1hbmFnZXJUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhckxlZnRJdGVtQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhclByaW1hcnlJdGVtQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhclJpZ2h0SXRlbUNvbXBvbmVudCxcbiAgICBTa3lEYXRhTWFuYWdlclRvb2xiYXJTZWN0aW9uQ29tcG9uZW50LFxuICAgIFNreURhdGFWaWV3Q29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5RGF0YU1hbmFnZXJDb21wb25lbnQsXG4gICAgU2t5RGF0YU1hbmFnZXJUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhckxlZnRJdGVtQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhclByaW1hcnlJdGVtQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhclJpZ2h0SXRlbUNvbXBvbmVudCxcbiAgICBTa3lEYXRhTWFuYWdlclRvb2xiYXJTZWN0aW9uQ29tcG9uZW50LFxuICAgIFNreURhdGFWaWV3Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtTS1lfREFUQV9NQU5BR0VSX0NPTFVNTl9QSUNLRVJfUFJPVklERVJTXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJNb2R1bGUge31cbiJdfQ==
|