@skyux/data-manager 12.23.0 → 13.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/fesm2022/skyux-data-manager-testing.mjs.map +1 -1
  2. package/fesm2022/skyux-data-manager.mjs +41 -41
  3. package/fesm2022/skyux-data-manager.mjs.map +1 -1
  4. package/index.d.ts +705 -25
  5. package/package.json +14 -14
  6. package/testing/index.d.ts +359 -3
  7. package/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.d.ts +0 -8
  8. package/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.d.ts +0 -7
  9. package/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-providers.d.ts +0 -2
  10. package/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.d.ts +0 -42
  11. package/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.d.ts +0 -13
  12. package/lib/modules/data-manager/data-manager-filter-context.d.ts +0 -10
  13. package/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.d.ts +0 -10
  14. package/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.d.ts +0 -10
  15. package/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.d.ts +0 -11
  16. package/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.d.ts +0 -10
  17. package/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.d.ts +0 -36
  18. package/lib/modules/data-manager/data-manager.component.d.ts +0 -22
  19. package/lib/modules/data-manager/data-manager.module.d.ts +0 -13
  20. package/lib/modules/data-manager/data-manager.service.d.ts +0 -117
  21. package/lib/modules/data-manager/data-view.component.d.ts +0 -26
  22. package/lib/modules/data-manager/models/data-manager-column-picker-option.d.ts +0 -31
  23. package/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.d.ts +0 -14
  24. package/lib/modules/data-manager/models/data-manager-config.d.ts +0 -28
  25. package/lib/modules/data-manager/models/data-manager-filter-data.d.ts +0 -11
  26. package/lib/modules/data-manager/models/data-manager-init-args.d.ts +0 -25
  27. package/lib/modules/data-manager/models/data-manager-sort-option.d.ts +0 -22
  28. package/lib/modules/data-manager/models/data-manager-state-change.d.ts +0 -9
  29. package/lib/modules/data-manager/models/data-manager-state-options.d.ts +0 -35
  30. package/lib/modules/data-manager/models/data-manager-state-update-filter-args.d.ts +0 -16
  31. package/lib/modules/data-manager/models/data-manager-state.d.ts +0 -58
  32. package/lib/modules/data-manager/models/data-manager-summary-change.d.ts +0 -9
  33. package/lib/modules/data-manager/models/data-manager-summary.d.ts +0 -13
  34. package/lib/modules/data-manager/models/data-view-column-widths.d.ts +0 -10
  35. package/lib/modules/data-manager/models/data-view-config.d.ts +0 -96
  36. package/lib/modules/data-manager/models/data-view-state-options.d.ts +0 -24
  37. package/lib/modules/data-manager/models/data-view-state.d.ts +0 -34
  38. package/lib/modules/shared/sky-data-manager-resources.module.d.ts +0 -10
  39. package/testing/modules/data-manager/data-manager-column-picker-column-harness-filters.d.ts +0 -6
  40. package/testing/modules/data-manager/data-manager-column-picker-column-harness.d.ts +0 -81
  41. package/testing/modules/data-manager/data-manager-column-picker-harness.d.ts +0 -45
  42. package/testing/modules/data-manager/data-manager-harness-filters.d.ts +0 -6
  43. package/testing/modules/data-manager/data-manager-harness.d.ts +0 -33
  44. package/testing/modules/data-manager/data-manager-toolbar-harness-filters.d.ts +0 -6
  45. package/testing/modules/data-manager/data-manager-toolbar-harness.d.ts +0 -94
  46. package/testing/modules/data-manager/data-manager-toolbar-left-item-harness-filters.d.ts +0 -6
  47. package/testing/modules/data-manager/data-manager-toolbar-left-item-harness.d.ts +0 -17
  48. package/testing/modules/data-manager/data-manager-toolbar-primary-item-harness-filters.d.ts +0 -6
  49. package/testing/modules/data-manager/data-manager-toolbar-primary-item-harness.d.ts +0 -17
  50. package/testing/modules/data-manager/data-manager-toolbar-right-item-harness-filters.d.ts +0 -6
  51. package/testing/modules/data-manager/data-manager-toolbar-right-item-harness.d.ts +0 -17
  52. package/testing/modules/data-manager/data-manager-toolbar-section-harness-filters.d.ts +0 -6
  53. package/testing/modules/data-manager/data-manager-toolbar-section-harness.d.ts +0 -17
  54. package/testing/modules/data-manager/data-view-harness-filters.d.ts +0 -7
  55. package/testing/modules/data-manager/data-view-harness.d.ts +0 -17
  56. package/testing/public-api.d.ts +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-data-manager.mjs","sources":["../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-filter-context.ts","../../../../../libs/components/data-manager/src/lib/modules/shared/sky-data-manager-resources.module.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-view-state.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state-change.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-view.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-view.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-providers.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.ts","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.html","../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.module.ts","../../../../../libs/components/data-manager/src/skyux-data-manager.ts"],"sourcesContent":["import { SkyDataManagerFilterData } from './models/data-manager-filter-data';\n\n// TODO: In a future breaking change convert this to an interface\n/**\n * Sets the state of the filters.\n */\nexport class SkyDataManagerFilterModalContext {\n /**\n * Sets the state of the filters.\n */\n public filterData: SkyDataManagerFilterData | undefined;\n}\n","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-data-manager' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_data_manager_column_picker_title: {\n message: 'Choose columns to show in the list',\n },\n skyux_data_manager_apply_changes_button_title: { message: 'Apply changes' },\n skyux_data_manager_cancel_button_title: { message: 'Cancel' },\n skyux_data_manager_select_all_button_aria_label: {\n message: 'Select all {0}',\n },\n skyux_data_manager_select_all_button_title: { message: 'Select all' },\n skyux_data_manager_clear_all_button_aria_label: {\n message: 'Clear all selected {0}',\n },\n skyux_data_manager_clear_all_button_title: { message: 'Clear all' },\n skyux_data_manager_show_selected_option_aria_label: {\n message: 'Show only selected {0}',\n },\n skyux_data_manager_show_selected_option_title: {\n message: 'Show only selected items',\n },\n skyux_data_manager_columns_button_aria_label: {\n message: 'Choose columns for {0}',\n },\n skyux_data_manager_columns_button_title: { message: 'Columns' },\n skyux_data_manager_select_column_status_indicator_title: {\n message: 'Select at least one column.',\n },\n skyux_data_manager_status_update_with_selections: {\n message: '{0} of {1} items meet criteria and {2} selected.',\n },\n skyux_data_manager_status_update_without_selections: {\n message: '{0} of {1} items meet criteria.',\n },\n skyux_data_manager_status_update_only_selected: {\n message:\n '{0} of {1} items meet criteria and {2} selected. Only selected items are displayed.',\n },\n },\n 'FR-CA': {\n skyux_data_manager_column_picker_title: {\n message: 'Choisir les colonnes à indiquer dans la liste',\n },\n skyux_data_manager_apply_changes_button_title: {\n message: 'Appliquez les changements',\n },\n skyux_data_manager_cancel_button_title: { message: 'Annuler' },\n skyux_data_manager_select_all_button_aria_label: {\n message: 'Sélectionner tout {0}',\n },\n skyux_data_manager_select_all_button_title: {\n message: 'Sélectionner tout',\n },\n skyux_data_manager_clear_all_button_aria_label: {\n message: 'Supprimer tous les éléments sélectionnés {0}',\n },\n skyux_data_manager_clear_all_button_title: { message: 'Effacer tout' },\n skyux_data_manager_show_selected_option_aria_label: {\n message: 'Montrer seulement ce qui est sélectionné {0}',\n },\n skyux_data_manager_show_selected_option_title: {\n message: 'Montrer seulement les éléments sélectionnés',\n },\n skyux_data_manager_columns_button_aria_label: {\n message: 'Choisir les colonnes pour {0}',\n },\n skyux_data_manager_columns_button_title: { message: 'Colonnes' },\n skyux_data_manager_select_column_status_indicator_title: {\n message: 'Sélectionnez au moins une colonne.',\n },\n skyux_data_manager_status_update_with_selections: {\n message:\n '{0} de {1} éléments répondent aux critères et {2} sont sélectionnés.',\n },\n skyux_data_manager_status_update_without_selections: {\n message: '{0} de {1} éléments répondent aux critères.',\n },\n skyux_data_manager_status_update_only_selected: {\n message:\n '{0} de {1} éléments répondent aux critères et {2} sont sélectionnés. Seuls les éléments sélectionnés sont affichés.',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyDataManagerResourcesModule {}\n","/**\n * These options specify the sorting strategy applied to columns when `columnPickerEnabled` is enabled.\n */\nexport enum SkyDataManagerColumnPickerSortStrategy {\n /**\n * No sorting is applied to the columns.\n */\n None = 'none',\n /**\n * If `sortEnabled` is set to `true`, then the selected columns are displayed before the unselected columns. Unselected columns are sorted alphabetically.\n * If `sortEnabled` is set to `false`, then the columns are displayed in the order specified by `columnOptions`.\n */\n SelectedThenAlphabetical = 'selectedThenAlphabetical',\n}\n","import { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerColumnPickerSortStrategy } from '../models/data-manager-column-picker-sort-strategy';\n\nexport class SkyDataManagerColumnPickerContext {\n constructor(\n public columnOptions: SkyDataManagerColumnPickerOption[],\n public displayedColumnIds: string[],\n public columnPickerSortStrategy: SkyDataManagerColumnPickerSortStrategy = SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical,\n ) {}\n}\n","import { Injectable } from '@angular/core';\n\nimport type { SkyDataManagerColumnPickerComponent } from './data-manager-column-picker.component';\n\n/**\n * Service that provides the column picker component type so it can be dynamically\n * created in the toolbar component. This avoids a circular reference between column\n * picker and toolbar.\n * https://angular.io/errors/NG3003\n */\n@Injectable()\nexport abstract class SkyDataManagerColumnPickerService {\n public abstract getComponentType(): typeof SkyDataManagerColumnPickerComponent;\n}\n","import { SkyDataViewColumnWidths } from './data-view-column-widths';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\n\n/**\n * Provides options for defining how data is displayed, such as which columns appear.\n */\nexport class SkyDataViewState {\n /**\n * The IDs of the columns able to be displayed for column-based views. This property is required when utilizing a grid-based view, a column picker, or both.\n */\n public columnIds: string[] = [];\n\n /**\n * The widths of columns in column-based views for xs and sm+ breakpoints. If using sticky settings, the widths a user sets will be persisted.\n */\n public columnWidths: SkyDataViewColumnWidths = { xs: {}, sm: {} };\n /**\n * The IDs of the columns displayed for column-based views.\n */\n public displayedColumnIds: string[] = [];\n /**\n * The ID of this view.\n */\n public viewId: string;\n /**\n * An untyped property that tracks any view-specific state information\n * that is relevant to a data manager but that existing properties do not cover.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public additionalData: any;\n\n constructor(data: SkyDataViewStateOptions) {\n this.viewId = data.viewId;\n this.columnIds = data.columnIds || [];\n this.columnWidths = data.columnWidths || { xs: {}, sm: {} };\n this.displayedColumnIds = data.displayedColumnIds || [];\n this.additionalData = data.additionalData;\n }\n\n /**\n * Returns the `SkyDataViewStateOptions` for the current view.\n * @returns The `SkyDataViewStateOptions`.\n */\n public getViewStateOptions(): SkyDataViewStateOptions {\n return {\n viewId: this.viewId,\n columnIds: this.columnIds,\n columnWidths: this.columnWidths,\n displayedColumnIds: this.displayedColumnIds,\n additionalData: this.additionalData,\n };\n }\n}\n","import { SkyDataManagerFilterData } from './data-manager-filter-data';\nimport { SkyDataManagerSortOption } from './data-manager-sort-option';\nimport { SkyDataManagerStateOptions } from './data-manager-state-options';\nimport { SkyDataViewState } from './data-view-state';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\n\n/**\n * Provides options that control which data to display.\n */\nexport class SkyDataManagerState {\n /**\n * The selected SkyDataManagerSortOption to apply.\n */\n public activeSortOption: SkyDataManagerSortOption | undefined;\n /**\n * An untyped property that tracks any state information that's relevant to a data\n * manager but that the existing properties do not cover.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public additionalData: any;\n /**\n * The state of the filters.\n */\n public filterData: SkyDataManagerFilterData | undefined;\n /**\n * Whether to display only the selected rows or objects. The multiselect toolbar\n * uses this property.\n */\n public onlyShowSelected: boolean | undefined;\n /**\n * The search text to apply.\n */\n public searchText: string | undefined;\n /**\n * The currently selected rows or objects.\n */\n public selectedIds: string[] | undefined;\n /**\n * The states of the individual views.\n */\n public views: SkyDataViewState[] = [];\n\n constructor(data: SkyDataManagerStateOptions) {\n const views =\n data.views && data.views.map((view) => new SkyDataViewState(view));\n\n this.activeSortOption = data.activeSortOption;\n this.additionalData = data.additionalData;\n this.filterData = data.filterData;\n this.onlyShowSelected = data.onlyShowSelected;\n this.selectedIds = data.selectedIds;\n this.searchText = data.searchText;\n this.views = views || [];\n }\n\n /**\n * Returns the `SkyDataManagerStateOptions` for the data manager.\n * @returns The `SkyDataManagerStateOptions` for the data manager.\n */\n public getStateOptions(): SkyDataManagerStateOptions {\n const viewStates: SkyDataViewStateOptions[] = this.views.map((view) => {\n return view.getViewStateOptions();\n });\n\n return {\n activeSortOption: this.activeSortOption,\n additionalData: this.additionalData,\n filterData: this.filterData,\n onlyShowSelected: this.onlyShowSelected,\n searchText: this.searchText,\n selectedIds: this.selectedIds,\n views: viewStates,\n };\n }\n\n /**\n * Returns the `SkyDataViewState` for the specified view.\n * @param viewId The ID for the view.\n * @returns The `SkyDataViewState` for the specified view.\n */\n public getViewStateById(viewId: string): SkyDataViewState | undefined {\n return this.views.find((view) => view.viewId === viewId);\n }\n\n /**\n * Adds a `SkyDataViewState` to a view or updates an existing view.\n * @param viewId The ID for the view.\n * @param view The `SkyDataViewState` option to add or update.\n * @returns The state of the data manager for the specified view.\n */\n public addOrUpdateView(\n viewId: string,\n view: SkyDataViewState,\n ): SkyDataManagerState {\n const existingViewIndex = this.views.findIndex((v) => v.viewId === viewId);\n\n if (existingViewIndex !== -1) {\n this.views[existingViewIndex] = view;\n } else {\n this.views.push(view);\n }\n\n return new SkyDataManagerState({\n activeSortOption: this.activeSortOption,\n additionalData: this.additionalData,\n filterData: this.filterData,\n searchText: this.searchText,\n selectedIds: this.selectedIds,\n views: this.views,\n });\n }\n}\n","import { SkyDataManagerState } from './data-manager-state';\n\n/**\n * @internal\n */\nexport class SkyDataManagerStateChange {\n public dataState: SkyDataManagerState;\n public source: string;\n\n constructor(dataState: SkyDataManagerState, source: string) {\n this.dataState = new SkyDataManagerState(dataState.getStateOptions());\n this.source = source;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { SkyDataManagerConfig } from './models/data-manager-config';\nimport { SkyDataManagerInitArgs } from './models/data-manager-init-args';\nimport { SkyDataManagerState } from './models/data-manager-state';\nimport { SkyDataManagerStateChange } from './models/data-manager-state-change';\nimport { SkyDataManagerStateOptions } from './models/data-manager-state-options';\nimport { SkyDataManagerStateUpdateFilterArgs } from './models/data-manager-state-update-filter-args';\nimport { SkyDataManagerSummary } from './models/data-manager-summary';\nimport { SkyDataManagerSummaryChange } from './models/data-manager-summary-change';\nimport { SkyDataViewConfig } from './models/data-view-config';\nimport { SkyDataViewState } from './models/data-view-state';\n\n/**\n * The data manager service provides ways for data views, toolbar items, and more to stay up to date\n * with the active view ID, data manager config, registered views and their configs, and data state.\n * There are methods to get current values, update values, and get subscriptions to the changing values.\n *\n * Provide this service at the component level for each instance of a data manager. Do not\n * provide it at the module level or in `app-extras`. This allows multiple data\n * managers to be used and self-contained.\n */\n@Injectable()\nexport class SkyDataManagerService implements OnDestroy {\n /**\n * @internal\n */\n public viewkeeperClasses = new BehaviorSubject<Record<string, string[]>>({});\n\n readonly #activeViewId = new ReplaySubject<string>(1);\n readonly #dataManagerConfig = new BehaviorSubject<SkyDataManagerConfig>({});\n readonly #views = new BehaviorSubject<SkyDataViewConfig[]>([]);\n readonly #dataStateChange = new ReplaySubject<SkyDataManagerStateChange>(1);\n readonly #dataSummary = new Subject<SkyDataManagerSummaryChange>();\n\n #isInitialized: boolean | undefined;\n #ngUnsubscribe = new Subject<void>();\n #initSource = 'dataManagerServiceInit';\n #uiConfigService: SkyUIConfigService;\n\n constructor(uiConfigService: SkyUIConfigService) {\n this.#uiConfigService = uiConfigService;\n }\n\n public ngOnDestroy(): void {\n this.#activeViewId.complete();\n this.#dataManagerConfig.complete();\n this.#views.complete();\n this.#dataStateChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Initializes the data manager with the given settings and sets `isInitialized` to `true`.\n * This must be called for the data manager to render.\n * @param args The initial active view ID, data manager config, and state to use for the data manager.\n * If a settings key is provided, it checks for a saved data state in the SKY UI config service before using the default data state\n * and saves any state changes to the service.\n */\n public initDataManager(args: SkyDataManagerInitArgs): void {\n if (this.#isInitialized) {\n console.warn('This data manager instance has already been initialized.');\n return;\n }\n\n this.#isInitialized = true;\n\n const defaultDataState = args.defaultDataState;\n const settingsKey = args.settingsKey;\n\n this.updateActiveViewId(args.activeViewId);\n this.updateDataManagerConfig(args.dataManagerConfig);\n\n if (settingsKey) {\n this.#uiConfigService\n .getConfig(settingsKey, defaultDataState.getStateOptions())\n .pipe(take(1))\n .subscribe((config: SkyDataManagerStateOptions) => {\n this.updateDataState(\n new SkyDataManagerState(config),\n this.#initSource,\n );\n });\n } else {\n this.updateDataState(defaultDataState, this.#initSource);\n }\n\n if (settingsKey) {\n this.getDataStateUpdates(this.#initSource)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state: SkyDataManagerState) => {\n this.#uiConfigService\n .setConfig(settingsKey, state.getStateOptions())\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n (err) => {\n console.warn('Could not save data manager settings.');\n console.warn(err);\n },\n );\n });\n }\n }\n\n /**\n * Initializes a view within the data manager. This must be called for each view for the views to appear within the data manager.\n * @param viewConfig The SkyDataViewConfig settings for the view being registered.\n */\n public initDataView(viewConfig: SkyDataViewConfig): void {\n const currentViews = this.#views.value;\n\n if (this.getViewById(viewConfig.id)) {\n console.warn(\n `A data manager view with the id ${viewConfig.id} has already been initialized.`,\n );\n return;\n }\n\n currentViews.push(viewConfig);\n this.#views.next(currentViews);\n\n // When the initial activeViewId is set there are no views registered. We have to re-emit\n // the activeId so the newly registered view is notified that it is active.\n this.#activeViewId.pipe(take(1)).subscribe((id) => {\n this.#activeViewId.next(id);\n });\n\n this.#dataStateChange\n .pipe(take(1))\n .subscribe((change) => {\n const dataState = change.dataState;\n const currentViewState = dataState.getViewStateById(viewConfig.id);\n\n if (!currentViewState) {\n const newViewState = new SkyDataViewState({ viewId: viewConfig.id });\n\n // Ensure that the view state's available columns match with the view config. Also,\n // add columns to the `displayedColumnIds` as long as they are not `initialHide`\n if (viewConfig.columnOptions) {\n const columnIds = viewConfig.columnOptions.map((columnOptions) => {\n return columnOptions.id;\n });\n const displayedColumnIds = viewConfig.columnOptions\n .filter((columnOption) => {\n return !columnOption.initialHide;\n })\n .map((columnOption) => {\n return columnOption.id;\n });\n\n newViewState.columnIds = columnIds;\n newViewState.displayedColumnIds = displayedColumnIds;\n }\n const newDataState = dataState.addOrUpdateView(\n viewConfig.id,\n newViewState,\n );\n\n this.updateDataState(newDataState, this.#initSource);\n } else {\n const currentAvailableColumnIds =\n viewConfig.columnOptions?.map((columnOptions) => {\n return columnOptions.id;\n }) || [];\n\n // Ensure that the view state's available columns match with the view config. Also,\n // add new columns to the `displayedColumnIds` as long as they are not `initialHide`.\n // We only add columns to `displayedColumnsIds` if we had previously tracked\n // `columnIds` to avoid breaking changes.\n if (currentViewState.columnIds.length > 0) {\n let newColumnIds = currentAvailableColumnIds?.filter(\n (id) => currentViewState.columnIds.indexOf(id) < 0,\n );\n newColumnIds = newColumnIds?.filter((columnId) => {\n return viewConfig.columnOptions?.find(\n (columnOption) =>\n columnOption.id === columnId && !columnOption.initialHide,\n );\n });\n\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n currentViewState.displayedColumnIds =\n currentViewState.displayedColumnIds.concat(newColumnIds);\n }\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n currentViewState.columnIds = currentAvailableColumnIds;\n\n const newDataState = dataState.addOrUpdateView(\n viewConfig.id,\n currentViewState,\n );\n\n this.updateDataState(newDataState, this.#initSource);\n }\n })\n .unsubscribe();\n }\n\n /**\n * Returns an observable of data state changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data state updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the state.\n */\n public getDataStateUpdates(\n sourceId: string,\n updateFilter?: SkyDataManagerStateUpdateFilterArgs,\n ): Observable<SkyDataManagerState> {\n // filter out events from the provided source and emit just the dataState\n if (updateFilter) {\n return this.#dataStateChange.pipe(\n filter((stateChange) => sourceId !== stateChange.source),\n map((stateChange) => stateChange.dataState),\n updateFilter.comparator\n ? distinctUntilChanged(updateFilter.comparator)\n : distinctUntilChanged(\n this.#getDefaultStateComparator(\n updateFilter.properties as (keyof SkyDataManagerStateOptions)[],\n ),\n ),\n );\n } else {\n return this.#dataStateChange.pipe(\n filter((stateChange) => sourceId !== stateChange.source),\n map((stateChange) => stateChange.dataState),\n );\n }\n }\n\n /**\n * Updates the data state and emits a new value to entities subscribed to data state changes.\n * @param state The new `SkyDataManagerState` value.\n * @param sourceId The ID of the entity updating the state. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to state changes from `getDataStateUpdates`.\n */\n public updateDataState(state: SkyDataManagerState, sourceId: string): void {\n const newState = new SkyDataManagerState(state.getStateOptions());\n const newStateChange = new SkyDataManagerStateChange(newState, sourceId);\n\n this.#dataStateChange.next(newStateChange);\n }\n\n /**\n * Returns an observable of data summary changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data summary updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the summary.\n */\n public getDataSummaryUpdates(\n sourceId: string,\n ): Observable<SkyDataManagerSummary> {\n return this.#dataSummary.pipe(\n filter((summaryChange) => sourceId !== summaryChange.source),\n map((summaryChange) => summaryChange.dataSummary),\n );\n }\n\n /**\n * Updates the data summary and emits a new value to entities subscribed to data summary changes.\n * @param summary The new `SkyDataManagerSummary` value.\n * @param sourceId The ID of the entity updating the summary. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to summary changes from `getDataSummaryUpdates`.\n */\n public updateDataSummary(\n summary: SkyDataManagerSummary,\n sourceId: string,\n ): void {\n this.#dataSummary.next({ dataSummary: summary, source: sourceId });\n }\n\n /**\n * Returns the current `SkyDataManagerConfig`.\n */\n public getCurrentDataManagerConfig(): SkyDataManagerConfig {\n return this.#dataManagerConfig.value;\n }\n\n /**\n * Returns an observable of data manager config changes that views and other data manager entities can subscribe to.\n */\n public getDataManagerConfigUpdates(): Observable<SkyDataManagerConfig> {\n return this.#dataManagerConfig;\n }\n\n /**\n * Updates the data manager config and emits a new value to entities subscribed to data config changes.\n * @param value The new `SkyDataManagerConfig` value.\n */\n public updateDataManagerConfig(value: SkyDataManagerConfig): void {\n this.#dataManagerConfig.next(value);\n }\n\n /**\n * Returns an observable of data view config changes that views and other data manager entities can subscribe to.\n */\n public getDataViewsUpdates(): Observable<SkyDataViewConfig[]> {\n return this.#views;\n }\n\n /**\n * Returns an observable of the active view ID that views and other data manager entities can subscribe to.\n */\n public getActiveViewIdUpdates(): Observable<string> {\n return this.#activeViewId;\n }\n\n /**\n * Updates the active view ID. The data manager changes the displayed view.\n * @param id The new active view ID.\n */\n public updateActiveViewId(id: string): void {\n this.#activeViewId.next(id);\n }\n\n /**\n * Returns the `SkyDataViewConfig` for the given view ID.\n * @param viewId The ID of the view config to get.\n */\n public getViewById(viewId: string): SkyDataViewConfig | undefined {\n const currentViews: SkyDataViewConfig[] = this.#views.value;\n const viewConfig: SkyDataViewConfig | undefined = currentViews.find(\n (view) => view.id === viewId,\n );\n\n return viewConfig;\n }\n\n /**\n * Updates the given view config. The registered view with the same ID is updated to the\n * provided config, so include all properties regardless of whether they changed. If the\n * view was not initialized already, no update happens.\n * @param view The new `SkyDataViewConfig` containing all properties.\n */\n public updateViewConfig(view: SkyDataViewConfig): void {\n const currentViews: SkyDataViewConfig[] = this.#views.value;\n const existingViewIndex = currentViews.findIndex(\n (currentView) => currentView.id === view.id,\n );\n\n if (existingViewIndex === -1) {\n console.error('A view with the id {id} does not exist.', view.id);\n } else {\n currentViews[existingViewIndex] = view;\n this.#views.next(currentViews);\n }\n }\n\n /**\n * @internal\n */\n public setViewkeeperClasses(viewId: string, classes: string[]): void {\n const viewkeeperClasses = this.viewkeeperClasses.value;\n viewkeeperClasses[viewId] = classes;\n\n this.viewkeeperClasses.next(viewkeeperClasses);\n }\n\n #filterDataStateProperties(\n state: SkyDataManagerState,\n properties: (keyof SkyDataManagerStateOptions)[] | undefined,\n ): Record<string, unknown> {\n const stateProperties = state.getStateOptions();\n const filteredStateProperties: Record<string, unknown> = {};\n\n if (properties) {\n for (const property of properties) {\n if (property in stateProperties) {\n filteredStateProperties[property] = stateProperties[property];\n }\n }\n }\n\n return filteredStateProperties;\n }\n\n #getDefaultStateComparator(\n properties: (keyof SkyDataManagerStateOptions)[] | undefined,\n ): (state1: SkyDataManagerState, state2: SkyDataManagerState) => boolean {\n return (\n state1: SkyDataManagerState,\n state2: SkyDataManagerState,\n ): boolean => {\n const filteredState1 = this.#filterDataStateProperties(\n state1,\n properties,\n );\n const filteredState2 = this.#filterDataStateProperties(\n state2,\n properties,\n );\n return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n inject,\n isStandalone,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyLogService } from '@skyux/core';\nimport {\n SkyCheckboxChange,\n SkyCheckboxModule,\n SkyRadioModule,\n} from '@skyux/forms';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkyFilterModule, SkySortModule } from '@skyux/lists';\nimport { SkySearchModule } from '@skyux/lookup';\nimport {\n SkyModalCloseArgs,\n SkyModalConfigurationInterface,\n SkyModalLegacyService,\n SkyModalService,\n} from '@skyux/modals';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';\nimport { SkyDataManagerColumnPickerContext } from '../data-manager-column-picker/data-manager-column-picker-context';\nimport { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from '../data-manager-column-picker/data-manager-column-picker-providers';\nimport { SkyDataManagerColumnPickerService } from '../data-manager-column-picker/data-manager-column-picker.service';\nimport { SkyDataManagerFilterModalContext } from '../data-manager-filter-context';\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerConfig } from '../models/data-manager-config';\nimport { SkyDataManagerSortOption } from '../models/data-manager-sort-option';\nimport { SkyDataManagerState } from '../models/data-manager-state';\nimport { SkyDataViewConfig } from '../models/data-view-config';\n\n/**\n * Renders a `sky-toolbar` with the contents specified by the active view's `SkyDataViewConfig`\n * and the `SkyDataManagerToolbarLeftItemComponent`, `SkyDataManagerToolbarRightItemComponent`,\n * and `SkyDataManagerToolbarSectionComponent` wrappers.\n */\n@Component({\n selector: 'sky-data-manager-toolbar',\n templateUrl: './data-manager-toolbar.component.html',\n styleUrls: ['./data-manager-toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n SkyCheckboxModule,\n SkyDataManagerResourcesModule,\n SkyIconModule,\n SkyFilterModule,\n SkyRadioModule,\n SkySearchModule,\n SkySortModule,\n SkyToolbarModule,\n ],\n})\nexport class SkyDataManagerToolbarComponent implements OnDestroy, OnInit {\n public get activeView(): SkyDataViewConfig | undefined {\n return this.#_activeView;\n }\n\n public set activeView(value: SkyDataViewConfig | undefined) {\n this.#_activeView = value;\n this.#changeDetector.markForCheck();\n }\n\n public get dataManagerConfig(): SkyDataManagerConfig | undefined {\n return this.#_dataManagerConfig;\n }\n\n public set dataManagerConfig(value: SkyDataManagerConfig | undefined) {\n this.#_dataManagerConfig = value;\n this.#changeDetector.markForCheck();\n }\n\n public get dataState(): SkyDataManagerState | undefined {\n return this.#_dataState;\n }\n\n public set dataState(value: SkyDataManagerState | undefined) {\n this.#_dataState = value;\n if (value) {\n this.#dataManagerService.updateDataState(value, this.#_source);\n }\n }\n\n public get views(): SkyDataViewConfig[] {\n return this.#_views;\n }\n\n public set views(value: SkyDataViewConfig[]) {\n this.#_views = value;\n this.#changeDetector.markForCheck();\n }\n\n public onlyShowSelected: boolean | undefined;\n\n readonly #logger = inject(SkyLogService, { optional: true });\n\n #ngUnsubscribe = new Subject<void>();\n\n // the source to provide for data state changes\n #_source = 'toolbar';\n #_activeView: SkyDataViewConfig | undefined;\n #_dataManagerConfig: SkyDataManagerConfig | undefined;\n #_dataState: SkyDataManagerState | undefined;\n #_views: SkyDataViewConfig[] = [];\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #columnPickerService = inject(SkyDataManagerColumnPickerService);\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #modalService = inject(SkyModalService);\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n /* istanbul ignore else */\n if (activeViewId) {\n this.activeView = this.#dataManagerService.getViewById(activeViewId);\n this.#changeDetector.markForCheck();\n }\n });\n\n this.#dataManagerService\n .getDataViewsUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((views) => {\n this.views = views;\n if (this.activeView) {\n this.activeView = this.#dataManagerService.getViewById(\n this.activeView.id,\n );\n }\n this.#changeDetector.markForCheck();\n });\n\n this.#dataManagerService\n .getDataStateUpdates(this.#_source)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((dataState) => {\n this.#_dataState = dataState;\n this.onlyShowSelected = dataState.onlyShowSelected;\n this.#changeDetector.markForCheck();\n });\n\n this.#dataManagerService\n .getDataManagerConfigUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((config) => {\n this.dataManagerConfig = config;\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public sortSelected(sortOption: SkyDataManagerSortOption): void {\n if (this.dataState) {\n this.dataState.activeSortOption = sortOption;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n\n public onViewChange(viewId: string): void {\n this.#dataManagerService.updateActiveViewId(viewId);\n }\n\n public searchApplied(text: string): void {\n if (this.dataState) {\n this.dataState.searchText = text;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n\n public filterButtonClicked(): void {\n const context = new SkyDataManagerFilterModalContext();\n const filterModal =\n this.dataManagerConfig && this.dataManagerConfig.filterModalComponent;\n\n context.filterData = this.dataState?.filterData;\n\n const options: SkyModalConfigurationInterface = {\n providers: [\n { provide: SkyDataManagerFilterModalContext, useValue: context },\n ],\n size: 'large',\n };\n\n if (filterModal) {\n if (\n !(this.#modalService instanceof SkyModalLegacyService) &&\n !isStandalone(filterModal)\n ) {\n this.#logger?.deprecated(\n 'SkyDataManagerConfig.filterModalComponent not standalone',\n {\n deprecationMajorVersion: 9,\n replacementRecommendation: `The SkyDataManagerConfig.filterModalComponent must be a standalone component in order to receive the right dependency injector context.`,\n },\n );\n }\n const modalInstance = this.#modalService.open(filterModal, options);\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (this.dataState && result.reason === 'save') {\n this.dataState.filterData = result.data;\n this.#dataManagerService.updateDataState(\n this.dataState,\n this.#_source,\n );\n }\n });\n }\n }\n\n public openColumnPicker(): void {\n if (this.dataState && this.activeView && this.activeView.columnOptions) {\n const viewState = this.dataState.getViewStateById(this.activeView.id);\n if (viewState) {\n const context = new SkyDataManagerColumnPickerContext(\n this.activeView.columnOptions,\n viewState.displayedColumnIds,\n );\n\n if (this.activeView.columnPickerSortStrategy) {\n context.columnPickerSortStrategy =\n this.activeView.columnPickerSortStrategy;\n }\n\n const options: SkyModalConfigurationInterface = {\n providers: [\n SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS,\n {\n provide: SkyDataManagerColumnPickerContext,\n useValue: context,\n },\n ],\n };\n\n const modalInstance = this.#modalService.open(\n this.#columnPickerService.getComponentType(),\n options,\n );\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'save') {\n const displayedColumnIds = result.data.map(\n (col: SkyDataManagerColumnPickerOption) => col.id,\n );\n\n viewState.displayedColumnIds = displayedColumnIds;\n if (this.dataState && this.activeView) {\n this.dataState = this.dataState.addOrUpdateView(\n this.activeView.id,\n viewState,\n );\n }\n }\n });\n }\n }\n }\n\n public selectAll(): void {\n /* istanbul ignore else */\n if (this.activeView?.onSelectAllClick) {\n this.activeView.onSelectAllClick();\n }\n }\n\n public clearAll(): void {\n /* istanbul ignore else */\n if (this.activeView?.onClearAllClick) {\n this.activeView.onClearAllClick();\n }\n }\n\n public onOnlyShowSelected(event: SkyCheckboxChange): void {\n if (this.dataState) {\n this.dataState.onlyShowSelected = !!event.checked;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n}\n","<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar [listDescriptor]=\"dataManagerConfig?.listDescriptor\">\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\" />\n\n @if (activeView?.filterButtonEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-filter\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n />\n </sky-toolbar-item>\n }\n\n @if (activeView?.sortEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-sort\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\n <sky-sort-item\n [active]=\"dataState?.activeSortOption?.id === item.id\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n }\n </sky-sort>\n </sky-toolbar-item>\n }\n\n @if (activeView?.columnPickerEnabled) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_columns_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon iconName=\"layout-column-three\" />\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n }\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\" />\n\n @if (activeView?.searchEnabled) {\n <sky-toolbar-item class=\"sky-data-manager-search\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n />\n </sky-toolbar-item>\n }\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\" />\n @if (activeView && views && views.length > 1) {\n <sky-radio-group\n class=\"sky-switch-icon-group\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n >\n @for (view of views; track view.id) {\n @if (view.iconName) {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [iconName]=\"view.iconName\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n } @else {\n <sky-radio\n [attr.aria-label]=\"view.name\"\n [icon]=\"view.icon\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n />\n }\n }\n </sky-radio-group>\n }\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\" />\n </sky-toolbar>\n\n @if (activeView?.multiselectToolbarEnabled) {\n <sky-toolbar class=\"sky-data-manager-multiselect-toolbar\">\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_select_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_clear_all_button_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions class=\"sky-data-manager-only-show-selected\">\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n [label]=\"\n dataManagerConfig?.listDescriptor\n ? ('skyux_data_manager_show_selected_option_aria_label'\n | skyLibResources: dataManagerConfig?.listDescriptor)\n : undefined\n \"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title'\n | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyLiveAnnouncerService, SkyViewkeeperModule } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SkyBackToTopMessage,\n SkyBackToTopMessageType,\n SkyBackToTopModule,\n} from '@skyux/layout';\n\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerService } from './data-manager.service';\nimport { SkyDataManagerState } from './models/data-manager-state';\nimport { SkyDataManagerSummary } from './models/data-manager-summary';\n\nconst VIEWKEEPER_CLASSES_DEFAULT = ['.sky-data-manager-toolbar'];\n\n/**\n * The top-level data manager component. Provide `SkyDataManagerService` at this level.\n */\n@Component({\n selector: 'sky-data-manager',\n templateUrl: './data-manager.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkyBackToTopModule, SkyViewkeeperModule],\n})\nexport class SkyDataManagerComponent implements OnDestroy, OnInit {\n public get currentViewkeeperClasses(): string[] {\n return this.#_currentViewkeeperClasses;\n }\n\n public set currentViewkeeperClasses(value: string[] | undefined) {\n this.#_currentViewkeeperClasses = [\n ...VIEWKEEPER_CLASSES_DEFAULT,\n ...(value || []),\n ];\n this.#changeDetection.markForCheck();\n }\n\n public get isInitialized(): boolean {\n return this.#_isInitialized;\n }\n\n public set isInitialized(value: boolean) {\n this.#_isInitialized = value;\n this.#changeDetection.markForCheck();\n }\n\n public backToTopController = new Subject<SkyBackToTopMessage>();\n\n public backToTopOptions = {\n buttonHidden: true,\n };\n\n #activeViewId: string | undefined;\n #allViewkeeperClasses: Record<string, string[]> = {};\n #ngUnsubscribe = new Subject<void>();\n #sourceId = 'dataManagerComponent';\n #dataState: SkyDataManagerState | undefined;\n\n #_isInitialized = false;\n #_currentViewkeeperClasses = VIEWKEEPER_CLASSES_DEFAULT;\n\n readonly #changeDetection = inject(ChangeDetectorRef);\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #liveAnnouncer = inject(SkyLiveAnnouncerService);\n readonly #resourceSvc = inject(SkyLibResourcesService);\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getDataStateUpdates(this.#sourceId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.isInitialized = true;\n this.#dataState = state;\n });\n\n this.#dataManagerService\n .getDataSummaryUpdates(this.#sourceId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((summary: SkyDataManagerSummary) => {\n const itemsSelected = this.#dataState?.selectedIds?.length || 0;\n const resourceString = `skyux_data_manager_status_update_${\n this.#dataState?.onlyShowSelected\n ? 'only_selected'\n : itemsSelected\n ? 'with_selections'\n : 'without_selections'\n }`;\n\n this.#announceState(\n resourceString,\n summary.itemsMatching,\n summary.totalItems,\n itemsSelected,\n );\n });\n\n this.#dataManagerService.viewkeeperClasses\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((classes) => {\n this.#allViewkeeperClasses = classes;\n this.currentViewkeeperClasses = this.#activeViewId\n ? classes[this.#activeViewId]\n : undefined;\n });\n\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.#activeViewId = activeViewId;\n this.backToTopController.next({\n type: SkyBackToTopMessageType.BackToTop,\n });\n this.currentViewkeeperClasses =\n this.#allViewkeeperClasses[this.#activeViewId];\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #announceState(\n resourceString: string,\n itemsMatching: number,\n totalItems: number,\n itemsSelected: number,\n ): void {\n this.#resourceSvc\n .getString(resourceString, itemsMatching, totalItems, itemsSelected)\n .pipe(take(1))\n .subscribe((internationalizedString) => {\n this.#liveAnnouncer.announce(internationalizedString);\n });\n }\n}\n","@if (isInitialized) {\n <div\n #dataManager\n class=\"sky-data-manager\"\n skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n >\n <ng-content />\n </div>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\nimport { SkyTextHighlightDirective } from '@skyux/indicators';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerService } from './data-manager.service';\nimport { SkyDataManagerState } from './models/data-manager-state';\n\n/**\n * A data view is rendered within a data manager component.\n * It can subscribe to data state changes from `SkyDataManagerService` and apply the filters,\n * search text, and more to the data it displays.\n */\n@Component({\n standalone: true,\n selector: 'sky-data-view',\n templateUrl: './data-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [SkyResponsiveHostDirective, SkyTextHighlightDirective],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class SkyDataViewComponent implements OnDestroy, OnInit {\n /**\n * The configuration for the view. See the `SkyDataViewConfig` interface.\n * @required\n */\n @Input()\n public viewId: string | undefined;\n\n @HostBinding('attr.data-view-id')\n public get dataViewId(): string | undefined {\n return this.viewId;\n }\n\n public get isActive(): boolean {\n return this.#_isActive;\n }\n\n public set isActive(value: boolean) {\n this.#_isActive = value;\n this.#changeDetector.markForCheck();\n }\n\n public get textHighlight(): string | undefined {\n return this.#_textHighlight;\n }\n\n public set textHighlight(value: string | undefined) {\n this.#_textHighlight = value;\n this.#textHighlight.skyHighlight = value;\n this.#changeDetector.markForCheck();\n }\n\n #_isActive = false;\n #_textHighlight: string | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n #currentState: SkyDataManagerState | undefined;\n\n readonly #dataManagerService = inject(SkyDataManagerService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n #textHighlight: SkyTextHighlightDirective = inject(\n SkyTextHighlightDirective,\n { self: true },\n );\n\n public ngOnInit(): void {\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.isActive = this.viewId === activeViewId;\n });\n\n this.#dataManagerService\n .getDataViewsUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateSearchHighlight(this.#currentState);\n });\n\n /* istanbul ignore else */\n if (this.viewId) {\n this.#dataManagerService\n .getDataStateUpdates(this.viewId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state: SkyDataManagerState) => {\n this.#currentState = state;\n this.#updateSearchHighlight(state);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #updateSearchHighlight(state?: SkyDataManagerState): void {\n if (this.viewId) {\n const view = this.#dataManagerService.getViewById(this.viewId);\n\n if (view?.searchHighlightEnabled) {\n this.textHighlight = state?.searchText;\n } else if (this.textHighlight) {\n this.textHighlight = undefined;\n }\n }\n }\n}\n","@if (isActive) {\n <ng-content />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyRepeaterModule } from '@skyux/lists';\nimport { SkyModalInstance, SkyModalModule } from '@skyux/modals';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';\nimport { SkyDataManagerToolbarComponent } from '../data-manager-toolbar/data-manager-toolbar.component';\nimport { SkyDataManagerComponent } from '../data-manager.component';\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataViewComponent } from '../data-view.component';\nimport { SkyDataManagerColumnPickerOption } from '../models/data-manager-column-picker-option';\nimport { SkyDataManagerColumnPickerSortStrategy } from '../models/data-manager-column-picker-sort-strategy';\nimport { SkyDataManagerState } from '../models/data-manager-state';\nimport { SkyDataViewConfig } from '../models/data-view-config';\n\nimport { SkyDataManagerColumnPickerContext } from './data-manager-column-picker-context';\n\n/**\n * @internal\n */\ninterface Column extends SkyDataManagerColumnPickerOption {\n isSelected: boolean;\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-data-manager-column-picker',\n templateUrl: './data-manager-column-picker.component.html',\n styleUrls: ['./data-manager-column-picker.component.scss'],\n providers: [SkyDataManagerService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SkyDataManagerComponent,\n SkyDataManagerResourcesModule,\n SkyDataManagerToolbarComponent,\n SkyDataViewComponent,\n SkyModalModule,\n SkyRepeaterModule,\n SkyStatusIndicatorModule,\n ],\n})\nexport class SkyDataManagerColumnPickerComponent implements OnDestroy, OnInit {\n public get dataState(): SkyDataManagerState {\n return this.#_dataState;\n }\n\n public set dataState(value: SkyDataManagerState) {\n this.#_dataState = value;\n this.updateData();\n }\n\n public columnData: Column[] = [];\n public displayedColumnData: Column[] = [];\n public viewConfig: SkyDataViewConfig = {\n id: 'columnPicker',\n name: 'Column Picker',\n searchEnabled: true,\n searchExpandMode: 'fit',\n multiselectToolbarEnabled: true,\n onSelectAllClick: this.selectAll.bind(this),\n onClearAllClick: this.clearAll.bind(this),\n };\n\n public isAnyDisplayedColumnSelected = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_dataState = new SkyDataManagerState({});\n\n public readonly context = inject(SkyDataManagerColumnPickerContext);\n protected readonly dataManagerService = inject(SkyDataManagerService);\n protected readonly instance = inject(SkyModalInstance);\n\n public ngOnInit(): void {\n this.dataManagerService.initDataManager({\n activeViewId: this.viewConfig.id,\n dataManagerConfig: {},\n defaultDataState: this.dataState,\n });\n this.dataManagerService.initDataView(this.viewConfig);\n\n this.columnData = this.#formatColumnOptions();\n\n this.dataManagerService\n .getDataStateUpdates('columnPicker')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.dataState = state;\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public updateData(): void {\n this.displayedColumnData = this.searchColumns(\n this.columnData.filter((col) => !col.alwaysDisplayed),\n );\n\n if (this.dataState.onlyShowSelected) {\n this.displayedColumnData = this.displayedColumnData.filter(\n (col) => col.isSelected,\n );\n }\n\n this.isAnyDisplayedColumnSelected = this.displayedColumnData.some(\n (col) => col.isSelected,\n );\n }\n\n public searchColumns(columns: Column[]): Column[] {\n let searchedColumns = columns;\n const searchText =\n this.dataState && this.dataState.searchText?.toUpperCase();\n\n if (searchText) {\n searchedColumns = columns.filter((item) => {\n for (const property in item) {\n if (\n Object.prototype.hasOwnProperty.call(item, property) &&\n (property === 'label' || property === 'description')\n ) {\n const propertyText = item[property]?.toUpperCase();\n if (propertyText && propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n\n return false;\n });\n }\n return searchedColumns;\n }\n\n public selectAll(): void {\n this.displayedColumnData.forEach((column) => (column.isSelected = true));\n this.updateData();\n }\n\n public clearAll(): void {\n this.displayedColumnData.forEach((column) => (column.isSelected = false));\n this.updateData();\n }\n\n public onIsSelectedChange(): void {\n this.updateData();\n }\n\n public cancelChanges(): void {\n this.instance.cancel();\n }\n\n public isSelected(id: string): boolean {\n return (\n this.context.displayedColumnIds.findIndex((colId) => colId === id) !== -1\n );\n }\n\n public applyChanges(): void {\n this.instance.save(\n this.columnData.filter((col) => col.isSelected || col.alwaysDisplayed),\n );\n }\n\n #formatColumnOptions(): Column[] {\n const allColumnOptions = this.context.columnOptions;\n const visibleColumnIds = this.context.displayedColumnIds;\n let formattedColumnOptions: Column[] = [];\n const unselectedColumnOptions: Column[] = [];\n\n for (const columnOption of allColumnOptions) {\n // format the column with the properties the column picker needs\n const colIndex = visibleColumnIds.indexOf(columnOption.id);\n const formattedColumn: Column = {\n alwaysDisplayed: columnOption.alwaysDisplayed,\n id: columnOption.id,\n label: columnOption.label,\n description: columnOption.description,\n isSelected: colIndex !== -1,\n };\n\n // if column picker sorting is currently enabled sort columns by order displayed then alphabetical\n // else display column in order they were specified in the columnOptions\n if (\n this.context.columnPickerSortStrategy ===\n SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical\n ) {\n if (formattedColumn.isSelected) {\n formattedColumnOptions[colIndex] = formattedColumn;\n } else {\n unselectedColumnOptions.push(formattedColumn);\n }\n } else {\n formattedColumnOptions.push(formattedColumn);\n }\n }\n\n // if column picker sorting is enabled, sort the columns that are not currently displayed\n // and add them after the currently displayed options\n if (\n this.context.columnPickerSortStrategy ===\n SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical\n ) {\n unselectedColumnOptions.sort((col1, col2) =>\n col1.label.localeCompare(col2.label),\n );\n formattedColumnOptions = formattedColumnOptions.concat(\n unselectedColumnOptions,\n );\n }\n\n return formattedColumnOptions;\n }\n}\n","<sky-modal class=\"sky-data-manager-column-picker\">\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 />\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n @for (column of displayedColumnData; track column.id) {\n <sky-repeater-item\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\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 }\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n @if (!isAnyDisplayedColumnSelected) {\n <div class=\"sky-data-manager-column-picker-footer-stacked-indicator\">\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n }\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\"\n type=\"button\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\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 sky-data-manager-column-picker-cancel-btn\"\n type=\"button\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n","import { Injectable } from '@angular/core';\n\nimport { SkyDataManagerColumnPickerComponent } from './data-manager-column-picker.component';\n\n@Injectable()\nexport class SkyDataManagerColumnPickerImplService {\n public getComponentType(): typeof SkyDataManagerColumnPickerComponent {\n return SkyDataManagerColumnPickerComponent;\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { SkyDataManagerColumnPickerImplService } from './data-manager-column-picker-impl.service';\nimport { SkyDataManagerColumnPickerService } from './data-manager-column-picker.service';\n\nexport const SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS: Provider[] = [\n {\n provide: SkyDataManagerColumnPickerService,\n useClass: SkyDataManagerColumnPickerImplService,\n },\n];\n","import { Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered after the standard toolbar actions and before the search box. Each item should be\n * wrapped in its own `sky-data-manager-toolbar-left-item`. The items render in the order they are in in the template.\n */\n@Component({\n selector: 'sky-data-manager-toolbar-left-item',\n templateUrl: './data-manager-toolbar-left-item.component.html',\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarLeftItemComponent {}\n","<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n","import { Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered as the first items in the toolbar and should be standard actions. Each item should be\n * wrapped in its own `sky-data-manager-toolbar-primary-item`. The items render in the order they are in in the template.\n */\n@Component({\n selector: 'sky-data-manager-toolbar-primary-item',\n templateUrl: './data-manager-toolbar-primary-item.component.html',\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarPrimaryItemComponent {}\n","<sky-toolbar-item>\n <ng-content />\n</sky-toolbar-item>\n","import { Component } from '@angular/core';\n\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered in `sky-toolbar-view-actions` on the right side of the toolbar and before the view\n * switcher icons (if present). Each item should be wrapped in its own\n * `sky-data-manager-toolbar-right-item`. The items render in the order they are in in the template.\n */\n@Component({\n standalone: true,\n selector: 'sky-data-manager-toolbar-right-item',\n templateUrl: './data-manager-toolbar-right-item.component.html',\n})\nexport class SkyDataManagerToolbarRightItemComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * A wrapper for items to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered in an additional toolbar row beneath the primary toolbar and above the multiselect\n * toolbar (if present).\n */\n@Component({\n selector: 'sky-data-manager-toolbar-section',\n templateUrl: './data-manager-toolbar-section.component.html',\n imports: [SkyToolbarModule],\n})\nexport class SkyDataManagerToolbarSectionComponent {}\n","<sky-toolbar-section>\n <ng-content />\n</sky-toolbar-section>\n","import { NgModule } from '@angular/core';\n\nimport { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from './data-manager-column-picker/data-manager-column-picker-providers';\nimport { SkyDataManagerToolbarLeftItemComponent } from './data-manager-toolbar/data-manager-toolbar-left-item.component';\nimport { SkyDataManagerToolbarPrimaryItemComponent } from './data-manager-toolbar/data-manager-toolbar-primary-item.component';\nimport { SkyDataManagerToolbarRightItemComponent } from './data-manager-toolbar/data-manager-toolbar-right-item.component';\nimport { SkyDataManagerToolbarSectionComponent } from './data-manager-toolbar/data-manager-toolbar-section.component';\nimport { SkyDataManagerToolbarComponent } from './data-manager-toolbar/data-manager-toolbar.component';\nimport { SkyDataManagerComponent } from './data-manager.component';\nimport { SkyDataViewComponent } from './data-view.component';\n\n@NgModule({\n imports: [\n SkyDataManagerComponent,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent,\n ],\n exports: [\n SkyDataManagerComponent,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent,\n ],\n providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS],\n})\nexport class SkyDataManagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i4"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-data-manager.mjs","sources":["../tmp-esm2022/lib/modules/data-manager/data-manager-filter-context.js","../tmp-esm2022/lib/modules/shared/sky-data-manager-resources.module.js","../tmp-esm2022/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.js","../tmp-esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.js","../tmp-esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.js","../tmp-esm2022/lib/modules/data-manager/models/data-view-state.js","../tmp-esm2022/lib/modules/data-manager/models/data-manager-state.js","../tmp-esm2022/lib/modules/data-manager/models/data-manager-state-change.js","../tmp-esm2022/lib/modules/data-manager/data-manager.service.js","../tmp-esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.js","../tmp-esm2022/lib/modules/data-manager/data-manager.component.js","../tmp-esm2022/lib/modules/data-manager/data-view.component.js","../tmp-esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.js","../tmp-esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.js","../tmp-esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-providers.js","../tmp-esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.js","../tmp-esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.js","../tmp-esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.js","../tmp-esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.js","../tmp-esm2022/lib/modules/data-manager/data-manager.module.js","../tmp-esm2022/skyux-data-manager.js"],"sourcesContent":["// TODO: In a future breaking change convert this to an interface\n/**\n * Sets the state of the filters.\n */\nexport class SkyDataManagerFilterModalContext {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWZpbHRlci1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci1maWx0ZXItY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxpRUFBaUU7QUFDakU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0NBQWdDO0NBSzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJGaWx0ZXJEYXRhIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLWZpbHRlci1kYXRhJztcblxuLy8gVE9ETzogSW4gYSBmdXR1cmUgYnJlYWtpbmcgY2hhbmdlIGNvbnZlcnQgdGhpcyB0byBhbiBpbnRlcmZhY2Vcbi8qKlxuICogU2V0cyB0aGUgc3RhdGUgb2YgdGhlIGZpbHRlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEYXRhTWFuYWdlckZpbHRlck1vZGFsQ29udGV4dCB7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgZmlsdGVycy5cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJEYXRhOiBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfCB1bmRlZmluZWQ7XG59XG4iXX0=","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-data-manager' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule, SkyLibResourcesService, } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nconst RESOURCES = {\n 'EN-US': {\n skyux_data_manager_column_picker_title: {\n message: 'Choose columns to show in the list',\n },\n skyux_data_manager_apply_changes_button_title: { message: 'Apply changes' },\n skyux_data_manager_cancel_button_title: { message: 'Cancel' },\n skyux_data_manager_select_all_button_aria_label: {\n message: 'Select all {0}',\n },\n skyux_data_manager_select_all_button_title: { message: 'Select all' },\n skyux_data_manager_clear_all_button_aria_label: {\n message: 'Clear all selected {0}',\n },\n skyux_data_manager_clear_all_button_title: { message: 'Clear all' },\n skyux_data_manager_show_selected_option_aria_label: {\n message: 'Show only selected {0}',\n },\n skyux_data_manager_show_selected_option_title: {\n message: 'Show only selected items',\n },\n skyux_data_manager_columns_button_aria_label: {\n message: 'Choose columns for {0}',\n },\n skyux_data_manager_columns_button_title: { message: 'Columns' },\n skyux_data_manager_select_column_status_indicator_title: {\n message: 'Select at least one column.',\n },\n skyux_data_manager_status_update_with_selections: {\n message: '{0} of {1} items meet criteria and {2} selected.',\n },\n skyux_data_manager_status_update_without_selections: {\n message: '{0} of {1} items meet criteria.',\n },\n skyux_data_manager_status_update_only_selected: {\n message: '{0} of {1} items meet criteria and {2} selected. Only selected items are displayed.',\n },\n },\n 'FR-CA': {\n skyux_data_manager_column_picker_title: {\n message: 'Choisir les colonnes à indiquer dans la liste',\n },\n skyux_data_manager_apply_changes_button_title: {\n message: 'Appliquez les changements',\n },\n skyux_data_manager_cancel_button_title: { message: 'Annuler' },\n skyux_data_manager_select_all_button_aria_label: {\n message: 'Sélectionner tout {0}',\n },\n skyux_data_manager_select_all_button_title: {\n message: 'Sélectionner tout',\n },\n skyux_data_manager_clear_all_button_aria_label: {\n message: 'Supprimer tous les éléments sélectionnés {0}',\n },\n skyux_data_manager_clear_all_button_title: { message: 'Effacer tout' },\n skyux_data_manager_show_selected_option_aria_label: {\n message: 'Montrer seulement ce qui est sélectionné {0}',\n },\n skyux_data_manager_show_selected_option_title: {\n message: 'Montrer seulement les éléments sélectionnés',\n },\n skyux_data_manager_columns_button_aria_label: {\n message: 'Choisir les colonnes pour {0}',\n },\n skyux_data_manager_columns_button_title: { message: 'Colonnes' },\n skyux_data_manager_select_column_status_indicator_title: {\n message: 'Sélectionnez au moins une colonne.',\n },\n skyux_data_manager_status_update_with_selections: {\n message: '{0} de {1} éléments répondent aux critères et {2} sont sélectionnés.',\n },\n skyux_data_manager_status_update_without_selections: {\n message: '{0} de {1} éléments répondent aux critères.',\n },\n skyux_data_manager_status_update_only_selected: {\n message: '{0} de {1} éléments répondent aux critères et {2} sont sélectionnés. Seuls les éléments sélectionnés sont affichés.',\n },\n },\n};\nSkyLibResourcesService.addResources(RESOURCES);\n/**\n * Import into any component library module that needs to use resource strings.\n */\nexport class SkyDataManagerResourcesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWRhdGEtbWFuYWdlci1yZXNvdXJjZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3NreS1kYXRhLW1hbmFnZXItcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1Asc0NBQXNDLEVBQUU7WUFDdEMsT0FBTyxFQUFFLG9DQUFvQztTQUM5QztRQUNELDZDQUE2QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtRQUMzRSxzQ0FBc0MsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDN0QsK0NBQStDLEVBQUU7WUFDL0MsT0FBTyxFQUFFLGdCQUFnQjtTQUMxQjtRQUNELDBDQUEwQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUNyRSw4Q0FBOEMsRUFBRTtZQUM5QyxPQUFPLEVBQUUsd0JBQXdCO1NBQ2xDO1FBQ0QseUNBQXlDLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO1FBQ25FLGtEQUFrRCxFQUFFO1lBQ2xELE9BQU8sRUFBRSx3QkFBd0I7U0FDbEM7UUFDRCw2Q0FBNkMsRUFBRTtZQUM3QyxPQUFPLEVBQUUsMEJBQTBCO1NBQ3BDO1FBQ0QsNENBQTRDLEVBQUU7WUFDNUMsT0FBTyxFQUFFLHdCQUF3QjtTQUNsQztRQUNELHVDQUF1QyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUMvRCx1REFBdUQsRUFBRTtZQUN2RCxPQUFPLEVBQUUsNkJBQTZCO1NBQ3ZDO1FBQ0QsZ0RBQWdELEVBQUU7WUFDaEQsT0FBTyxFQUFFLGtEQUFrRDtTQUM1RDtRQUNELG1EQUFtRCxFQUFFO1lBQ25ELE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCw4Q0FBOEMsRUFBRTtZQUM5QyxPQUFPLEVBQ0wscUZBQXFGO1NBQ3hGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxzQ0FBc0MsRUFBRTtZQUN0QyxPQUFPLEVBQUUsK0NBQStDO1NBQ3pEO1FBQ0QsNkNBQTZDLEVBQUU7WUFDN0MsT0FBTyxFQUFFLDJCQUEyQjtTQUNyQztRQUNELHNDQUFzQyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUM5RCwrQ0FBK0MsRUFBRTtZQUMvQyxPQUFPLEVBQUUsdUJBQXVCO1NBQ2pDO1FBQ0QsMENBQTBDLEVBQUU7WUFDMUMsT0FBTyxFQUFFLG1CQUFtQjtTQUM3QjtRQUNELDhDQUE4QyxFQUFFO1lBQzlDLE9BQU8sRUFBRSw4Q0FBOEM7U0FDeEQ7UUFDRCx5Q0FBeUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUU7UUFDdEUsa0RBQWtELEVBQUU7WUFDbEQsT0FBTyxFQUFFLDhDQUE4QztTQUN4RDtRQUNELDZDQUE2QyxFQUFFO1lBQzdDLE9BQU8sRUFBRSw2Q0FBNkM7U0FDdkQ7UUFDRCw0Q0FBNEMsRUFBRTtZQUM1QyxPQUFPLEVBQUUsK0JBQStCO1NBQ3pDO1FBQ0QsdUNBQXVDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ2hFLHVEQUF1RCxFQUFFO1lBQ3ZELE9BQU8sRUFBRSxvQ0FBb0M7U0FDOUM7UUFDRCxnREFBZ0QsRUFBRTtZQUNoRCxPQUFPLEVBQ0wsc0VBQXNFO1NBQ3pFO1FBQ0QsbURBQW1ELEVBQUU7WUFDbkQsT0FBTyxFQUFFLDZDQUE2QztTQUN2RDtRQUNELDhDQUE4QyxFQUFFO1lBQzlDLE9BQU8sRUFDTCxxSEFBcUg7U0FDeEg7S0FDRjtDQUNGLENBQUM7QUFFRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sNkJBQTZCOzhHQUE3Qiw2QkFBNkI7K0dBQTdCLDZCQUE2QixZQUY5QixhQUFhOytHQUVaLDZCQUE2QixZQUY5QixhQUFhOzsyRkFFWiw2QkFBNkI7a0JBSHpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1kYXRhLW1hbmFnZXInIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IFJlY29yZDxzdHJpbmcsIFNreUxpYlJlc291cmNlcz4gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfY29sdW1uX3BpY2tlcl90aXRsZToge1xuICAgICAgbWVzc2FnZTogJ0Nob29zZSBjb2x1bW5zIHRvIHNob3cgaW4gdGhlIGxpc3QnLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX2FwcGx5X2NoYW5nZXNfYnV0dG9uX3RpdGxlOiB7IG1lc3NhZ2U6ICdBcHBseSBjaGFuZ2VzJyB9LFxuICAgIHNreXV4X2RhdGFfbWFuYWdlcl9jYW5jZWxfYnV0dG9uX3RpdGxlOiB7IG1lc3NhZ2U6ICdDYW5jZWwnIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX3NlbGVjdF9hbGxfYnV0dG9uX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdTZWxlY3QgYWxsIHswfScsXG4gICAgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfc2VsZWN0X2FsbF9idXR0b25fdGl0bGU6IHsgbWVzc2FnZTogJ1NlbGVjdCBhbGwnIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX2NsZWFyX2FsbF9idXR0b25fYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0NsZWFyIGFsbCBzZWxlY3RlZCB7MH0nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX2NsZWFyX2FsbF9idXR0b25fdGl0bGU6IHsgbWVzc2FnZTogJ0NsZWFyIGFsbCcgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfc2hvd19zZWxlY3RlZF9vcHRpb25fYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ1Nob3cgb25seSBzZWxlY3RlZCB7MH0nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX3RpdGxlOiB7XG4gICAgICBtZXNzYWdlOiAnU2hvdyBvbmx5IHNlbGVjdGVkIGl0ZW1zJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGFfbWFuYWdlcl9jb2x1bW5zX2J1dHRvbl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnQ2hvb3NlIGNvbHVtbnMgZm9yIHswfScsXG4gICAgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfY29sdW1uc19idXR0b25fdGl0bGU6IHsgbWVzc2FnZTogJ0NvbHVtbnMnIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX3NlbGVjdF9jb2x1bW5fc3RhdHVzX2luZGljYXRvcl90aXRsZToge1xuICAgICAgbWVzc2FnZTogJ1NlbGVjdCBhdCBsZWFzdCBvbmUgY29sdW1uLicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfc3RhdHVzX3VwZGF0ZV93aXRoX3NlbGVjdGlvbnM6IHtcbiAgICAgIG1lc3NhZ2U6ICd7MH0gb2YgezF9IGl0ZW1zIG1lZXQgY3JpdGVyaWEgYW5kIHsyfSBzZWxlY3RlZC4nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX3N0YXR1c191cGRhdGVfd2l0aG91dF9zZWxlY3Rpb25zOiB7XG4gICAgICBtZXNzYWdlOiAnezB9IG9mIHsxfSBpdGVtcyBtZWV0IGNyaXRlcmlhLicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfc3RhdHVzX3VwZGF0ZV9vbmx5X3NlbGVjdGVkOiB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnezB9IG9mIHsxfSBpdGVtcyBtZWV0IGNyaXRlcmlhIGFuZCB7Mn0gc2VsZWN0ZWQuIE9ubHkgc2VsZWN0ZWQgaXRlbXMgYXJlIGRpc3BsYXllZC4nLFxuICAgIH0sXG4gIH0sXG4gICdGUi1DQSc6IHtcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfY29sdW1uX3BpY2tlcl90aXRsZToge1xuICAgICAgbWVzc2FnZTogJ0Nob2lzaXIgbGVzIGNvbG9ubmVzIMOgIGluZGlxdWVyIGRhbnMgbGEgbGlzdGUnLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX2FwcGx5X2NoYW5nZXNfYnV0dG9uX3RpdGxlOiB7XG4gICAgICBtZXNzYWdlOiAnQXBwbGlxdWV6IGxlcyBjaGFuZ2VtZW50cycsXG4gICAgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfY2FuY2VsX2J1dHRvbl90aXRsZTogeyBtZXNzYWdlOiAnQW5udWxlcicgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfc2VsZWN0X2FsbF9idXR0b25fYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ1PDqWxlY3Rpb25uZXIgdG91dCB7MH0nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX3NlbGVjdF9hbGxfYnV0dG9uX3RpdGxlOiB7XG4gICAgICBtZXNzYWdlOiAnU8OpbGVjdGlvbm5lciB0b3V0JyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGFfbWFuYWdlcl9jbGVhcl9hbGxfYnV0dG9uX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdTdXBwcmltZXIgdG91cyBsZXMgw6lsw6ltZW50cyBzw6lsZWN0aW9ubsOpcyB7MH0nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX2NsZWFyX2FsbF9idXR0b25fdGl0bGU6IHsgbWVzc2FnZTogJ0VmZmFjZXIgdG91dCcgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfc2hvd19zZWxlY3RlZF9vcHRpb25fYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ01vbnRyZXIgc2V1bGVtZW50IGNlIHF1aSBlc3Qgc8OpbGVjdGlvbm7DqSB7MH0nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX3Nob3dfc2VsZWN0ZWRfb3B0aW9uX3RpdGxlOiB7XG4gICAgICBtZXNzYWdlOiAnTW9udHJlciBzZXVsZW1lbnQgbGVzIMOpbMOpbWVudHMgc8OpbGVjdGlvbm7DqXMnLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX2NvbHVtbnNfYnV0dG9uX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdDaG9pc2lyIGxlcyBjb2xvbm5lcyBwb3VyIHswfScsXG4gICAgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfY29sdW1uc19idXR0b25fdGl0bGU6IHsgbWVzc2FnZTogJ0NvbG9ubmVzJyB9LFxuICAgIHNreXV4X2RhdGFfbWFuYWdlcl9zZWxlY3RfY29sdW1uX3N0YXR1c19pbmRpY2F0b3JfdGl0bGU6IHtcbiAgICAgIG1lc3NhZ2U6ICdTw6lsZWN0aW9ubmV6IGF1IG1vaW5zIHVuZSBjb2xvbm5lLicsXG4gICAgfSxcbiAgICBza3l1eF9kYXRhX21hbmFnZXJfc3RhdHVzX3VwZGF0ZV93aXRoX3NlbGVjdGlvbnM6IHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgICd7MH0gZGUgezF9wqDDqWzDqW1lbnRzIHLDqXBvbmRlbnQgYXV4IGNyaXTDqHJlcyBldCB7Mn0gc29udCBzw6lsZWN0aW9ubsOpcy4nLFxuICAgIH0sXG4gICAgc2t5dXhfZGF0YV9tYW5hZ2VyX3N0YXR1c191cGRhdGVfd2l0aG91dF9zZWxlY3Rpb25zOiB7XG4gICAgICBtZXNzYWdlOiAnezB9IGRlIHsxfcKgw6lsw6ltZW50cyByw6lwb25kZW50IGF1eCBjcml0w6hyZXMuJyxcbiAgICB9LFxuICAgIHNreXV4X2RhdGFfbWFuYWdlcl9zdGF0dXNfdXBkYXRlX29ubHlfc2VsZWN0ZWQ6IHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgICd7MH0gZGUgezF9wqDDqWzDqW1lbnRzIHLDqXBvbmRlbnQgYXV4IGNyaXTDqHJlcyBldCB7Mn0gc29udCBzw6lsZWN0aW9ubsOpcy4gU2V1bHMgbGVzIMOpbMOpbWVudHMgc8OpbGVjdGlvbm7DqXMgc29udCBhZmZpY2jDqXMuJyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==","/**\n * These options specify the sorting strategy applied to columns when `columnPickerEnabled` is enabled.\n */\nexport var SkyDataManagerColumnPickerSortStrategy;\n(function (SkyDataManagerColumnPickerSortStrategy) {\n /**\n * No sorting is applied to the columns.\n */\n SkyDataManagerColumnPickerSortStrategy[\"None\"] = \"none\";\n /**\n * If `sortEnabled` is set to `true`, then the selected columns are displayed before the unselected columns. Unselected columns are sorted alphabetically.\n * If `sortEnabled` is set to `false`, then the columns are displayed in the order specified by `columnOptions`.\n */\n SkyDataManagerColumnPickerSortStrategy[\"SelectedThenAlphabetical\"] = \"selectedThenAlphabetical\";\n})(SkyDataManagerColumnPickerSortStrategy || (SkyDataManagerColumnPickerSortStrategy = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItc29ydC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItc29ydC1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLHNDQVVYO0FBVkQsV0FBWSxzQ0FBc0M7SUFDaEQ7O09BRUc7SUFDSCx1REFBYSxDQUFBO0lBQ2I7OztPQUdHO0lBQ0gsK0ZBQXFELENBQUE7QUFDdkQsQ0FBQyxFQVZXLHNDQUFzQyxLQUF0QyxzQ0FBc0MsUUFVakQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZXNlIG9wdGlvbnMgc3BlY2lmeSB0aGUgc29ydGluZyBzdHJhdGVneSBhcHBsaWVkIHRvIGNvbHVtbnMgd2hlbiBgY29sdW1uUGlja2VyRW5hYmxlZGAgaXMgZW5hYmxlZC5cbiAqL1xuZXhwb3J0IGVudW0gU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJTb3J0U3RyYXRlZ3kge1xuICAvKipcbiAgICogTm8gc29ydGluZyBpcyBhcHBsaWVkIHRvIHRoZSBjb2x1bW5zLlxuICAgKi9cbiAgTm9uZSA9ICdub25lJyxcbiAgLyoqXG4gICAqIElmIGBzb3J0RW5hYmxlZGAgaXMgc2V0IHRvIGB0cnVlYCwgdGhlbiB0aGUgc2VsZWN0ZWQgY29sdW1ucyBhcmUgZGlzcGxheWVkIGJlZm9yZSB0aGUgdW5zZWxlY3RlZCBjb2x1bW5zLiBVbnNlbGVjdGVkIGNvbHVtbnMgYXJlIHNvcnRlZCBhbHBoYWJldGljYWxseS5cbiAgICogSWYgYHNvcnRFbmFibGVkYCBpcyBzZXQgdG8gYGZhbHNlYCwgdGhlbiB0aGUgY29sdW1ucyBhcmUgZGlzcGxheWVkIGluIHRoZSBvcmRlciBzcGVjaWZpZWQgYnkgYGNvbHVtbk9wdGlvbnNgLlxuICAgKi9cbiAgU2VsZWN0ZWRUaGVuQWxwaGFiZXRpY2FsID0gJ3NlbGVjdGVkVGhlbkFscGhhYmV0aWNhbCcsXG59XG4iXX0=","import { SkyDataManagerColumnPickerSortStrategy } from '../models/data-manager-column-picker-sort-strategy';\nexport class SkyDataManagerColumnPickerContext {\n constructor(columnOptions, displayedColumnIds, columnPickerSortStrategy = SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical) {\n this.columnOptions = columnOptions;\n this.displayedColumnIds = displayedColumnIds;\n this.columnPickerSortStrategy = columnPickerSortStrategy;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTVHLE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUMsWUFDUyxhQUFpRCxFQUNqRCxrQkFBNEIsRUFDNUIsMkJBQW1FLHNDQUFzQyxDQUFDLHdCQUF3QjtRQUZsSSxrQkFBYSxHQUFiLGFBQWEsQ0FBb0M7UUFDakQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFVO1FBQzVCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEc7SUFDeEksQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItb3B0aW9uJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyU29ydFN0cmF0ZWd5IH0gZnJvbSAnLi4vbW9kZWxzL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLXNvcnQtc3RyYXRlZ3knO1xuXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbHVtbk9wdGlvbnM6IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyT3B0aW9uW10sXG4gICAgcHVibGljIGRpc3BsYXllZENvbHVtbklkczogc3RyaW5nW10sXG4gICAgcHVibGljIGNvbHVtblBpY2tlclNvcnRTdHJhdGVneTogU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJTb3J0U3RyYXRlZ3kgPSBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlclNvcnRTdHJhdGVneS5TZWxlY3RlZFRoZW5BbHBoYWJldGljYWwsXG4gICkge31cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Service that provides the column picker component type so it can be dynamically\n * created in the toolbar component. This avoids a circular reference between column\n * picker and toolbar.\n * https://angular.io/errors/NG3003\n */\nexport class SkyDataManagerColumnPickerService {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerColumnPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerColumnPickerService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerColumnPickerService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFnQixpQ0FBaUM7OEdBQWpDLGlDQUFpQztrSEFBakMsaUNBQWlDOzsyRkFBakMsaUNBQWlDO2tCQUR0RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBwcm92aWRlcyB0aGUgY29sdW1uIHBpY2tlciBjb21wb25lbnQgdHlwZSBzbyBpdCBjYW4gYmUgZHluYW1pY2FsbHlcbiAqIGNyZWF0ZWQgaW4gdGhlIHRvb2xiYXIgY29tcG9uZW50LiBUaGlzIGF2b2lkcyBhIGNpcmN1bGFyIHJlZmVyZW5jZSBiZXR3ZWVuIGNvbHVtblxuICogcGlja2VyIGFuZCB0b29sYmFyLlxuICogaHR0cHM6Ly9hbmd1bGFyLmlvL2Vycm9ycy9ORzMwMDNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyU2VydmljZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRDb21wb25lbnRUeXBlKCk6IHR5cGVvZiBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlckNvbXBvbmVudDtcbn1cbiJdfQ==","/**\n * Provides options for defining how data is displayed, such as which columns appear.\n */\nexport class SkyDataViewState {\n constructor(data) {\n /**\n * The IDs of the columns able to be displayed for column-based views. This property is required when utilizing a grid-based view, a column picker, or both.\n */\n this.columnIds = [];\n /**\n * The widths of columns in column-based views for xs and sm+ breakpoints. If using sticky settings, the widths a user sets will be persisted.\n */\n this.columnWidths = { xs: {}, sm: {} };\n /**\n * The IDs of the columns displayed for column-based views.\n */\n this.displayedColumnIds = [];\n this.viewId = data.viewId;\n this.columnIds = data.columnIds || [];\n this.columnWidths = data.columnWidths || { xs: {}, sm: {} };\n this.displayedColumnIds = data.displayedColumnIds || [];\n this.additionalData = data.additionalData;\n }\n /**\n * Returns the `SkyDataViewStateOptions` for the current view.\n * @returns The `SkyDataViewStateOptions`.\n */\n getViewStateOptions() {\n return {\n viewId: this.viewId,\n columnIds: this.columnIds,\n columnWidths: this.columnWidths,\n displayedColumnIds: this.displayedColumnIds,\n additionalData: this.additionalData,\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLXZpZXctc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBeUIzQixZQUFZLElBQTZCO1FBeEJ6Qzs7V0FFRztRQUNJLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFFaEM7O1dBRUc7UUFDSSxpQkFBWSxHQUE0QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2xFOztXQUVHO1FBQ0ksdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBYXZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNwQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5RGF0YVZpZXdDb2x1bW5XaWR0aHMgfSBmcm9tICcuL2RhdGEtdmlldy1jb2x1bW4td2lkdGhzJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGVPcHRpb25zIH0gZnJvbSAnLi9kYXRhLXZpZXctc3RhdGUtb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgb3B0aW9ucyBmb3IgZGVmaW5pbmcgaG93IGRhdGEgaXMgZGlzcGxheWVkLCBzdWNoIGFzIHdoaWNoIGNvbHVtbnMgYXBwZWFyLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RGF0YVZpZXdTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGFibGUgdG8gYmUgZGlzcGxheWVkIGZvciBjb2x1bW4tYmFzZWQgdmlld3MuIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgd2hlbiB1dGlsaXppbmcgYSBncmlkLWJhc2VkIHZpZXcsIGEgY29sdW1uIHBpY2tlciwgb3IgYm90aC5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW5JZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSB3aWR0aHMgb2YgY29sdW1ucyBpbiBjb2x1bW4tYmFzZWQgdmlld3MgZm9yIHhzIGFuZCBzbSsgYnJlYWtwb2ludHMuIElmIHVzaW5nIHN0aWNreSBzZXR0aW5ncywgdGhlIHdpZHRocyBhIHVzZXIgc2V0cyB3aWxsIGJlIHBlcnNpc3RlZC5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW5XaWR0aHM6IFNreURhdGFWaWV3Q29sdW1uV2lkdGhzID0geyB4czoge30sIHNtOiB7fSB9O1xuICAvKipcbiAgICogVGhlIElEcyBvZiB0aGUgY29sdW1ucyBkaXNwbGF5ZWQgZm9yIGNvbHVtbi1iYXNlZCB2aWV3cy5cbiAgICovXG4gIHB1YmxpYyBkaXNwbGF5ZWRDb2x1bW5JZHM6IHN0cmluZ1tdID0gW107XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhpcyB2aWV3LlxuICAgKi9cbiAgcHVibGljIHZpZXdJZDogc3RyaW5nO1xuICAvKipcbiAgICogQW4gdW50eXBlZCBwcm9wZXJ0eSB0aGF0IHRyYWNrcyBhbnkgdmlldy1zcGVjaWZpYyBzdGF0ZSBpbmZvcm1hdGlvblxuICAgKiB0aGF0IGlzIHJlbGV2YW50IHRvIGEgZGF0YSBtYW5hZ2VyIGJ1dCB0aGF0IGV4aXN0aW5nIHByb3BlcnRpZXMgZG8gbm90IGNvdmVyLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIGFkZGl0aW9uYWxEYXRhOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoZGF0YTogU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnMpIHtcbiAgICB0aGlzLnZpZXdJZCA9IGRhdGEudmlld0lkO1xuICAgIHRoaXMuY29sdW1uSWRzID0gZGF0YS5jb2x1bW5JZHMgfHwgW107XG4gICAgdGhpcy5jb2x1bW5XaWR0aHMgPSBkYXRhLmNvbHVtbldpZHRocyB8fCB7IHhzOiB7fSwgc206IHt9IH07XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5JZHMgPSBkYXRhLmRpc3BsYXllZENvbHVtbklkcyB8fCBbXTtcbiAgICB0aGlzLmFkZGl0aW9uYWxEYXRhID0gZGF0YS5hZGRpdGlvbmFsRGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnNgIGZvciB0aGUgY3VycmVudCB2aWV3LlxuICAgKiBAcmV0dXJucyBUaGUgYFNreURhdGFWaWV3U3RhdGVPcHRpb25zYC5cbiAgICovXG4gIHB1YmxpYyBnZXRWaWV3U3RhdGVPcHRpb25zKCk6IFNreURhdGFWaWV3U3RhdGVPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmlld0lkOiB0aGlzLnZpZXdJZCxcbiAgICAgIGNvbHVtbklkczogdGhpcy5jb2x1bW5JZHMsXG4gICAgICBjb2x1bW5XaWR0aHM6IHRoaXMuY29sdW1uV2lkdGhzLFxuICAgICAgZGlzcGxheWVkQ29sdW1uSWRzOiB0aGlzLmRpc3BsYXllZENvbHVtbklkcyxcbiAgICAgIGFkZGl0aW9uYWxEYXRhOiB0aGlzLmFkZGl0aW9uYWxEYXRhLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { SkyDataViewState } from './data-view-state';\n/**\n * Provides options that control which data to display.\n */\nexport class SkyDataManagerState {\n constructor(data) {\n /**\n * The states of the individual views.\n */\n this.views = [];\n const views = data.views && data.views.map((view) => new SkyDataViewState(view));\n this.activeSortOption = data.activeSortOption;\n this.additionalData = data.additionalData;\n this.filterData = data.filterData;\n this.onlyShowSelected = data.onlyShowSelected;\n this.selectedIds = data.selectedIds;\n this.searchText = data.searchText;\n this.views = views || [];\n }\n /**\n * Returns the `SkyDataManagerStateOptions` for the data manager.\n * @returns The `SkyDataManagerStateOptions` for the data manager.\n */\n getStateOptions() {\n const viewStates = this.views.map((view) => {\n return view.getViewStateOptions();\n });\n return {\n activeSortOption: this.activeSortOption,\n additionalData: this.additionalData,\n filterData: this.filterData,\n onlyShowSelected: this.onlyShowSelected,\n searchText: this.searchText,\n selectedIds: this.selectedIds,\n views: viewStates,\n };\n }\n /**\n * Returns the `SkyDataViewState` for the specified view.\n * @param viewId The ID for the view.\n * @returns The `SkyDataViewState` for the specified view.\n */\n getViewStateById(viewId) {\n return this.views.find((view) => view.viewId === viewId);\n }\n /**\n * Adds a `SkyDataViewState` to a view or updates an existing view.\n * @param viewId The ID for the view.\n * @param view The `SkyDataViewState` option to add or update.\n * @returns The state of the data manager for the specified view.\n */\n addOrUpdateView(viewId, view) {\n const existingViewIndex = this.views.findIndex((v) => v.viewId === viewId);\n if (existingViewIndex !== -1) {\n this.views[existingViewIndex] = view;\n }\n else {\n this.views.push(view);\n }\n return new SkyDataManagerState({\n activeSortOption: this.activeSortOption,\n additionalData: this.additionalData,\n filterData: this.filterData,\n searchText: this.searchText,\n selectedIds: this.selectedIds,\n views: this.views,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBaUM5QixZQUFZLElBQWdDO1FBTDVDOztXQUVHO1FBQ0ksVUFBSyxHQUF1QixFQUFFLENBQUM7UUFHcEMsTUFBTSxLQUFLLEdBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE1BQU0sVUFBVSxHQUE4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsVUFBVTtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxNQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUNwQixNQUFjLEVBQ2QsSUFBc0I7UUFFdEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUUzRSxJQUFJLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxPQUFPLElBQUksbUJBQW1CLENBQUM7WUFDN0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreURhdGFNYW5hZ2VyRmlsdGVyRGF0YSB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLWZpbHRlci1kYXRhJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbiB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXNvcnQtb3B0aW9uJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zIH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItc3RhdGUtb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEYXRhVmlld1N0YXRlIH0gZnJvbSAnLi9kYXRhLXZpZXctc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnMgfSBmcm9tICcuL2RhdGEtdmlldy1zdGF0ZS1vcHRpb25zJztcblxuLyoqXG4gKiBQcm92aWRlcyBvcHRpb25zIHRoYXQgY29udHJvbCB3aGljaCBkYXRhIHRvIGRpc3BsYXkuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEYXRhTWFuYWdlclN0YXRlIHtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZlU29ydE9wdGlvbjogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQW4gdW50eXBlZCBwcm9wZXJ0eSB0aGF0IHRyYWNrcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gdGhhdCdzIHJlbGV2YW50IHRvIGEgZGF0YVxuICAgKiBtYW5hZ2VyIGJ1dCB0aGF0IHRoZSBleGlzdGluZyBwcm9wZXJ0aWVzIGRvIG5vdCBjb3Zlci5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBhZGRpdGlvbmFsRGF0YTogYW55O1xuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBmaWx0ZXJzLlxuICAgKi9cbiAgcHVibGljIGZpbHRlckRhdGE6IFNreURhdGFNYW5hZ2VyRmlsdGVyRGF0YSB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSBvbmx5IHRoZSBzZWxlY3RlZCByb3dzIG9yIG9iamVjdHMuIFRoZSBtdWx0aXNlbGVjdCB0b29sYmFyXG4gICAqIHVzZXMgdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIHB1YmxpYyBvbmx5U2hvd1NlbGVjdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVGhlIHNlYXJjaCB0ZXh0IHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIHNlYXJjaFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcm93cyBvciBvYmplY3RzLlxuICAgKi9cbiAgcHVibGljIHNlbGVjdGVkSWRzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBzdGF0ZXMgb2YgdGhlIGluZGl2aWR1YWwgdmlld3MuXG4gICAqL1xuICBwdWJsaWMgdmlld3M6IFNreURhdGFWaWV3U3RhdGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zKSB7XG4gICAgY29uc3Qgdmlld3MgPVxuICAgICAgZGF0YS52aWV3cyAmJiBkYXRhLnZpZXdzLm1hcCgodmlldykgPT4gbmV3IFNreURhdGFWaWV3U3RhdGUodmlldykpO1xuXG4gICAgdGhpcy5hY3RpdmVTb3J0T3B0aW9uID0gZGF0YS5hY3RpdmVTb3J0T3B0aW9uO1xuICAgIHRoaXMuYWRkaXRpb25hbERhdGEgPSBkYXRhLmFkZGl0aW9uYWxEYXRhO1xuICAgIHRoaXMuZmlsdGVyRGF0YSA9IGRhdGEuZmlsdGVyRGF0YTtcbiAgICB0aGlzLm9ubHlTaG93U2VsZWN0ZWQgPSBkYXRhLm9ubHlTaG93U2VsZWN0ZWQ7XG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IGRhdGEuc2VsZWN0ZWRJZHM7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gZGF0YS5zZWFyY2hUZXh0O1xuICAgIHRoaXMudmlld3MgPSB2aWV3cyB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnNgIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBAcmV0dXJucyBUaGUgYFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zYCBmb3IgdGhlIGRhdGEgbWFuYWdlci5cbiAgICovXG4gIHB1YmxpYyBnZXRTdGF0ZU9wdGlvbnMoKTogU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMge1xuICAgIGNvbnN0IHZpZXdTdGF0ZXM6IFNreURhdGFWaWV3U3RhdGVPcHRpb25zW10gPSB0aGlzLnZpZXdzLm1hcCgodmlldykgPT4ge1xuICAgICAgcmV0dXJuIHZpZXcuZ2V0Vmlld1N0YXRlT3B0aW9ucygpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGl2ZVNvcnRPcHRpb246IHRoaXMuYWN0aXZlU29ydE9wdGlvbixcbiAgICAgIGFkZGl0aW9uYWxEYXRhOiB0aGlzLmFkZGl0aW9uYWxEYXRhLFxuICAgICAgZmlsdGVyRGF0YTogdGhpcy5maWx0ZXJEYXRhLFxuICAgICAgb25seVNob3dTZWxlY3RlZDogdGhpcy5vbmx5U2hvd1NlbGVjdGVkLFxuICAgICAgc2VhcmNoVGV4dDogdGhpcy5zZWFyY2hUZXh0LFxuICAgICAgc2VsZWN0ZWRJZHM6IHRoaXMuc2VsZWN0ZWRJZHMsXG4gICAgICB2aWV3czogdmlld1N0YXRlcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhVmlld1N0YXRlYCBmb3IgdGhlIHNwZWNpZmllZCB2aWV3LlxuICAgKiBAcGFyYW0gdmlld0lkIFRoZSBJRCBmb3IgdGhlIHZpZXcuXG4gICAqIEByZXR1cm5zIFRoZSBgU2t5RGF0YVZpZXdTdGF0ZWAgZm9yIHRoZSBzcGVjaWZpZWQgdmlldy5cbiAgICovXG4gIHB1YmxpYyBnZXRWaWV3U3RhdGVCeUlkKHZpZXdJZDogc3RyaW5nKTogU2t5RGF0YVZpZXdTdGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudmlld3MuZmluZCgodmlldykgPT4gdmlldy52aWV3SWQgPT09IHZpZXdJZCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGBTa3lEYXRhVmlld1N0YXRlYCB0byBhIHZpZXcgb3IgdXBkYXRlcyBhbiBleGlzdGluZyB2aWV3LlxuICAgKiBAcGFyYW0gdmlld0lkIFRoZSBJRCBmb3IgdGhlIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3IFRoZSBgU2t5RGF0YVZpZXdTdGF0ZWAgb3B0aW9uIHRvIGFkZCBvciB1cGRhdGUuXG4gICAqIEByZXR1cm5zIFRoZSBzdGF0ZSBvZiB0aGUgZGF0YSBtYW5hZ2VyIGZvciB0aGUgc3BlY2lmaWVkIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgYWRkT3JVcGRhdGVWaWV3KFxuICAgIHZpZXdJZDogc3RyaW5nLFxuICAgIHZpZXc6IFNreURhdGFWaWV3U3RhdGUsXG4gICk6IFNreURhdGFNYW5hZ2VyU3RhdGUge1xuICAgIGNvbnN0IGV4aXN0aW5nVmlld0luZGV4ID0gdGhpcy52aWV3cy5maW5kSW5kZXgoKHYpID0+IHYudmlld0lkID09PSB2aWV3SWQpO1xuXG4gICAgaWYgKGV4aXN0aW5nVmlld0luZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy52aWV3c1tleGlzdGluZ1ZpZXdJbmRleF0gPSB2aWV3O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXdzLnB1c2godmlldyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTa3lEYXRhTWFuYWdlclN0YXRlKHtcbiAgICAgIGFjdGl2ZVNvcnRPcHRpb246IHRoaXMuYWN0aXZlU29ydE9wdGlvbixcbiAgICAgIGFkZGl0aW9uYWxEYXRhOiB0aGlzLmFkZGl0aW9uYWxEYXRhLFxuICAgICAgZmlsdGVyRGF0YTogdGhpcy5maWx0ZXJEYXRhLFxuICAgICAgc2VhcmNoVGV4dDogdGhpcy5zZWFyY2hUZXh0LFxuICAgICAgc2VsZWN0ZWRJZHM6IHRoaXMuc2VsZWN0ZWRJZHMsXG4gICAgICB2aWV3czogdGhpcy52aWV3cyxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { SkyDataManagerState } from './data-manager-state';\n/**\n * @internal\n */\nexport class SkyDataManagerStateChange {\n constructor(dataState, source) {\n this.dataState = new SkyDataManagerState(dataState.getStateOptions());\n this.source = source;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN0YXRlLWNoYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRDs7R0FFRztBQUNILE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsWUFBWSxTQUE4QixFQUFFLE1BQWM7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zdGF0ZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lEYXRhTWFuYWdlclN0YXRlQ2hhbmdlIHtcbiAgcHVibGljIGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZTtcbiAgcHVibGljIHNvdXJjZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSwgc291cmNlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRhdGFTdGF0ZSA9IG5ldyBTa3lEYXRhTWFuYWdlclN0YXRlKGRhdGFTdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSk7XG4gICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, map, take, takeUntil, } from 'rxjs/operators';\nimport { SkyDataManagerState } from './models/data-manager-state';\nimport { SkyDataManagerStateChange } from './models/data-manager-state-change';\nimport { SkyDataViewState } from './models/data-view-state';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\n/**\n * The data manager service provides ways for data views, toolbar items, and more to stay up to date\n * with the active view ID, data manager config, registered views and their configs, and data state.\n * There are methods to get current values, update values, and get subscriptions to the changing values.\n *\n * Provide this service at the component level for each instance of a data manager. Do not\n * provide it at the module level or in `app-extras`. This allows multiple data\n * managers to be used and self-contained.\n */\nexport class SkyDataManagerService {\n #activeViewId;\n #dataManagerConfig;\n #views;\n #dataStateChange;\n #dataSummary;\n #isInitialized;\n #ngUnsubscribe;\n #initSource;\n #uiConfigService;\n constructor(uiConfigService) {\n /**\n * @internal\n */\n this.viewkeeperClasses = new BehaviorSubject({});\n this.#activeViewId = new ReplaySubject(1);\n this.#dataManagerConfig = new BehaviorSubject({});\n this.#views = new BehaviorSubject([]);\n this.#dataStateChange = new ReplaySubject(1);\n this.#dataSummary = new Subject();\n this.#ngUnsubscribe = new Subject();\n this.#initSource = 'dataManagerServiceInit';\n this.#uiConfigService = uiConfigService;\n }\n ngOnDestroy() {\n this.#activeViewId.complete();\n this.#dataManagerConfig.complete();\n this.#views.complete();\n this.#dataStateChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n /**\n * Initializes the data manager with the given settings and sets `isInitialized` to `true`.\n * This must be called for the data manager to render.\n * @param args The initial active view ID, data manager config, and state to use for the data manager.\n * If a settings key is provided, it checks for a saved data state in the SKY UI config service before using the default data state\n * and saves any state changes to the service.\n */\n initDataManager(args) {\n if (this.#isInitialized) {\n console.warn('This data manager instance has already been initialized.');\n return;\n }\n this.#isInitialized = true;\n const defaultDataState = args.defaultDataState;\n const settingsKey = args.settingsKey;\n this.updateActiveViewId(args.activeViewId);\n this.updateDataManagerConfig(args.dataManagerConfig);\n if (settingsKey) {\n this.#uiConfigService\n .getConfig(settingsKey, defaultDataState.getStateOptions())\n .pipe(take(1))\n .subscribe((config) => {\n this.updateDataState(new SkyDataManagerState(config), this.#initSource);\n });\n }\n else {\n this.updateDataState(defaultDataState, this.#initSource);\n }\n if (settingsKey) {\n this.getDataStateUpdates(this.#initSource)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.#uiConfigService\n .setConfig(settingsKey, state.getStateOptions())\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => { }, (err) => {\n console.warn('Could not save data manager settings.');\n console.warn(err);\n });\n });\n }\n }\n /**\n * Initializes a view within the data manager. This must be called for each view for the views to appear within the data manager.\n * @param viewConfig The SkyDataViewConfig settings for the view being registered.\n */\n initDataView(viewConfig) {\n const currentViews = this.#views.value;\n if (this.getViewById(viewConfig.id)) {\n console.warn(`A data manager view with the id ${viewConfig.id} has already been initialized.`);\n return;\n }\n currentViews.push(viewConfig);\n this.#views.next(currentViews);\n // When the initial activeViewId is set there are no views registered. We have to re-emit\n // the activeId so the newly registered view is notified that it is active.\n this.#activeViewId.pipe(take(1)).subscribe((id) => {\n this.#activeViewId.next(id);\n });\n this.#dataStateChange\n .pipe(take(1))\n .subscribe((change) => {\n const dataState = change.dataState;\n const currentViewState = dataState.getViewStateById(viewConfig.id);\n if (!currentViewState) {\n const newViewState = new SkyDataViewState({ viewId: viewConfig.id });\n // Ensure that the view state's available columns match with the view config. Also,\n // add columns to the `displayedColumnIds` as long as they are not `initialHide`\n if (viewConfig.columnOptions) {\n const columnIds = viewConfig.columnOptions.map((columnOptions) => {\n return columnOptions.id;\n });\n const displayedColumnIds = viewConfig.columnOptions\n .filter((columnOption) => {\n return !columnOption.initialHide;\n })\n .map((columnOption) => {\n return columnOption.id;\n });\n newViewState.columnIds = columnIds;\n newViewState.displayedColumnIds = displayedColumnIds;\n }\n const newDataState = dataState.addOrUpdateView(viewConfig.id, newViewState);\n this.updateDataState(newDataState, this.#initSource);\n }\n else {\n const currentAvailableColumnIds = viewConfig.columnOptions?.map((columnOptions) => {\n return columnOptions.id;\n }) || [];\n // Ensure that the view state's available columns match with the view config. Also,\n // add new columns to the `displayedColumnIds` as long as they are not `initialHide`.\n // We only add columns to `displayedColumnsIds` if we had previously tracked\n // `columnIds` to avoid breaking changes.\n if (currentViewState.columnIds.length > 0) {\n let newColumnIds = currentAvailableColumnIds?.filter((id) => currentViewState.columnIds.indexOf(id) < 0);\n newColumnIds = newColumnIds?.filter((columnId) => {\n return viewConfig.columnOptions?.find((columnOption) => columnOption.id === columnId && !columnOption.initialHide);\n });\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n currentViewState.displayedColumnIds =\n currentViewState.displayedColumnIds.concat(newColumnIds);\n }\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n currentViewState.columnIds = currentAvailableColumnIds;\n const newDataState = dataState.addOrUpdateView(viewConfig.id, currentViewState);\n this.updateDataState(newDataState, this.#initSource);\n }\n })\n .unsubscribe();\n }\n /**\n * Returns an observable of data state changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data state updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the state.\n */\n getDataStateUpdates(sourceId, updateFilter) {\n // filter out events from the provided source and emit just the dataState\n if (updateFilter) {\n return this.#dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState), updateFilter.comparator\n ? distinctUntilChanged(updateFilter.comparator)\n : distinctUntilChanged(this.#getDefaultStateComparator(updateFilter.properties)));\n }\n else {\n return this.#dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));\n }\n }\n /**\n * Updates the data state and emits a new value to entities subscribed to data state changes.\n * @param state The new `SkyDataManagerState` value.\n * @param sourceId The ID of the entity updating the state. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to state changes from `getDataStateUpdates`.\n */\n updateDataState(state, sourceId) {\n const newState = new SkyDataManagerState(state.getStateOptions());\n const newStateChange = new SkyDataManagerStateChange(newState, sourceId);\n this.#dataStateChange.next(newStateChange);\n }\n /**\n * Returns an observable of data summary changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data summary updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the summary.\n */\n getDataSummaryUpdates(sourceId) {\n return this.#dataSummary.pipe(filter((summaryChange) => sourceId !== summaryChange.source), map((summaryChange) => summaryChange.dataSummary));\n }\n /**\n * Updates the data summary and emits a new value to entities subscribed to data summary changes.\n * @param summary The new `SkyDataManagerSummary` value.\n * @param sourceId The ID of the entity updating the summary. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to summary changes from `getDataSummaryUpdates`.\n */\n updateDataSummary(summary, sourceId) {\n this.#dataSummary.next({ dataSummary: summary, source: sourceId });\n }\n /**\n * Returns the current `SkyDataManagerConfig`.\n */\n getCurrentDataManagerConfig() {\n return this.#dataManagerConfig.value;\n }\n /**\n * Returns an observable of data manager config changes that views and other data manager entities can subscribe to.\n */\n getDataManagerConfigUpdates() {\n return this.#dataManagerConfig;\n }\n /**\n * Updates the data manager config and emits a new value to entities subscribed to data config changes.\n * @param value The new `SkyDataManagerConfig` value.\n */\n updateDataManagerConfig(value) {\n this.#dataManagerConfig.next(value);\n }\n /**\n * Returns an observable of data view config changes that views and other data manager entities can subscribe to.\n */\n getDataViewsUpdates() {\n return this.#views;\n }\n /**\n * Returns an observable of the active view ID that views and other data manager entities can subscribe to.\n */\n getActiveViewIdUpdates() {\n return this.#activeViewId;\n }\n /**\n * Updates the active view ID. The data manager changes the displayed view.\n * @param id The new active view ID.\n */\n updateActiveViewId(id) {\n this.#activeViewId.next(id);\n }\n /**\n * Returns the `SkyDataViewConfig` for the given view ID.\n * @param viewId The ID of the view config to get.\n */\n getViewById(viewId) {\n const currentViews = this.#views.value;\n const viewConfig = currentViews.find((view) => view.id === viewId);\n return viewConfig;\n }\n /**\n * Updates the given view config. The registered view with the same ID is updated to the\n * provided config, so include all properties regardless of whether they changed. If the\n * view was not initialized already, no update happens.\n * @param view The new `SkyDataViewConfig` containing all properties.\n */\n updateViewConfig(view) {\n const currentViews = this.#views.value;\n const existingViewIndex = currentViews.findIndex((currentView) => currentView.id === view.id);\n if (existingViewIndex === -1) {\n console.error('A view with the id {id} does not exist.', view.id);\n }\n else {\n currentViews[existingViewIndex] = view;\n this.#views.next(currentViews);\n }\n }\n /**\n * @internal\n */\n setViewkeeperClasses(viewId, classes) {\n const viewkeeperClasses = this.viewkeeperClasses.value;\n viewkeeperClasses[viewId] = classes;\n this.viewkeeperClasses.next(viewkeeperClasses);\n }\n #filterDataStateProperties(state, properties) {\n const stateProperties = state.getStateOptions();\n const filteredStateProperties = {};\n if (properties) {\n for (const property of properties) {\n if (property in stateProperties) {\n filteredStateProperties[property] = stateProperties[property];\n }\n }\n }\n return filteredStateProperties;\n }\n #getDefaultStateComparator(properties) {\n return (state1, state2) => {\n const filteredState1 = this.#filterDataStateProperties(state1, properties);\n const filteredState2 = this.#filterDataStateProperties(state2, properties);\n return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.SkyUIConfigService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsZUFBZSxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQU0vRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRTVEOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQU12QixhQUFhLENBQWdDO0lBQzdDLGtCQUFrQixDQUFpRDtJQUNuRSxNQUFNLENBQWdEO0lBQ3RELGdCQUFnQixDQUFtRDtJQUNuRSxZQUFZLENBQThDO0lBRW5FLGNBQWMsQ0FBc0I7SUFDcEMsY0FBYyxDQUF1QjtJQUNyQyxXQUFXLENBQTRCO0lBQ3ZDLGdCQUFnQixDQUFxQjtJQUVyQyxZQUFZLGVBQW1DO1FBaEIvQzs7V0FFRztRQUNJLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUEyQixFQUFFLENBQUMsQ0FBQztRQUVwRSxrQkFBYSxHQUFHLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdDLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUF1QixFQUFFLENBQUMsQ0FB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QUNqQyxDQUFDO0lBRUQsMEJBQTBCLENBQ3hCLFVBQTREO1FBRTVELE9BQU8sQ0FDTCxNQUEyQixFQUMzQixNQUEyQixFQUNsQixFQUFFO1lBQ1gsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUNwRCxNQUFNLEVBQ04sVUFBVSxDQUNYLENBQUM7WUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQ3BELE1BQU0sRUFDTixVQUFVLENBQ1gsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBMVhVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItaW5pdC1hcmdzJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZSB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUtb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlVXBkYXRlRmlsdGVyQXJncyB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS11cGRhdGUtZmlsdGVyLWFyZ3MnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdW1tYXJ5IH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN1bW1hcnknO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdW1tYXJ5Q2hhbmdlIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN1bW1hcnktY2hhbmdlJztcbmltcG9ydCB7IFNreURhdGFWaWV3Q29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS12aWV3LWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lEYXRhVmlld1N0YXRlIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS12aWV3LXN0YXRlJztcblxuLyoqXG4gKiBUaGUgZGF0YSBtYW5hZ2VyIHNlcnZpY2UgcHJvdmlkZXMgd2F5cyBmb3IgZGF0YSB2aWV3cywgdG9vbGJhciBpdGVtcywgYW5kIG1vcmUgdG8gc3RheSB1cCB0byBkYXRlXG4gKiB3aXRoIHRoZSBhY3RpdmUgdmlldyBJRCwgZGF0YSBtYW5hZ2VyIGNvbmZpZywgcmVnaXN0ZXJlZCB2aWV3cyBhbmQgdGhlaXIgY29uZmlncywgYW5kIGRhdGEgc3RhdGUuXG4gKiBUaGVyZSBhcmUgbWV0aG9kcyB0byBnZXQgY3VycmVudCB2YWx1ZXMsIHVwZGF0ZSB2YWx1ZXMsIGFuZCBnZXQgc3Vic2NyaXB0aW9ucyB0byB0aGUgY2hhbmdpbmcgdmFsdWVzLlxuICpcbiAqIFByb3ZpZGUgdGhpcyBzZXJ2aWNlIGF0IHRoZSBjb21wb25lbnQgbGV2ZWwgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgYSBkYXRhIG1hbmFnZXIuIERvIG5vdFxuICogcHJvdmlkZSBpdCBhdCB0aGUgbW9kdWxlIGxldmVsIG9yIGluIGBhcHAtZXh0cmFzYC4gVGhpcyBhbGxvd3MgbXVsdGlwbGUgZGF0YVxuICogbWFuYWdlcnMgdG8gYmUgdXNlZCBhbmQgc2VsZi1jb250YWluZWQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgdmlld2tlZXBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4oe30pO1xuXG4gIHJlYWRvbmx5ICNhY3RpdmVWaWV3SWQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICByZWFkb25seSAjZGF0YU1hbmFnZXJDb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFNYW5hZ2VyQ29uZmlnPih7fSk7XG4gIHJlYWRvbmx5ICN2aWV3cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5RGF0YVZpZXdDb25maWdbXT4oW10pO1xuICByZWFkb25seSAjZGF0YVN0YXRlQ2hhbmdlID0gbmV3IFJlcGxheVN1YmplY3Q8U2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZT4oMSk7XG4gIHJlYWRvbmx5ICNkYXRhU3VtbWFyeSA9IG5ldyBTdWJqZWN0PFNreURhdGFNYW5hZ2VyU3VtbWFyeUNoYW5nZT4oKTtcblxuICAjaXNJbml0aWFsaXplZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjaW5pdFNvdXJjZSA9ICdkYXRhTWFuYWdlclNlcnZpY2VJbml0JztcbiAgI3VpQ29uZmlnU2VydmljZTogU2t5VUlDb25maWdTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKHVpQ29uZmlnU2VydmljZTogU2t5VUlDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy4jdWlDb25maWdTZXJ2aWNlID0gdWlDb25maWdTZXJ2aWNlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2FjdGl2ZVZpZXdJZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2RhdGFNYW5hZ2VyQ29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jdmlld3MuY29tcGxldGUoKTtcbiAgICB0aGlzLiNkYXRhU3RhdGVDaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGEgbWFuYWdlciB3aXRoIHRoZSBnaXZlbiBzZXR0aW5ncyBhbmQgc2V0cyBgaXNJbml0aWFsaXplZGAgdG8gYHRydWVgLlxuICAgKiBUaGlzIG11c3QgYmUgY2FsbGVkIGZvciB0aGUgZGF0YSBtYW5hZ2VyIHRvIHJlbmRlci5cbiAgICogQHBhcmFtIGFyZ3MgVGhlIGluaXRpYWwgYWN0aXZlIHZpZXcgSUQsIGRhdGEgbWFuYWdlciBjb25maWcsIGFuZCBzdGF0ZSB0byB1c2UgZm9yIHRoZSBkYXRhIG1hbmFnZXIuXG4gICAqIElmIGEgc2V0dGluZ3Mga2V5IGlzIHByb3ZpZGVkLCBpdCBjaGVja3MgZm9yIGEgc2F2ZWQgZGF0YSBzdGF0ZSBpbiB0aGUgU0tZIFVJIGNvbmZpZyBzZXJ2aWNlIGJlZm9yZSB1c2luZyB0aGUgZGVmYXVsdCBkYXRhIHN0YXRlXG4gICAqIGFuZCBzYXZlcyBhbnkgc3RhdGUgY2hhbmdlcyB0byB0aGUgc2VydmljZS5cbiAgICovXG4gIHB1YmxpYyBpbml0RGF0YU1hbmFnZXIoYXJnczogU2t5RGF0YU1hbmFnZXJJbml0QXJncyk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNpc0luaXRpYWxpemVkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RoaXMgZGF0YSBtYW5hZ2VyIGluc3RhbmNlIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy4jaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICBjb25zdCBkZWZhdWx0RGF0YVN0YXRlID0gYXJncy5kZWZhdWx0RGF0YVN0YXRlO1xuICAgIGNvbnN0IHNldHRpbmdzS2V5ID0gYXJncy5zZXR0aW5nc0tleTtcblxuICAgIHRoaXMudXBkYXRlQWN0aXZlVmlld0lkKGFyZ3MuYWN0aXZlVmlld0lkKTtcbiAgICB0aGlzLnVwZGF0ZURhdGFNYW5hZ2VyQ29uZmlnKGFyZ3MuZGF0YU1hbmFnZXJDb25maWcpO1xuXG4gICAgaWYgKHNldHRpbmdzS2V5KSB7XG4gICAgICB0aGlzLiN1aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLmdldENvbmZpZyhzZXR0aW5nc0tleSwgZGVmYXVsdERhdGFTdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29uZmlnOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucykgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICAgICAgbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoY29uZmlnKSxcbiAgICAgICAgICAgIHRoaXMuI2luaXRTb3VyY2UsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKGRlZmF1bHREYXRhU3RhdGUsIHRoaXMuI2luaXRTb3VyY2UpO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy5nZXREYXRhU3RhdGVVcGRhdGVzKHRoaXMuI2luaXRTb3VyY2UpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLiN1aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgICAgIC5zZXRDb25maWcoc2V0dGluZ3NLZXksIHN0YXRlLmdldFN0YXRlT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgICAgICAgICAgICAoKSA9PiB7fSxcbiAgICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHNhdmUgZGF0YSBtYW5hZ2VyIHNldHRpbmdzLicpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlcnIpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgdmlldyB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlci4gVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgZWFjaCB2aWV3IGZvciB0aGUgdmlld3MgdG8gYXBwZWFyIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBAcGFyYW0gdmlld0NvbmZpZyBUaGUgU2t5RGF0YVZpZXdDb25maWcgc2V0dGluZ3MgZm9yIHRoZSB2aWV3IGJlaW5nIHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFWaWV3KHZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZpZXdzID0gdGhpcy4jdmlld3MudmFsdWU7XG5cbiAgICBpZiAodGhpcy5nZXRWaWV3QnlJZCh2aWV3Q29uZmlnLmlkKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgQSBkYXRhIG1hbmFnZXIgdmlldyB3aXRoIHRoZSBpZCAke3ZpZXdDb25maWcuaWR9IGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuYCxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3VycmVudFZpZXdzLnB1c2godmlld0NvbmZpZyk7XG4gICAgdGhpcy4jdmlld3MubmV4dChjdXJyZW50Vmlld3MpO1xuXG4gICAgLy8gV2hlbiB0aGUgaW5pdGlhbCBhY3RpdmVWaWV3SWQgaXMgc2V0IHRoZXJlIGFyZSBubyB2aWV3cyByZWdpc3RlcmVkLiBXZSBoYXZlIHRvIHJlLWVtaXRcbiAgICAvLyB0aGUgYWN0aXZlSWQgc28gdGhlIG5ld2x5IHJlZ2lzdGVyZWQgdmlldyBpcyBub3RpZmllZCB0aGF0IGl0IGlzIGFjdGl2ZS5cbiAgICB0aGlzLiNhY3RpdmVWaWV3SWQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGlkKSA9PiB7XG4gICAgICB0aGlzLiNhY3RpdmVWaWV3SWQubmV4dChpZCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLiNkYXRhU3RhdGVDaGFuZ2VcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0YXRlID0gY2hhbmdlLmRhdGFTdGF0ZTtcbiAgICAgICAgY29uc3QgY3VycmVudFZpZXdTdGF0ZSA9IGRhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKHZpZXdDb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghY3VycmVudFZpZXdTdGF0ZSkge1xuICAgICAgICAgIGNvbnN0IG5ld1ZpZXdTdGF0ZSA9IG5ldyBTa3lEYXRhVmlld1N0YXRlKHsgdmlld0lkOiB2aWV3Q29uZmlnLmlkIH0pO1xuXG4gICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHZpZXcgc3RhdGUncyBhdmFpbGFibGUgY29sdW1ucyBtYXRjaCB3aXRoIHRoZSB2aWV3IGNvbmZpZy4gQWxzbyxcbiAgICAgICAgICAvLyBhZGQgY29sdW1ucyB0byB0aGUgYGRpc3BsYXllZENvbHVtbklkc2AgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgYGluaXRpYWxIaWRlYFxuICAgICAgICAgIGlmICh2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9ucy5tYXAoKGNvbHVtbk9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbnMuaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZENvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9uc1xuICAgICAgICAgICAgICAuZmlsdGVyKChjb2x1bW5PcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWNvbHVtbk9wdGlvbi5pbml0aWFsSGlkZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLm1hcCgoY29sdW1uT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbi5pZDtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZS5jb2x1bW5JZHMgPSBjb2x1bW5JZHM7XG4gICAgICAgICAgICBuZXdWaWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzID0gZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBuZXdEYXRhU3RhdGUgPSBkYXRhU3RhdGUuYWRkT3JVcGRhdGVWaWV3KFxuICAgICAgICAgICAgdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhU3RhdGUobmV3RGF0YVN0YXRlLCB0aGlzLiNpbml0U291cmNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50QXZhaWxhYmxlQ29sdW1uSWRzID1cbiAgICAgICAgICAgIHZpZXdDb25maWcuY29sdW1uT3B0aW9ucz8ubWFwKChjb2x1bW5PcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjb2x1bW5PcHRpb25zLmlkO1xuICAgICAgICAgICAgfSkgfHwgW107XG5cbiAgICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgdmlldyBzdGF0ZSdzIGF2YWlsYWJsZSBjb2x1bW5zIG1hdGNoIHdpdGggdGhlIHZpZXcgY29uZmlnLiBBbHNvLFxuICAgICAgICAgIC8vIGFkZCBuZXcgY29sdW1ucyB0byB0aGUgYGRpc3BsYXllZENvbHVtbklkc2AgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgYGluaXRpYWxIaWRlYC5cbiAgICAgICAgICAvLyBXZSBvbmx5IGFkZCBjb2x1bW5zIHRvIGBkaXNwbGF5ZWRDb2x1bW5zSWRzYCBpZiB3ZSBoYWQgcHJldmlvdXNseSB0cmFja2VkXG4gICAgICAgICAgLy8gYGNvbHVtbklkc2AgdG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlcy5cbiAgICAgICAgICBpZiAoY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IG5ld0NvbHVtbklkcyA9IGN1cnJlbnRBdmFpbGFibGVDb2x1bW5JZHM/LmZpbHRlcihcbiAgICAgICAgICAgICAgKGlkKSA9PiBjdXJyZW50Vmlld1N0YXRlLmNvbHVtbklkcy5pbmRleE9mKGlkKSA8IDAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbmV3Q29sdW1uSWRzID0gbmV3Q29sdW1uSWRzPy5maWx0ZXIoKGNvbHVtbklkKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbHVtbk9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIGNvbHVtbk9wdGlvbi5pZCA9PT0gY29sdW1uSWQgJiYgIWNvbHVtbk9wdGlvbi5pbml0aWFsSGlkZSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBBZGQgdGhlIGNvbHVtbiBJRHMgdGhhdCBub3cgZXhpc3QgdG8gdGhlIGRhdGEgbWFuYWdlciBzdGF0ZSBib3RoIGFzIGF2YWlsYWJsZVxuICAgICAgICAgICAgLy8gYW5kIGFzIHNob3duLlxuICAgICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMgPVxuICAgICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcy5jb25jYXQobmV3Q29sdW1uSWRzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQWRkIHRoZSBjb2x1bW4gSURzIHRoYXQgbm93IGV4aXN0IHRvIHRoZSBkYXRhIG1hbmFnZXIgc3RhdGUgYm90aCBhcyBhdmFpbGFibGVcbiAgICAgICAgICAvLyBhbmQgYXMgc2hvd24uXG4gICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMgPSBjdXJyZW50QXZhaWxhYmxlQ29sdW1uSWRzO1xuXG4gICAgICAgICAgY29uc3QgbmV3RGF0YVN0YXRlID0gZGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShuZXdEYXRhU3RhdGUsIHRoaXMuI2luaXRTb3VyY2UpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIGRhdGEgc3RhdGUgY2hhbmdlcyB0aGF0IHZpZXdzIGFuZCBvdGhlciBkYXRhIG1hbmFnZXIgZW50aXRpZXMgY2FuIHN1YnNjcmliZSB0by5cbiAgICogSXQgZXhjbHVkZXMgdXBkYXRlcyBvcmlnaW5hdGluZyBmcm9tIHRoZSBwcm92aWRlZCBzb3VyY2UuIFRoaXMgYWxsb3dzIHN1YnNjcmliZXJzIHRvIG9ubHkgcmVzcG9uZCB0b1xuICAgKiBjaGFuZ2VzIHRoZXkgZGlkIG5vdCBjcmVhdGUgYW5kIGhlbHBzIHByZXZlbnQgaW5maW5pdGUgbG9vcHMgb2YgdXBkYXRlcyBhbmQgcmVzcG9uc2VzLlxuICAgKiBAcGFyYW0gc291cmNlSWQgVGhlIElEIG9mIHRoZSBlbnRpdHkgc3Vic2NyaWJpbmcgdG8gZGF0YSBzdGF0ZSB1cGRhdGVzLiBUaGlzIGNhbiBiZSBhbnkgdmFsdWUgeW91IGNob29zZVxuICAgKiBidXQgc2hvdWxkIGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlciBpbnN0YW5jZSBhbmQgc2hvdWxkIGFsc28gYmUgdXNlZCB3aGVuIHRoYXQgZW50aXR5IHVwZGF0ZXMgdGhlIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIGdldERhdGFTdGF0ZVVwZGF0ZXMoXG4gICAgc291cmNlSWQ6IHN0cmluZyxcbiAgICB1cGRhdGVGaWx0ZXI/OiBTa3lEYXRhTWFuYWdlclN0YXRlVXBkYXRlRmlsdGVyQXJncyxcbiAgKTogT2JzZXJ2YWJsZTxTa3lEYXRhTWFuYWdlclN0YXRlPiB7XG4gICAgLy8gZmlsdGVyIG91dCBldmVudHMgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlIGFuZCBlbWl0IGp1c3QgdGhlIGRhdGFTdGF0ZVxuICAgIGlmICh1cGRhdGVGaWx0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLiNkYXRhU3RhdGVDaGFuZ2UucGlwZShcbiAgICAgICAgZmlsdGVyKChzdGF0ZUNoYW5nZSkgPT4gc291cmNlSWQgIT09IHN0YXRlQ2hhbmdlLnNvdXJjZSksXG4gICAgICAgIG1hcCgoc3RhdGVDaGFuZ2UpID0+IHN0YXRlQ2hhbmdlLmRhdGFTdGF0ZSksXG4gICAgICAgIHVwZGF0ZUZpbHRlci5jb21wYXJhdG9yXG4gICAgICAgICAgPyBkaXN0aW5jdFVudGlsQ2hhbmdlZCh1cGRhdGVGaWx0ZXIuY29tcGFyYXRvcilcbiAgICAgICAgICA6IGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAgICAgICB0aGlzLiNnZXREZWZhdWx0U3RhdGVDb21wYXJhdG9yKFxuICAgICAgICAgICAgICAgIHVwZGF0ZUZpbHRlci5wcm9wZXJ0aWVzIGFzIChrZXlvZiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucylbXSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy4jZGF0YVN0YXRlQ2hhbmdlLnBpcGUoXG4gICAgICAgIGZpbHRlcigoc3RhdGVDaGFuZ2UpID0+IHNvdXJjZUlkICE9PSBzdGF0ZUNoYW5nZS5zb3VyY2UpLFxuICAgICAgICBtYXAoKHN0YXRlQ2hhbmdlKSA9PiBzdGF0ZUNoYW5nZS5kYXRhU3RhdGUpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGF0YSBzdGF0ZSBhbmQgZW1pdHMgYSBuZXcgdmFsdWUgdG8gZW50aXRpZXMgc3Vic2NyaWJlZCB0byBkYXRhIHN0YXRlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBzdGF0ZSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlclN0YXRlYCB2YWx1ZS5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHVwZGF0aW5nIHRoZSBzdGF0ZS4gVGhpcyBjYW4gYmUgYW55IHZhbHVlIHlvdSBjaG9vc2UsXG4gICAqIGJ1dCBzaG91bGQgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyIGluc3RhbmNlIGFuZCBzaG91bGQgYWxzbyBiZSB1c2VkIHdoZW4gdGhhdCBlbnRpdHlcbiAgICogc3Vic2NyaWJlcyB0byBzdGF0ZSBjaGFuZ2VzIGZyb20gYGdldERhdGFTdGF0ZVVwZGF0ZXNgLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZURhdGFTdGF0ZShzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSwgc291cmNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1N0YXRlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoc3RhdGUuZ2V0U3RhdGVPcHRpb25zKCkpO1xuICAgIGNvbnN0IG5ld1N0YXRlQ2hhbmdlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGVDaGFuZ2UobmV3U3RhdGUsIHNvdXJjZUlkKTtcblxuICAgIHRoaXMuI2RhdGFTdGF0ZUNoYW5nZS5uZXh0KG5ld1N0YXRlQ2hhbmdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgb2YgZGF0YSBzdW1tYXJ5IGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqIEl0IGV4Y2x1ZGVzIHVwZGF0ZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlLiBUaGlzIGFsbG93cyBzdWJzY3JpYmVycyB0byBvbmx5IHJlc3BvbmQgdG9cbiAgICogY2hhbmdlcyB0aGV5IGRpZCBub3QgY3JlYXRlIGFuZCBoZWxwcyBwcmV2ZW50IGluZmluaXRlIGxvb3BzIG9mIHVwZGF0ZXMgYW5kIHJlc3BvbnNlcy5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHN1YnNjcmliaW5nIHRvIGRhdGEgc3VtbWFyeSB1cGRhdGVzLiBUaGlzIGNhbiBiZSBhbnkgdmFsdWUgeW91IGNob29zZVxuICAgKiBidXQgc2hvdWxkIGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlciBpbnN0YW5jZSBhbmQgc2hvdWxkIGFsc28gYmUgdXNlZCB3aGVuIHRoYXQgZW50aXR5IHVwZGF0ZXMgdGhlIHN1bW1hcnkuXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YVN1bW1hcnlVcGRhdGVzKFxuICAgIHNvdXJjZUlkOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8U2t5RGF0YU1hbmFnZXJTdW1tYXJ5PiB7XG4gICAgcmV0dXJuIHRoaXMuI2RhdGFTdW1tYXJ5LnBpcGUoXG4gICAgICBmaWx0ZXIoKHN1bW1hcnlDaGFuZ2UpID0+IHNvdXJjZUlkICE9PSBzdW1tYXJ5Q2hhbmdlLnNvdXJjZSksXG4gICAgICBtYXAoKHN1bW1hcnlDaGFuZ2UpID0+IHN1bW1hcnlDaGFuZ2UuZGF0YVN1bW1hcnkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGF0YSBzdW1tYXJ5IGFuZCBlbWl0cyBhIG5ldyB2YWx1ZSB0byBlbnRpdGllcyBzdWJzY3JpYmVkIHRvIGRhdGEgc3VtbWFyeSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gc3VtbWFyeSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlclN1bW1hcnlgIHZhbHVlLlxuICAgKiBAcGFyYW0gc291cmNlSWQgVGhlIElEIG9mIHRoZSBlbnRpdHkgdXBkYXRpbmcgdGhlIHN1bW1hcnkuIFRoaXMgY2FuIGJlIGFueSB2YWx1ZSB5b3UgY2hvb3NlLFxuICAgKiBidXQgc2hvdWxkIGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlciBpbnN0YW5jZSBhbmQgc2hvdWxkIGFsc28gYmUgdXNlZCB3aGVuIHRoYXQgZW50aXR5XG4gICAqIHN1YnNjcmliZXMgdG8gc3VtbWFyeSBjaGFuZ2VzIGZyb20gYGdldERhdGFTdW1tYXJ5VXBkYXRlc2AuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRGF0YVN1bW1hcnkoXG4gICAgc3VtbWFyeTogU2t5RGF0YU1hbmFnZXJTdW1tYXJ5LFxuICAgIHNvdXJjZUlkOiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuI2RhdGFTdW1tYXJ5Lm5leHQoeyBkYXRhU3VtbWFyeTogc3VtbWFyeSwgc291cmNlOiBzb3VyY2VJZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGBTa3lEYXRhTWFuYWdlckNvbmZpZ2AuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudERhdGFNYW5hZ2VyQ29uZmlnKCk6IFNreURhdGFNYW5hZ2VyQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy4jZGF0YU1hbmFnZXJDb25maWcudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIGRhdGEgbWFuYWdlciBjb25maWcgY2hhbmdlcyB0aGF0IHZpZXdzIGFuZCBvdGhlciBkYXRhIG1hbmFnZXIgZW50aXRpZXMgY2FuIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHB1YmxpYyBnZXREYXRhTWFuYWdlckNvbmZpZ1VwZGF0ZXMoKTogT2JzZXJ2YWJsZTxTa3lEYXRhTWFuYWdlckNvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLiNkYXRhTWFuYWdlckNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkYXRhIG1hbmFnZXIgY29uZmlnIGFuZCBlbWl0cyBhIG5ldyB2YWx1ZSB0byBlbnRpdGllcyBzdWJzY3JpYmVkIHRvIGRhdGEgY29uZmlnIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlckNvbmZpZ2AgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRGF0YU1hbmFnZXJDb25maWcodmFsdWU6IFNreURhdGFNYW5hZ2VyQ29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy4jZGF0YU1hbmFnZXJDb25maWcubmV4dCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIGRhdGEgdmlldyBjb25maWcgY2hhbmdlcyB0aGF0IHZpZXdzIGFuZCBvdGhlciBkYXRhIG1hbmFnZXIgZW50aXRpZXMgY2FuIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHB1YmxpYyBnZXREYXRhVmlld3NVcGRhdGVzKCk6IE9ic2VydmFibGU8U2t5RGF0YVZpZXdDb25maWdbXT4ge1xuICAgIHJldHVybiB0aGlzLiN2aWV3cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgb2YgdGhlIGFjdGl2ZSB2aWV3IElEIHRoYXQgdmlld3MgYW5kIG90aGVyIGRhdGEgbWFuYWdlciBlbnRpdGllcyBjYW4gc3Vic2NyaWJlIHRvLlxuICAgKi9cbiAgcHVibGljIGdldEFjdGl2ZVZpZXdJZFVwZGF0ZXMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy4jYWN0aXZlVmlld0lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGFjdGl2ZSB2aWV3IElELiBUaGUgZGF0YSBtYW5hZ2VyIGNoYW5nZXMgdGhlIGRpc3BsYXllZCB2aWV3LlxuICAgKiBAcGFyYW0gaWQgVGhlIG5ldyBhY3RpdmUgdmlldyBJRC5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVWaWV3SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2FjdGl2ZVZpZXdJZC5uZXh0KGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgU2t5RGF0YVZpZXdDb25maWdgIGZvciB0aGUgZ2l2ZW4gdmlldyBJRC5cbiAgICogQHBhcmFtIHZpZXdJZCBUaGUgSUQgb2YgdGhlIHZpZXcgY29uZmlnIHRvIGdldC5cbiAgICovXG4gIHB1YmxpYyBnZXRWaWV3QnlJZCh2aWV3SWQ6IHN0cmluZyk6IFNreURhdGFWaWV3Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjdXJyZW50Vmlld3M6IFNreURhdGFWaWV3Q29uZmlnW10gPSB0aGlzLiN2aWV3cy52YWx1ZTtcbiAgICBjb25zdCB2aWV3Q29uZmlnOiBTa3lEYXRhVmlld0NvbmZpZyB8IHVuZGVmaW5lZCA9IGN1cnJlbnRWaWV3cy5maW5kKFxuICAgICAgKHZpZXcpID0+IHZpZXcuaWQgPT09IHZpZXdJZCxcbiAgICApO1xuXG4gICAgcmV0dXJuIHZpZXdDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZ2l2ZW4gdmlldyBjb25maWcuIFRoZSByZWdpc3RlcmVkIHZpZXcgd2l0aCB0aGUgc2FtZSBJRCBpcyB1cGRhdGVkIHRvIHRoZVxuICAgKiBwcm92aWRlZCBjb25maWcsIHNvIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXkgY2hhbmdlZC4gSWYgdGhlXG4gICAqIHZpZXcgd2FzIG5vdCBpbml0aWFsaXplZCBhbHJlYWR5LCBubyB1cGRhdGUgaGFwcGVucy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIG5ldyBgU2t5RGF0YVZpZXdDb25maWdgIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlVmlld0NvbmZpZyh2aWV3OiBTa3lEYXRhVmlld0NvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMuI3ZpZXdzLnZhbHVlO1xuICAgIGNvbnN0IGV4aXN0aW5nVmlld0luZGV4ID0gY3VycmVudFZpZXdzLmZpbmRJbmRleChcbiAgICAgIChjdXJyZW50VmlldykgPT4gY3VycmVudFZpZXcuaWQgPT09IHZpZXcuaWQsXG4gICAgKTtcblxuICAgIGlmIChleGlzdGluZ1ZpZXdJbmRleCA9PT0gLTEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0EgdmlldyB3aXRoIHRoZSBpZCB7aWR9IGRvZXMgbm90IGV4aXN0LicsIHZpZXcuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50Vmlld3NbZXhpc3RpbmdWaWV3SW5kZXhdID0gdmlldztcbiAgICAgIHRoaXMuI3ZpZXdzLm5leHQoY3VycmVudFZpZXdzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0Vmlld2tlZXBlckNsYXNzZXModmlld0lkOiBzdHJpbmcsIGNsYXNzZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld2tlZXBlckNsYXNzZXMgPSB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnZhbHVlO1xuICAgIHZpZXdrZWVwZXJDbGFzc2VzW3ZpZXdJZF0gPSBjbGFzc2VzO1xuXG4gICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5uZXh0KHZpZXdrZWVwZXJDbGFzc2VzKTtcbiAgfVxuXG4gICNmaWx0ZXJEYXRhU3RhdGVQcm9wZXJ0aWVzKFxuICAgIHN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlLFxuICAgIHByb3BlcnRpZXM6IChrZXlvZiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucylbXSB8IHVuZGVmaW5lZCxcbiAgKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIGNvbnN0IHN0YXRlUHJvcGVydGllcyA9IHN0YXRlLmdldFN0YXRlT3B0aW9ucygpO1xuICAgIGNvbnN0IGZpbHRlcmVkU3RhdGVQcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gICAgaWYgKHByb3BlcnRpZXMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICBpZiAocHJvcGVydHkgaW4gc3RhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgZmlsdGVyZWRTdGF0ZVByb3BlcnRpZXNbcHJvcGVydHldID0gc3RhdGVQcm9wZXJ0aWVzW3Byb3BlcnR5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZFN0YXRlUHJvcGVydGllcztcbiAgfVxuXG4gICNnZXREZWZhdWx0U3RhdGVDb21wYXJhdG9yKFxuICAgIHByb3BlcnRpZXM6IChrZXlvZiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucylbXSB8IHVuZGVmaW5lZCxcbiAgKTogKHN0YXRlMTogU2t5RGF0YU1hbmFnZXJTdGF0ZSwgc3RhdGUyOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgc3RhdGUxOiBTa3lEYXRhTWFuYWdlclN0YXRlLFxuICAgICAgc3RhdGUyOiBTa3lEYXRhTWFuYWdlclN0YXRlLFxuICAgICk6IGJvb2xlYW4gPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWRTdGF0ZTEgPSB0aGlzLiNmaWx0ZXJEYXRhU3RhdGVQcm9wZXJ0aWVzKFxuICAgICAgICBzdGF0ZTEsXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICApO1xuICAgICAgY29uc3QgZmlsdGVyZWRTdGF0ZTIgPSB0aGlzLiNmaWx0ZXJEYXRhU3RhdGVQcm9wZXJ0aWVzKFxuICAgICAgICBzdGF0ZTIsXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICApO1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkU3RhdGUxKSA9PT0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWRTdGF0ZTIpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, isStandalone, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyLogService } from '@skyux/core';\nimport { SkyCheckboxModule, SkyRadioModule, } from '@skyux/forms';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkyFilterModule, SkySortModule } from '@skyux/lists';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalLegacyService, SkyModalService, } from '@skyux/modals';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';\nimport { SkyDataManagerColumnPickerContext } from '../data-manager-column-picker/data-manager-column-picker-context';\nimport { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from '../data-manager-column-picker/data-manager-column-picker-providers';\nimport { SkyDataManagerColumnPickerService } from '../data-manager-column-picker/data-manager-column-picker.service';\nimport { SkyDataManagerFilterModalContext } from '../data-manager-filter-context';\nimport { SkyDataManagerService } from '../data-manager.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@skyux/forms\";\nimport * as i3 from \"@skyux/i18n\";\nimport * as i4 from \"@skyux/icon\";\nimport * as i5 from \"@skyux/lists\";\nimport * as i6 from \"@skyux/lookup\";\nimport * as i7 from \"@skyux/layout\";\n/**\n * Renders a `sky-toolbar` with the contents specified by the active view's `SkyDataViewConfig`\n * and the `SkyDataManagerToolbarLeftItemComponent`, `SkyDataManagerToolbarRightItemComponent`,\n * and `SkyDataManagerToolbarSectionComponent` wrappers.\n */\nexport class SkyDataManagerToolbarComponent {\n get activeView() {\n return this.#_activeView;\n }\n set activeView(value) {\n this.#_activeView = value;\n this.#changeDetector.markForCheck();\n }\n get dataManagerConfig() {\n return this.#_dataManagerConfig;\n }\n set dataManagerConfig(value) {\n this.#_dataManagerConfig = value;\n this.#changeDetector.markForCheck();\n }\n get dataState() {\n return this.#_dataState;\n }\n set dataState(value) {\n this.#_dataState = value;\n if (value) {\n this.#dataManagerService.updateDataState(value, this.#_source);\n }\n }\n get views() {\n return this.#_views;\n }\n set views(value) {\n this.#_views = value;\n this.#changeDetector.markForCheck();\n }\n #logger = inject(SkyLogService, { optional: true });\n #ngUnsubscribe = new Subject();\n // the source to provide for data state changes\n #_source = 'toolbar';\n #_activeView;\n #_dataManagerConfig;\n #_dataState;\n #_views = [];\n #changeDetector = inject(ChangeDetectorRef);\n #columnPickerService = inject(SkyDataManagerColumnPickerService);\n #dataManagerService = inject(SkyDataManagerService);\n #modalService = inject(SkyModalService);\n ngOnInit() {\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n /* istanbul ignore else */\n if (activeViewId) {\n this.activeView = this.#dataManagerService.getViewById(activeViewId);\n this.#changeDetector.markForCheck();\n }\n });\n this.#dataManagerService\n .getDataViewsUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((views) => {\n this.views = views;\n if (this.activeView) {\n this.activeView = this.#dataManagerService.getViewById(this.activeView.id);\n }\n this.#changeDetector.markForCheck();\n });\n this.#dataManagerService\n .getDataStateUpdates(this.#_source)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((dataState) => {\n this.#_dataState = dataState;\n this.onlyShowSelected = dataState.onlyShowSelected;\n this.#changeDetector.markForCheck();\n });\n this.#dataManagerService\n .getDataManagerConfigUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((config) => {\n this.dataManagerConfig = config;\n });\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n sortSelected(sortOption) {\n if (this.dataState) {\n this.dataState.activeSortOption = sortOption;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n onViewChange(viewId) {\n this.#dataManagerService.updateActiveViewId(viewId);\n }\n searchApplied(text) {\n if (this.dataState) {\n this.dataState.searchText = text;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n filterButtonClicked() {\n const context = new SkyDataManagerFilterModalContext();\n const filterModal = this.dataManagerConfig && this.dataManagerConfig.filterModalComponent;\n context.filterData = this.dataState?.filterData;\n const options = {\n providers: [\n { provide: SkyDataManagerFilterModalContext, useValue: context },\n ],\n size: 'large',\n };\n if (filterModal) {\n if (!(this.#modalService instanceof SkyModalLegacyService) &&\n !isStandalone(filterModal)) {\n this.#logger?.deprecated('SkyDataManagerConfig.filterModalComponent not standalone', {\n deprecationMajorVersion: 9,\n replacementRecommendation: `The SkyDataManagerConfig.filterModalComponent must be a standalone component in order to receive the right dependency injector context.`,\n });\n }\n const modalInstance = this.#modalService.open(filterModal, options);\n modalInstance.closed.subscribe((result) => {\n if (this.dataState && result.reason === 'save') {\n this.dataState.filterData = result.data;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n });\n }\n }\n openColumnPicker() {\n if (this.dataState && this.activeView && this.activeView.columnOptions) {\n const viewState = this.dataState.getViewStateById(this.activeView.id);\n if (viewState) {\n const context = new SkyDataManagerColumnPickerContext(this.activeView.columnOptions, viewState.displayedColumnIds);\n if (this.activeView.columnPickerSortStrategy) {\n context.columnPickerSortStrategy =\n this.activeView.columnPickerSortStrategy;\n }\n const options = {\n providers: [\n SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS,\n {\n provide: SkyDataManagerColumnPickerContext,\n useValue: context,\n },\n ],\n };\n const modalInstance = this.#modalService.open(this.#columnPickerService.getComponentType(), options);\n modalInstance.closed.subscribe((result) => {\n if (result.reason === 'save') {\n const displayedColumnIds = result.data.map((col) => col.id);\n viewState.displayedColumnIds = displayedColumnIds;\n if (this.dataState && this.activeView) {\n this.dataState = this.dataState.addOrUpdateView(this.activeView.id, viewState);\n }\n }\n });\n }\n }\n }\n selectAll() {\n /* istanbul ignore else */\n if (this.activeView?.onSelectAllClick) {\n this.activeView.onSelectAllClick();\n }\n }\n clearAll() {\n /* istanbul ignore else */\n if (this.activeView?.onClearAllClick) {\n this.activeView.onClearAllClick();\n }\n }\n onOnlyShowSelected(event) {\n if (this.dataState) {\n this.dataState.onlyShowSelected = !!event.checked;\n this.#dataManagerService.updateDataState(this.dataState, this.#_source);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyDataManagerToolbarComponent, isStandalone: true, selector: \"sky-data-manager-toolbar\", ngImport: i0, template: \"<div class=\\\"sky-data-manager-toolbar\\\">\\n <sky-toolbar [listDescriptor]=\\\"dataManagerConfig?.listDescriptor\\\">\\n <sky-toolbar-section>\\n <ng-content select=\\\"sky-data-manager-toolbar-primary-item\\\" />\\n\\n @if (activeView?.filterButtonEnabled) {\\n <sky-toolbar-item class=\\\"sky-data-manager-filter\\\">\\n <sky-filter-button\\n [showButtonText]=\\\"activeView?.showFilterButtonText\\\"\\n (filterButtonClick)=\\\"filterButtonClicked()\\\"\\n />\\n </sky-toolbar-item>\\n }\\n\\n @if (activeView?.sortEnabled) {\\n <sky-toolbar-item class=\\\"sky-data-manager-sort\\\">\\n <sky-sort [showButtonText]=\\\"activeView?.showSortButtonText\\\">\\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\\n <sky-sort-item\\n [active]=\\\"dataState?.activeSortOption?.id === item.id\\\"\\n (itemSelect)=\\\"sortSelected(item)\\\"\\n >\\n {{ item.label }}\\n </sky-sort-item>\\n }\\n </sky-sort>\\n </sky-toolbar-item>\\n }\\n\\n @if (activeView?.columnPickerEnabled) {\\n <sky-toolbar-item>\\n <button\\n class=\\\"sky-btn sky-btn-default sky-col-picker-btn\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n dataManagerConfig?.listDescriptor\\n ? ('skyux_data_manager_columns_button_aria_label'\\n | skyLibResources: dataManagerConfig?.listDescriptor)\\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\\n \\\"\\n [attr.title]=\\\"\\n 'skyux_data_manager_columns_button_title' | skyLibResources\\n \\\"\\n (click)=\\\"openColumnPicker()\\\"\\n >\\n <sky-icon iconName=\\\"layout-column-three\\\" />\\n <span class=\\\"sky-column-selector-action-btn-text\\\">\\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\\n </span>\\n </button>\\n </sky-toolbar-item>\\n }\\n\\n <ng-content select=\\\"sky-data-manager-toolbar-left-item\\\" />\\n\\n @if (activeView?.searchEnabled) {\\n <sky-toolbar-item class=\\\"sky-data-manager-search\\\">\\n <sky-search\\n [expandMode]=\\\"activeView?.searchExpandMode\\\"\\n [placeholderText]=\\\"activeView?.searchPlaceholderText\\\"\\n [searchText]=\\\"dataState?.searchText\\\"\\n (searchApply)=\\\"searchApplied($event)\\\"\\n />\\n </sky-toolbar-item>\\n }\\n\\n <sky-toolbar-view-actions>\\n <ng-content select=\\\"sky-data-manager-toolbar-right-item\\\" />\\n @if (activeView && views && views.length > 1) {\\n <sky-radio-group\\n class=\\\"sky-switch-icon-group\\\"\\n [ariaLabel]=\\\"'data view switcher'\\\"\\n [(ngModel)]=\\\"activeView.id\\\"\\n >\\n @for (view of views; track view.id) {\\n @if (view.iconName) {\\n <sky-radio\\n [attr.aria-label]=\\\"view.name\\\"\\n [iconName]=\\\"view.iconName\\\"\\n [value]=\\\"view.id\\\"\\n [label]=\\\"view.name\\\"\\n (change)=\\\"onViewChange(view.id)\\\"\\n />\\n } @else {\\n <sky-radio\\n [attr.aria-label]=\\\"view.name\\\"\\n [icon]=\\\"view.icon\\\"\\n [value]=\\\"view.id\\\"\\n [label]=\\\"view.name\\\"\\n (change)=\\\"onViewChange(view.id)\\\"\\n />\\n }\\n }\\n </sky-radio-group>\\n }\\n </sky-toolbar-view-actions>\\n </sky-toolbar-section>\\n <ng-content select=\\\"sky-data-manager-toolbar-section\\\" />\\n </sky-toolbar>\\n\\n @if (activeView?.multiselectToolbarEnabled) {\\n <sky-toolbar class=\\\"sky-data-manager-multiselect-toolbar\\\">\\n <sky-toolbar-section>\\n <sky-toolbar-item>\\n <button\\n class=\\\"sky-btn sky-btn-link sky-data-manager-select-all-btn\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n dataManagerConfig?.listDescriptor\\n ? ('skyux_data_manager_select_all_button_aria_label'\\n | skyLibResources: dataManagerConfig?.listDescriptor)\\n : undefined\\n \\\"\\n (click)=\\\"selectAll()\\\"\\n >\\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\\n </button>\\n </sky-toolbar-item>\\n <sky-toolbar-item>\\n <button\\n class=\\\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n dataManagerConfig?.listDescriptor\\n ? ('skyux_data_manager_clear_all_button_aria_label'\\n | skyLibResources: dataManagerConfig?.listDescriptor)\\n : undefined\\n \\\"\\n (click)=\\\"clearAll()\\\"\\n >\\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\\n </button>\\n </sky-toolbar-item>\\n <sky-toolbar-view-actions class=\\\"sky-data-manager-only-show-selected\\\">\\n <sky-checkbox\\n [checked]=\\\"onlyShowSelected\\\"\\n [label]=\\\"\\n dataManagerConfig?.listDescriptor\\n ? ('skyux_data_manager_show_selected_option_aria_label'\\n | skyLibResources: dataManagerConfig?.listDescriptor)\\n : undefined\\n \\\"\\n (change)=\\\"onOnlyShowSelected($event)\\\"\\n >\\n <sky-checkbox-label>\\n {{\\n 'skyux_data_manager_show_selected_option_title'\\n | skyLibResources\\n }}\\n </sky-checkbox-label>\\n </sky-checkbox>\\n </sky-toolbar-view-actions>\\n </sky-toolbar-section>\\n </sky-toolbar>\\n }\\n</div>\\n\", styles: [\":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: SkyCheckboxModule }, { kind: \"component\", type: i2.λ3, selector: \"sky-checkbox\", inputs: [\"label\", \"labelledBy\", \"id\", \"disabled\", \"tabindex\", \"name\", \"helpPopoverContent\", \"helpPopoverTitle\", \"icon\", \"iconName\", \"checkboxType\", \"checked\", \"indeterminate\", \"required\", \"labelText\", \"labelHidden\", \"hintText\", \"stacked\", \"helpKey\"], outputs: [\"change\", \"checkedChange\", \"disabledChange\", \"indeterminateChange\"] }, { kind: \"component\", type: i2.λ4, selector: \"sky-checkbox-label\" }, { kind: \"ngmodule\", type: SkyDataManagerResourcesModule }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i4.λ1, selector: \"sky-icon\", inputs: [\"icon\", \"iconName\", \"iconType\", \"size\", \"fixedWidth\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyFilterModule }, { kind: \"component\", type: i5.λ1, selector: \"sky-filter-button\", inputs: [\"filterButtonId\", \"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"active\", \"disabled\", \"showButtonText\"], outputs: [\"filterButtonClick\"] }, { kind: \"ngmodule\", type: SkyRadioModule }, { kind: \"component\", type: i2.λ13, selector: \"sky-radio\", inputs: [\"checked\", \"disabled\", \"id\", \"label\", \"labelledBy\", \"name\", \"tabindex\", \"value\", \"helpPopoverContent\", \"helpPopoverTitle\", \"icon\", \"iconName\", \"radioType\", \"labelText\", \"labelHidden\", \"hintText\", \"helpKey\"], outputs: [\"change\", \"checkedChange\", \"disabledChange\"] }, { kind: \"component\", type: i2.λ11, selector: \"sky-radio-group\", inputs: [\"ariaLabelledBy\", \"ariaLabel\", \"disabled\", \"headingLevel\", \"headingStyle\", \"name\", \"required\", \"stacked\", \"value\", \"tabIndex\", \"headingText\", \"headingHidden\", \"hintText\", \"helpPopoverContent\", \"helpPopoverTitle\", \"helpKey\"] }, { kind: \"ngmodule\", type: SkySearchModule }, { kind: \"component\", type: i6.SkySearchComponent, selector: \"sky-search\", inputs: [\"ariaLabel\", \"ariaLabelledBy\", \"searchText\", \"expandMode\", \"debounceTime\", \"disabled\", \"placeholderText\"], outputs: [\"searchApply\", \"searchChange\", \"searchClear\"] }, { kind: \"ngmodule\", type: SkySortModule }, { kind: \"component\", type: i5.λ14, selector: \"sky-sort\", inputs: [\"ariaLabel\", \"showButtonText\"] }, { kind: \"component\", type: i5.λ13, selector: \"sky-sort-item\", inputs: [\"active\"], outputs: [\"itemSelect\"] }, { kind: \"ngmodule\", type: SkyToolbarModule }, { kind: \"component\", type: i7.λ37, selector: \"sky-toolbar\", inputs: [\"listDescriptor\"] }, { kind: \"component\", type: i7.λ39, selector: \"sky-toolbar-item\" }, { kind: \"component\", type: i7.λ38, selector: \"sky-toolbar-section\" }, { kind: \"component\", type: i7.λ40, selector: \"sky-toolbar-view-actions\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-data-manager-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n FormsModule,\n SkyCheckboxModule,\n SkyDataManagerResourcesModule,\n SkyIconModule,\n SkyFilterModule,\n SkyRadioModule,\n SkySearchModule,\n SkySortModule,\n SkyToolbarModule,\n ], template: \"<div class=\\\"sky-data-manager-toolbar\\\">\\n <sky-toolbar [listDescriptor]=\\\"dataManagerConfig?.listDescriptor\\\">\\n <sky-toolbar-section>\\n <ng-content select=\\\"sky-data-manager-toolbar-primary-item\\\" />\\n\\n @if (activeView?.filterButtonEnabled) {\\n <sky-toolbar-item class=\\\"sky-data-manager-filter\\\">\\n <sky-filter-button\\n [showButtonText]=\\\"activeView?.showFilterButtonText\\\"\\n (filterButtonClick)=\\\"filterButtonClicked()\\\"\\n />\\n </sky-toolbar-item>\\n }\\n\\n @if (activeView?.sortEnabled) {\\n <sky-toolbar-item class=\\\"sky-data-manager-sort\\\">\\n <sky-sort [showButtonText]=\\\"activeView?.showSortButtonText\\\">\\n @for (item of dataManagerConfig?.sortOptions; track item.id) {\\n <sky-sort-item\\n [active]=\\\"dataState?.activeSortOption?.id === item.id\\\"\\n (itemSelect)=\\\"sortSelected(item)\\\"\\n >\\n {{ item.label }}\\n </sky-sort-item>\\n }\\n </sky-sort>\\n </sky-toolbar-item>\\n }\\n\\n @if (activeView?.columnPickerEnabled) {\\n <sky-toolbar-item>\\n <button\\n class=\\\"sky-btn sky-btn-default sky-col-picker-btn\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n dataManagerConfig?.listDescriptor\\n ? ('skyux_data_manager_columns_button_aria_label'\\n | skyLibResources: dataManagerConfig?.listDescriptor)\\n : ('skyux_data_manager_columns_button_title' | skyLibResources)\\n \\\"\\n [attr.title]=\\\"\\n 'skyux_data_manager_columns_button_title' | skyLibResources\\n \\\"\\n (click)=\\\"openColumnPicker()\\\"\\n >\\n <sky-icon iconName=\\\"layout-column-three\\\" />\\n <span class=\\\"sky-column-selector-action-btn-text\\\">\\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\\n </span>\\n </button>\\n </sky-toolbar-item>\\n }\\n\\n <ng-content select=\\\"sky-data-manager-toolbar-left-item\\\" />\\n\\n @if (activeView?.searchEnabled) {\\n <sky-toolbar-item class=\\\"sky-data-manager-search\\\">\\n <sky-search\\n [expandMode]=\\\"activeView?.searchExpandMode\\\"\\n [placeholderText]=\\\"activeView?.searchPlaceholderText\\\"\\n [searchText]=\\\"dataState?.searchText\\\"\\n (searchApply)=\\\"searchApplied($event)\\\"\\n />\\n </sky-toolbar-item>\\n }\\n\\n <sky-toolbar-view-actions>\\n <ng-content select=\\\"sky-data-manager-toolbar-right-item\\\" />\\n @if (activeView && views && views.length > 1) {\\n <sky-radio-group\\n class=\\\"sky-switch-icon-group\\\"\\n [ariaLabel]=\\\"'data view switcher'\\\"\\n [(ngModel)]=\\\"activeView.id\\\"\\n >\\n @for (view of views; track view.id) {\\n @if (view.iconName) {\\n <sky-radio\\n [attr.aria-label]=\\\"view.name\\\"\\n [iconName]=\\\"view.iconName\\\"\\n [value]=\\\"view.id\\\"\\n [label]=\\\"view.name\\\"\\n (change)=\\\"onViewChange(view.id)\\\"\\n />\\n } @else {\\n <sky-radio\\n [attr.aria-label]=\\\"view.name\\\"\\n [icon]=\\\"view.icon\\\"\\n [value]=\\\"view.id\\\"\\n [label]=\\\"view.name\\\"\\n (change)=\\\"onViewChange(view.id)\\\"\\n />\\n }\\n }\\n </sky-radio-group>\\n }\\n </sky-toolbar-view-actions>\\n </sky-toolbar-section>\\n <ng-content select=\\\"sky-data-manager-toolbar-section\\\" />\\n </sky-toolbar>\\n\\n @if (activeView?.multiselectToolbarEnabled) {\\n <sky-toolbar class=\\\"sky-data-manager-multiselect-toolbar\\\">\\n <sky-toolbar-section>\\n <sky-toolbar-item>\\n <button\\n class=\\\"sky-btn sky-btn-link sky-data-manager-select-all-btn\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n dataManagerConfig?.listDescriptor\\n ? ('skyux_data_manager_select_all_button_aria_label'\\n | skyLibResources: dataManagerConfig?.listDescriptor)\\n : undefined\\n \\\"\\n (click)=\\\"selectAll()\\\"\\n >\\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\\n </button>\\n </sky-toolbar-item>\\n <sky-toolbar-item>\\n <button\\n class=\\\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\\\"\\n type=\\\"button\\\"\\n [attr.aria-label]=\\\"\\n dataManagerConfig?.listDescriptor\\n ? ('skyux_data_manager_clear_all_button_aria_label'\\n | skyLibResources: dataManagerConfig?.listDescriptor)\\n : undefined\\n \\\"\\n (click)=\\\"clearAll()\\\"\\n >\\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\\n </button>\\n </sky-toolbar-item>\\n <sky-toolbar-view-actions class=\\\"sky-data-manager-only-show-selected\\\">\\n <sky-checkbox\\n [checked]=\\\"onlyShowSelected\\\"\\n [label]=\\\"\\n dataManagerConfig?.listDescriptor\\n ? ('skyux_data_manager_show_selected_option_aria_label'\\n | skyLibResources: dataManagerConfig?.listDescriptor)\\n : undefined\\n \\\"\\n (change)=\\\"onOnlyShowSelected($event)\\\"\\n >\\n <sky-checkbox-label>\\n {{\\n 'skyux_data_manager_show_selected_option_title'\\n | skyLibResources\\n }}\\n </sky-checkbox-label>\\n </sky-checkbox>\\n </sky-toolbar-view-actions>\\n </sky-toolbar-section>\\n </sky-toolbar>\\n }\\n</div>\\n\", styles: [\":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci10b29sYmFyL2RhdGEtbWFuYWdlci10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBR1QsTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFHTCxxQkFBcUIsRUFDckIsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8s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TSxTQUFTO1FBQ2QsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYiwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUF3QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7OEdBdE9VLDhCQUE4QjtrR0FBOUIsOEJBQThCLG9GQ2hFM0MsZzBMQTRKQSwrOEJEdkdJLFdBQVcsOFZBQ1gsaUJBQWlCLDBlQUNqQiw2QkFBNkIsdUdBQzdCLGFBQWEsK0tBQ2IsZUFBZSxrUEFDZixjQUFjLHVwQkFDZCxlQUFlLHVSQUNmLGFBQWEsK09BQ2IsZ0JBQWdCOzsyRkFHUCw4QkFBOEI7a0JBakIxQyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsNkJBQTZCO3dCQUM3QixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgaW5qZWN0LFxuICBpc1N0YW5kYWxvbmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5Q2hlY2tib3hDaGFuZ2UsXG4gIFNreUNoZWNrYm94TW9kdWxlLFxuICBTa3lSYWRpb01vZHVsZSxcbn0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5pbXBvcnQgeyBTa3lGaWx0ZXJNb2R1bGUsIFNreVNvcnRNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGlzdHMnO1xuaW1wb3J0IHsgU2t5U2VhcmNoTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5pbXBvcnQge1xuICBTa3lNb2RhbENsb3NlQXJncyxcbiAgU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlLFxuICBTa3lNb2RhbExlZ2FjeVNlcnZpY2UsXG4gIFNreU1vZGFsU2VydmljZSxcbn0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LWRhdGEtbWFuYWdlci1yZXNvdXJjZXMubW9kdWxlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29udGV4dCB9IGZyb20gJy4uL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLWNvbnRleHQnO1xuaW1wb3J0IHsgU0tZX0RBVEFfTUFOQUdFUl9DT0xVTU5fUElDS0VSX1BST1ZJREVSUyB9IGZyb20gJy4uL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlclNlcnZpY2UgfSBmcm9tICcuLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyRmlsdGVyTW9kYWxDb250ZXh0IH0gZnJvbSAnLi4vZGF0YS1tYW5hZ2VyLWZpbHRlci1jb250ZXh0JztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL2RhdGEtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyT3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9kYXRhLW1hbmFnZXItY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbiB9IGZyb20gJy4uL21vZGVscy9kYXRhLW1hbmFnZXItc29ydC1vcHRpb24nO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZSB9IGZyb20gJy4uL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS12aWV3LWNvbmZpZyc7XG5cbi8qKlxuICogUmVuZGVycyBhIGBza3ktdG9vbGJhcmAgd2l0aCB0aGUgY29udGVudHMgc3BlY2lmaWVkIGJ5IHRoZSBhY3RpdmUgdmlldydzIGBTa3lEYXRhVmlld0NvbmZpZ2BcbiAqIGFuZCB0aGUgYFNreURhdGFNYW5hZ2VyVG9vbGJhckxlZnRJdGVtQ29tcG9uZW50YCwgYFNreURhdGFNYW5hZ2VyVG9vbGJhclJpZ2h0SXRlbUNvbXBvbmVudGAsXG4gKiBhbmQgYFNreURhdGFNYW5hZ2VyVG9vbGJhclNlY3Rpb25Db21wb25lbnRgIHdyYXBwZXJzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1tYW5hZ2VyLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLW1hbmFnZXItdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreURhdGFNYW5hZ2VyUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5RmlsdGVyTW9kdWxlLFxuICAgIFNreVJhZGlvTW9kdWxlLFxuICAgIFNreVNlYXJjaE1vZHVsZSxcbiAgICBTa3lTb3J0TW9kdWxlLFxuICAgIFNreVRvb2xiYXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFNYW5hZ2VyVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgcHVibGljIGdldCBhY3RpdmVWaWV3KCk6IFNreURhdGFWaWV3Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2FjdGl2ZVZpZXc7XG4gIH1cblxuICBwdWJsaWMgc2V0IGFjdGl2ZVZpZXcodmFsdWU6IFNreURhdGFWaWV3Q29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FjdGl2ZVZpZXcgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YU1hbmFnZXJDb25maWcoKTogU2t5RGF0YU1hbmFnZXJDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfZGF0YU1hbmFnZXJDb25maWc7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRhdGFNYW5hZ2VyQ29uZmlnKHZhbHVlOiBTa3lEYXRhTWFuYWdlckNvbmZpZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kYXRhTWFuYWdlckNvbmZpZyA9IHZhbHVlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU3RhdGUoKTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19kYXRhU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRhdGFTdGF0ZSh2YWx1ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kYXRhU3RhdGUgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2RhdGFNYW5hZ2VyU2VydmljZS51cGRhdGVEYXRhU3RhdGUodmFsdWUsIHRoaXMuI19zb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlld3MoKTogU2t5RGF0YVZpZXdDb25maWdbXSB7XG4gICAgcmV0dXJuIHRoaXMuI192aWV3cztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmlld3ModmFsdWU6IFNreURhdGFWaWV3Q29uZmlnW10pIHtcbiAgICB0aGlzLiNfdmlld3MgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvbmx5U2hvd1NlbGVjdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIHJlYWRvbmx5ICNsb2dnZXIgPSBpbmplY3QoU2t5TG9nU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gdGhlIHNvdXJjZSB0byBwcm92aWRlIGZvciBkYXRhIHN0YXRlIGNoYW5nZXNcbiAgI19zb3VyY2UgPSAndG9vbGJhcic7XG4gICNfYWN0aXZlVmlldzogU2t5RGF0YVZpZXdDb25maWcgfCB1bmRlZmluZWQ7XG4gICNfZGF0YU1hbmFnZXJDb25maWc6IFNreURhdGFNYW5hZ2VyQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAjX2RhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSB8IHVuZGVmaW5lZDtcbiAgI192aWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IFtdO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNjb2x1bW5QaWNrZXJTZXJ2aWNlID0gaW5qZWN0KFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNkYXRhTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoU2t5RGF0YU1hbmFnZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI21vZGFsU2VydmljZSA9IGluamVjdChTa3lNb2RhbFNlcnZpY2UpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2VcbiAgICAgIC5nZXRBY3RpdmVWaWV3SWRVcGRhdGVzKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGl2ZVZpZXdJZCkgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoYWN0aXZlVmlld0lkKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlLmdldFZpZXdCeUlkKGFjdGl2ZVZpZXdJZCk7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YVZpZXdzVXBkYXRlcygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh2aWV3cykgPT4ge1xuICAgICAgICB0aGlzLnZpZXdzID0gdmlld3M7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2UuZ2V0Vmlld0J5SWQoXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcuaWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiNfc291cmNlKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YVN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuI19kYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgIHRoaXMub25seVNob3dTZWxlY3RlZCA9IGRhdGFTdGF0ZS5vbmx5U2hvd1NlbGVjdGVkO1xuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YU1hbmFnZXJDb25maWdVcGRhdGVzKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgICB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnID0gY29uZmlnO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNvcnRTZWxlY3RlZChzb3J0T3B0aW9uOiBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3RhdGUpIHtcbiAgICAgIHRoaXMuZGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSBzb3J0T3B0aW9uO1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlLnVwZGF0ZURhdGFTdGF0ZSh0aGlzLmRhdGFTdGF0ZSwgdGhpcy4jX3NvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uVmlld0NoYW5nZSh2aWV3SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU2VydmljZS51cGRhdGVBY3RpdmVWaWV3SWQodmlld0lkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBcHBsaWVkKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFTdGF0ZSkge1xuICAgICAgdGhpcy5kYXRhU3RhdGUuc2VhcmNoVGV4dCA9IHRleHQ7XG4gICAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2UudXBkYXRlRGF0YVN0YXRlKHRoaXMuZGF0YVN0YXRlLCB0aGlzLiNfc291cmNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IFNreURhdGFNYW5hZ2VyRmlsdGVyTW9kYWxDb250ZXh0KCk7XG4gICAgY29uc3QgZmlsdGVyTW9kYWwgPVxuICAgICAgdGhpcy5kYXRhTWFuYWdlckNvbmZpZyAmJiB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnLmZpbHRlck1vZGFsQ29tcG9uZW50O1xuXG4gICAgY29udGV4dC5maWx0ZXJEYXRhID0gdGhpcy5kYXRhU3RhdGU/LmZpbHRlckRhdGE7XG5cbiAgICBjb25zdCBvcHRpb25zOiBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2UgPSB7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBTa3lEYXRhTWFuYWdlckZpbHRlck1vZGFsQ29udGV4dCwgdXNlVmFsdWU6IGNvbnRleHQgfSxcbiAgICAgIF0sXG4gICAgICBzaXplOiAnbGFyZ2UnLFxuICAgIH07XG5cbiAgICBpZiAoZmlsdGVyTW9kYWwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgISh0aGlzLiNtb2RhbFNlcnZpY2UgaW5zdGFuY2VvZiBTa3lNb2RhbExlZ2FjeVNlcnZpY2UpICYmXG4gICAgICAgICFpc1N0YW5kYWxvbmUoZmlsdGVyTW9kYWwpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jbG9nZ2VyPy5kZXByZWNhdGVkKFxuICAgICAgICAgICdTa3lEYXRhTWFuYWdlckNvbmZpZy5maWx0ZXJNb2RhbENvbXBvbmVudCBub3Qgc3RhbmRhbG9uZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDksXG4gICAgICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOiBgVGhlIFNreURhdGFNYW5hZ2VyQ29uZmlnLmZpbHRlck1vZGFsQ29tcG9uZW50IG11c3QgYmUgYSBzdGFuZGFsb25lIGNvbXBvbmVudCBpbiBvcmRlciB0byByZWNlaXZlIHRoZSByaWdodCBkZXBlbmRlbmN5IGluamVjdG9yIGNvbnRleHQuYCxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgbW9kYWxJbnN0YW5jZSA9IHRoaXMuI21vZGFsU2VydmljZS5vcGVuKGZpbHRlck1vZGFsLCBvcHRpb25zKTtcblxuICAgICAgbW9kYWxJbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKChyZXN1bHQ6IFNreU1vZGFsQ2xvc2VBcmdzKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFTdGF0ZSAmJiByZXN1bHQucmVhc29uID09PSAnc2F2ZScpIHtcbiAgICAgICAgICB0aGlzLmRhdGFTdGF0ZS5maWx0ZXJEYXRhID0gcmVzdWx0LmRhdGE7XG4gICAgICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlLnVwZGF0ZURhdGFTdGF0ZShcbiAgICAgICAgICAgIHRoaXMuZGF0YVN0YXRlLFxuICAgICAgICAgICAgdGhpcy4jX3NvdXJjZSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlbkNvbHVtblBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3RhdGUgJiYgdGhpcy5hY3RpdmVWaWV3ICYmIHRoaXMuYWN0aXZlVmlldy5jb2x1bW5PcHRpb25zKSB7XG4gICAgICBjb25zdCB2aWV3U3RhdGUgPSB0aGlzLmRhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKHRoaXMuYWN0aXZlVmlldy5pZCk7XG4gICAgICBpZiAodmlld1N0YXRlKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb250ZXh0KFxuICAgICAgICAgIHRoaXMuYWN0aXZlVmlldy5jb2x1bW5PcHRpb25zLFxuICAgICAgICAgIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlVmlldy5jb2x1bW5QaWNrZXJTb3J0U3RyYXRlZ3kpIHtcbiAgICAgICAgICBjb250ZXh0LmNvbHVtblBpY2tlclNvcnRTdHJhdGVneSA9XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcuY29sdW1uUGlja2VyU29ydFN0cmF0ZWd5O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3B0aW9uczogU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlID0ge1xuICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgU0tZX0RBVEFfTUFOQUdFUl9DT0xVTU5fUElDS0VSX1BST1ZJREVSUyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvdmlkZTogU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb250ZXh0LFxuICAgICAgICAgICAgICB1c2VWYWx1ZTogY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBtb2RhbEluc3RhbmNlID0gdGhpcy4jbW9kYWxTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgdGhpcy4jY29sdW1uUGlja2VyU2VydmljZS5nZXRDb21wb25lbnRUeXBlKCksXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKTtcblxuICAgICAgICBtb2RhbEluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKHJlc3VsdDogU2t5TW9kYWxDbG9zZUFyZ3MpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnJlYXNvbiA9PT0gJ3NhdmUnKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5ZWRDb2x1bW5JZHMgPSByZXN1bHQuZGF0YS5tYXAoXG4gICAgICAgICAgICAgIChjb2w6IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyT3B0aW9uKSA9PiBjb2wuaWQsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzID0gZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YVN0YXRlICYmIHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgICB0aGlzLmRhdGFTdGF0ZSA9IHRoaXMuZGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXcuaWQsXG4gICAgICAgICAgICAgICAgdmlld1N0YXRlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXc/Lm9uU2VsZWN0QWxsQ2xpY2spIHtcbiAgICAgIHRoaXMuYWN0aXZlVmlldy5vblNlbGVjdEFsbENsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuYWN0aXZlVmlldz8ub25DbGVhckFsbENsaWNrKSB7XG4gICAgICB0aGlzLmFjdGl2ZVZpZXcub25DbGVhckFsbENsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uT25seVNob3dTZWxlY3RlZChldmVudDogU2t5Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3RhdGUpIHtcbiAgICAgIHRoaXMuZGF0YVN0YXRlLm9ubHlTaG93U2VsZWN0ZWQgPSAhIWV2ZW50LmNoZWNrZWQ7XG4gICAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2UudXBkYXRlRGF0YVN0YXRlKHRoaXMuZGF0YVN0YXRlLCB0aGlzLiNfc291cmNlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXJcIj5cbiAgPHNreS10b29sYmFyIFtsaXN0RGVzY3JpcHRvcl09XCJkYXRhTWFuYWdlckNvbmZpZz8ubGlzdERlc2NyaXB0b3JcIj5cbiAgICA8c2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1kYXRhLW1hbmFnZXItdG9vbGJhci1wcmltYXJ5LWl0ZW1cIiAvPlxuXG4gICAgICBAaWYgKGFjdGl2ZVZpZXc/LmZpbHRlckJ1dHRvbkVuYWJsZWQpIHtcbiAgICAgICAgPHNreS10b29sYmFyLWl0ZW0gY2xhc3M9XCJza3ktZGF0YS1tYW5hZ2VyLWZpbHRlclwiPlxuICAgICAgICAgIDxza3ktZmlsdGVyLWJ1dHRvblxuICAgICAgICAgICAgW3Nob3dCdXR0b25UZXh0XT1cImFjdGl2ZVZpZXc/LnNob3dGaWx0ZXJCdXR0b25UZXh0XCJcbiAgICAgICAgICAgIChmaWx0ZXJCdXR0b25DbGljayk9XCJmaWx0ZXJCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgIH1cblxuICAgICAgQGlmIChhY3RpdmVWaWV3Py5zb3J0RW5hYmxlZCkge1xuICAgICAgICA8c2t5LXRvb2xiYXItaXRlbSBjbGFzcz1cInNreS1kYXRhLW1hbmFnZXItc29ydFwiPlxuICAgICAgICAgIDxza3ktc29ydCBbc2hvd0J1dHRvblRleHRdPVwiYWN0aXZlVmlldz8uc2hvd1NvcnRCdXR0b25UZXh0XCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGRhdGFNYW5hZ2VyQ29uZmlnPy5zb3J0T3B0aW9uczsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgICAgICA8c2t5LXNvcnQtaXRlbVxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiZGF0YVN0YXRlPy5hY3RpdmVTb3J0T3B0aW9uPy5pZCA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgICAgICAgKGl0ZW1TZWxlY3QpPVwic29ydFNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9za3ktc29ydC1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2t5LXNvcnQ+XG4gICAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgIH1cblxuICAgICAgQGlmIChhY3RpdmVWaWV3Py5jb2x1bW5QaWNrZXJFbmFibGVkKSB7XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWNvbC1waWNrZXItYnRuXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X2RhdGFfbWFuYWdlcl9jb2x1bW5zX2J1dHRvbl9hcmlhX2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGRhdGFNYW5hZ2VyQ29uZmlnPy5saXN0RGVzY3JpcHRvcilcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfZGF0YV9tYW5hZ2VyX2NvbHVtbnNfYnV0dG9uX3RpdGxlJyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJcbiAgICAgICAgICAgICAgJ3NreXV4X2RhdGFfbWFuYWdlcl9jb2x1bW5zX2J1dHRvbl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlbkNvbHVtblBpY2tlcigpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2t5LWljb24gaWNvbk5hbWU9XCJsYXlvdXQtY29sdW1uLXRocmVlXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LWNvbHVtbi1zZWxlY3Rvci1hY3Rpb24tYnRuLXRleHRcIj5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2RhdGFfbWFuYWdlcl9jb2x1bW5zX2J1dHRvbl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgfVxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXItbGVmdC1pdGVtXCIgLz5cblxuICAgICAgQGlmIChhY3RpdmVWaWV3Py5zZWFyY2hFbmFibGVkKSB7XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtIGNsYXNzPVwic2t5LWRhdGEtbWFuYWdlci1zZWFyY2hcIj5cbiAgICAgICAgICA8c2t5LXNlYXJjaFxuICAgICAgICAgICAgW2V4cGFuZE1vZGVdPVwiYWN0aXZlVmlldz8uc2VhcmNoRXhwYW5kTW9kZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cImFjdGl2ZVZpZXc/LnNlYXJjaFBsYWNlaG9sZGVyVGV4dFwiXG4gICAgICAgICAgICBbc2VhcmNoVGV4dF09XCJkYXRhU3RhdGU/LnNlYXJjaFRleHRcIlxuICAgICAgICAgICAgKHNlYXJjaEFwcGx5KT1cInNlYXJjaEFwcGxpZWQoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgfVxuXG4gICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXItcmlnaHQtaXRlbVwiIC8+XG4gICAgICAgIEBpZiAoYWN0aXZlVmlldyAmJiB2aWV3cyAmJiB2aWV3cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgPHNreS1yYWRpby1ncm91cFxuICAgICAgICAgICAgY2xhc3M9XCJza3ktc3dpdGNoLWljb24tZ3JvdXBcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInZGF0YSB2aWV3IHN3aXRjaGVyJ1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFjdGl2ZVZpZXcuaWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKHZpZXcgb2Ygdmlld3M7IHRyYWNrIHZpZXcuaWQpIHtcbiAgICAgICAgICAgICAgQGlmICh2aWV3Lmljb25OYW1lKSB7XG4gICAgICAgICAgICAgICAgPHNreS1yYWRpb1xuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3Lm5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cInZpZXcuaWNvbk5hbWVcIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZpZXcuaWRcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInZpZXcubmFtZVwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uVmlld0NoYW5nZSh2aWV3LmlkKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHNreS1yYWRpb1xuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3Lm5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwidmlldy5pY29uXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2aWV3LmlkXCJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2aWV3Lm5hbWVcIlxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblZpZXdDaGFuZ2Uodmlldy5pZClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NreS1yYWRpby1ncm91cD5cbiAgICAgICAgfVxuICAgICAgPC9za3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1kYXRhLW1hbmFnZXItdG9vbGJhci1zZWN0aW9uXCIgLz5cbiAgPC9za3ktdG9vbGJhcj5cblxuICBAaWYgKGFjdGl2ZVZpZXc/Lm11bHRpc2VsZWN0VG9vbGJhckVuYWJsZWQpIHtcbiAgICA8c2t5LXRvb2xiYXIgY2xhc3M9XCJza3ktZGF0YS1tYW5hZ2VyLW11bHRpc2VsZWN0LXRvb2xiYXJcIj5cbiAgICAgIDxza3ktdG9vbGJhci1zZWN0aW9uPlxuICAgICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1kYXRhLW1hbmFnZXItc2VsZWN0LWFsbC1idG5cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICBkYXRhTWFuYWdlckNvbmZpZz8ubGlzdERlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICA/ICgnc2t5dXhfZGF0YV9tYW5hZ2VyX3NlbGVjdF9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnc2t5dXhfZGF0YV9tYW5hZ2VyX3NlbGVjdF9hbGxfYnV0dG9uX3RpdGxlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWRhdGEtbWFuYWdlci1jbGVhci1hbGwtYnRuXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X2RhdGFfbWFuYWdlcl9jbGVhcl9hbGxfYnV0dG9uX2FyaWFfbGFiZWwnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdza3l1eF9kYXRhX21hbmFnZXJfY2xlYXJfYWxsX2J1dHRvbl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zIGNsYXNzPVwic2t5LWRhdGEtbWFuYWdlci1vbmx5LXNob3ctc2VsZWN0ZWRcIj5cbiAgICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgICBbY2hlY2tlZF09XCJvbmx5U2hvd1NlbGVjdGVkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgZGF0YU1hbmFnZXJDb25maWc/Lmxpc3REZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X2RhdGFfbWFuYWdlcl9zaG93X3NlbGVjdGVkX29wdGlvbl9hcmlhX2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGRhdGFNYW5hZ2VyQ29uZmlnPy5saXN0RGVzY3JpcHRvcilcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25Pbmx5U2hvd1NlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktY2hlY2tib3gtbGFiZWw+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ3NreXV4X2RhdGFfbWFuYWdlcl9zaG93X3NlbGVjdGVkX29wdGlvbl90aXRsZSdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3NreS1jaGVja2JveC1sYWJlbD5cbiAgICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgPC9za3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICA8L3NreS10b29sYmFyLXNlY3Rpb24+XG4gICAgPC9za3ktdG9vbGJhcj5cbiAgfVxuPC9kaXY+XG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, } from '@angular/core';\nimport { SkyLiveAnnouncerService, SkyViewkeeperModule } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyBackToTopMessageType, SkyBackToTopModule, } from '@skyux/layout';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { SkyDataManagerService } from './data-manager.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/layout\";\nimport * as i2 from \"@skyux/core\";\nconst VIEWKEEPER_CLASSES_DEFAULT = ['.sky-data-manager-toolbar'];\n/**\n * The top-level data manager component. Provide `SkyDataManagerService` at this level.\n */\nexport class SkyDataManagerComponent {\n constructor() {\n this.backToTopController = new Subject();\n this.backToTopOptions = {\n buttonHidden: true,\n };\n this.#allViewkeeperClasses = {};\n this.#ngUnsubscribe = new Subject();\n this.#sourceId = 'dataManagerComponent';\n this.#_isInitialized = false;\n this.#_currentViewkeeperClasses = VIEWKEEPER_CLASSES_DEFAULT;\n this.#changeDetection = inject(ChangeDetectorRef);\n this.#dataManagerService = inject(SkyDataManagerService);\n this.#liveAnnouncer = inject(SkyLiveAnnouncerService);\n this.#resourceSvc = inject(SkyLibResourcesService);\n }\n get currentViewkeeperClasses() {\n return this.#_currentViewkeeperClasses;\n }\n set currentViewkeeperClasses(value) {\n this.#_currentViewkeeperClasses = [\n ...VIEWKEEPER_CLASSES_DEFAULT,\n ...(value || []),\n ];\n this.#changeDetection.markForCheck();\n }\n get isInitialized() {\n return this.#_isInitialized;\n }\n set isInitialized(value) {\n this.#_isInitialized = value;\n this.#changeDetection.markForCheck();\n }\n #activeViewId;\n #allViewkeeperClasses;\n #ngUnsubscribe;\n #sourceId;\n #dataState;\n #_isInitialized;\n #_currentViewkeeperClasses;\n #changeDetection;\n #dataManagerService;\n #liveAnnouncer;\n #resourceSvc;\n ngOnInit() {\n this.#dataManagerService\n .getDataStateUpdates(this.#sourceId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.isInitialized = true;\n this.#dataState = state;\n });\n this.#dataManagerService\n .getDataSummaryUpdates(this.#sourceId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((summary) => {\n const itemsSelected = this.#dataState?.selectedIds?.length || 0;\n const resourceString = `skyux_data_manager_status_update_${this.#dataState?.onlyShowSelected\n ? 'only_selected'\n : itemsSelected\n ? 'with_selections'\n : 'without_selections'}`;\n this.#announceState(resourceString, summary.itemsMatching, summary.totalItems, itemsSelected);\n });\n this.#dataManagerService.viewkeeperClasses\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((classes) => {\n this.#allViewkeeperClasses = classes;\n this.currentViewkeeperClasses = this.#activeViewId\n ? classes[this.#activeViewId]\n : undefined;\n });\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.#activeViewId = activeViewId;\n this.backToTopController.next({\n type: SkyBackToTopMessageType.BackToTop,\n });\n this.currentViewkeeperClasses =\n this.#allViewkeeperClasses[this.#activeViewId];\n });\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #announceState(resourceString, itemsMatching, totalItems, itemsSelected) {\n this.#resourceSvc\n .getString(resourceString, itemsMatching, totalItems, itemsSelected)\n .pipe(take(1))\n .subscribe((internationalizedString) => {\n this.#liveAnnouncer.announce(internationalizedString);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyDataManagerComponent, isStandalone: true, selector: \"sky-data-manager\", ngImport: i0, template: \"@if (isInitialized) {\\n <div\\n #dataManager\\n class=\\\"sky-data-manager\\\"\\n skyViewkeeperOmitShadow=\\\".ag-body-horizontal-scroll\\\"\\n [skyBackToTop]=\\\"backToTopOptions\\\"\\n [skyBackToTopMessageStream]=\\\"backToTopController\\\"\\n [skyViewkeeper]=\\\"currentViewkeeperClasses\\\"\\n >\\n <ng-content />\\n </div>\\n}\\n\", dependencies: [{ kind: \"ngmodule\", type: SkyBackToTopModule }, { kind: \"directive\", type: i1.λ7, selector: \"[skyBackToTop]\", inputs: [\"skyBackToTop\", \"skyBackToTopMessageStream\"] }, { kind: \"ngmodule\", type: SkyViewkeeperModule }, { kind: \"directive\", type: i2.λ3, selector: \"[skyViewkeeper]\", inputs: [\"skyViewkeeper\", \"skyViewkeeperOmitShadow\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-data-manager', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyBackToTopModule, SkyViewkeeperModule], template: \"@if (isInitialized) {\\n <div\\n #dataManager\\n class=\\\"sky-data-manager\\\"\\n skyViewkeeperOmitShadow=\\\".ag-body-horizontal-scroll\\\"\\n [skyBackToTop]=\\\"backToTopOptions\\\"\\n [skyBackToTopMessageStream]=\\\"backToTopController\\\"\\n [skyViewkeeper]=\\\"currentViewkeeperClasses\\\"\\n >\\n <ng-content />\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBR1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixrQkFBa0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBSS9ELE1BQU0sMEJBQTBCLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRWpFOztHQUVHO0FBT0gsTUFBTSxPQUFPLHVCQUF1QjtJQU5wQztRQTRCUyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztRQUV6RCxxQkFBZ0IsR0FBRztZQUN4QixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBR0YsMEJBQXFCLEdBQTZCLEVBQUUsQ0FBQztRQUNy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VSx1QkFBdUI7a0dBQXZCLHVCQUF1Qiw0RUNsQ3BDLHlVQVlBLDJDRG9CWSxrQkFBa0IscUpBQUUsbUJBQW1COzsyRkFFdEMsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMaXZlQW5ub3VuY2VyU2VydmljZSwgU2t5Vmlld2tlZXBlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQge1xuICBTa3lCYWNrVG9Ub3BNZXNzYWdlLFxuICBTa3lCYWNrVG9Ub3BNZXNzYWdlVHlwZSxcbiAgU2t5QmFja1RvVG9wTW9kdWxlLFxufSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL2RhdGEtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdW1tYXJ5IH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN1bW1hcnknO1xuXG5jb25zdCBWSUVXS0VFUEVSX0NMQVNTRVNfREVGQVVMVCA9IFsnLnNreS1kYXRhLW1hbmFnZXItdG9vbGJhciddO1xuXG4vKipcbiAqIFRoZSB0b3AtbGV2ZWwgZGF0YSBtYW5hZ2VyIGNvbXBvbmVudC4gUHJvdmlkZSBgU2t5RGF0YU1hbmFnZXJTZXJ2aWNlYCBhdCB0aGlzIGxldmVsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF0YS1tYW5hZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbWFuYWdlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5QmFja1RvVG9wTW9kdWxlLCBTa3lWaWV3a2VlcGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIHB1YmxpYyBnZXQgY3VycmVudFZpZXdrZWVwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX2N1cnJlbnRWaWV3a2VlcGVyQ2xhc3NlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3VycmVudFZpZXdrZWVwZXJDbGFzc2VzKHZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19jdXJyZW50Vmlld2tlZXBlckNsYXNzZXMgPSBbXG4gICAgICAuLi5WSUVXS0VFUEVSX0NMQVNTRVNfREVGQVVMVCxcbiAgICAgIC4uLih2YWx1ZSB8fCBbXSksXG4gICAgXTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rpb24ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pc0luaXRpYWxpemVkO1xuICB9XG5cbiAgcHVibGljIHNldCBpc0luaXRpYWxpemVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX2lzSW5pdGlhbGl6ZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rpb24ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgYmFja1RvVG9wQ29udHJvbGxlciA9IG5ldyBTdWJqZWN0PFNreUJhY2tUb1RvcE1lc3NhZ2U+KCk7XG5cbiAgcHVibGljIGJhY2tUb1RvcE9wdGlvbnMgPSB7XG4gICAgYnV0dG9uSGlkZGVuOiB0cnVlLFxuICB9O1xuXG4gICNhY3RpdmVWaWV3SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI2FsbFZpZXdrZWVwZXJDbGFzc2VzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjc291cmNlSWQgPSAnZGF0YU1hbmFnZXJDb21wb25lbnQnO1xuICAjZGF0YVN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlIHwgdW5kZWZpbmVkO1xuXG4gICNfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuICAjX2N1cnJlbnRWaWV3a2VlcGVyQ2xhc3NlcyA9IFZJRVdLRUVQRVJfQ0xBU1NFU19ERUZBVUxUO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3Rpb24gPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjZGF0YU1hbmFnZXJTZXJ2aWNlID0gaW5qZWN0KFNreURhdGFNYW5hZ2VyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNsaXZlQW5ub3VuY2VyID0gaW5qZWN0KFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3Jlc291cmNlU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2VcbiAgICAgIC5nZXREYXRhU3RhdGVVcGRhdGVzKHRoaXMuI3NvdXJjZUlkKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy4jZGF0YVN0YXRlID0gc3RhdGU7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU2VydmljZVxuICAgICAgLmdldERhdGFTdW1tYXJ5VXBkYXRlcyh0aGlzLiNzb3VyY2VJZClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN1bW1hcnk6IFNreURhdGFNYW5hZ2VyU3VtbWFyeSkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtc1NlbGVjdGVkID0gdGhpcy4jZGF0YVN0YXRlPy5zZWxlY3RlZElkcz8ubGVuZ3RoIHx8IDA7XG4gICAgICAgIGNvbnN0IHJlc291cmNlU3RyaW5nID0gYHNreXV4X2RhdGFfbWFuYWdlcl9zdGF0dXNfdXBkYXRlXyR7XG4gICAgICAgICAgdGhpcy4jZGF0YVN0YXRlPy5vbmx5U2hvd1NlbGVjdGVkXG4gICAgICAgICAgICA/ICdvbmx5X3NlbGVjdGVkJ1xuICAgICAgICAgICAgOiBpdGVtc1NlbGVjdGVkXG4gICAgICAgICAgICAgID8gJ3dpdGhfc2VsZWN0aW9ucydcbiAgICAgICAgICAgICAgOiAnd2l0aG91dF9zZWxlY3Rpb25zJ1xuICAgICAgICB9YDtcblxuICAgICAgICB0aGlzLiNhbm5vdW5jZVN0YXRlKFxuICAgICAgICAgIHJlc291cmNlU3RyaW5nLFxuICAgICAgICAgIHN1bW1hcnkuaXRlbXNNYXRjaGluZyxcbiAgICAgICAgICBzdW1tYXJ5LnRvdGFsSXRlbXMsXG4gICAgICAgICAgaXRlbXNTZWxlY3RlZCxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlLnZpZXdrZWVwZXJDbGFzc2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjbGFzc2VzKSA9PiB7XG4gICAgICAgIHRoaXMuI2FsbFZpZXdrZWVwZXJDbGFzc2VzID0gY2xhc3NlcztcbiAgICAgICAgdGhpcy5jdXJyZW50Vmlld2tlZXBlckNsYXNzZXMgPSB0aGlzLiNhY3RpdmVWaWV3SWRcbiAgICAgICAgICA/IGNsYXNzZXNbdGhpcy4jYWN0aXZlVmlld0lkXVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2VcbiAgICAgIC5nZXRBY3RpdmVWaWV3SWRVcGRhdGVzKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGl2ZVZpZXdJZCkgPT4ge1xuICAgICAgICB0aGlzLiNhY3RpdmVWaWV3SWQgPSBhY3RpdmVWaWV3SWQ7XG4gICAgICAgIHRoaXMuYmFja1RvVG9wQ29udHJvbGxlci5uZXh0KHtcbiAgICAgICAgICB0eXBlOiBTa3lCYWNrVG9Ub3BNZXNzYWdlVHlwZS5CYWNrVG9Ub3AsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3a2VlcGVyQ2xhc3NlcyA9XG4gICAgICAgICAgdGhpcy4jYWxsVmlld2tlZXBlckNsYXNzZXNbdGhpcy4jYWN0aXZlVmlld0lkXTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gICNhbm5vdW5jZVN0YXRlKFxuICAgIHJlc291cmNlU3RyaW5nOiBzdHJpbmcsXG4gICAgaXRlbXNNYXRjaGluZzogbnVtYmVyLFxuICAgIHRvdGFsSXRlbXM6IG51bWJlcixcbiAgICBpdGVtc1NlbGVjdGVkOiBudW1iZXIsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuI3Jlc291cmNlU3ZjXG4gICAgICAuZ2V0U3RyaW5nKHJlc291cmNlU3RyaW5nLCBpdGVtc01hdGNoaW5nLCB0b3RhbEl0ZW1zLCBpdGVtc1NlbGVjdGVkKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGludGVybmF0aW9uYWxpemVkU3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuI2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UoaW50ZXJuYXRpb25hbGl6ZWRTdHJpbmcpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAoaXNJbml0aWFsaXplZCkge1xuICA8ZGl2XG4gICAgI2RhdGFNYW5hZ2VyXG4gICAgY2xhc3M9XCJza3ktZGF0YS1tYW5hZ2VyXCJcbiAgICBza3lWaWV3a2VlcGVyT21pdFNoYWRvdz1cIi5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsXCJcbiAgICBbc2t5QmFja1RvVG9wXT1cImJhY2tUb1RvcE9wdGlvbnNcIlxuICAgIFtza3lCYWNrVG9Ub3BNZXNzYWdlU3RyZWFtXT1cImJhY2tUb1RvcENvbnRyb2xsZXJcIlxuICAgIFtza3lWaWV3a2VlcGVyXT1cImN1cnJlbnRWaWV3a2VlcGVyQ2xhc3Nlc1wiXG4gID5cbiAgICA8bmctY29udGVudCAvPlxuICA8L2Rpdj5cbn1cbiJdfQ==","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, inject, } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\nimport { SkyTextHighlightDirective } from '@skyux/indicators';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SkyDataManagerService } from './data-manager.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/core\";\nimport * as i2 from \"@skyux/indicators\";\n/**\n * A data view is rendered within a data manager component.\n * It can subscribe to data state changes from `SkyDataManagerService` and apply the filters,\n * search text, and more to the data it displays.\n */\nexport class SkyDataViewComponent {\n get dataViewId() {\n return this.viewId;\n }\n get isActive() {\n return this.#_isActive;\n }\n set isActive(value) {\n this.#_isActive = value;\n this.#changeDetector.markForCheck();\n }\n get textHighlight() {\n return this.#_textHighlight;\n }\n set textHighlight(value) {\n this.#_textHighlight = value;\n this.#textHighlight.skyHighlight = value;\n this.#changeDetector.markForCheck();\n }\n #_isActive = false;\n #_textHighlight;\n #ngUnsubscribe = new Subject();\n #currentState;\n #dataManagerService = inject(SkyDataManagerService);\n #changeDetector = inject(ChangeDetectorRef);\n #textHighlight = inject(SkyTextHighlightDirective, { self: true });\n ngOnInit() {\n this.#dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.isActive = this.viewId === activeViewId;\n });\n this.#dataManagerService\n .getDataViewsUpdates()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateSearchHighlight(this.#currentState);\n });\n /* istanbul ignore else */\n if (this.viewId) {\n this.#dataManagerService\n .getDataStateUpdates(this.viewId)\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.#currentState = state;\n this.#updateSearchHighlight(state);\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #updateSearchHighlight(state) {\n if (this.viewId) {\n const view = this.#dataManagerService.getViewById(this.viewId);\n if (view?.searchHighlightEnabled) {\n this.textHighlight = state?.searchText;\n }\n else if (this.textHighlight) {\n this.textHighlight = undefined;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyDataViewComponent, isStandalone: true, selector: \"sky-data-view\", inputs: { viewId: \"viewId\" }, host: { properties: { \"attr.data-view-id\": \"this.dataViewId\" } }, hostDirectives: [{ directive: i1.SkyResponsiveHostDirective }, { directive: i2.SkyTextHighlightDirective }], ngImport: i0, template: \"@if (isActive) {\\n <ng-content />\\n}\\n\", styles: [\":host{display:block}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataViewComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, selector: 'sky-data-view', changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [SkyResponsiveHostDirective, SkyTextHighlightDirective], template: \"@if (isActive) {\\n <ng-content />\\n}\\n\", styles: [\":host{display:block}\\n\"] }]\n }], propDecorators: { viewId: [{\n type: Input\n }], dataViewId: [{\n type: HostBinding,\n args: ['attr.data-view-id']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRy9EOzs7O0dBSUc7QUFlSCxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLElBQ1csVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFB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LEtBQUs7Z0JBSUssVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVJlc3BvbnNpdmVIb3N0RGlyZWN0aXZlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5VGV4dEhpZ2hsaWdodERpcmVjdGl2ZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL2RhdGEtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuXG4vKipcbiAqIEEgZGF0YSB2aWV3IGlzIHJlbmRlcmVkIHdpdGhpbiBhIGRhdGEgbWFuYWdlciBjb21wb25lbnQuXG4gKiBJdCBjYW4gc3Vic2NyaWJlIHRvIGRhdGEgc3RhdGUgY2hhbmdlcyBmcm9tIGBTa3lEYXRhTWFuYWdlclNlcnZpY2VgIGFuZCBhcHBseSB0aGUgZmlsdGVycyxcbiAqIHNlYXJjaCB0ZXh0LCBhbmQgbW9yZSB0byB0aGUgZGF0YSBpdCBkaXNwbGF5cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2t5LWRhdGEtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lSZXNwb25zaXZlSG9zdERpcmVjdGl2ZSwgU2t5VGV4dEhpZ2hsaWdodERpcmVjdGl2ZV0sXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHZpZXcuIFNlZSB0aGUgYFNreURhdGFWaWV3Q29uZmlnYCBpbnRlcmZhY2UuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHZpZXdJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXZpZXctaWQnKVxuICBwdWJsaWMgZ2V0IGRhdGFWaWV3SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52aWV3SWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNBY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlzQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX2lzQWN0aXZlID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRleHRIaWdobGlnaHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3RleHRIaWdobGlnaHQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHRleHRIaWdobGlnaHQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI190ZXh0SGlnaGxpZ2h0ID0gdmFsdWU7XG4gICAgdGhpcy4jdGV4dEhpZ2hsaWdodC5za3lIaWdobGlnaHQgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNfaXNBY3RpdmUgPSBmYWxzZTtcbiAgI190ZXh0SGlnaGxpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjY3VycmVudFN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlIHwgdW5kZWZpbmVkO1xuXG4gIHJlYWRvbmx5ICNkYXRhTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoU2t5RGF0YU1hbmFnZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI3RleHRIaWdobGlnaHQ6IFNreVRleHRIaWdobGlnaHREaXJlY3RpdmUgPSBpbmplY3QoXG4gICAgU2t5VGV4dEhpZ2hsaWdodERpcmVjdGl2ZSxcbiAgICB7IHNlbGY6IHRydWUgfSxcbiAgKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0QWN0aXZlVmlld0lkVXBkYXRlcygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhY3RpdmVWaWV3SWQpID0+IHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRoaXMudmlld0lkID09PSBhY3RpdmVWaWV3SWQ7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU2VydmljZVxuICAgICAgLmdldERhdGFWaWV3c1VwZGF0ZXMoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZVNlYXJjaEhpZ2hsaWdodCh0aGlzLiNjdXJyZW50U3RhdGUpO1xuICAgICAgfSk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnZpZXdJZCkge1xuICAgICAgdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAgIC5nZXREYXRhU3RhdGVVcGRhdGVzKHRoaXMudmlld0lkKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiB7XG4gICAgICAgICAgdGhpcy4jY3VycmVudFN0YXRlID0gc3RhdGU7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlU2VhcmNoSGlnaGxpZ2h0KHN0YXRlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gICN1cGRhdGVTZWFyY2hIaWdobGlnaHQoc3RhdGU/OiBTa3lEYXRhTWFuYWdlclN0YXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmlld0lkKSB7XG4gICAgICBjb25zdCB2aWV3ID0gdGhpcy4jZGF0YU1hbmFnZXJTZXJ2aWNlLmdldFZpZXdCeUlkKHRoaXMudmlld0lkKTtcblxuICAgICAgaWYgKHZpZXc/LnNlYXJjaEhpZ2hsaWdodEVuYWJsZWQpIHtcbiAgICAgICAgdGhpcy50ZXh0SGlnaGxpZ2h0ID0gc3RhdGU/LnNlYXJjaFRleHQ7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMudGV4dEhpZ2hsaWdodCkge1xuICAgICAgICB0aGlzLnRleHRIaWdobGlnaHQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKGlzQWN0aXZlKSB7XG4gIDxuZy1jb250ZW50IC8+XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, inject, } from '@angular/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\nimport { SkyRepeaterModule } from '@skyux/lists';\nimport { SkyModalInstance, SkyModalModule } from '@skyux/modals';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SkyDataManagerResourcesModule } from '../../shared/sky-data-manager-resources.module';\nimport { SkyDataManagerToolbarComponent } from '../data-manager-toolbar/data-manager-toolbar.component';\nimport { SkyDataManagerComponent } from '../data-manager.component';\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataViewComponent } from '../data-view.component';\nimport { SkyDataManagerColumnPickerSortStrategy } from '../models/data-manager-column-picker-sort-strategy';\nimport { SkyDataManagerState } from '../models/data-manager-state';\nimport { SkyDataManagerColumnPickerContext } from './data-manager-column-picker-context';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/i18n\";\nimport * as i2 from \"@skyux/modals\";\nimport * as i3 from \"@skyux/lists\";\nimport * as i4 from \"@skyux/indicators\";\n/**\n * @internal\n */\nexport class SkyDataManagerColumnPickerComponent {\n constructor() {\n this.columnData = [];\n this.displayedColumnData = [];\n this.viewConfig = {\n id: 'columnPicker',\n name: 'Column Picker',\n searchEnabled: true,\n searchExpandMode: 'fit',\n multiselectToolbarEnabled: true,\n onSelectAllClick: this.selectAll.bind(this),\n onClearAllClick: this.clearAll.bind(this),\n };\n this.isAnyDisplayedColumnSelected = false;\n this.#ngUnsubscribe = new Subject();\n this.#_dataState = new SkyDataManagerState({});\n this.context = inject(SkyDataManagerColumnPickerContext);\n this.dataManagerService = inject(SkyDataManagerService);\n this.instance = inject(SkyModalInstance);\n }\n get dataState() {\n return this.#_dataState;\n }\n set dataState(value) {\n this.#_dataState = value;\n this.updateData();\n }\n #ngUnsubscribe;\n #_dataState;\n ngOnInit() {\n this.dataManagerService.initDataManager({\n activeViewId: this.viewConfig.id,\n dataManagerConfig: {},\n defaultDataState: this.dataState,\n });\n this.dataManagerService.initDataView(this.viewConfig);\n this.columnData = this.#formatColumnOptions();\n this.dataManagerService\n .getDataStateUpdates('columnPicker')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((state) => {\n this.dataState = state;\n });\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n updateData() {\n this.displayedColumnData = this.searchColumns(this.columnData.filter((col) => !col.alwaysDisplayed));\n if (this.dataState.onlyShowSelected) {\n this.displayedColumnData = this.displayedColumnData.filter((col) => col.isSelected);\n }\n this.isAnyDisplayedColumnSelected = this.displayedColumnData.some((col) => col.isSelected);\n }\n searchColumns(columns) {\n let searchedColumns = columns;\n const searchText = this.dataState && this.dataState.searchText?.toUpperCase();\n if (searchText) {\n searchedColumns = columns.filter((item) => {\n for (const property in item) {\n if (Object.prototype.hasOwnProperty.call(item, property) &&\n (property === 'label' || property === 'description')) {\n const propertyText = item[property]?.toUpperCase();\n if (propertyText && propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n return false;\n });\n }\n return searchedColumns;\n }\n selectAll() {\n this.displayedColumnData.forEach((column) => (column.isSelected = true));\n this.updateData();\n }\n clearAll() {\n this.displayedColumnData.forEach((column) => (column.isSelected = false));\n this.updateData();\n }\n onIsSelectedChange() {\n this.updateData();\n }\n cancelChanges() {\n this.instance.cancel();\n }\n isSelected(id) {\n return (this.context.displayedColumnIds.findIndex((colId) => colId === id) !== -1);\n }\n applyChanges() {\n this.instance.save(this.columnData.filter((col) => col.isSelected || col.alwaysDisplayed));\n }\n #formatColumnOptions() {\n const allColumnOptions = this.context.columnOptions;\n const visibleColumnIds = this.context.displayedColumnIds;\n let formattedColumnOptions = [];\n const unselectedColumnOptions = [];\n for (const columnOption of allColumnOptions) {\n // format the column with the properties the column picker needs\n const colIndex = visibleColumnIds.indexOf(columnOption.id);\n const formattedColumn = {\n alwaysDisplayed: columnOption.alwaysDisplayed,\n id: columnOption.id,\n label: columnOption.label,\n description: columnOption.description,\n isSelected: colIndex !== -1,\n };\n // if column picker sorting is currently enabled sort columns by order displayed then alphabetical\n // else display column in order they were specified in the columnOptions\n if (this.context.columnPickerSortStrategy ===\n SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical) {\n if (formattedColumn.isSelected) {\n formattedColumnOptions[colIndex] = formattedColumn;\n }\n else {\n unselectedColumnOptions.push(formattedColumn);\n }\n }\n else {\n formattedColumnOptions.push(formattedColumn);\n }\n }\n // if column picker sorting is enabled, sort the columns that are not currently displayed\n // and add them after the currently displayed options\n if (this.context.columnPickerSortStrategy ===\n SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical) {\n unselectedColumnOptions.sort((col1, col2) => col1.label.localeCompare(col2.label));\n formattedColumnOptions = formattedColumnOptions.concat(unselectedColumnOptions);\n }\n return formattedColumnOptions;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerColumnPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyDataManagerColumnPickerComponent, isStandalone: true, selector: \"sky-data-manager-column-picker\", providers: [SkyDataManagerService], ngImport: i0, template: \"<sky-modal class=\\\"sky-data-manager-column-picker\\\">\\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 />\\n\\n <sky-data-view [viewId]=\\\"viewConfig.id\\\">\\n <sky-repeater expandMode=\\\"none\\\">\\n @for (column of displayedColumnData; track column.id) {\\n <sky-repeater-item\\n [selectable]=\\\"true\\\"\\n [(isSelected)]=\\\"column.isSelected\\\"\\n (isSelectedChange)=\\\"onIsSelectedChange()\\\"\\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 }\\n </sky-repeater>\\n </sky-data-view>\\n </sky-data-manager>\\n </sky-modal-content>\\n <sky-modal-footer>\\n @if (!isAnyDisplayedColumnSelected) {\\n <div class=\\\"sky-data-manager-column-picker-footer-stacked-indicator\\\">\\n <sky-status-indicator descriptionType=\\\"error\\\" indicatorType=\\\"danger\\\">\\n {{\\n 'skyux_data_manager_select_column_status_indicator_title'\\n | skyLibResources\\n }}\\n </sky-status-indicator>\\n </div>\\n }\\n <button\\n sky-cmp-id=\\\"apply-changes\\\"\\n class=\\\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\\\"\\n type=\\\"button\\\"\\n [disabled]=\\\"!isAnyDisplayedColumnSelected\\\"\\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 sky-data-manager-column-picker-cancel-btn\\\"\\n type=\\\"button\\\"\\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:not(.sky-theme-modern *){--sky-override-data-manager-column-picker-item-margin: 5px;--sky-override-data-manager-column-picker-footer-margin: 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-data-manager-column-picker{--sky-override-data-manager-column-picker-item-margin: 5px;--sky-override-data-manager-column-picker-footer-margin: 10px}.sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:var(--sky-override-data-manager-column-picker-item-margin, var(--sky-space-stacked-s))}.sky-data-manager-column-picker-footer-stacked-indicator{margin-bottom:var(--sky-override-data-manager-column-picker-footer-margin, var(--sky-space-gap-stacked_supplemental-xl))}\\n\"], dependencies: [{ kind: \"component\", type: SkyDataManagerComponent, selector: \"sky-data-manager\" }, { kind: \"ngmodule\", type: SkyDataManagerResourcesModule }, { kind: \"pipe\", type: i1.SkyLibResourcesPipe, name: \"skyLibResources\" }, { kind: \"component\", type: SkyDataManagerToolbarComponent, selector: \"sky-data-manager-toolbar\" }, { kind: \"component\", type: SkyDataViewComponent, selector: \"sky-data-view\", inputs: [\"viewId\"] }, { kind: \"ngmodule\", type: SkyModalModule }, { kind: \"component\", type: i2.λ5, selector: \"sky-modal\", inputs: [\"formErrors\", \"headingText\", \"helpKey\", \"helpPopoverContent\", \"helpPopoverTitle\", \"ariaRole\", \"tiledBody\", \"ariaDescribedBy\", \"ariaLabelledBy\", \"layout\"] }, { kind: \"component\", type: i2.λ2, selector: \"sky-modal-content\" }, { kind: \"component\", type: i2.λ3, selector: \"sky-modal-footer\" }, { kind: \"component\", type: i2.λ4, selector: \"sky-modal-header\" }, { kind: \"ngmodule\", type: SkyRepeaterModule }, { kind: \"component\", type: i3.λ11, selector: \"sky-repeater\", inputs: [\"activeIndex\", \"ariaLabel\", \"reorderable\", \"expandMode\"], outputs: [\"activeIndexChange\", \"orderChange\"] }, { kind: \"component\", type: i3.λ10, selector: \"sky-repeater-item\", inputs: [\"disabled\", \"itemName\", \"inlineFormConfig\", \"inlineFormTemplate\", \"isExpanded\", \"isSelected\", \"reorderable\", \"selectable\", \"showInlineForm\", \"tag\"], outputs: [\"collapse\", \"expand\", \"inlineFormClose\", \"isSelectedChange\"] }, { kind: \"component\", type: i3.λ8, selector: \"sky-repeater-item-content\" }, { kind: \"component\", type: i3.λ12, selector: \"sky-repeater-item-title\" }, { kind: \"ngmodule\", type: SkyStatusIndicatorModule }, { kind: \"component\", type: i4.λ10, selector: \"sky-status-indicator\", inputs: [\"indicatorType\", \"descriptionType\", \"customDescription\", \"helpPopoverContent\", \"helpPopoverTitle\", \"helpKey\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerColumnPickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-data-manager-column-picker', providers: [SkyDataManagerService], changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n SkyDataManagerComponent,\n SkyDataManagerResourcesModule,\n SkyDataManagerToolbarComponent,\n SkyDataViewComponent,\n SkyModalModule,\n SkyRepeaterModule,\n SkyStatusIndicatorModule,\n ], template: \"<sky-modal class=\\\"sky-data-manager-column-picker\\\">\\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 />\\n\\n <sky-data-view [viewId]=\\\"viewConfig.id\\\">\\n <sky-repeater expandMode=\\\"none\\\">\\n @for (column of displayedColumnData; track column.id) {\\n <sky-repeater-item\\n [selectable]=\\\"true\\\"\\n [(isSelected)]=\\\"column.isSelected\\\"\\n (isSelectedChange)=\\\"onIsSelectedChange()\\\"\\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 }\\n </sky-repeater>\\n </sky-data-view>\\n </sky-data-manager>\\n </sky-modal-content>\\n <sky-modal-footer>\\n @if (!isAnyDisplayedColumnSelected) {\\n <div class=\\\"sky-data-manager-column-picker-footer-stacked-indicator\\\">\\n <sky-status-indicator descriptionType=\\\"error\\\" indicatorType=\\\"danger\\\">\\n {{\\n 'skyux_data_manager_select_column_status_indicator_title'\\n | skyLibResources\\n }}\\n </sky-status-indicator>\\n </div>\\n }\\n <button\\n sky-cmp-id=\\\"apply-changes\\\"\\n class=\\\"sky-btn sky-btn-primary sky-data-manager-column-picker-apply-btn\\\"\\n type=\\\"button\\\"\\n [disabled]=\\\"!isAnyDisplayedColumnSelected\\\"\\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 sky-data-manager-column-picker-cancel-btn\\\"\\n type=\\\"button\\\"\\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:not(.sky-theme-modern *){--sky-override-data-manager-column-picker-item-margin: 5px;--sky-override-data-manager-column-picker-footer-margin: 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-data-manager-column-picker{--sky-override-data-manager-column-picker-item-margin: 5px;--sky-override-data-manager-column-picker-footer-margin: 10px}.sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:var(--sky-override-data-manager-column-picker-item-margin, var(--sky-space-stacked-s))}.sky-data-manager-column-picker-footer-stacked-indicator{margin-bottom:var(--sky-override-data-manager-column-picker-footer-margin, var(--sky-space-gap-stacked_supplemental-xl))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDL0YsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDeEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FB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QUFzQixHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FDcEQsdUJBQXVCLENBQ3hCLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDOzhHQTlLVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyw2RUFabkMsQ0FBQyxxQkFBcUIsQ0FBQywwQkN4Q3BDLHVrRUEwREEseXhCRGZJLHVCQUF1Qiw0REFDdkIsNkJBQTZCLHdHQUM3Qiw4QkFBOEIscUVBQzlCLG9CQUFvQiw2RUFDcEIsY0FBYyxvY0FDZCxpQkFBaUIsOG9CQUNqQix3QkFBd0I7OzJGQUdmLG1DQUFtQztrQkFoQi9DLFNBQVM7K0JBQ0UsZ0NBQWdDLGFBRy9CLENBQUMscUJBQXFCLENBQUMsbUJBQ2pCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7d0JBQzdCLDhCQUE4Qjt3QkFDOUIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsd0JBQXdCO3FCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5U3RhdHVzSW5kaWNhdG9yTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGlzdHMnO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSwgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9za3ktZGF0YS1tYW5hZ2VyLXJlc291cmNlcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS1tYW5hZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9kYXRhLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lEYXRhVmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGEtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItb3B0aW9uJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyU29ydFN0cmF0ZWd5IH0gZnJvbSAnLi4vbW9kZWxzL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLXNvcnQtc3RyYXRlZ3knO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZSB9IGZyb20gJy4uL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS12aWV3LWNvbmZpZyc7XG5cbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29udGV4dCB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItY29udGV4dCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmludGVyZmFjZSBDb2x1bW4gZXh0ZW5kcyBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlck9wdGlvbiB7XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1NreURhdGFNYW5hZ2VyU2VydmljZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgU2t5RGF0YU1hbmFnZXJDb21wb25lbnQsXG4gICAgU2t5RGF0YU1hbmFnZXJSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5RGF0YU1hbmFnZXJUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreURhdGFWaWV3Q29tcG9uZW50LFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIFNreVJlcGVhdGVyTW9kdWxlLFxuICAgIFNreVN0YXR1c0luZGljYXRvck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIHB1YmxpYyBnZXQgZGF0YVN0YXRlKCk6IFNreURhdGFNYW5hZ2VyU3RhdGUge1xuICAgIHJldHVybiB0aGlzLiNfZGF0YVN0YXRlO1xuICB9XG5cbiAgcHVibGljIHNldCBkYXRhU3RhdGUodmFsdWU6IFNreURhdGFNYW5hZ2VyU3RhdGUpIHtcbiAgICB0aGlzLiNfZGF0YVN0YXRlID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgY29sdW1uRGF0YTogQ29sdW1uW10gPSBbXTtcbiAgcHVibGljIGRpc3BsYXllZENvbHVtbkRhdGE6IENvbHVtbltdID0gW107XG4gIHB1YmxpYyB2aWV3Q29uZmlnOiBTa3lEYXRhVmlld0NvbmZpZyA9IHtcbiAgICBpZDogJ2NvbHVtblBpY2tlcicsXG4gICAgbmFtZTogJ0NvbHVtbiBQaWNrZXInLFxuICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXG4gICAgc2VhcmNoRXhwYW5kTW9kZTogJ2ZpdCcsXG4gICAgbXVsdGlzZWxlY3RUb29sYmFyRW5hYmxlZDogdHJ1ZSxcbiAgICBvblNlbGVjdEFsbENsaWNrOiB0aGlzLnNlbGVjdEFsbC5iaW5kKHRoaXMpLFxuICAgIG9uQ2xlYXJBbGxDbGljazogdGhpcy5jbGVhckFsbC5iaW5kKHRoaXMpLFxuICB9O1xuXG4gIHB1YmxpYyBpc0FueURpc3BsYXllZENvbHVtblNlbGVjdGVkID0gZmFsc2U7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfZGF0YVN0YXRlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoe30pO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb250ZXh0ID0gaW5qZWN0KFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29udGV4dCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRhTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoU2t5RGF0YU1hbmFnZXJTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluc3RhbmNlID0gaW5qZWN0KFNreU1vZGFsSW5zdGFuY2UpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFNYW5hZ2VyU2VydmljZS5pbml0RGF0YU1hbmFnZXIoe1xuICAgICAgYWN0aXZlVmlld0lkOiB0aGlzLnZpZXdDb25maWcuaWQsXG4gICAgICBkYXRhTWFuYWdlckNvbmZpZzoge30sXG4gICAgICBkZWZhdWx0RGF0YVN0YXRlOiB0aGlzLmRhdGFTdGF0ZSxcbiAgICB9KTtcbiAgICB0aGlzLmRhdGFNYW5hZ2VyU2VydmljZS5pbml0RGF0YVZpZXcodGhpcy52aWV3Q29uZmlnKTtcblxuICAgIHRoaXMuY29sdW1uRGF0YSA9IHRoaXMuI2Zvcm1hdENvbHVtbk9wdGlvbnMoKTtcblxuICAgIHRoaXMuZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcygnY29sdW1uUGlja2VyJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YVN0YXRlID0gc3RhdGU7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbkRhdGEgPSB0aGlzLnNlYXJjaENvbHVtbnMoXG4gICAgICB0aGlzLmNvbHVtbkRhdGEuZmlsdGVyKChjb2wpID0+ICFjb2wuYWx3YXlzRGlzcGxheWVkKSxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuZGF0YVN0YXRlLm9ubHlTaG93U2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uRGF0YSA9IHRoaXMuZGlzcGxheWVkQ29sdW1uRGF0YS5maWx0ZXIoXG4gICAgICAgIChjb2wpID0+IGNvbC5pc1NlbGVjdGVkLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzQW55RGlzcGxheWVkQ29sdW1uU2VsZWN0ZWQgPSB0aGlzLmRpc3BsYXllZENvbHVtbkRhdGEuc29tZShcbiAgICAgIChjb2wpID0+IGNvbC5pc1NlbGVjdGVkLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5bXSk6IENvbHVtbltdIHtcbiAgICBsZXQgc2VhcmNoZWRDb2x1bW5zID0gY29sdW1ucztcbiAgICBjb25zdCBzZWFyY2hUZXh0ID1cbiAgICAgIHRoaXMuZGF0YVN0YXRlICYmIHRoaXMuZGF0YVN0YXRlLnNlYXJjaFRleHQ/LnRvVXBwZXJDYXNlKCk7XG5cbiAgICBpZiAoc2VhcmNoVGV4dCkge1xuICAgICAgc2VhcmNoZWRDb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBpdGVtKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0ZW0sIHByb3BlcnR5KSAmJlxuICAgICAgICAgICAgKHByb3BlcnR5ID09PSAnbGFiZWwnIHx8IHByb3BlcnR5ID09PSAnZGVzY3JpcHRpb24nKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHlUZXh0ID0gaXRlbVtwcm9wZXJ0eV0/LnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICBpZiAocHJvcGVydHlUZXh0ICYmIHByb3BlcnR5VGV4dC5pbmRleE9mKHNlYXJjaFRleHQpID4gLTEpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzZWFyY2hlZENvbHVtbnM7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uRGF0YS5mb3JFYWNoKChjb2x1bW4pID0+IChjb2x1bW4uaXNTZWxlY3RlZCA9IHRydWUpKTtcbiAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbkRhdGEuZm9yRWFjaCgoY29sdW1uKSA9PiAoY29sdW1uLmlzU2VsZWN0ZWQgPSBmYWxzZSkpO1xuICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIG9uSXNTZWxlY3RlZENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zdGFuY2UuY2FuY2VsKCk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY29udGV4dC5kaXNwbGF5ZWRDb2x1bW5JZHMuZmluZEluZGV4KChjb2xJZCkgPT4gY29sSWQgPT09IGlkKSAhPT0gLTFcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFwcGx5Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmluc3RhbmNlLnNhdmUoXG4gICAgICB0aGlzLmNvbHVtbkRhdGEuZmlsdGVyKChjb2wpID0+IGNvbC5pc1NlbGVjdGVkIHx8IGNvbC5hbHdheXNEaXNwbGF5ZWQpLFxuICAgICk7XG4gIH1cblxuICAjZm9ybWF0Q29sdW1uT3B0aW9ucygpOiBDb2x1bW5bXSB7XG4gICAgY29uc3QgYWxsQ29sdW1uT3B0aW9ucyA9IHRoaXMuY29udGV4dC5jb2x1bW5PcHRpb25zO1xuICAgIGNvbnN0IHZpc2libGVDb2x1bW5JZHMgPSB0aGlzLmNvbnRleHQuZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgIGxldCBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zOiBDb2x1bW5bXSA9IFtdO1xuICAgIGNvbnN0IHVuc2VsZWN0ZWRDb2x1bW5PcHRpb25zOiBDb2x1bW5bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb2x1bW5PcHRpb24gb2YgYWxsQ29sdW1uT3B0aW9ucykge1xuICAgICAgLy8gZm9ybWF0IHRoZSBjb2x1bW4gd2l0aCB0aGUgcHJvcGVydGllcyB0aGUgY29sdW1uIHBpY2tlciBuZWVkc1xuICAgICAgY29uc3QgY29sSW5kZXggPSB2aXNpYmxlQ29sdW1uSWRzLmluZGV4T2YoY29sdW1uT3B0aW9uLmlkKTtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZENvbHVtbjogQ29sdW1uID0ge1xuICAgICAgICBhbHdheXNEaXNwbGF5ZWQ6IGNvbHVtbk9wdGlvbi5hbHdheXNEaXNwbGF5ZWQsXG4gICAgICAgIGlkOiBjb2x1bW5PcHRpb24uaWQsXG4gICAgICAgIGxhYmVsOiBjb2x1bW5PcHRpb24ubGFiZWwsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5PcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGNvbEluZGV4ICE9PSAtMSxcbiAgICAgIH07XG5cbiAgICAgIC8vIGlmIGNvbHVtbiBwaWNrZXIgc29ydGluZyBpcyBjdXJyZW50bHkgZW5hYmxlZCBzb3J0IGNvbHVtbnMgYnkgb3JkZXIgZGlzcGxheWVkIHRoZW4gYWxwaGFiZXRpY2FsXG4gICAgICAvLyBlbHNlIGRpc3BsYXkgY29sdW1uIGluIG9yZGVyIHRoZXkgd2VyZSBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbk9wdGlvbnNcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5jb250ZXh0LmNvbHVtblBpY2tlclNvcnRTdHJhdGVneSA9PT1cbiAgICAgICAgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJTb3J0U3RyYXRlZ3kuU2VsZWN0ZWRUaGVuQWxwaGFiZXRpY2FsXG4gICAgICApIHtcbiAgICAgICAgaWYgKGZvcm1hdHRlZENvbHVtbi5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgZm9ybWF0dGVkQ29sdW1uT3B0aW9uc1tjb2xJbmRleF0gPSBmb3JtYXR0ZWRDb2x1bW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdW5zZWxlY3RlZENvbHVtbk9wdGlvbnMucHVzaChmb3JtYXR0ZWRDb2x1bW4pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zLnB1c2goZm9ybWF0dGVkQ29sdW1uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpZiBjb2x1bW4gcGlja2VyIHNvcnRpbmcgaXMgZW5hYmxlZCwgc29ydCB0aGUgY29sdW1ucyB0aGF0IGFyZSBub3QgY3VycmVudGx5IGRpc3BsYXllZFxuICAgIC8vIGFuZCBhZGQgdGhlbSBhZnRlciB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBvcHRpb25zXG4gICAgaWYgKFxuICAgICAgdGhpcy5jb250ZXh0LmNvbHVtblBpY2tlclNvcnRTdHJhdGVneSA9PT1cbiAgICAgIFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyU29ydFN0cmF0ZWd5LlNlbGVjdGVkVGhlbkFscGhhYmV0aWNhbFxuICAgICkge1xuICAgICAgdW5zZWxlY3RlZENvbHVtbk9wdGlvbnMuc29ydCgoY29sMSwgY29sMikgPT5cbiAgICAgICAgY29sMS5sYWJlbC5sb2NhbGVDb21wYXJlKGNvbDIubGFiZWwpLFxuICAgICAgKTtcbiAgICAgIGZvcm1hdHRlZENvbHVtbk9wdGlvbnMgPSBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zLmNvbmNhdChcbiAgICAgICAgdW5zZWxlY3RlZENvbHVtbk9wdGlvbnMsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtYXR0ZWRDb2x1bW5PcHRpb25zO1xuICB9XG59XG4iLCI8c2t5LW1vZGFsIGNsYXNzPVwic2t5LWRhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyXCI+XG4gIDxza3ktbW9kYWwtaGVhZGVyPlxuICAgIHt7ICdza3l1eF9kYXRhX21hbmFnZXJfY29sdW1uX3BpY2tlcl90aXRsZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgPC9za3ktbW9kYWwtaGVhZGVyPlxuICA8c2t5LW1vZGFsLWNvbnRlbnQgY2xhc3M9XCJza3ktZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItY29udGVudFwiPlxuICAgIDxza3ktZGF0YS1tYW5hZ2VyPlxuICAgICAgPHNreS1kYXRhLW1hbmFnZXItdG9vbGJhciAvPlxuXG4gICAgICA8c2t5LWRhdGEtdmlldyBbdmlld0lkXT1cInZpZXdDb25maWcuaWRcIj5cbiAgICAgICAgPHNreS1yZXBlYXRlciBleHBhbmRNb2RlPVwibm9uZVwiPlxuICAgICAgICAgIEBmb3IgKGNvbHVtbiBvZiBkaXNwbGF5ZWRDb2x1bW5EYXRhOyB0cmFjayBjb2x1bW4uaWQpIHtcbiAgICAgICAgICAgIDxza3ktcmVwZWF0ZXItaXRlbVxuICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgWyhpc1NlbGVjdGVkKV09XCJjb2x1bW4uaXNTZWxlY3RlZFwiXG4gICAgICAgICAgICAgIChpc1NlbGVjdGVkQ2hhbmdlKT1cIm9uSXNTZWxlY3RlZENoYW5nZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNreS1yZXBlYXRlci1pdGVtLXRpdGxlPlxuICAgICAgICAgICAgICAgIHt7IGNvbHVtbi5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L3NreS1yZXBlYXRlci1pdGVtLXRpdGxlPlxuICAgICAgICAgICAgICA8c2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudD5cbiAgICAgICAgICAgICAgICB7eyBjb2x1bW4uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgICAgICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2t5LXJlcGVhdGVyPlxuICAgICAgPC9za3ktZGF0YS12aWV3PlxuICAgIDwvc2t5LWRhdGEtbWFuYWdlcj5cbiAgPC9za3ktbW9kYWwtY29udGVudD5cbiAgPHNreS1tb2RhbC1mb290ZXI+XG4gICAgQGlmICghaXNBbnlEaXNwbGF5ZWRDb2x1bW5TZWxlY3RlZCkge1xuICAgICAgPGRpdiBjbGFzcz1cInNreS1kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1mb290ZXItc3RhY2tlZC1pbmRpY2F0b3JcIj5cbiAgICAgICAgPHNreS1zdGF0dXMtaW5kaWNhdG9yIGRlc2NyaXB0aW9uVHlwZT1cImVycm9yXCIgaW5kaWNhdG9yVHlwZT1cImRhbmdlclwiPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAnc2t5dXhfZGF0YV9tYW5hZ2VyX3NlbGVjdF9jb2x1bW5fc3RhdHVzX2luZGljYXRvcl90aXRsZSdcbiAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICB9fVxuICAgICAgICA8L3NreS1zdGF0dXMtaW5kaWNhdG9yPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxidXR0b25cbiAgICAgIHNreS1jbXAtaWQ9XCJhcHBseS1jaGFuZ2VzXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnkgc2t5LWRhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLWFwcGx5LWJ0blwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNBbnlEaXNwbGF5ZWRDb2x1bW5TZWxlY3RlZFwiXG4gICAgICAoY2xpY2spPVwiYXBwbHlDaGFuZ2VzKClcIlxuICAgID5cbiAgICAgIHt7ICdza3l1eF9kYXRhX21hbmFnZXJfYXBwbHlfY2hhbmdlc19idXR0b25fdGl0bGUnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgc2t5LWNtcC1pZD1cImNhbmNlbFwiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1jYW5jZWwtYnRuXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbENoYW5nZXMoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X2RhdGFfbWFuYWdlcl9jYW5jZWxfYnV0dG9uX3RpdGxlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3NreS1tb2RhbC1mb290ZXI+XG48L3NreS1tb2RhbD5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { SkyDataManagerColumnPickerComponent } from './data-manager-column-picker.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyDataManagerColumnPickerImplService {\n getComponentType() {\n return SkyDataManagerColumnPickerComponent;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerColumnPickerImplService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerColumnPickerImplService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerColumnPickerImplService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItaW1wbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLWltcGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQUc3RixNQUFNLE9BQU8scUNBQXFDO0lBQ3pDLGdCQUFnQjtRQUNyQixPQUFPLG1DQUFtQyxDQUFDO0lBQzdDLENBQUM7OEdBSFUscUNBQXFDO2tIQUFyQyxxQ0FBcUM7OzJGQUFyQyxxQ0FBcUM7a0JBRGpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJJbXBsU2VydmljZSB7XG4gIHB1YmxpYyBnZXRDb21wb25lbnRUeXBlKCk6IHR5cGVvZiBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VyQ29tcG9uZW50O1xuICB9XG59XG4iXX0=","import { SkyDataManagerColumnPickerImplService } from './data-manager-column-picker-impl.service';\nimport { SkyDataManagerColumnPickerService } from './data-manager-column-picker.service';\nexport const SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS = [\n {\n provide: SkyDataManagerColumnPickerService,\n useClass: SkyDataManagerColumnPickerImplService,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItcHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyL2RhdGEtbWFuYWdlci1jb2x1bW4tcGlja2VyLXByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV6RixNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBZTtJQUNsRTtRQUNFLE9BQU8sRUFBRSxpQ0FBaUM7UUFDMUMsUUFBUSxFQUFFLHFDQUFxQztLQUNoRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlckltcGxTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci1pbXBsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb2x1bW5QaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItY29sdW1uLXBpY2tlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFNLWV9EQVRBX01BTkFHRVJfQ09MVU1OX1BJQ0tFUl9QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gIHtcbiAgICBwcm92aWRlOiBTa3lEYXRhTWFuYWdlckNvbHVtblBpY2tlclNlcnZpY2UsXG4gICAgdXNlQ2xhc3M6IFNreURhdGFNYW5hZ2VyQ29sdW1uUGlja2VySW1wbFNlcnZpY2UsXG4gIH0sXG5dO1xuIl19","import { Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/layout\";\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered after the standard toolbar actions and before the search box. Each item should be\n * wrapped in its own `sky-data-manager-toolbar-left-item`. The items render in the order they are in in the template.\n */\nexport class SkyDataManagerToolbarLeftItemComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyDataManagerToolbarLeftItemComponent, isStandalone: true, selector: \"sky-data-manager-toolbar-left-item\", ngImport: i0, template: \"<sky-toolbar-item>\\n <ng-content />\\n</sky-toolbar-item>\\n\", dependencies: [{ kind: \"ngmodule\", type: SkyToolbarModule }, { kind: \"component\", type: i1.λ39, selector: \"sky-toolbar-item\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-data-manager-toolbar-left-item', imports: [SkyToolbarModule], template: \"<sky-toolbar-item>\\n <ng-content />\\n</sky-toolbar-item>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXRvb2xiYXItbGVmdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci1sZWZ0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci10b29sYmFyL2RhdGEtbWFuYWdlci10b29sYmFyLWxlZnQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRWpEOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sc0NBQXNDOzhHQUF0QyxzQ0FBc0M7a0dBQXRDLHNDQUFzQyw4RkNibkQsNkRBR0EsMkNEUVksZ0JBQWdCOzsyRkFFZixzQ0FBc0M7a0JBTGxELFNBQVM7K0JBQ0Usb0NBQW9DLFdBRXJDLENBQUMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVRvb2xiYXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuLyoqXG4gKiBBIHdyYXBwZXIgZm9yIGFuIGl0ZW0gdG8gYmUgcmVuZGVyZWQgaW4gYFNreURhdGFNYW5hZ2VyVG9vbGJhckNvbXBvbmVudGAuIFRoZSBjb250ZW50cyBhcmVcbiAqIHJlbmRlcmVkIGFmdGVyIHRoZSBzdGFuZGFyZCB0b29sYmFyIGFjdGlvbnMgYW5kIGJlZm9yZSB0aGUgc2VhcmNoIGJveC4gRWFjaCBpdGVtIHNob3VsZCBiZVxuICogd3JhcHBlZCBpbiBpdHMgb3duIGBza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXItbGVmdC1pdGVtYC4gVGhlIGl0ZW1zIHJlbmRlciBpbiB0aGUgb3JkZXIgdGhleSBhcmUgaW4gaW4gdGhlIHRlbXBsYXRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXItbGVmdC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbWFuYWdlci10b29sYmFyLWxlZnQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtTa3lUb29sYmFyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJUb29sYmFyTGVmdEl0ZW1Db21wb25lbnQge31cbiIsIjxza3ktdG9vbGJhci1pdGVtPlxuICA8bmctY29udGVudCAvPlxuPC9za3ktdG9vbGJhci1pdGVtPlxuIl19","import { Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/layout\";\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered as the first items in the toolbar and should be standard actions. Each item should be\n * wrapped in its own `sky-data-manager-toolbar-primary-item`. The items render in the order they are in in the template.\n */\nexport class SkyDataManagerToolbarPrimaryItemComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyDataManagerToolbarPrimaryItemComponent, isStandalone: true, selector: \"sky-data-manager-toolbar-primary-item\", ngImport: i0, template: \"<sky-toolbar-item>\\n <ng-content />\\n</sky-toolbar-item>\\n\", dependencies: [{ kind: \"ngmodule\", type: SkyToolbarModule }, { kind: \"component\", type: i1.λ39, selector: \"sky-toolbar-item\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-data-manager-toolbar-primary-item', imports: [SkyToolbarModule], template: \"<sky-toolbar-item>\\n <ng-content />\\n</sky-toolbar-item>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXRvb2xiYXItcHJpbWFyeS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci1wcmltYXJ5LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtbWFuYWdlci10b29sYmFyL2RhdGEtbWFuYWdlci10b29sYmFyLXByaW1hcnktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRWpEOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8seUNBQXlDOzhHQUF6Qyx5Q0FBeUM7a0dBQXpDLHlDQUF5QyxpR0NidEQsNkRBR0EsMkNEUVksZ0JBQWdCOzsyRkFFZix5Q0FBeUM7a0JBTHJELFNBQVM7K0JBQ0UsdUNBQXVDLFdBRXhDLENBQUMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVRvb2xiYXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuLyoqXG4gKiBBIHdyYXBwZXIgZm9yIGFuIGl0ZW0gdG8gYmUgcmVuZGVyZWQgaW4gYFNreURhdGFNYW5hZ2VyVG9vbGJhckNvbXBvbmVudGAuIFRoZSBjb250ZW50cyBhcmVcbiAqIHJlbmRlcmVkIGFzIHRoZSBmaXJzdCBpdGVtcyBpbiB0aGUgdG9vbGJhciBhbmQgc2hvdWxkIGJlIHN0YW5kYXJkIGFjdGlvbnMuIEVhY2ggaXRlbSBzaG91bGQgYmVcbiAqIHdyYXBwZWQgaW4gaXRzIG93biBgc2t5LWRhdGEtbWFuYWdlci10b29sYmFyLXByaW1hcnktaXRlbWAuIFRoZSBpdGVtcyByZW5kZXIgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGluIGluIHRoZSB0ZW1wbGF0ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRhdGEtbWFuYWdlci10b29sYmFyLXByaW1hcnktaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLW1hbmFnZXItdG9vbGJhci1wcmltYXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbU2t5VG9vbGJhck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFNYW5hZ2VyVG9vbGJhclByaW1hcnlJdGVtQ29tcG9uZW50IHt9XG4iLCI8c2t5LXRvb2xiYXItaXRlbT5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvc2t5LXRvb2xiYXItaXRlbT5cbiJdfQ==","import { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered in `sky-toolbar-view-actions` on the right side of the toolbar and before the view\n * switcher icons (if present). Each item should be wrapped in its own\n * `sky-data-manager-toolbar-right-item`. The items render in the order they are in in the template.\n */\nexport class SkyDataManagerToolbarRightItemComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyDataManagerToolbarRightItemComponent, isStandalone: true, selector: \"sky-data-manager-toolbar-right-item\", ngImport: i0, template: \"<ng-content />\\n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, selector: 'sky-data-manager-toolbar-right-item', template: \"<ng-content />\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXRvb2xiYXItcmlnaHQtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXItcmlnaHQtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXItcmlnaHQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQzs7Ozs7R0FLRztBQU1ILE1BQU0sT0FBTyx1Q0FBdUM7OEdBQXZDLHVDQUF1QztrR0FBdkMsdUNBQXVDLCtGQ2JwRCxrQkFDQTs7MkZEWWEsdUNBQXVDO2tCQUxuRCxTQUFTO2lDQUNJLElBQUksWUFDTixxQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBBIHdyYXBwZXIgZm9yIGFuIGl0ZW0gdG8gYmUgcmVuZGVyZWQgaW4gYFNreURhdGFNYW5hZ2VyVG9vbGJhckNvbXBvbmVudGAuIFRoZSBjb250ZW50cyBhcmVcbiAqIHJlbmRlcmVkIGluIGBza3ktdG9vbGJhci12aWV3LWFjdGlvbnNgIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSB0b29sYmFyIGFuZCBiZWZvcmUgdGhlIHZpZXdcbiAqIHN3aXRjaGVyIGljb25zIChpZiBwcmVzZW50KS4gRWFjaCBpdGVtIHNob3VsZCBiZSB3cmFwcGVkIGluIGl0cyBvd25cbiAqIGBza3ktZGF0YS1tYW5hZ2VyLXRvb2xiYXItcmlnaHQtaXRlbWAuIFRoZSBpdGVtcyByZW5kZXIgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGluIGluIHRoZSB0ZW1wbGF0ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2t5LWRhdGEtbWFuYWdlci10b29sYmFyLXJpZ2h0LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1tYW5hZ2VyLXRvb2xiYXItcmlnaHQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFNYW5hZ2VyVG9vbGJhclJpZ2h0SXRlbUNvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQgLz5cbiJdfQ==","import { Component } from '@angular/core';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/layout\";\n/**\n * A wrapper for items to be rendered in `SkyDataManagerToolbarComponent`. The contents are\n * rendered in an additional toolbar row beneath the primary toolbar and above the multiselect\n * toolbar (if present).\n */\nexport class SkyDataManagerToolbarSectionComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyDataManagerToolbarSectionComponent, isStandalone: true, selector: \"sky-data-manager-toolbar-section\", ngImport: i0, template: \"<sky-toolbar-section>\\n <ng-content />\\n</sky-toolbar-section>\\n\", dependencies: [{ kind: \"ngmodule\", type: SkyToolbarModule }, { kind: \"component\", type: i1.λ38, selector: \"sky-toolbar-section\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-data-manager-toolbar-section', imports: [SkyToolbarModule], template: \"<sky-toolbar-section>\\n <ng-content />\\n</sky-toolbar-section>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXRvb2xiYXItc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXItc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRWpEOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8scUNBQXFDOzhHQUFyQyxxQ0FBcUM7a0dBQXJDLHFDQUFxQyw0RkNibEQsbUVBR0EsMkNEUVksZ0JBQWdCOzsyRkFFZixxQ0FBcUM7a0JBTGpELFNBQVM7K0JBQ0Usa0NBQWtDLFdBRW5DLENBQUMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVRvb2xiYXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuLyoqXG4gKiBBIHdyYXBwZXIgZm9yIGl0ZW1zIHRvIGJlIHJlbmRlcmVkIGluIGBTa3lEYXRhTWFuYWdlclRvb2xiYXJDb21wb25lbnRgLiBUaGUgY29udGVudHMgYXJlXG4gKiByZW5kZXJlZCBpbiBhbiBhZGRpdGlvbmFsIHRvb2xiYXIgcm93IGJlbmVhdGggdGhlIHByaW1hcnkgdG9vbGJhciBhbmQgYWJvdmUgdGhlIG11bHRpc2VsZWN0XG4gKiB0b29sYmFyIChpZiBwcmVzZW50KS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRhdGEtbWFuYWdlci10b29sYmFyLXNlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1tYW5hZ2VyLXRvb2xiYXItc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtTa3lUb29sYmFyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJUb29sYmFyU2VjdGlvbkNvbXBvbmVudCB7fVxuIiwiPHNreS10b29sYmFyLXNlY3Rpb24+XG4gIDxuZy1jb250ZW50IC8+XG48L3NreS10b29sYmFyLXNlY3Rpb24+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS } from './data-manager-column-picker/data-manager-column-picker-providers';\nimport { SkyDataManagerToolbarLeftItemComponent } from './data-manager-toolbar/data-manager-toolbar-left-item.component';\nimport { SkyDataManagerToolbarPrimaryItemComponent } from './data-manager-toolbar/data-manager-toolbar-primary-item.component';\nimport { SkyDataManagerToolbarRightItemComponent } from './data-manager-toolbar/data-manager-toolbar-right-item.component';\nimport { SkyDataManagerToolbarSectionComponent } from './data-manager-toolbar/data-manager-toolbar-section.component';\nimport { SkyDataManagerToolbarComponent } from './data-manager-toolbar/data-manager-toolbar.component';\nimport { SkyDataManagerComponent } from './data-manager.component';\nimport { SkyDataViewComponent } from './data-view.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyDataManagerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerModule, imports: [SkyDataManagerComponent,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent], exports: [SkyDataManagerComponent,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerModule, providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS], imports: [SkyDataManagerComponent,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarSectionComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyDataManagerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n SkyDataManagerComponent,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent,\n ],\n exports: [\n SkyDataManagerComponent,\n SkyDataManagerToolbarComponent,\n SkyDataManagerToolbarLeftItemComponent,\n SkyDataManagerToolbarPrimaryItemComponent,\n SkyDataManagerToolbarRightItemComponent,\n SkyDataManagerToolbarSectionComponent,\n SkyDataViewComponent,\n ],\n providers: [SKY_DATA_MANAGER_COLUMN_PICKER_PROVIDERS],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLW1hbmFnZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDN0gsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDL0gsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDM0gsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDdkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBdUI3RCxNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixZQW5CN0IsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5QixzQ0FBc0M7WUFDdEMseUNBQXlDO1lBQ3pDLHVDQUF1QztZQUN2QyxxQ0FBcUM7WUFDckMsb0JBQW9CLGFBR3BCLHVCQUF1QjtZQUN2Qiw4QkFBOEI7WUFDOUIsc0NBQXNDO1lBQ3RDLHlDQUF5QztZQUN6Qyx1Q0FBdUM7WUFDdkMscUNBQXFDO1lBQ3JDLG9CQUFvQjsrR0FJWCxvQkFBb0IsYUFGcEIsQ0FBQyx3Q0FBd0MsQ0FBQyxZQWpCbkQsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5QixzQ0FBc0M7WUFDdEMseUNBQXlDO1lBRXpDLHFDQUFxQzs7MkZBYzVCLG9CQUFvQjtrQkFyQmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3dCQUM5QixzQ0FBc0M7d0JBQ3RDLHlDQUF5Qzt3QkFDekMsdUNBQXVDO3dCQUN2QyxxQ0FBcUM7d0JBQ3JDLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3dCQUM5QixzQ0FBc0M7d0JBQ3RDLHlDQUF5Qzt3QkFDekMsdUNBQXVDO3dCQUN2QyxxQ0FBcUM7d0JBQ3JDLG9CQUFvQjtxQkFDckI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsd0NBQXdDLENBQUM7aUJBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU0tZX0RBVEFfTUFOQUdFUl9DT0xVTU5fUElDS0VSX1BST1ZJREVSUyB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXIvZGF0YS1tYW5hZ2VyLWNvbHVtbi1waWNrZXItcHJvdmlkZXJzJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyVG9vbGJhckxlZnRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci1sZWZ0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyVG9vbGJhclByaW1hcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci1wcmltYXJ5LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyVG9vbGJhclJpZ2h0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXItcmlnaHQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJUb29sYmFyU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXRvb2xiYXIvZGF0YS1tYW5hZ2VyLXRvb2xiYXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItdG9vbGJhci9kYXRhLW1hbmFnZXItdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtbWFuYWdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdmlldy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2t5RGF0YU1hbmFnZXJDb21wb25lbnQsXG4gICAgU2t5RGF0YU1hbmFnZXJUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhckxlZnRJdGVtQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhclByaW1hcnlJdGVtQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhclJpZ2h0SXRlbUNvbXBvbmVudCxcbiAgICBTa3lEYXRhTWFuYWdlclRvb2xiYXJTZWN0aW9uQ29tcG9uZW50LFxuICAgIFNreURhdGFWaWV3Q29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5RGF0YU1hbmFnZXJDb21wb25lbnQsXG4gICAgU2t5RGF0YU1hbmFnZXJUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhckxlZnRJdGVtQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhclByaW1hcnlJdGVtQ29tcG9uZW50LFxuICAgIFNreURhdGFNYW5hZ2VyVG9vbGJhclJpZ2h0SXRlbUNvbXBvbmVudCxcbiAgICBTa3lEYXRhTWFuYWdlclRvb2xiYXJTZWN0aW9uQ29tcG9uZW50LFxuICAgIFNreURhdGFWaWV3Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtTS1lfREFUQV9NQU5BR0VSX0NPTFVNTl9QSUNLRVJfUFJPVklERVJTXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtZGF0YS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvc2t5dXgtZGF0YS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1","i5","i2","i3","i4"],"mappings":"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"}