{"version":3,"file":"skyux-list-builder.mjs","sources":["../../../../../libs/components/list-builder/src/lib/modules/list/list-data-request.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/list-data-response.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/list-data.provider.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/search/search.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list-data-provider-in-memory/list-data-in-memory.provider.ts","../../../../../libs/components/list-builder/src/lib/modules/list/list-view.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/items/load.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/items/set-loading.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/filters/update.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/search/set-field-selectors.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/search/set-functions.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/search/set-options.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/search/set-search-text.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/selected/set-items-selected.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/sort/set-available.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/sort/set-field-selectors.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/sort/set-global.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/disable.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/load.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/remove.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/set-exists.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/show-multiselect-toolbar.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/views/set-active.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/list-state.rxstate.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/filters/filters.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/items/set-items-selected.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/items/items.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/paging/paging.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/selected/selected.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/sort/sort.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/toolbar.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/views/views.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/list-state.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/paging/set-items-per-page.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/paging/set-max-pages.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/paging/set-page-number.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/paging/paging.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/search/search.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/selected/load.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/selected/set-item-selected.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/selected/set-loading.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/selected/selected.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/sort/label.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/sort/sort.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/set-type.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/toolbar-item.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/toolbar/toolbar.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/views/load.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/views/views.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/list-state.state-node.ts","../../../../../libs/components/list-builder/src/lib/modules/list/state/views/view.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list/list.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list/list.module.ts","../../../../../libs/components/list-builder/src/lib/modules/list-filters/filter.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-button.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-button.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline-item-renderer.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline-item.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-inline.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-summary.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filter-summary.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-filters/list-filters.module.ts","../../../../../libs/components/list-builder/src/lib/modules/list/list-paging.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-paging/list-paging.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-paging/list-paging.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-paging/list-paging.module.ts","../../../../../libs/components/list-builder/src/lib/modules/shared/sky-list-builder-resources.module.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar-item-renderer.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-multiselect-toolbar.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-multiselect-toolbar.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar-item.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar-search-actions.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar-search-actions.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar-sort.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar-view-actions.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar-view-actions.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/state/config/set-search-enabled.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/state/config/set-sort-selector-enabled.action.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/state/config/config.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/state/toolbar-state.model.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/state/toolbar-state.rxstate.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/state/config/config.orchestrator.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/state/toolbar-state.state-node.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar.component.ts","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar.component.html","../../../../../libs/components/list-builder/src/lib/modules/list-toolbar/list-toolbar.module.ts","../../../../../libs/components/list-builder/src/skyux-list-builder.ts"],"sourcesContent":["import { ListFilterModel } from '../list-filters/filter.model';\n\nimport { ListSearchModel } from './state/search/search.model';\nimport { ListSortModel } from './state/sort/sort.model';\n\n/**\n * @deprecated\n */\nexport class ListDataRequestModel {\n  /**\n   * The function that determines whether items are filtered.\n   * This property is required when using an in-memory data provider.\n   */\n  public filters: ListFilterModel[];\n  /**\n   * The number of items to display per page.\n   */\n  public pageSize: number;\n  /**\n   * The current page number.\n   */\n  public pageNumber: number;\n  /**\n   * The function to dynamically manage the data source when users\n   * change the text in the list field. The search function must return an\n   * array or a promise of an array. The `search` property is particularly useful\n   * when the data source does not live in the source code.\n   */\n  public search: ListSearchModel;\n  /**\n   * The set of fields to sort by.\n   */\n  public sort: ListSortModel;\n  /**\n   * Whether to disable the search bar and filter button.\n   * @default false\n   */\n  public isToolbarDisabled = false;\n\n  constructor(data?: any) {\n    if (data !== undefined) {\n      this.filters = data.filters;\n      this.pageSize = data.pageSize;\n      this.pageNumber = data.pageNumber;\n      this.search = data.search;\n      this.sort = data.sort;\n      this.isToolbarDisabled = data.isToolbarDisabled;\n    }\n  }\n}\n","import { ListItemModel } from '@skyux/list-builder-common';\n\n/**\n * @deprecated\n */\nexport class ListDataResponseModel {\n  /**\n   * The total number of records in the list.\n   */\n  public count: number;\n  /**\n   * An array of the items returned. For information about `ListItemModel`, see the\n   * [shared classes for lists](https://developer.blackbaud.com/skyux-list-builder-common/docs/list-builder-common).\n   */\n  public items: ListItemModel[];\n\n  constructor(data?: any) {\n    if (data !== undefined) {\n      this.count = data.count;\n      this.items = data.items;\n    }\n  }\n}\n","import { Observable } from 'rxjs';\n\nimport { ListDataRequestModel } from './list-data-request.model';\nimport { ListDataResponseModel } from './list-data-response.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport abstract class ListDataProvider {\n  constructor(public data?: Observable<any[]>) {}\n\n  public abstract get(\n    request: ListDataRequestModel,\n  ): Observable<ListDataResponseModel>;\n\n  public abstract count(): Observable<number>;\n}\n","/**\n * Specifies a function to dynamically manage the data source when users change the text\n * in the list field. The search function must return an array or a promise of an array.\n * The `search` property is particularly useful when the data source does not live\n * in the source code.\n * @deprecated\n */\nexport class ListSearchModel {\n  /**\n   * The text to search.\n   * @default \"\"\n   */\n  public searchText = '';\n  /**\n   * The array of functions that returns a `boolean` value of `true` when\n   * the search is successful. This property accepts a function of type\n   * `(data: any, searchText: string) => boolean>.`\n   */\n  public functions: ((data: any, searchText: string) => boolean)[] = [];\n  /**\n   * The columns to search. The columns correspond to `field` values that\n   * you specify with the list component's `data` property.\n   */\n  public fieldSelectors: string[] = [];\n\n  constructor(data?: any) {\n    if (data) {\n      this.searchText = data.searchText;\n      this.functions = [...data.functions];\n      this.fieldSelectors = data.fieldSelectors;\n    }\n  }\n}\n","import { ListItemModel, compare, getData } from '@skyux/list-builder-common';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map as observableMap } from 'rxjs/operators';\n\nimport { ListFilterModel } from '../list-filters/filter.model';\nimport { ListDataRequestModel } from '../list/list-data-request.model';\nimport { ListDataResponseModel } from '../list/list-data-response.model';\nimport { ListDataProvider } from '../list/list-data.provider';\nimport { ListSearchModel } from '../list/state/search/search.model';\n\nlet idIndex = 0;\n\n/**\n * @deprecated\n */\nexport class SkyListInMemoryDataProvider extends ListDataProvider {\n  public items: BehaviorSubject<ListItemModel[]> = new BehaviorSubject<\n    ListItemModel[]\n  >([]);\n\n  private lastItems: ListItemModel[];\n  private lastSearch: ListSearchModel;\n  private lastSearchResults: ListItemModel[];\n  private searchFunction: (data: any, searchText: string) => boolean;\n\n  private lastFilters: ListFilterModel[];\n  private lastFilterResults: ListItemModel[];\n\n  constructor(\n    data?: Observable<any[]>,\n    searchFunction?: (data: any, searchText: string) => boolean,\n  ) {\n    super(data);\n\n    this.searchFunction = searchFunction;\n\n    if (data) {\n      data.subscribe((items) => {\n        this.items.next(\n          items.map(\n            (d) =>\n              new ListItemModel(\n                d.id || `sky-list-data-in-memory-provider-item-${++idIndex}`,\n                d,\n              ),\n          ),\n        );\n      });\n    }\n  }\n\n  public count(): Observable<number> {\n    return this.items.pipe(observableMap((items) => items.length));\n  }\n\n  public get(request: ListDataRequestModel): Observable<ListDataResponseModel> {\n    return this.filteredItems(request).pipe(\n      observableMap((result) => {\n        if (request.pageNumber && request.pageSize) {\n          const itemStart = (request.pageNumber - 1) * request.pageSize;\n          const pagedResult = result.slice(\n            itemStart,\n            itemStart + request.pageSize,\n          );\n          return new ListDataResponseModel({\n            count: result.length,\n            items: pagedResult,\n          });\n        } else {\n          return new ListDataResponseModel({\n            count: result.length,\n            items: result,\n          });\n        }\n      }),\n    );\n  }\n\n  private filteredItems(\n    request: ListDataRequestModel,\n  ): Observable<ListItemModel[]> {\n    const showSelectedId = ['show-selected'];\n\n    return this.items.pipe(\n      observableMap((items) => {\n        let dataChanged = false;\n        let search = request.search;\n        const sort = request.sort;\n        let filters: ListFilterModel[] = request.filters;\n\n        if (this.lastItems === undefined || this.lastItems !== items) {\n          dataChanged = true;\n          this.lastItems = items;\n        }\n\n        let searchChanged = false;\n        let filtersChanged = false;\n\n        if (request.isToolbarDisabled) {\n          searchChanged = true;\n          search = new ListSearchModel();\n\n          filters = filters.filter((f) => showSelectedId.indexOf(f.name) >= 0);\n          filtersChanged = true;\n        } else {\n          if (this.lastSearch === undefined || this.lastSearch !== search) {\n            searchChanged = true;\n          }\n\n          if (this.lastFilters === undefined || this.lastFilters !== filters) {\n            filtersChanged = true;\n          }\n        }\n\n        this.lastSearch = search;\n        this.lastFilters = filters;\n\n        let result = items;\n\n        // Apply filters.\n        if (\n          !dataChanged &&\n          !filtersChanged &&\n          this.lastFilterResults !== undefined\n        ) {\n          result = this.lastFilterResults;\n        } else if (filters && filters.length > 0) {\n          result = result.filter((item) => {\n            for (const filter of filters) {\n              if (\n                filter.value === undefined ||\n                filter.value === '' ||\n                filter.value === false ||\n                filter.value === filter.defaultValue\n              ) {\n                continue;\n              }\n\n              if (!filter.filterFunction(item, filter.value)) {\n                return false;\n              }\n            }\n            return true;\n          });\n\n          this.lastFilterResults = result;\n        } else {\n          this.lastFilterResults = undefined;\n        }\n\n        // Apply search.\n        /* istanbul ignore next */\n        if (\n          !dataChanged &&\n          !searchChanged &&\n          this.lastSearchResults !== undefined &&\n          !filtersChanged\n        ) {\n          result = this.lastSearchResults;\n        } else if (\n          search &&\n          search.searchText !== undefined &&\n          search.searchText.length > 0\n        ) {\n          const searchText = search.searchText.toLowerCase();\n          let searchFunctions: any[];\n          if (this.searchFunction !== undefined) {\n            searchFunctions = [this.searchFunction];\n          } else {\n            searchFunctions = search.functions;\n          }\n\n          result = result.filter((item) => {\n            let isMatch = false;\n\n            for (const searchFunction of searchFunctions) {\n              const searchResult = searchFunction(item.data, searchText);\n\n              if (\n                (typeof searchResult === 'string' &&\n                  searchResult.indexOf(searchText) !== -1) ||\n                searchResult === true\n              ) {\n                isMatch = true;\n                break;\n              }\n            }\n\n            return isMatch;\n          });\n\n          this.lastSearchResults = result;\n        } else {\n          this.lastSearchResults = undefined;\n        }\n\n        // Apply sort.\n        if (sort && sort.fieldSelectors.length > 0) {\n          result = result\n            .slice()\n            .sort((item1: ListItemModel, item2: ListItemModel) => {\n              let compareResult = 0;\n              for (const selector of sort.fieldSelectors) {\n                const value1 = getData(item1.data, selector.fieldSelector);\n                const value2 = getData(item2.data, selector.fieldSelector);\n\n                compareResult = compare(value1, value2);\n\n                if (selector.descending && compareResult !== 0) {\n                  compareResult *= -1;\n                }\n\n                if (compareResult !== 0) {\n                  break;\n                }\n              }\n\n              return compareResult;\n            });\n        }\n        return result;\n      }),\n    );\n  }\n}\n","import { Observable } from 'rxjs';\nimport { distinctUntilChanged, map as observableMap } from 'rxjs/operators';\n\nimport { SkyListComponent } from '../list/list.component';\n\nimport { ListState } from './state/list-state.state-node';\n\nlet idIndex = 0;\n\n/**\n * @internal\n * @deprecated\n */\nexport abstract class ListViewComponent {\n  public active: Observable<boolean>;\n\n  protected viewName: string;\n  protected state: ListState;\n  protected list: SkyListComponent;\n  protected hasToolbar: Observable<boolean>;\n  private viewId = `sky-list-view-cmp-${++idIndex}`;\n\n  constructor(state: ListState, defaultName: string) {\n    this.state = state;\n    this.viewName = defaultName;\n\n    /* istanbul ignore next */\n    this.hasToolbar = this.state.pipe(observableMap((s) => s.toolbar.exists));\n\n    this.active = this.state.pipe(\n      observableMap((s) => s.views.active === this.viewId),\n    );\n\n    this.active\n      .pipe(distinctUntilChanged())\n      .subscribe((isActive) =>\n        isActive ? this.onViewActive() : this.onViewInactive(),\n      );\n  }\n\n  public get id(): string {\n    return this.viewId;\n  }\n\n  public get label(): string {\n    return this.viewName;\n  }\n\n  /* istanbul ignore next */\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  public onViewActive(): void {}\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  public onViewInactive(): void {}\n}\n","import { ListItemModel } from '@skyux/list-builder-common';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListItemsLoadAction {\n  constructor(\n    public items: ListItemModel[],\n    public refresh = false,\n    public dataChanged = true,\n    public count?: number,\n  ) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListItemsSetLoadingAction {\n  constructor(public loading = true) {}\n}\n","import { ListFilterModel } from '../../../list-filters/filter.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListFiltersUpdateAction {\n  constructor(public filters: ListFilterModel[]) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListSearchSetFieldSelectorsAction {\n  constructor(public fieldSelectors: string[] = []) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListSearchSetFunctionsAction {\n  constructor(\n    public functions: ((data: any, searchText: string) => boolean)[] = [],\n  ) {}\n}\n","import { ListSearchSetFieldSelectorsAction } from './set-field-selectors.action';\nimport { ListSearchSetFunctionsAction } from './set-functions.action';\nimport { ListSearchSetSearchTextAction } from './set-search-text.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListSearchSetOptionsAction {\n  constructor(\n    public searchTextAction: ListSearchSetSearchTextAction,\n    public setFieldSelectorsAction: ListSearchSetFieldSelectorsAction,\n    public setFunctionsAction: ListSearchSetFunctionsAction,\n  ) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListSearchSetSearchTextAction {\n  constructor(public searchText: string) {}\n}\n","import { Observable } from 'rxjs';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListSelectedSetItemsSelectedAction {\n  constructor(\n    public items: string[] | Observable<string[]>,\n    public selected = false,\n    public refresh = true,\n  ) {}\n}\n","import { ListSortLabelModel } from './label.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListSortSetAvailableAction {\n  constructor(public available: ListSortLabelModel[]) {}\n}\n","import { ListSortFieldSelectorModel } from '@skyux/list-builder-common';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListSortSetFieldSelectorsAction {\n  constructor(public fieldSelectors: ListSortFieldSelectorModel[]) {}\n}\n","import { ListSortLabelModel } from './label.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListSortSetGlobalAction {\n  constructor(public global: ListSortLabelModel[]) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarItemsDisableAction {\n  constructor(public disable: boolean) {}\n}\n","import { ListToolbarItemModel } from './toolbar-item.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarItemsLoadAction {\n  constructor(\n    public items: ListToolbarItemModel[],\n    public index = -1,\n  ) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarItemsRemoveAction {\n  constructor(public ids: string[]) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarSetExistsAction {\n  constructor(public exists: boolean) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarShowMultiselectToolbarAction {\n  constructor(public exists: boolean) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListViewsSetActiveAction {\n  constructor(public view: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport {\n  ListSortFieldSelectorModel,\n  StateDispatcher,\n  StateOrchestrator,\n} from '@skyux/list-builder-common';\n\nimport { ListFilterModel } from '../../list-filters/filter.model';\n\nimport { ListFiltersUpdateAction } from './filters/update.action';\nimport { ListStateAction } from './list-state-action.type';\nimport { ListSearchModel } from './search/search.model';\nimport { ListSearchSetFieldSelectorsAction } from './search/set-field-selectors.action';\nimport { ListSearchSetFunctionsAction } from './search/set-functions.action';\nimport { ListSearchSetOptionsAction } from './search/set-options.action';\nimport { ListSearchSetSearchTextAction } from './search/set-search-text.action';\nimport { ListSelectedSetItemsSelectedAction } from './selected/set-items-selected.action';\nimport { ListSortLabelModel } from './sort/label.model';\nimport { ListSortSetAvailableAction } from './sort/set-available.action';\nimport { ListSortSetFieldSelectorsAction } from './sort/set-field-selectors.action';\nimport { ListSortSetGlobalAction } from './sort/set-global.action';\nimport { ListToolbarItemsDisableAction } from './toolbar/disable.action';\nimport { ListToolbarItemsLoadAction } from './toolbar/load.action';\nimport { ListToolbarItemsRemoveAction } from './toolbar/remove.action';\nimport { ListToolbarSetExistsAction } from './toolbar/set-exists.action';\nimport { ListToolbarShowMultiselectToolbarAction } from './toolbar/show-multiselect-toolbar.action';\nimport { ListToolbarItemModel } from './toolbar/toolbar-item.model';\nimport { ListViewsSetActiveAction } from './views/set-active.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListStateOrchestrator<T> extends StateOrchestrator<\n  T,\n  ListStateAction\n> {}\n\n/**\n * @internal\n * @deprecated\n */\n@Injectable()\nexport class ListStateDispatcher extends StateDispatcher<ListStateAction> {\n  public viewsSetActive(id: string): void {\n    this.next(new ListViewsSetActiveAction(id));\n  }\n\n  public toolbarExists(exists: boolean): void {\n    this.next(new ListToolbarSetExistsAction(exists));\n  }\n\n  public toolbarSetDisabled(disabled: boolean): void {\n    this.next(new ListToolbarItemsDisableAction(disabled));\n  }\n\n  public toolbarAddItems(items: ListToolbarItemModel[], index = -1): void {\n    this.next(new ListToolbarItemsLoadAction(items, index));\n  }\n\n  public toolbarRemoveItems(ids: string[]): void {\n    this.next(new ListToolbarItemsRemoveAction(ids));\n  }\n\n  public toolbarShowMultiselectToolbar(show: boolean): void {\n    this.next(new ListToolbarShowMultiselectToolbarAction(show));\n  }\n\n  public searchSetFunctions(\n    sortFunctions: ((data: any, searchText: string) => boolean)[],\n  ): void {\n    this.next(new ListSearchSetFunctionsAction(sortFunctions));\n  }\n\n  /* istanbul ignore next */\n  public searchSetFieldSelectors(fieldSelectors: string[]): void {\n    this.next(new ListSearchSetFieldSelectorsAction(fieldSelectors));\n  }\n\n  public searchSetText(searchText: string): void {\n    this.next(new ListSearchSetSearchTextAction(searchText));\n  }\n\n  public searchSetOptions(searchOptions: ListSearchModel): void {\n    this.next(\n      new ListSearchSetOptionsAction(\n        new ListSearchSetSearchTextAction(searchOptions.searchText),\n        new ListSearchSetFieldSelectorsAction(searchOptions.fieldSelectors),\n        new ListSearchSetFunctionsAction(searchOptions.functions),\n      ),\n    );\n  }\n\n  public sortSetAvailable(sortLabels: ListSortLabelModel[]): void {\n    this.next(new ListSortSetAvailableAction(sortLabels));\n  }\n\n  public sortSetFieldSelectors(\n    fieldSelectors: ListSortFieldSelectorModel[],\n  ): void {\n    this.next(new ListSortSetFieldSelectorsAction(fieldSelectors));\n  }\n\n  public sortSetGlobal(sortLabels: ListSortLabelModel[]): void {\n    this.next(new ListSortSetGlobalAction(sortLabels));\n  }\n\n  public filtersUpdate(filters: ListFilterModel[]): void {\n    this.next(new ListFiltersUpdateAction(filters));\n  }\n\n  public setSelected(\n    selectedIds: string[],\n    selected: boolean,\n    refresh = false,\n  ): void {\n    this.next(\n      new ListSelectedSetItemsSelectedAction(selectedIds, selected, refresh),\n    );\n  }\n}\n","import { ListFilterModel } from '../../../list-filters/filter.model';\nimport { ListStateOrchestrator } from '../list-state.rxstate';\n\nimport { ListFiltersUpdateAction } from './update.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListFiltersOrchestrator extends ListStateOrchestrator<\n  ListFilterModel[]\n> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(ListFiltersUpdateAction, this.update);\n  }\n\n  private update(\n    state: ListFilterModel[],\n    action: ListFiltersUpdateAction,\n  ): ListFilterModel[] {\n    return [...action.filters];\n  }\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListItemsSetSelectedAction {\n  constructor(\n    public items: string[],\n    /* istanbul ignore next */\n    public selected = false,\n    public refresh = true,\n  ) {}\n}\n","import { AsyncList, ListItemModel } from '@skyux/list-builder-common';\n\nimport { ListStateOrchestrator } from '../list-state.rxstate';\n\nimport { ListItemsLoadAction } from './load.action';\nimport { ListItemsSetSelectedAction } from './set-items-selected.action';\nimport { ListItemsSetLoadingAction } from './set-loading.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListItemsOrchestrator extends ListStateOrchestrator<\n  AsyncList<ListItemModel>\n> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(ListItemsSetLoadingAction, this.setLoading)\n      .register(ListItemsLoadAction, this.load)\n      .register(ListItemsSetSelectedAction, this.setItemsSelected);\n  }\n\n  private setLoading(\n    state: AsyncList<ListItemModel>,\n    action: ListItemsSetLoadingAction,\n  ): AsyncList<ListItemModel> {\n    return new AsyncList<ListItemModel>(\n      state.items,\n      state.lastUpdate,\n      action.loading,\n      state.count,\n    );\n  }\n\n  private load(\n    state: AsyncList<ListItemModel>,\n    action: ListItemsLoadAction,\n  ): AsyncList<ListItemModel> {\n    const newListItems = action.items.map(\n      (g) => new ListItemModel(g.id, g.data, g.isSelected),\n    );\n    const resultItems = action.refresh\n      ? [...newListItems]\n      : [...state.items, ...newListItems];\n\n    const count =\n      action.count === undefined ? resultItems.length : action.count;\n    return new AsyncList<ListItemModel>(\n      resultItems,\n      action.dataChanged ? Date.now() : state.lastUpdate,\n      false,\n      count,\n    );\n  }\n\n  private setItemsSelected(\n    state: AsyncList<ListItemModel>,\n    action: ListItemsSetSelectedAction,\n  ): AsyncList<ListItemModel> {\n    /* istanbul ignore next */\n    const newSelectedIds = action.items || [];\n    const newListItemModels = this.cloneListItemModelArray(state.items);\n\n    if (action.refresh) {\n      newListItemModels.forEach((item) => (item.isSelected = undefined));\n    }\n\n    newSelectedIds.map((s) => {\n      const newItem = newListItemModels.find((i) => i.id === s);\n      /* istanbul ignore next */\n      if (newItem) {\n        newItem.isSelected = action.selected;\n      }\n    });\n\n    return new AsyncList<ListItemModel>(\n      newListItemModels,\n      Date.now(),\n      state.loading,\n      state.count,\n    );\n  }\n\n  private cloneListItemModelArray(source: ListItemModel[]): ListItemModel[] {\n    const newListItems: ListItemModel[] = [];\n    source.forEach((item) => {\n      newListItems.push(\n        new ListItemModel(\n          item.id,\n          Object.assign({}, item.data),\n          item.isSelected,\n        ),\n      );\n    });\n    return newListItems;\n  }\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListPagingModel {\n  public itemsPerPage: number;\n  public maxDisplayedPages: number;\n  public pageCount: number;\n  public pageNumber: number;\n\n  constructor(data?: any) {\n    if (data !== undefined) {\n      this.itemsPerPage = data.itemsPerPage || 10;\n      this.maxDisplayedPages = data.maxDisplayedPages || 5;\n      this.pageCount = data.pageCount || 0;\n      this.pageNumber = data.pageNumber || 1;\n    }\n  }\n}\n","/**\n * Contains data about the selected items in the list.\n * @deprecated\n */\nexport class ListSelectedModel {\n  /**\n   * A map of key value pairs that consists of IDs for selected items\n   * and boolean values for their selected states.\n   */\n  public selectedIdMap: Map<string, boolean>;\n\n  constructor() {\n    this.selectedIdMap = new Map<string, boolean>();\n  }\n}\n","import { ListSortFieldSelectorModel } from '@skyux/list-builder-common';\n\nimport { ListSortLabelModel } from './label.model';\n\n/**\n * Specifies a set of fields to sort by.\n * @deprecated\n */\nexport class ListSortModel {\n  /**\n   * The list of available views to sort.\n   */\n  public available: ListSortLabelModel[] = [];\n  /**\n   * The list views that the sort applies to.\n   */\n  public global: ListSortLabelModel[] = [];\n  /**\n   * The fields to sort.\n   * For information about `ListSortFieldSelectorModel`, see the\n   * [shared classes for lists](https://developer.blackbaud.com/skyux-list-builder-common/docs/list-builder-common).\n   */\n  public fieldSelectors: ListSortFieldSelectorModel[] = [];\n\n  constructor(data?: any) {\n    if (data) {\n      this.available = data.available;\n      this.global = data.global;\n      this.fieldSelectors = data.fieldSelectors;\n    }\n  }\n}\n","import { ListToolbarItemModel } from './toolbar-item.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarModel {\n  public exists: boolean;\n  public disabled: boolean;\n  public items: ListToolbarItemModel[] = [];\n  public type: string;\n  public showMultiselectToolbar = false;\n\n  constructor(data?: any) {\n    if (data) {\n      this.exists = data.exists;\n      this.disabled = data.disabled;\n      this.items = data.items;\n      this.type = data.type;\n      this.showMultiselectToolbar = data.showMultiselectToolbar;\n    }\n  }\n}\n","import { ListViewModel } from './view.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewsModel {\n  public active: string;\n  public views: ListViewModel[] = [];\n\n  constructor(data?: any) {\n    if (data) {\n      this.active = data.active;\n      this.views = data.views;\n    }\n  }\n}\n","import {\n  AsyncItem,\n  AsyncList,\n  ListItemModel,\n} from '@skyux/list-builder-common';\n\nimport { ListFilterModel } from '../../list-filters/filter.model';\n\nimport { ListPagingModel } from './paging/paging.model';\nimport { ListSearchModel } from './search/search.model';\nimport { ListSelectedModel } from './selected/selected.model';\nimport { ListSortModel } from './sort/sort.model';\nimport { ListToolbarModel } from './toolbar/toolbar.model';\nimport { ListViewsModel } from './views/views.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListStateModel {\n  public filters: ListFilterModel[] = [];\n  public items: AsyncList<ListItemModel> = new AsyncList<ListItemModel>();\n  public paging: ListPagingModel = new ListPagingModel();\n  public search: ListSearchModel = new ListSearchModel();\n  public selected: AsyncItem<ListSelectedModel> =\n    new AsyncItem<ListSelectedModel>();\n  public sort: ListSortModel = new ListSortModel();\n  public toolbar: ListToolbarModel = new ListToolbarModel();\n  public views: ListViewsModel = new ListViewsModel();\n\n  constructor() {\n    this.selected.item = new ListSelectedModel();\n  }\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListPagingSetItemsPerPageAction {\n  constructor(public itemsPerPage: number) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListPagingSetMaxPagesAction {\n  constructor(public maxPages: number) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListPagingSetPageNumberAction {\n  constructor(public pageNumber: number) {}\n}\n","import { ListStateOrchestrator } from '../list-state.rxstate';\n\nimport { ListPagingModel } from './paging.model';\nimport { ListPagingSetItemsPerPageAction } from './set-items-per-page.action';\nimport { ListPagingSetMaxPagesAction } from './set-max-pages.action';\nimport { ListPagingSetPageNumberAction } from './set-page-number.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListPagingOrchestrator extends ListStateOrchestrator<ListPagingModel> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(ListPagingSetMaxPagesAction, this.setMaxPages)\n      .register(ListPagingSetItemsPerPageAction, this.setItemsPerPage)\n      .register(ListPagingSetPageNumberAction, this.setPageNumber);\n  }\n\n  private setMaxPages(\n    state: ListPagingModel,\n    action: ListPagingSetMaxPagesAction,\n  ): ListPagingModel {\n    return new ListPagingModel(\n      Object.assign({}, state, { maxDisplayedPages: Number(action.maxPages) }),\n    );\n  }\n\n  private setItemsPerPage(\n    state: ListPagingModel,\n    action: ListPagingSetItemsPerPageAction,\n  ): ListPagingModel {\n    return new ListPagingModel(\n      Object.assign({}, state, { itemsPerPage: Number(action.itemsPerPage) }),\n    );\n  }\n\n  private setPageNumber(\n    state: ListPagingModel,\n    action: ListPagingSetPageNumberAction,\n  ): ListPagingModel {\n    return new ListPagingModel(\n      Object.assign({}, state, { pageNumber: Number(action.pageNumber) }),\n    );\n  }\n}\n","import { ListStateOrchestrator } from '../list-state.rxstate';\n\nimport { ListSearchModel } from './search.model';\nimport { ListSearchSetFieldSelectorsAction } from './set-field-selectors.action';\nimport { ListSearchSetFunctionsAction } from './set-functions.action';\nimport { ListSearchSetOptionsAction } from './set-options.action';\nimport { ListSearchSetSearchTextAction } from './set-search-text.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListSearchOrchestrator extends ListStateOrchestrator<ListSearchModel> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(ListSearchSetSearchTextAction, this.setSearchText)\n      .register(ListSearchSetFunctionsAction, this.setFunctions)\n      .register(ListSearchSetFieldSelectorsAction, this.setFieldSelectors)\n      .register(ListSearchSetOptionsAction, this.setOptions);\n  }\n\n  private setSearchText(\n    state: ListSearchModel,\n    action: ListSearchSetSearchTextAction,\n  ): ListSearchModel {\n    return new ListSearchModel(\n      Object.assign({}, state, {\n        searchText: action.searchText ? action.searchText : '',\n      }),\n    );\n  }\n\n  private setFunctions(\n    state: ListSearchModel,\n    action: ListSearchSetFunctionsAction,\n  ): ListSearchModel {\n    return new ListSearchModel(\n      Object.assign({}, state, { functions: [...action.functions] }),\n    );\n  }\n\n  private setFieldSelectors(\n    state: ListSearchModel,\n    action: ListSearchSetFieldSelectorsAction,\n  ): ListSearchModel {\n    return new ListSearchModel(\n      Object.assign({}, state, { fieldSelectors: [...action.fieldSelectors] }),\n    );\n  }\n\n  private setOptions(\n    state: ListSearchModel,\n    action: ListSearchSetOptionsAction,\n  ): ListSearchModel {\n    let result = state;\n\n    /* istanbul ignore else */\n    if (action.searchTextAction) {\n      result = this.setSearchText(result, action.searchTextAction);\n    }\n\n    /* istanbul ignore else */\n    if (action.setFieldSelectorsAction) {\n      result = this.setFieldSelectors(result, action.setFieldSelectorsAction);\n    }\n\n    /* istanbul ignore else */\n    if (action.setFunctionsAction) {\n      result = this.setFunctions(result, action.setFunctionsAction);\n    }\n\n    return result;\n  }\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListSelectedLoadAction {\n  constructor(public items: string[]) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListSelectedSetItemSelectedAction {\n  constructor(\n    public id: any,\n    public selected: boolean,\n  ) {}\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListSelectedSetLoadingAction {\n  constructor(public loading = true) {}\n}\n","import { AsyncItem } from '@skyux/list-builder-common';\n\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { ListStateOrchestrator } from '../list-state.rxstate';\n\nimport { ListSelectedLoadAction } from './load.action';\nimport { ListSelectedModel } from './selected.model';\nimport { ListSelectedSetItemSelectedAction } from './set-item-selected.action';\nimport { ListSelectedSetItemsSelectedAction } from './set-items-selected.action';\nimport { ListSelectedSetLoadingAction } from './set-loading.action';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListSelectedOrchestrator extends ListStateOrchestrator<\n  AsyncItem<ListSelectedModel>\n> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(ListSelectedSetLoadingAction, this.setLoading)\n      .register(ListSelectedSetItemSelectedAction, this.setItemSelected)\n      .register(ListSelectedSetItemsSelectedAction, this.setItemsSelected)\n      .register(ListSelectedLoadAction, this.load);\n  }\n\n  private setLoading(\n    state: AsyncItem<ListSelectedModel>,\n    action: ListSelectedSetLoadingAction,\n  ): AsyncItem<ListSelectedModel> {\n    return new AsyncItem<ListSelectedModel>(\n      state.item,\n      state.lastUpdate,\n      action.loading,\n    );\n  }\n\n  private load(\n    state: AsyncItem<ListSelectedModel>,\n    action: ListSelectedLoadAction,\n  ): AsyncItem<ListSelectedModel> {\n    const newSelected = new ListSelectedModel();\n    action.items.map((s) => newSelected.selectedIdMap.set(s, true));\n\n    return new AsyncItem<ListSelectedModel>(\n      Object.assign({}, state.item, newSelected),\n      Date.now(),\n      false,\n    );\n  }\n\n  private setItemSelected(\n    state: AsyncItem<ListSelectedModel>,\n    action: ListSelectedSetItemSelectedAction,\n  ): AsyncItem<ListSelectedModel> {\n    const newSelected = this.cloneListSelectedModel(state.item);\n\n    newSelected.selectedIdMap.set(action.id, action.selected);\n\n    return new AsyncItem<ListSelectedModel>(\n      newSelected,\n      state.lastUpdate,\n      state.loading,\n    );\n  }\n\n  private setItemsSelected(\n    state: AsyncItem<ListSelectedModel>,\n    action: ListSelectedSetItemsSelectedAction,\n  ): AsyncItem<ListSelectedModel> {\n    const newSelectedIds = action.items || [];\n    const newListSelectedModel = action.refresh\n      ? new ListSelectedModel()\n      : this.cloneListSelectedModel(state.item);\n\n    if (newSelectedIds instanceof Observable) {\n      newSelectedIds.pipe(take(1)).subscribe((selectedIds) => {\n        selectedIds.map((s) =>\n          newListSelectedModel.selectedIdMap.set(s, action.selected),\n        );\n      });\n    } else {\n      newSelectedIds.map((s) =>\n        newListSelectedModel.selectedIdMap.set(s, action.selected),\n      );\n    }\n\n    return new AsyncItem<ListSelectedModel>(\n      newListSelectedModel,\n      state.lastUpdate,\n      state.loading,\n    );\n  }\n\n  private cloneListSelectedModel(source: ListSelectedModel): ListSelectedModel {\n    const newListItems = new ListSelectedModel();\n    newListItems.selectedIdMap = new Map<string, boolean>(source.selectedIdMap);\n\n    return newListItems;\n  }\n}\n","/**\n * These properties are a work in progress, and we do not recommend using them.\n * @deprecated\n */\nexport class ListSortLabelModel {\n  /**\n   * The text for the label.\n   */\n  public text: string;\n  /**\n   * The label type.\n   */\n  public fieldType: string;\n  /**\n   * The fields to sort.\n   */\n  public fieldSelector: string;\n  /**\n   * Whether to sort all fields.\n   * @default false\n   */\n  public global = false;\n  /**\n   * Whether to sort in descending order.\n   * @default false\n   */\n  public descending = false;\n\n  constructor(data?: any) {\n    if (data) {\n      this.text = data.text;\n      this.fieldType = data.fieldType;\n      this.fieldSelector = data.fieldSelector;\n      this.global = data.global;\n      this.descending = data.descending;\n    }\n  }\n}\n","import { ListStateOrchestrator } from '../list-state.rxstate';\n\nimport { ListSortLabelModel } from './label.model';\nimport { ListSortSetAvailableAction } from './set-available.action';\nimport { ListSortSetFieldSelectorsAction } from './set-field-selectors.action';\nimport { ListSortSetGlobalAction } from './set-global.action';\nimport { ListSortModel } from './sort.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListSortOrchestrator extends ListStateOrchestrator<ListSortModel> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(ListSortSetFieldSelectorsAction, this.setFieldSelectors)\n      .register(ListSortSetAvailableAction, this.setAvailable)\n      .register(ListSortSetGlobalAction, this.setGlobal);\n  }\n\n  private setFieldSelectors(\n    state: ListSortModel,\n    action: ListSortSetFieldSelectorsAction,\n  ): ListSortModel {\n    return new ListSortModel(\n      Object.assign({}, state, { fieldSelectors: action.fieldSelectors }),\n    );\n  }\n\n  private setAvailable(\n    state: ListSortModel,\n    action: ListSortSetAvailableAction,\n  ): ListSortModel {\n    const newAvailable = action.available.map(\n      (available) => new ListSortLabelModel(available),\n    );\n    return new ListSortModel(\n      Object.assign({}, state, { available: newAvailable }),\n    );\n  }\n\n  private setGlobal(\n    state: ListSortModel,\n    action: ListSortSetGlobalAction,\n  ): ListSortModel {\n    const newGlobal = action.global.map(\n      (global) => new ListSortLabelModel(global),\n    );\n    return new ListSortModel(Object.assign({}, state, { global: newGlobal }));\n  }\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarSetTypeAction {\n  constructor(public type: string) {}\n}\n","import { TemplateRef } from '@angular/core';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarItemModel {\n  public index = -1;\n  public template: TemplateRef<unknown>;\n  public location: string;\n  public view: string;\n\n  public id: string;\n\n  constructor(data?: any) {\n    if (data) {\n      this.index = data.index;\n      this.template = data.template;\n      this.location = data.location;\n      this.view = data.view;\n      this.id = data.id;\n    }\n  }\n}\n","import { ListStateOrchestrator } from '../list-state.rxstate';\n\nimport { ListToolbarItemsDisableAction } from './disable.action';\nimport { ListToolbarItemsLoadAction } from './load.action';\nimport { ListToolbarItemsRemoveAction } from './remove.action';\nimport { ListToolbarSetExistsAction } from './set-exists.action';\nimport { ListToolbarSetTypeAction } from './set-type.action';\nimport { ListToolbarShowMultiselectToolbarAction } from './show-multiselect-toolbar.action';\nimport { ListToolbarItemModel } from './toolbar-item.model';\nimport { ListToolbarModel } from './toolbar.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListToolbarOrchestrator extends ListStateOrchestrator<ListToolbarModel> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(ListToolbarSetExistsAction, this.setExists)\n      .register(ListToolbarItemsDisableAction, this.setDisabled)\n      .register(ListToolbarItemsLoadAction, this.load)\n      .register(ListToolbarSetTypeAction, this.setType)\n      .register(ListToolbarItemsRemoveAction, this.remove)\n      .register(\n        ListToolbarShowMultiselectToolbarAction,\n        this.showMultiselectToolbar,\n      );\n  }\n\n  private setExists(\n    state: ListToolbarModel,\n    action: ListToolbarSetExistsAction,\n  ): ListToolbarModel {\n    const newModel = new ListToolbarModel(state);\n    newModel.exists = action.exists;\n    return newModel;\n  }\n\n  private setDisabled(\n    state: ListToolbarModel,\n    action: ListToolbarItemsDisableAction,\n  ): ListToolbarModel {\n    const newModel = new ListToolbarModel(state);\n    newModel.disabled = action.disable;\n    return newModel;\n  }\n\n  private setType(\n    state: ListToolbarModel,\n    action: ListToolbarSetTypeAction,\n  ): ListToolbarModel {\n    const newModel = new ListToolbarModel(state);\n    newModel.type = action.type;\n    return newModel;\n  }\n\n  private load(\n    state: ListToolbarModel,\n    action: ListToolbarItemsLoadAction,\n  ): ListToolbarModel {\n    const newModel = new ListToolbarModel(state);\n\n    const newListItems = action.items.map((item) => {\n      /**\n       * NOTE: Originally this function went off the action index and item models did not include\n       * the index. We changed this but must leave functionality to convert the action index for\n       * backwards compatibility.\n       */\n      if (!item.index) {\n        item.index = action.index;\n      }\n      return new ListToolbarItemModel(item);\n    });\n\n    let items = [...state.items, ...newListItems];\n    items = items.sort((a, b) => {\n      if (a.index < b.index) {\n        return -1;\n      } else if (a.index > b.index) {\n        return 1;\n      } else {\n        return 0;\n      }\n    });\n\n    newModel.items = items;\n\n    return newModel;\n  }\n\n  private remove(\n    state: ListToolbarModel,\n    action: ListToolbarItemsRemoveAction,\n  ): ListToolbarModel {\n    const newModel = new ListToolbarModel(state);\n\n    newModel.items = newModel.items.filter((item: ListToolbarItemModel) => {\n      return action.ids.indexOf(item.id) === -1;\n    });\n\n    return newModel;\n  }\n\n  private showMultiselectToolbar(\n    state: ListToolbarModel,\n    action: ListToolbarShowMultiselectToolbarAction,\n  ): ListToolbarModel {\n    const newModel = new ListToolbarModel(state);\n    newModel.showMultiselectToolbar = action.exists;\n    return newModel;\n  }\n}\n","import { ListViewModel } from './view.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewsLoadAction {\n  constructor(public views: ListViewModel[]) {}\n}\n","import { ListStateOrchestrator } from '../list-state.rxstate';\n\nimport { ListViewsLoadAction } from './load.action';\nimport { ListViewsSetActiveAction } from './set-active.action';\nimport { ListViewsModel } from './views.model';\n\n/**\n * @internal\n * @deprecated\n */\nexport class ListViewsOrchestrator extends ListStateOrchestrator<ListViewsModel> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(ListViewsSetActiveAction, this.setActive).register(\n      ListViewsLoadAction,\n      this.load,\n    );\n  }\n\n  private setActive(\n    state: ListViewsModel,\n    action: ListViewsSetActiveAction,\n  ): ListViewsModel {\n    return new ListViewsModel(\n      Object.assign({}, state, { active: action.view }),\n    );\n  }\n\n  private load(\n    state: ListViewsModel,\n    action: ListViewsLoadAction,\n  ): ListViewsModel {\n    return new ListViewsModel(\n      Object.assign({}, state, { views: action.views }),\n    );\n  }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { StateNode } from '@skyux/list-builder-common';\n\nimport { ListFiltersOrchestrator } from './filters/filters.orchestrator';\nimport { ListItemsOrchestrator } from './items/items.orchestrator';\nimport { ListStateModel } from './list-state.model';\nimport { ListStateDispatcher } from './list-state.rxstate';\nimport { ListPagingOrchestrator } from './paging/paging.orchestrator';\nimport { ListSearchOrchestrator } from './search/search.orchestrator';\nimport { ListSelectedOrchestrator } from './selected/selected.orchestrator';\nimport { ListSortOrchestrator } from './sort/sort.orchestrator';\nimport { ListToolbarOrchestrator } from './toolbar/toolbar.orchestrator';\nimport { ListViewsOrchestrator } from './views/views.orchestrator';\n\n/**\n * @internal\n * @deprecated\n */\n@Injectable()\nexport class ListState extends StateNode<ListStateModel> {\n  constructor() {\n    super(new ListStateModel(), inject(ListStateDispatcher));\n\n    this.register('filters', ListFiltersOrchestrator)\n      .register('items', ListItemsOrchestrator)\n      .register('paging', ListPagingOrchestrator)\n      .register('search', ListSearchOrchestrator)\n      .register('sort', ListSortOrchestrator)\n      .register('toolbar', ListToolbarOrchestrator)\n      .register('views', ListViewsOrchestrator)\n      .register('selected', ListSelectedOrchestrator)\n      .begin();\n  }\n}\n","/**\n * @internal\n * @deprecated\n */\nexport class ListViewModel {\n  public id: string;\n  public name: string;\n\n  constructor(id: string, name: string) {\n    this.id = id;\n    this.name = name;\n  }\n}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  QueryList,\n  SimpleChanges,\n  inject,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport {\n  AsyncItem,\n  ListItemModel,\n  ListSortFieldSelectorModel,\n  getValue,\n  isObservable,\n} from '@skyux/list-builder-common';\n\nimport {\n  Observable,\n  Subject,\n  combineLatest as observableCombineLatest,\n  of as observableOf,\n} from 'rxjs';\nimport {\n  distinctUntilChanged,\n  flatMap,\n  map as observableMap,\n  skip,\n  take,\n  takeUntil,\n} from 'rxjs/operators';\n\nimport { SkyListInMemoryDataProvider } from '../list-data-provider-in-memory/list-data-in-memory.provider';\nimport { ListFilterModel } from '../list-filters/filter.model';\n\nimport { ListDataRequestModel } from './list-data-request.model';\nimport { ListDataResponseModel } from './list-data-response.model';\nimport { ListDataProvider } from './list-data.provider';\nimport { ListViewComponent } from './list-view.component';\nimport { ListItemsLoadAction } from './state/items/load.action';\nimport { ListItemsSetLoadingAction } from './state/items/set-loading.action';\nimport { ListStateDispatcher } from './state/list-state.rxstate';\nimport { ListState } from './state/list-state.state-node';\nimport { ListPagingSetPageNumberAction } from './state/paging/set-page-number.action';\nimport { ListSearchModel } from './state/search/search.model';\nimport { ListSelectedLoadAction } from './state/selected/load.action';\nimport { ListSelectedModel } from './state/selected/selected.model';\nimport { ListSelectedSetLoadingAction } from './state/selected/set-loading.action';\nimport { ListSortSetFieldSelectorsAction } from './state/sort/set-field-selectors.action';\nimport { ListSortModel } from './state/sort/sort.model';\nimport { ListViewsLoadAction } from './state/views/load.action';\nimport { ListViewsSetActiveAction } from './state/views/set-active.action';\nimport { ListViewModel } from './state/views/view.model';\n\nlet idIndex = 0;\n\n/**\n * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.\n */\n@Component({\n  selector: 'sky-list',\n  template: '<ng-content />',\n  providers: [ListState, ListStateDispatcher],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyListComponent\n  implements AfterContentInit, OnChanges, OnDestroy\n{\n  public id = `sky-list-cmp-${++idIndex}`;\n  /**\n   * The data to display. The list component requires this property or the\n   * `dataProvider` property. For checklist or multiselect grids, each row requires an\n   * `id` property to manage selected items with the `selectedIds` input and the\n   * `selectedIdsChange` event. If you do not provide an `id`, the list automatically\n   * generates one. To update data in your view outside of a `dataProvider`, you must use\n   * an observable instead of a static array.\n   */\n  @Input()\n  public data?: any[] | Observable<any[]> = [];\n\n  /**\n   * The data provider that obtains the data to display. The list component requires\n   * this property or the `data` property. For lists that use `dataProvider` instead of `data`,\n   * consumers are responsible for managing all `ListDataRequestModel` properties.\n   * @default SkyListInMemoryDataProvider\n   */\n  @Input()\n  public dataProvider?: ListDataProvider;\n\n  /**\n   * @internal\n   */\n  @Input()\n  public defaultView?: ListViewComponent;\n\n  /**\n   * The total number of items for the initial data set when initialized. When\n   * used in conjunction with `data` and `dataProvider`, it allows an initial data to be\n   * set with the need to call the `dataProvider`.\n   */\n  @Input()\n  public initialTotal?: number;\n\n  /**\n   * The set of IDs for the items to select in a checklist or multiselect grid.\n   * The IDs match the `id` properties of the `data` objects. Items with IDs that are not\n   * included are de-selected in the checklist or multiselect grid.\n   */\n  @Input()\n  public selectedIds?: string[] | Observable<string[]>;\n\n  /**\n   * The set of fields to sort by. If array of fields then sorted by order of array.\n   * For information about `ListSortFieldSelectorModel`, see the\n   * [shared classes for lists](https://developer.blackbaud.com/skyux-list-builder-common/docs/list-builder-common).\n   */\n  @Input()\n  public sortFields?:\n    | ListSortFieldSelectorModel\n    | ListSortFieldSelectorModel[]\n    | Observable<ListSortFieldSelectorModel[]>\n    | Observable<ListSortFieldSelectorModel>;\n\n  /**\n   * The set of filters to apply to list data.\n   * These filters create a filter summary when the list includes the\n   * [`sky-list-filter-summary`](https://developer.blackbaud.com/skyux/components/list-filters)\n   * component.\n   */\n  @Input()\n  public appliedFilters: ListFilterModel[] = [];\n\n  /**\n   * For list views that support item selection, emits the selected entries.\n   */\n  @Output()\n  public selectedIdsChange = new EventEmitter<Map<string, boolean>>();\n\n  /**\n   * Emits the filters applied to the list.\n   */\n  @Output()\n  public appliedFiltersChange = new EventEmitter<ListFilterModel[]>();\n\n  /**\n   * The function to apply as a global sort on the list.\n   */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('search')\n  public searchFunction: (data: any, searchText: string) => boolean;\n\n  private dataFirstLoad = false;\n\n  @ContentChildren(ListViewComponent)\n  private listViews: QueryList<ListViewComponent>;\n\n  private lastSelectedIds: string[] = [];\n\n  private lastFilters: ListFilterModel[] = [];\n\n  private ngUnsubscribe = new Subject<void>();\n\n  private readonly state = inject(ListState);\n  private readonly dispatcher = inject(ListStateDispatcher);\n\n  constructor() {\n    inject(SkyLogService).deprecated('SkyListComponent', {\n      deprecationMajorVersion: 6,\n      moreInfoUrl:\n        'https://developer.blackbaud.com/skyux/components/data-manager',\n      replacementRecommendation: 'Use data manager instead.',\n    });\n  }\n\n  public ngAfterContentInit(): void {\n    if (this.data && this.dataProvider && this.initialTotal) {\n      this.dataFirstLoad = true;\n    }\n\n    if (this.listViews.length > 0) {\n      const defaultView: ListViewComponent =\n        this.defaultView === undefined\n          ? this.listViews.first\n          : this.defaultView;\n\n      this.dispatcher.next(\n        new ListViewsLoadAction(\n          this.listViews.map((v) => new ListViewModel(v.id, v.label)),\n        ),\n      );\n\n      // activate the default view\n      this.dispatcher.next(new ListViewsSetActiveAction(defaultView.id));\n    } else {\n      return;\n    }\n\n    // set sort fields\n    getValue(\n      this.sortFields,\n      (\n        sortFields: ListSortFieldSelectorModel[] | ListSortFieldSelectorModel,\n      ) => {\n        let sortArray: ListSortFieldSelectorModel[];\n        if (!Array.isArray(sortFields) && sortFields) {\n          sortArray = [sortFields];\n        } else {\n          sortArray = sortFields as ListSortFieldSelectorModel[];\n        }\n        this.dispatcher.next(\n          new ListSortSetFieldSelectorsAction(sortArray || []),\n        );\n      },\n    );\n\n    this.displayedItems.subscribe((result) => {\n      this.dispatcher.next(new ListItemsSetLoadingAction());\n      this.dispatcher.next(\n        new ListItemsLoadAction(result.items, true, true, result.count),\n      );\n    });\n\n    // Watch for selection changes.\n    this.state\n      .pipe(\n        observableMap((current) => current.selected),\n        takeUntil(this.ngUnsubscribe),\n        distinctUntilChanged(),\n      )\n      .subscribe((selected) => {\n        // Update lastSelectedIds to help us retain user selections.\n        const selectedIdsList: string[] = [];\n        selected.item.selectedIdMap.forEach((value, key) => {\n          if (value === true) {\n            selectedIdsList.push(key);\n          }\n        });\n\n        // If changes are distinct, emit selectedIdsChange.\n        const distinctChanges = !this.arraysEqual(\n          this.lastSelectedIds,\n          selectedIdsList,\n        );\n        if (this.selectedIdsChange.observers.length > 0 && distinctChanges) {\n          this.selectedIdsChange.emit(selected.item.selectedIdMap);\n        }\n\n        this.lastSelectedIds = selectedIdsList;\n      });\n\n    if (this.appliedFiltersChange.observers.length > 0) {\n      this.state\n        .pipe(\n          observableMap((current) => current.filters),\n          takeUntil(this.ngUnsubscribe),\n          skip(1),\n        )\n        .subscribe((filters) => {\n          /**\n           * We are doing this instead of a distinctUntilChange due to memory allocation issues\n           * with the javascript array. To fix fully the array should be changed to an object in\n           * a breaking change.\n           */\n          if (!this.arraysEqual(filters, this.lastFilters)) {\n            this.lastFilters = filters.slice(0);\n            this.appliedFiltersChange.emit(filters);\n          }\n        });\n    }\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (\n      changes['appliedFilters'] &&\n      changes['appliedFilters'].currentValue !==\n        changes['appliedFilters'].previousValue\n    ) {\n      this.state.pipe(take(1)).subscribe((currentState) => {\n        if (\n          currentState.paging.pageNumber &&\n          currentState.paging.pageNumber !== 1\n        ) {\n          this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));\n        }\n\n        this.dispatcher.filtersUpdate(this.appliedFilters);\n      });\n    }\n    if (changes['selectedIds']) {\n      // Only send selection changes to dispatcher if changes are distinct.\n      const newSelectedIds = changes['selectedIds'].currentValue;\n      if (!this.arraysEqual(newSelectedIds, this.lastSelectedIds)) {\n        this.dispatcher.setSelected(newSelectedIds, true, true);\n      }\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.ngUnsubscribe.next();\n    this.ngUnsubscribe.complete();\n  }\n\n  public refreshDisplayedItems(): void {\n    this.displayedItems.pipe(take(1)).subscribe((result) => {\n      this.dispatcher.next(new ListItemsSetLoadingAction());\n      this.dispatcher.next(\n        new ListItemsLoadAction(result.items, true, true, result.count),\n      );\n    });\n  }\n\n  public get displayedItems(): Observable<ListDataResponseModel> {\n    if (!this.data && !this.dataProvider) {\n      throw new Error('List requires data or dataProvider to be set.');\n    }\n\n    let data: any = this.data;\n    if (!isObservable(data)) {\n      data = observableOf(this.data);\n    }\n\n    if (!this.dataProvider) {\n      this.dataProvider = new SkyListInMemoryDataProvider(\n        data,\n        this.searchFunction,\n      );\n    }\n\n    let selectedIds = this.selectedIds || observableOf([]);\n    if (!isObservable(selectedIds)) {\n      selectedIds = observableOf(selectedIds);\n    }\n\n    let selectedChanged = false;\n\n    // This subject is used to cancel previous request to the list's data provider when a new change\n    // to the list's state occurs. In a future breaking change this should be replaced or coupled\n    // with adding a debounce time to the Observable which watches for state changes.\n    const cancelLastRequest = new Subject<void>();\n\n    return observableCombineLatest(\n      [\n        this.state.pipe(\n          observableMap((s) => s.filters),\n          distinctUntilChanged(),\n        ),\n        this.state.pipe(\n          observableMap((s) => s.search),\n          distinctUntilChanged(),\n        ),\n        this.state.pipe(\n          observableMap((s) => s.sort.fieldSelectors),\n          distinctUntilChanged(),\n        ),\n        this.state.pipe(\n          observableMap((s) => s.paging.itemsPerPage),\n          distinctUntilChanged(),\n        ),\n        this.state.pipe(\n          observableMap((s) => s.paging.pageNumber),\n          distinctUntilChanged(),\n        ),\n        this.state.pipe(\n          observableMap((s) => s.toolbar.disabled),\n          distinctUntilChanged(),\n        ),\n        selectedIds.pipe(\n          distinctUntilChanged(),\n          observableMap((selected) => {\n            selectedChanged = true;\n            return selected;\n          }),\n        ),\n        data.pipe(distinctUntilChanged()),\n      ],\n      (\n        filters: ListFilterModel[],\n        search: ListSearchModel,\n        sortFieldSelectors: ListSortFieldSelectorModel[],\n        itemsPerPage: number,\n        pageNumber: number,\n        isToolbarDisabled: boolean,\n        selected: string[],\n        itemsData: any[],\n      ) => {\n        cancelLastRequest.next();\n        cancelLastRequest.complete();\n        if (selectedChanged) {\n          this.dispatcher.next(new ListSelectedSetLoadingAction());\n          this.dispatcher.next(new ListSelectedLoadAction(selected));\n          this.dispatcher.next(new ListSelectedSetLoadingAction(false));\n          selectedChanged = false;\n        }\n\n        let response: Observable<ListDataResponseModel>;\n        if (this.dataFirstLoad) {\n          this.dataFirstLoad = false;\n          const initialItems = itemsData.map(\n            (d) =>\n              new ListItemModel(d.id || `sky-list-item-model-${++idIndex}`, d),\n          );\n          response = observableOf(\n            new ListDataResponseModel({\n              count: this.initialTotal,\n              items: initialItems,\n            }),\n          ).pipe(takeUntil(cancelLastRequest));\n        } else {\n          response = this.dataProvider\n            .get(\n              new ListDataRequestModel({\n                filters: filters,\n                pageSize: itemsPerPage,\n                pageNumber: pageNumber,\n                search: search,\n                sort: new ListSortModel({ fieldSelectors: sortFieldSelectors }),\n                isToolbarDisabled: isToolbarDisabled,\n              }),\n            )\n            .pipe(takeUntil(cancelLastRequest));\n        }\n\n        return response;\n      },\n    ).pipe(\n      takeUntil(this.ngUnsubscribe),\n\n      // Retain user selections from previous state.\n      // This is only necessary for grids component (based on item.isSelected).\n      observableMap((response) => {\n        return response.pipe(\n          observableMap((listDataResponseModel) => {\n            return new ListDataResponseModel({\n              count: listDataResponseModel.count,\n              items: this.getItemsAndRetainSelections(\n                listDataResponseModel.items,\n                this.lastSelectedIds,\n              ),\n            });\n          }),\n        );\n      }),\n      flatMap((value) => value),\n    );\n  }\n\n  public get selectedItems(): Observable<ListItemModel[]> {\n    return observableCombineLatest(\n      this.state.pipe(\n        observableMap((current) => current.items.items),\n        distinctUntilChanged(),\n      ),\n      this.state.pipe(\n        observableMap((current) => current.selected),\n        distinctUntilChanged(),\n      ),\n      (items: ListItemModel[], selected: AsyncItem<ListSelectedModel>) => {\n        return items.filter((i) => selected.item.selectedIdMap.get(i.id));\n      },\n    ).pipe(takeUntil(this.ngUnsubscribe));\n  }\n\n  public get lastUpdate(): Observable<Date> {\n    return this.state.pipe(\n      takeUntil(this.ngUnsubscribe),\n      observableMap((s) =>\n        s.items.lastUpdate ? new Date(s.items.lastUpdate) : undefined,\n      ),\n    );\n  }\n\n  public get views(): ListViewComponent[] {\n    return this.listViews.toArray();\n  }\n\n  public get itemCount(): Observable<number> {\n    return this.dataProvider.count();\n  }\n\n  private getItemsAndRetainSelections(\n    newList: ListItemModel[],\n    selectedIds: string[],\n  ): ListItemModel[] {\n    const updatedListModel = newList.slice();\n    updatedListModel.forEach((item) => {\n      item.isSelected = selectedIds.indexOf(item.id) > -1 ? true : false;\n    });\n    return updatedListModel;\n  }\n\n  private arraysEqual(arrayA: any[], arrayB: any[]): boolean {\n    /* istanbul ignore next */\n    if (arrayA === arrayB) {\n      return true;\n    }\n    if (arrayA === undefined || arrayB === undefined) {\n      return false;\n    }\n    if (arrayA.length !== arrayB.length) {\n      return false;\n    }\n    for (let i = 0; i < arrayA.length; ++i) {\n      if (arrayA[i] !== arrayB[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyListComponent } from './list.component';\n\n/**\n * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.\n */\n@NgModule({\n  declarations: [SkyListComponent],\n  imports: [CommonModule],\n  exports: [SkyListComponent],\n})\nexport class SkyListModule {}\n","import { ListItemModel } from '@skyux/list-builder-common';\n\nexport class ListFilterModel {\n  /**\n   * The name of the filter.\n   * @required\n   */\n  public name: string;\n\n  /**\n   * The label for the filter's summary item.\n   * The label defaults to the `value` of the filter.\n   */\n  public label: string;\n\n  /**\n   * Whether users can dismiss the filter's summary item.\n   * @default true\n   */\n  public dismissible = true;\n\n  /**\n   * The current value of the filter.\n   */\n  public value: any;\n\n  /**\n   * The default value of the filter. When a filter equals the\n   * default value, the filter does not affect the list.\n   */\n  public defaultValue: any;\n\n  /**\n   * The function that determines whether items are filtered.\n   * This property is required when using an in-memory data provider.\n   * For information about `ListItemModel`, see the\n   * [shared classes for lists](https://developer.blackbaud.com/skyux-list-builder-common/docs/list-builder-common).\n   */\n  public filterFunction: (item: ListItemModel, filter: any) => boolean;\n\n  constructor(data?: any) {\n    if (data) {\n      this.name = data.name;\n      this.label = data.label;\n      this.filterFunction = data.filterFunction;\n      this.value = data.value;\n      this.dismissible = data.dismissible;\n      this.defaultValue = data.defaultValue;\n    }\n  }\n}\n","import { EventEmitter, TemplateRef } from '@angular/core';\nimport { ListItemModel } from '@skyux/list-builder-common';\n\n/**\n * @internal\n */\nexport class SkyListFilterInlineModel {\n  public name: string;\n  public value: any;\n  public defaultValue: any;\n  public filterFunction: (item: ListItemModel, filter: any) => boolean;\n  public onChange: EventEmitter<any> = new EventEmitter<any>();\n  public template: TemplateRef<unknown>;\n\n  constructor(data?: any) {\n    if (data) {\n      this.name = data.name;\n      this.filterFunction = data.filterFunction;\n      this.value = data.value;\n      this.template = data.template;\n      this.defaultValue = data.defaultValue;\n    }\n  }\n\n  public changed(value: any): void {\n    this.value = value;\n    this.onChange.emit(value);\n  }\n}\n","import {\n  AfterViewInit,\n  Component,\n  TemplateRef,\n  ViewChild,\n  inject,\n} from '@angular/core';\n\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\nimport { ListToolbarItemModel } from '../list/state/toolbar/toolbar-item.model';\n\n/**\n * Contains a filter button for the list toolbar. Place a\n * [`sky-filter-button`](https://developer.blackbaud.com/skyux/components/filter)\n * component inside this component to open a modal with filtering options.\n * To apply filter options, use the\n * [list component's](https://developer.blackbaud.com/skyux/components/list-overview?docs-active-tab=development#class_sky-list-component)\n * `appliedFilters` property.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-filter-button',\n  templateUrl: './list-filter-button.component.html',\n  standalone: false,\n})\nexport class SkyListFilterButtonComponent implements AfterViewInit {\n  @ViewChild('filterButton', {\n    read: TemplateRef,\n    static: true,\n  })\n  private filterButtonTemplate: TemplateRef<unknown>;\n\n  private filterButtonItemToolbarIndex = 5000;\n\n  private readonly dispatcher = inject(ListStateDispatcher);\n\n  public ngAfterViewInit(): void {\n    this.dispatcher.toolbarAddItems([\n      new ListToolbarItemModel({\n        template: this.filterButtonTemplate,\n        location: 'left',\n        index: this.filterButtonItemToolbarIndex,\n      }),\n    ]);\n  }\n}\n","<ng-template #filterButton>\n  <ng-content />\n</ng-template>\n","import {\n  Component,\n  Input,\n  OnInit,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n  selector: 'sky-list-filter-inline-item-renderer',\n  template: '<ng-template #container />',\n  standalone: false,\n})\nexport class SkyListFilterInlineItemRendererComponent implements OnInit {\n  @Input()\n  public template: TemplateRef<unknown>;\n  @Input()\n  public filter: any;\n\n  @ViewChild('container', {\n    read: ViewContainerRef,\n    static: true,\n  })\n  private container: ViewContainerRef;\n\n  public ngOnInit(): void {\n    /* istanbul ignore else */\n    /* sanity check */\n    if (this.template !== undefined) {\n      this.container.createEmbeddedView(this.template, this);\n    }\n  }\n}\n","import {\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnInit,\n  QueryList,\n  TemplateRef,\n} from '@angular/core';\nimport { ListItemModel } from '@skyux/list-builder-common';\n\n/**\n * Creates a filter in the list's inline filter area.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-filter-inline-item',\n  template: '<ng-content />',\n  standalone: false,\n})\nexport class SkyListFilterInlineItemComponent implements OnInit {\n  /**\n   * The name of the filter.\n   * @required\n   */\n  @Input()\n  public name: string;\n\n  /**\n   * The current value of the filter.\n   */\n  @Input()\n  public value: any;\n\n  /**\n   * The default value of the filter. If the value of the filter\n   * is set to the default value, then the filter is not applied.\n   */\n  @Input()\n  public defaultValue: any;\n\n  /**\n   * The function that determines whether an item is filtered.\n   * This property is required when using an in-memory data provider. For information\n   * about `ListItemModel`, see the\n   * [shared classes for lists](https://developer.blackbaud.com/skyux-list-builder-common/docs/list-builder-common).\n   */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('filter')\n  public filterFunction: (item: ListItemModel, filter: any) => boolean;\n\n  /**\n   * The template for the filter. The template can access the `filter`\n   * variable that contains the `value` of the filter control, which should be bound to\n   * `ngModel`, and the `changed` function, which should be called when the model changes.\n   * @required\n   */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('template')\n  public templateInput: TemplateRef<unknown>;\n\n  public onChange: EventEmitter<any> = new EventEmitter<any>();\n\n  @ContentChildren(TemplateRef)\n  private templates: QueryList<TemplateRef<unknown>>;\n\n  public ngOnInit(): void {\n    if (this.name === undefined || this.name.length === 0) {\n      throw new Error('Inline filter requires a name.');\n    }\n  }\n\n  public get template(): TemplateRef<unknown> {\n    return this.templates.length > 0\n      ? this.templates.first\n      : this.templateInput;\n  }\n}\n","import {\n  AfterContentInit,\n  Component,\n  ContentChildren,\n  QueryList,\n  inject,\n} from '@angular/core';\n\nimport { take } from 'rxjs/operators';\n\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\nimport { ListState } from '../list/state/list-state.state-node';\nimport { ListPagingSetPageNumberAction } from '../list/state/paging/set-page-number.action';\n\nimport { ListFilterModel } from './filter.model';\nimport { SkyListFilterInlineItemComponent } from './list-filter-inline-item.component';\nimport { SkyListFilterInlineModel } from './list-filter-inline.model';\n\n/**\n * Creates an inline filter area for the list. Place each filter\n * in a `sky-list-filter-inline-item` component.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-filter-inline',\n  templateUrl: './list-filter-inline.component.html',\n  standalone: false,\n})\nexport class SkyListFilterInlineComponent implements AfterContentInit {\n  public inlineFilters: SkyListFilterInlineModel[] = [];\n\n  @ContentChildren(SkyListFilterInlineItemComponent)\n  private filters: QueryList<SkyListFilterInlineItemComponent>;\n\n  private readonly dispatcher = inject(ListStateDispatcher);\n  private readonly state = inject(ListState);\n\n  public ngAfterContentInit(): void {\n    this.inlineFilters = this.filters.map((filter) => {\n      return new SkyListFilterInlineModel({\n        name: filter.name,\n        filterFunction: filter.filterFunction,\n        template: filter.template,\n        value: filter.value,\n        defaultValue: filter.defaultValue,\n      });\n    });\n\n    this.inlineFilters.forEach((filter) => {\n      filter.onChange.subscribe((value: any) => {\n        this.applyFilters();\n      });\n    });\n\n    this.dispatcher.filtersUpdate(\n      this.getFilterModelFromInline(this.inlineFilters),\n    );\n  }\n\n  public applyFilters(): void {\n    this.state.pipe(take(1)).subscribe((currentState) => {\n      if (\n        currentState.paging.pageNumber &&\n        currentState.paging.pageNumber !== 1\n      ) {\n        this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));\n      }\n\n      this.dispatcher.filtersUpdate(\n        this.getFilterModelFromInline(this.inlineFilters),\n      );\n    });\n  }\n\n  private getFilterModelFromInline(\n    inlineFilters: SkyListFilterInlineModel[],\n  ): ListFilterModel[] {\n    return inlineFilters.map((filter) => {\n      return new ListFilterModel({\n        name: filter.name,\n        value: filter.value,\n        filterFunction: filter.filterFunction,\n        defaultValue: filter.defaultValue,\n      });\n    });\n  }\n}\n","<ng-content />\n\n<sky-filter-inline>\n  @for (filter of inlineFilters; track filter) {\n    <sky-filter-inline-item>\n      <sky-list-filter-inline-item-renderer\n        [template]=\"filter.template\"\n        [filter]=\"filter\"\n      />\n    </sky-filter-inline-item>\n  }\n</sky-filter-inline>\n","import {\n  AfterContentInit,\n  Component,\n  EventEmitter,\n  Output,\n  inject,\n} from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { map as observableMap, take } from 'rxjs/operators';\n\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\nimport { ListState } from '../list/state/list-state.state-node';\n\nimport { ListFilterModel } from './filter.model';\n\n/**\n * Creates a filter summary based on the\n * [list component's](https://developer.blackbaud.com/skyux/components/list-overview?docs-active-tab=development#class_sky-list-component)\n * `appliedFilters` property. Place this component within the\n * [`sky-list-toolbar`](https://developer.blackbaud.com/skyux/components/list-toolbar) component.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-filter-summary',\n  templateUrl: './list-filter-summary.component.html',\n  standalone: false,\n})\nexport class SkyListFilterSummaryComponent implements AfterContentInit {\n  /**\n   * Emits a `ListFilterModel` when users select a summary item. A common use case is\n   * to open a filter modal when this event is received.\n   */\n  @Output()\n  public summaryItemClick = new EventEmitter<ListFilterModel>();\n\n  public appliedFilters: Observable<ListFilterModel[]>;\n\n  private readonly state = inject(ListState);\n  private readonly dispatcher = inject(ListStateDispatcher);\n\n  public ngAfterContentInit(): void {\n    // The setTimeout here is to ensure we avoid any ExpressionChangedAfterItHasBeenCheckedError issues.\n    setTimeout(() => {\n      this.appliedFilters = this.state.pipe(\n        observableMap((state) => {\n          return state.filters.filter((filter) => {\n            return (\n              filter.value !== '' &&\n              filter.value !== undefined &&\n              filter.value !== false &&\n              filter.value !== filter.defaultValue\n            );\n          });\n        }),\n      );\n    });\n  }\n\n  public filterSummaryItemDismiss(index: number): void {\n    this.appliedFilters.pipe(take(1)).subscribe((filters) => {\n      filters.splice(index, 1);\n      this.dispatcher.filtersUpdate(filters.slice());\n    });\n  }\n\n  public filterSummaryItemClick(item: ListFilterModel): void {\n    this.summaryItemClick.emit(item);\n  }\n}\n","<sky-filter-summary>\n  @for (item of appliedFilters | async; track item; let i = $index) {\n    <sky-filter-summary-item\n      [dismissible]=\"item.dismissible\"\n      (dismiss)=\"filterSummaryItemDismiss(i)\"\n      (itemClick)=\"filterSummaryItemClick(item)\"\n    >\n      {{ item.label || item.value }}\n    </sky-filter-summary-item>\n  }\n</sky-filter-summary>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyFilterModule } from '@skyux/lists';\n\nimport { SkyListFilterButtonComponent } from './list-filter-button.component';\nimport { SkyListFilterInlineItemRendererComponent } from './list-filter-inline-item-renderer.component';\nimport { SkyListFilterInlineItemComponent } from './list-filter-inline-item.component';\nimport { SkyListFilterInlineComponent } from './list-filter-inline.component';\nimport { SkyListFilterSummaryComponent } from './list-filter-summary.component';\n\n/**\n * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.\n */\n@NgModule({\n  declarations: [\n    SkyListFilterButtonComponent,\n    SkyListFilterSummaryComponent,\n    SkyListFilterInlineItemComponent,\n    SkyListFilterInlineComponent,\n    SkyListFilterInlineItemRendererComponent,\n  ],\n  imports: [CommonModule, SkyFilterModule],\n  exports: [\n    SkyListFilterButtonComponent,\n    SkyListFilterSummaryComponent,\n    SkyListFilterInlineItemComponent,\n    SkyListFilterInlineComponent,\n  ],\n})\nexport class SkyListFiltersModule {}\n","import { BehaviorSubject } from 'rxjs';\n\nimport { ListStateDispatcher } from './state/list-state.rxstate';\nimport { ListState } from './state/list-state.state-node';\n\n/**\n * The SKY UX-themed pagination control that displays list data across multiple pages.\n * @internal\n * @deprecated\n */\nexport abstract class ListPagingComponent {\n  protected initialized = new BehaviorSubject<boolean>(false);\n  protected state: ListState;\n  protected dispatcher: ListStateDispatcher;\n\n  constructor(state: ListState, dispatcher: ListStateDispatcher) {\n    this.state = state;\n    this.dispatcher = dispatcher;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnInit,\n  forwardRef,\n  inject,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport { AsyncList, ListItemModel, getValue } from '@skyux/list-builder-common';\n\nimport { Observable } from 'rxjs';\nimport {\n  distinctUntilChanged,\n  map as observableMap,\n  scan,\n} from 'rxjs/operators';\n\nimport { ListPagingComponent } from '../list/list-paging.component';\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\nimport { ListState } from '../list/state/list-state.state-node';\nimport { ListPagingSetItemsPerPageAction } from '../list/state/paging/set-items-per-page.action';\nimport { ListPagingSetMaxPagesAction } from '../list/state/paging/set-max-pages.action';\nimport { ListPagingSetPageNumberAction } from '../list/state/paging/set-page-number.action';\n\n/* istanbul ignore next */\nconst listPagingComponentRef = forwardRef(() => SkyListPagingComponent);\n\n/**\n * Displays a pagination control for a SKY UX-themed list of data.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-paging',\n  templateUrl: './list-paging.component.html',\n  providers: [\n    { provide: ListPagingComponent, useExisting: listPagingComponentRef },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyListPagingComponent\n  extends ListPagingComponent\n  implements OnInit\n{\n  /**\n   * The number of list items per page.\n   * @default 10\n   */\n  @Input()\n  public pageSize: Observable<number> | number = 10;\n\n  /**\n   * The maximum pages to display.\n   * @default 5\n   */\n  @Input()\n  public maxPages: Observable<number> | number = 5;\n\n  /**\n   * The current page number.\n   * @default 1\n   */\n  @Input()\n  public pageNumber: Observable<number> | number = 1;\n\n  public currentPageNumber: Observable<number>;\n\n  public maxDisplayedPages: Observable<number>;\n\n  public itemsPerPage: Observable<number>;\n\n  public itemCount: Observable<number>;\n\n  constructor() {\n    super(inject(ListState), inject(ListStateDispatcher));\n    inject(SkyLogService).deprecated('SkyListPagingComponent', {\n      deprecationMajorVersion: 6,\n      moreInfoUrl:\n        'https://developer.blackbaud.com/skyux/components/data-manager',\n      replacementRecommendation:\n        'Use data manager and the paging component instead.',\n    });\n  }\n\n  public ngOnInit(): void {\n    this.currentPageNumber = this.state.pipe(\n      observableMap((s) => s.paging.pageNumber),\n    );\n\n    this.maxDisplayedPages = this.state.pipe(\n      observableMap((s) => s.paging.maxDisplayedPages),\n    );\n\n    this.itemsPerPage = this.state.pipe(\n      observableMap((s) => s.paging.itemsPerPage),\n    );\n\n    this.itemCount = this.state.pipe(\n      observableMap((s) => {\n        return s.items;\n      }),\n      scan(\n        (\n          previousValue: AsyncList<ListItemModel>,\n          newValue: AsyncList<ListItemModel>,\n        ) => {\n          if (previousValue.lastUpdate > newValue.lastUpdate) {\n            return previousValue;\n          } else {\n            return newValue;\n          }\n        },\n      ),\n      observableMap((result: AsyncList<ListItemModel>) => {\n        return result.count;\n      }),\n      distinctUntilChanged(),\n    );\n\n    // subscribe to or use inputs\n    getValue(this.pageSize, (pageSize: number) =>\n      this.dispatcher.next(\n        new ListPagingSetItemsPerPageAction(Number(pageSize)),\n      ),\n    );\n    getValue(this.maxPages, (maxPages: number) =>\n      this.dispatcher.next(new ListPagingSetMaxPagesAction(Number(maxPages))),\n    );\n    getValue(this.pageNumber, (pageNumber: number) =>\n      this.dispatcher.next(\n        new ListPagingSetPageNumberAction(Number(pageNumber)),\n      ),\n    );\n  }\n\n  public pageChange(currentPage: number): void {\n    // Paging must be updated after list data has been updated.\n    // Adding a setTimeout will pull it out of the stream.\n    setTimeout(() => {\n      this.dispatcher.next(\n        new ListPagingSetPageNumberAction(Number(currentPage)),\n      );\n    });\n  }\n}\n","<sky-paging\n  [pageSize]=\"itemsPerPage | async\"\n  [maxPages]=\"maxDisplayedPages | async\"\n  [currentPage]=\"currentPageNumber | async\"\n  [itemCount]=\"itemCount | async\"\n  (currentPageChange)=\"pageChange($event)\"\n/>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyPagingModule } from '@skyux/lists';\n\nimport { SkyListPagingComponent } from './list-paging.component';\n\n/**\n * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.\n */\n@NgModule({\n  declarations: [SkyListPagingComponent],\n  imports: [CommonModule, SkyPagingModule],\n  exports: [SkyListPagingComponent],\n})\nexport class SkyListPagingModule {}\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-list-builder' 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_list_show_secondary_actions_button: { message: 'More' },\n    skyux_list_multiselect_clear_all: { message: 'Clear all' },\n    skyux_list_multiselect_select_all: { message: 'Select all' },\n    skyux_list_multiselect_show_selected: {\n      message: 'Only show selected items',\n    },\n    skyux_list_view_switcher_dropdown_title: { message: 'Select view' },\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 SkyListBuilderResourcesModule {}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { SkyListSecondaryAction } from './list-secondary-action';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyListSecondaryActionsService implements OnDestroy {\n  public secondaryActionsCount = 0;\n  public secondaryActionsSubject = new BehaviorSubject<number>(0);\n  public actionsStream = new BehaviorSubject<SkyListSecondaryAction[]>([]);\n  private actions: SkyListSecondaryAction[] = [];\n\n  public addSecondaryAction(action: SkyListSecondaryAction): void {\n    this.secondaryActionsCount++;\n    this.secondaryActionsSubject.next(this.secondaryActionsCount);\n    this.actions.push(action);\n    this.actionsStream.next(this.actions);\n  }\n\n  public removeSecondaryAction(action: any): void {\n    this.secondaryActionsCount--;\n    this.secondaryActionsSubject.next(this.secondaryActionsCount);\n    this.actions = this.actions.filter(\n      (existingItem) => existingItem !== action,\n    );\n    this.actionsStream.next(this.actions);\n  }\n\n  public ngOnDestroy(): void {\n    this.secondaryActionsSubject.complete();\n    this.actionsStream.complete();\n  }\n}\n","import {\n  AfterContentInit,\n  Component,\n  TemplateRef,\n  ViewChild,\n  inject,\n} from '@angular/core';\n\nimport { SkyListSecondaryActionsService } from './list-secondary-actions.service';\n\n/**\n * Adds actions to the secondary actions dropdown in the list toolbar.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-secondary-action',\n  templateUrl: './list-secondary-action.component.html',\n  standalone: false,\n})\nexport class SkyListSecondaryActionComponent implements AfterContentInit {\n  @ViewChild('listSecondaryAction', {\n    read: TemplateRef,\n    static: true,\n  })\n  private templateRef: TemplateRef<unknown>;\n\n  private readonly actionService = inject(SkyListSecondaryActionsService);\n\n  public ngAfterContentInit(): void {\n    this.actionService.addSecondaryAction({\n      template: this.templateRef,\n    });\n  }\n}\n","<ng-template #listSecondaryAction>\n  <ng-content />\n</ng-template>\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  OnDestroy,\n  OnInit,\n  inject,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\nimport { SkyListSecondaryAction } from './list-secondary-action';\nimport { SkyListSecondaryActionsService } from './list-secondary-actions.service';\n\n// Note: this component is needed to ensure any reactive styles placed in the element have\n// their host to be based off of. Without this component the host is not written via the dispatcher.\n\n/**\n * @internal\n */\n@Component({\n  selector: 'sky-list-secondary-actions-host',\n  templateUrl: './list-secondary-actions-host.component.html',\n  styleUrls: ['./list-secondary-actions-host.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyListSecondaryActionsHostComponent implements OnInit, OnDestroy {\n  public dropdownHidden = false;\n  public actions: any[] = [];\n\n  private ngUnsubscribe = new Subject<void>();\n\n  private readonly changeDetector = inject(ChangeDetectorRef);\n  private readonly actionService = inject(SkyListSecondaryActionsService);\n\n  public ngOnInit(): void {\n    this.actionService.actionsStream\n      .pipe(takeUntil(this.ngUnsubscribe), distinctUntilChanged())\n      .subscribe((actions: SkyListSecondaryAction[]) => {\n        const hasSecondaryActions = actions.length > 0;\n        this.dropdownHidden = !hasSecondaryActions;\n        this.actions = actions;\n        this.changeDetector.detectChanges();\n      });\n  }\n\n  public ngOnDestroy(): void {\n    this.ngUnsubscribe.next();\n    this.ngUnsubscribe.complete();\n  }\n}\n","<div\n  class=\"sky-list-secondary-actions\"\n  [ngClass]=\"{ 'sky-list-secondary-actions-hidden': dropdownHidden }\"\n>\n  <sky-dropdown\n    [attr.title]=\"'skyux_list_show_secondary_actions_button' | skyLibResources\"\n    [label]=\"'skyux_list_show_secondary_actions_button' | skyLibResources\"\n  >\n    <sky-dropdown-button>\n      <sky-icon iconName=\"more-actions\" />\n      <span class=\"sky-list-secondary-actions-btn-text\">\n        {{ 'skyux_list_show_secondary_actions_button' | skyLibResources }}\n      </span>\n    </sky-dropdown-button>\n    <sky-dropdown-menu>\n      @for (action of actions; track action) {\n        <sky-dropdown-item>\n          <ng-container *ngTemplateOutlet=\"action.template\" />\n        </sky-dropdown-item>\n      }\n    </sky-dropdown-menu>\n  </sky-dropdown>\n</div>\n<ng-content />\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  TemplateRef,\n  ViewChild,\n  inject,\n} from '@angular/core';\n\nimport { ListStateDispatcher } from '../../list/state/list-state.rxstate';\nimport { ListToolbarItemModel } from '../../list/state/toolbar/toolbar-item.model';\n\nimport { SkyListSecondaryActionsService } from './list-secondary-actions.service';\n\n/**\n * Adds a dropdown to the list toolbar for secondary actions. If the dropdown does not\n * include actions, the secondary actions dropdown is hidden.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-secondary-actions',\n  templateUrl: './list-secondary-actions.component.html',\n  providers: [SkyListSecondaryActionsService],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyListSecondaryActionsComponent implements AfterViewInit {\n  public actions: any[] = [];\n\n  @ViewChild('secondaryActions', {\n    read: TemplateRef,\n    static: true,\n  })\n  private secondaryActionsTemplate: TemplateRef<unknown>;\n\n  private secondaryActionsItemToolbarIndex = 5000;\n\n  private readonly dispatcher = inject(ListStateDispatcher);\n\n  public ngAfterViewInit(): void {\n    const secondaryActionItem = new ListToolbarItemModel({\n      id: 'secondary-actions',\n      template: this.secondaryActionsTemplate,\n      location: 'center',\n      index: this.secondaryActionsItemToolbarIndex,\n    });\n\n    this.dispatcher.toolbarAddItems([secondaryActionItem]);\n  }\n}\n","<ng-template #secondaryActions>\n  <sky-list-secondary-actions-host>\n    <ng-content />\n  </sky-list-secondary-actions-host>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\nimport { SkyListBuilderResourcesModule } from '../../shared/sky-list-builder-resources.module';\n\nimport { SkyListSecondaryActionComponent } from './list-secondary-action.component';\nimport { SkyListSecondaryActionsHostComponent } from './list-secondary-actions-host.component';\nimport { SkyListSecondaryActionsComponent } from './list-secondary-actions.component';\n\n/**\n * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.\n */\n@NgModule({\n  declarations: [\n    SkyListSecondaryActionsComponent,\n    SkyListSecondaryActionsHostComponent,\n    SkyListSecondaryActionComponent,\n  ],\n  imports: [\n    CommonModule,\n    SkyDropdownModule,\n    SkyIconModule,\n    SkyListBuilderResourcesModule,\n  ],\n  exports: [SkyListSecondaryActionsComponent, SkyListSecondaryActionComponent],\n})\nexport class SkyListSecondaryActionsModule {}\n","import {\n  Component,\n  Input,\n  OnInit,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n  selector: 'sky-list-toolbar-item-renderer',\n  template: '<ng-template #container />',\n  standalone: false,\n})\nexport class SkyListToolbarItemRendererComponent implements OnInit {\n  @Input()\n  public template: TemplateRef<unknown>;\n\n  @ViewChild('container', {\n    read: ViewContainerRef,\n    static: true,\n  })\n  private container: ViewContainerRef;\n\n  public ngOnInit(): void {\n    if (this.template !== undefined) {\n      this.container.createEmbeddedView(this.template, this);\n    }\n  }\n}\n","import { Component, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { SkyCheckboxChange } from '@skyux/forms';\nimport { ListItemModel } from '@skyux/list-builder-common';\n\nimport { Subject } from 'rxjs';\nimport {\n  distinctUntilChanged,\n  map as observableMap,\n  take,\n  takeUntil,\n} from 'rxjs/operators';\n\nimport { ListFilterModel } from '../list-filters/filter.model';\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\nimport { ListState } from '../list/state/list-state.state-node';\nimport { ListPagingSetPageNumberAction } from '../list/state/paging/set-page-number.action';\nimport { ListSelectedModel } from '../list/state/selected/selected.model';\n\nlet uniqueId = 0;\n\n/**\n * @internal\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-multiselect-toolbar',\n  templateUrl: './list-multiselect-toolbar.component.html',\n  styleUrls: ['./list-multiselect-toolbar.component.scss'],\n  standalone: false,\n})\nexport class SkyListMultiselectToolbarComponent implements OnInit, OnDestroy {\n  @Input()\n  public showOnlySelected = false;\n\n  public multiselectToolbarId = `sky-list-multiselect-toolbar-${uniqueId++}`;\n\n  private selectedIdMap = new Map<string, boolean>();\n\n  private ngUnsubscribe = new Subject<void>();\n\n  private readonly state = inject(ListState);\n  private readonly dispatcher = inject(ListStateDispatcher);\n\n  public ngOnInit(): void {\n    this.state\n      .pipe(\n        observableMap((t) => t.selected.item),\n        takeUntil(this.ngUnsubscribe),\n        distinctUntilChanged(this.selectedMapEqual),\n      )\n      .subscribe((model: ListSelectedModel) => {\n        this.selectedIdMap = model.selectedIdMap;\n\n        if (this.showOnlySelected) {\n          this.reapplyFilter(true);\n        }\n      });\n\n    // If 'show-selected' filter is programmatically set from a child component (e.g. checklist),\n    // make sure the checked state of the 'show-selected' checkbox stays in sync.\n    this.state\n      .pipe(\n        observableMap((t) => t.filters),\n        takeUntil(this.ngUnsubscribe),\n        distinctUntilChanged(this.showSelectedValuesEqual),\n      )\n      .subscribe((filters: ListFilterModel[]) => {\n        const showSelectedFilter = filters.find(\n          (filter) => filter.name === 'show-selected',\n        );\n        if (showSelectedFilter) {\n          this.showOnlySelected = showSelectedFilter.value === 'true';\n        }\n      });\n  }\n\n  public ngOnDestroy(): void {\n    this.ngUnsubscribe.next();\n    this.ngUnsubscribe.complete();\n  }\n\n  public selectAll(): void {\n    this.state\n      .pipe(\n        observableMap((state) => state.items.items),\n        take(1),\n      )\n      .subscribe((items) => {\n        this.dispatcher.setSelected(\n          items.map((item) => item.id),\n          true,\n        );\n        if (this.showOnlySelected) {\n          this.reapplyFilter(this.showOnlySelected);\n        }\n      });\n  }\n\n  public clearSelections(): void {\n    this.state\n      .pipe(\n        observableMap((state) => state.items.items),\n        take(1),\n      )\n      .subscribe((items) => {\n        this.dispatcher.setSelected(\n          items.map((item) => item.id),\n          false,\n        );\n        if (this.showOnlySelected) {\n          this.reapplyFilter(this.showOnlySelected);\n        }\n      });\n  }\n\n  public changeVisibleItems(change: SkyCheckboxChange): void {\n    this.showOnlySelected = change.checked;\n    this.reapplyFilter(change.checked);\n  }\n\n  private reapplyFilter(isSelected: boolean): void {\n    this.state\n      .pipe(\n        observableMap((state) => state.filters),\n        take(1),\n      )\n      .subscribe((filters: ListFilterModel[]) => {\n        filters = filters.filter((filter) => filter.name !== 'show-selected');\n        filters.push(this.getShowSelectedFilter(isSelected));\n        this.dispatcher.filtersUpdate(filters);\n      });\n\n    // If \"show selected\" is checked and paging is enabled, go to page one.\n    /* istanbul ignore else */\n    if (isSelected) {\n      this.state.pipe(take(1)).subscribe((currentState) => {\n        if (\n          currentState.paging.pageNumber &&\n          currentState.paging.pageNumber !== 1\n        ) {\n          this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));\n        }\n      });\n    }\n    this.dispatcher.toolbarSetDisabled(isSelected);\n  }\n\n  private getShowSelectedFilter(isSelected: boolean): ListFilterModel {\n    return new ListFilterModel({\n      name: 'show-selected',\n      value: isSelected.toString(),\n      filterFunction: (\n        model: ListItemModel,\n        showOnlySelected: boolean,\n      ): boolean => {\n        /* istanbul ignore else */\n        if (showOnlySelected.toString() !== false.toString()) {\n          return this.selectedIdMap.get(model.id);\n        }\n      },\n      defaultValue: false.toString(),\n    });\n  }\n\n  private showSelectedValuesEqual(\n    prev: ListFilterModel[],\n    next: ListFilterModel[],\n  ): boolean {\n    const prevShowSelectedFilter = prev.find(\n      (filter) => filter.name === 'show-selected',\n    );\n    const nextShowSelectedFilter = next.find(\n      (filter) => filter.name === 'show-selected',\n    );\n\n    // Both undefined.\n    if (!prevShowSelectedFilter && !nextShowSelectedFilter) {\n      return true;\n    }\n\n    // Only one undefined.\n    if (\n      (prevShowSelectedFilter && !nextShowSelectedFilter) ||\n      (!prevShowSelectedFilter && nextShowSelectedFilter)\n    ) {\n      return false;\n    }\n\n    // Defined, but with different \"value\".\n    return prevShowSelectedFilter.value === nextShowSelectedFilter.value;\n  }\n\n  private selectedMapEqual(\n    prev: ListSelectedModel,\n    next: ListSelectedModel,\n  ): boolean {\n    if (prev.selectedIdMap.size !== next.selectedIdMap.size) {\n      return false;\n    }\n\n    for (let i = 0; i < next.selectedIdMap.size; i++) {\n      const key = Array.from(next.selectedIdMap.keys())[i];\n      const value = next.selectedIdMap.get(key);\n      /* istanbul ignore next */\n      if (value !== prev.selectedIdMap.get(key)) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n}\n","<sky-toolbar class=\"sky-list-multiselect-toolbar\">\n  <sky-toolbar-section>\n    <sky-toolbar-item>\n      <sky-list-toolbar-item-renderer [template]=\"selectAllTemplate\" />\n    </sky-toolbar-item>\n    <sky-toolbar-item>\n      <sky-list-toolbar-item-renderer [template]=\"clearSelectionsTemplate\" />\n    </sky-toolbar-item>\n    <sky-toolbar-view-actions>\n      <ng-container *ngTemplateOutlet=\"showSelectedTemplate\" />\n    </sky-toolbar-view-actions>\n  </sky-toolbar-section>\n</sky-toolbar>\n\n<ng-template #selectAllTemplate>\n  <button\n    class=\"sky-btn sky-btn-link\"\n    type=\"button\"\n    [attr.id]=\"multiselectToolbarId + '-select-all'\"\n    (click)=\"selectAll(); $event.preventDefault()\"\n  >\n    {{ 'skyux_list_multiselect_select_all' | skyLibResources }}\n  </button>\n</ng-template>\n\n<ng-template #clearSelectionsTemplate>\n  <button\n    class=\"sky-btn sky-btn-link\"\n    type=\"button\"\n    [attr.id]=\"multiselectToolbarId + '-clear-all'\"\n    (click)=\"clearSelections(); $event.preventDefault()\"\n  >\n    {{ 'skyux_list_multiselect_clear_all' | skyLibResources }}\n  </button>\n</ng-template>\n\n<ng-template #showSelectedTemplate>\n  <sky-checkbox\n    [attr.id]=\"multiselectToolbarId + '-show-selected'\"\n    [checked]=\"showOnlySelected\"\n    (change)=\"changeVisibleItems($event)\"\n  >\n    <sky-checkbox-label>\n      {{ 'skyux_list_multiselect_show_selected' | skyLibResources }}\n    </sky-checkbox-label>\n  </sky-checkbox>\n</ng-template>\n","import {\n  Component,\n  ContentChildren,\n  Input,\n  QueryList,\n  TemplateRef,\n} from '@angular/core';\n\nlet idIndex = 0;\n\n/**\n * Defines a toolbar item for the list toolbar.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-toolbar-item',\n  template: '<ng-content />',\n  standalone: false,\n})\nexport class SkyListToolbarItemComponent {\n  /**\n   * The ID of the item.\n   */\n  @Input() public id = `sky-list-toolbar-item-${++idIndex}`;\n  /**\n   * The index of the item at the given item location.\n   * @default -1\n   */\n  @Input() public index = -1;\n  /**\n   * The toolbar location of the item. The valid options are `\"left\"`,\n   * `\"center\"`, and `\"right\"`.\n   * @default \"left\"\n   */\n  @Input() public location = 'left';\n  @ContentChildren(TemplateRef) private templates: QueryList<\n    TemplateRef<unknown>\n  >;\n  public get template(): TemplateRef<unknown> {\n    return this.templates.length > 0 ? this.templates.first : undefined;\n  }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Displays custom actions in the toolbar beside to the search bar.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-toolbar-search-actions',\n  templateUrl: './list-toolbar-search-actions.component.html',\n  styleUrls: ['./list-toolbar-search-actions.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyListToolbarSearchActionsComponent {}\n","<div class=\"sky-list-toolbar-search-actions\">\n  <ng-content />\n</div>\n","import { Component, Input } from '@angular/core';\n\n/**\n * Adds a sort dropdown to the list toolbar.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-toolbar-sort',\n  template: '',\n  standalone: false,\n})\nexport class SkyListToolbarSortComponent {\n  /**\n   * The label for a sort option.\n   * @required\n   */\n  @Input()\n  public label: string;\n  /**\n   * The data field to sort the list on.\n   * @required\n   */\n  @Input()\n  public field: string;\n  /**\n   * The data type of the data field to sort the list on.\n   * @required\n   */\n  @Input()\n  public type: string;\n  /**\n   * Whether to sort data in descending order.\n   * @default false\n   */\n  @Input()\n  public descending: boolean;\n}\n","import { Component, inject } from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\n\n/**\n * Adds a section on the right side of the toolbar for items that substantially change\n * or affect the view of the list. This includes simple filters and view switchers.\n * If the view section includes more than one item, simple filters appear on the left\n * and view switchers appear on the right.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-toolbar-view-actions',\n  templateUrl: './list-toolbar-view-actions.component.html',\n  styleUrls: ['./list-toolbar-view-actions.component.scss'],\n  standalone: false,\n})\nexport class SkyListToolbarViewActionsComponent {\n  constructor() {\n    inject(SkyLogService).deprecated('SkyListToolbarViewActionsComponent', {\n      deprecationMajorVersion: 6,\n      moreInfoUrl:\n        'https://developer.blackbaud.com/skyux/components/data-manager',\n      replacementRecommendation: 'Use data manager instead.',\n    });\n  }\n}\n","<ng-content />\n","/**\n * @internal\n */\nexport class ListToolbarConfigSetSearchEnabledAction {\n  constructor(public enabled: boolean) {}\n}\n","/**\n * @internal\n */\nexport class ListToolbarConfigSetSortSelectorEnabledAction {\n  /* istanbul ignore next */\n  constructor(public enabled = true) {}\n}\n","/**\n * @internal\n */\nexport class ListToolbarConfigModel {\n  public searchEnabled = true;\n  public sortSelectorEnabled = true;\n\n  constructor(data?: any) {\n    if (data) {\n      this.searchEnabled = data.searchEnabled;\n      this.sortSelectorEnabled = data.sortSelectorEnabled;\n    }\n  }\n}\n","import { ListToolbarConfigModel } from './config/config.model';\n\n/**\n * @internal\n */\nexport class ListToolbarStateModel {\n  public config: ListToolbarConfigModel = new ListToolbarConfigModel();\n}\n","import { Injectable } from '@angular/core';\nimport { StateDispatcher, StateOrchestrator } from '@skyux/list-builder-common';\n\nimport { ListToolbarStateAction } from './toolbar-state-action.type';\n\n/**\n * @internal\n */\n@Injectable()\nexport class ListToolbarStateDispatcher extends StateDispatcher<ListToolbarStateAction> {}\n\n/**\n * @internal\n */\nexport class ListToolbarStateOrchestrator<T> extends StateOrchestrator<\n  T,\n  ListToolbarStateAction\n> {}\n","import { ListToolbarStateOrchestrator } from '../toolbar-state.rxstate';\n\nimport { ListToolbarConfigModel } from './config.model';\nimport { ListToolbarConfigSetSearchEnabledAction } from './set-search-enabled.action';\nimport { ListToolbarConfigSetSortSelectorEnabledAction } from './set-sort-selector-enabled.action';\n\n/**\n * @internal\n */\nexport class ListToolbarConfigOrchestrator extends ListToolbarStateOrchestrator<ListToolbarConfigModel> {\n  /* istanbul ignore next */\n  constructor() {\n    super();\n\n    this.register(\n      ListToolbarConfigSetSearchEnabledAction,\n      this.setSearchEnabled,\n    ).register(\n      ListToolbarConfigSetSortSelectorEnabledAction,\n      this.setSortSelectorEnabled,\n    );\n  }\n\n  private setSearchEnabled(\n    state: ListToolbarConfigModel,\n    action: ListToolbarConfigSetSearchEnabledAction,\n  ): ListToolbarConfigModel {\n    return new ListToolbarConfigModel(\n      Object.assign({}, state, { searchEnabled: action.enabled }),\n    );\n  }\n\n  private setSortSelectorEnabled(\n    state: ListToolbarConfigModel,\n    action: ListToolbarConfigSetSortSelectorEnabledAction,\n  ): ListToolbarConfigModel {\n    return new ListToolbarConfigModel(\n      Object.assign({}, state, { sortSelectorEnabled: action.enabled }),\n    );\n  }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { StateNode } from '@skyux/list-builder-common';\n\nimport { ListToolbarConfigOrchestrator } from './config/config.orchestrator';\nimport { ListToolbarStateModel } from './toolbar-state.model';\nimport { ListToolbarStateDispatcher } from './toolbar-state.rxstate';\n\n/**\n * @internal\n */\n@Injectable()\nexport class ListToolbarState extends StateNode<ListToolbarStateModel> {\n  constructor() {\n    super(inject(ListToolbarStateModel), inject(ListToolbarStateDispatcher));\n\n    this.register('config', ListToolbarConfigOrchestrator).begin();\n  }\n}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  Input,\n  OnDestroy,\n  OnInit,\n  QueryList,\n  TemplateRef,\n  ViewChild,\n  inject,\n} from '@angular/core';\nimport { SkyLogService } from '@skyux/core';\nimport {\n  ListSortFieldSelectorModel,\n  getValue,\n} from '@skyux/list-builder-common';\nimport { SkySearchComponent } from '@skyux/lookup';\n\nimport {\n  Observable,\n  Subject,\n  combineLatest as observableCombineLatest,\n} from 'rxjs';\nimport {\n  distinctUntilChanged,\n  map as observableMap,\n  take,\n  takeUntil,\n} from 'rxjs/operators';\n\nimport { ListFilterModel } from '../list-filters/filter.model';\nimport { SkyListFilterInlineComponent } from '../list-filters/list-filter-inline.component';\nimport { SkyListFilterSummaryComponent } from '../list-filters/list-filter-summary.component';\nimport { ListStateDispatcher } from '../list/state/list-state.rxstate';\nimport { ListState } from '../list/state/list-state.state-node';\nimport { ListPagingSetPageNumberAction } from '../list/state/paging/set-page-number.action';\nimport { ListSortLabelModel } from '../list/state/sort/label.model';\nimport { ListToolbarSetTypeAction } from '../list/state/toolbar/set-type.action';\nimport { ListToolbarItemModel } from '../list/state/toolbar/toolbar-item.model';\nimport { ListToolbarModel } from '../list/state/toolbar/toolbar.model';\n\nimport { SkyListToolbarItemComponent } from './list-toolbar-item.component';\nimport { SkyListToolbarSortComponent } from './list-toolbar-sort.component';\nimport { SkyListToolbarViewActionsComponent } from './list-toolbar-view-actions.component';\nimport { ListToolbarConfigSetSearchEnabledAction } from './state/config/set-search-enabled.action';\nimport { ListToolbarConfigSetSortSelectorEnabledAction } from './state/config/set-sort-selector-enabled.action';\nimport { ListToolbarStateModel } from './state/toolbar-state.model';\nimport { ListToolbarStateDispatcher } from './state/toolbar-state.rxstate';\nimport { ListToolbarState } from './state/toolbar-state.state-node';\n\nlet nextId = 0;\n\n/**\n * Displays a toolbar for a SKY UX-themed list of data.\n * @deprecated\n */\n@Component({\n  selector: 'sky-list-toolbar',\n  templateUrl: './list-toolbar.component.html',\n  styleUrls: ['./list-toolbar.component.scss'],\n  providers: [\n    ListToolbarState,\n    ListToolbarStateDispatcher,\n    ListToolbarStateModel,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\n})\nexport class SkyListToolbarComponent\n  implements OnInit, AfterContentInit, OnDestroy\n{\n  /**\n   * Whether to use the in-memory search.\n   * Setting this to `false` will allow consumers to run their own searches remotely,\n   * and push new values to the list component by updating the `data` property.\n   * @default true\n   * @internal\n   */\n  @Input()\n  public set inMemorySearchEnabled(value: boolean) {\n    this._inMemorySearchEnabled = value;\n  }\n\n  public get inMemorySearchEnabled(): boolean {\n    if (this._inMemorySearchEnabled === undefined) {\n      return true;\n    }\n    return this._inMemorySearchEnabled;\n  }\n\n  /**\n   * Placeholder text for the search bar that the list toolbar creates with\n   * a [search component](https://developer.blackbaud.com/skyux/components/search).\n   * @default \"Find in this list\"\n   */\n  @Input()\n  public placeholder: string;\n\n  /**\n   * Whether to enable the search bar.\n   * @default true\n   */\n  @Input()\n  public searchEnabled: boolean | Observable<boolean>;\n\n  @ViewChild(SkySearchComponent, {\n    read: SkySearchComponent,\n    static: false,\n  })\n  public searchComponent: SkySearchComponent;\n\n  /**\n   * Whether to enable the sort selector.\n   * @default false\n   */\n  @Input()\n  public sortSelectorEnabled: boolean | Observable<boolean>;\n\n  /**\n   * Display the search bar in the standard position or in a separate section.\n   * To highlight the search bar in a section above all other toolbar items,\n   * set this property to `search`.\n   * @default \"standard\"\n   */\n  @Input()\n  public toolbarType = 'standard';\n\n  /**\n   * The text string to search with.\n   */\n  @Input()\n  public searchText: string | Observable<string>;\n\n  public get isFilterBarDisplayed(): boolean {\n    return (\n      !this.isToolbarDisabled &&\n      this.hasInlineFilters &&\n      this.inlineFilterBarExpanded\n    );\n  }\n\n  public get filterButtonAriaControls(): string {\n    return this.isFilterBarDisplayed ? this.listFilterInlineId : undefined;\n  }\n\n  public sortSelectors: Observable<any[]>;\n  public searchTextInput: Observable<string>;\n  public view: Observable<string>;\n  public leftTemplates: ListToolbarItemModel[];\n  public centerTemplates: ListToolbarItemModel[];\n  public rightTemplates: ListToolbarItemModel[];\n  public type: Observable<string>;\n  public isSearchEnabled: Observable<boolean>;\n  public isToolbarDisabled = false;\n  public isMultiselectEnabled: Observable<boolean>;\n  public isSortSelectorEnabled: Observable<boolean>;\n  public appliedFilters: Observable<ListFilterModel[]>;\n  public hasAppliedFilters: Observable<boolean>;\n  public showFilterSummary: boolean;\n  public hasInlineFilters: boolean;\n  public inlineFilterBarExpanded = false;\n  public hasAdditionalToolbarSection = false;\n  public hasViewActions = false;\n\n  public filterButtonId = `sky-list-toolbar-filter-button-${++nextId}`;\n  public listFilterInlineId = `sky-list-toolbar-filter-inline-${++nextId}`;\n\n  /**\n   * Fires when users submit a search.\n   * @internal\n   * @deprecated\n   */\n  public searchApplied: Subject<string> = new Subject<string>();\n\n  @ContentChildren(SkyListToolbarItemComponent)\n  private toolbarItems: QueryList<SkyListToolbarItemComponent>;\n\n  @ContentChildren(SkyListToolbarSortComponent)\n  private toolbarSorts: QueryList<SkyListToolbarSortComponent>;\n\n  @ContentChildren(SkyListFilterSummaryComponent)\n  private filterSummary: QueryList<SkyListFilterSummaryComponent>;\n\n  @ContentChildren(SkyListFilterInlineComponent)\n  private inlineFilter: QueryList<SkyListFilterInlineComponent>;\n\n  @ContentChildren(SkyListToolbarViewActionsComponent)\n  private viewActions: QueryList<SkyListToolbarViewActionsComponent>;\n\n  @ViewChild('search', {\n    read: TemplateRef,\n    static: true,\n  })\n  private searchTemplate: TemplateRef<unknown>;\n\n  @ViewChild('sortSelector', {\n    read: TemplateRef,\n    static: true,\n  })\n  private sortSelectorTemplate: TemplateRef<unknown>;\n\n  @ViewChild('inlineFilterButton', {\n    read: TemplateRef,\n    static: true,\n  })\n  private inlineFilterButtonTemplate: TemplateRef<unknown>;\n\n  private customItemIds: string[] = [];\n  private hasSortSelectors = false;\n  private inlineFiltersItemToolbarIndex = 5000;\n  private sortSelectorItemToolbarIndex = 6000;\n  private ngUnsubscribe = new Subject<void>();\n\n  private _inMemorySearchEnabled: boolean;\n\n  private readonly changeDetector = inject(ChangeDetectorRef);\n  private readonly state = inject(ListState);\n  private readonly dispatcher = inject(ListStateDispatcher);\n  private readonly toolbarState = inject(ListToolbarState);\n  public readonly toolbarDispatcher = inject(ListToolbarStateDispatcher);\n\n  constructor() {\n    inject(SkyLogService).deprecated('SkyListToolbarComponent', {\n      deprecationMajorVersion: 6,\n      moreInfoUrl:\n        'https://developer.blackbaud.com/skyux/components/data-manager',\n      replacementRecommendation: 'Use data manager instead.',\n    });\n  }\n\n  public ngOnInit(): void {\n    this.dispatcher.toolbarExists(true);\n\n    getValue(this.searchText, (searchText: string) => {\n      this.updateSearchText(searchText);\n    });\n\n    getValue(this.searchEnabled, (searchEnabled: boolean) => {\n      this.toolbarDispatcher.next(\n        new ListToolbarConfigSetSearchEnabledAction(\n          searchEnabled === undefined ? true : searchEnabled,\n        ),\n      );\n    });\n\n    getValue(this.toolbarType, (type: string) => {\n      this.dispatcher.next(new ListToolbarSetTypeAction(this.toolbarType));\n    });\n\n    getValue(this.sortSelectorEnabled, (sortSelectorEnabled: any) => {\n      this.toolbarDispatcher.next(\n        new ListToolbarConfigSetSortSelectorEnabledAction(\n          sortSelectorEnabled === undefined ? true : sortSelectorEnabled,\n        ),\n      );\n    });\n\n    this.sortSelectors = this.getSortSelectors();\n\n    // Initialize the sort toolbar item if necessary\n    this.sortSelectors\n      .pipe(takeUntil(this.ngUnsubscribe), distinctUntilChanged())\n      .subscribe((currentSort) => {\n        if (currentSort.length > 0 && !this.hasSortSelectors) {\n          this.hasSortSelectors = true;\n          this.dispatcher.toolbarAddItems([\n            new ListToolbarItemModel({\n              id: 'sort-selector',\n              template: this.sortSelectorTemplate,\n              location: 'left',\n              index: this.sortSelectorItemToolbarIndex,\n            }),\n          ]);\n        } else if (currentSort.length < 1 && this.hasSortSelectors) {\n          this.hasSortSelectors = false;\n          this.dispatcher.toolbarRemoveItems(['sort-selector']);\n        }\n      });\n\n    this.searchTextInput = this.state.pipe(\n      takeUntil(this.ngUnsubscribe),\n      observableMap((s) => s.search.searchText),\n      distinctUntilChanged(),\n    );\n\n    this.view = this.state.pipe(\n      takeUntil(this.ngUnsubscribe),\n      observableMap((s) => s.views.active),\n      distinctUntilChanged(),\n    );\n\n    this.watchTemplates();\n\n    this.type = this.state.pipe(\n      takeUntil(this.ngUnsubscribe),\n      observableMap((state) => state.toolbar.type),\n      distinctUntilChanged(),\n    );\n\n    this.type.pipe(takeUntil(this.ngUnsubscribe)).subscribe((toolbarType) => {\n      if (toolbarType === 'search') {\n        this.dispatcher.toolbarRemoveItems(['search']);\n      } else {\n        this.dispatcher.toolbarAddItems([\n          new ListToolbarItemModel({\n            id: 'search',\n            template: this.searchTemplate,\n            location: 'right',\n          }),\n        ]);\n      }\n    });\n\n    this.isSearchEnabled = this.toolbarState.pipe(\n      takeUntil(this.ngUnsubscribe),\n      observableMap((s) => s.config),\n      distinctUntilChanged(),\n      observableMap((c) => c.searchEnabled),\n    );\n\n    this.state\n      .pipe(\n        observableMap((s) => s.toolbar),\n        takeUntil(this.ngUnsubscribe),\n        distinctUntilChanged(),\n        observableMap((c) => c.disabled),\n      )\n      .subscribe((isDisabled) => (this.isToolbarDisabled = isDisabled));\n\n    this.isSortSelectorEnabled = this.toolbarState.pipe(\n      takeUntil(this.ngUnsubscribe),\n      observableMap((s) => s.config),\n      distinctUntilChanged(),\n      observableMap((c) => c.sortSelectorEnabled),\n    );\n\n    this.isMultiselectEnabled = this.state.pipe(\n      takeUntil(this.ngUnsubscribe),\n      observableMap((s) => s.toolbar),\n      distinctUntilChanged(),\n      observableMap((t) => t.showMultiselectToolbar),\n    );\n\n    this.hasAppliedFilters = this.state.pipe(\n      takeUntil(this.ngUnsubscribe),\n      observableMap((s) => s.filters),\n      distinctUntilChanged(),\n      observableMap((filters) => {\n        const activeFilters = filters.filter((f) => {\n          return (\n            f.value !== '' &&\n            f.value !== undefined &&\n            f.value !== false &&\n            f.value !== f.defaultValue\n          );\n        });\n        return activeFilters.length > 0;\n      }),\n    );\n\n    this.state.pipe(takeUntil(this.ngUnsubscribe)).subscribe((current: any) => {\n      this.hasAdditionalToolbarSection = current.toolbar.items.length > 0;\n      this.changeDetector.detectChanges();\n    });\n  }\n\n  public ngAfterContentInit(): void {\n    // Inject custom toolbar items.\n    this.toolbarItems.forEach((toolbarItem) => {\n      this.dispatcher.toolbarAddItems([new ListToolbarItemModel(toolbarItem)]);\n\n      this.customItemIds.push(toolbarItem.id);\n    });\n\n    this.toolbarItems.changes\n      .pipe(takeUntil(this.ngUnsubscribe))\n      .subscribe((newItems: QueryList<SkyListToolbarItemComponent>) => {\n        newItems.forEach((item) => {\n          if (this.customItemIds.indexOf(item.id) < 0) {\n            this.dispatcher.toolbarAddItems([new ListToolbarItemModel(item)]);\n\n            this.customItemIds.push(item.id);\n          }\n        });\n\n        const itemsToRemove: string[] = [];\n\n        this.customItemIds.forEach((itemId, index) => {\n          if (!newItems.find((item) => item.id === itemId)) {\n            itemsToRemove.push(itemId);\n            this.customItemIds.splice(index, 1);\n          }\n        });\n\n        this.dispatcher.toolbarRemoveItems(itemsToRemove);\n      });\n\n    const sortModels = this.toolbarSorts.map(\n      (sort) =>\n        new ListSortLabelModel({\n          text: sort.label,\n          fieldSelector: sort.field,\n          fieldType: sort.type,\n          global: true,\n          descending: sort.descending,\n        }),\n    );\n\n    this.dispatcher.sortSetGlobal(sortModels);\n\n    // Add inline filters.\n    this.showFilterSummary = this.filterSummary.length > 0;\n    this.hasInlineFilters = this.inlineFilter.length > 0;\n\n    if (this.hasInlineFilters) {\n      this.dispatcher.toolbarAddItems([\n        new ListToolbarItemModel({\n          template: this.inlineFilterButtonTemplate,\n          location: 'left',\n          index: this.inlineFiltersItemToolbarIndex,\n        }),\n      ]);\n    }\n\n    // Check for view actions\n    this.hasViewActions = this.viewActions.length > 0;\n  }\n\n  public ngOnDestroy(): void {\n    this.searchApplied.complete();\n    this.ngUnsubscribe.next();\n    this.ngUnsubscribe.complete();\n  }\n\n  public setSort(sort: ListSortLabelModel): void {\n    this.state.pipe(take(1)).subscribe((currentState) => {\n      if (\n        currentState.paging.pageNumber &&\n        currentState.paging.pageNumber !== 1\n      ) {\n        this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));\n      }\n\n      this.dispatcher.sortSetFieldSelectors([\n        { fieldSelector: sort.fieldSelector, descending: sort.descending },\n      ]);\n    });\n  }\n\n  public inlineFilterButtonClick(): void {\n    this.inlineFilterBarExpanded = !this.inlineFilterBarExpanded;\n  }\n\n  public updateSearchText(searchText: string): void {\n    this.searchApplied.next(searchText);\n    if (this.inMemorySearchEnabled) {\n      this.state.pipe(take(1)).subscribe((currentState) => {\n        if (\n          currentState.paging.pageNumber &&\n          currentState.paging.pageNumber !== 1\n        ) {\n          this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));\n        }\n\n        this.dispatcher.searchSetText(searchText);\n      });\n    }\n  }\n\n  private itemIsInView(itemView: string, activeView: string): boolean {\n    return itemView === undefined || itemView === activeView;\n  }\n\n  private getSortSelectors(): Observable<\n    {\n      sort: ListSortLabelModel;\n      selected: boolean;\n    }[]\n  > {\n    return observableCombineLatest(\n      this.state.pipe(\n        observableMap((s) => s.sort.available),\n        distinctUntilChanged(),\n      ),\n      this.state.pipe(\n        observableMap((s) => s.sort.global),\n        distinctUntilChanged(),\n      ),\n      this.state.pipe(\n        observableMap((s) => s.sort.fieldSelectors),\n        distinctUntilChanged(),\n      ),\n      (\n        available: ListSortLabelModel[],\n        global: ListSortLabelModel[],\n        fieldSelectors: ListSortFieldSelectorModel[],\n      ) => {\n        // Get sorts that are in the global that are not in the available\n        const sorts = global.filter(\n          (g) =>\n            available.filter((a) => a.fieldSelector === g.fieldSelector)\n              .length === 0,\n        );\n\n        const resultSortSelectors = [...sorts, ...available].map(\n          (sortLabels) => {\n            const fs = fieldSelectors.filter((f) => {\n              return (\n                f.fieldSelector === sortLabels.fieldSelector &&\n                f.descending === sortLabels.descending\n              );\n            });\n            let selected = false;\n            if (fs.length > 0) {\n              selected = true;\n            }\n\n            return {\n              sort: sortLabels,\n              selected: selected,\n            };\n          },\n        );\n\n        return resultSortSelectors;\n      },\n    ).pipe(takeUntil(this.ngUnsubscribe));\n  }\n\n  private watchTemplates(): void {\n    observableCombineLatest(\n      this.state.pipe(\n        observableMap((s) => s.toolbar),\n        distinctUntilChanged(),\n      ),\n      this.view.pipe(distinctUntilChanged()),\n      (toolbar: ListToolbarModel, view: string) => {\n        const items = toolbar.items.filter((i: ListToolbarItemModel) => {\n          return this.itemIsInView(i.view, view);\n        });\n\n        const templates: any = {};\n\n        items.forEach((item: ListToolbarItemModel) => {\n          templates[item.location] = templates[item.location] || [];\n          templates[item.location].push(item);\n        });\n\n        return templates;\n      },\n    )\n      .pipe(takeUntil(this.ngUnsubscribe))\n      .subscribe((value) => {\n        this.leftTemplates = value.left;\n        this.centerTemplates = value.center;\n        this.rightTemplates = value.right;\n        this.changeDetector.markForCheck();\n      });\n  }\n}\n","<div class=\"sky-list-toolbar-container\">\n  @if ((type | async) !== 'search') {\n    <sky-toolbar>\n      <sky-toolbar-section>\n        @for (item of leftTemplates; track item) {\n          <sky-toolbar-item>\n            <sky-list-toolbar-item-renderer\n              [attr.sky-cmp-id]=\"item.id\"\n              [template]=\"item.template\"\n            />\n          </sky-toolbar-item>\n        }\n        @for (item of centerTemplates; track item) {\n          <sky-toolbar-item>\n            <sky-list-toolbar-item-renderer\n              [attr.sky-cmp-id]=\"item.id\"\n              [template]=\"item.template\"\n            />\n          </sky-toolbar-item>\n        }\n        @for (item of rightTemplates; track item) {\n          <sky-toolbar-item [attr.sky-toolbar-id]=\"item.id\">\n            <sky-list-toolbar-item-renderer\n              [attr.sky-cmp-id]=\"item.id\"\n              [template]=\"item.template\"\n            />\n          </sky-toolbar-item>\n        }\n        <ng-content />\n        @if (hasViewActions) {\n          <sky-toolbar-view-actions>\n            <ng-content select=\"sky-list-toolbar-view-actions\" />\n          </sky-toolbar-view-actions>\n        }\n      </sky-toolbar-section>\n      @if (showFilterSummary && (hasAppliedFilters | async)) {\n        <sky-toolbar-section>\n          <ng-content select=\"sky-list-filter-summary\" />\n        </sky-toolbar-section>\n      }\n    </sky-toolbar>\n  }\n\n  @if (\n    (type | async) === 'search' &&\n    ((isSearchEnabled | async) || hasAdditionalToolbarSection)\n  ) {\n    <div class=\"sky-list-toolbar-search\">\n      <sky-toolbar>\n        @if (isSearchEnabled | async) {\n          <sky-toolbar-section>\n            <sky-toolbar-item>\n              <sky-list-toolbar-item-renderer\n                sky-cmp-id=\"search\"\n                [template]=\"search\"\n              />\n            </sky-toolbar-item>\n          </sky-toolbar-section>\n        }\n        <sky-toolbar-section [hidden]=\"!hasAdditionalToolbarSection\">\n          @for (item of leftTemplates; track item) {\n            <sky-toolbar-item>\n              <sky-list-toolbar-item-renderer\n                [attr.sky-cmp-id]=\"item.id\"\n                [template]=\"item.template\"\n              />\n            </sky-toolbar-item>\n          }\n          @for (item of centerTemplates; track item) {\n            <sky-toolbar-item>\n              <sky-list-toolbar-item-renderer\n                [attr.sky-cmp-id]=\"item.id\"\n                [template]=\"item.template\"\n              />\n            </sky-toolbar-item>\n          }\n          @for (item of rightTemplates; track item) {\n            <sky-toolbar-item [attr.sky-toolbar-id]=\"item.id\">\n              @if (item.id !== 'search') {\n                <sky-list-toolbar-item-renderer\n                  [attr.sky-cmp-id]=\"item.id\"\n                  [template]=\"item.template\"\n                />\n              }\n            </sky-toolbar-item>\n          }\n          <ng-content />\n          @if (hasViewActions) {\n            <sky-toolbar-view-actions>\n              <ng-content select=\"sky-list-toolbar-view-actions\" />\n            </sky-toolbar-view-actions>\n          }\n        </sky-toolbar-section>\n      </sky-toolbar>\n    </div>\n  }\n  @if (isFilterBarDisplayed) {\n    <div [attr.aria-labelledby]=\"filterButtonId\" [id]=\"listFilterInlineId\">\n      <ng-content select=\"sky-list-filter-inline\" />\n    </div>\n  }\n  @if (isMultiselectEnabled | async) {\n    <sky-list-multiselect-toolbar />\n  }\n</div>\n\n<ng-template #search>\n  @if (isSearchEnabled | async) {\n    <div class=\"sky-list-toolbar-search-wrapper\">\n      <sky-search\n        [disabled]=\"isToolbarDisabled\"\n        [expandMode]=\"(type | async) === 'search' ? 'fit' : 'responsive'\"\n        [placeholderText]=\"placeholder\"\n        [searchText]=\"searchTextInput | async\"\n        (searchApply)=\"updateSearchText($event)\"\n      />\n      <ng-content select=\"sky-list-toolbar-search-actions\" />\n    </div>\n  }\n</ng-template>\n\n<ng-template #sortSelector>\n  @if ((isSortSelectorEnabled | async) && (sortSelectors | async).length > 0) {\n    <div class=\"sky-toolbar-item-sort-container\">\n      <sky-sort [showButtonText]=\"true\">\n        @for (item of sortSelectors | async; track item) {\n          <sky-sort-item\n            [active]=\"item.selected\"\n            (itemSelect)=\"setSort(item.sort)\"\n          >\n            {{ item.sort.text }}\n          </sky-sort-item>\n        }\n      </sky-sort>\n    </div>\n  }\n</ng-template>\n\n<ng-template #inlineFilterButton>\n  <sky-filter-button\n    [active]=\"hasAppliedFilters | async\"\n    [ariaControls]=\"filterButtonAriaControls\"\n    [ariaExpanded]=\"inlineFilterBarExpanded\"\n    [disabled]=\"isToolbarDisabled\"\n    [filterButtonId]=\"filterButtonId\"\n    [showButtonText]=\"true\"\n    (filterButtonClick)=\"inlineFilterButtonClick()\"\n  />\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkyFilterModule, SkySortModule } from '@skyux/lists';\nimport { SkySearchModule } from '@skyux/lookup';\n\nimport { SkyListFiltersModule } from '../list-filters/list-filters.module';\nimport { SkyListBuilderResourcesModule } from '../shared/sky-list-builder-resources.module';\n\nimport { SkyListMultiselectToolbarComponent } from './list-multiselect-toolbar.component';\nimport { SkyListToolbarItemRendererComponent } from './list-toolbar-item-renderer.component';\nimport { SkyListToolbarItemComponent } from './list-toolbar-item.component';\nimport { SkyListToolbarSearchActionsComponent } from './list-toolbar-search-actions.component';\nimport { SkyListToolbarSortComponent } from './list-toolbar-sort.component';\nimport { SkyListToolbarViewActionsComponent } from './list-toolbar-view-actions.component';\nimport { SkyListToolbarComponent } from './list-toolbar.component';\n\n/**\n * @deprecated List builder and its features are deprecated. Use data manager instead. For more information, see https://developer.blackbaud.com/skyux/components/data-manager.\n */\n@NgModule({\n  declarations: [\n    SkyListToolbarComponent,\n    SkyListToolbarItemComponent,\n    SkyListToolbarItemRendererComponent,\n    SkyListMultiselectToolbarComponent,\n    SkyListToolbarSearchActionsComponent,\n    SkyListToolbarSortComponent,\n    SkyListToolbarViewActionsComponent,\n  ],\n  imports: [\n    CommonModule,\n    SkyCheckboxModule,\n    SkyToolbarModule,\n    SkySearchModule,\n    SkySortModule,\n    SkyFilterModule,\n    SkyListFiltersModule,\n    SkyIconModule,\n    SkyListBuilderResourcesModule,\n  ],\n  exports: [\n    SkyListToolbarComponent,\n    SkyListToolbarItemComponent,\n    SkyListToolbarSearchActionsComponent,\n    SkyListToolbarSortComponent,\n    SkyListToolbarViewActionsComponent,\n  ],\n})\nexport class SkyListToolbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["idIndex","observableMap","observableOf","observableCombineLatest","i2.SkyListFilterInlineItemRendererComponent","i2","i1","i1.SkyListSecondaryActionsHostComponent","i3","i4.SkyListToolbarItemRendererComponent","i5","i5.SkyListMultiselectToolbarComponent","i6"],"mappings":"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"}