@skyux/data-manager 6.0.0-beta.3 → 6.0.0-beta.4

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.
Files changed (20) hide show
  1. package/documentation.json +401 -394
  2. package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.mjs +3 -3
  3. package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.mjs +14 -22
  4. package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.mjs +3 -3
  5. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.mjs +3 -3
  6. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.mjs +3 -3
  7. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.mjs +3 -3
  8. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.mjs +3 -3
  9. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.mjs +3 -3
  10. package/esm2020/lib/modules/data-manager/data-manager.component.mjs +3 -3
  11. package/esm2020/lib/modules/data-manager/data-manager.module.mjs +4 -4
  12. package/esm2020/lib/modules/data-manager/data-manager.service.mjs +3 -3
  13. package/esm2020/lib/modules/data-manager/data-view.component.mjs +3 -3
  14. package/esm2020/lib/modules/shared/sky-data-manager-resources.module.mjs +4 -4
  15. package/fesm2015/skyux-data-manager.mjs +49 -56
  16. package/fesm2015/skyux-data-manager.mjs.map +1 -1
  17. package/fesm2020/skyux-data-manager.mjs +49 -56
  18. package/fesm2020/skyux-data-manager.mjs.map +1 -1
  19. package/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.d.ts +1 -3
  20. package/package.json +12 -12
@@ -6,9 +6,9 @@ export class SkyDataManagerColumnPickerImplService {
6
6
  return SkyDataManagerColumnPickerComponent;
7
7
  }
8
8
  }
9
- SkyDataManagerColumnPickerImplService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerColumnPickerImplService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10
- SkyDataManagerColumnPickerImplService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerColumnPickerImplService });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerColumnPickerImplService, decorators: [{
9
+ SkyDataManagerColumnPickerImplService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerColumnPickerImplService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10
+ SkyDataManagerColumnPickerImplService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerColumnPickerImplService });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerColumnPickerImplService, decorators: [{
12
12
  type: Injectable
13
13
  }] });
14
14
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItaW1wbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLWltcGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQUc3RixNQUFNLE9BQU8scUNBQXFDO0lBQ3pDLGdCQUFnQjtRQUNyQixPQUFPLG1DQUFtQyxDQUFDO0lBQzdDLENBQUM7O2tJQUhVLHFDQUFxQztzSUFBckMscUNBQXFDOzJGQUFyQyxxQ0FBcUM7a0JBRGpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJJbXBsU2VydmljZSB7XG4gIHB1YmxpYyBnZXRDb21wb25lbnRUeXBlKCk6IHR5cGVvZiBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29tcG9uZW50O1xuICB9XG59XG4iXX0=
@@ -1,5 +1,4 @@
1
1
  import { ChangeDetectionStrategy, Component, } from '@angular/core';
2
- import { SkyLibResourcesService } from '@skyux/i18n';
3
2
  import { SkyModalInstance } from '@skyux/modals';
4
3
  import { Subject } from 'rxjs';
5
4
  import { takeUntil } from 'rxjs/operators';
@@ -11,21 +10,20 @@ import * as i0 from "@angular/core";
11
10
  import * as i1 from "./data-manager-column-picker-context";
12
11
  import * as i2 from "../data-manager.service";
13
12
  import * as i3 from "@skyux/modals";
14
- import * as i4 from "@skyux/i18n";
15
- import * as i5 from "../data-manager.component";
16
- import * as i6 from "../data-manager-toolbar/data-manager-toolbar.component";
17
- import * as i7 from "../data-view.component";
18
- import * as i8 from "@skyux/lists";
19
- import * as i9 from "@angular/common";
13
+ import * as i4 from "../data-manager.component";
14
+ import * as i5 from "../data-manager-toolbar/data-manager-toolbar.component";
15
+ import * as i6 from "../data-view.component";
16
+ import * as i7 from "@skyux/lists";
17
+ import * as i8 from "@angular/common";
18
+ import * as i9 from "@skyux/i18n";
20
19
  /**
21
20
  * @internal
22
21
  */
