@dereekb/dbx-web 13.4.2 → 13.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_index.scss +6 -1
- package/fesm2022/dereekb-dbx-web-calendar.mjs +10 -11
- package/fesm2022/dereekb-dbx-web-calendar.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web-mapbox.mjs +77 -77
- package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web-table.mjs +100 -100
- package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web.mjs +1715 -1589
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/action/_action.scss +0 -1
- package/lib/action/snackbar/_snackbar.scss +0 -19
- package/lib/button/_button.scss +5 -20
- package/lib/button/progress/bar.button.component.scss +6 -0
- package/lib/error/_error.scss +0 -18
- package/lib/extension/_extension.scss +0 -31
- package/lib/extension/calendar/_calendar.scss +25 -74
- package/lib/extension/calendar/style/month/calendar-month-view.scss +1 -1
- package/lib/extension/help/_help.scss +0 -20
- package/lib/extension/table/_table.scss +0 -19
- package/lib/extension/zip/_zip.scss +5 -20
- package/lib/interaction/_interaction.scss +0 -8
- package/lib/interaction/dialog/_dialog.scss +4 -19
- package/lib/interaction/filter/_filter.scss +0 -19
- package/lib/interaction/iframe/_iframe.scss +0 -19
- package/lib/interaction/popover/_popover.scss +7 -17
- package/lib/interaction/popup/_popup.scss +2 -26
- package/lib/interaction/prompt/_prompt.scss +0 -19
- package/lib/interaction/style/_style.scss +4 -35
- package/lib/interaction/upload/_upload.scss +4 -45
- package/lib/layout/_layout.scss +0 -14
- package/lib/layout/avatar/_avatar.scss +2 -29
- package/lib/layout/bar/_bar.scss +10 -43
- package/lib/layout/block/_block.scss +0 -19
- package/lib/layout/card/_card.scss +0 -19
- package/lib/layout/column/_column.scss +2 -17
- package/lib/layout/content/_content.scss +7 -55
- package/lib/layout/flag/_flag.scss +0 -19
- package/lib/layout/flex/_flex.scss +0 -19
- package/lib/layout/item/_item.scss +0 -19
- package/lib/layout/list/_list.scss +3 -26
- package/lib/layout/section/_section.scss +7 -17
- package/lib/layout/step/_step.scss +0 -19
- package/lib/layout/style/_style.scss +1 -18
- package/lib/layout/text/_text.scss +8 -46
- package/lib/loading/_loading.scss +0 -19
- package/lib/router/_router.scss +0 -4
- package/lib/router/layout/anchor/_anchor.scss +0 -19
- package/lib/router/layout/anchorlist/_anchorlist.scss +4 -32
- package/lib/router/layout/navbar/_navbar.scss +0 -18
- package/lib/router/layout/sidenav/_sidenav.scss +22 -102
- package/lib/style/_all-typography.scss +0 -16
- package/lib/style/_m2-visual-compat.scss +120 -0
- package/lib/style/_root-variables.scss +37 -47
- package/lib/style/_theming.scss +1 -202
- package/lib/style/_variables.scss +35 -2
- package/package.json +13 -13
- package/types/dereekb-dbx-web-table.d.ts +6 -6
- package/types/dereekb-dbx-web.d.ts +114 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dereekb-dbx-web-table.mjs","sources":["../../../../packages/dbx-web/table/src/lib/date/date.table.column.header.component.ts","../../../../packages/dbx-web/table/src/lib/table.ts","../../../../packages/dbx-web/table/src/lib/table.store.ts","../../../../packages/dbx-web/table/src/lib/date/daterange.table.cell.input.component.ts","../../../../packages/dbx-web/table/src/lib/date/table.date.module.ts","../../../../packages/dbx-web/table/src/lib/table.cell.action.component.ts","../../../../packages/dbx-web/table/src/lib/table.cell.input.component.ts","../../../../packages/dbx-web/table/src/lib/table.cell.summaryend.component.ts","../../../../packages/dbx-web/table/src/lib/table.cell.summarystart.component.ts","../../../../packages/dbx-web/table/src/lib/table.column.directive.ts","../../../../packages/dbx-web/table/src/lib/table.column.header.component.ts","../../../../packages/dbx-web/table/src/lib/table.column.footer.component.ts","../../../../packages/dbx-web/table/src/lib/table.column.size.directive.ts","../../../../packages/dbx-web/table/src/lib/table.column.size.ts","../../../../packages/dbx-web/table/src/lib/table.item.directive.ts","../../../../packages/dbx-web/table/src/lib/table.item.cell.component.ts","../../../../packages/dbx-web/table/src/lib/table.item.header.component.ts","../../../../packages/dbx-web/table/src/lib/table.item.action.component.ts","../../../../packages/dbx-web/table/src/lib/table.group.directive.ts","../../../../packages/dbx-web/table/src/lib/table.group.header.component.ts","../../../../packages/dbx-web/table/src/lib/table.group.footer.component.ts","../../../../packages/dbx-web/table/src/lib/table.fullsummaryrow.component.ts","../../../../packages/dbx-web/table/src/lib/table.component.ts","../../../../packages/dbx-web/table/src/lib/table.component.html","../../../../packages/dbx-web/table/src/lib/table.directive.ts","../../../../packages/dbx-web/table/src/lib/table.module.ts","../../../../packages/dbx-web/table/src/lib/table.reader.ts","../../../../packages/dbx-web/table/src/dereekb-dbx-web-table.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { type DbxInjectionComponentConfig, type DbxInjectionComponentConfigFactory } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxTableColumn } from '../table';\nimport { DatePipe } from '@angular/common';\n\n/**\n * A table header component used for rendering date values on the header.\n */\n@Component({\n template: `\n @if (dateSignal()) {\n <div class=\"dbx-table-date-column-header\">\n <span class=\"dbx-table-date-column-header-left\">{{ dateSignal() | date: left }}</span>\n <span>{{ dateSignal() | date: right }}</span>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe],\n standalone: true\n})\nexport class DbxTableDateHeaderComponent {\n readonly left = 'E';\n readonly right = 'MMM d';\n\n private readonly _dateSignal = signal<Maybe<Date>>(undefined);\n readonly dateSignal = this._dateSignal.asReadonly();\n\n get date() {\n return this._dateSignal();\n }\n\n set date(date: Maybe<Date>) {\n this._dateSignal.set(date);\n }\n}\n\n/**\n * Creates a factory that produces injection component configs for rendering date column headers.\n *\n * The factory initializes each {@link DbxTableDateHeaderComponent} with the column's date metadata.\n *\n * @returns a factory function that maps a date column to its header injection config\n */\nexport function dbxTableDateHeaderInjectionFactory(): DbxInjectionComponentConfigFactory<DbxTableColumn<Date>, DbxTableDateHeaderComponent> {\n return (column: DbxTableColumn<Date>) => {\n const config: DbxInjectionComponentConfig<DbxTableDateHeaderComponent> = {\n componentClass: DbxTableDateHeaderComponent,\n init: (x) => {\n x.date = column.meta;\n }\n };\n\n return config;\n };\n}\n","import { type Observable } from 'rxjs';\nimport { type LoadingState, type ObservableOrValue, type PageListLoadingState } from '@dereekb/rxjs';\nimport { type CssClassesArray, type Maybe } from '@dereekb/util';\nimport { type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { type TrackByFunction } from '@angular/core';\n\n/**\n * Delegate used for retrieving data for a table.\n */\nexport interface DbxTableContextDataDelegate<I, C, T> {\n /**\n * Loads data given the input.\n *\n * @param input\n */\n loadData(input: I): Observable<LoadingState<DbxTableContextData<I, C, T>>>;\n}\n\nexport interface DbxTableContextData<I, C, T> {\n /**\n * Original context input\n */\n readonly input: I;\n /**\n * All columns in this data context.\n */\n readonly columns: DbxTableColumn<C>[];\n /**\n * All currently loaded items.\n */\n readonly items$: Observable<PageListLoadingState<T>>;\n /**\n * Loads more items, if applicable.\n */\n loadMore?(): void;\n}\n\nexport interface DbxTableColumn<C> {\n /**\n * Unique column name\n */\n readonly columnName: string;\n /**\n * Column metadata\n */\n readonly meta: C;\n}\n\nexport const NO_GROUPS_ID = 'none';\n\n/**\n * Unique identifier used for grouping items together.\n */\nexport type DbxTableGroupId = string;\n\nexport interface DbxTableItemGroup<T, G = unknown> {\n readonly groupId: DbxTableGroupId;\n readonly items: T[];\n readonly meta: G;\n}\n\nexport interface DefaultDbxTableItemGroup<T, G = unknown> extends DbxTableItemGroup<T, G> {\n readonly groupId: typeof NO_GROUPS_ID;\n readonly default: true;\n}\n\n/**\n * Creates a default (ungrouped) table item group that wraps all items under the {@link NO_GROUPS_ID} identifier.\n *\n * Used when no explicit grouping function is provided to the table.\n *\n * @param items - the array of items to include in the default group\n * @returns a default group containing all the provided items\n */\nexport function defaultDbxTableItemGroup<T, G = unknown>(items: T[]): DefaultDbxTableItemGroup<T, G> {\n return {\n groupId: NO_GROUPS_ID,\n items,\n meta: undefined as G,\n default: true\n };\n}\n\nexport type DbxTableGroupByFunction<T, G = unknown> = (items: T[]) => ObservableOrValue<DbxTableItemGroup<T, G>[]>;\n\n/**\n * Delegate used for generating view configurations given the input.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any -- any required for DbxInjectionComponentConfig compatibility with diverse component types */\nexport interface DbxTableViewDelegate<I = unknown, C = unknown, T = unknown, G = unknown> {\n /**\n * Track by\n */\n readonly trackBy?: TrackByFunction<T>;\n /**\n * If provided, will group items together\n */\n readonly groupBy?: DbxTableGroupByFunction<T, G>;\n /**\n * Input picker view configuration\n */\n readonly inputHeader?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Action header view configuration\n */\n readonly actionHeader?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Full-width summary row view configuration.\n */\n readonly fullSummaryRow?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Summary row header view configuration.\n */\n readonly summaryRowHeader?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Summary row end view configuration\n */\n readonly summaryRowEnd?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Group row header view configuration for a specific group.\n *\n * If this function returns undefined, the group row will not be shown.\n *\n * @param group\n */\n groupHeader?(group: DbxTableItemGroup<T, G>): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Group row footer view configuration for a specific group.\n *\n * If this function returns undefined, the group row will not be shown.\n *\n * @param group\n */\n groupFooter?(group: DbxTableItemGroup<T, G>): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Column header view configuration for a specific column.\n *\n * @param item\n */\n columnHeader?(column: DbxTableColumn<C>): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Optional column footer view configuration for a specific column.\n *\n * @param item\n */\n columnFooter?(column: DbxTableColumn<C>): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Item header view (left-most column for an item row) configuration for a specific item.\n *\n * @param item\n */\n itemHeader(item: T): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Item cell view (middle columns for an item row) configuration for a specific item and column.\n *\n * @param item\n */\n itemCell(column: DbxTableColumn<C>, item: T): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Item action view (right-most column for an item row) configuration for a specific item.\n *\n * @param item\n */\n itemAction?(item: T): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Optional classes to apply to the table.\n */\n tableClasses?: CssClassesArray;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n","import { Injectable } from '@angular/core';\nimport { asObservable, beginLoading, filterMaybe, type LoadingState, mapLoadingStateValueWithOperator, type PageListLoadingState, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { spaceSeparatedCssClasses, type Maybe } from '@dereekb/util';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { type Observable, distinctUntilChanged, first, map, shareReplay, switchMap, tap, combineLatest, of } from 'rxjs';\nimport { type DbxTableColumn, type DbxTableContextData, type DbxTableContextDataDelegate, type DbxTableItemGroup, type DbxTableViewDelegate, defaultDbxTableItemGroup } from './table';\n\nexport interface DbxTableStoreState<I, C, T, G> {\n /**\n * Contextual input that is passed to the data delegate.\n */\n readonly input: Maybe<I>;\n /**\n * Delegate used for retrieving info given the selection.\n */\n readonly dataDelegate: Maybe<DbxTableContextDataDelegate<I, C, T>>;\n /**\n * Delegate used for retrieving view configurations.\n */\n readonly viewDelegate: Maybe<DbxTableViewDelegate<I, C, T, G>>;\n}\n\n@Injectable()\nexport class DbxTableStore<I = unknown, C = unknown, T = unknown, G = unknown> extends ComponentStore<DbxTableStoreState<I, C, T, G>> {\n constructor() {\n super({\n input: null,\n dataDelegate: null,\n viewDelegate: null\n });\n }\n\n // MARK: Effects\n readonly loadMore = this.effect((input: Observable<void>) => {\n return input.pipe(\n switchMap(() =>\n this.data$.pipe(\n first(),\n tap((x) => {\n if (x.loadMore) {\n x.loadMore();\n }\n })\n )\n )\n );\n });\n\n // MARK: Accessors\n readonly input$ = this.state$.pipe(\n map((x) => x.input),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly dataDelegate$ = this.state$.pipe(\n map((x) => x.dataDelegate),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly currentViewDelegate$ = this.state$.pipe(\n map((x) => x.viewDelegate),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly viewDelegate$ = this.currentViewDelegate$.pipe(filterMaybe());\n readonly tableCssClasses$ = this.viewDelegate$.pipe(map((x) => x.tableClasses));\n readonly spaceSeparatedTableCssClasses$ = this.tableCssClasses$.pipe(\n map((x) => spaceSeparatedCssClasses(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly dataState$: Observable<LoadingState<DbxTableContextData<I, C, T>>> = combineLatest([this.input$, this.dataDelegate$]).pipe(\n switchMap(([input, dataDelegate]) => {\n let obs: Observable<LoadingState<DbxTableContextData<I, C, T>>>;\n\n if (input && dataDelegate) {\n obs = dataDelegate.loadData(input);\n } else {\n obs = of(beginLoading<DbxTableContextData<I, C, T>>());\n }\n\n return obs;\n }),\n shareReplay(1)\n );\n\n readonly data$: Observable<DbxTableContextData<I, C, T>> = this.dataState$.pipe(\n //\n valueFromFinishedLoadingState(),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly columns$: Observable<DbxTableColumn<C>[]> = this.data$.pipe(\n map((x) => x.columns),\n shareReplay(1)\n );\n\n readonly itemsState$: Observable<PageListLoadingState<T>> = this.data$.pipe(\n switchMap((x) => x.items$),\n shareReplay(1)\n );\n\n readonly items$: Observable<T[]> = this.itemsState$.pipe(valueFromFinishedLoadingState(), filterMaybe(), shareReplay(1));\n\n readonly groupsState$: Observable<LoadingState<DbxTableItemGroup<T, G>[]>> = this.itemsState$.pipe(\n mapLoadingStateValueWithOperator(\n switchMap((x) => {\n return this.viewDelegate$.pipe(\n switchMap((viewDelegate) => {\n let groups: Observable<DbxTableItemGroup<T, G>[]>;\n\n if (viewDelegate.groupBy) {\n groups = asObservable(viewDelegate.groupBy(x));\n } else {\n groups = of([defaultDbxTableItemGroup<T, G>(x)]);\n }\n\n return groups;\n })\n );\n })\n ),\n shareReplay(1)\n );\n\n readonly groups$: Observable<DbxTableItemGroup<T, G>[]> = this.groupsState$.pipe(valueFromFinishedLoadingState(), filterMaybe(), shareReplay(1));\n\n // MARK: State Changes\n readonly setInput = this.updater((state, input: Maybe<I>) => ({ ...state, input }));\n readonly setDataDelegate = this.updater((state, dataDelegate: Maybe<DbxTableContextDataDelegate<I, C, T>>) => ({ ...state, dataDelegate }));\n readonly setViewDelegate = this.updater((state, viewDelegate: Maybe<DbxTableViewDelegate<I, C, T, G>>) => ({ ...state, viewDelegate }));\n}\n","import { ChangeDetectionStrategy, Component, Injectable, inject, signal, computed } from '@angular/core';\nimport { type DateRangeDayDistanceInput, isSameDateDay } from '@dereekb/date';\nimport { DbxTableStore } from '../table.store';\nimport { type MatDateRangeSelectionStrategy, DateRange, MAT_DATE_RANGE_SELECTION_STRATEGY, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter } from '@angular/material/core';\nimport { type Days, type Maybe } from '@dereekb/util';\nimport { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { addDays, format as formatDate } from 'date-fns';\nimport { distinctUntilChanged, filter, startWith, throttleTime } from 'rxjs';\nimport { cleanSubscription, type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Injectable()\nexport class DbxTableDateRangeDayDistanceInputCellInputRangeSelectionStrategy<D> implements MatDateRangeSelectionStrategy<D> {\n private readonly _dateAdapter = inject(DateAdapter<D>);\n private readonly dbxTableDateRangeDayDistanceInputCellInputComponent = inject(DbxTableDateRangeDayDistanceInputCellInputComponent);\n\n selectionFinished(date: D | null): DateRange<D> {\n return this._createFiveDayRange(date);\n }\n\n createPreview(activeDate: D | null): DateRange<D> {\n return this._createFiveDayRange(activeDate);\n }\n\n private _createFiveDayRange(date: D | null): DateRange<D> {\n if (date) {\n const start = date;\n const end = this._dateAdapter.addCalendarDays(date, this.dbxTableDateRangeDayDistanceInputCellInputComponent.daysDistance);\n return new DateRange<D>(start, end);\n }\n\n return new DateRange<D>(null, null);\n }\n}\n\nexport interface DbxTableDateRangeDayDistanceInputCellInputComponentConfig {\n /**\n * Button format for the dates\n */\n readonly buttonFormat?: string;\n /**\n * Distance from the start to span.\n */\n readonly daysDistance: Days;\n readonly minDate?: Maybe<Date>;\n readonly maxDate?: Maybe<Date>;\n}\n\nexport const DEFAULT_DBX_TABLE_DATE_RANGE_DAY_DISTIANCE_INPUT_CELL_COMPONENT_CONFIG = { daysDistance: 6 };\n\nexport const DEFAULT_DBX_TABLE_DATE_RANGE_DAY_BUTTON_FORMAT = 'MMM dd';\n\n/**\n * Cell input for a DateRangeDayDistanceInput value.\n */\n@Component({\n template: `\n <div class=\"dbx-table-date-range-distance-input-cell\">\n <mat-date-range-input class=\"dbx-table-date-range-distance-input\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n <button mat-stroked-button color=\"primary\" (click)=\"picker.open()\">{{ dateRangeStringSignal() }}</button>\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n </div>\n `,\n providers: [\n {\n provide: MAT_DATE_RANGE_SELECTION_STRATEGY,\n useClass: DbxTableDateRangeDayDistanceInputCellInputRangeSelectionStrategy\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatDatepickerModule, ReactiveFormsModule, MatButtonModule]\n})\nexport class DbxTableDateRangeDayDistanceInputCellInputComponent {\n readonly tableStore = inject(DbxTableStore<DateRangeDayDistanceInput>);\n\n private readonly _syncSub = new SubscriptionObject();\n private readonly _valueSub = new SubscriptionObject();\n\n private readonly _pickerOpenedSignal = signal<boolean>(false);\n private readonly _configSignal = signal<DbxTableDateRangeDayDistanceInputCellInputComponentConfig>(DEFAULT_DBX_TABLE_DATE_RANGE_DAY_DISTIANCE_INPUT_CELL_COMPONENT_CONFIG);\n\n readonly range = new FormGroup({\n start: new FormControl<Maybe<Date>>(null),\n end: new FormControl<Maybe<Date>>(null)\n });\n\n readonly pickerOpened$ = this.range.valueChanges.pipe(startWith(this.range.value));\n\n readonly minDateSignal = computed(() => this._configSignal().minDate ?? null);\n readonly maxDateSignal = computed(() => this._configSignal().maxDate ?? null);\n readonly buttonFormatSignal = computed(() => this._configSignal().buttonFormat ?? DEFAULT_DBX_TABLE_DATE_RANGE_DAY_BUTTON_FORMAT);\n\n readonly rangeValue$ = this.range.valueChanges.pipe(startWith(this.range.value));\n readonly dateRangeStringSignal = computed(() => {\n const buttonFormat = this.buttonFormatSignal();\n const { start, end } = this.range.value;\n\n if (start && end) {\n return `${formatDate(start, buttonFormat)} - ${formatDate(end, buttonFormat)}`;\n } else {\n return `Select Date`;\n }\n });\n\n constructor() {\n cleanSubscription(\n this.tableStore.input$.subscribe((x) => {\n const start = x?.date ?? null;\n const end = start ? addDays(start, this.daysDistance) : undefined;\n\n this.range.setValue({\n start,\n end\n });\n })\n );\n\n cleanSubscription(\n this.rangeValue$\n .pipe(\n filter((x) => Boolean(x.start)),\n distinctUntilChanged((a, b) => isSameDateDay(a?.start, b?.start)),\n throttleTime(100, undefined, { trailing: true })\n )\n .subscribe((x) => {\n if (x.start) {\n this.tableStore.setInput({ date: x.start, distance: this.daysDistance });\n }\n })\n );\n }\n\n get daysDistance() {\n return this._configSignal().daysDistance;\n }\n\n get config() {\n return this._configSignal();\n }\n\n set config(config: Maybe<DbxTableDateRangeDayDistanceInputCellInputComponentConfig>) {\n this._configSignal.set(config || DEFAULT_DBX_TABLE_DATE_RANGE_DAY_DISTIANCE_INPUT_CELL_COMPONENT_CONFIG);\n }\n\n pickerOpened() {\n this._pickerOpenedSignal.set(true);\n }\n\n pickerClosed() {\n this._pickerOpenedSignal.set(false);\n }\n}\n\n/**\n * Creates an injection component config for a date-range day-distance input cell.\n *\n * Initializes the component with the provided configuration for day distance, date bounds, and button format.\n *\n * @param componentConfig - optional configuration for the date range input (day distance, min/max dates, button format)\n * @returns an injection component config that renders a {@link DbxTableDateRangeDayDistanceInputCellInputComponent}\n */\nexport function dbxTableDateRangeDayDistanceInputCellInput(componentConfig?: DbxTableDateRangeDayDistanceInputCellInputComponentConfig): DbxInjectionComponentConfig<DbxTableDateRangeDayDistanceInputCellInputComponent> {\n const config: DbxInjectionComponentConfig<DbxTableDateRangeDayDistanceInputCellInputComponent> = {\n componentClass: DbxTableDateRangeDayDistanceInputCellInputComponent,\n init: (x) => {\n x.config = componentConfig;\n }\n };\n\n return config;\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTableDateHeaderComponent } from './date.table.column.header.component';\nimport { DbxTableDateRangeDayDistanceInputCellInputComponent } from './daterange.table.cell.input.component';\n\nconst importsAndExports = [DbxTableDateHeaderComponent, DbxTableDateRangeDayDistanceInputCellInputComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTableDateModule {}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-action-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableActionCellComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.actionHeader),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * A table header component used for injecting the input picker view.\n */\n@Component({\n selector: 'dbx-table-input-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableInputCellComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.inputHeader),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-summary-end-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableSummaryEndCellComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.summaryRowEnd),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * A table header component used for injecting the input picker view.\n */\n@Component({\n selector: 'dbx-table-summary-start-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableSummaryStartCellComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.summaryRowHeader),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, inject, input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxTableColumn } from './table';\n\n/**\n * Abstract directive that has a column input.\n */\n@Directive()\nexport class AbstractDbxTableColumnDirective<C> {\n readonly tableStore = inject(DbxTableStore<unknown, C>);\n\n readonly column = input<Maybe<DbxTableColumn<C>>>();\n readonly column$ = toObservable(this.column).pipe(filterMaybe(), distinctUntilChanged());\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged, switchMap, of } from 'rxjs';\nimport { AbstractDbxTableColumnDirective } from './table.column.directive';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-column-header',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableColumnHeaderComponent<C> extends AbstractDbxTableColumnDirective<C> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => {\n const columnHeader = viewDelegate.columnHeader;\n\n if (columnHeader) {\n return this.column$.pipe(map((x) => columnHeader(x)));\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged, switchMap, of } from 'rxjs';\nimport { AbstractDbxTableColumnDirective } from './table.column.directive';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-column-footer',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableColumnFooterComponent<C> extends AbstractDbxTableColumnDirective<C> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => {\n const columnFooter = viewDelegate.columnFooter;\n\n if (columnFooter) {\n return this.column$.pipe(map((x) => columnFooter(x)));\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { computed, Directive, ElementRef, inject, input, type OnInit } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { clean, completeOnDestroy } from '@dereekb/dbx-core';\nimport { resizeSignal } from '@dereekb/dbx-web';\nimport { type Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\n\nexport type DbxColumnSizeColumnValue = 'head' | 'tail' | number;\n\n@Directive({\n exportAs: 'dbxTableColumnSize',\n selector: '[dbxTableColumnSize]',\n standalone: true\n})\nexport class DbxTableColumnSizeDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly resized = resizeSignal(this.elementRef);\n\n private readonly _columnsMap = completeOnDestroy(new BehaviorSubject(new Map<DbxColumnSizeColumnValue, DbxColumnSizeColumnDirective>()));\n readonly columns$ = this._columnsMap.asObservable();\n\n readonly columnsSignal = toSignal(this.columns$);\n readonly visibleColumnsSignal = computed(() => {\n const resized = this.resized();\n const columnsMap = this.columnsSignal() as Map<DbxColumnSizeColumnValue, DbxColumnSizeColumnDirective>;\n\n const { width } = resized.newRect;\n let visibleColumns = 0;\n\n const itemColumns: DbxColumnSizeColumnDirective[] = [];\n\n let headerColumn: Maybe<DbxColumnSizeColumnDirective>;\n let tailColumn: Maybe<DbxColumnSizeColumnDirective>;\n\n columnsMap.forEach((column) => {\n const index = column.index();\n\n switch (index) {\n case 'head':\n headerColumn = column;\n break;\n case 'tail':\n tailColumn = column;\n break;\n default:\n itemColumns[index] = column;\n break;\n }\n });\n\n const headerColumnWidth = headerColumn?.width || 0;\n const tailColumnWidth = tailColumn?.width || 0;\n\n let remainingTableWidth = width - headerColumnWidth;\n visibleColumns = 1;\n let i = 0;\n\n while (remainingTableWidth > 0 && i < itemColumns.length) {\n const nextColumn = itemColumns[i];\n i += 1;\n\n const columnWidth = nextColumn.width;\n\n remainingTableWidth -= columnWidth;\n\n if (remainingTableWidth >= 0) {\n visibleColumns += 1;\n }\n }\n\n // show the tail column\n if (tailColumn != null && visibleColumns === itemColumns.length + 1 && Math.abs(remainingTableWidth - tailColumnWidth) < 3) {\n visibleColumns += 1;\n }\n\n return visibleColumns;\n });\n\n addColumn(column: DbxColumnSizeColumnDirective) {\n this._columnsMap.value.set(column.index(), column);\n this._columnsMap.next(this._columnsMap.value);\n }\n\n removeColumn(column: DbxColumnSizeColumnDirective) {\n if (this._columnsMap.value.delete(column.index())) {\n this._columnsMap.next(this._columnsMap.value);\n }\n }\n}\n\n/**\n * References a specific element and the index of the column.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[dbx-column-size-column]',\n standalone: true\n})\nexport class DbxColumnSizeColumnDirective implements OnInit {\n readonly dbxColumnSizeDirective = inject(DbxTableColumnSizeDirective);\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly index = input.required<DbxColumnSizeColumnValue>({ alias: 'dbx-column-size-column' });\n\n constructor() {\n clean(() => this.dbxColumnSizeDirective.removeColumn(this));\n }\n\n ngOnInit(): void {\n // called after the index value has been input/set. Indexes are unique and set only once.\n this.dbxColumnSizeDirective.addColumn(this);\n }\n\n get width(): number {\n return this.elementRef.nativeElement.clientWidth;\n }\n}\n","import { type ElementRef, InjectionToken } from '@angular/core';\n\nexport const DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN = new InjectionToken<ElementRef<HTMLElement>>('DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN');\n","import { toObservable } from '@angular/core/rxjs-interop';\nimport { Directive, inject, input } from '@angular/core';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Abstract directive that has an element input.\n */\n@Directive()\nexport abstract class AbstractDbxTableItemDirective<T, C = unknown> {\n readonly tableStore = inject(DbxTableStore<unknown, C, T>);\n\n readonly item = input<Maybe<T>>();\n readonly item$ = toObservable(this.item);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { map, switchMap, combineLatest } from 'rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { AbstractDbxTableItemDirective } from './table.item.directive';\nimport { type DbxTableColumn } from './table';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-item-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableItemCellComponent<T, C> extends AbstractDbxTableItemDirective<T, C> {\n readonly column = input<Maybe<DbxTableColumn<C>>>();\n readonly column$ = toObservable(this.column);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(switchMap((viewDelegate) => combineLatest([this.column$, this.item$]).pipe(map(([column, item]) => (column && item ? viewDelegate.itemCell(column, item) : undefined)))));\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, switchMap } from 'rxjs';\nimport { AbstractDbxTableItemDirective } from './table.item.directive';\nimport { maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-item-header',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableItemHeaderComponent<T> extends AbstractDbxTableItemDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => this.item$.pipe(map((x) => (x != null ? viewDelegate.itemHeader(x) : undefined)))),\n maybeValueFromObservableOrValue()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs';\nimport { AbstractDbxTableItemDirective } from './table.item.directive';\nimport { DbxInjectionComponent, type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { type MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\n\n@Component({\n selector: 'dbx-table-item-action',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableItemActionComponent<T> extends AbstractDbxTableItemDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((viewDelegate) => {\n const itemAction = viewDelegate.itemAction;\n let obs: MaybeObservableOrValue<DbxInjectionComponentConfig> = undefined;\n\n if (itemAction) {\n obs = this.item$.pipe(map((x) => (x != null ? itemAction(x) : undefined)));\n }\n\n return obs;\n }),\n maybeValueFromObservableOrValue()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { toObservable } from '@angular/core/rxjs-interop';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, inject, input } from '@angular/core';\nimport { distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxTableItemGroup } from './table';\n\n/**\n * Abstract directive that has an element input.\n */\n@Directive()\nexport abstract class AbstractDbxTableGroupDirective<T, C = unknown, G = unknown> {\n readonly tableStore = inject(DbxTableStore<unknown, C, T, G>);\n\n readonly group = input<Maybe<DbxTableItemGroup<T, G>>>();\n readonly group$ = toObservable(this.group).pipe(filterMaybe(), distinctUntilChanged());\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { type MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { DbxInjectionComponent, type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { AbstractDbxTableGroupDirective } from './table.group.directive';\n\n@Component({\n selector: 'dbx-table-group-header',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableGroupHeaderComponent<T> extends AbstractDbxTableGroupDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((viewDelegate) => {\n const groupHeader = viewDelegate.groupHeader;\n let obs: MaybeObservableOrValue<DbxInjectionComponentConfig> = undefined;\n\n if (groupHeader) {\n obs = this.group$.pipe(map((x) => groupHeader(x)));\n }\n\n return obs;\n }),\n maybeValueFromObservableOrValue(),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { type MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { DbxInjectionComponent, type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { AbstractDbxTableGroupDirective } from './table.group.directive';\n\n@Component({\n selector: 'dbx-table-group-footer',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableGroupFooterComponent<T> extends AbstractDbxTableGroupDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((viewDelegate) => {\n const groupFooter = viewDelegate.groupFooter;\n let obs: MaybeObservableOrValue<DbxInjectionComponentConfig> = undefined;\n\n if (groupFooter) {\n obs = this.group$.pipe(map((x) => groupFooter(x)));\n }\n\n return obs;\n }),\n maybeValueFromObservableOrValue(),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * A table header component used for injecting the input picker view.\n */\n@Component({\n selector: 'dbx-table-full-summary-row',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent],\n host: {\n class: 'dbx-h100 dbx-flex-bar'\n }\n})\nexport class DbxTableFullSummaryRowComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.fullSummaryRow),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, type TrackByFunction, inject, computed, input, type Signal, viewChild, ElementRef } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxTableStore } from './table.store';\nimport { type LoadingState, loadingStateContext, mapLoadingStateValueWithOperator, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { shareReplay, map, type Observable, switchMap, throttleTime } from 'rxjs';\nimport { DbxLoadingComponent } from '@dereekb/dbx-web';\nimport { InfiniteScrollDirective } from 'ngx-infinite-scroll';\nimport { MatTable, MatTableModule } from '@angular/material/table';\nimport { DbxTableInputCellComponent } from './table.cell.input.component';\nimport { DbxTableSummaryEndCellComponent } from './table.cell.summaryend.component';\nimport { DbxTableSummaryStartCellComponent } from './table.cell.summarystart.component';\nimport { DbxTableColumnFooterComponent } from './table.column.footer.component';\nimport { DbxTableItemCellComponent } from './table.item.cell.component';\nimport { DbxTableItemHeaderComponent } from './table.item.header.component';\nimport { DbxTableItemActionComponent } from './table.item.action.component';\nimport { DbxTableActionCellComponent } from './table.cell.action.component';\nimport { DbxTableColumnHeaderComponent } from './table.column.header.component';\nimport { type DbxTableItemGroup, type DefaultDbxTableItemGroup } from './table';\nimport { DbxTableGroupHeaderComponent } from './table.group.header.component';\nimport { DbxTableGroupFooterComponent } from './table.group.footer.component';\nimport { pushArrayItemsIntoArray } from '@dereekb/util';\nimport { NgClass } from '@angular/common';\nimport { DbxTableFullSummaryRowComponent } from './table.fullsummaryrow.component';\nimport { DbxTableColumnSizeDirective, DbxColumnSizeColumnDirective } from './table.column.size.directive';\nimport { DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN } from './table.column.size';\n\nexport const DBX_TABLE_ITEMS_COLUMN_NAME = '_items';\nexport const DBX_TABLE_ACTIONS_COLUMN_NAME = '_actions';\n\nexport interface DbxTableViewGroupElement<T, G> {\n readonly type: 'group';\n readonly location: 'header' | 'footer';\n readonly group: DbxTableItemGroup<T, G>;\n}\n\nexport interface DbxTableViewItemElement<T, G> {\n readonly type: 'item';\n readonly item: T;\n}\n\nexport type DbxTableViewElement<T, G> = DbxTableViewGroupElement<T, G> | DbxTableViewItemElement<T, G>;\n\n/**\n * Type guard that checks whether a table view element is a group element (header or footer).\n *\n * @param element - the table view element to check\n * @returns `true` if the element represents a group header or footer row\n */\nexport function isDbxTableViewGroupElement<T, G>(element: DbxTableViewElement<T, G>): element is DbxTableViewGroupElement<T, G> {\n return element.type === 'group';\n}\n\n/**\n * Type guard that checks whether a table view element is an item data element.\n *\n * @param element - the table view element to check\n * @returns `true` if the element represents an item data row\n */\nexport function isDbxTableViewItemElement<T, G>(element: DbxTableViewElement<T, G>): element is DbxTableViewItemElement<T, G> {\n return element.type === 'item';\n}\n\n/**\n * A table with fixed content\n */\n@Component({\n selector: 'dbx-table-view',\n templateUrl: './table.component.html',\n imports: [\n DbxLoadingComponent,\n NgClass,\n InfiniteScrollDirective,\n MatTableModule,\n DbxTableInputCellComponent,\n DbxTableItemHeaderComponent,\n DbxTableItemCellComponent,\n DbxTableItemActionComponent,\n DbxTableActionCellComponent,\n DbxTableColumnHeaderComponent,\n DbxTableColumnFooterComponent,\n DbxTableSummaryStartCellComponent,\n DbxTableSummaryEndCellComponent,\n DbxTableGroupHeaderComponent,\n DbxTableGroupFooterComponent,\n DbxTableFullSummaryRowComponent,\n DbxTableColumnSizeDirective,\n DbxColumnSizeColumnDirective\n ],\n providers: [\n {\n provide: DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN,\n useExisting: ElementRef\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTableViewComponent<I, C, T, G = unknown> {\n readonly tableStore = inject(DbxTableStore<I, C, T, G>);\n readonly table = viewChild.required<MatTable<DbxTableViewElement<T, G>>>(MatTable);\n\n readonly DEFAULT_TRACK_BY_FUNCTION: TrackByFunction<unknown> = (index) => {\n return index;\n };\n\n readonly scrollDistance = input<number>(0.5);\n readonly throttleScroll = input<number>(50);\n\n readonly itemsColumnName = DBX_TABLE_ITEMS_COLUMN_NAME;\n readonly actionsColumnName = DBX_TABLE_ACTIONS_COLUMN_NAME;\n\n readonly innerColumns$ = this.tableStore.columns$;\n readonly innerColumnNames$ = this.innerColumns$.pipe(\n map((x) => x.map((y) => y.columnName)),\n shareReplay(1)\n );\n\n readonly innerColumnsSignal = toSignal(this.innerColumns$);\n readonly innerColumnNamesSignal = toSignal(this.innerColumnNames$);\n\n readonly elementsState$: Observable<LoadingState<DbxTableViewElement<T, G>[]>> = this.tableStore.groupsState$.pipe(\n mapLoadingStateValueWithOperator(\n switchMap((groups) => {\n return this.tableStore.viewDelegate$.pipe(\n map((viewDelegate) => {\n const { groupHeader: inputGroupHeader, groupFooter: inputGroupFooter } = viewDelegate;\n const hasGroupHeader = inputGroupHeader != null ? (group: DbxTableItemGroup<T, G>) => inputGroupHeader(group) != null : () => false;\n const hasGroupFooter = inputGroupFooter != null ? (group: DbxTableItemGroup<T, G>) => inputGroupFooter(group) != null : () => false;\n\n return groups.flatMap((group) => {\n const { items } = group;\n\n const itemElements: DbxTableViewItemElement<T, G>[] = items.map((item) => ({\n type: 'item',\n item\n }));\n\n let elements: DbxTableViewElement<T, G>[];\n\n if ((group as DefaultDbxTableItemGroup<T, G>).default) {\n elements = itemElements;\n } else {\n const header = hasGroupHeader(group);\n const footer = hasGroupFooter(group);\n\n elements = [];\n\n if (header) {\n elements.push({\n type: 'group',\n location: 'header',\n group\n });\n }\n\n pushArrayItemsIntoArray(elements, itemElements);\n\n if (footer) {\n elements.push({\n type: 'group',\n location: 'footer',\n group\n });\n }\n }\n\n return elements;\n });\n })\n );\n })\n ),\n shareReplay(1)\n );\n\n readonly elements$ = this.elementsState$.pipe(\n valueFromFinishedLoadingState(() => []),\n throttleTime(50, undefined, { leading: true, trailing: true }),\n shareReplay(1)\n );\n\n readonly displayedColumns$ = this.innerColumnNames$.pipe(\n map((columnNames) => {\n return [this.itemsColumnName, ...columnNames, this.actionsColumnName];\n }),\n shareReplay(1)\n );\n\n readonly displayedColumnsSignal = computed(() => {\n const columnNames = this.innerColumnNamesSignal() || [];\n return [this.itemsColumnName, ...columnNames, this.actionsColumnName];\n });\n\n readonly trackByFunction$: Observable<TrackByFunction<T>> = this.tableStore.viewDelegate$.pipe(\n map((x) => x.trackBy ?? this.DEFAULT_TRACK_BY_FUNCTION),\n shareReplay(1)\n );\n\n readonly inputTrackByFunctionSignal = toSignal(this.trackByFunction$, { initialValue: this.DEFAULT_TRACK_BY_FUNCTION });\n readonly trackElementByFunctionSignal: Signal<TrackByFunction<DbxTableViewElement<T, G>>> = computed(() => {\n const trackByFunction = this.inputTrackByFunctionSignal() as TrackByFunction<T>;\n\n const fn: TrackByFunction<DbxTableViewElement<T, G>> = (index: number, element: DbxTableViewElement<T, G>) => {\n if (element.type === 'item') {\n return `i_${trackByFunction(index, element.item as T)}`;\n } else {\n return `g_${element.group.groupId}`;\n }\n };\n\n return fn;\n });\n\n readonly context = loadingStateContext({ obs: this.tableStore.dataState$ });\n readonly dataLoadingContext = loadingStateContext({ obs: this.elementsState$ });\n\n readonly contextSignal = toSignal(this.context.state$);\n readonly dataLoadingContextSignal = toSignal(this.dataLoadingContext.state$);\n\n readonly viewDelegateSignal = toSignal(this.tableStore.viewDelegate$);\n readonly elementsSignal = toSignal(this.elements$, { initialValue: [] });\n\n readonly tableCssClasses = toSignal(this.tableStore.spaceSeparatedTableCssClasses$);\n\n onScrollDown(): void {\n this.tableStore.loadMore();\n }\n\n showItemRow(_: number, row: DbxTableViewElement<T, G>): boolean {\n return row.type === 'item';\n }\n\n showGroupHeaderRow(_: number, row: DbxTableViewElement<T, G>): boolean {\n return row.type === 'group' && row.location === 'header';\n }\n\n showGroupFooterRow(_: number, row: DbxTableViewElement<T, G>): boolean {\n return row.type === 'group' && row.location === 'footer';\n }\n\n readonly showFooterRowSignal = computed(() => {\n const viewDelegate = this.viewDelegateSignal();\n return viewDelegate && (viewDelegate.summaryRowHeader != null || viewDelegate.columnFooter != null || viewDelegate.summaryRowEnd != null);\n });\n\n readonly showFullSummaryRowSignal = computed(() => {\n const viewDelegate = this.viewDelegateSignal();\n return viewDelegate?.fullSummaryRow != null;\n });\n}\n","<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <div class=\"dbx-table-view\" [ngClass]=\"tableCssClasses()\">\n <section class=\"dbx-table-view-table-wrapper\" dbxTableColumnSize #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elementsSignal()\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-header [group]=\"element.group\"></dbx-table-group-header>\n </td>\n </ng-container>\n\n <!-- Group Footer column -->\n <ng-container matColumnDef=\"groupFooterColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-footer [group]=\"element.group\"></dbx-table-group-footer>\n </td>\n </ng-container>\n\n <!-- Items -->\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th dbx-column-size-column=\"head\" mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-start-cell></dbx-table-summary-start-cell>\n </td>\n </ng-container>\n\n <!-- Column Definitions -->\n @for (column of innerColumnsSignal(); track column.columnName) {\n <ng-container [matColumnDef]=\"column.columnName\" [sticky]=\"false\">\n <th [dbx-column-size-column]=\"$index\" mat-header-cell *matHeaderCellDef>\n <dbx-table-column-header [column]=\"column\"></dbx-table-column-header>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-column-footer [column]=\"column\"></dbx-table-column-footer>\n </td>\n </ng-container>\n }\n\n <!-- Tail/Action column -->\n <ng-container [matColumnDef]=\"actionsColumnName\" [stickyEnd]=\"true\">\n <th dbx-column-size-column=\"tail\" mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-end-cell></dbx-table-summary-end-cell>\n </td>\n </ng-container>\n\n <!-- Table View -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeaderColumn']; when: showGroupHeaderRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsSignal(); when: showItemRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['groupFooterColumn']; when: showGroupFooterRow\"></tr>\n\n <tr [ngClass]=\"{ 'dbx-hide': !showFooterRowSignal() }\" mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n <!-- Full summary row -->\n @if (showFullSummaryRowSignal()) {\n <div class=\"mat-mdc-table dbx-table-view-full-summary-row-container\">\n <div class=\"mdc-data-table__cell mat-mdc-row\">\n <dbx-table-full-summary-row></dbx-table-full-summary-row>\n </div>\n </div>\n }\n </div>\n</dbx-loading>\n","import { Directive, inject, input, effect } from '@angular/core';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxTableContextDataDelegate, type DbxTableViewDelegate } from './table';\n\n/**\n * Directive for providing and configuring a DbxTableStore\n */\n@Directive({\n selector: '[dbxTable]',\n providers: [DbxTableStore],\n standalone: true\n})\nexport class DbxTableDirective<I, C, T> {\n readonly tableStore = inject(DbxTableStore<I, C, T>);\n\n readonly dbxTableInput = input<Maybe<I>>();\n readonly dbxTableViewDelegate = input<Maybe<DbxTableViewDelegate<I, C, T>>>();\n readonly dbxTableDataDelegate = input<Maybe<DbxTableContextDataDelegate<I, C, T>>>();\n\n protected readonly _setOnTableStoreEffect = effect(\n () => {\n this.tableStore.setInput(this.dbxTableInput());\n this.tableStore.setViewDelegate(this.dbxTableViewDelegate());\n this.tableStore.setDataDelegate(this.dbxTableDataDelegate());\n },\n {\n allowSignalWrites: true\n }\n );\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTableViewComponent } from './table.component';\nimport { DbxTableDirective } from './table.directive';\n\nconst importsAndExports = [DbxTableDirective, DbxTableViewComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTableModule {}\n","import { combineLatest, map, type Observable, of, shareReplay, startWith, switchMap } from 'rxjs';\nimport { type PrimativeKey, type Maybe, filterMaybeArrayValues, type ReadRequiredKeyFunction } from '@dereekb/util';\nimport { type DbxTableColumn } from './table';\nimport { type DbxTableStore } from './table.store';\n\nexport interface DbxTableReaderCellPair<C, T> {\n readonly column: DbxTableColumn<C>;\n readonly item: T;\n}\n\nexport interface DbxTableReaderCellDataPair<C, T, O> extends DbxTableReaderCellPair<C, T> {\n readonly value: O;\n}\n\n/**\n * Key used for tracking columns.\n *\n * Generally the table name is used for this.\n */\nexport type DbxTableReaderColumnKey = string;\n\n/**\n * Key used for tracking items.\n *\n * Generally the item's unique identifier is used for this.\n */\nexport type DbxTableReaderItemKey = PrimativeKey;\n\n/**\n * Default track by function for DbxTableColumn.\n *\n * Returns the column name.\n *\n * @param column\n * @returns\n */\nexport const DEFAULT_DBX_TABLE_READER_COLUMN_TRACK_BY: ReadRequiredKeyFunction<DbxTableColumn<DbxTableReaderColumnKey>> = (column) => column.columnName;\n\n/**\n * Function used for tracking unique columns using the column's data.\n *\n * If the column key value is the same between those two columns, then the metadata of both columns will be considered the same/equal.\n */\nexport type DbxTableReaderColumnTrackByFunction<C> = ReadRequiredKeyFunction<DbxTableColumn<C>, DbxTableReaderColumnKey>;\n\n/**\n * Function used for tracking unique columns using the column's data.\n *\n * If the column key value is the same between those two columns, then the metadata of both columns will be considered the same/equal.\n */\nexport type DbxTableReaderItemTrackByFunction<T> = ReadRequiredKeyFunction<T, DbxTableReaderItemKey>;\n\nexport interface DbxTableReaderDelegate<C, T, O> {\n /**\n * Retrieves the data for a specific column and item/row.\n *\n * @param column\n * @param item\n */\n readItemCellDataForColumn(column: DbxTableColumn<C>, item: T): Observable<O>;\n /**\n * Used for tracking unique columns.\n *\n * Use if the metadata between columns should be used for unique identification.\n *\n * Defaults to using the column name as the key if not defined.\n */\n trackColumn?: DbxTableReaderColumnTrackByFunction<C>;\n /**\n * Used for tracking unique items/rows.\n *\n * Use if the metadata between items should be used for unique identification.\n *\n * Defaults to using the item itself as the key if not defined.\n */\n trackItem: DbxTableReaderItemTrackByFunction<T>;\n}\n\nexport interface DbxTableReaderConfig<C, T, O, G = unknown> {\n /**\n * Delegate used for retrieving the data for a specific column and item/row.\n */\n readonly delegate: DbxTableReaderDelegate<C, T, O>;\n /**\n * The table store used for retrieving the items.\n */\n readonly tableStore: DbxTableStore<unknown, C, T, G>;\n}\n\nexport interface DbxTableReader<C, T, O, G = unknown> extends DbxTableReaderConfig<C, T, O, G> {\n /**\n * Retrieves all cell data pairs for a specific column.\n */\n cellDataPairsForColumn(column: DbxTableColumn<C>): Observable<DbxTableReaderCellDataPair<C, T, O>[]>;\n /**\n * Retrieves all cell data for a specific column.\n */\n cellDataForColumn(column: DbxTableColumn<C>): Observable<O[]>;\n /**\n * Retrieves the cell data pair for a specific column and item.\n *\n * Returns null if the column is not visible or the item is not found.\n */\n cellDataPairForColumnAndItem(column: DbxTableColumn<C>, item: T): Observable<Maybe<DbxTableReaderCellDataPair<C, T, O>>>;\n /**\n * Retrieves the cell data for a specific column and item.\n *\n * Returns null if the column is not visible or the item is not found.\n */\n cellDataForColumnAndItem(column: DbxTableColumn<C>, item: T): Observable<Maybe<O>>;\n}\n\n/**\n * Creates a {@link DbxTableReader} that provides reactive access to cell data across all columns and items in the table.\n *\n * @param config The reader configuration containing the delegate and table store\n * @returns A {@link DbxTableReader} instance with observable accessors for cell data\n */\nexport function dbxTableReader<C, T, O, G = unknown>(config: DbxTableReaderConfig<C, T, O, G>): DbxTableReader<C, T, O, G> {\n const { delegate, tableStore } = config;\n const { items$ } = tableStore;\n const { readItemCellDataForColumn, trackColumn: inputTrackColumn, trackItem } = delegate;\n const trackColumn = (inputTrackColumn ?? DEFAULT_DBX_TABLE_READER_COLUMN_TRACK_BY) as DbxTableReaderColumnTrackByFunction<C>;\n\n interface DbxTableReaderCellDataAccessorsForColumn {\n readonly column: DbxTableColumn<C>;\n readonly allValues$: Observable<DbxTableReaderCellDataPair<C, T, O>[]>;\n readonly accessorsRecord: DbxTableReaderCellDataAccessorsForColumnRecord;\n }\n\n type DbxTableReaderCellDataAccessorsForColumnRecord = Record<DbxTableReaderItemKey, Observable<DbxTableReaderCellDataPair<C, T, O>>>;\n\n const _cellDataAccessorsForColumn = (column: DbxTableColumn<C>): Observable<DbxTableReaderCellDataAccessorsForColumn> => {\n return items$.pipe(\n map((x) => {\n const allObservables: Observable<DbxTableReaderCellDataPair<C, T, O>>[] = [];\n const accessorsRecord: DbxTableReaderCellDataAccessorsForColumnRecord = {};\n\n x.forEach((item) => {\n const itemKey = trackItem(item);\n const accessor$ = readItemCellDataForColumn(column, item).pipe(\n map((value) => {\n return {\n column,\n item,\n value\n };\n })\n );\n\n accessorsRecord[itemKey] = accessor$;\n allObservables.push(accessor$);\n });\n\n const allValues$ = combineLatest(allObservables).pipe(startWith([]), shareReplay(1));\n\n return {\n column,\n allValues$,\n accessorsRecord\n };\n }),\n shareReplay(1)\n );\n };\n\n interface DbxTableReaderColumnDataCellsAccessor {\n readonly columnKey: DbxTableReaderColumnKey;\n readonly column: DbxTableColumn<C>;\n readonly cellDataAccessors$: Observable<DbxTableReaderCellDataAccessorsForColumn>;\n readonly cellData$: Observable<DbxTableReaderCellDataPair<C, T, O>[]>;\n }\n\n function columnDataCellsAccessor(columnKey: DbxTableReaderColumnKey, column: DbxTableColumn<C>): DbxTableReaderColumnDataCellsAccessor {\n const cellDataAccessors$ = _cellDataAccessorsForColumn(column);\n const cellData$ = cellDataAccessors$.pipe(\n switchMap((record) => record.allValues$),\n startWith([]),\n shareReplay(1)\n );\n\n return {\n columnKey,\n column,\n cellDataAccessors$,\n cellData$\n };\n }\n\n interface DbxTableReaderColumnDataAccumulator {\n readonly record: DbxTableReaderColumnDataRecord;\n }\n\n type DbxTableReaderColumnDataRecord = Record<DbxTableReaderColumnKey, DbxTableReaderColumnDataCellsAccessor>;\n\n const allColumnsData$: Observable<DbxTableReaderColumnDataAccumulator> = tableStore.columns$.pipe(\n map((nextColumns: DbxTableColumn<C>[]) => {\n const record: DbxTableReaderColumnDataRecord = {};\n\n nextColumns.forEach((column) => {\n const columnKey = trackColumn(column);\n record[columnKey] = columnDataCellsAccessor(columnKey, column);\n });\n\n return {\n record\n };\n }),\n shareReplay(1)\n );\n\n const _columnAccessorForColumn = (column: DbxTableColumn<C>): Observable<Maybe<DbxTableReaderColumnDataCellsAccessor>> => {\n const columnKey = trackColumn(column);\n return allColumnsData$.pipe(\n map((columnsData) => columnsData.record[columnKey]),\n shareReplay(1)\n );\n };\n\n const loadCellDataPairsForColumn = (column: DbxTableColumn<C>): Observable<DbxTableReaderCellDataPair<C, T, O>[]> => {\n return _columnAccessorForColumn(column).pipe(\n switchMap((accessor) => {\n // when visibility changes, the data will change to be an empty array\n return accessor ? accessor.cellData$ : of([]);\n }),\n shareReplay(1)\n );\n };\n\n const cellDataPairsForColumn = (column: DbxTableColumn<C>): Observable<DbxTableReaderCellDataPair<C, T, O>[]> => {\n return loadCellDataPairsForColumn(column);\n };\n\n const cellDataForColumn = (column: DbxTableColumn<C>): Observable<O[]> => {\n return cellDataPairsForColumn(column).pipe(\n map((pairs) => filterMaybeArrayValues(pairs.map((pair) => pair.value))),\n shareReplay(1)\n );\n };\n\n const cellDataPairForColumnAndItem = (column: DbxTableColumn<C>, item: T): Observable<Maybe<DbxTableReaderCellDataPair<C, T, O>>> => {\n const itemKey = trackItem(item);\n return _columnAccessorForColumn(column).pipe(\n switchMap((columnsData) => {\n return columnsData\n ? columnsData.cellDataAccessors$.pipe(\n switchMap((cellDataAccessor) => {\n const itemAccessor = cellDataAccessor.accessorsRecord[itemKey];\n const result: Observable<Maybe<DbxTableReaderCellDataPair<C, T, O>>> = itemAccessor ? itemAccessor : of(null);\n return result;\n })\n )\n : of(null);\n }),\n shareReplay(1)\n );\n };\n\n const cellDataForColumnAndItem = (column: DbxTableColumn<C>, item: T): Observable<Maybe<O>> => {\n return cellDataPairForColumnAndItem(column, item).pipe(map((pair) => pair?.value));\n };\n\n return {\n tableStore,\n delegate,\n cellDataPairsForColumn,\n cellDataForColumn,\n cellDataPairForColumnAndItem,\n cellDataForColumnAndItem\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["formatDate","importsAndExports","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dereekb-dbx-web-table.mjs","sources":["../../../../packages/dbx-web/table/src/lib/date/date.table.column.header.component.ts","../../../../packages/dbx-web/table/src/lib/table.ts","../../../../packages/dbx-web/table/src/lib/table.store.ts","../../../../packages/dbx-web/table/src/lib/date/daterange.table.cell.input.component.ts","../../../../packages/dbx-web/table/src/lib/date/table.date.module.ts","../../../../packages/dbx-web/table/src/lib/table.cell.action.component.ts","../../../../packages/dbx-web/table/src/lib/table.cell.input.component.ts","../../../../packages/dbx-web/table/src/lib/table.cell.summaryend.component.ts","../../../../packages/dbx-web/table/src/lib/table.cell.summarystart.component.ts","../../../../packages/dbx-web/table/src/lib/table.column.directive.ts","../../../../packages/dbx-web/table/src/lib/table.column.header.component.ts","../../../../packages/dbx-web/table/src/lib/table.column.footer.component.ts","../../../../packages/dbx-web/table/src/lib/table.column.size.directive.ts","../../../../packages/dbx-web/table/src/lib/table.column.size.ts","../../../../packages/dbx-web/table/src/lib/table.item.directive.ts","../../../../packages/dbx-web/table/src/lib/table.item.cell.component.ts","../../../../packages/dbx-web/table/src/lib/table.item.header.component.ts","../../../../packages/dbx-web/table/src/lib/table.item.action.component.ts","../../../../packages/dbx-web/table/src/lib/table.group.directive.ts","../../../../packages/dbx-web/table/src/lib/table.group.header.component.ts","../../../../packages/dbx-web/table/src/lib/table.group.footer.component.ts","../../../../packages/dbx-web/table/src/lib/table.fullsummaryrow.component.ts","../../../../packages/dbx-web/table/src/lib/table.component.ts","../../../../packages/dbx-web/table/src/lib/table.component.html","../../../../packages/dbx-web/table/src/lib/table.directive.ts","../../../../packages/dbx-web/table/src/lib/table.module.ts","../../../../packages/dbx-web/table/src/lib/table.reader.ts","../../../../packages/dbx-web/table/src/dereekb-dbx-web-table.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { type DbxInjectionComponentConfig, type DbxInjectionComponentConfigFactory } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxTableColumn } from '../table';\nimport { DatePipe } from '@angular/common';\n\n/**\n * A table header component used for rendering date values on the header.\n */\n@Component({\n template: `\n @if (dateSignal()) {\n <div class=\"dbx-table-date-column-header\">\n <span class=\"dbx-table-date-column-header-left\">{{ dateSignal() | date: left }}</span>\n <span>{{ dateSignal() | date: right }}</span>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe],\n standalone: true\n})\nexport class DbxTableDateHeaderComponent {\n readonly left = 'E';\n readonly right = 'MMM d';\n\n private readonly _dateSignal = signal<Maybe<Date>>(undefined);\n readonly dateSignal = this._dateSignal.asReadonly();\n\n get date() {\n return this._dateSignal();\n }\n\n set date(date: Maybe<Date>) {\n this._dateSignal.set(date);\n }\n}\n\n/**\n * Creates a factory that produces injection component configs for rendering date column headers.\n *\n * The factory initializes each {@link DbxTableDateHeaderComponent} with the column's date metadata.\n *\n * @returns a factory function that maps a date column to its header injection config\n */\nexport function dbxTableDateHeaderInjectionFactory(): DbxInjectionComponentConfigFactory<DbxTableColumn<Date>, DbxTableDateHeaderComponent> {\n return (column: DbxTableColumn<Date>) => {\n const config: DbxInjectionComponentConfig<DbxTableDateHeaderComponent> = {\n componentClass: DbxTableDateHeaderComponent,\n init: (x) => {\n x.date = column.meta;\n }\n };\n\n return config;\n };\n}\n","import { type Observable } from 'rxjs';\nimport { type LoadingState, type ObservableOrValue, type PageListLoadingState } from '@dereekb/rxjs';\nimport { type CssClassesArray, type Maybe } from '@dereekb/util';\nimport { type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { type TrackByFunction } from '@angular/core';\n\n/**\n * Delegate used for retrieving data for a table.\n */\nexport interface DbxTableContextDataDelegate<I, C, T> {\n /**\n * Loads data given the input.\n *\n * @param input\n */\n loadData(input: I): Observable<LoadingState<DbxTableContextData<I, C, T>>>;\n}\n\nexport interface DbxTableContextData<I, C, T> {\n /**\n * Original context input\n */\n readonly input: I;\n /**\n * All columns in this data context.\n */\n readonly columns: DbxTableColumn<C>[];\n /**\n * All currently loaded items.\n */\n readonly items$: Observable<PageListLoadingState<T>>;\n /**\n * Loads more items, if applicable.\n */\n loadMore?(): void;\n}\n\nexport interface DbxTableColumn<C> {\n /**\n * Unique column name\n */\n readonly columnName: string;\n /**\n * Column metadata\n */\n readonly meta: C;\n}\n\nexport const NO_GROUPS_ID = 'none';\n\n/**\n * Unique identifier used for grouping items together.\n */\nexport type DbxTableGroupId = string;\n\nexport interface DbxTableItemGroup<T, G = unknown> {\n readonly groupId: DbxTableGroupId;\n readonly items: T[];\n readonly meta: G;\n}\n\nexport interface DefaultDbxTableItemGroup<T, G = unknown> extends DbxTableItemGroup<T, G> {\n readonly groupId: typeof NO_GROUPS_ID;\n readonly default: true;\n}\n\n/**\n * Creates a default (ungrouped) table item group that wraps all items under the {@link NO_GROUPS_ID} identifier.\n *\n * Used when no explicit grouping function is provided to the table.\n *\n * @param items - the array of items to include in the default group\n * @returns a default group containing all the provided items\n */\nexport function defaultDbxTableItemGroup<T, G = unknown>(items: T[]): DefaultDbxTableItemGroup<T, G> {\n return {\n groupId: NO_GROUPS_ID,\n items,\n meta: undefined as G,\n default: true\n };\n}\n\nexport type DbxTableGroupByFunction<T, G = unknown> = (items: T[]) => ObservableOrValue<DbxTableItemGroup<T, G>[]>;\n\n/**\n * Delegate used for generating view configurations given the input.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any -- any required for DbxInjectionComponentConfig compatibility with diverse component types */\nexport interface DbxTableViewDelegate<I = unknown, C = unknown, T = unknown, G = unknown> {\n /**\n * Track by\n */\n readonly trackBy?: TrackByFunction<T>;\n /**\n * If provided, will group items together\n */\n readonly groupBy?: DbxTableGroupByFunction<T, G>;\n /**\n * Input picker view configuration\n */\n readonly inputHeader?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Action header view configuration\n */\n readonly actionHeader?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Full-width summary row view configuration.\n */\n readonly fullSummaryRow?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Summary row header view configuration.\n */\n readonly summaryRowHeader?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Summary row end view configuration\n */\n readonly summaryRowEnd?: Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Group row header view configuration for a specific group.\n *\n * If this function returns undefined, the group row will not be shown.\n *\n * @param group\n */\n groupHeader?(group: DbxTableItemGroup<T, G>): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Group row footer view configuration for a specific group.\n *\n * If this function returns undefined, the group row will not be shown.\n *\n * @param group\n */\n groupFooter?(group: DbxTableItemGroup<T, G>): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Column header view configuration for a specific column.\n *\n * @param item\n */\n columnHeader?(column: DbxTableColumn<C>): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Optional column footer view configuration for a specific column.\n *\n * @param item\n */\n columnFooter?(column: DbxTableColumn<C>): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Item header view (left-most column for an item row) configuration for a specific item.\n *\n * @param item\n */\n itemHeader(item: T): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Item cell view (middle columns for an item row) configuration for a specific item and column.\n *\n * @param item\n */\n itemCell(column: DbxTableColumn<C>, item: T): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Item action view (right-most column for an item row) configuration for a specific item.\n *\n * @param item\n */\n itemAction?(item: T): Maybe<DbxInjectionComponentConfig<any>>;\n /**\n * Optional classes to apply to the table.\n */\n tableClasses?: CssClassesArray;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n","import { Injectable } from '@angular/core';\nimport { asObservable, beginLoading, filterMaybe, type LoadingState, mapLoadingStateValueWithOperator, type PageListLoadingState, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { spaceSeparatedCssClasses, type Maybe } from '@dereekb/util';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { type Observable, distinctUntilChanged, first, map, shareReplay, switchMap, tap, combineLatest, of } from 'rxjs';\nimport { type DbxTableColumn, type DbxTableContextData, type DbxTableContextDataDelegate, type DbxTableItemGroup, type DbxTableViewDelegate, defaultDbxTableItemGroup } from './table';\n\nexport interface DbxTableStoreState<I, C, T, G> {\n /**\n * Contextual input that is passed to the data delegate.\n */\n readonly input: Maybe<I>;\n /**\n * Delegate used for retrieving info given the selection.\n */\n readonly dataDelegate: Maybe<DbxTableContextDataDelegate<I, C, T>>;\n /**\n * Delegate used for retrieving view configurations.\n */\n readonly viewDelegate: Maybe<DbxTableViewDelegate<I, C, T, G>>;\n}\n\n@Injectable()\nexport class DbxTableStore<I = unknown, C = unknown, T = unknown, G = unknown> extends ComponentStore<DbxTableStoreState<I, C, T, G>> {\n constructor() {\n super({\n input: null,\n dataDelegate: null,\n viewDelegate: null\n });\n }\n\n // MARK: Effects\n readonly loadMore = this.effect((input: Observable<void>) => {\n return input.pipe(\n switchMap(() =>\n this.data$.pipe(\n first(),\n tap((x) => {\n if (x.loadMore) {\n x.loadMore();\n }\n })\n )\n )\n );\n });\n\n // MARK: Accessors\n readonly input$ = this.state$.pipe(\n map((x) => x.input),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly dataDelegate$ = this.state$.pipe(\n map((x) => x.dataDelegate),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly currentViewDelegate$ = this.state$.pipe(\n map((x) => x.viewDelegate),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly viewDelegate$ = this.currentViewDelegate$.pipe(filterMaybe());\n readonly tableCssClasses$ = this.viewDelegate$.pipe(map((x) => x.tableClasses));\n readonly spaceSeparatedTableCssClasses$ = this.tableCssClasses$.pipe(\n map((x) => spaceSeparatedCssClasses(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly dataState$: Observable<LoadingState<DbxTableContextData<I, C, T>>> = combineLatest([this.input$, this.dataDelegate$]).pipe(\n switchMap(([input, dataDelegate]) => {\n let obs: Observable<LoadingState<DbxTableContextData<I, C, T>>>;\n\n if (input && dataDelegate) {\n obs = dataDelegate.loadData(input);\n } else {\n obs = of(beginLoading<DbxTableContextData<I, C, T>>());\n }\n\n return obs;\n }),\n shareReplay(1)\n );\n\n readonly data$: Observable<DbxTableContextData<I, C, T>> = this.dataState$.pipe(\n //\n valueFromFinishedLoadingState(),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly columns$: Observable<DbxTableColumn<C>[]> = this.data$.pipe(\n map((x) => x.columns),\n shareReplay(1)\n );\n\n readonly itemsState$: Observable<PageListLoadingState<T>> = this.data$.pipe(\n switchMap((x) => x.items$),\n shareReplay(1)\n );\n\n readonly items$: Observable<T[]> = this.itemsState$.pipe(valueFromFinishedLoadingState(), filterMaybe(), shareReplay(1));\n\n readonly groupsState$: Observable<LoadingState<DbxTableItemGroup<T, G>[]>> = this.itemsState$.pipe(\n mapLoadingStateValueWithOperator(\n switchMap((x) => {\n return this.viewDelegate$.pipe(\n switchMap((viewDelegate) => {\n let groups: Observable<DbxTableItemGroup<T, G>[]>;\n\n if (viewDelegate.groupBy) {\n groups = asObservable(viewDelegate.groupBy(x));\n } else {\n groups = of([defaultDbxTableItemGroup<T, G>(x)]);\n }\n\n return groups;\n })\n );\n })\n ),\n shareReplay(1)\n );\n\n readonly groups$: Observable<DbxTableItemGroup<T, G>[]> = this.groupsState$.pipe(valueFromFinishedLoadingState(), filterMaybe(), shareReplay(1));\n\n // MARK: State Changes\n readonly setInput = this.updater((state, input: Maybe<I>) => ({ ...state, input }));\n readonly setDataDelegate = this.updater((state, dataDelegate: Maybe<DbxTableContextDataDelegate<I, C, T>>) => ({ ...state, dataDelegate }));\n readonly setViewDelegate = this.updater((state, viewDelegate: Maybe<DbxTableViewDelegate<I, C, T, G>>) => ({ ...state, viewDelegate }));\n}\n","import { ChangeDetectionStrategy, Component, Injectable, inject, signal, computed } from '@angular/core';\nimport { type DateRangeDayDistanceInput, isSameDateDay } from '@dereekb/date';\nimport { DbxTableStore } from '../table.store';\nimport { type MatDateRangeSelectionStrategy, DateRange, MAT_DATE_RANGE_SELECTION_STRATEGY, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter } from '@angular/material/core';\nimport { type Days, type Maybe } from '@dereekb/util';\nimport { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { addDays, format as formatDate } from 'date-fns';\nimport { distinctUntilChanged, filter, startWith, throttleTime } from 'rxjs';\nimport { cleanSubscription, type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Injectable()\nexport class DbxTableDateRangeDayDistanceInputCellInputRangeSelectionStrategy<D> implements MatDateRangeSelectionStrategy<D> {\n private readonly _dateAdapter = inject(DateAdapter<D>);\n private readonly dbxTableDateRangeDayDistanceInputCellInputComponent = inject(DbxTableDateRangeDayDistanceInputCellInputComponent);\n\n selectionFinished(date: D | null): DateRange<D> {\n return this._createFiveDayRange(date);\n }\n\n createPreview(activeDate: D | null): DateRange<D> {\n return this._createFiveDayRange(activeDate);\n }\n\n private _createFiveDayRange(date: D | null): DateRange<D> {\n if (date) {\n const start = date;\n const end = this._dateAdapter.addCalendarDays(date, this.dbxTableDateRangeDayDistanceInputCellInputComponent.daysDistance);\n return new DateRange<D>(start, end);\n }\n\n return new DateRange<D>(null, null);\n }\n}\n\nexport interface DbxTableDateRangeDayDistanceInputCellInputComponentConfig {\n /**\n * Button format for the dates\n */\n readonly buttonFormat?: string;\n /**\n * Distance from the start to span.\n */\n readonly daysDistance: Days;\n readonly minDate?: Maybe<Date>;\n readonly maxDate?: Maybe<Date>;\n}\n\nexport const DEFAULT_DBX_TABLE_DATE_RANGE_DAY_DISTIANCE_INPUT_CELL_COMPONENT_CONFIG = { daysDistance: 6 };\n\nexport const DEFAULT_DBX_TABLE_DATE_RANGE_DAY_BUTTON_FORMAT = 'MMM dd';\n\n/**\n * Cell input for a DateRangeDayDistanceInput value.\n */\n@Component({\n template: `\n <div class=\"dbx-table-date-range-distance-input-cell\">\n <mat-date-range-input class=\"dbx-table-date-range-distance-input\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n <button mat-stroked-button color=\"primary\" (click)=\"picker.open()\">{{ dateRangeStringSignal() }}</button>\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n </div>\n `,\n providers: [\n {\n provide: MAT_DATE_RANGE_SELECTION_STRATEGY,\n useClass: DbxTableDateRangeDayDistanceInputCellInputRangeSelectionStrategy\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatDatepickerModule, ReactiveFormsModule, MatButtonModule]\n})\nexport class DbxTableDateRangeDayDistanceInputCellInputComponent {\n readonly tableStore = inject(DbxTableStore<DateRangeDayDistanceInput>);\n\n private readonly _syncSub = new SubscriptionObject();\n private readonly _valueSub = new SubscriptionObject();\n\n private readonly _pickerOpenedSignal = signal<boolean>(false);\n private readonly _configSignal = signal<DbxTableDateRangeDayDistanceInputCellInputComponentConfig>(DEFAULT_DBX_TABLE_DATE_RANGE_DAY_DISTIANCE_INPUT_CELL_COMPONENT_CONFIG);\n\n readonly range = new FormGroup({\n start: new FormControl<Maybe<Date>>(null),\n end: new FormControl<Maybe<Date>>(null)\n });\n\n readonly pickerOpened$ = this.range.valueChanges.pipe(startWith(this.range.value));\n\n readonly minDateSignal = computed(() => this._configSignal().minDate ?? null);\n readonly maxDateSignal = computed(() => this._configSignal().maxDate ?? null);\n readonly buttonFormatSignal = computed(() => this._configSignal().buttonFormat ?? DEFAULT_DBX_TABLE_DATE_RANGE_DAY_BUTTON_FORMAT);\n\n readonly rangeValue$ = this.range.valueChanges.pipe(startWith(this.range.value));\n readonly dateRangeStringSignal = computed(() => {\n const buttonFormat = this.buttonFormatSignal();\n const { start, end } = this.range.value;\n\n if (start && end) {\n return `${formatDate(start, buttonFormat)} - ${formatDate(end, buttonFormat)}`;\n } else {\n return `Select Date`;\n }\n });\n\n constructor() {\n cleanSubscription(\n this.tableStore.input$.subscribe((x) => {\n const start = x?.date ?? null;\n const end = start ? addDays(start, this.daysDistance) : undefined;\n\n this.range.setValue({\n start,\n end\n });\n })\n );\n\n cleanSubscription(\n this.rangeValue$\n .pipe(\n filter((x) => Boolean(x.start)),\n distinctUntilChanged((a, b) => isSameDateDay(a?.start, b?.start)),\n throttleTime(100, undefined, { trailing: true })\n )\n .subscribe((x) => {\n if (x.start) {\n this.tableStore.setInput({ date: x.start, distance: this.daysDistance });\n }\n })\n );\n }\n\n get daysDistance() {\n return this._configSignal().daysDistance;\n }\n\n get config() {\n return this._configSignal();\n }\n\n set config(config: Maybe<DbxTableDateRangeDayDistanceInputCellInputComponentConfig>) {\n this._configSignal.set(config || DEFAULT_DBX_TABLE_DATE_RANGE_DAY_DISTIANCE_INPUT_CELL_COMPONENT_CONFIG);\n }\n\n pickerOpened() {\n this._pickerOpenedSignal.set(true);\n }\n\n pickerClosed() {\n this._pickerOpenedSignal.set(false);\n }\n}\n\n/**\n * Creates an injection component config for a date-range day-distance input cell.\n *\n * Initializes the component with the provided configuration for day distance, date bounds, and button format.\n *\n * @param componentConfig - optional configuration for the date range input (day distance, min/max dates, button format)\n * @returns an injection component config that renders a {@link DbxTableDateRangeDayDistanceInputCellInputComponent}\n */\nexport function dbxTableDateRangeDayDistanceInputCellInput(componentConfig?: DbxTableDateRangeDayDistanceInputCellInputComponentConfig): DbxInjectionComponentConfig<DbxTableDateRangeDayDistanceInputCellInputComponent> {\n const config: DbxInjectionComponentConfig<DbxTableDateRangeDayDistanceInputCellInputComponent> = {\n componentClass: DbxTableDateRangeDayDistanceInputCellInputComponent,\n init: (x) => {\n x.config = componentConfig;\n }\n };\n\n return config;\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTableDateHeaderComponent } from './date.table.column.header.component';\nimport { DbxTableDateRangeDayDistanceInputCellInputComponent } from './daterange.table.cell.input.component';\n\nconst importsAndExports = [DbxTableDateHeaderComponent, DbxTableDateRangeDayDistanceInputCellInputComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTableDateModule {}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-action-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableActionCellComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.actionHeader),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * A table header component used for injecting the input picker view.\n */\n@Component({\n selector: 'dbx-table-input-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableInputCellComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.inputHeader),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-summary-end-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableSummaryEndCellComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.summaryRowEnd),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * A table header component used for injecting the input picker view.\n */\n@Component({\n selector: 'dbx-table-summary-start-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableSummaryStartCellComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.summaryRowHeader),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, inject, input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxTableColumn } from './table';\n\n/**\n * Abstract directive that has a column input.\n */\n@Directive()\nexport class AbstractDbxTableColumnDirective<C> {\n readonly tableStore = inject(DbxTableStore<unknown, C>);\n\n readonly column = input<Maybe<DbxTableColumn<C>>>();\n readonly column$ = toObservable(this.column).pipe(filterMaybe(), distinctUntilChanged());\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged, switchMap, of } from 'rxjs';\nimport { AbstractDbxTableColumnDirective } from './table.column.directive';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-column-header',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableColumnHeaderComponent<C> extends AbstractDbxTableColumnDirective<C> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => {\n const columnHeader = viewDelegate.columnHeader;\n\n if (columnHeader) {\n return this.column$.pipe(map((x) => columnHeader(x)));\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged, switchMap, of } from 'rxjs';\nimport { AbstractDbxTableColumnDirective } from './table.column.directive';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-column-footer',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent]\n})\nexport class DbxTableColumnFooterComponent<C> extends AbstractDbxTableColumnDirective<C> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => {\n const columnFooter = viewDelegate.columnFooter;\n\n if (columnFooter) {\n return this.column$.pipe(map((x) => columnFooter(x)));\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { computed, Directive, ElementRef, inject, input, type OnInit } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { clean, completeOnDestroy } from '@dereekb/dbx-core';\nimport { resizeSignal } from '@dereekb/dbx-web';\nimport { type Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\n\nexport type DbxColumnSizeColumnValue = 'head' | 'tail' | number;\n\n@Directive({\n exportAs: 'dbxTableColumnSize',\n selector: '[dbxTableColumnSize]',\n standalone: true\n})\nexport class DbxTableColumnSizeDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly resized = resizeSignal(this.elementRef);\n\n private readonly _columnsMap = completeOnDestroy(new BehaviorSubject(new Map<DbxColumnSizeColumnValue, DbxColumnSizeColumnDirective>()));\n readonly columns$ = this._columnsMap.asObservable();\n\n readonly columnsSignal = toSignal(this.columns$);\n readonly visibleColumnsSignal = computed(() => {\n const resized = this.resized();\n const columnsMap = this.columnsSignal() as Map<DbxColumnSizeColumnValue, DbxColumnSizeColumnDirective>;\n\n const { width } = resized.newRect;\n let visibleColumns = 0;\n\n const itemColumns: DbxColumnSizeColumnDirective[] = [];\n\n let headerColumn: Maybe<DbxColumnSizeColumnDirective>;\n let tailColumn: Maybe<DbxColumnSizeColumnDirective>;\n\n columnsMap.forEach((column) => {\n const index = column.index();\n\n switch (index) {\n case 'head':\n headerColumn = column;\n break;\n case 'tail':\n tailColumn = column;\n break;\n default:\n itemColumns[index] = column;\n break;\n }\n });\n\n const headerColumnWidth = headerColumn?.width || 0;\n const tailColumnWidth = tailColumn?.width || 0;\n\n let remainingTableWidth = width - headerColumnWidth;\n visibleColumns = 1;\n let i = 0;\n\n while (remainingTableWidth > 0 && i < itemColumns.length) {\n const nextColumn = itemColumns[i];\n i += 1;\n\n const columnWidth = nextColumn.width;\n\n remainingTableWidth -= columnWidth;\n\n if (remainingTableWidth >= 0) {\n visibleColumns += 1;\n }\n }\n\n // show the tail column\n if (tailColumn != null && visibleColumns === itemColumns.length + 1 && Math.abs(remainingTableWidth - tailColumnWidth) < 3) {\n visibleColumns += 1;\n }\n\n return visibleColumns;\n });\n\n addColumn(column: DbxColumnSizeColumnDirective) {\n this._columnsMap.value.set(column.index(), column);\n this._columnsMap.next(this._columnsMap.value);\n }\n\n removeColumn(column: DbxColumnSizeColumnDirective) {\n if (this._columnsMap.value.delete(column.index())) {\n this._columnsMap.next(this._columnsMap.value);\n }\n }\n}\n\n/**\n * References a specific element and the index of the column.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[dbx-column-size-column]',\n standalone: true\n})\nexport class DbxColumnSizeColumnDirective implements OnInit {\n readonly dbxColumnSizeDirective = inject(DbxTableColumnSizeDirective);\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly index = input.required<DbxColumnSizeColumnValue>({ alias: 'dbx-column-size-column' });\n\n constructor() {\n clean(() => this.dbxColumnSizeDirective.removeColumn(this));\n }\n\n ngOnInit(): void {\n // called after the index value has been input/set. Indexes are unique and set only once.\n this.dbxColumnSizeDirective.addColumn(this);\n }\n\n get width(): number {\n return this.elementRef.nativeElement.clientWidth;\n }\n}\n","import { type ElementRef, InjectionToken } from '@angular/core';\n\nexport const DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN = new InjectionToken<ElementRef<HTMLElement>>('DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN');\n","import { toObservable } from '@angular/core/rxjs-interop';\nimport { Directive, inject, input } from '@angular/core';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Abstract directive that has an element input.\n */\n@Directive()\nexport abstract class AbstractDbxTableItemDirective<T, C = unknown> {\n readonly tableStore = inject(DbxTableStore<unknown, C, T>);\n\n readonly item = input<Maybe<T>>();\n readonly item$ = toObservable(this.item);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { map, switchMap, combineLatest } from 'rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { AbstractDbxTableItemDirective } from './table.item.directive';\nimport { type DbxTableColumn } from './table';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-item-cell',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableItemCellComponent<T, C> extends AbstractDbxTableItemDirective<T, C> {\n readonly column = input<Maybe<DbxTableColumn<C>>>();\n readonly column$ = toObservable(this.column);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(switchMap((viewDelegate) => combineLatest([this.column$, this.item$]).pipe(map(([column, item]) => (column && item ? viewDelegate.itemCell(column, item) : undefined)))));\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, switchMap } from 'rxjs';\nimport { AbstractDbxTableItemDirective } from './table.item.directive';\nimport { maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-table-item-header',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableItemHeaderComponent<T> extends AbstractDbxTableItemDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => this.item$.pipe(map((x) => (x != null ? viewDelegate.itemHeader(x) : undefined)))),\n maybeValueFromObservableOrValue()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs';\nimport { AbstractDbxTableItemDirective } from './table.item.directive';\nimport { DbxInjectionComponent, type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { type MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\n\n@Component({\n selector: 'dbx-table-item-action',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableItemActionComponent<T> extends AbstractDbxTableItemDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((viewDelegate) => {\n const itemAction = viewDelegate.itemAction;\n let obs: MaybeObservableOrValue<DbxInjectionComponentConfig> = undefined;\n\n if (itemAction) {\n obs = this.item$.pipe(map((x) => (x != null ? itemAction(x) : undefined)));\n }\n\n return obs;\n }),\n maybeValueFromObservableOrValue()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { toObservable } from '@angular/core/rxjs-interop';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, inject, input } from '@angular/core';\nimport { distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxTableItemGroup } from './table';\n\n/**\n * Abstract directive that has an element input.\n */\n@Directive()\nexport abstract class AbstractDbxTableGroupDirective<T, C = unknown, G = unknown> {\n readonly tableStore = inject(DbxTableStore<unknown, C, T, G>);\n\n readonly group = input<Maybe<DbxTableItemGroup<T, G>>>();\n readonly group$ = toObservable(this.group).pipe(filterMaybe(), distinctUntilChanged());\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { type MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { DbxInjectionComponent, type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { AbstractDbxTableGroupDirective } from './table.group.directive';\n\n@Component({\n selector: 'dbx-table-group-header',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableGroupHeaderComponent<T> extends AbstractDbxTableGroupDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((viewDelegate) => {\n const groupHeader = viewDelegate.groupHeader;\n let obs: MaybeObservableOrValue<DbxInjectionComponentConfig> = undefined;\n\n if (groupHeader) {\n obs = this.group$.pipe(map((x) => groupHeader(x)));\n }\n\n return obs;\n }),\n maybeValueFromObservableOrValue(),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { type MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { DbxInjectionComponent, type DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { AbstractDbxTableGroupDirective } from './table.group.directive';\n\n@Component({\n selector: 'dbx-table-group-footer',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxTableGroupFooterComponent<T> extends AbstractDbxTableGroupDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((viewDelegate) => {\n const groupFooter = viewDelegate.groupFooter;\n let obs: MaybeObservableOrValue<DbxInjectionComponentConfig> = undefined;\n\n if (groupFooter) {\n obs = this.group$.pipe(map((x) => groupFooter(x)));\n }\n\n return obs;\n }),\n maybeValueFromObservableOrValue(),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged } from 'rxjs';\nimport { DbxTableStore } from './table.store';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * A table header component used for injecting the input picker view.\n */\n@Component({\n selector: 'dbx-table-full-summary-row',\n template: `\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [DbxInjectionComponent],\n host: {\n class: 'dbx-h100 dbx-flex-bar'\n }\n})\nexport class DbxTableFullSummaryRowComponent {\n readonly tableStore = inject(DbxTableStore);\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n map((x) => x.fullSummaryRow),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, type TrackByFunction, inject, computed, input, type Signal, viewChild, ElementRef } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxTableStore } from './table.store';\nimport { type LoadingState, loadingStateContext, mapLoadingStateValueWithOperator, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { shareReplay, map, type Observable, switchMap, throttleTime } from 'rxjs';\nimport { DbxLoadingComponent } from '@dereekb/dbx-web';\nimport { InfiniteScrollDirective } from 'ngx-infinite-scroll';\nimport { MatTable, MatTableModule } from '@angular/material/table';\nimport { DbxTableInputCellComponent } from './table.cell.input.component';\nimport { DbxTableSummaryEndCellComponent } from './table.cell.summaryend.component';\nimport { DbxTableSummaryStartCellComponent } from './table.cell.summarystart.component';\nimport { DbxTableColumnFooterComponent } from './table.column.footer.component';\nimport { DbxTableItemCellComponent } from './table.item.cell.component';\nimport { DbxTableItemHeaderComponent } from './table.item.header.component';\nimport { DbxTableItemActionComponent } from './table.item.action.component';\nimport { DbxTableActionCellComponent } from './table.cell.action.component';\nimport { DbxTableColumnHeaderComponent } from './table.column.header.component';\nimport { type DbxTableItemGroup, type DefaultDbxTableItemGroup } from './table';\nimport { DbxTableGroupHeaderComponent } from './table.group.header.component';\nimport { DbxTableGroupFooterComponent } from './table.group.footer.component';\nimport { pushArrayItemsIntoArray } from '@dereekb/util';\nimport { NgClass } from '@angular/common';\nimport { DbxTableFullSummaryRowComponent } from './table.fullsummaryrow.component';\nimport { DbxTableColumnSizeDirective, DbxColumnSizeColumnDirective } from './table.column.size.directive';\nimport { DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN } from './table.column.size';\n\nexport const DBX_TABLE_ITEMS_COLUMN_NAME = '_items';\nexport const DBX_TABLE_ACTIONS_COLUMN_NAME = '_actions';\n\nexport interface DbxTableViewGroupElement<T, G> {\n readonly type: 'group';\n readonly location: 'header' | 'footer';\n readonly group: DbxTableItemGroup<T, G>;\n}\n\nexport interface DbxTableViewItemElement<T, G> {\n readonly type: 'item';\n readonly item: T;\n}\n\nexport type DbxTableViewElement<T, G> = DbxTableViewGroupElement<T, G> | DbxTableViewItemElement<T, G>;\n\n/**\n * Type guard that checks whether a table view element is a group element (header or footer).\n *\n * @param element - the table view element to check\n * @returns `true` if the element represents a group header or footer row\n */\nexport function isDbxTableViewGroupElement<T, G>(element: DbxTableViewElement<T, G>): element is DbxTableViewGroupElement<T, G> {\n return element.type === 'group';\n}\n\n/**\n * Type guard that checks whether a table view element is an item data element.\n *\n * @param element - the table view element to check\n * @returns `true` if the element represents an item data row\n */\nexport function isDbxTableViewItemElement<T, G>(element: DbxTableViewElement<T, G>): element is DbxTableViewItemElement<T, G> {\n return element.type === 'item';\n}\n\n/**\n * A table with fixed content\n */\n@Component({\n selector: 'dbx-table-view',\n templateUrl: './table.component.html',\n imports: [\n DbxLoadingComponent,\n NgClass,\n InfiniteScrollDirective,\n MatTableModule,\n DbxTableInputCellComponent,\n DbxTableItemHeaderComponent,\n DbxTableItemCellComponent,\n DbxTableItemActionComponent,\n DbxTableActionCellComponent,\n DbxTableColumnHeaderComponent,\n DbxTableColumnFooterComponent,\n DbxTableSummaryStartCellComponent,\n DbxTableSummaryEndCellComponent,\n DbxTableGroupHeaderComponent,\n DbxTableGroupFooterComponent,\n DbxTableFullSummaryRowComponent,\n DbxTableColumnSizeDirective,\n DbxColumnSizeColumnDirective\n ],\n providers: [\n {\n provide: DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN,\n useExisting: ElementRef\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTableViewComponent<I, C, T, G = unknown> {\n readonly tableStore = inject(DbxTableStore<I, C, T, G>);\n readonly table = viewChild.required<MatTable<DbxTableViewElement<T, G>>>(MatTable);\n\n readonly DEFAULT_TRACK_BY_FUNCTION: TrackByFunction<any> = (index) => {\n return index;\n };\n\n readonly scrollDistance = input<number>(0.5);\n readonly throttleScroll = input<number>(50);\n\n readonly itemsColumnName = DBX_TABLE_ITEMS_COLUMN_NAME;\n readonly actionsColumnName = DBX_TABLE_ACTIONS_COLUMN_NAME;\n\n readonly innerColumns$ = this.tableStore.columns$;\n readonly innerColumnNames$ = this.innerColumns$.pipe(\n map((x) => x.map((y) => y.columnName)),\n shareReplay(1)\n );\n\n readonly innerColumnsSignal = toSignal(this.innerColumns$);\n readonly innerColumnNamesSignal = toSignal(this.innerColumnNames$);\n\n readonly elementsState$: Observable<LoadingState<DbxTableViewElement<T, G>[]>> = this.tableStore.groupsState$.pipe(\n mapLoadingStateValueWithOperator(\n switchMap((groups) => {\n return this.tableStore.viewDelegate$.pipe(\n map((viewDelegate) => {\n const { groupHeader: inputGroupHeader, groupFooter: inputGroupFooter } = viewDelegate;\n const hasGroupHeader = inputGroupHeader != null ? (group: DbxTableItemGroup<T, G>) => inputGroupHeader(group) != null : () => false;\n const hasGroupFooter = inputGroupFooter != null ? (group: DbxTableItemGroup<T, G>) => inputGroupFooter(group) != null : () => false;\n\n return groups.flatMap((group) => {\n const { items } = group;\n\n const itemElements: DbxTableViewItemElement<T, G>[] = items.map((item) => ({\n type: 'item',\n item\n }));\n\n let elements: DbxTableViewElement<T, G>[];\n\n if ((group as DefaultDbxTableItemGroup<T, G>).default) {\n elements = itemElements;\n } else {\n const header = hasGroupHeader(group);\n const footer = hasGroupFooter(group);\n\n elements = [];\n\n if (header) {\n elements.push({\n type: 'group',\n location: 'header',\n group\n });\n }\n\n pushArrayItemsIntoArray(elements, itemElements);\n\n if (footer) {\n elements.push({\n type: 'group',\n location: 'footer',\n group\n });\n }\n }\n\n return elements;\n });\n })\n );\n })\n ),\n shareReplay(1)\n );\n\n readonly elements$ = this.elementsState$.pipe(\n valueFromFinishedLoadingState(() => []),\n throttleTime(50, undefined, { leading: true, trailing: true }),\n shareReplay(1)\n );\n\n readonly displayedColumns$ = this.innerColumnNames$.pipe(\n map((columnNames) => {\n return [this.itemsColumnName, ...columnNames, this.actionsColumnName];\n }),\n shareReplay(1)\n );\n\n readonly displayedColumnsSignal = computed(() => {\n const columnNames = this.innerColumnNamesSignal() || [];\n return [this.itemsColumnName, ...columnNames, this.actionsColumnName];\n });\n\n readonly trackByFunction$: Observable<TrackByFunction<T>> = this.tableStore.viewDelegate$.pipe(\n map((x) => x.trackBy ?? this.DEFAULT_TRACK_BY_FUNCTION),\n shareReplay(1)\n );\n\n readonly inputTrackByFunctionSignal = toSignal(this.trackByFunction$, { initialValue: this.DEFAULT_TRACK_BY_FUNCTION });\n readonly trackElementByFunctionSignal: Signal<TrackByFunction<DbxTableViewElement<T, G>>> = computed(() => {\n const trackByFunction = this.inputTrackByFunctionSignal() as TrackByFunction<T>;\n\n const fn: TrackByFunction<DbxTableViewElement<T, G>> = (index: number, element: DbxTableViewElement<T, G>) => {\n if (element.type === 'item') {\n return `i_${trackByFunction(index, element.item as T)}`;\n } else {\n return `g_${element.group.groupId}`;\n }\n };\n\n return fn;\n });\n\n readonly context = loadingStateContext({ obs: this.tableStore.dataState$ });\n readonly dataLoadingContext = loadingStateContext({ obs: this.elementsState$ });\n\n readonly contextSignal = toSignal(this.context.state$);\n readonly dataLoadingContextSignal = toSignal(this.dataLoadingContext.state$);\n\n readonly viewDelegateSignal = toSignal(this.tableStore.viewDelegate$);\n readonly elementsSignal = toSignal(this.elements$, { initialValue: [] });\n\n readonly tableCssClasses = toSignal(this.tableStore.spaceSeparatedTableCssClasses$);\n\n onScrollDown(): void {\n this.tableStore.loadMore();\n }\n\n showItemRow(_: number, row: DbxTableViewElement<T, G>): boolean {\n return row.type === 'item';\n }\n\n showGroupHeaderRow(_: number, row: DbxTableViewElement<T, G>): boolean {\n return row.type === 'group' && row.location === 'header';\n }\n\n showGroupFooterRow(_: number, row: DbxTableViewElement<T, G>): boolean {\n return row.type === 'group' && row.location === 'footer';\n }\n\n readonly showFooterRowSignal = computed(() => {\n const viewDelegate = this.viewDelegateSignal();\n return viewDelegate && (viewDelegate.summaryRowHeader != null || viewDelegate.columnFooter != null || viewDelegate.summaryRowEnd != null);\n });\n\n readonly showFullSummaryRowSignal = computed(() => {\n const viewDelegate = this.viewDelegateSignal();\n return viewDelegate?.fullSummaryRow != null;\n });\n}\n","<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <div class=\"dbx-table-view\" [ngClass]=\"tableCssClasses()\">\n <section class=\"dbx-table-view-table-wrapper\" dbxTableColumnSize #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elementsSignal()\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-header [group]=\"element.group\"></dbx-table-group-header>\n </td>\n </ng-container>\n\n <!-- Group Footer column -->\n <ng-container matColumnDef=\"groupFooterColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-footer [group]=\"element.group\"></dbx-table-group-footer>\n </td>\n </ng-container>\n\n <!-- Items -->\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th dbx-column-size-column=\"head\" mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-start-cell></dbx-table-summary-start-cell>\n </td>\n </ng-container>\n\n <!-- Column Definitions -->\n @for (column of innerColumnsSignal(); track column.columnName) {\n <ng-container [matColumnDef]=\"column.columnName\" [sticky]=\"false\">\n <th [dbx-column-size-column]=\"$index\" mat-header-cell *matHeaderCellDef>\n <dbx-table-column-header [column]=\"column\"></dbx-table-column-header>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-column-footer [column]=\"column\"></dbx-table-column-footer>\n </td>\n </ng-container>\n }\n\n <!-- Tail/Action column -->\n <ng-container [matColumnDef]=\"actionsColumnName\" [stickyEnd]=\"true\">\n <th dbx-column-size-column=\"tail\" mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-end-cell></dbx-table-summary-end-cell>\n </td>\n </ng-container>\n\n <!-- Table View -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeaderColumn']; when: showGroupHeaderRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsSignal(); when: showItemRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['groupFooterColumn']; when: showGroupFooterRow\"></tr>\n\n <tr [ngClass]=\"{ 'dbx-hide': !showFooterRowSignal() }\" mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n <!-- Full summary row -->\n @if (showFullSummaryRowSignal()) {\n <div class=\"mat-mdc-table dbx-table-view-full-summary-row-container\">\n <div class=\"mdc-data-table__cell mat-mdc-row\">\n <dbx-table-full-summary-row></dbx-table-full-summary-row>\n </div>\n </div>\n }\n </div>\n</dbx-loading>\n","import { Directive, inject, input, effect } from '@angular/core';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxTableContextDataDelegate, type DbxTableViewDelegate } from './table';\n\n/**\n * Directive for providing and configuring a DbxTableStore\n */\n@Directive({\n selector: '[dbxTable]',\n providers: [DbxTableStore],\n standalone: true\n})\nexport class DbxTableDirective<I, C, T> {\n readonly tableStore = inject(DbxTableStore<I, C, T>);\n\n readonly dbxTableInput = input<Maybe<I>>();\n readonly dbxTableViewDelegate = input<Maybe<DbxTableViewDelegate<I, C, T>>>();\n readonly dbxTableDataDelegate = input<Maybe<DbxTableContextDataDelegate<I, C, T>>>();\n\n protected readonly _setOnTableStoreEffect = effect(\n () => {\n this.tableStore.setInput(this.dbxTableInput());\n this.tableStore.setViewDelegate(this.dbxTableViewDelegate());\n this.tableStore.setDataDelegate(this.dbxTableDataDelegate());\n },\n {\n allowSignalWrites: true\n }\n );\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTableViewComponent } from './table.component';\nimport { DbxTableDirective } from './table.directive';\n\nconst importsAndExports = [DbxTableDirective, DbxTableViewComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTableModule {}\n","import { combineLatest, map, type Observable, of, shareReplay, startWith, switchMap } from 'rxjs';\nimport { type PrimativeKey, type Maybe, filterMaybeArrayValues, type ReadRequiredKeyFunction } from '@dereekb/util';\nimport { type DbxTableColumn } from './table';\nimport { type DbxTableStore } from './table.store';\n\nexport interface DbxTableReaderCellPair<C, T> {\n readonly column: DbxTableColumn<C>;\n readonly item: T;\n}\n\nexport interface DbxTableReaderCellDataPair<C, T, O> extends DbxTableReaderCellPair<C, T> {\n readonly value: O;\n}\n\n/**\n * Key used for tracking columns.\n *\n * Generally the table name is used for this.\n */\nexport type DbxTableReaderColumnKey = string;\n\n/**\n * Key used for tracking items.\n *\n * Generally the item's unique identifier is used for this.\n */\nexport type DbxTableReaderItemKey = PrimativeKey;\n\n/**\n * Default track by function for DbxTableColumn.\n *\n * Returns the column name.\n *\n * @param column\n * @returns\n */\nexport const DEFAULT_DBX_TABLE_READER_COLUMN_TRACK_BY: ReadRequiredKeyFunction<DbxTableColumn<DbxTableReaderColumnKey>> = (column) => column.columnName;\n\n/**\n * Function used for tracking unique columns using the column's data.\n *\n * If the column key value is the same between those two columns, then the metadata of both columns will be considered the same/equal.\n */\nexport type DbxTableReaderColumnTrackByFunction<C> = ReadRequiredKeyFunction<DbxTableColumn<C>, DbxTableReaderColumnKey>;\n\n/**\n * Function used for tracking unique columns using the column's data.\n *\n * If the column key value is the same between those two columns, then the metadata of both columns will be considered the same/equal.\n */\nexport type DbxTableReaderItemTrackByFunction<T> = ReadRequiredKeyFunction<T, DbxTableReaderItemKey>;\n\nexport interface DbxTableReaderDelegate<C, T, O> {\n /**\n * Retrieves the data for a specific column and item/row.\n *\n * @param column\n * @param item\n */\n readItemCellDataForColumn(column: DbxTableColumn<C>, item: T): Observable<O>;\n /**\n * Used for tracking unique columns.\n *\n * Use if the metadata between columns should be used for unique identification.\n *\n * Defaults to using the column name as the key if not defined.\n */\n trackColumn?: DbxTableReaderColumnTrackByFunction<C>;\n /**\n * Used for tracking unique items/rows.\n *\n * Use if the metadata between items should be used for unique identification.\n *\n * Defaults to using the item itself as the key if not defined.\n */\n trackItem: DbxTableReaderItemTrackByFunction<T>;\n}\n\nexport interface DbxTableReaderConfig<C, T, O, G = any> {\n /**\n * Delegate used for retrieving the data for a specific column and item/row.\n */\n readonly delegate: DbxTableReaderDelegate<C, T, O>;\n /**\n * The table store used for retrieving the items.\n */\n readonly tableStore: DbxTableStore<any, C, T, G>;\n}\n\nexport interface DbxTableReader<C, T, O, G = any> extends DbxTableReaderConfig<C, T, O, G> {\n /**\n * Retrieves all cell data pairs for a specific column.\n */\n cellDataPairsForColumn(column: DbxTableColumn<C>): Observable<DbxTableReaderCellDataPair<C, T, O>[]>;\n /**\n * Retrieves all cell data for a specific column.\n */\n cellDataForColumn(column: DbxTableColumn<C>): Observable<O[]>;\n /**\n * Retrieves the cell data pair for a specific column and item.\n *\n * Returns null if the column is not visible or the item is not found.\n */\n cellDataPairForColumnAndItem(column: DbxTableColumn<C>, item: T): Observable<Maybe<DbxTableReaderCellDataPair<C, T, O>>>;\n /**\n * Retrieves the cell data for a specific column and item.\n *\n * Returns null if the column is not visible or the item is not found.\n */\n cellDataForColumnAndItem(column: DbxTableColumn<C>, item: T): Observable<Maybe<O>>;\n}\n\n/**\n * Creates a {@link DbxTableReader} that provides reactive access to cell data across all columns and items in the table.\n *\n * @param config The reader configuration containing the delegate and table store\n * @returns A {@link DbxTableReader} instance with observable accessors for cell data\n */\nexport function dbxTableReader<C, T, O, G = any>(config: DbxTableReaderConfig<C, T, O, G>): DbxTableReader<C, T, O, G> {\n const { delegate, tableStore } = config;\n const { items$ } = tableStore;\n const { readItemCellDataForColumn, trackColumn: inputTrackColumn, trackItem } = delegate;\n const trackColumn = (inputTrackColumn ?? DEFAULT_DBX_TABLE_READER_COLUMN_TRACK_BY) as DbxTableReaderColumnTrackByFunction<C>;\n\n interface DbxTableReaderCellDataAccessorsForColumn {\n readonly column: DbxTableColumn<C>;\n readonly allValues$: Observable<DbxTableReaderCellDataPair<C, T, O>[]>;\n readonly accessorsRecord: DbxTableReaderCellDataAccessorsForColumnRecord;\n }\n\n type DbxTableReaderCellDataAccessorsForColumnRecord = Record<DbxTableReaderItemKey, Observable<DbxTableReaderCellDataPair<C, T, O>>>;\n\n const _cellDataAccessorsForColumn = (column: DbxTableColumn<C>): Observable<DbxTableReaderCellDataAccessorsForColumn> => {\n return items$.pipe(\n map((x) => {\n const allObservables: Observable<DbxTableReaderCellDataPair<C, T, O>>[] = [];\n const accessorsRecord: DbxTableReaderCellDataAccessorsForColumnRecord = {};\n\n x.forEach((item) => {\n const itemKey = trackItem(item);\n const accessor$ = readItemCellDataForColumn(column, item).pipe(\n map((value) => {\n return {\n column,\n item,\n value\n };\n })\n );\n\n accessorsRecord[itemKey] = accessor$;\n allObservables.push(accessor$);\n });\n\n const allValues$ = combineLatest(allObservables).pipe(startWith([]), shareReplay(1));\n\n return {\n column,\n allValues$,\n accessorsRecord\n };\n }),\n shareReplay(1)\n );\n };\n\n interface DbxTableReaderColumnDataCellsAccessor {\n readonly columnKey: DbxTableReaderColumnKey;\n readonly column: DbxTableColumn<C>;\n readonly cellDataAccessors$: Observable<DbxTableReaderCellDataAccessorsForColumn>;\n readonly cellData$: Observable<DbxTableReaderCellDataPair<C, T, O>[]>;\n }\n\n function columnDataCellsAccessor(columnKey: DbxTableReaderColumnKey, column: DbxTableColumn<C>): DbxTableReaderColumnDataCellsAccessor {\n const cellDataAccessors$ = _cellDataAccessorsForColumn(column);\n const cellData$ = cellDataAccessors$.pipe(\n switchMap((record) => record.allValues$),\n startWith([]),\n shareReplay(1)\n );\n\n return {\n columnKey,\n column,\n cellDataAccessors$,\n cellData$\n };\n }\n\n interface DbxTableReaderColumnDataAccumulator {\n readonly record: DbxTableReaderColumnDataRecord;\n }\n\n type DbxTableReaderColumnDataRecord = Record<DbxTableReaderColumnKey, DbxTableReaderColumnDataCellsAccessor>;\n\n const allColumnsData$: Observable<DbxTableReaderColumnDataAccumulator> = tableStore.columns$.pipe(\n map((nextColumns: DbxTableColumn<C>[]) => {\n const record: DbxTableReaderColumnDataRecord = {};\n\n nextColumns.forEach((column) => {\n const columnKey = trackColumn(column);\n record[columnKey] = columnDataCellsAccessor(columnKey, column);\n });\n\n return {\n record\n };\n }),\n shareReplay(1)\n );\n\n const _columnAccessorForColumn = (column: DbxTableColumn<C>): Observable<Maybe<DbxTableReaderColumnDataCellsAccessor>> => {\n const columnKey = trackColumn(column);\n return allColumnsData$.pipe(\n map((columnsData) => columnsData.record[columnKey]),\n shareReplay(1)\n );\n };\n\n const loadCellDataPairsForColumn = (column: DbxTableColumn<C>): Observable<DbxTableReaderCellDataPair<C, T, O>[]> => {\n return _columnAccessorForColumn(column).pipe(\n switchMap((accessor) => {\n // when visibility changes, the data will change to be an empty array\n return accessor ? accessor.cellData$ : of([]);\n }),\n shareReplay(1)\n );\n };\n\n const cellDataPairsForColumn = (column: DbxTableColumn<C>): Observable<DbxTableReaderCellDataPair<C, T, O>[]> => {\n return loadCellDataPairsForColumn(column);\n };\n\n const cellDataForColumn = (column: DbxTableColumn<C>): Observable<O[]> => {\n return cellDataPairsForColumn(column).pipe(\n map((pairs) => filterMaybeArrayValues(pairs.map((pair) => pair.value))),\n shareReplay(1)\n );\n };\n\n const cellDataPairForColumnAndItem = (column: DbxTableColumn<C>, item: T): Observable<Maybe<DbxTableReaderCellDataPair<C, T, O>>> => {\n const itemKey = trackItem(item);\n return _columnAccessorForColumn(column).pipe(\n switchMap((columnsData) => {\n return columnsData\n ? columnsData.cellDataAccessors$.pipe(\n switchMap((cellDataAccessor) => {\n const itemAccessor = cellDataAccessor.accessorsRecord[itemKey];\n const result: Observable<Maybe<DbxTableReaderCellDataPair<C, T, O>>> = itemAccessor ? itemAccessor : of(null);\n return result;\n })\n )\n : of(null);\n }),\n shareReplay(1)\n );\n };\n\n const cellDataForColumnAndItem = (column: DbxTableColumn<C>, item: T): Observable<Maybe<O>> => {\n return cellDataPairForColumnAndItem(column, item).pipe(map((pair) => pair?.value));\n };\n\n return {\n tableStore,\n delegate,\n cellDataPairsForColumn,\n cellDataForColumn,\n cellDataPairForColumnAndItem,\n cellDataForColumnAndItem\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["formatDate","importsAndExports","i1"],"mappings":"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"}
|