{"version":3,"file":"rxap-material-table-system.mjs","sources":["../../../../../../packages/angular/material/table-system/src/lib/select-row/selection-model.ts","../../../../../../packages/angular/material/table-system/src/lib/select-row/tokens.ts","../../../../../../packages/angular/material/table-system/src/lib/select-row/select-row.service.ts","../../../../../../packages/angular/material/table-system/src/lib/table-select-controls/table-select-controls.component.ts","../../../../../../packages/angular/material/table-system/src/lib/table-select-controls/table-select-controls.component.html","../../../../../../packages/angular/material/table-system/src/lib/table-filter/table-filter.service.ts","../../../../../../packages/angular/material/table-system/src/lib/table-data-source.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/table-row-action-executing.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/table-row-action-status.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/decorators.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/table-row-action.method.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/tokens.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/abstract-table-row-action.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/row-action-check.pipe.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/table-row-action.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/table-row-header-action.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-actions/table-row-actions.module.ts","../../../../../../packages/angular/material/table-system/src/lib/table-header-button/decorators.ts","../../../../../../packages/angular/material/table-system/src/lib/table-header-button/table-header-button-action-status.ts","../../../../../../packages/angular/material/table-system/src/lib/table-header-button/tokens.ts","../../../../../../packages/angular/material/table-system/src/lib/table-header-button/table-header-button.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/table-filter/tokens.ts","../../../../../../packages/angular/material/table-system/src/lib/table-filter/filter-header-row.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/table-filter/to-filter-column-names.pipe.ts","../../../../../../packages/angular/material/table-system/src/lib/table-filter/table-filter.module.ts","../../../../../../packages/angular/material/table-system/src/lib/table-create-button/tokens.ts","../../../../../../packages/angular/material/table-system/src/lib/table-create-button/table-create-button.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/table-column-menu/table-column-option/table-column-option.component.ts","../../../../../../packages/angular/material/table-system/src/lib/table-column-menu/table-column-option/table-column-option.component.html","../../../../../../packages/angular/material/table-system/src/lib/table-column-menu/table-column-menu.component.ts","../../../../../../packages/angular/material/table-system/src/lib/table-column-menu/table-column-menu.component.html","../../../../../../packages/angular/material/table-system/src/lib/table-column-menu/table-show-archived-slide/table-show-archived-slide.component.ts","../../../../../../packages/angular/material/table-system/src/lib/table-column-menu/table-show-archived-slide/table-show-archived-slide.component.html","../../../../../../packages/angular/material/table-system/src/lib/table-column-menu/table-column-menu.module.ts","../../../../../../packages/angular/material/table-system/src/lib/table-column-filter/table-column-filter.service.ts","../../../../../../packages/angular/material/table-system/src/lib/table-column-filter/table-column-filter-input.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/select-row/checkbox-header-cell/checkbox-header-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/select-row/checkbox-header-cell/checkbox-header-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/select-row/checkbox-cell/checkbox-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/select-row/checkbox-cell/checkbox-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/select-row/selected-rows.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/select-row/select-row.module.ts","../../../../../../packages/angular/material/table-system/src/lib/expand-row/expand-row-container/expand-row-content.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/expand-row/expand-row.service.ts","../../../../../../packages/angular/material/table-system/src/lib/expand-row/expand-row-container/expand-row-container.component.ts","../../../../../../packages/angular/material/table-system/src/lib/expand-row/expand-row-container/expand-row-container.component.html","../../../../../../packages/angular/material/table-system/src/lib/expand-row/expand-controls-cell/expand-controls-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/expand-row/expand-controls-cell/expand-controls-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/expand-row/expand-row.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/expand-row/expand-row.module.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/tree-control-cell/tree-control-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/tree-control-cell/tree-control-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/cells/options-cell/options-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/options-cell/options-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/cells/link-cell/link-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/link-cell/link-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/cells/image-cell/image-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/image-cell/image-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/cells/icon-cell/icon-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/icon-cell/icon-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/cells/date-cell/date-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/date-cell/date-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/cells/copy-to-clipboard-cell/copy-to-clipboard-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/copy-to-clipboard-cell/copy-to-clipboard-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/cells/boolean-cell/boolean-cell.component.ts","../../../../../../packages/angular/material/table-system/src/lib/cells/boolean-cell/boolean-cell.component.html","../../../../../../packages/angular/material/table-system/src/lib/persistent-paginator.directive.ts","../../../../../../packages/angular/material/table-system/src/lib/row-animation.ts","../../../../../../packages/angular/material/table-system/src/lib/table-row-metadata.ts","../../../../../../packages/angular/material/table-system/src/index.ts","../../../../../../packages/angular/material/table-system/src/rxap-material-table-system.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Subject } from 'rxjs';\n\ndeclare const ngDevMode: object | null;\n\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nexport class SelectionModel<T> {\n  /** Currently-selected values. */\n  private _selection = new Set<T>();\n\n  /** Keeps track of the deselected options that haven't been emitted by the change event. */\n  private _deselectedToEmit: T[] = [];\n\n  /** Keeps track of the selected options that haven't been emitted by the change event. */\n  private _selectedToEmit: T[] = [];\n\n  /** Cache for the array value of the selected items. */\n  private _selected: T[] | null = null;\n\n  /** Selected values. */\n  get selected(): T[] {\n    if (!this._selected) {\n      this._selected = Array.from(this._selection.values());\n    }\n\n    return this._selected;\n  }\n\n  /** Event emitted when the value has changed. */\n  readonly changed = new Subject<SelectionChange<T>>();\n\n  constructor(\n    private _multiple = false,\n    initiallySelectedValues?: T[],\n    private _emitChanges = true,\n    public compareWith?: (o1: T, o2: T) => boolean,\n  ) {\n    if (initiallySelectedValues && initiallySelectedValues.length) {\n      if (_multiple) {\n        initiallySelectedValues.forEach(value => this._markSelected(value));\n      } else {\n        this._markSelected(initiallySelectedValues[0]);\n      }\n\n      // Clear the array in order to avoid firing the change event for preselected values.\n      this._selectedToEmit.length = 0;\n    }\n  }\n\n  /**\n   * Selects a value or an array of values.\n   * @param values The values to select\n   * @return Whether the selection changed as a result of this call\n   * @breaking-change 16.0.0 make return type boolean\n   */\n  select(...values: T[]): boolean | void {\n    this._verifyValueAssignment(values);\n    values.forEach(value => this._markSelected(value));\n    const changed = this._hasQueuedChanges();\n    this._emitChangeEvent();\n    return changed;\n  }\n\n  /**\n   * Deselects a value or an array of values.\n   * @param values The values to deselect\n   * @return Whether the selection changed as a result of this call\n   * @breaking-change 16.0.0 make return type boolean\n   */\n  deselect(...values: T[]): boolean | void {\n    this._verifyValueAssignment(values);\n    values.forEach(value => this._unmarkSelected(value));\n    const changed = this._hasQueuedChanges();\n    this._emitChangeEvent();\n    return changed;\n  }\n\n  /**\n   * Sets the selected values\n   * @param values The new selected values\n   * @return Whether the selection changed as a result of this call\n   * @breaking-change 16.0.0 make return type boolean\n   */\n  setSelection(...values: T[]): boolean | void {\n    this._verifyValueAssignment(values);\n    const oldValues = this.selected;\n    const newSelectedSet = new Set(values);\n    values.forEach(value => this._markSelected(value));\n    oldValues\n      .filter(value => !newSelectedSet.has(value))\n      .forEach(value => this._unmarkSelected(value));\n    const changed = this._hasQueuedChanges();\n    this._emitChangeEvent();\n    return changed;\n  }\n\n  /**\n   * Toggles a value between selected and deselected.\n   * @param value The value to toggle\n   * @return Whether the selection changed as a result of this call\n   * @breaking-change 16.0.0 make return type boolean\n   */\n  toggle(value: T): boolean | void {\n    return this.isSelected(value) ? this.deselect(value) : this.select(value);\n  }\n\n  /**\n   * Clears all of the selected values.\n   * @param flushEvent Whether to flush the changes in an event.\n   *   If false, the changes to the selection will be flushed along with the next event.\n   * @return Whether the selection changed as a result of this call\n   * @breaking-change 16.0.0 make return type boolean\n   */\n  clear(flushEvent = true): boolean | void {\n    this._unmarkAll();\n    const changed = this._hasQueuedChanges();\n    if (flushEvent) {\n      this._emitChangeEvent();\n    }\n    return changed;\n  }\n\n  /**\n   * Determines whether a value is selected.\n   */\n  isSelected(value: T): boolean {\n    if (this.compareWith) {\n      for (const otherValue of this._selection) {\n        if (this.compareWith(otherValue, value)) {\n          return true;\n        }\n      }\n      return false;\n    }\n    return this._selection.has(value);\n  }\n\n  /**\n   * Determines whether the model does not have a value.\n   */\n  isEmpty(): boolean {\n    return this._selection.size === 0;\n  }\n\n  /**\n   * Determines whether the model has a value.\n   */\n  hasValue(): boolean {\n    return !this.isEmpty();\n  }\n\n  /**\n   * Sorts the selected values based on a predicate function.\n   */\n  sort(predicate?: (a: T, b: T) => number): void {\n    if (this._multiple && this.selected) {\n      this._selected!.sort(predicate);\n    }\n  }\n\n  /**\n   * Gets whether multiple values can be selected.\n   */\n  isMultipleSelection() {\n    return this._multiple;\n  }\n\n  /** Emits a change event and clears the records of selected and deselected values. */\n  private _emitChangeEvent() {\n    // Clear the selected values so they can be re-cached.\n    this._selected = null;\n\n    if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n      this.changed.next({\n        source: this,\n        added: this._selectedToEmit,\n        removed: this._deselectedToEmit,\n      });\n\n      this._deselectedToEmit = [];\n      this._selectedToEmit = [];\n    }\n  }\n\n  /** Selects a value. */\n  private _markSelected(value: T) {\n    if (!this.isSelected(value)) {\n      if (!this._multiple) {\n        this._unmarkAll();\n      }\n\n      if (!this.isSelected(value)) {\n        this._selection.add(value);\n      }\n\n      if (this._emitChanges) {\n        this._selectedToEmit.push(value);\n      }\n    }\n  }\n\n  /** Deselects a value. */\n  private _unmarkSelected(value: T) {\n    if (this.isSelected(value)) {\n      this._selection.delete(value);\n\n      if (this._emitChanges) {\n        this._deselectedToEmit.push(value);\n      }\n    }\n  }\n\n  /** Clears out the selected values. */\n  private _unmarkAll() {\n    if (!this.isEmpty()) {\n      this._selection.forEach(value => this._unmarkSelected(value));\n    }\n  }\n\n  /**\n   * Verifies the value assignment and throws an error if the specified value array is\n   * including multiple values while the selection model is not supporting multiple values.\n   */\n  private _verifyValueAssignment(values: T[]) {\n    if (values.length > 1 && !this._multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw getMultipleValuesInSingleSelectionError();\n    }\n  }\n\n  /** Whether there are queued up change to be emitted. */\n  private _hasQueuedChanges() {\n    return !!(this._deselectedToEmit.length || this._selectedToEmit.length);\n  }\n}\n\n/**\n * Event emitted when the value of a MatSelectionModel has changed.\n * @docs-private\n */\nexport interface SelectionChange<T> {\n  /** Model that dispatched the event. */\n  source: SelectionModel<T>;\n  /** Options that were added to the model. */\n  added: T[];\n  /** Options that were removed from the model. */\n  removed: T[];\n}\n\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @docs-private\n */\nexport function getMultipleValuesInSingleSelectionError() {\n  return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n","import { InjectionToken } from '@angular/core';\nimport { SelectRowOptions } from './select-row.options';\n\nexport const RXAP_MATERIAL_TABLE_SYSTEM_SELECT_ROW_OPTIONS = new InjectionToken<SelectRowOptions>(\n  'rxap-material/table-system/select-row/options');\n","import {\n  Inject,\n  Injectable,\n  Optional,\n} from '@angular/core';\nimport {\n  getIdentifierPropertyValue,\n  hasIdentifierProperty,\n} from '@rxap/utilities';\nimport type { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { SelectRowOptions } from './select-row.options';\nimport { SelectionModel } from './selection-model';\nimport { RXAP_MATERIAL_TABLE_SYSTEM_SELECT_ROW_OPTIONS } from './tokens';\n\n@Injectable()\nexport class SelectRowService<Data = unknown> {\n  public selectedRows$: Observable<Data[]>;\n\n  public readonly selectionModel = new SelectionModel<Data>(true);\n\n  public get selectedRows(): Data[] {\n    return this.selectionModel.selected;\n  }\n\n  constructor(\n    @Optional()\n    @Inject(RXAP_MATERIAL_TABLE_SYSTEM_SELECT_ROW_OPTIONS)\n      options: SelectRowOptions<Data> | null = null,\n  ) {\n    this.selectionModel = new SelectionModel<Data>(\n      options?.multiple,\n      options?.selected,\n      options?.emitChanges,\n      options?.compareWith ?? this.compareWith,\n    );\n    this.selectedRows$ = this.selectionModel.changed.pipe(\n      map(() => this.selectionModel.selected),\n    );\n  }\n\n  clear() {\n    this.selectionModel.clear();\n  }\n\n  compareWith(a: Data, b: Data): boolean {\n    if (a === b) {\n      return true;\n    }\n    if (hasIdentifierProperty(a) && hasIdentifierProperty(b)) {\n      return getIdentifierPropertyValue(a) === getIdentifierPropertyValue(b);\n    }\n    return false;\n  }\n\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n} from '@angular/core';\nimport type { WindowRef } from '@rxap/window-system';\nimport { RXAP_WINDOW_REF } from '@rxap/window-system';\nimport type { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { SelectRowService } from '../select-row/select-row.service';\nimport { AsyncPipe } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n    selector: 'rxap-table-select-controls',\n    templateUrl: './table-select-controls.component.html',\n    styleUrls: ['./table-select-controls.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        MatButtonModule,\n        AsyncPipe,\n    ]\n})\nexport class TableSelectControlsComponent {\n  public hasNotSelected$: Observable<boolean>;\n\n  constructor(\n    private readonly selectRows: SelectRowService<any>,\n    @Inject(RXAP_WINDOW_REF)\n    private readonly windowRef: WindowRef,\n  ) {\n    this.hasNotSelected$ = this.selectRows.selectedRows$.pipe(\n      map((selected) => selected.length === 0),\n    );\n  }\n\n  public cancel() {\n    this.windowRef.close();\n  }\n\n  public select() {\n    this.windowRef.close(this.selectRows.selectedRows);\n  }\n}\n","<div class=\"flex flex-row gap-4\">\n  <button (click)=\"cancel()\" class=\"grow-0\" mat-stroked-button type=\"button\">\n    <ng-container i18n>Cancel</ng-container>\n  </button>\n  <button (click)=\"select()\" [disabled]=\"hasNotSelected$ | async\" class=\"grow-0\" mat-raised-button type=\"button\">\n    <ng-container i18n>Select</ng-container>\n  </button>\n</div>\n","import {\n  Injectable,\n  OnDestroy,\n} from '@angular/core';\nimport { FilterLike } from '@rxap/data-source/table';\nimport {\n  clone,\n  DeleteEmptyProperties,\n  equals,\n} from '@rxap/utilities';\nimport {\n  ReplaySubject,\n  Subject,\n  Subscription,\n} from 'rxjs';\n\n@Injectable()\nexport class TableFilterService implements FilterLike, OnDestroy {\n\n  public readonly change = new ReplaySubject<Record<string, any>>(1);\n\n  public current: Record<string, any> = {};\n\n  private _subscription: Subscription;\n\n  public readonly reset$ = new Subject<void>();\n\n  /**\n   * a flag to indicate whether any value was already send to the change subject\n   * true - a value was send\n   * false - no value was send\n   * @private\n   */\n  private _init = false;\n\n  constructor() {\n    this._subscription = this.change.subscribe(current => this.current = current);\n  }\n\n  public reset() {\n    this.reset$.next();\n  }\n\n  public setMap(map: Record<string, any>): void {\n    const current = this.current;\n    const copy = clone(this.current);\n    const next = DeleteEmptyProperties(Object.assign(current, map));\n    if (!this._init || !equals(copy, next)) {\n      this._init = true;\n      this.change.next(next);\n    }\n  }\n\n  public set(key: string, value: any): void {\n    const current = this.current;\n    current[key] = value;\n    this.change.next(current);\n  }\n\n  public remove(key: string): void {\n    const current = this.current;\n    // eslint-disable-next-line no-prototype-builtins\n    if (current.hasOwnProperty(key)) {\n      delete current[key];\n    }\n    this.change.next(current);\n  }\n\n  public ngOnDestroy() {\n    this._subscription.unsubscribe();\n  }\n\n}\n","import { CdkTable } from '@angular/cdk/table';\nimport {\n  ChangeDetectorRef,\n  Directive,\n  Inject,\n  InjectionToken,\n  Input,\n  isDevMode,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport type { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { pipeDataSource } from '@rxap/data-source';\nimport { PaginatorLike } from '@rxap/data-source/pagination';\nimport {\n  AbstractTableDataSource,\n  DynamicTableDataSource,\n  FilterLike,\n  RXAP_TABLE_METHOD,\n  SortLike,\n  TableEvent,\n} from '@rxap/data-source/table';\nimport { Method } from '@rxap/pattern';\nimport { ToggleSubject } from '@rxap/rxjs';\nimport {\n  Observable,\n  Subject,\n  Subscription,\n} from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { TableFilterService } from './table-filter/table-filter.service';\n\nexport { RXAP_TABLE_METHOD } from '@rxap/data-source/table';\n\n/**\n * @deprecated use TABLE_METHOD instead\n */\nexport const TABLE_REMOTE_METHOD = RXAP_TABLE_METHOD;\nexport const TABLE_REMOTE_METHOD_ADAPTER_FACTORY = new InjectionToken(\n  'table-remote-method-adapter-factory',\n);\nexport const RXAP_TABLE_FILTER = new InjectionToken('rxap/material-table-system/table-filter');\nexport const TABLE_DATA_SOURCE = new InjectionToken('table-data-source');\n\nexport type TableRemoteMethodAdapterFactory<\n  Data extends Record<string, any> = Record<string, any>\n> = (\n  method: Method,\n  paginator?: PaginatorLike,\n  sort?: SortLike | null,\n  filter?: FilterLike | null,\n  parameters?: Observable<Record<string, any>>,\n) => Method<Data[], TableEvent>;\n\n@Directive({\n  selector: 'table[mat-table][rxapTableDataSource],mat-table[rxapTableDataSource]',\n  exportAs: 'rxapTableDataSource',\n  standalone: true,\n})\nexport class TableDataSourceDirective<Data extends Record<string, any> = any>\n  implements OnInit, OnDestroy {\n  /**\n   * @deprecated use dataSource instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('rxapTableDataSource')\n  public set setDataSource(dataSource: AbstractTableDataSource<Data> | '') {\n    if (typeof dataSource !== 'string') {\n      this.dataSource = dataSource;\n    }\n  }\n\n  @Input()\n  public paginator?: MatPaginator;\n\n  public readonly loading$ = new ToggleSubject(true);\n\n  @Input({ required: true })\n  public id!: string;\n  @Input()\n  public parameters?: Observable<Record<string, any>>;\n  @Input()\n  public dataSource?: AbstractTableDataSource<Data>;\n\n  public method?: Method<Data[], TableEvent>;\n\n  public readonly hasError$ = new ToggleSubject();\n\n  public readonly error$ = new Subject<unknown>();\n\n  public get lastRefreshed(): Date | null {\n    return this.dataSource?.lastRefreshed ?? null;\n  }\n\n  /**\n   * @deprecated use method instead\n   */\n  public get remoteMethod(): Method<Data[], TableEvent> | undefined {\n    return this.method;\n  }\n\n  /**\n   * @deprecated use sourceMethod instead\n   */\n  public get sourceRemoteMethod(): Method<\n    Data[] | any,\n    TableEvent | any\n  > | null {\n    return this.sourceMethod;\n  }\n\n  protected _subscription = new Subscription();\n\n  private readonly adapterFactory: TableRemoteMethodAdapterFactory<Data> | null =\n    null;\n\n  constructor(\n    @Inject(CdkTable)\n    private readonly matTable: CdkTable<Data>,\n    protected readonly cdr: ChangeDetectorRef,\n    @Optional()\n    @Inject(RXAP_TABLE_METHOD)\n    private readonly sourceMethod: Method<Data[] | any,\n      TableEvent | any> | null,\n    @Optional()\n    @Inject(TABLE_DATA_SOURCE)\n    private readonly sourceDataSource: AbstractTableDataSource<Data> | null,\n    @Optional()\n    @Inject(TABLE_REMOTE_METHOD_ADAPTER_FACTORY)\n      adapterFactory: any,\n    @Optional()\n    @Inject(MatSort)\n    private readonly matSort: MatSort | null,\n    @Optional()\n    @Inject(TableFilterService)\n    private readonly tableFilter: TableFilterService | null,\n    @Optional()\n    @Inject(RXAP_TABLE_FILTER)\n    private readonly _tableFilter: FilterLike | null,\n  ) {\n    this.matTable.trackBy = this.trackBy;\n    this.adapterFactory = adapterFactory;\n    this.retry = this.retry.bind(this);\n    this.refresh = this.refresh.bind(this);\n    this.reset = this.reset.bind(this);\n  }\n\n  private trackBy(index: number, item: Data): string | number {\n    return item['uuid'] ?? index;\n  }\n\n  public ngOnInit() {\n    const tableFilter = this._tableFilter ?? this.tableFilter ?? undefined;\n    if (!this.dataSource) {\n      if (this.sourceDataSource) {\n        this.dataSource = this.sourceDataSource;\n      } else if (this.sourceMethod) {\n        if (this.adapterFactory) {\n          this.method = this.adapterFactory(\n            this.sourceMethod,\n            this.paginator,\n            this.matSort,\n            tableFilter,\n            this.parameters,\n          );\n        } else {\n          this.method = this.sourceMethod;\n        }\n        this.dataSource = new DynamicTableDataSource<Data>(\n          this.method,\n          this.paginator,\n          this.matSort,\n          tableFilter,\n          this.parameters,\n          this.method.metadata ?? { id: this.id },\n        );\n      }\n      if (!this.dataSource) {\n        throw new Error(\n          'The TABLE_DATA_SOURCE and RXAP_TABLE_METHOD token are not defined!',\n        );\n      }\n    }\n    this.dataSource.paginator = this.paginator;\n    this.dataSource.sort = this.matSort ?? undefined;\n    this.dataSource.filter = tableFilter;\n    this.dataSource.parameters = this.parameters;\n    if (this.dataSource instanceof DynamicTableDataSource) {\n      this.dataSource.setPaginator(this.paginator, this.id);\n      this.dataSource.setSort(this.matSort, this.id);\n      this.dataSource.setFilter(tableFilter, this.id);\n      this.dataSource.setParameters(this.parameters, this.id);\n    }\n    this._subscription.add(\n      this.dataSource.loading$.pipe(\n        tap(loading => this.loading$.next(!!loading)),\n      ).subscribe(),\n    );\n    this._subscription.add(\n      this.dataSource.hasError$.pipe(\n        tap(hasError => this.hasError$.next(!!hasError)),\n      ).subscribe(),\n    );\n    this._subscription.add(\n      this.dataSource.error$.pipe(\n        tap(error => this.error$.next(error)),\n      ).subscribe(),\n    );\n    // create the id property for the mat table component.\n    // the instance of the mat table component is used as viewer object\n    // with the set of the id property it is possible to use the same data source\n    // instance for multiple table component simultaneously\n    // on connect the data source can then use the correct paginator/matSort/tableFilter/parameters instance\n    // to create the TableEvent objects\n    Reflect.set(this.matTable, 'id', this.id);\n    this.matTable.dataSource = pipeDataSource(this.dataSource, tap(rowList => {\n      if (rowList.some((element: any) => !element.__metadata__)) {\n        if (isDevMode()) {\n          console.debug('Ensure to use the NormalizeTableRow function to normalize the table row!');\n        }\n        rowList.forEach((element: any) => {\n          element.__metadata__ ??= {};\n          element.__metadata__.loading$ ??= new ToggleSubject();\n        });\n      }\n    }));\n  }\n\n  public ngOnDestroy() {\n    this._subscription?.unsubscribe();\n  }\n\n  public refresh() {\n    this.dataSource?.refresh();\n  }\n\n  public retry() {\n    this.dataSource?.retry();\n  }\n\n  public reset() {\n    if (this.tableFilter) {\n      this.tableFilter.reset();\n    } else {\n      this.dataSource?.reset();\n    }\n  }\n\n}\n\n\n","import {\n  Directive,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n  selector: '[rxapTableRowActionExecuting]',\n  standalone: true,\n})\nexport class TableRowActionExecutingDirective {\n  constructor(\n    public readonly templateRef: TemplateRef<void>,\n    private readonly vcr: ViewContainerRef,\n  ) {\n  }\n\n  public show(): void {\n    this.vcr.createEmbeddedView(this.templateRef);\n  }\n\n  public hide(): void {\n    this.vcr.clear();\n  }\n}\n","export enum TableRowActionStatus {\n  EXECUTING = 'executing',\n  DONE = 'done',\n  ERROR = 'error',\n  SUCCESS = 'success'\n}\n","import { ThemePalette } from '@angular/material/core';\nimport { setMetadata } from '@rxap/reflect-metadata';\nimport { RowActionCheckFunction } from './types';\n\n/**\n * @deprecated use RXAP_TABLE_ACTION_METHOD_METADATA instead\n */\nexport const RXAP_TABLE_ACTION_METHOD_TYPE_METADATA = 'rxap-table-action-method-type-metadata';\nexport const RXAP_TABLE_ACTION_METHOD_METADATA = 'rxap-table-action-method-metadata';\n\n/**\n * @deprecated use RXAP_TABLE_ACTION_METHOD_METADATA instead\n */\nexport const RXAP_TABLE_ACTION_METHOD_CHECK_FUNCTION_METADATA = 'rxap-table-action-method-check-function-metadata';\n\nexport interface TableActionMethodOptions<Data = any> {\n  type?: string;\n  checkFunction?: RowActionCheckFunction<Data>;\n  /**\n   * If true, the table will be refreshed after the action is executed.\n   */\n  refresh?: boolean;\n  /**\n   * If true, the user will be asked to confirm the action before execution.\n   */\n  confirm?: boolean;\n  /**\n   * The tooltip of the action button.\n   */\n  tooltip?: string;\n\n  /**\n   * The error message that will be displayed if the action fails.\n   */\n  errorMessage?: string;\n\n  /**\n   * The success message that will be displayed if the action succeeds.\n   */\n  successMessage?: string;\n\n  /**\n   * The priority of the action. If multiple action with the same type exists.\n   * The action with the highest priority will be used. To set the defaults for\n   * the directive.\n   */\n  priority?: number;\n\n  /**\n   * The color of the action button.\n   */\n  color?: ThemePalette;\n}\n\nexport function TableActionMethod<Data = any>(options: TableActionMethodOptions): ClassDecorator;\nexport function TableActionMethod<Data = any>(\n  type: string,\n  checkFunction?: RowActionCheckFunction<Data>,\n): ClassDecorator;\nexport function TableActionMethod<Data = any>(\n  typeOrOptions: string | TableActionMethodOptions,\n  checkFunction?: RowActionCheckFunction<Data>,\n): ClassDecorator {\n  let type: string | undefined;\n  let options: TableActionMethodOptions<Data>;\n  if (typeof typeOrOptions === 'string') {\n    type = typeOrOptions;\n    options = {\n      type,\n      checkFunction,\n    };\n  } else {\n    options = typeOrOptions;\n    type = options.type;\n    checkFunction = options.checkFunction;\n  }\n  return function (target: any) {\n    setMetadata(RXAP_TABLE_ACTION_METHOD_METADATA, options, target);\n    if (type) {\n      setMetadata(RXAP_TABLE_ACTION_METHOD_TYPE_METADATA, type, target);\n    }\n    if (checkFunction) {\n      setMetadata(RXAP_TABLE_ACTION_METHOD_CHECK_FUNCTION_METADATA, checkFunction, target);\n    }\n  };\n}\n","import {\n  getMetadata,\n  hasMetadata,\n} from '@rxap/reflect-metadata';\nimport {\n  RXAP_TABLE_ACTION_METHOD_METADATA,\n  TableActionMethodOptions,\n} from './decorators';\nimport {\n  RowActionCheckFunction,\n  TableRowActionMethod,\n  TableRowActionTypeMethod,\n  TableRowActionTypeSwitchMethod,\n} from './types';\n\nexport function IsTableRowActionTypeSwitchMethod<Data extends Record<string, any>>(\n  method: TableRowActionMethod<Data>,\n): method is TableRowActionTypeSwitchMethod<Data> {\n  return getMetadata<TableActionMethodOptions>(\n    RXAP_TABLE_ACTION_METHOD_METADATA,\n    method.constructor,\n  )?.type === undefined;\n}\n\nexport function IsTableRowActionTypeMethod<Data extends Record<string, any>>(\n  type: string,\n) {\n  return (\n    method: TableRowActionMethod<Data>,\n  ): method is TableRowActionTypeMethod<Data> => {\n    return (\n      getMetadata<TableActionMethodOptions>(\n        RXAP_TABLE_ACTION_METHOD_METADATA,\n        method.constructor,\n      )?.type === type\n    );\n  };\n}\n\nexport function HasTableRowActionCheckFunction(method: TableRowActionMethod<any>): boolean {\n  return getMetadata<TableActionMethodOptions>(\n    RXAP_TABLE_ACTION_METHOD_METADATA,\n    method.constructor,\n  )?.checkFunction !== undefined;\n}\n\nexport function GetTableRowActionCheckFunction<Data extends Record<string, unknown> = Record<string, unknown>>(method: TableRowActionMethod<Data>): RowActionCheckFunction<Data> {\n  const checkFunction = getMetadata<TableActionMethodOptions<Data>>(\n    RXAP_TABLE_ACTION_METHOD_METADATA,\n    method.constructor,\n  )?.checkFunction;\n  if (!checkFunction) {\n    throw new Error(`Extracted check function from '${ method.constructor.name }' is empty`);\n  }\n  return checkFunction;\n}\n\nexport function HasTableRowActionMetadata(method: TableRowActionMethod): boolean {\n  return hasMetadata(\n    RXAP_TABLE_ACTION_METHOD_METADATA,\n    method.constructor,\n  );\n}\n\nexport function GetTableRowActionMetadata(method: TableRowActionMethod): TableActionMethodOptions {\n  const metadata = getMetadata<TableActionMethodOptions>(\n    RXAP_TABLE_ACTION_METHOD_METADATA,\n    method.constructor,\n  );\n  if (!metadata) {\n    throw new Error(`Extracted metadata from '${ method.constructor.name }' is empty`);\n  }\n  return metadata;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const RXAP_TABLE_ROW_ACTION_METHOD = new InjectionToken(\n  'rxap-table-row-action-method',\n);\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n  ChangeDetectorRef,\n  ContentChild,\n  ElementRef,\n  HostListener,\n  Inject,\n  Injectable,\n  INJECTOR,\n  Injector,\n  Input,\n  isDevMode,\n  OnInit,\n  Optional,\n  Renderer2,\n  ViewContainerRef,\n} from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ConfirmDirective } from '@rxap/components';\nimport {\n  coerceArray,\n  coerceBoolean,\n  dasherize,\n} from '@rxap/utilities';\nimport { TableDataSourceDirective } from '../table-data-source.directive';\nimport { TableActionMethodOptions } from './decorators';\nimport { TableRowActionExecutingDirective } from './table-row-action-executing.directive';\nimport { TableRowActionStatus } from './table-row-action-status';\nimport {\n  GetTableRowActionMetadata,\n  IsTableRowActionTypeMethod,\n  IsTableRowActionTypeSwitchMethod,\n} from './table-row-action.method';\nimport { RXAP_TABLE_ROW_ACTION_METHOD } from './tokens';\nimport {\n  TableRowActionMethod,\n  TableRowActionTypeMethod,\n  TableRowActionTypeSwitchMethod,\n} from './types';\n\n@Injectable()\nexport abstract class AbstractTableRowAction<Data extends Record<string, any>> extends ConfirmDirective\n  implements OnInit {\n  public abstract type: string;\n  @Input()\n  public errorMessage?: string;\n  @Input()\n  public successMessage?: string;\n  /**\n   * true - after the action is executed the table datasource is refreshed\n   */\n  @Input()\n  public refresh?: boolean;\n\n  @Input()\n  public color?: ThemePalette;\n\n  public readonly isHeader: boolean = false;\n\n  protected options: TableActionMethodOptions | null = null;\n  @ContentChild(TableRowActionExecutingDirective)\n  private readonly executingDirective?: TableRowActionExecutingDirective;\n  private _currentStatus: TableRowActionStatus = TableRowActionStatus.DONE;\n  private readonly actionMethodList: Array<TableRowActionMethod<Data>>;\n  private _actionDisabled = false;\n\n  constructor(\n    @Inject(Renderer2)\n    protected readonly renderer: Renderer2,\n    @Inject(Overlay)\n      overlay: Overlay,\n    @Inject(ElementRef)\n      elementRef: ElementRef,\n    @Inject(RXAP_TABLE_ROW_ACTION_METHOD)\n      actionMethodList:\n      | Array<TableRowActionMethod<Data>>\n      | TableRowActionMethod<Data>,\n    @Inject(ChangeDetectorRef)\n    protected readonly cdr: ChangeDetectorRef,\n    @Inject(ViewContainerRef)\n    protected readonly vcr: ViewContainerRef,\n    @Inject(TableDataSourceDirective)\n    protected readonly tableDataSourceDirective: TableDataSourceDirective,\n    @Inject(MatSnackBar)\n    protected readonly snackBar: MatSnackBar,\n    @Optional()\n    @Inject(MatIconButton)\n    protected matButton: MatIconButton | null,\n    @Optional()\n    @Inject(MatTooltip)\n    protected matTooltip: MatTooltip | null,\n    @Inject(INJECTOR)\n    protected readonly injector: Injector,\n  ) {\n    super(overlay, elementRef);\n    this.actionMethodList = coerceArray(actionMethodList);\n  }\n\n  private _hasConfirmDirective = false;\n\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('rxapConfirm')\n  public set hasConfirmDirective(value: any) {\n    this._hasConfirmDirective = coerceBoolean(value);\n  }\n\n  // eslint-disable-next-line @angular-eslint/contextual-lifecycle\n  ngOnInit() {\n    this.options = this.getTableActionOptions();\n    if (this.options) {\n      this.refresh ??= this.options.refresh ?? false;\n      this.errorMessage ??= this.options.errorMessage ?? undefined;\n      this.successMessage ??= this.options.successMessage ?? undefined;\n      if (this.matTooltip && this.options.tooltip) {\n        this.matTooltip.message = this.options.tooltip;\n      }\n      this.color ??= this.options.color ?? undefined;\n    }\n    if (this.matButton) {\n      if (this.color) {\n        this.matButton.color = this.color;\n      }\n    }\n    if (this.isHeader) {\n      this.renderer.addClass(this.elementRef.nativeElement, 'rxap-table-row-header-action');\n    } else {\n      this.renderer.addClass(this.elementRef.nativeElement, 'rxap-table-row-action');\n    }\n    this.renderer.addClass(this.elementRef.nativeElement, `rxap-action-${ dasherize(this.type) }`);\n  }\n\n  @HostListener('confirmed')\n  public override onConfirmed() {\n    return this.execute();\n  }\n\n  @HostListener('click', [ '$event' ])\n  public override onClick($event: Event) {\n    $event.stopPropagation();\n    if (!this._hasConfirmDirective && !this.options?.confirm) {\n      return this.execute();\n    } else if (this.options?.confirm) {\n      this.openConfirmOverly();\n    } else {\n      if (isDevMode()) {\n        console.debug('skip remote method call. Wait for confirmation.');\n      }\n    }\n    return Promise.resolve();\n  }\n\n  public async execute(): Promise<void> {\n    if (this._actionDisabled) {\n      return Promise.resolve();\n    }\n    this.setStatus(TableRowActionStatus.EXECUTING);\n    try {\n      await Promise.all(\n        this.getElementList().map((element) => {\n          return Promise.all([\n            Promise.all(\n              this.findUntypedActionMethod().map((am) => {\n                  return am.call({\n                    element,\n                    type: this.type,\n                  });\n                },\n              ),\n            ),\n            Promise.all(\n              this.findTypedActionMethod().map((am) => {\n                return am.call(element);\n              }),\n            ),\n          ]);\n        }),\n      );\n      this.setStatus(TableRowActionStatus.SUCCESS);\n    } catch (e: any) {\n      console.error(`Failed to execute row action: ${ e.message }`);\n      this.setStatus(TableRowActionStatus.ERROR);\n    }\n  }\n\n  protected abstract getElementList(): Data[];\n\n  /**\n   * Disables the action. If the button is pressed the action is NOT executed\n   *\n   * Hint: the button is set to disabled = true to prevent any conflict with\n   * extern button enable features linke : rxapHasEnablePermission\n   * @protected\n   */\n  protected setButtonDisabled() {\n    this._actionDisabled = true;\n  }\n\n  /**\n   * Enables the action. If the button is pressed the action is executed\n   *\n   * TODO : find a way to communicate the disabled state between the features\n   * Hint: the button is set to disabled = false to prevent any conflict with\n   * extern button enable features linke : rxapHasEnablePermission\n   * @protected\n   */\n  protected setButtonEnabled() {\n    this._actionDisabled = false;\n  }\n\n  /**\n   * find all method instance in the actionMethodList member that\n   * do not have a @TableActionMethod decorators\n   * @private\n   */\n  private findUntypedActionMethod(): Array<TableRowActionTypeSwitchMethod<Data>> {\n    return this.actionMethodList.filter(IsTableRowActionTypeSwitchMethod);\n  }\n\n  /**\n   * find all method instance in the actionMethodList member that\n   * do have a @TableActionMethod decorators with the current type\n   * @private\n   */\n  private findTypedActionMethod(): Array<TableRowActionTypeMethod<Data>> {\n    return this.actionMethodList.filter(IsTableRowActionTypeMethod(this.type));\n  }\n\n  private setStatus(status: TableRowActionStatus) {\n    if (this._currentStatus === status) {\n      return;\n    }\n    this._currentStatus = status;\n    switch (status) {\n      case TableRowActionStatus.EXECUTING:\n        this.setButtonDisabled();\n        this.executingDirective?.show();\n        break;\n      case TableRowActionStatus.SUCCESS:\n        if (this.refresh) {\n          this.tableDataSourceDirective.refresh();\n        }\n        if (this.successMessage) {\n          this.snackBar.open(this.successMessage, 'ok', { duration: 2560 });\n        }\n        this.setStatus(TableRowActionStatus.DONE);\n        break;\n      case TableRowActionStatus.ERROR:\n        this.setStatus(TableRowActionStatus.DONE);\n        if (this.errorMessage) {\n          this.snackBar.open(this.errorMessage, 'ok', { duration: 5120 });\n        }\n        break;\n      case TableRowActionStatus.DONE:\n        this.setButtonEnabled();\n        this.executingDirective?.hide();\n        break;\n    }\n    this.cdr.detectChanges();\n  }\n\n  private getTableActionOptions(): TableActionMethodOptions | null {\n    const metadataList = this.actionMethodList.map(actionMethod => GetTableRowActionMetadata(actionMethod));\n    if (metadataList.length === 0) {\n      return null;\n    }\n    // TODO : handle multiple metadata or not exist metadata\n    return metadataList.filter(metadata => metadata.type === this.type)\n                       .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0))[0];\n  }\n\n}\n","import {\n  Inject,\n  Optional,\n  Pipe,\n  PipeTransform,\n} from '@angular/core';\nimport { coerceArray } from '@rxap/utilities';\nimport { TableRowActionTypeMethod } from './types';\nimport { RXAP_TABLE_ROW_ACTION_METHOD } from './tokens';\nimport {\n  GetTableRowActionCheckFunction,\n  HasTableRowActionCheckFunction,\n  IsTableRowActionTypeMethod,\n} from './table-row-action.method';\n\n@Pipe({\n  name: 'rxapRowActionCheck',\n  standalone: true,\n})\nexport class RowActionCheckPipe<RowType extends Record<string, unknown> = Record<string, unknown>>\n  implements PipeTransform {\n\n  private readonly actionMethodList: Array<TableRowActionTypeMethod<RowType>>;\n\n  constructor(\n    @Optional()\n    @Inject(RXAP_TABLE_ROW_ACTION_METHOD)\n      tableRowActionMethodList: Array<TableRowActionTypeMethod<RowType>> | TableRowActionTypeMethod<RowType> | null,\n  ) {\n    this.actionMethodList = coerceArray(tableRowActionMethodList);\n  }\n\n  transform(value: RowType | RowType[], type: string): boolean {\n\n    if (!type) {\n      throw new Error(`The provided type is empty '${ type }'`);\n    }\n\n    const actionMethodList = this.actionMethodList.filter(IsTableRowActionTypeMethod(type));\n\n    if (actionMethodList.length > 1) {\n      throw new Error(`Multiple (${ actionMethodList.length }) action method with the same type '${ type }' found`);\n    }\n\n    if (actionMethodList.length === 0) {\n      throw new Error(`Could not find a action method with the type '${ type }'`);\n    }\n\n    const actionMethod = actionMethodList[0];\n\n    if (HasTableRowActionCheckFunction(actionMethod)) {\n      const checkFunction = GetTableRowActionCheckFunction(actionMethod);\n      const input = coerceArray(value);\n      return input.length !== 0 && input.every(checkFunction);\n    }\n\n    return true;\n  }\n\n}\n","import {\n  Directive,\n  Input,\n} from '@angular/core';\nimport { AbstractTableRowAction } from './abstract-table-row-action';\n\n@Directive({\n  selector: 'button[rxapTableRowAction]',\n  standalone: true,\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: [ 'errorMessage', 'successMessage', 'refresh', 'color' ],\n})\nexport class TableRowActionDirective<Data extends Record<string, any>> extends AbstractTableRowAction<Data> {\n\n\n  @Input({\n    required: true,\n    alias: 'rxapTableRowAction',\n  })\n  public type!: string;\n\n  @Input({ required: true })\n  public element!: Data;\n\n\n  protected getElementList(): Data[] {\n    return [ this.element ];\n  }\n\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  Inject,\n  INJECTOR,\n  Injector,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Renderer2,\n  ViewContainerRef,\n} from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { Subscription } from 'rxjs';\nimport {\n  map,\n  startWith,\n  tap,\n} from 'rxjs/operators';\nimport { SelectRowService } from '../select-row/select-row.service';\nimport { TableDataSourceDirective } from '../table-data-source.directive';\nimport { AbstractTableRowAction } from './abstract-table-row-action';\nimport { RXAP_TABLE_ROW_ACTION_METHOD } from './tokens';\nimport { TableRowActionMethod } from './types';\n\n@Directive({\n  selector: 'button[rxapTableRowHeaderAction]',\n  standalone: true,\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: [ 'errorMessage', 'successMessage', 'refresh', 'color' ],\n})\nexport class TableRowHeaderActionDirective<Data extends Record<string, any>>\n  extends AbstractTableRowAction<Data>\n  implements OnInit, OnDestroy {\n\n  public override readonly isHeader = true;\n\n  private _subscription?: Subscription;\n\n  constructor(\n    @Inject(Renderer2)\n      renderer: Renderer2,\n    @Inject(Overlay)\n      overlay: Overlay,\n    @Inject(ElementRef)\n      elementRef: ElementRef,\n    @Inject(RXAP_TABLE_ROW_ACTION_METHOD)\n      actionMethod: TableRowActionMethod<Data>,\n    @Inject(ChangeDetectorRef)\n      cdr: ChangeDetectorRef,\n    @Inject(ViewContainerRef)\n      vcr: ViewContainerRef,\n    @Inject(TableDataSourceDirective)\n      tableDataSourceDirective: TableDataSourceDirective,\n    @Inject(MatSnackBar)\n      snackBar: MatSnackBar,\n    @Optional()\n    @Inject(MatButton)\n      matButton: MatButton | null,\n    @Optional()\n    @Inject(MatTooltip)\n      matTooltip: MatTooltip | null,\n    @Inject(INJECTOR)\n      injector: Injector,\n    @Optional()\n    @Inject(SelectRowService)\n    private readonly selectRowService: SelectRowService<Data> | null,\n  ) {\n    super(\n      renderer,\n      overlay,\n      elementRef,\n      actionMethod,\n      cdr,\n      vcr,\n      tableDataSourceDirective,\n      snackBar,\n      matButton,\n      matTooltip,\n      injector,\n    );\n  }\n\n  public override ngOnDestroy() {\n    this._subscription?.unsubscribe();\n  }\n\n  public override ngOnInit() {\n    if (this.selectRowService) {\n      this._subscription = this.selectRowService.selectedRows$\n                               .pipe(\n                                 startWith(this.selectRowService.selectedRows),\n                                 map((rows) => rows.length !== 0),\n                                 tap((hasSelected) => {\n                                   if (hasSelected) {\n                                     this.setButtonEnabled();\n                                   } else {\n                                     this.setButtonDisabled();\n                                   }\n                                   this.cdr.detectChanges();\n                                 }),\n                               )\n                               .subscribe();\n    } else {\n      this.setButtonDisabled();\n    }\n  }\n\n  protected override getElementList(): Data[] {\n    return this.selectRowService?.selectedRows ?? [];\n  }\n\n  @Input({\n    required: true,\n    alias: 'rxapTableRowHeaderAction',\n  })\n  public override type!: string;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ConfirmModule } from '@rxap/components';\nimport { TableRowActionExecutingDirective } from './table-row-action-executing.directive';\nimport { TableRowActionDirective } from './table-row-action.directive';\nimport { TableRowHeaderActionDirective } from './table-row-header-action.directive';\nimport { RowActionCheckPipe } from './row-action-check.pipe';\n\n@NgModule({\n  imports: [\n    TableRowActionDirective,\n    TableRowActionExecutingDirective,\n    TableRowHeaderActionDirective,\n    RowActionCheckPipe,\n    ConfirmModule,\n  ],\n  exports: [\n    TableRowActionDirective,\n    TableRowHeaderActionDirective,\n    TableRowActionExecutingDirective,\n    RowActionCheckPipe,\n    MatTooltipModule,\n    MatButtonModule,\n    ConfirmModule,\n    MatIconModule,\n    MatProgressBarModule,\n    CommonModule,\n  ],\n})\nexport class TableRowActionsModule {}\n","import { Method } from '@rxap/pattern';\nimport {\n  getMetadata,\n  setMetadata,\n} from '@rxap/reflect-metadata';\n\nexport const RXAP_TABLE_HEADER_BUTTON_METHOD_METADATA = 'rxap-table-header-button-method-metadata';\n\nexport interface TableHeaderButtonMethodOptions {\n  /**\n   * If true, the table will be refreshed after the action is executed.\n   */\n  refresh?: boolean;\n  /**\n   * If true, the user will be asked to confirm the action before execution.\n   */\n  confirm?: boolean;\n  /**\n   * The tooltip of the action button.\n   */\n  tooltip?: string;\n\n  /**\n   * The error message that will be displayed if the action fails.\n   */\n  errorMessage?: string;\n\n  /**\n   * The success message that will be displayed if the action succeeds.\n   */\n  successMessage?: string;\n\n}\n\nexport function TableHeaderButtonMethod(\n  options: TableHeaderButtonMethodOptions = {},\n): ClassDecorator {\n  return function (target: any) {\n    setMetadata(RXAP_TABLE_HEADER_BUTTON_METHOD_METADATA, options, target);\n  };\n}\n\nexport function GetTableHeaderButtonMetadata(method: Method): TableHeaderButtonMethodOptions {\n  const metadata = getMetadata<TableHeaderButtonMethodOptions>(\n    RXAP_TABLE_HEADER_BUTTON_METHOD_METADATA,\n    method.constructor,\n  );\n  if (!metadata) {\n    throw new Error(`Extracted metadata from '${ method.constructor.name }' is empty`);\n  }\n  return metadata;\n}\n","export enum TableHeaderButtonActionStatus {\n  EXECUTING = 'executing',\n  DONE = 'done',\n  ERROR = 'error',\n  SUCCESS = 'success'\n}\n","import { InjectionToken } from '@angular/core';\nimport { Method } from '@rxap/pattern';\n\nexport const TABLE_HEADER_BUTTON_METHOD = new InjectionToken<Method>('table-header-button-method');\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  HostListener,\n  Inject,\n  Input,\n  isDevMode,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { MatMiniFabButton } from '@angular/material/button';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ConfirmDirective } from '@rxap/components';\nimport { Method } from '@rxap/pattern';\nimport { coerceBoolean } from '@rxap/utilities';\nimport { TableDataSourceDirective } from '../table-data-source.directive';\nimport {\n  GetTableHeaderButtonMetadata,\n  TableHeaderButtonMethodOptions,\n} from './decorators';\nimport { TableHeaderButtonActionStatus } from './table-header-button-action-status';\nimport { TABLE_HEADER_BUTTON_METHOD } from './tokens';\n\n@Directive({\n  selector: 'button[mat-mini-fab][rxapTableHeaderButton]',\n  standalone: true,\n})\nexport class TableHeaderButtonDirective<Data extends Record<string, any>> extends ConfirmDirective\n  implements OnInit {\n\n  @Input({\n    required: true,\n    alias: 'rxapTableHeaderButton',\n  })\n  public tableDataSourceDirective!: TableDataSourceDirective<Data>;\n\n  @Input()\n  public errorMessage?: string;\n  @Input()\n  public successMessage?: string;\n  /**\n   * true - after the action is executed the table datasource is refreshed\n   */\n  @Input()\n  public refresh?: boolean;\n\n  protected options: TableHeaderButtonMethodOptions | null = null;\n  private _actionDisabled = false;\n  private _currentStatus: TableHeaderButtonActionStatus = TableHeaderButtonActionStatus.DONE;\n\n  constructor(\n    @Inject(Overlay)\n      overlay: Overlay,\n    @Inject(ElementRef)\n      elementRef: ElementRef,\n    @Inject(TABLE_HEADER_BUTTON_METHOD)\n    private readonly method: Method,\n    @Inject(MatSnackBar)\n    private readonly snackBar: MatSnackBar,\n    @Optional()\n    @Inject(MatTooltip)\n    private readonly matTooltip: MatTooltip | null,\n    @Optional()\n    @Inject(MatMiniFabButton)\n    private readonly matButton: MatMiniFabButton | null,\n    @Inject(ChangeDetectorRef)\n    protected readonly cdr: ChangeDetectorRef,\n  ) {\n    super(overlay, elementRef);\n  }\n\n  private _hasConfirmDirective = false;\n\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('rxapConfirm')\n  public set hasConfirmDirective(value: any) {\n    this._hasConfirmDirective = coerceBoolean(value);\n  }\n\n  @HostListener('confirmed')\n  public override onConfirmed() {\n    return this.execute();\n  }\n\n  @HostListener('click', [ '$event' ])\n  public override onClick($event: Event) {\n    $event.stopPropagation();\n    if (!this._hasConfirmDirective && !this.options?.confirm) {\n      return this.execute();\n    } else if (this.options?.confirm) {\n      this.openConfirmOverly();\n    } else {\n      if (isDevMode()) {\n        console.debug('skip remote method call. Wait for confirmation.');\n      }\n    }\n    return Promise.resolve();\n  }\n\n  public async execute(): Promise<void> {\n    if (this._actionDisabled) {\n      return Promise.resolve();\n    }\n    this.setStatus(TableHeaderButtonActionStatus.EXECUTING);\n    try {\n      await this.method.call();\n      this.setStatus(TableHeaderButtonActionStatus.SUCCESS);\n    } catch (e: any) {\n      console.error(`Failed to execute table header action: ${ e.message }`);\n      this.setStatus(TableHeaderButtonActionStatus.ERROR);\n    }\n  }\n\n  ngOnInit() {\n    this.options = this.getTableHeaderButtonOptions();\n    if (this.options) {\n      this.refresh ??= this.options.refresh ?? false;\n      this.errorMessage ??= this.options.errorMessage ?? undefined;\n      this.successMessage ??= this.options.successMessage ?? undefined;\n      if (this.matTooltip && this.options.tooltip) {\n        this.matTooltip.message = this.options.tooltip;\n      }\n    }\n  }\n\n  /**\n   * Disables the action. If the button is pressed the action is NOT executed\n   *\n   * Hint: the button is set to disabled = true to prevent any conflict with\n   * extern button enable features linke : rxapHasEnablePermission\n   * @protected\n   */\n  protected setButtonDisabled() {\n    this._actionDisabled = true;\n  }\n\n  /**\n   * Enables the action. If the button is pressed the action is executed\n   *\n   * TODO : find a way to communicate the disabled state between the features\n   * Hint: the button is set to disabled = false to prevent any conflict with\n   * extern button enable features linke : rxapHasEnablePermission\n   * @protected\n   */\n  protected setButtonEnabled() {\n    this._actionDisabled = false;\n  }\n\n  private setStatus(status: TableHeaderButtonActionStatus) {\n    if (this._currentStatus === status) {\n      return;\n    }\n    this._currentStatus = status;\n    switch (status) {\n      case TableHeaderButtonActionStatus.EXECUTING:\n        this.setButtonDisabled();\n        break;\n      case TableHeaderButtonActionStatus.SUCCESS:\n        if (this.refresh) {\n          this.tableDataSourceDirective.refresh();\n        }\n        if (this.successMessage) {\n          this.snackBar.open(this.successMessage, 'ok', { duration: 2560 });\n        }\n        this.setStatus(TableHeaderButtonActionStatus.DONE);\n        break;\n      case TableHeaderButtonActionStatus.ERROR:\n        this.setStatus(TableHeaderButtonActionStatus.DONE);\n        if (this.errorMessage) {\n          this.snackBar.open(this.errorMessage, 'ok', { duration: 5120 });\n        }\n        break;\n      case TableHeaderButtonActionStatus.DONE:\n        this.setButtonEnabled();\n        break;\n    }\n    this.cdr.detectChanges();\n  }\n\n  private getTableHeaderButtonOptions(): TableHeaderButtonMethodOptions {\n    return GetTableHeaderButtonMetadata(this.method);\n  }\n\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport const RXAP_TABLE_FILTER_FORM_DEFINITION = new InjectionToken('rxap/form-table-system/filter-form-definition');\n","import {\n  ChangeDetectorRef,\n  Directive,\n  forwardRef,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n} from '@angular/core';\nimport { ControlContainer } from '@angular/forms';\nimport {\n  FormDefinition,\n  FormDirective,\n} from '@rxap/forms';\nimport { equals } from '@rxap/utilities';\nimport { Subscription } from 'rxjs';\nimport {\n  debounceTime,\n  distinctUntilChanged,\n  tap,\n} from 'rxjs/operators';\nimport { TableFilterService } from './table-filter.service';\nimport { RXAP_TABLE_FILTER_FORM_DEFINITION } from './tokens';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: 'table[rxap-filter-header-row]',\n  providers: [\n    {\n      provide: ControlContainer,\n      // ignore coverage\n      useExisting: forwardRef(() => FilterHeaderRowDirective),\n    },\n  ],\n  standalone: true,\n})\nexport class FilterHeaderRowDirective\n  extends FormDirective\n  implements OnInit, OnDestroy {\n\n  @Input('rxap-filter-header-row')\n  public override set useFormDefinition(value: FormDefinition | '') {\n    if (value) {\n      this._formDefinition = value as any;\n      this.form = value.rxapFormGroup;\n    }\n  }\n\n  private _subscription?: Subscription;\n\n  constructor(\n    private readonly tableFilter: TableFilterService,\n    cdr: ChangeDetectorRef,\n    @Optional()\n    @Inject(RXAP_TABLE_FILTER_FORM_DEFINITION)\n      formDefinition: FormDefinition | null,\n  ) {\n    super(cdr, formDefinition);\n  }\n\n  public override ngOnInit() {\n    super.ngOnInit();\n    this._subscription = new Subscription();\n    this._subscription.add(this.tableFilter.reset$.subscribe(() => this.form.reset()));\n    this._subscription.add(this.form.value$\n                             .pipe(\n                               debounceTime(1000),\n                               distinctUntilChanged((a, b) => equals(a, b)),\n                               tap(values => this.tableFilter.setMap(values)),\n                             )\n                             .subscribe());\n  }\n\n  public override ngOnDestroy() {\n    super.ngOnDestroy();\n    this._subscription?.unsubscribe();\n  }\n}\n","import {\n  Pipe,\n  PipeTransform,\n} from '@angular/core';\n\n@Pipe({\n  name: 'toFilterColumnNames',\n  standalone: true,\n})\nexport class ToFilterColumnNamesPipe implements PipeTransform {\n\n  public transform(columns: string[]): string[] {\n    return columns.map(column => 'filter_' + column);\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { ToFilterColumnNamesPipe } from './to-filter-column-names.pipe';\nimport { FilterHeaderRowDirective } from './filter-header-row.directive';\n\n\n@NgModule({\n  exports: [\n    ToFilterColumnNamesPipe,\n    FilterHeaderRowDirective,\n  ],\n  imports: [\n    ToFilterColumnNamesPipe,\n    FilterHeaderRowDirective,\n  ],\n})\nexport class TableFilterModule {\n}\n","import { InjectionToken } from '@angular/core';\nimport { Method } from '@rxap/pattern';\n\nexport const TABLE_CREATE_REMOTE_METHOD = new InjectionToken<Method>('table-create-remote-method');\n","import {\n  Directive,\n  ElementRef,\n  HostListener,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n} from '@angular/core';\nimport { Method } from '@rxap/pattern';\nimport {\n  isObservable,\n  Observable,\n  Subject,\n} from 'rxjs';\nimport { TableDataSourceDirective } from '../table-data-source.directive';\nimport { TABLE_CREATE_REMOTE_METHOD } from './tokens';\n\n@Directive({\n  selector: 'button[rxapTableCreate]',\n  standalone: true,\n})\nexport class TableCreateButtonDirective<Data extends Record<string, any>>\n  implements OnInit, OnDestroy {\n  @Input({\n    required: true,\n    alias: 'rxapTableCreate',\n  })\n  public dataSource!: TableDataSourceDirective<Data>;\n\n  private _createObservable?: Observable<any>;\n\n  constructor(\n    @Inject(TABLE_CREATE_REMOTE_METHOD)\n    private readonly method: Method<any, Data | Observable<Data>>,\n    @Inject(ElementRef)\n    private readonly elementRef: ElementRef,\n    @Inject(Renderer2)\n    private readonly renderer: Renderer2,\n  ) {\n  }\n\n  public ngOnInit() {\n    this.renderer.setStyle(\n      this.elementRef.nativeElement,\n      'margin-bottom',\n      '6px',\n    );\n  }\n\n  public ngOnDestroy() {\n    if (this._createObservable instanceof Subject) {\n      this._createObservable.complete();\n    }\n  }\n\n  @HostListener('click')\n  public async onClick() {\n    const result = this._createObservable = await this.method.call();\n    if (isObservable(result)) {\n      await result.toPromise();\n    }\n    this.dataSource.refresh();\n  }\n}\n\n\n","import {\n  Component,\n  ElementRef,\n  Inject,\n  Input,\n  OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n  coerceBoolean,\n  Required,\n} from '@rxap/utilities';\n\n@Component({\n  selector: 'rxap-table-column-option',\n  templateUrl: './table-column-option.component.html',\n  styleUrls: [ './table-column-option.component.css' ],\n  standalone: true,\n})\nexport class TableColumnOptionComponent implements OnInit {\n  @Input({ required: true })\n  public name!: string;\n\n  @Input()\n  public active = true;\n\n  /**\n   * The displayed value of the option. It is necessary to show the selected option in the\n   * select's trigger.\n   */\n  get display(): string {\n    return (this._element.nativeElement.textContent || '').trim();\n  }\n\n  @Input()\n  public set inactive(value: boolean | '') {\n    this.active = !coerceBoolean(value);\n  }\n\n  @Input()\n  public set hidden(value: boolean | '') {\n    this._hidden = coerceBoolean(value);\n  }\n\n  public get hidden(): boolean | '' {\n    return this._hidden;\n  }\n\n  private _hidden = false;\n\n  @Input()\n  public set show(value: boolean) {\n    this._hidden = !value;\n  }\n\n  private get cacheId(): string {\n    return this.router.url + '--' + this.name;\n  }\n\n  constructor(\n    @Inject(ElementRef)\n    private _element: ElementRef<HTMLElement>,\n    private readonly router: Router,\n  ) {\n  }\n\n  public ngOnInit() {\n    const cachedValue = localStorage.getItem(this.cacheId);\n    if (cachedValue === 'true') {\n      this.active = true;\n    }\n    if (cachedValue === 'false') {\n      this.active = false;\n    }\n  }\n\n  public toggle(): void {\n    this.active = !this.active;\n    localStorage.setItem(this.cacheId, this.active ? 'true' : 'false');\n  }\n\n  public activate() {\n    this.active = true;\n    localStorage.setItem(this.cacheId, 'true');\n  }\n\n  public deactivate() {\n    this.active = false;\n    localStorage.setItem(this.cacheId, 'false');\n  }\n}\n","<ng-content></ng-content>\n","import {\n  NgClass,\n  NgFor,\n} from '@angular/common';\nimport type { QueryList } from '@angular/core';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  HostBinding,\n  Input,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { StopPropagationDirective } from '@rxap/directives';\nimport { coerceBoolean } from '@rxap/utilities';\nimport { TableColumnOptionComponent } from './table-column-option/table-column-option.component';\n\n@Component({\n    selector: 'rxap-table-column-menu',\n    templateUrl: './table-column-menu.component.html',\n    styleUrls: ['./table-column-menu.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: 'rxapTableColumns',\n    imports: [\n        MatButtonModule,\n        MatMenuModule,\n        MatIconModule,\n        NgFor,\n        StopPropagationDirective,\n        MatCheckboxModule,\n        NgClass,\n    ]\n})\nexport class TableColumnMenuComponent implements AfterContentInit {\n\n  public get visibleColumns() {\n    return this.columns?.filter((option) => !option.hidden);\n  }\n\n  @ContentChildren(TableColumnOptionComponent)\n  public columns?: QueryList<TableColumnOptionComponent>;\n\n  public displayColumns: string[] = [];\n\n  @HostBinding('class.inline')\n  private _inline = false;\n\n  public get inline(): boolean | '' {\n    return this._inline;\n  }\n\n  /**\n   * true - the menu is displayed inline and not absolute\n   * @param value\n   */\n  @Input()\n  public set inline(value: boolean | '') {\n    this._inline = coerceBoolean(value);\n  }\n\n  @Input()\n  public set matCard(value: boolean | '') {\n    this._matCardMode = coerceBoolean(value);\n  }\n\n  @HostBinding('class.mat-card-mode')\n  private _matCardMode = false;\n\n  public ngAfterContentInit() {\n    this.updateDisplayColumns();\n  }\n\n  public updateDisplayColumns() {\n    if (!this.columns) {\n      throw new Error(\n        'Could not query content children of TableColumnOptionComponent',\n      );\n    }\n    this.displayColumns = this.columns\n                              .filter((option) => option.active)\n                              .map((option) => option.name);\n  }\n\n  public activate(columnName: string) {\n    this.columns\n        ?.filter((option) => option.name === columnName)\n        .forEach((column) => column.activate());\n    this.updateDisplayColumns();\n  }\n\n  public deactivate(columnName: string) {\n    this.columns\n        ?.filter((option) => option.name === columnName)\n        .forEach((column) => column.deactivate());\n    this.updateDisplayColumns();\n  }\n}\n","<button [matMenuTriggerFor]=\"columnMenu\" mat-icon-button type=\"button\">\n  <mat-icon>tune</mat-icon>\n</button>\n\n<mat-menu #columnMenu=\"matMenu\">\n  <span\n    *ngFor=\"let column of $any(visibleColumns ?? [])\"\n    [disableRipple]=\"true\"\n    mat-menu-item\n    rxapStopPropagation\n  >\n    <mat-checkbox\n      (change)=\"column.toggle(); updateDisplayColumns()\"\n      [checked]=\"column.active\">\n      {{ column.display }}\n    </mat-checkbox>\n  </span>\n  <ng-content select=\"[mat-menu-item],mat-divider\"></ng-content>\n</mat-menu>\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  Input,\n  Optional,\n} from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport {\n  MatSlideToggleChange,\n  MatSlideToggleModule,\n} from '@angular/material/slide-toggle';\nimport { StopPropagationDirective } from '@rxap/directives';\nimport { SelectRowService } from '../../select-row/select-row.service';\nimport { TableFilterService } from '../../table-filter/table-filter.service';\nimport { TableColumnMenuComponent } from '../table-column-menu.component';\n\n@Component({\n    selector: 'rxap-table-show-archived-slide',\n    templateUrl: './table-show-archived-slide.component.html',\n    styleUrls: ['./table-show-archived-slide.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [StopPropagationDirective, MatSlideToggleModule]\n})\nexport class TableShowArchivedSlideComponent implements AfterViewInit {\n\n  @Input()\n  public paginator?: MatPaginator;\n\n  constructor(\n    @Optional()\n    @Inject(TableFilterService)\n    private readonly tableFilter: TableFilterService | null,\n    @Inject(TableColumnMenuComponent)\n    private readonly tableColumnMenu: TableColumnMenuComponent,\n    @Inject(SelectRowService)\n    private readonly selectRows: SelectRowService | null,\n  ) {\n  }\n\n  public onChange($event: MatSlideToggleChange) {\n    this.paginator?.firstPage();\n    this.tableFilter?.set('__archived', $event.checked);\n    this.selectRows?.clear();\n    if ($event.checked) {\n      this.tableColumnMenu.activate('removedAt');\n      this.tableColumnMenu.activate('__removedAt');\n      this.tableColumnMenu.activate('__--removed-at');\n      this.tableColumnMenu.activate('removed-at');\n      this.tableColumnMenu.activate('__removed-at');\n    } else {\n      this.tableColumnMenu.deactivate('removedAt');\n      this.tableColumnMenu.deactivate('__removedAt');\n      this.tableColumnMenu.deactivate('__--removed-at');\n      this.tableColumnMenu.deactivate('removed-at');\n      this.tableColumnMenu.deactivate('__removed-at');\n    }\n  }\n\n  public ngAfterViewInit() {\n    this.tableColumnMenu.deactivate('removedAt');\n    this.tableColumnMenu.deactivate('__removedAt');\n    this.tableColumnMenu.deactivate('__--removed-at');\n    this.tableColumnMenu.deactivate('removed-at');\n    this.tableColumnMenu.deactivate('__removed-at');\n  }\n\n}\n","<div class=\"m-6\" rxapStopPropagation>\n  <mat-slide-toggle (change)=\"onChange($event)\">\n    <span class=\"mx-2 whitespace-nowrap\" i18n>Show archived documents</span>\n  </mat-slide-toggle>\n</div>\n","import { NgModule } from '@angular/core';\nimport { TableColumnMenuComponent } from './table-column-menu.component';\nimport { TableShowArchivedSlideComponent } from './table-show-archived-slide/table-show-archived-slide.component';\nimport { TableColumnOptionComponent } from './table-column-option/table-column-option.component';\n\n@NgModule({\n  imports: [\n    TableColumnMenuComponent,\n    TableShowArchivedSlideComponent,\n    TableColumnOptionComponent,\n  ],\n  exports: [\n    TableColumnMenuComponent,\n    TableShowArchivedSlideComponent,\n    TableColumnOptionComponent,\n  ],\n})\nexport class TableColumnMenuModule {}\n","import { Injectable } from '@angular/core';\nimport { FilterLike } from '@rxap/data-source/table';\nimport { clone } from '@rxap/utilities';\nimport { BehaviorSubject } from 'rxjs';\n\n// TODO : move to rxap packages\n@Injectable()\nexport class TableColumnFilterService implements FilterLike {\n  public readonly change = new BehaviorSubject<Record<string, string>>({});\n  public get current(): Record<string, string> {\n    return clone(this.change.value);\n  }\n\n  public setFilter(column: string, value: string | undefined | null): void {\n    const next = this.current;\n    if (value) {\n      next[column] = value;\n    } else if (next[column]) {\n      delete next[column];\n    }\n    this.change.next(next);\n  }\n\n}\n","import {\n  AfterViewInit,\n  Directive,\n  Inject,\n  Input,\n  OnDestroy,\n} from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport {\n  debounceTime,\n  tap,\n} from 'rxjs/operators';\nimport { RXAP_TABLE_FILTER } from '../table-data-source.directive';\nimport { TableColumnFilterService } from './table-column-filter.service';\n\n// TODO : move to rxap packages\n@Directive({\n  selector: 'input[ngModel][rxapTableColumnFilterInput]',\n  standalone: true,\n})\nexport class TableColumnFilterInputDirective implements AfterViewInit, OnDestroy {\n\n  @Input({required: true})\n  public column!: string;\n\n  private _subscription?: Subscription;\n\n  constructor(\n    @Inject(NgModel)\n    private readonly ngModel: NgModel,\n    @Inject(RXAP_TABLE_FILTER)\n    private readonly tableColumnFilterService: TableColumnFilterService,\n  ) {\n  }\n\n  public ngOnDestroy() {\n    this._subscription?.unsubscribe();\n  }\n\n  public ngAfterViewInit() {\n    if (!this.ngModel.valueChanges) {\n      throw new Error('Could not access the ngModel value change');\n    }\n    this._subscription = this.ngModel.valueChanges.pipe(\n      debounceTime(500),\n      tap((value) => {\n          this.tableColumnFilterService.setFilter(this.column, value);\n        },\n      ),\n    )\n    .subscribe();\n  }\n\n\n}\n\n\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  OnInit,\n} from '@angular/core';\nimport { SelectRowService } from '../select-row.service';\nimport type { Observable } from 'rxjs';\nimport { EMPTY } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n  MatCheckboxChange,\n  MatCheckboxModule,\n} from '@angular/material/checkbox';\nimport { CdkTable } from '@angular/cdk/table';\nimport {\n  AsyncPipe,\n  NgIf,\n} from '@angular/common';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'th[rxap-checkbox-header-cell]',\n    templateUrl: './checkbox-header-cell.component.html',\n    styleUrls: ['./checkbox-header-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        NgIf,\n        MatCheckboxModule,\n        AsyncPipe,\n    ]\n})\nexport class CheckboxHeaderCellComponent<Data extends Record<string, any>>\n  implements OnInit {\n  public indeterminate$: Observable<boolean> = EMPTY;\n  public checked$: Observable<boolean> = EMPTY;\n\n  public isMultipleSelection = false;\n\n  constructor(\n    @Inject(CdkTable)\n    private readonly cdkTable: CdkTable<Data>,\n    private readonly selectRow: SelectRowService<Data>,\n  ) {\n    this.isMultipleSelection =\n      this.selectRow.selectionModel.isMultipleSelection();\n  }\n\n  public ngOnInit() {\n    this.indeterminate$ = this.selectRow.selectedRows$.pipe(\n      map(\n        (selectedRows) =>\n          !!selectedRows.length &&\n          this.cdkTable['_data']?.length !== selectedRows.length,\n      ),\n    );\n    this.checked$ = this.selectRow.selectedRows$.pipe(\n      map(\n        (selectedRows) =>\n          !!selectedRows.length &&\n          this.cdkTable['_data']?.length === selectedRows.length,\n      ),\n    );\n  }\n\n  public onChange($event: MatCheckboxChange) {\n    if ($event.checked) {\n      this.selectRow.selectionModel.select(...this.cdkTable['_data'] ?? []);\n    } else {\n      this.selectRow.selectionModel.clear();\n    }\n  }\n}\n","<mat-checkbox\n  (change)=\"onChange($event)\"\n  *ngIf=\"isMultipleSelection\"\n  [checked]=\"(checked$ | async) ?? false\"\n  [indeterminate]=\"indeterminate$ | async\">\n</mat-checkbox>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  Input,\n} from '@angular/core';\nimport { Required } from '@rxap/utilities';\nimport { SelectRowService } from '../select-row.service';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-checkbox-cell]',\n    templateUrl: './checkbox-cell.component.html',\n    styleUrls: ['./checkbox-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    imports: [MatCheckboxModule]\n})\nexport class CheckboxCellComponent<Data extends Record<string, any>> {\n\n  @Input({ required: true })\n  public element!: Data;\n\n  constructor(\n    @Inject(SelectRowService)\n    public readonly selectRow: SelectRowService<Data>,\n  ) {\n  }\n\n}\n","<mat-checkbox\n  (change)=\"selectRow.selectionModel.toggle(element)\"\n  [checked]=\"selectRow.selectionModel.isSelected(element)\">\n</mat-checkbox>\n","import {\n  ChangeDetectorRef,\n  Directive,\n  Inject,\n  OnDestroy,\n  OnInit,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SelectRowService } from './select-row.service';\nimport {\n  distinctUntilChanged,\n  tap,\n} from 'rxjs/operators';\n\nexport interface SelectedRowsDirectiveContext<Data extends Record<string, any>> {\n  $implicit: Data[];\n}\n\n@Directive({\n  selector: '[rxapSelectedRows]',\n  standalone: true,\n})\nexport class SelectedRowsDirective<Data extends Record<string, any>> implements OnInit, OnDestroy {\n\n  private _subscription?: Subscription;\n\n  constructor(\n    @Inject(TemplateRef)\n    private readonly template: TemplateRef<SelectedRowsDirectiveContext<Data>>,\n    @Inject(ViewContainerRef)\n    private readonly viewContainerRef: ViewContainerRef,\n    @Inject(ChangeDetectorRef)\n    private readonly cdr: ChangeDetectorRef,\n    @Inject(SelectRowService)\n    private readonly selectRowService: SelectRowService<Data>,\n  ) {\n  }\n\n  public ngOnDestroy() {\n    this._subscription?.unsubscribe();\n  }\n\n  public ngOnInit() {\n    this._subscription = this.selectRowService.selectedRows$.pipe(\n      distinctUntilChanged(),\n      tap(selectedAllRows => {\n        this.viewContainerRef.clear();\n        if (selectedAllRows) {\n          this.viewContainerRef.createEmbeddedView(this.template, { $implicit: this.selectRowService.selectedRows });\n        }\n        this.cdr.detectChanges();\n      }),\n    ).subscribe();\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CheckboxCellComponent } from './checkbox-cell/checkbox-cell.component';\nimport { CheckboxHeaderCellComponent } from './checkbox-header-cell/checkbox-header-cell.component';\nimport { SelectedRowsDirective } from './selected-rows.directive';\n\n\n@NgModule({\n  exports: [\n    CheckboxCellComponent,\n    CheckboxHeaderCellComponent,\n    SelectedRowsDirective,\n  ],\n  imports: [\n    SelectedRowsDirective,\n    CheckboxCellComponent,\n    CheckboxHeaderCellComponent,\n  ],\n})\nexport class SelectRowModule {}\n","import {\n  Directive,\n  Inject,\n  TemplateRef,\n} from '@angular/core';\n\nexport interface ExpandCellContentDirectiveContext<Data extends Record<string, any>> {\n  $implicit: Data;\n}\n\n@Directive({\n  selector: '[rxapExpandRowContent]',\n  standalone: true,\n})\nexport class ExpandRowContentDirective<Data extends Record<string, any>> {\n\n\n  static ngTemplateContextGuard<Data extends Record<string, any>>(dir: ExpandRowContentDirective<Data>, ctx: any):\n    ctx is ExpandCellContentDirectiveContext<Data> {\n    return true;\n  }\n\n  constructor(\n    @Inject(TemplateRef)\n    public readonly template: TemplateRef<ExpandCellContentDirectiveContext<Data>>,\n  ) {\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport type { Observable } from 'rxjs';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class ExpandRowService<Data extends Record<string, any>> {\n  public expandedRow = new BehaviorSubject<Data | null>(null);\n\n  public toggleRow(row: Data): void {\n    if (this.expandedRow.value === row) {\n      this.expandedRow.next(null);\n    } else {\n      this.expandedRow.next(row);\n    }\n  }\n\n  public isExpanded(row: Data) {\n    return this.expandedRow.value === row;\n  }\n\n  public isExpanded$(row: Data): Observable<boolean> {\n    return this.expandedRow.pipe(map((expandedRow) => expandedRow === row));\n  }\n}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  Inject,\n  Input,\n  OnDestroy,\n  ViewContainerRef,\n} from '@angular/core';\nimport {\n  ExpandCellContentDirectiveContext,\n  ExpandRowContentDirective,\n} from './expand-row-content.directive';\nimport {\n  PortalModule,\n  TemplatePortal,\n} from '@angular/cdk/portal';\nimport { Required } from '@rxap/utilities';\nimport {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\nimport { ExpandRowService } from '../expand-row.service';\nimport { Subscription } from 'rxjs';\nimport {\n  filter,\n  tap,\n} from 'rxjs/operators';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-expand-row]',\n    templateUrl: './expand-row-container.component.html',\n    styleUrls: ['./expand-row-container.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    animations: [\n        trigger('detailExpand', [\n            state('collapsed', style({\n                height: '0px',\n                minHeight: '0',\n            })),\n            state('expanded', style({ height: '*' })),\n            transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n        ]),\n    ],\n    imports: [PortalModule, AsyncPipe]\n})\nexport class ExpandRowContainerComponent<Data extends Record<string, any>> implements AfterContentInit, OnDestroy {\n\n  @Input({ required: true })\n  public element!: Data;\n\n  @ContentChild(ExpandRowContentDirective)\n  public expandCellContent?: ExpandRowContentDirective<Data>;\n\n  public portal: TemplatePortal<ExpandCellContentDirectiveContext<Data>> | null = null;\n\n  private _subscription?: Subscription;\n\n  constructor(\n    @Inject(ViewContainerRef)\n    private readonly viewContainerRef: ViewContainerRef,\n    @Inject(ExpandRowService)\n    public readonly expandCell: ExpandRowService<Data>,\n  ) {\n  }\n\n  public ngOnDestroy() {\n    this._subscription?.unsubscribe();\n  }\n\n  public ngAfterContentInit() {\n    if (this.expandCellContent) {\n      this._subscription = this.expandCell.isExpanded$(this.element).pipe(\n        filter(Boolean),\n        tap(() => {\n          if (!this.portal) {\n            this.portal =\n              new TemplatePortal(this.expandCellContent!.template, this.viewContainerRef, { $implicit: this.element });\n          }\n        }),\n      ).subscribe();\n    }\n  }\n\n}\n","<div [@detailExpand]=\"(expandCell.isExpanded$(element) | async) ? 'expanded' : 'collapsed'\" class=\"element-detail\">\n  <ng-content></ng-content>\n  <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n  Input,\n} from '@angular/core';\nimport { ExpandRowService } from '../expand-row.service';\nimport { Required } from '@rxap/utilities';\nimport { MatIconModule } from '@angular/material/icon';\nimport {\n  AsyncPipe,\n  NgIf,\n} from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-expand-controls-cell]',\n    templateUrl: './expand-controls-cell.component.html',\n    styleUrls: ['./expand-controls-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [MatButtonModule, NgIf, MatIconModule, AsyncPipe]\n})\nexport class ExpandControlsCellComponent<Data extends Record<string, any>> {\n\n  @Input({ required: true })\n  public element!: Data;\n\n  constructor(\n    @Inject(ExpandRowService)\n    public readonly expandCell: ExpandRowService<Data>,\n  ) {\n  }\n\n}\n","<button type=\"button\" mat-icon-button>\n  <mat-icon *ngIf=\"expandCell.isExpanded$(element) | async; else notExpanded\">expand_more</mat-icon>\n  <ng-template #notExpanded>\n    <mat-icon>keyboard_arrow_right</mat-icon>\n  </ng-template>\n</button>\n","import {\n  Directive,\n  HostListener,\n  Inject,\n  Input,\n} from '@angular/core';\nimport { ExpandRowService } from './expand-row.service';\nimport { Required } from '@rxap/utilities';\n\n@Directive({\n  selector: 'tr[rxapExpandRow]',\n  standalone: true,\n})\nexport class ExpandRowDirective<Data extends Record<string, any>> {\n\n  @HostListener('expanded-row')\n  public get isExpanded() {\n    return this.expandCell.isExpanded(this.element);\n  }\n\n  @Input({ required: true })\n  public element!: Data;\n\n  constructor(\n    @Inject(ExpandRowService)\n    private readonly expandCell: ExpandRowService<Data>,\n  ) {\n  }\n\n  @HostListener('click')\n  public onClick() {\n    this.expandCell.toggleRow(this.element);\n  }\n\n}\n","import { NgModule } from '@angular/core';\n\n\nimport { ExpandRowService } from './expand-row.service';\nimport { ExpandRowDirective } from './expand-row.directive';\n\n@NgModule({\n  imports: [ ExpandRowDirective ],\n  exports: [\n    ExpandRowDirective,\n  ],\n  providers: [\n    ExpandRowService,\n  ],\n})\nexport class ExpandRowModule {\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  DoCheck,\n  Input,\n  OnInit,\n} from '@angular/core';\nimport { IconConfig } from '@rxap/utilities';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RowDataWithNode } from '@rxap/data-source/table/tree';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'rxap-tree-control-cell, td[rxap-tree-control-cell]',\n    templateUrl: './tree-control-cell.component.html',\n    styleUrls: ['./tree-control-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        MatButtonModule,\n        MatIconModule,\n        IconDirective,\n        NgIf,\n    ]\n})\nexport class TreeControlCellComponent implements OnInit, DoCheck {\n\n  public offset!: string;\n  public icon!: IconConfig;\n\n  public expandIcon!: string;\n\n  @Input('rxap-tree-control-cell')\n  public element: RowDataWithNode<any>;\n\n  public ngOnInit() {\n    this.offset = (this.element.__node.depth * 24) + 'px';\n    this.updateIcon();\n  }\n\n  public ngDoCheck() {\n    this.updateIcon();\n  }\n\n  public toggleExpand() {\n    return this.element.__node.toggleExpand();\n  }\n\n  private updateIcon(): void {\n    this.icon = this.element.icon;\n    if (this.element.__node.hasChildren) {\n      if (this.element.__node.expanded) {\n        this.expandIcon = 'expand_more';\n      } else {\n        this.expandIcon = 'expand_less';\n      }\n    } else {\n      this.icon ??= { icon: 'subdirectory_arrow_right' };\n    }\n  }\n\n}\n","<div class=\"flex flex-row justify-start items-center\">\n  <div class=\"pl-[{{ offset }}]\">\n    <button type=\"button\" (click)=\"toggleExpand()\" mat-icon-button>\n      <mat-icon>{{expandIcon}}</mat-icon>\n    </button>\n  </div>\n  <div *ngIf=\"icon\">\n    <mat-icon [rxapIcon]=\"icon\"></mat-icon>\n  </div>\n  <div class=\"content\">\n    <ng-content></ng-content>\n  </div>\n</div>\n","import type {\n  OnChanges,\n  QueryList,\n  SimpleChanges,\n} from '@angular/core';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  Input,\n  isDevMode,\n  OnDestroy,\n  Renderer2,\n} from '@angular/core';\nimport { MatOption } from '@angular/material/core';\nimport { Subscription } from 'rxjs';\nimport {\n  startWith,\n  tap,\n} from 'rxjs/operators';\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'td[rxap-options-cell]',\n  templateUrl: './options-cell.component.html',\n  styleUrls: [ './options-cell.component.scss' ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class OptionsCellComponent implements AfterContentInit, OnDestroy, OnChanges {\n  @Input('rxap-options-cell')\n  public value: any;\n\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('default')\n  public defaultViewValue!: string;\n\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  @Input('empty')\n  public emptyViewValue!: string;\n\n  public viewValue!: string;\n\n  private readonly _subscription = new Subscription();\n\n  private _initialised = false;\n\n  constructor(private readonly renderer: Renderer2) {\n    this.defaultViewValue = ''; // $localize`:@@rxap-material.table-system.options-cell.unknown:unknown`;\n    this.emptyViewValue = ''; // $localize`:@@rxap-material.table-system.options-cell.empty:empty`;\n  }\n\n  @ContentChildren(MatOption, { descendants: true })\n  public options!: QueryList<MatOption>;\n\n  public ngAfterContentInit() {\n    // Hide the mat-option elements\n    this._subscription.add(this.options.changes.pipe(\n      startWith(null),\n      tap(() => this.options.forEach(option => this.renderer.setStyle(option._getHostElement(), 'display', 'none'))),\n    ).subscribe());\n    this.setViewValue();\n    this._initialised = true;\n  }\n\n  public setViewValue() {\n    if (this.value === undefined || this.value === null) {\n      this.viewValue = this.emptyViewValue;\n    } else {\n      if (this.options) {\n        this._subscription.add(this.options.changes\n                                   .pipe(\n                                     startWith(null),\n                                     tap(() => (this.viewValue = this.getViewValue())),\n                                   )\n                                   .subscribe());\n      } else if (isDevMode()) {\n        console.log('Could not load any option');\n      }\n    }\n  }\n\n  public ngOnChanges(changes: SimpleChanges) {\n    if (this._initialised) {\n      if (changes['value']) {\n        this.setViewValue();\n      }\n    }\n  }\n\n  public getViewValue(): string {\n    return (\n      this.options.find((option) => option.value === this.value)?.viewValue ??\n      this.defaultViewValue\n    );\n  }\n\n  public ngOnDestroy() {\n    this._subscription?.unsubscribe();\n  }\n}\n","{{viewValue}}\n<ng-content></ng-content>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport {\n  NgIf,\n  NgSwitch,\n  NgSwitchCase,\n  NgSwitchDefault,\n} from '@angular/common';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-link-cell]',\n    templateUrl: './link-cell.component.html',\n    styleUrls: ['./link-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [NgIf, MatTooltipModule, NgSwitch, NgSwitchCase, MatIconModule, NgSwitchDefault]\n})\nexport class LinkCellComponent {\n\n  @Input('rxap-link-cell')\n  public value: any;\n\n  public get href(): string {\n    if (this.protocol) {\n      return [ this.protocol, this.value ].join(':');\n    }\n    return this.value;\n  }\n\n  @Input()\n  public protocol?: 'tel' | 'mailto';\n\n  @Input()\n  public short = true;\n\n}\n","<a *ngIf=\"value\" [href]=\"href\" [matTooltip]=\"value\" class=\"link\" target=\"_blank\">\n  <span class=\"flex flex-row items-center gap-2\">\n    <span *ngIf=\"short\" class=\"content grow-0\" i18n>Open</span>\n    <ng-container [ngSwitch]=\"protocol\">\n      <mat-icon *ngSwitchCase=\"'tel'\" class=\"grow-0\">call</mat-icon>\n      <mat-icon *ngSwitchCase=\"'mailto'\" class=\"grow-0\">email</mat-icon>\n      <mat-icon *ngSwitchDefault class=\"grow-0\">launch</mat-icon>\n    </ng-container>\n    <span *ngIf=\"!short\" class=\"content grow-0\">{{value}}</span>\n  </span>\n</a>\n<ng-content></ng-content>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n} from '@angular/core';\nimport {\n  BackgroundImageDirective,\n  BackgroundPosition,\n  BackgroundPositionOptions,\n  BackgroundRepeat,\n  BackgroundRepeatOptions,\n  BackgroundSize,\n  BackgroundSizeOptions,\n} from '@rxap/directives';\nimport {\n  NgClass,\n  NgIf,\n} from '@angular/common';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-image-cell]',\n    templateUrl: './image-cell.component.html',\n    styleUrls: ['./image-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [NgIf, NgClass, BackgroundImageDirective]\n})\nexport class ImageCellComponent {\n\n  @Input()\n  public preset?: string;\n\n  @Input()\n  public size: BackgroundSize = BackgroundSizeOptions.COVER;\n\n  @Input()\n  public repeat: BackgroundRepeat = BackgroundRepeatOptions.NO_REPEAT;\n\n  @Input()\n  public position: BackgroundPosition = BackgroundPositionOptions.CENTER_CENTER;\n\n  @Input('rxap-image-cell')\n  public value: string | null = null;\n\n}\n","<div\n  *ngIf=\"value\"\n  [ngClass]=\"[preset]\"\n  [position]=\"position\"\n  [repeat]=\"repeat\"\n  [rxapBackgroundImage]=\"value\"\n  [size]=\"size\"\n  class=\"image\">\n</div>\n<ng-content></ng-content>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n} from '@angular/core';\nimport { IconConfig } from '@rxap/utilities';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-icon-cell]',\n    templateUrl: './icon-cell.component.html',\n    styleUrls: ['./icon-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [NgIf, MatIconModule, IconDirective]\n})\nexport class IconCellComponent {\n\n  @Input('rxap-icon-cell')\n  public icon!: IconConfig | null;\n\n}\n","<mat-icon *ngIf=\"icon\" [rxapIcon]=\"icon\"></mat-icon>\n<ng-content></ng-content>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n} from '@angular/core';\nimport {\n  DatePipe,\n  NgIf,\n} from '@angular/common';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-date-cell]',\n    templateUrl: './date-cell.component.html',\n    styleUrls: ['./date-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [NgIf, DatePipe]\n})\nexport class DateCellComponent {\n\n  @Input('rxap-date-cell')\n  public date: Date | number | string | null = null;\n\n  @Input()\n  public format = 'dd.MM.yyyy HH:mm';\n\n}\n","<ng-template [ngIf]=\"date\">\n  {{date | date:format}}\n</ng-template>\n<ng-content></ng-content>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n} from '@angular/core';\nimport { CopyToClipboardComponent } from '@rxap/components';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-copy-to-clipboard-cell]',\n    templateUrl: './copy-to-clipboard-cell.component.html',\n    styleUrls: ['./copy-to-clipboard-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [NgIf, CopyToClipboardComponent]\n})\nexport class CopyToClipboardCellComponent {\n\n  @Input('rxap-copy-to-clipboard-cell')\n  public value: any;\n\n}\n","<rxap-copy-to-clipboard *ngIf=\"value !== null && value !== undefined && value !== ''\" [value]=\"value\"\n                        class=\"copy-to-clipboard\"></rxap-copy-to-clipboard>\n<ng-content></ng-content>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'td[rxap-boolean-cell]',\n    templateUrl: './boolean-cell.component.html',\n    styleUrls: ['./boolean-cell.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n  \n    host: { class: 'rxap-boolean-cell' },\n    imports: [NgIf, MatIconModule]\n})\nexport class BooleanCellComponent {\n\n  @Input('rxap-boolean-cell')\n  public value: any | null = null;\n\n}\n","<ng-template [ngIfElse]=\"isFalse\" [ngIf]=\"value\">\n  <mat-icon class=\"truthy\">check_circle</mat-icon>\n</ng-template>\n<ng-template #isFalse>\n  <mat-icon class=\"falsy\">cancel</mat-icon>\n</ng-template>\n<ng-content></ng-content>\n","import {\n  Directive,\n  Input,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { Subscription } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n@Directive({\n  selector: 'mat-paginator[rxapPersistent]',\n  standalone: true,\n})\nexport class PersistentPaginatorDirective implements OnInit, OnDestroy {\n\n  @Input()\n  public id?: string;\n\n  private _subscription?: Subscription;\n\n  constructor(\n    private readonly matPaginator: MatPaginator,\n  ) {\n  }\n\n  public ngOnInit() {\n    const config = this.restoreConfig();\n    if (config) {\n      this.matPaginator.pageSize = config.pageSize;\n    }\n    this._subscription = this.matPaginator.page.pipe(\n      tap(() => this.storeConfig()),\n    ).subscribe();\n  }\n\n  public ngOnDestroy() {\n    this._subscription?.unsubscribe();\n  }\n\n  public getKey() {\n    return 'rxap_mat-paginator-persistent' + this.id;\n  }\n\n  public storeConfig() {\n    const pageSize = this.matPaginator.pageSize;\n    localStorage.setItem(this.getKey(), JSON.stringify({ pageSize }));\n  }\n\n  public restoreConfig(): { pageSize: number } | null {\n    const configStorage = localStorage.getItem(this.getKey());\n    if (configStorage) {\n      try {\n        return JSON.parse(configStorage);\n      } catch (e: any) {\n        console.warn(`Could not parse mat paginator persistent config: ${ e.message }`);\n      }\n    }\n    return null;\n  }\n\n}\n\n\n","import {\n  animate,\n  sequence,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nconst offset = '50';\n\nexport const RowAnimation = trigger('rowsAnimation', [\n  transition('void => *', [\n    style({\n      height: '*',\n      opacity: '0',\n      transform: 'translateY(' + (-offset).toString() + 'px)',\n      'box-shadow': 'none',\n    }),\n    sequence([\n      animate('.2s ease', style({\n        height: '*',\n        opacity: '.2',\n        transform: 'translateX(0)',\n        'box-shadow': 'none',\n      })),\n      animate(\n        '.35s ease',\n        style({\n          height: '*',\n          opacity: 1,\n          transform: 'translateX(0)',\n        }),\n      ),\n    ]),\n  ]),\n  transition('* => void', [\n    style({\n      height: '0',\n      opacity: '0',\n      'box-shadow': 'none',\n    }),\n  ]),\n]);\n","import { ToggleSubject } from '@rxap/rxjs';\n\nexport interface TableRowMetadata {\n  /**\n   * the unique id of the row. Use to track the row in the table for change detection and other purposes\n   */\n  __rowId: string;\n  /**\n   * metadata for the row. Added by the table system to facilitate some features\n   */\n  __metadata__: {\n    loading$: ToggleSubject;\n  };\n}\n\nexport type RawTableRow<T extends TableRowMetadata> = Omit<T, '__metadata__' | '__rowId'>\n  & Partial<Pick<TableRowMetadata, '__rowId' | '__metadata__'>>;\n\nexport type RowIdMapperFunction<T extends TableRowMetadata> = (row: RawTableRow<T>) => string;\n\n/**\n * Normalize the table row. Add the __rowId and __metadata__ properties to the row.\n *\n * CAUTION: This function mutate the row object\n *\n * @template T extends TableRowMetadata\n * @param row\n * @param rowId\n * @returns T the normalized row\n */\nexport function NormalizeTableRow<T extends TableRowMetadata>(\n  row: RawTableRow<T>,\n  rowId: string,\n): T;\nexport function NormalizeTableRow<T extends TableRowMetadata>(\n  row: RawTableRow<T>,\n  rowIdMapper: RowIdMapperFunction<T>,\n): T;\nexport function NormalizeTableRow<T extends TableRowMetadata>(\n  row: RawTableRow<T>,\n  rowIdOrMapper: string | RowIdMapperFunction<T>,\n): T {\n  row.__rowId = typeof rowIdOrMapper === 'string' ? rowIdOrMapper : rowIdOrMapper(row);\n  row.__metadata__ ??= { loading$: new ToggleSubject() };\n  row.__metadata__.loading$ ??= new ToggleSubject();\n  return row as T;\n}\n","// region table-select-controls\nexport * from './lib/table-select-controls/table-select-controls.component';\n// endregion\n\n// region table-row-actions\nexport * from './lib/table-row-actions/abstract-table-row-action';\nexport * from './lib/table-row-actions/decorators';\nexport * from './lib/table-row-actions/row-action-check.pipe';\nexport * from './lib/table-row-actions/table-row-action-executing.directive';\nexport * from './lib/table-row-actions/table-row-action-status';\nexport * from './lib/table-row-actions/table-row-action.directive';\nexport * from './lib/table-row-actions/table-row-action.method';\nexport * from './lib/table-row-actions/table-row-actions.module';\nexport * from './lib/table-row-actions/table-row-header-action.directive';\nexport * from './lib/table-row-actions/tokens';\nexport * from './lib/table-row-actions/types';\n// endregion\n\n// region table-header-button\nexport * from './lib/table-header-button/decorators';\nexport * from './lib/table-header-button/table-header-button-action-status';\nexport * from './lib/table-header-button/table-header-button.directive';\nexport * from './lib/table-header-button/tokens';\n// endregion\n\n// region table-filter\nexport * from './lib/table-filter/filter-header-row.directive';\nexport * from './lib/table-filter/table-filter.module';\nexport * from './lib/table-filter/table-filter.service';\nexport * from './lib/table-filter/to-filter-column-names.pipe';\nexport * from './lib/table-filter/tokens';\n// endregion\n\n// region table-create-button\nexport * from './lib/table-create-button/table-create-button.directive';\nexport * from './lib/table-create-button/tokens';\n// endregion\n\n// region table-column-menu table-show-archived-slide\nexport * from './lib/table-column-menu/table-show-archived-slide/table-show-archived-slide.component';\n// endregion\n\n// region table-column-menu table-column-option\nexport * from './lib/table-column-menu/table-column-option/table-column-option.component';\n// endregion\n\n// region table-column-menu\nexport * from './lib/table-column-menu/table-column-menu.component';\nexport * from './lib/table-column-menu/table-column-menu.module';\n// endregion\n\n// region table-column-filter\nexport * from './lib/table-column-filter/table-column-filter-input.directive';\nexport * from './lib/table-column-filter/table-column-filter.service';\n// endregion\n\n// region select-row checkbox-header-cell\nexport * from './lib/select-row/checkbox-header-cell/checkbox-header-cell.component';\n// endregion\n\n// region select-row checkbox-cell\nexport * from './lib/select-row/checkbox-cell/checkbox-cell.component';\n// endregion\n\n// region select-row\nexport * from './lib/select-row/select-row.module';\nexport * from './lib/select-row/select-row.options';\nexport * from './lib/select-row/select-row.service';\nexport * from './lib/select-row/selected-rows.directive';\nexport * from './lib/select-row/selection-model';\nexport * from './lib/select-row/tokens';\n// endregion\n\n// region expand-row expand-row-container\nexport * from './lib/expand-row/expand-row-container/expand-row-container.component';\nexport * from './lib/expand-row/expand-row-container/expand-row-content.directive';\n// endregion\n\n// region expand-row expand-controls-cell\nexport * from './lib/expand-row/expand-controls-cell/expand-controls-cell.component';\n// endregion\n\n// region expand-row\nexport * from './lib/expand-row/expand-row.directive';\nexport * from './lib/expand-row/expand-row.module';\nexport * from './lib/expand-row/expand-row.service';\n// endregion\n\n// region cells tree-control-cell\nexport * from './lib/cells/tree-control-cell/tree-control-cell.component';\n// endregion\n\n// region cells options-cell\nexport * from './lib/cells/options-cell/options-cell.component';\n// endregion\n\n// region cells link-cell\nexport * from './lib/cells/link-cell/link-cell.component';\n// endregion\n\n// region cells image-cell\nexport * from './lib/cells/image-cell/image-cell.component';\n// endregion\n\n// region cells icon-cell\nexport * from './lib/cells/icon-cell/icon-cell.component';\n// endregion\n\n// region cells date-cell\nexport * from './lib/cells/date-cell/date-cell.component';\n// endregion\n\n// region cells copy-to-clipboard-cell\nexport * from './lib/cells/copy-to-clipboard-cell/copy-to-clipboard-cell.component';\n// endregion\n\n// region cells boolean-cell\nexport * from './lib/cells/boolean-cell/boolean-cell.component';\n// endregion\n\n// region \nexport * from './lib/persistent-paginator.directive';\nexport * from './lib/row-animation';\nexport * from './lib/table-data-source.directive';\nexport * from './lib/table-row-metadata';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","i1.SelectRowService"],"mappings":"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"}