23
22
  export class SkyDataManagerColumnPickerComponent {
24
- constructor(context, dataManagerService, instance, libResources) {
23
+ constructor(context, dataManagerService, instance) {
25
24
  this.context = context;
26
25
  this.dataManagerService = dataManagerService;
27
26
  this.instance = instance;
28
- this.libResources = libResources;
29
27
  this.viewConfig = {
30
28
  id: 'columnPicker',
31
29
  name: 'Column Picker',
@@ -49,11 +47,6 @@ export class SkyDataManagerColumnPickerComponent {
49
47
  }
50
48
  }
51
49
  ngOnInit() {
52
- this.libResources
53
- .getString('skyux_data_manager_column_picker_title')
54
- .subscribe((value) => {
55
- console.log(value);
56
- });
57
50
  this.dataManagerService.initDataManager({
58
51
  activeViewId: this.viewConfig.id,
59
52
  dataManagerConfig: {},
@@ -76,9 +69,8 @@ export class SkyDataManagerColumnPickerComponent {
76
69
  let searchedColumns = columns;
77
70
  const searchText = this.dataState && this.dataState.searchText?.toUpperCase();
78
71
  if (searchText) {
79
- searchedColumns = columns.filter(function (item) {
80
- let property;
81
- for (property in item) {
72
+ searchedColumns = columns.filter((item) => {
73
+ for (const property in item) {
82
74
  if (Object.prototype.hasOwnProperty.call(item, property) &&
83
75
  (property === 'label' || property === 'description')) {
84
76
  const propertyText = item[property] && item[property].toUpperCase();
@@ -147,10 +139,10 @@ export class SkyDataManagerColumnPickerComponent {
147
139
  return formattedColumnOptions;
148
140
  }
149
141
  }
150
- SkyDataManagerColumnPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerColumnPickerComponent, deps: [{ token: i1.SkyDataManagerColumnPickerContext }, { token: i2.SkyDataManagerService }, { token: i3.SkyModalInstance }, { token: i4.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Component });
151
- SkyDataManagerColumnPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDataManagerColumnPickerComponent, selector: "sky-data-manager-column-picker", providers: [SkyDataManagerService], ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_data_manager_column_picker_title' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar> </sky-data-manager-toolbar>\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let column of displayedColumnData\"\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:5px}\n"], components: [{ type: i3.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i3.λ4, selector: "sky-modal-header" }, { type: i3.λ2, selector: "sky-modal-content" }, { type: i5.SkyDataManagerComponent, selector: "sky-data-manager" }, { type: i6.SkyDataManagerToolbarComponent, selector: "sky-data-manager-toolbar" }, { type: i7.SkyDataViewComponent, selector: "sky-data-view", inputs: ["viewId"] }, { type: i8.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { type: i8.λ10, selector: "sky-repeater-item", inputs: ["itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { type: i8.λ12, selector: "sky-repeater-item-title" }, { type: i8.λ8, selector: "sky-repeater-item-content" }, { type: i3.λ3, selector: "sky-modal-footer" }], directives: [{ type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "skyLibResources": i4.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerColumnPickerComponent, decorators: [{
142
+ SkyDataManagerColumnPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerColumnPickerComponent, deps: [{ token: i1.SkyDataManagerColumnPickerContext }, { token: i2.SkyDataManagerService }, { token: i3.SkyModalInstance }], target: i0.ɵɵFactoryTarget.Component });
143
+ SkyDataManagerColumnPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyDataManagerColumnPickerComponent, selector: "sky-data-manager-column-picker", providers: [SkyDataManagerService], ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_data_manager_column_picker_title' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar> </sky-data-manager-toolbar>\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let column of displayedColumnData\"\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:5px}\n"], components: [{ type: i3.λ5, selector: "sky-modal", inputs: ["ariaRole", "tiledBody"] }, { type: i3.λ4, selector: "sky-modal-header" }, { type: i3.λ2, selector: "sky-modal-content" }, { type: i4.SkyDataManagerComponent, selector: "sky-data-manager" }, { type: i5.SkyDataManagerToolbarComponent, selector: "sky-data-manager-toolbar" }, { type: i6.SkyDataViewComponent, selector: "sky-data-view", inputs: ["viewId"] }, { type: i7.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { type: i7.λ10, selector: "sky-repeater-item", inputs: ["itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { type: i7.λ12, selector: "sky-repeater-item-title" }, { type: i7.λ8, selector: "sky-repeater-item-content" }, { type: i3.λ3, selector: "sky-modal-footer" }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "skyLibResources": i9.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerColumnPickerComponent, decorators: [{
153
145
  type: Component,
154
146
  args: [{ selector: 'sky-data-manager-column-picker', providers: [SkyDataManagerService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_data_manager_column_picker_title' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar> </sky-data-manager-toolbar>\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let column of displayedColumnData\"\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:5px}\n"] }]
155
- }], ctorParameters: function () { return [{ type: i1.SkyDataManagerColumnPickerContext }, { type: i2.SkyDataManagerService }, { type: i3.SkyModalInstance }, { type: i4.SkyLibResourcesService }]; } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR25FLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7OztBQVN6Rjs7R0FFRztBQVFILE1BQU0sT0FBTyxtQ0FBbUM7SUFpQzlDLFlBQ1MsT0FBMEMsRUFDMUMsa0JBQXlD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ZUFBZSxDQUFDO2lCQUNwRDtxQkFBTTtvQkFDTCx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQy9DO2FBQ0Y7aUJBQU07Z0JBQ0wsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQzlDO1NBQ0Y7UUFFRCx5RkFBeUY7UUFDekYscURBQXFEO1FBQ3JELElBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0I7WUFDckMsc0NBQXNDLENBQUMsd0JBQXdCLEVBQy9EO1lBQ0EsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDckMsQ0FBQztZQUNGLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FDcEQsdUJBQXVCLENBQ3hCLENBQUM7U0FDSDtRQUVELE9BQU8sc0JBQXNCLENBQUM7SUFDaEMsQ0FBQzs7Z0lBeEtVLG1DQUFtQztvSEFBbkMsbUNBQW1DLHlEQUhuQyxDQUFDLHFCQUFxQixDQUFDLDBCQ2xDcEMscTVDQTJDQTsyRkROYSxtQ0FBbUM7a0JBUC9DLFNBQVM7K0JBQ0UsZ0NBQWdDLGFBRy9CLENBQUMscUJBQXFCLENBQUMsbUJBQ2pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL2RhdGEtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyT3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlclNvcnRTdHJhdGVneSB9IGZyb20gJy4uL21vZGVscy9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1zb3J0LXN0cmF0ZWd5JztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN0YXRlJztcbmltcG9ydCB7IFNreURhdGFWaWV3Q29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGEtdmlldy1jb25maWcnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlckNvbnRleHQgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLWNvbnRleHQnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5pbnRlcmZhY2UgQ29sdW1uIGV4dGVuZHMgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJPcHRpb24ge1xuICBpc1NlbGVjdGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lEYXRhTWFuYWdlclNlcnZpY2VdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIHB1YmxpYyBnZXQgZGF0YVN0YXRlKCk6IFNreURhdGFNYW5hZ2VyU3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRhdGFTdGF0ZSh2YWx1ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSkge1xuICAgIHRoaXMuX2RhdGFTdGF0ZSA9IHZhbHVlO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uRGF0YSA9IHRoaXMuc2VhcmNoQ29sdW1ucyhcbiAgICAgIHRoaXMuY29sdW1uRGF0YS5maWx0ZXIoKGNvbCkgPT4gIWNvbC5hbHdheXNEaXNwbGF5ZWQpXG4gICAgKTtcblxuICAgIGlmICh2YWx1ZS5vbmx5U2hvd1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbkRhdGEgPSB0aGlzLmRpc3BsYXllZENvbHVtbkRhdGEuZmlsdGVyKFxuICAgICAgICAoY29sKSA9PiBjb2wuaXNTZWxlY3RlZFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29sdW1uRGF0YTogQ29sdW1uW107XG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5EYXRhOiBDb2x1bW5bXTtcbiAgcHVibGljIHZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnID0ge1xuICAgIGlkOiAnY29sdW1uUGlja2VyJyxcbiAgICBuYW1lOiAnQ29sdW1uIFBpY2tlcicsXG4gICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcbiAgICBzZWFyY2hFeHBhbmRNb2RlOiAnZml0JyxcbiAgICBtdWx0aXNlbGVjdFRvb2xiYXJFbmFibGVkOiB0cnVlLFxuICAgIG9uU2VsZWN0QWxsQ2xpY2s6IHRoaXMuc2VsZWN0QWxsLmJpbmQodGhpcyksXG4gICAgb25DbGVhckFsbENsaWNrOiB0aGlzLmNsZWFyQWxsLmJpbmQodGhpcyksXG4gIH07XG5cbiAgcHJpdmF0ZSBfZGF0YVN0YXRlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoe30pO1xuICBwcml2YXRlIF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29udGV4dDogU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb250ZXh0LFxuICAgIHB1YmxpYyBkYXRhTWFuYWdlclNlcnZpY2U6IFNreURhdGFNYW5hZ2VyU2VydmljZSxcbiAgICBwdWJsaWMgaW5zdGFuY2U6IFNreU1vZGFsSW5zdGFuY2UsXG4gICAgcHJpdmF0ZSBsaWJSZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpYlJlc291cmNlc1xuICAgICAgLmdldFN0cmluZygnc2t5dXhfZGF0YV9tYW5hZ2VyX2NvbHVtbl9waWNrZXJfdGl0bGUnKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgICAgfSk7XG4gICAgdGhpcy5kYXRhTWFuYWdlclNlcnZpY2UuaW5pdERhdGFNYW5hZ2VyKHtcbiAgICAgIGFjdGl2ZVZpZXdJZDogdGhpcy52aWV3Q29uZmlnLmlkLFxuICAgICAgZGF0YU1hbmFnZXJDb25maWc6IHt9LFxuICAgICAgZGVmYXVsdERhdGFTdGF0ZTogdGhpcy5kYXRhU3RhdGUsXG4gICAgfSk7XG4gICAgdGhpcy5kYXRhTWFuYWdlclNlcnZpY2UuaW5pdERhdGFWaWV3KHRoaXMudmlld0NvbmZpZyk7XG5cbiAgICB0aGlzLmNvbHVtbkRhdGEgPSB0aGlzLmZvcm1hdENvbHVtbk9wdGlvbnMoKTtcblxuICAgIHRoaXMuZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcygnY29sdW1uUGlja2VyJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YVN0YXRlID0gc3RhdGU7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5bXSk6IENvbHVtbltdIHtcbiAgICBsZXQgc2VhcmNoZWRDb2x1bW5zID0gY29sdW1ucztcbiAgICBjb25zdCBzZWFyY2hUZXh0ID1cbiAgICAgIHRoaXMuZGF0YVN0YXRlICYmIHRoaXMuZGF0YVN0YXRlLnNlYXJjaFRleHQ/LnRvVXBwZXJDYXNlKCk7XG5cbiAgICBpZiAoc2VhcmNoVGV4dCkge1xuICAgICAgc2VhcmNoZWRDb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW06IGFueSkge1xuICAgICAgICBsZXQgcHJvcGVydHk6IGFueTtcblxuICAgICAgICBmb3IgKHByb3BlcnR5IGluIGl0ZW0pIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwgcHJvcGVydHkpICYmXG4gICAgICAgICAgICAocHJvcGVydHkgPT09ICdsYWJlbCcgfHwgcHJvcGVydHkgPT09ICdkZXNjcmlwdGlvbicpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVRleHQ6IHN0cmluZyA9XG4gICAgICAgICAgICAgIGl0ZW1bcHJvcGVydHldICYmIGl0ZW1bcHJvcGVydHldLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICBpZiAocHJvcGVydHlUZXh0ICYmIHByb3BlcnR5VGV4dC5pbmRleE9mKHNlYXJjaFRleHQpID4gLTEpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzZWFyY2hlZENvbHVtbnM7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uRGF0YS5mb3JFYWNoKChjb2x1bW4pID0+IChjb2x1bW4uaXNTZWxlY3RlZCA9IHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbkRhdGEuZm9yRWFjaCgoY29sdW1uKSA9PiAoY29sdW1uLmlzU2VsZWN0ZWQgPSBmYWxzZSkpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbnN0YW5jZS5jYW5jZWwoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb250ZXh0LmRpc3BsYXllZENvbHVtbklkcy5maW5kSW5kZXgoKGNvbElkKSA9PiBjb2xJZCA9PT0gaWQpICE9PSAtMVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXBwbHlDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zdGFuY2Uuc2F2ZShcbiAgICAgIHRoaXMuY29sdW1uRGF0YS5maWx0ZXIoKGNvbCkgPT4gY29sLmlzU2VsZWN0ZWQgfHwgY29sLmFsd2F5c0Rpc3BsYXllZClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRDb2x1bW5PcHRpb25zKCk6IENvbHVtbltdIHtcbiAgICBjb25zdCBhbGxDb2x1bW5PcHRpb25zID0gdGhpcy5jb250ZXh0LmNvbHVtbk9wdGlvbnM7XG4gICAgY29uc3QgdmlzaWJsZUNvbHVtbklkcyA9IHRoaXMuY29udGV4dC5kaXNwbGF5ZWRDb2x1bW5JZHM7XG4gICAgbGV0IGZvcm1hdHRlZENvbHVtbk9wdGlvbnM6IENvbHVtbltdID0gW107XG4gICAgY29uc3QgdW5zZWxlY3RlZENvbHVtbk9wdGlvbnM6IENvbHVtbltdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbk9wdGlvbiBvZiBhbGxDb2x1bW5PcHRpb25zKSB7XG4gICAgICAvLyBmb3JtYXQgdGhlIGNvbHVtbiB3aXRoIHRoZSBwcm9wZXJ0aWVzIHRoZSBjb2x1bW4gcGlja2VyIG5lZWRzXG4gICAgICBjb25zdCBjb2xJbmRleCA9IHZpc2libGVDb2x1bW5JZHMuaW5kZXhPZihjb2x1bW5PcHRpb24uaWQpO1xuICAgICAgY29uc3QgZm9ybWF0dGVkQ29sdW1uOiBDb2x1bW4gPSB7XG4gICAgICAgIGFsd2F5c0Rpc3BsYXllZDogY29sdW1uT3B0aW9uLmFsd2F5c0Rpc3BsYXllZCxcbiAgICAgICAgaWQ6IGNvbHVtbk9wdGlvbi5pZCxcbiAgICAgICAgbGFiZWw6IGNvbHVtbk9wdGlvbi5sYWJlbCxcbiAgICAgICAgZGVzY3JpcHRpb246IGNvbHVtbk9wdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgICAgaXNTZWxlY3RlZDogY29sSW5kZXggIT09IC0xLFxuICAgICAgfTtcblxuICAgICAgLy8gaWYgY29sdW1uIHBpY2tlciBzb3J0aW5nIGlzIGN1cnJlbnRseSBlbmFibGVkIHNvcnQgY29sdW1ucyBieSBvcmRlciBkaXNwbGF5ZWQgdGhlbiBhbHBoYWJldGljYWxcbiAgICAgIC8vIGVsc2UgZGlzcGxheSBjb2x1bW4gaW4gb3JkZXIgdGhleSB3ZXJlIHNwZWNpZmllZCBpbiB0aGUgY29sdW1uT3B0aW9uc1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmNvbnRleHQuY29sdW1uUGlja2VyU29ydFN0cmF0ZWd5ID09PVxuICAgICAgICBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlclNvcnRTdHJhdGVneS5TZWxlY3RlZFRoZW5BbHBoYWJldGljYWxcbiAgICAgICkge1xuICAgICAgICBpZiAoZm9ybWF0dGVkQ29sdW1uLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zW2NvbEluZGV4XSA9IGZvcm1hdHRlZENvbHVtbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1bnNlbGVjdGVkQ29sdW1uT3B0aW9ucy5wdXNoKGZvcm1hdHRlZENvbHVtbik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvcm1hdHRlZENvbHVtbk9wdGlvbnMucHVzaChmb3JtYXR0ZWRDb2x1bW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlmIGNvbHVtbiBwaWNrZXIgc29ydGluZyBpcyBlbmFibGVkLCBzb3J0IHRoZSBjb2x1bW5zIHRoYXQgYXJlIG5vdCBjdXJyZW50bHkgZGlzcGxheWVkXG4gICAgLy8gYW5kIGFkZCB0aGVtIGFmdGVyIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIG9wdGlvbnNcbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbnRleHQuY29sdW1uUGlja2VyU29ydFN0cmF0ZWd5ID09PVxuICAgICAgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJTb3J0U3RyYXRlZ3kuU2VsZWN0ZWRUaGVuQWxwaGFiZXRpY2FsXG4gICAgKSB7XG4gICAgICB1bnNlbGVjdGVkQ29sdW1uT3B0aW9ucy5zb3J0KChjb2wxLCBjb2wyKSA9PlxuICAgICAgICBjb2wxLmxhYmVsLmxvY2FsZUNvbXBhcmUoY29sMi5sYWJlbClcbiAgICAgICk7XG4gICAgICBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zID0gZm9ybWF0dGVkQ29sdW1uT3B0aW9ucy5jb25jYXQoXG4gICAgICAgIHVuc2VsZWN0ZWRDb2x1bW5PcHRpb25zXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zO1xuICB9XG59XG4iLCI8c2t5LW1vZGFsPlxuICA8c2t5LW1vZGFsLWhlYWRlcj5cbiAgICB7eyAnc2t5dXhfZGF0YV9tYW5hZ2VyX2NvbHVtbl9waWNrZXJfdGl0bGUnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gIDwvc2t5LW1vZGFsLWhlYWRlcj5cbiAgPHNreS1tb2RhbC1jb250ZW50IGNsYXNzPVwic2t5LWRhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLWNvbnRlbnRcIj5cbiAgICA8c2t5LWRhdGEtbWFuYWdlcj5cbiAgICAgIDxza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXI+IDwvc2t5LWRhdGEtbWFuYWdlci10b29sYmFyPlxuXG4gICAgICA8c2t5LWRhdGEtdmlldyBbdmlld0lkXT1cInZpZXdDb25maWcuaWRcIj5cbiAgICAgICAgPHNreS1yZXBlYXRlciBleHBhbmRNb2RlPVwibm9uZVwiPlxuICAgICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbVxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBkaXNwbGF5ZWRDb2x1bW5EYXRhXCJcbiAgICAgICAgICAgIFtzZWxlY3RhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgWyhpc1NlbGVjdGVkKV09XCJjb2x1bW4uaXNTZWxlY3RlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtLXRpdGxlPlxuICAgICAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0tdGl0bGU+XG4gICAgICAgICAgICA8c2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudD5cbiAgICAgICAgICAgICAge3sgY29sdW1uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbT5cbiAgICAgICAgPC9za3ktcmVwZWF0ZXI+XG4gICAgICA8L3NreS1kYXRhLXZpZXc+XG4gICAgPC9za3ktZGF0YS1tYW5hZ2VyPlxuICA8L3NreS1tb2RhbC1jb250ZW50PlxuICA8c2t5LW1vZGFsLWZvb3Rlcj5cbiAgICA8YnV0dG9uXG4gICAgICBza3ktY21wLWlkPVwiYXBwbHktY2hhbmdlc1wiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1wcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJhcHBseUNoYW5nZXMoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2RhdGFfbWFuYWdlcl9hcHBseV9jaGFuZ2VzX2J1dHRvbl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBza3ktY21wLWlkPVwiY2FuY2VsXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmtcIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbENoYW5nZXMoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2RhdGFfbWFuYWdlcl9jYW5jZWxfYnV0dG9uX3RpdGxlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NreS1tb2RhbC1mb290ZXI+XG48L3NreS1tb2RhbD5cbiJdfQ==
147
+ }], ctorParameters: function () { return [{ type: i1.SkyDataManagerColumnPickerContext }, { type: i2.SkyDataManagerService }, { type: i3.SkyModalInstance }]; } });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHbkUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7O0FBU3pGOztHQUVHO0FBUUgsTUFBTSxPQUFPLG1DQUFtQztJQWlDOUMsWUFDUyxPQUEwQyxFQUMxQyxrQkFBeUMsRUFDekMsUUFBMEI7UUFGMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUM7UUFD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QSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUNyQyxDQUFDO1lBQ0Ysc0JBQXNCLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUNwRCx1QkFBdUIsQ0FDeEIsQ0FBQztTQUNIO1FBRUQsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDOztnSUFoS1UsbUNBQW1DO29IQUFuQyxtQ0FBbUMseURBSG5DLENBQUMscUJBQXFCLENBQUMsMEJDakNwQyxxNUNBMkNBOzJGRFBhLG1DQUFtQztrQkFQL0MsU0FBUzsrQkFDRSxnQ0FBZ0MsYUFHL0IsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFDakIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9kYXRhLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlck9wdGlvbiB9IGZyb20gJy4uL21vZGVscy9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1vcHRpb24nO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJTb3J0U3RyYXRlZ3kgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItc29ydC1zdHJhdGVneSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZSc7XG5pbXBvcnQgeyBTa3lEYXRhVmlld0NvbmZpZyB9IGZyb20gJy4uL21vZGVscy9kYXRhLXZpZXctY29uZmlnJztcblxuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb250ZXh0IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1jb250ZXh0JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIENvbHVtbiBleHRlbmRzIFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyT3B0aW9uIHtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5RGF0YU1hbmFnZXJTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBwdWJsaWMgZ2V0IGRhdGFTdGF0ZSgpOiBTa3lEYXRhTWFuYWdlclN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVN0YXRlO1xuICB9XG5cbiAgcHVibGljIHNldCBkYXRhU3RhdGUodmFsdWU6IFNreURhdGFNYW5hZ2VyU3RhdGUpIHtcbiAgICB0aGlzLl9kYXRhU3RhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbkRhdGEgPSB0aGlzLnNlYXJjaENvbHVtbnMoXG4gICAgICB0aGlzLmNvbHVtbkRhdGEuZmlsdGVyKChjb2wpID0+ICFjb2wuYWx3YXlzRGlzcGxheWVkKVxuICAgICk7XG5cbiAgICBpZiAodmFsdWUub25seVNob3dTZWxlY3RlZCkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5EYXRhID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5EYXRhLmZpbHRlcihcbiAgICAgICAgKGNvbCkgPT4gY29sLmlzU2VsZWN0ZWRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbHVtbkRhdGE6IENvbHVtbltdO1xuICBwdWJsaWMgZGlzcGxheWVkQ29sdW1uRGF0YTogQ29sdW1uW107XG4gIHB1YmxpYyB2aWV3Q29uZmlnOiBTa3lEYXRhVmlld0NvbmZpZyA9IHtcbiAgICBpZDogJ2NvbHVtblBpY2tlcicsXG4gICAgbmFtZTogJ0NvbHVtbiBQaWNrZXInLFxuICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXG4gICAgc2VhcmNoRXhwYW5kTW9kZTogJ2ZpdCcsXG4gICAgbXVsdGlzZWxlY3RUb29sYmFyRW5hYmxlZDogdHJ1ZSxcbiAgICBvblNlbGVjdEFsbENsaWNrOiB0aGlzLnNlbGVjdEFsbC5iaW5kKHRoaXMpLFxuICAgIG9uQ2xlYXJBbGxDbGljazogdGhpcy5jbGVhckFsbC5iaW5kKHRoaXMpLFxuICB9O1xuXG4gIHByaXZhdGUgX2RhdGFTdGF0ZSA9IG5ldyBTa3lEYXRhTWFuYWdlclN0YXRlKHt9KTtcbiAgcHJpdmF0ZSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRleHQ6IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29udGV4dCxcbiAgICBwdWJsaWMgZGF0YU1hbmFnZXJTZXJ2aWNlOiBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gICAgcHVibGljIGluc3RhbmNlOiBTa3lNb2RhbEluc3RhbmNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhTWFuYWdlclNlcnZpY2UuaW5pdERhdGFNYW5hZ2VyKHtcbiAgICAgIGFjdGl2ZVZpZXdJZDogdGhpcy52aWV3Q29uZmlnLmlkLFxuICAgICAgZGF0YU1hbmFnZXJDb25maWc6IHt9LFxuICAgICAgZGVmYXVsdERhdGFTdGF0ZTogdGhpcy5kYXRhU3RhdGUsXG4gICAgfSk7XG4gICAgdGhpcy5kYXRhTWFuYWdlclNlcnZpY2UuaW5pdERhdGFWaWV3KHRoaXMudmlld0NvbmZpZyk7XG5cbiAgICB0aGlzLmNvbHVtbkRhdGEgPSB0aGlzLmZvcm1hdENvbHVtbk9wdGlvbnMoKTtcblxuICAgIHRoaXMuZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcygnY29sdW1uUGlja2VyJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YVN0YXRlID0gc3RhdGU7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5bXSk6IENvbHVtbltdIHtcbiAgICBsZXQgc2VhcmNoZWRDb2x1bW5zID0gY29sdW1ucztcbiAgICBjb25zdCBzZWFyY2hUZXh0ID1cbiAgICAgIHRoaXMuZGF0YVN0YXRlICYmIHRoaXMuZGF0YVN0YXRlLnNlYXJjaFRleHQ/LnRvVXBwZXJDYXNlKCk7XG5cbiAgICBpZiAoc2VhcmNoVGV4dCkge1xuICAgICAgc2VhcmNoZWRDb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBpdGVtKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0ZW0sIHByb3BlcnR5KSAmJlxuICAgICAgICAgICAgKHByb3BlcnR5ID09PSAnbGFiZWwnIHx8IHByb3BlcnR5ID09PSAnZGVzY3JpcHRpb24nKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHlUZXh0OiBzdHJpbmcgPVxuICAgICAgICAgICAgICBpdGVtW3Byb3BlcnR5XSAmJiBpdGVtW3Byb3BlcnR5XS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKHByb3BlcnR5VGV4dCAmJiBwcm9wZXJ0eVRleHQuaW5kZXhPZihzZWFyY2hUZXh0KSA+IC0xKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VhcmNoZWRDb2x1bW5zO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbkRhdGEuZm9yRWFjaCgoY29sdW1uKSA9PiAoY29sdW1uLmlzU2VsZWN0ZWQgPSB0cnVlKSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5EYXRhLmZvckVhY2goKGNvbHVtbikgPT4gKGNvbHVtbi5pc1NlbGVjdGVkID0gZmFsc2UpKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zdGFuY2UuY2FuY2VsKCk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY29udGV4dC5kaXNwbGF5ZWRDb2x1bW5JZHMuZmluZEluZGV4KChjb2xJZCkgPT4gY29sSWQgPT09IGlkKSAhPT0gLTFcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFwcGx5Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmluc3RhbmNlLnNhdmUoXG4gICAgICB0aGlzLmNvbHVtbkRhdGEuZmlsdGVyKChjb2wpID0+IGNvbC5pc1NlbGVjdGVkIHx8IGNvbC5hbHdheXNEaXNwbGF5ZWQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q29sdW1uT3B0aW9ucygpOiBDb2x1bW5bXSB7XG4gICAgY29uc3QgYWxsQ29sdW1uT3B0aW9ucyA9IHRoaXMuY29udGV4dC5jb2x1bW5PcHRpb25zO1xuICAgIGNvbnN0IHZpc2libGVDb2x1bW5JZHMgPSB0aGlzLmNvbnRleHQuZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgIGxldCBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zOiBDb2x1bW5bXSA9IFtdO1xuICAgIGNvbnN0IHVuc2VsZWN0ZWRDb2x1bW5PcHRpb25zOiBDb2x1bW5bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb2x1bW5PcHRpb24gb2YgYWxsQ29sdW1uT3B0aW9ucykge1xuICAgICAgLy8gZm9ybWF0IHRoZSBjb2x1bW4gd2l0aCB0aGUgcHJvcGVydGllcyB0aGUgY29sdW1uIHBpY2tlciBuZWVkc1xuICAgICAgY29uc3QgY29sSW5kZXggPSB2aXNpYmxlQ29sdW1uSWRzLmluZGV4T2YoY29sdW1uT3B0aW9uLmlkKTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZENvbHVtbjogQ29sdW1uID0ge1xuICAgICAgICBhbHdheXNEaXNwbGF5ZWQ6IGNvbHVtbk9wdGlvbi5hbHdheXNEaXNwbGF5ZWQsXG4gICAgICAgIGlkOiBjb2x1bW5PcHRpb24uaWQsXG4gICAgICAgIGxhYmVsOiBjb2x1bW5PcHRpb24ubGFiZWwsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5PcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGNvbEluZGV4ICE9PSAtMSxcbiAgICAgIH07XG5cbiAgICAgIC8vIGlmIGNvbHVtbiBwaWNrZXIgc29ydGluZyBpcyBjdXJyZW50bHkgZW5hYmxlZCBzb3J0IGNvbHVtbnMgYnkgb3JkZXIgZGlzcGxheWVkIHRoZW4gYWxwaGFiZXRpY2FsXG4gICAgICAvLyBlbHNlIGRpc3BsYXkgY29sdW1uIGluIG9yZGVyIHRoZXkgd2VyZSBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbk9wdGlvbnNcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5jb250ZXh0LmNvbHVtblBpY2tlclNvcnRTdHJhdGVneSA9PT1cbiAgICAgICAgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJTb3J0U3RyYXRlZ3kuU2VsZWN0ZWRUaGVuQWxwaGFiZXRpY2FsXG4gICAgICApIHtcbiAgICAgICAgaWYgKGZvcm1hdHRlZENvbHVtbi5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgZm9ybWF0dGVkQ29sdW1uT3B0aW9uc1tjb2xJbmRleF0gPSBmb3JtYXR0ZWRDb2x1bW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5zZWxlY3RlZENvbHVtbk9wdGlvbnMucHVzaChmb3JtYXR0ZWRDb2x1bW4pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zLnB1c2goZm9ybWF0dGVkQ29sdW1uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpZiBjb2x1bW4gcGlja2VyIHNvcnRpbmcgaXMgZW5hYmxlZCwgc29ydCB0aGUgY29sdW1ucyB0aGF0IGFyZSBub3QgY3VycmVudGx5IGRpc3BsYXllZFxuICAgIC8vIGFuZCBhZGQgdGhlbSBhZnRlciB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBvcHRpb25zXG4gICAgaWYgKFxuICAgICAgdGhpcy5jb250ZXh0LmNvbHVtblBpY2tlclNvcnRTdHJhdGVneSA9PT1cbiAgICAgIFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyU29ydFN0cmF0ZWd5LlNlbGVjdGVkVGhlbkFscGhhYmV0aWNhbFxuICAgICkge1xuICAgICAgdW5zZWxlY3RlZENvbHVtbk9wdGlvbnMuc29ydCgoY29sMSwgY29sMikgPT5cbiAgICAgICAgY29sMS5sYWJlbC5sb2NhbGVDb21wYXJlKGNvbDIubGFiZWwpXG4gICAgICApO1xuICAgICAgZm9ybWF0dGVkQ29sdW1uT3B0aW9ucyA9IGZvcm1hdHRlZENvbHVtbk9wdGlvbnMuY29uY2F0KFxuICAgICAgICB1bnNlbGVjdGVkQ29sdW1uT3B0aW9uc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybWF0dGVkQ29sdW1uT3B0aW9ucztcbiAgfVxufVxuIiwiPHNreS1tb2RhbD5cbiAgPHNreS1tb2RhbC1oZWFkZXI+XG4gICAge3sgJ3NreXV4X2RhdGFfbWFuYWdlcl9jb2x1bW5fcGlja2VyX3RpdGxlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICA8L3NreS1tb2RhbC1oZWFkZXI+XG4gIDxza3ktbW9kYWwtY29udGVudCBjbGFzcz1cInNreS1kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1jb250ZW50XCI+XG4gICAgPHNreS1kYXRhLW1hbmFnZXI+XG4gICAgICA8c2t5LWRhdGEtbWFuYWdlci10b29sYmFyPiA8L3NreS1kYXRhLW1hbmFnZXItdG9vbGJhcj5cblxuICAgICAgPHNreS1kYXRhLXZpZXcgW3ZpZXdJZF09XCJ2aWV3Q29uZmlnLmlkXCI+XG4gICAgICAgIDxza3ktcmVwZWF0ZXIgZXhwYW5kTW9kZT1cIm5vbmVcIj5cbiAgICAgICAgICA8c2t5LXJlcGVhdGVyLWl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGlzcGxheWVkQ29sdW1uRGF0YVwiXG4gICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFsoaXNTZWxlY3RlZCldPVwiY29sdW1uLmlzU2VsZWN0ZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbS10aXRsZT5cbiAgICAgICAgICAgICAge3sgY29sdW1uLmxhYmVsIH19XG4gICAgICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtLXRpdGxlPlxuICAgICAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIHt7IGNvbHVtbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0+XG4gICAgICAgIDwvc2t5LXJlcGVhdGVyPlxuICAgICAgPC9za3ktZGF0YS12aWV3PlxuICAgIDwvc2t5LWRhdGEtbWFuYWdlcj5cbiAgPC9za3ktbW9kYWwtY29udGVudD5cbiAgPHNreS1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvblxuICAgICAgc2t5LWNtcC1pZD1cImFwcGx5LWNoYW5nZXNcIlxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tcHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwiYXBwbHlDaGFuZ2VzKClcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9kYXRhX21hbmFnZXJfYXBwbHlfY2hhbmdlc19idXR0b25fdGl0bGUnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgc2t5LWNtcC1pZD1cImNhbmNlbFwiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rXCJcbiAgICAgIChjbGljayk9XCJjYW5jZWxDaGFuZ2VzKClcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9kYXRhX21hbmFnZXJfY2FuY2VsX2J1dHRvbl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9za3ktbW9kYWwtZm9vdGVyPlxuPC9za3ktbW9kYWw+XG4iXX0=
@@ -8,9 +8,9 @@ import * as i0 from "@angular/core";
8
8
  */
9
9
  export class SkyDataManagerColumnPickerService {
10
10
  }
11
- SkyDataManagerColumnPickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerColumnPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12
- SkyDataManagerColumnPickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerColumnPickerService });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerColumnPickerService, decorators: [{
11
+ SkyDataManagerColumnPickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerColumnPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12
+ SkyDataManagerColumnPickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerColumnPickerService });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerColumnPickerService, decorators: [{
14
14
  type: Injectable
15
15
  }] });
16
16
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFnQixpQ0FBaUM7OzhIQUFqQyxpQ0FBaUM7a0lBQWpDLGlDQUFpQzsyRkFBakMsaUNBQWlDO2tCQUR0RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBwcm92aWRlcyB0aGUgY29sdW1uIHBpY2tlciBjb21wb25lbnQgdHlwZSBzbyBpdCBjYW4gYmUgZHluYW1pY2FsbHlcbiAqIGNyZWF0ZWQgaW4gdGhlIHRvb2xiYXIgY29tcG9uZW50LiBUaGlzIGF2b2lkcyBhIGNpcmN1bGFyIHJlZmVyZW5jZSBiZXR3ZWVuIGNvbHVtblxuICogcGlja2VyIGFuZCB0b29sYmFyLlxuICogaHR0cHM6Ly9hbmd1bGFyLmlvL2Vycm9ycy9ORzMwMDNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyU2VydmljZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDb21wb25lbnRUeXBlKCk6IHR5cGVvZiBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlckNvbXBvbmVudDtcbn1cbiJdfQ==
@@ -8,9 +8,9 @@ import * as i1 from "@skyux/layout";
8
8
  */
9
9
  export class SkyDataManagerToolbarLeftItemComponent {
10
10
  }
11
- SkyDataManagerToolbarLeftItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- SkyDataManagerToolbarLeftItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDataManagerToolbarLeftItemComponent, selector: "sky-data-manager-toolbar-left-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n", components: [{ type: i1.λ39, selector: "sky-toolbar-item" }] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, decorators: [{
11
+ SkyDataManagerToolbarLeftItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ SkyDataManagerToolbarLeftItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyDataManagerToolbarLeftItemComponent, selector: "sky-data-manager-toolbar-left-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n", components: [{ type: i1.λ39, selector: "sky-toolbar-item" }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'sky-data-manager-toolbar-left-item', template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n" }]
16
16
  }] });
@@ -8,9 +8,9 @@ import * as i1 from "@skyux/layout";
8
8
  */
9
9
  export class SkyDataManagerToolbarPrimaryItemComponent {
10
10
  }
11
- SkyDataManagerToolbarPrimaryItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- SkyDataManagerToolbarPrimaryItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDataManagerToolbarPrimaryItemComponent, selector: "sky-data-manager-toolbar-primary-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n", components: [{ type: i1.λ39, selector: "sky-toolbar-item" }] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, decorators: [{
11
+ SkyDataManagerToolbarPrimaryItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ SkyDataManagerToolbarPrimaryItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyDataManagerToolbarPrimaryItemComponent, selector: "sky-data-manager-toolbar-primary-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n", components: [{ type: i1.λ39, selector: "sky-toolbar-item" }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'sky-data-manager-toolbar-primary-item', template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n" }]
16
16
  }] });
@@ -8,9 +8,9 @@ import * as i0 from "@angular/core";
8
8
  */
9
9
  export class SkyDataManagerToolbarRightItemComponent {
10
10
  }
11
- SkyDataManagerToolbarRightItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- SkyDataManagerToolbarRightItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDataManagerToolbarRightItemComponent, selector: "sky-data-manager-toolbar-right-item", ngImport: i0, template: "<ng-content></ng-content>\n" });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, decorators: [{
11
+ SkyDataManagerToolbarRightItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ SkyDataManagerToolbarRightItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyDataManagerToolbarRightItemComponent, selector: "sky-data-manager-toolbar-right-item", ngImport: i0, template: "<ng-content></ng-content>\n" });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'sky-data-manager-toolbar-right-item', template: "<ng-content></ng-content>\n" }]
16
16
  }] });
