{"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/data-manager/data-manager-filters/data-manager-filter-state.service.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/safe-structured-clone.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-filters/data-manager-filter-controller.directive.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","import { Injectable } from '@angular/core';\nimport { SkyFilterState, SkyFilterStateService } from '@skyux/lists';\n\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\ninterface SkyFilterStateChange {\n  filterState: SkyFilterState;\n  sourceId: string;\n}\n\n/**\n * Concrete implementation of SkyFilterStateService that manages filter state\n * for integration between list components and data managers.\n * @internal\n */\n@Injectable()\nexport class SkyDataManagerFilterStateService implements SkyFilterStateService {\n  readonly #filterStateChange = new ReplaySubject<SkyFilterStateChange>(1);\n\n  public updateFilterState(data: SkyFilterState, sourceId: string): void {\n    const nextState: SkyFilterState = {\n      appliedFilters: data.appliedFilters,\n      selectedFilterIds: data.selectedFilterIds,\n    };\n\n    this.#filterStateChange.next({\n      filterState: nextState,\n      sourceId: sourceId,\n    });\n  }\n\n  public getFilterStateUpdates(sourceId: string): Observable<SkyFilterState> {\n    return this.#filterStateChange.pipe(\n      filter((c) => c.sourceId !== sourceId),\n      map((c) => c.filterState),\n    );\n  }\n}\n","/* istanbul ignore file */\n\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.dev/errors/NG3003\n */\n@Injectable()\nexport abstract class SkyDataManagerColumnPickerService {\n  public abstract getComponentType(): typeof SkyDataManagerColumnPickerComponent;\n}\n","/**\n * @internal\n */\nexport function safeStructuredClone<T>(value: T): T {\n  if (value === undefined || value === null) {\n    return value;\n  }\n\n  try {\n    // structuredClone may throw if the value is not cloneable.\n    return structuredClone(value);\n  } catch {\n    // Fall back to returning the original reference to avoid unexpected runtime errors.\n    return value;\n  }\n}\n","import { SkyDataViewColumnWidths } from './data-view-column-widths';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\nimport { safeStructuredClone } from './safe-structured-clone';\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    const widths = data.columnWidths || { xs: {}, sm: {} };\n    this.columnWidths = {\n      xs: widths.xs ?? {},\n      sm: widths.sm ?? {},\n    };\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: {\n        xs: { ...(this.columnWidths?.xs ?? {}) },\n        sm: { ...(this.columnWidths?.sm ?? {}) },\n      },\n      displayedColumnIds: [...this.displayedColumnIds],\n      additionalData:\n        this.additionalData !== undefined\n          ? safeStructuredClone(this.additionalData)\n          : undefined,\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';\nimport { safeStructuredClone } from './safe-structured-clone';\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        ? { ...this.activeSortOption }\n        : undefined,\n      additionalData:\n        this.additionalData !== undefined\n          ? safeStructuredClone(this.additionalData)\n          : undefined,\n      filterData: this.filterData\n        ? {\n            filtersApplied: this.filterData.filtersApplied,\n            filters:\n              this.filterData.filters !== undefined\n                ? safeStructuredClone(this.filterData.filters)\n                : undefined,\n          }\n        : undefined,\n      onlyShowSelected: this.onlyShowSelected,\n      searchText: this.searchText,\n      selectedIds: this.selectedIds ? [...this.selectedIds] : undefined,\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    const newViews = this.views.slice();\n    if (existingViewIndex !== -1) {\n      newViews.splice(existingViewIndex, 1, view);\n    } else {\n      newViews.push(view);\n    }\n\n    const options = this.getStateOptions();\n    options.views = newViews.map((v) => v.getViewStateOptions());\n\n    return new SkyDataManagerState(options);\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 {\n  BehaviorSubject,\n  Observable,\n  ReplaySubject,\n  Subject,\n  switchMap,\n} 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(\n          takeUntil(this.#ngUnsubscribe),\n          switchMap((state: SkyDataManagerState) =>\n            this.#uiConfigService.setConfig(\n              settingsKey,\n              state.getStateOptions(),\n            ),\n          ),\n        )\n        .subscribe({\n          error: (err) => {\n            console.warn('Could not save data manager settings.');\n            console.warn(err);\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(takeUntil(this.#ngUnsubscribe), 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 updatedViewState = new SkyDataViewState(\n            currentViewState.getViewStateOptions(),\n          );\n\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 (updatedViewState.columnIds.length > 0) {\n            let newColumnIds = currentAvailableColumnIds?.filter(\n              (id) => updatedViewState.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            updatedViewState.displayedColumnIds =\n              updatedViewState.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          updatedViewState.columnIds = currentAvailableColumnIds;\n\n          const newDataState = dataState.addOrUpdateView(\n            viewConfig.id,\n            updatedViewState,\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              <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            }\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  <ng-content select=\"sky-filter-bar\" />\n  <ng-content select=\"sky-list-summary\" />\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  computed,\n  inject,\n  input,\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';\nimport { SkyDataManagerDockType } from './types/data-manager-dock-type';\n\nconst VIEWKEEPER_CLASSES_DEFAULT = ['.sky-data-manager-toolbar'];\nconst DEFAULT_DOCK_TYPE: SkyDataManagerDockType = 'none';\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  styleUrl: './data-manager.component.scss',\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  /**\n   * How the data manager docks to the page. Use `fill` to dock the data manager\n   * to the container's size where the container is a `sky-page` component with\n   * its `layout` set to `fit`, or where the container is another element with\n   * a `relative` or `absolute` position and a fixed size.\n   * `sky-data-manager-toolbar` will be docked to the top of all other content.\n   * @default \"none\"\n   */\n  public readonly dock = input<SkyDataManagerDockType>(DEFAULT_DOCK_TYPE);\n\n  protected readonly dockClass = computed(() => {\n    return 'sky-data-manager-dock-' + (this.dock() || DEFAULT_DOCK_TYPE);\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    skyViewkeeperOmitShadow=\".ag-body-horizontal-scroll\"\n    [class]=\"'sky-data-manager ' + dockClass()\"\n    [skyBackToTop]=\"backToTopOptions\"\n    [skyBackToTopMessageStream]=\"backToTopController\"\n    [skyViewkeeper]=\"currentViewkeeperClasses\"\n  >\n    <div class=\"sky-data-manager-toolbar-container\">\n      <ng-content select=\"sky-data-manager-toolbar\" />\n    </div>\n    <div class=\"sky-data-manager-content\">\n      <ng-content />\n    </div>\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  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 { DestroyRef, Directive, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyFilterState, SkyFilterStateService } from '@skyux/lists';\n\nimport { SkyDataManagerService } from '../data-manager.service';\nimport { SkyDataManagerState } from '../models/data-manager-state';\n\nimport { SkyDataManagerFilterStateService } from './data-manager-filter-state.service';\n\n/**\n * A directive applied to a filtering component that enables integration with a data manager.\n */\n@Directive({\n  selector: '[skyDataManagerFilterController]',\n  providers: [\n    SkyDataManagerFilterStateService,\n    {\n      provide: SkyFilterStateService,\n      useExisting: SkyDataManagerFilterStateService,\n    },\n  ],\n})\nexport class SkyDataManagerFilterControllerDirective implements OnInit {\n  #currentDataState = new SkyDataManagerState({});\n  readonly #dataManagerService = inject(SkyDataManagerService);\n  readonly #adapterService = inject(SkyFilterStateService);\n  readonly #destroyRef = inject(DestroyRef);\n  readonly #sourceId = 'skyDataManagerFilterController';\n\n  public ngOnInit(): void {\n    // Subscribe to data manager state changes to update the adapter\n    this.#dataManagerService\n      .getDataStateUpdates(this.#sourceId)\n      .pipe(takeUntilDestroyed(this.#destroyRef))\n      .subscribe((dataState: SkyDataManagerState) => {\n        this.#currentDataState = dataState;\n        this.#updateAdapterFromDataState(dataState);\n      });\n\n    // Subscribe to adapter changes (excluding those this controller originated)\n    this.#adapterService\n      .getFilterStateUpdates(this.#sourceId)\n      .pipe(takeUntilDestroyed(this.#destroyRef))\n      .subscribe((data: SkyFilterState) => {\n        this.#updateDataManagerFromAdapter(data);\n      });\n  }\n\n  /**\n   * Updates the adapter's applied filters based on the data manager state.\n   */\n  #updateAdapterFromDataState(dataState: SkyDataManagerState): void {\n    if (dataState.filterData?.filters) {\n      this.#adapterService.updateFilterState(\n        dataState.filterData.filters,\n        this.#sourceId,\n      );\n    }\n  }\n\n  /**\n   * Updates the data manager state based on adapter changes.\n   */\n  #updateDataManagerFromAdapter(filters: SkyFilterState | undefined): void {\n    const filterData = {\n      filtersApplied: !!(\n        filters?.appliedFilters && filters.appliedFilters.length > 0\n      ),\n      filters,\n    };\n\n    this.#currentDataState.filterData = filterData;\n\n    // Update the data manager state\n    this.#dataManagerService.updateDataState(\n      this.#currentDataState,\n      this.#sourceId,\n    );\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  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 { SkyDataManagerFilterControllerDirective } from './data-manager-filters/data-manager-filter-controller.directive';\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    SkyDataManagerFilterControllerDirective,\n    SkyDataManagerToolbarComponent,\n    SkyDataManagerToolbarLeftItemComponent,\n    SkyDataManagerToolbarPrimaryItemComponent,\n    SkyDataManagerToolbarRightItemComponent,\n    SkyDataManagerToolbarSectionComponent,\n    SkyDataViewComponent,\n  ],\n  exports: [\n    SkyDataManagerComponent,\n    SkyDataManagerFilterControllerDirective,\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","i3","i4"],"mappings":"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"}