@@ -8,9 +8,9 @@ import * as i1 from "@skyux/layout";
8
8
  */
9
9
  export class SkyDataManagerToolbarSectionComponent {
10
10
  }
11
- SkyDataManagerToolbarSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- SkyDataManagerToolbarSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDataManagerToolbarSectionComponent, selector: "sky-data-manager-toolbar-section", ngImport: i0, template: "<sky-toolbar-section>\n <ng-content></ng-content>\n</sky-toolbar-section>\n", components: [{ type: i1.λ38, selector: "sky-toolbar-section" }] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, decorators: [{
11
+ SkyDataManagerToolbarSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ SkyDataManagerToolbarSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyDataManagerToolbarSectionComponent, selector: "sky-data-manager-toolbar-section", ngImport: i0, template: "<sky-toolbar-section>\n <ng-content></ng-content>\n</sky-toolbar-section>\n", components: [{ type: i1.λ38, selector: "sky-toolbar-section" }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'sky-data-manager-toolbar-section', template: "<sky-toolbar-section>\n <ng-content></ng-content>\n</sky-toolbar-section>\n" }]
16
16
  }] });
@@ -171,9 +171,9 @@ export class SkyDataManagerToolbarComponent {
171
171
  this.dataManagerService.updateDataState(this.dataState, this._source);
172
172
  }
173
173
  }
174
- SkyDataManagerToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }, { token: i2.SkyModalService }, { token: i3.SkyDataManagerColumnPickerService }], target: i0.ɵɵFactoryTarget.Component });
175
- SkyDataManagerToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDataManagerToolbarComponent, selector: "sky-data-manager-toolbar", ngImport: i0, template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar>\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.filterButtonEnabled\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n >\n </sky-filter-button>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.sortEnabled\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n <sky-sort-item\n *ngFor=\"let item of dataManagerConfig?.sortOptions\"\n [active]=\"activeSortOptionId && activeSortOptionId === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n </sky-sort>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.columnPickerEnabled\">\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\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\"></sky-icon>\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 <ng-content select=\"sky-data-manager-toolbar-left-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.searchEnabled\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\"></ng-content>\n <sky-radio-group\n *ngIf=\"activeView && views && views.length > 1\"\n [ariaLabel]=\"'data view switcher'\"\n class=\"sky-switch-icon-group\"\n >\n <sky-radio\n *ngFor=\"let view of views\"\n [attr.name]=\"view.name\"\n [attr.aria-label]=\"view.name\"\n [icon]=\"view.icon\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n [(ngModel)]=\"activeView.id\"\n (change)=\"onViewChange(view.id)\"\n >\n </sky-radio>\n </sky-radio-group>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\"></ng-content>\n </sky-toolbar>\n\n <sky-toolbar\n *ngIf=\"activeView?.multiselectToolbarEnabled\"\n class=\"sky-data-manager-multiselect-toolbar\"\n >\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 (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 (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 (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title' | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\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"], components: [{ type: i4.λ37, selector: "sky-toolbar" }, { type: i4.λ38, selector: "sky-toolbar-section" }, { type: i4.λ39, selector: "sky-toolbar-item" }, { type: i5.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { type: i5.λ14, selector: "sky-sort", inputs: ["showButtonText"] }, { type: i5.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i7.SkySearchComponent, selector: "sky-search", inputs: ["searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { type: i4.λ40, selector: "sky-toolbar-view-actions" }, { type: i8.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "name", "required", "value", "tabIndex"] }, { type: i8.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "icon", "radioType"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i8.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i8.λ4, selector: "sky-checkbox-label" }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i11.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerToolbarComponent, decorators: [{
174
+ SkyDataManagerToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }, { token: i2.SkyModalService }, { token: i3.SkyDataManagerColumnPickerService }], target: i0.ɵɵFactoryTarget.Component });
175
+ SkyDataManagerToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyDataManagerToolbarComponent, selector: "sky-data-manager-toolbar", ngImport: i0, template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar>\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.filterButtonEnabled\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n >\n </sky-filter-button>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.sortEnabled\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n <sky-sort-item\n *ngFor=\"let item of dataManagerConfig?.sortOptions\"\n [active]=\"activeSortOptionId && activeSortOptionId === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n </sky-sort>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.columnPickerEnabled\">\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\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\"></sky-icon>\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 <ng-content select=\"sky-data-manager-toolbar-left-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.searchEnabled\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\"></ng-content>\n <sky-radio-group\n *ngIf=\"activeView && views && views.length > 1\"\n [ariaLabel]=\"'data view switcher'\"\n class=\"sky-switch-icon-group\"\n >\n <sky-radio\n *ngFor=\"let view of views\"\n [attr.name]=\"view.name\"\n [attr.aria-label]=\"view.name\"\n [icon]=\"view.icon\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n [(ngModel)]=\"activeView.id\"\n (change)=\"onViewChange(view.id)\"\n >\n </sky-radio>\n </sky-radio-group>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\"></ng-content>\n </sky-toolbar>\n\n <sky-toolbar\n *ngIf=\"activeView?.multiselectToolbarEnabled\"\n class=\"sky-data-manager-multiselect-toolbar\"\n >\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 (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 (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 (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title' | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\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"], components: [{ type: i4.λ37, selector: "sky-toolbar" }, { type: i4.λ38, selector: "sky-toolbar-section" }, { type: i4.λ39, selector: "sky-toolbar-item" }, { type: i5.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { type: i5.λ14, selector: "sky-sort", inputs: ["showButtonText"] }, { type: i5.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { type: i7.SkySearchComponent, selector: "sky-search", inputs: ["searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { type: i4.λ40, selector: "sky-toolbar-view-actions" }, { type: i8.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "name", "required", "value", "tabIndex"] }, { type: i8.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "icon", "radioType"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i8.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "required"], outputs: ["change", "checkedChange", "disabledChange"] }, { type: i8.λ4, selector: "sky-checkbox-label" }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i11.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerToolbarComponent, decorators: [{
177
177
  type: Component,
178
178
  args: [{ selector: 'sky-data-manager-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar>\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.filterButtonEnabled\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n >\n </sky-filter-button>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.sortEnabled\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n <sky-sort-item\n *ngFor=\"let item of dataManagerConfig?.sortOptions\"\n [active]=\"activeSortOptionId && activeSortOptionId === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n </sky-sort>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.columnPickerEnabled\">\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\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\"></sky-icon>\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 <ng-content select=\"sky-data-manager-toolbar-left-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.searchEnabled\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\"></ng-content>\n <sky-radio-group\n *ngIf=\"activeView && views && views.length > 1\"\n [ariaLabel]=\"'data view switcher'\"\n class=\"sky-switch-icon-group\"\n >\n <sky-radio\n *ngFor=\"let view of views\"\n [attr.name]=\"view.name\"\n [attr.aria-label]=\"view.name\"\n [icon]=\"view.icon\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n [(ngModel)]=\"activeView.id\"\n (change)=\"onViewChange(view.id)\"\n >\n </sky-radio>\n </sky-radio-group>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\"></ng-content>\n </sky-toolbar>\n\n <sky-toolbar\n *ngIf=\"activeView?.multiselectToolbarEnabled\"\n class=\"sky-data-manager-multiselect-toolbar\"\n >\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 (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 (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 (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title' | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\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"] }]
179
179
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }, { type: i2.SkyModalService }, { type: i3.SkyDataManagerColumnPickerService }]; } });
@@ -71,9 +71,9 @@ export class SkyDataManagerComponent {
71
71
  this.ngUnsubscribe.complete();
72
72
  }
73
73
  }
74
- SkyDataManagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
75
- SkyDataManagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDataManagerComponent, selector: "sky-data-manager", ngImport: i0, template: "<div\n *ngIf=\"isInitialized\"\n class=\"sky-data-manager\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n #dataManager\n>\n <ng-content></ng-content>\n</div>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.λ7, selector: "[skyBackToTop]", inputs: ["skyBackToTop", "skyBackToTopMessageStream"] }, { type: i4.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerComponent, decorators: [{
74
+ SkyDataManagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
75
+ SkyDataManagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyDataManagerComponent, selector: "sky-data-manager", ngImport: i0, template: "<div\n *ngIf=\"isInitialized\"\n class=\"sky-data-manager\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n #dataManager\n>\n <ng-content></ng-content>\n</div>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.λ7, selector: "[skyBackToTop]", inputs: ["skyBackToTop", "skyBackToTopMessageStream"] }, { type: i4.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerComponent, decorators: [{
77
77
  type: Component,
78
78
  args: [{ selector: 'sky-data-manager', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"isInitialized\"\n class=\"sky-data-manager\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n #dataManager\n>\n <ng-content></ng-content>\n</div>\n" }]
79
79
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }]; } });
@@ -22,8 +22,8 @@ import { SkyDataViewComponent } from './data-view.component';
22
22
  import * as i0 from "@angular/core";
23
23
  export class SkyDataManagerModule {
24
24
  }
25
- SkyDataManagerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
- SkyDataManagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerModule, declarations: [SkyDataManagerColumnPickerComponent,
25
+ SkyDataManagerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ SkyDataManagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerModule, declarations: [SkyDataManagerColumnPickerComponent,
27
27
  SkyDataManagerComponent,
28
28
  SkyDataManagerToolbarLeftItemComponent,
29
29
  SkyDataManagerToolbarPrimaryItemComponent,
@@ -51,7 +51,7 @@ SkyDataManagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ve
51
51
  SkyDataManagerToolbarSectionComponent,
52
52
  SkyDataManagerToolbarComponent,
53
53
  SkyDataViewComponent] });
54
- SkyDataManagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerModule, providers: [
54
+ SkyDataManagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerModule, providers: [
55
55
  {
56
56
  provide: SkyDataManagerColumnPickerService,
57
57
  useClass: SkyDataManagerColumnPickerImplService,
@@ -72,7 +72,7 @@ SkyDataManagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
72
72
  SkyToolbarModule,
73
73
  SkyViewkeeperModule,
74
74
  ]] });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerModule, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerModule, decorators: [{
76
76
  type: NgModule,
77
77
  args: [{
78
78
  declarations: [
@@ -269,9 +269,9 @@ export class SkyDataManagerService {
269
269
  };
270
270
  }
271
271
  }
272
- SkyDataManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
273
- SkyDataManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerService });
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerService, decorators: [{
272
+ SkyDataManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
273
+ SkyDataManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerService });
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerService, decorators: [{
275
275
  type: Injectable
276
276
  }], ctorParameters: function () { return [{ type: i1.SkyUIConfigService }]; } });
277
277
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUU1RDs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQW1CaEMsWUFBb0IsZUFBbUM7UUFBbkMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBbEJoRCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FFM0MsRUFBRSxDQUFDLENBQUM7UUFFVSxpQkFBWSxHQUFHLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRTVDLHNCQUFpQixHQUNoQyxJQUFJLGVBQWUsQ0FBdUIsU0FBUyxDQUFDLENBQUM7UUFFdEMsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQztRQUVyRCxvQkFBZSxHQUM5QixJQUFJLGFBQWEsQ0FBNEIsQ0FBQyxDQUFDLENBQUM7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Q2pDLDBCQUEwQjtZQUMxQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ25FLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvRDtTQUNGO1FBRUQsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0lBRU8seUJBQXlCLENBQy9CLFVBQW9CO1FBRXBCLE9BQU8sQ0FDTCxNQUEyQixFQUMzQixNQUEyQixFQUNsQixFQUFFO1lBQ1gsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMxRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztJQUNKLENBQUM7O2tIQWpWVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItaW5pdC1hcmdzJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZSB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUtb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlVXBkYXRlRmlsdGVyQXJncyB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS11cGRhdGUtZmlsdGVyLWFyZ3MnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLXZpZXctY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLXZpZXctc3RhdGUnO1xuXG4vKipcbiAqIFRoZSBkYXRhIG1hbmFnZXIgc2VydmljZSBwcm92aWRlcyB3YXlzIGZvciBkYXRhIHZpZXdzLCB0b29sYmFyIGl0ZW1zLCBhbmQgbW9yZSB0byBzdGF5IHVwIHRvIGRhdGVcbiAqIHdpdGggdGhlIGFjdGl2ZSB2aWV3IElELCBkYXRhIG1hbmFnZXIgY29uZmlnLCByZWdpc3RlcmVkIHZpZXdzIGFuZCB0aGVpciBjb25maWdzLCBhbmQgZGF0YSBzdGF0ZS5cbiAqIFRoZXJlIGFyZSBtZXRob2RzIHRvIGdldCBjdXJyZW50IHZhbHVlcywgdXBkYXRlIHZhbHVlcywgYW5kIGdldCBzdWJzY3JpcHRpb25zIHRvIHRoZSBjaGFuZ2luZyB2YWx1ZXMuPGJyLz4gPGJyLz5cbiAqIFByb3ZpZGUgdGhpcyBzZXJ2aWNlIGF0IHRoZSBjb21wb25lbnQgbGV2ZWwgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgYSBkYXRhIG1hbmFnZXIuIERvIG5vdFxuICogcHJvdmlkZSBpdCBhdCB0aGUgbW9kdWxlIGxldmVsIG9yIGluIGBhcHAtZXh0cmFzYC4gVGhpcyBhbGxvd3MgbXVsdGlwbGUgZGF0YVxuICogbWFuYWdlcnMgdG8gYmUgdXNlZCBhbmQgc2VsZi1jb250YWluZWQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgdmlld2tlZXBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcbiAgICBbdmlld0lkOiBzdHJpbmddOiBzdHJpbmdbXTtcbiAgfT4oe30pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlVmlld0lkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFNYW5hZ2VyQ29uZmlnID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFNYW5hZ2VyQ29uZmlnPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmlld3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFWaWV3Q29uZmlnW10+KFtdKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTdGF0ZUNoYW5nZSA9XG4gICAgbmV3IFJlcGxheVN1YmplY3Q8U2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZT4oMSk7XG5cbiAgcHJpdmF0ZSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgaW5pdFNvdXJjZSA9ICdkYXRhTWFuYWdlclNlcnZpY2VJbml0JztcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1aUNvbmZpZ1NlcnZpY2U6IFNreVVJQ29uZmlnU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVWaWV3SWQuY29tcGxldGUoKTtcbiAgICB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy52aWV3cy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhIG1hbmFnZXIgd2l0aCB0aGUgZ2l2ZW4gc2V0dGluZ3MgYW5kIHNldHMgYGlzSW5pdGlhbGl6ZWRgIHRvIGB0cnVlYC5cbiAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgdGhlIGRhdGEgbWFuYWdlciB0byByZW5kZXIuXG4gICAqIEBwYXJhbSBhcmdzIFRoZSBpbml0aWFsIGFjdGl2ZSB2aWV3IElELCBkYXRhIG1hbmFnZXIgY29uZmlnLCBhbmQgc3RhdGUgdG8gdXNlIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBJZiBhIHNldHRpbmdzIGtleSBpcyBwcm92aWRlZCwgaXQgY2hlY2tzIGZvciBhIHNhdmVkIGRhdGEgc3RhdGUgaW4gdGhlIFNLWSBVSSBjb25maWcgc2VydmljZSBiZWZvcmUgdXNpbmcgdGhlIGRlZmF1bHQgZGF0YSBzdGF0ZVxuICAgKiBhbmQgc2F2ZXMgYW55IHN0YXRlIGNoYW5nZXMgdG8gdGhlIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFNYW5hZ2VyKGFyZ3M6IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RoaXMgZGF0YSBtYW5hZ2VyIGluc3RhbmNlIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdERhdGFTdGF0ZSA9IGFyZ3MuZGVmYXVsdERhdGFTdGF0ZTtcbiAgICBjb25zdCBzZXR0aW5nc0tleSA9IGFyZ3Muc2V0dGluZ3NLZXk7XG5cbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZVZpZXdJZChhcmdzLmFjdGl2ZVZpZXdJZCk7XG4gICAgdGhpcy51cGRhdGVEYXRhTWFuYWdlckNvbmZpZyhhcmdzLmRhdGFNYW5hZ2VyQ29uZmlnKTtcblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy51aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLmdldENvbmZpZyhzZXR0aW5nc0tleSwgZGVmYXVsdERhdGFTdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29uZmlnOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucykgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICAgICAgbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoY29uZmlnKSxcbiAgICAgICAgICAgIHRoaXMuaW5pdFNvdXJjZVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShkZWZhdWx0RGF0YVN0YXRlLCB0aGlzLmluaXRTb3VyY2UpO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy5nZXREYXRhU3RhdGVVcGRhdGVzKHRoaXMuaW5pdFNvdXJjZSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMudWlDb25maWdTZXJ2aWNlXG4gICAgICAgICAgICAuc2V0Q29uZmlnKHNldHRpbmdzS2V5LCBzdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgKCkgPT4ge30sXG4gICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBzYXZlIGRhdGEgbWFuYWdlciBzZXR0aW5ncy4nKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgdmlldyB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlci4gVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgZWFjaCB2aWV3IGZvciB0aGUgdmlld3MgdG8gYXBwZWFyIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBAcGFyYW0gdmlld0NvbmZpZyBUaGUgU2t5RGF0YVZpZXdDb25maWcgc2V0dGluZ3MgZm9yIHRoZSB2aWV3IGJlaW5nIHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFWaWV3KHZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZpZXdzOiBTa3lEYXRhVmlld0NvbmZpZ1tdID0gdGhpcy52aWV3cy52YWx1ZTtcblxuICAgIGlmICh0aGlzLmdldFZpZXdCeUlkKHZpZXdDb25maWcuaWQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBBIGRhdGEgbWFuYWdlciB2aWV3IHdpdGggdGhlIGlkICR7dmlld0NvbmZpZy5pZH0gaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZC5gXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGN1cnJlbnRWaWV3cy5wdXNoKHZpZXdDb25maWcpO1xuICAgIHRoaXMudmlld3MubmV4dChjdXJyZW50Vmlld3MpO1xuXG4gICAgLy8gV2hlbiB0aGUgaW5pdGlhbCBhY3RpdmVWaWV3SWQgaXMgc2V0IHRoZXJlIGFyZSBubyB2aWV3cyByZWdpc3RlcmVkLiBXZSBoYXZlIHRvIHJlLWVtaXRcbiAgICAvLyB0aGUgYWN0aXZlSWQgc28gdGhlIG5ld2x5IHJlZ2lzdGVyZWQgdmlldyBpcyBub3RpZmllZCB0aGF0IGl0IGlzIGFjdGl2ZS5cbiAgICB0aGlzLmFjdGl2ZVZpZXdJZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoaWQpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlVmlld0lkLm5leHQoaWQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU3RhdGVDaGFuZ2VcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0YXRlID0gY2hhbmdlLmRhdGFTdGF0ZTtcbiAgICAgICAgY29uc3QgY3VycmVudFZpZXdTdGF0ZSA9IGRhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKHZpZXdDb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghY3VycmVudFZpZXdTdGF0ZSkge1xuICAgICAgICAgIGNvbnN0IG5ld1ZpZXdTdGF0ZSA9IG5ldyBTa3lEYXRhVmlld1N0YXRlKHsgdmlld0lkOiB2aWV3Q29uZmlnLmlkIH0pO1xuXG4gICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHZpZXcgc3RhdGUncyBhdmFpbGFibGUgY29sdW1ucyBtYXRjaCB3aXRoIHRoZSB2aWV3IGNvbmZpZy4gQWxzbyxcbiAgICAgICAgICAvLyBhZGQgY29sdW1ucyB0byB0aGUgYGRpc3BsYXllZENvbHVtbklkc2AgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgYGluaXRpYWxIaWRlYFxuICAgICAgICAgIGlmICh2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9ucy5tYXAoKGNvbHVtbk9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbnMuaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZENvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9uc1xuICAgICAgICAgICAgICAuZmlsdGVyKChjb2x1bW5PcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWNvbHVtbk9wdGlvbi5pbml0aWFsSGlkZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLm1hcCgoY29sdW1uT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbi5pZDtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZS5jb2x1bW5JZHMgPSBjb2x1bW5JZHM7XG4gICAgICAgICAgICBuZXdWaWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzID0gZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBuZXdEYXRhU3RhdGUgPSBkYXRhU3RhdGUuYWRkT3JVcGRhdGVWaWV3KFxuICAgICAgICAgICAgdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShuZXdEYXRhU3RhdGUsIHRoaXMuaW5pdFNvdXJjZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudEF2YWlsYWJsZUNvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9ucz8ubWFwKFxuICAgICAgICAgICAgKGNvbHVtbk9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbnMuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHRoZSB2aWV3IHN0YXRlJ3MgYXZhaWxhYmxlIGNvbHVtbnMgbWF0Y2ggd2l0aCB0aGUgdmlldyBjb25maWcuIEFsc28sXG4gICAgICAgICAgLy8gYWRkIG5ldyBjb2x1bW5zIHRvIHRoZSBgZGlzcGxheWVkQ29sdW1uSWRzYCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBgaW5pdGlhbEhpZGVgLlxuICAgICAgICAgIC8vIFdlIG9ubHkgYWRkIGNvbHVtbnMgdG8gYGRpc3BsYXllZENvbHVtbnNJZHNgIGlmIHdlIGhhZCBwcmV2aW91c2x5IHRyYWNrZWRcbiAgICAgICAgICAvLyBgY29sdW1uSWRzYCB0byBhdm9pZCBicmVha2luZyBjaGFuZ2VzLlxuICAgICAgICAgIGlmIChjdXJyZW50Vmlld1N0YXRlLmNvbHVtbklkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgbmV3Q29sdW1uSWRzID0gY3VycmVudEF2YWlsYWJsZUNvbHVtbklkcy5maWx0ZXIoXG4gICAgICAgICAgICAgIChpZCkgPT4gY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMuaW5kZXhPZihpZCkgPCAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbmV3Q29sdW1uSWRzID0gbmV3Q29sdW1uSWRzLmZpbHRlcigoY29sdW1uSWQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZpZXdDb25maWcuY29sdW1uT3B0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2x1bW5PcHRpb24pID0+XG4gICAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uaWQgPT09IGNvbHVtbklkICYmICFjb2x1bW5PcHRpb24uaW5pdGlhbEhpZGVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBBZGQgdGhlIGNvbHVtbiBJRHMgdGhhdCBub3cgZXhpc3QgdG8gdGhlIGRhdGEgbWFuYWdlciBzdGF0ZSBib3RoIGFzIGF2YWlsYWJsZVxuICAgICAgICAgICAgLy8gYW5kIGFzIHNob3duLlxuICAgICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMgPVxuICAgICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcy5jb25jYXQobmV3Q29sdW1uSWRzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQWRkIHRoZSBjb2x1bW4gSURzIHRoYXQgbm93IGV4aXN0IHRvIHRoZSBkYXRhIG1hbmFnZXIgc3RhdGUgYm90aCBhcyBhdmFpbGFibGVcbiAgICAgICAgICAvLyBhbmQgYXMgc2hvd24uXG4gICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMgPSBjdXJyZW50QXZhaWxhYmxlQ29sdW1uSWRzO1xuXG4gICAgICAgICAgY29uc3QgbmV3RGF0YVN0YXRlID0gZGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKG5ld0RhdGFTdGF0ZSwgdGhpcy5pbml0U291cmNlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIHN0YXRlIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqIEl0IGV4Y2x1ZGVzIHVwZGF0ZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlLiBUaGlzIGFsbG93cyBzdWJzY3JpYmVycyB0byBvbmx5IHJlc3BvbmQgdG9cbiAgICogY2hhbmdlcyB0aGV5IGRpZCBub3QgY3JlYXRlIGFuZCBoZWxwcyBwcmV2ZW50IGluZmluaXRlIGxvb3BzIG9mIHVwZGF0ZXMgYW5kIHJlc3BvbnNlcy5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHN1YnNjcmliaW5nIHRvIGRhdGEgc3RhdGUgdXBkYXRlcy4gVGhpcyBjYW4gYmUgYW55IHZhbHVlIHlvdSBjaG9vc2VcbiAgICogYnV0IHNob3VsZCBiZSB1bmlxdWUgd2l0aGluIHRoZSBkYXRhIG1hbmFnZXIgaW5zdGFuY2UgYW5kIHNob3VsZCBhbHNvIGJlIHVzZWQgd2hlbiB0aGF0IGVudGl0eSB1cGRhdGVzIHRoZSBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBnZXREYXRhU3RhdGVVcGRhdGVzKFxuICAgIHNvdXJjZUlkOiBzdHJpbmcsXG4gICAgdXBkYXRlRmlsdGVyPzogU2t5RGF0YU1hbmFnZXJTdGF0ZVVwZGF0ZUZpbHRlckFyZ3NcbiAgKTogT2JzZXJ2YWJsZTxTa3lEYXRhTWFuYWdlclN0YXRlPiB7XG4gICAgLy8gZmlsdGVyIG91dCBldmVudHMgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlIGFuZCBlbWl0IGp1c3QgdGhlIGRhdGFTdGF0ZVxuICAgIGlmICh1cGRhdGVGaWx0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZUNoYW5nZS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXRlQ2hhbmdlKSA9PiBzb3VyY2VJZCAhPT0gc3RhdGVDaGFuZ2Uuc291cmNlKSxcbiAgICAgICAgbWFwKChzdGF0ZUNoYW5nZSkgPT4gc3RhdGVDaGFuZ2UuZGF0YVN0YXRlKSxcbiAgICAgICAgdXBkYXRlRmlsdGVyLmNvbXBhcmF0b3JcbiAgICAgICAgICA/IGRpc3RpbmN0VW50aWxDaGFuZ2VkKHVwZGF0ZUZpbHRlci5jb21wYXJhdG9yKVxuICAgICAgICAgIDogZGlzdGluY3RVbnRpbENoYW5nZWQoXG4gICAgICAgICAgICAgIHRoaXMuZ2V0RGVmYXVsdFN0YXRlQ29tcGFyYXRvcih1cGRhdGVGaWx0ZXIucHJvcGVydGllcylcbiAgICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZUNoYW5nZS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXRlQ2hhbmdlKSA9PiBzb3VyY2VJZCAhPT0gc3RhdGVDaGFuZ2Uuc291cmNlKSxcbiAgICAgICAgbWFwKChzdGF0ZUNoYW5nZSkgPT4gc3RhdGVDaGFuZ2UuZGF0YVN0YXRlKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGF0YSBzdGF0ZSBhbmQgZW1pdHMgYSBuZXcgdmFsdWUgdG8gZW50aXRpZXMgc3Vic2NyaWJlZCB0byBkYXRhIHN0YXRlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBzdGF0ZSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlclN0YXRlYCB2YWx1ZS5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHVwZGF0aW5nIHRoZSBzdGF0ZS4gVGhpcyBjYW4gYmUgYW55IHZhbHVlIHlvdSBjaG9vc2UsXG4gICAqIGJ1dCBzaG91bGQgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyIGluc3RhbmNlIGFuZCBzaG91bGQgYWxzbyBiZSB1c2VkIHdoZW4gdGhhdCBlbnRpdHlcbiAgICogc3Vic2NyaWJlcyB0byBzdGF0ZSBjaGFuZ2VzIGZyb20gYGdldERhdGFTdGF0ZVVwZGF0ZXNgLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZURhdGFTdGF0ZShzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSwgc291cmNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1N0YXRlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoc3RhdGUuZ2V0U3RhdGVPcHRpb25zKCkpO1xuICAgIGNvbnN0IG5ld1N0YXRlQ2hhbmdlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGVDaGFuZ2UobmV3U3RhdGUsIHNvdXJjZUlkKTtcblxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlLm5leHQobmV3U3RhdGVDaGFuZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYFNreURhdGFNYW5hZ2VyQ29uZmlnYC5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50RGF0YU1hbmFnZXJDb25maWcoKTogU2t5RGF0YU1hbmFnZXJDb25maWcge1xuICAgIHJldHVybiB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIG1hbmFnZXIgY29uZmlnIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YU1hbmFnZXJDb25maWdVcGRhdGVzKCk6IE9ic2VydmFibGU8U2t5RGF0YU1hbmFnZXJDb25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhTWFuYWdlckNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkYXRhIG1hbmFnZXIgY29uZmlnIGFuZCBlbWl0cyBhIG5ldyB2YWx1ZSB0byBlbnRpdGllcyBzdWJzY3JpYmVkIHRvIGRhdGEgY29uZmlnIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlckNvbmZpZ2AgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRGF0YU1hbmFnZXJDb25maWcodmFsdWU6IFNreURhdGFNYW5hZ2VyQ29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhTWFuYWdlckNvbmZpZy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgb2YgZGF0YSB2aWV3IGNvbmZpZyBjaGFuZ2VzIHRoYXQgdmlld3MgYW5kIG90aGVyIGRhdGEgbWFuYWdlciBlbnRpdGllcyBjYW4gc3Vic2NyaWJlIHRvLlxuICAgKi9cbiAgcHVibGljIGdldERhdGFWaWV3c1VwZGF0ZXMoKTogT2JzZXJ2YWJsZTxTa3lEYXRhVmlld0NvbmZpZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMudmlld3M7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgdmlldyBJRCB0aGF0IHZpZXdzIGFuZCBvdGhlciBkYXRhIG1hbmFnZXIgZW50aXRpZXMgY2FuIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHB1YmxpYyBnZXRBY3RpdmVWaWV3SWRVcGRhdGVzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlVmlld0lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGFjdGl2ZSB2aWV3IElELiBUaGUgZGF0YSBtYW5hZ2VyIGNoYW5nZXMgdGhlIGRpc3BsYXllZCB2aWV3LlxuICAgKiBAcGFyYW0gaWQgVGhlIG5ldyBhY3RpdmUgdmlldyBJRC5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVWaWV3SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVmlld0lkLm5leHQoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhVmlld0NvbmZpZ2AgZm9yIHRoZSBnaXZlbiB2aWV3IElELlxuICAgKiBAcGFyYW0gdmlld0lkIFRoZSBJRCBvZiB0aGUgdmlldyBjb25maWcgdG8gZ2V0LlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdCeUlkKHZpZXdJZDogc3RyaW5nKTogU2t5RGF0YVZpZXdDb25maWcge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMudmlld3MudmFsdWU7XG4gICAgY29uc3Qgdmlld0NvbmZpZzogU2t5RGF0YVZpZXdDb25maWcgPSBjdXJyZW50Vmlld3MuZmluZChcbiAgICAgICh2aWV3KSA9PiB2aWV3LmlkID09PSB2aWV3SWRcbiAgICApO1xuXG4gICAgcmV0dXJuIHZpZXdDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZ2l2ZW4gdmlldyBjb25maWcuIFRoZSByZWdpc3RlcmVkIHZpZXcgd2l0aCB0aGUgc2FtZSBJRCBpcyB1cGRhdGVkIHRvIHRoZVxuICAgKiBwcm92aWRlZCBjb25maWcsIHNvIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXkgY2hhbmdlZC4gSWYgdGhlXG4gICAqIHZpZXcgd2FzIG5vdCBpbml0aWFsaXplZCBhbHJlYWR5LCBubyB1cGRhdGUgaGFwcGVucy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIG5ldyBgU2t5RGF0YVZpZXdDb25maWdgIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlVmlld0NvbmZpZyh2aWV3OiBTa3lEYXRhVmlld0NvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMudmlld3MudmFsdWU7XG4gICAgY29uc3QgZXhpc3RpbmdWaWV3SW5kZXggPSBjdXJyZW50Vmlld3MuZmluZEluZGV4KFxuICAgICAgKGN1cnJlbnRWaWV3KSA9PiBjdXJyZW50Vmlldy5pZCA9PT0gdmlldy5pZFxuICAgICk7XG5cbiAgICBpZiAoZXhpc3RpbmdWaWV3SW5kZXggPT09IC0xKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBIHZpZXcgd2l0aCB0aGUgaWQge2lkfSBkb2VzIG5vdCBleGlzdC4nLCB2aWV3LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudFZpZXdzW2V4aXN0aW5nVmlld0luZGV4XSA9IHZpZXc7XG4gICAgICB0aGlzLnZpZXdzLm5leHQoY3VycmVudFZpZXdzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0Vmlld2tlZXBlckNsYXNzZXModmlld0lkOiBzdHJpbmcsIGNsYXNzZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld2tlZXBlckNsYXNzZXMgPSB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnZhbHVlO1xuICAgIHZpZXdrZWVwZXJDbGFzc2VzW3ZpZXdJZF0gPSBjbGFzc2VzO1xuXG4gICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5uZXh0KHZpZXdrZWVwZXJDbGFzc2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyRGF0YVN0YXRlUHJvcGVydGllcyhcbiAgICBzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSxcbiAgICBwcm9wZXJ0aWVzOiBzdHJpbmdbXVxuICApOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB7XG4gICAgY29uc3Qgc3RhdGVQcm9wZXJ0aWVzID0gc3RhdGUuZ2V0U3RhdGVPcHRpb25zKCkgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgICBjb25zdCBmaWx0ZXJlZFN0YXRlUHJvcGVydGllczogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZVByb3BlcnRpZXMsIHByb3BlcnR5KSkge1xuICAgICAgICBmaWx0ZXJlZFN0YXRlUHJvcGVydGllc1twcm9wZXJ0eV0gPSBzdGF0ZVByb3BlcnRpZXNbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZFN0YXRlUHJvcGVydGllcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFN0YXRlQ29tcGFyYXRvcihcbiAgICBwcm9wZXJ0aWVzOiBzdHJpbmdbXVxuICApOiAoc3RhdGUxOiBTa3lEYXRhTWFuYWdlclN0YXRlLCBzdGF0ZTI6IFNreURhdGFNYW5hZ2VyU3RhdGUpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBzdGF0ZTE6IFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gICAgICBzdGF0ZTI6IFNreURhdGFNYW5hZ2VyU3RhdGVcbiAgICApOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkU3RhdGUxID0gdGhpcy5maWx0ZXJEYXRhU3RhdGVQcm9wZXJ0aWVzKHN0YXRlMSwgcHJvcGVydGllcyk7XG4gICAgICBjb25zdCBmaWx0ZXJlZFN0YXRlMiA9IHRoaXMuZmlsdGVyRGF0YVN0YXRlUHJvcGVydGllcyhzdGF0ZTIsIHByb3BlcnRpZXMpO1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkU3RhdGUxKSA9PT0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWRTdGF0ZTIpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -37,9 +37,9 @@ export class SkyDataViewComponent {
37
37
  this._ngUnsubscribe.complete();
38
38
  }
39
39
  }
40
- SkyDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
41
- SkyDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDataViewComponent, selector: "sky-data-view", inputs: { viewId: "viewId" }, ngImport: i0, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataViewComponent, decorators: [{
40
+ SkyDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
41
+ SkyDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyDataViewComponent, selector: "sky-data-view", inputs: { viewId: "viewId" }, ngImport: i0, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataViewComponent, decorators: [{
43
43
  type: Component,
44
44
  args: [{ selector: 'sky-data-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n" }]
45
45
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }]; }, propDecorators: { viewId: [{
@@ -32,16 +32,16 @@ export class SkyDataManagerResourcesProvider {
32
32
  */
33
33
  export class SkyDataManagerResourcesModule {
34
34
  }
35
- SkyDataManagerResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
36
- SkyDataManagerResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerResourcesModule, exports: [SkyI18nModule] });
37
- SkyDataManagerResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerResourcesModule, providers: [
35
+ SkyDataManagerResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
36
+ SkyDataManagerResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerResourcesModule, exports: [SkyI18nModule] });
37
+ SkyDataManagerResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerResourcesModule, providers: [
38
38
  {
39
39
  provide: SKY_LIB_RESOURCES_PROVIDERS,
40
40
  useClass: SkyDataManagerResourcesProvider,
41
41
  multi: true,
42
42
  },
43
43
  ], imports: [SkyI18nModule] });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDataManagerResourcesModule, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDataManagerResourcesModule, decorators: [{
45
45
  type: NgModule,
46
46
  args: [{
47
47
  exports: [SkyI18nModule],