@dereekb/dbx-web 12.1.7 → 12.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/esm2022/lib/extension/download/text/download.text.component.mjs +18 -14
  2. package/esm2022/table/lib/index.mjs +4 -1
  3. package/esm2022/table/lib/table.cell.action.component.mjs +2 -2
  4. package/esm2022/table/lib/table.component.mjs +99 -8
  5. package/esm2022/table/lib/table.fullsummaryrow.component.mjs +34 -0
  6. package/esm2022/table/lib/table.group.directive.mjs +20 -0
  7. package/esm2022/table/lib/table.group.footer.component.mjs +35 -0
  8. package/esm2022/table/lib/table.group.header.component.mjs +35 -0
  9. package/esm2022/table/lib/table.item.action.component.mjs +4 -4
  10. package/esm2022/table/lib/table.item.cell.component.mjs +4 -4
  11. package/esm2022/table/lib/table.item.directive.mjs +7 -7
  12. package/esm2022/table/lib/table.item.header.component.mjs +4 -4
  13. package/esm2022/table/lib/table.mjs +10 -2
  14. package/esm2022/table/lib/table.module.mjs +4 -16
  15. package/esm2022/table/lib/table.store.mjs +16 -2
  16. package/fesm2022/dereekb-dbx-web-table.mjs +232 -27
  17. package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
  18. package/fesm2022/dereekb-dbx-web.mjs +15 -11
  19. package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
  20. package/lib/extension/download/text/download.text.component.d.ts +7 -9
  21. package/lib/extension/table/_table.scss +7 -0
  22. package/lib/layout/style/_style.scss +4 -0
  23. package/package.json +1 -1
  24. package/table/lib/date/daterange.table.cell.input.component.d.ts +1 -1
  25. package/table/lib/index.d.ts +3 -0
  26. package/table/lib/table.cell.action.component.d.ts +1 -1
  27. package/table/lib/table.cell.input.component.d.ts +1 -1
  28. package/table/lib/table.cell.summaryend.component.d.ts +1 -1
  29. package/table/lib/table.cell.summarystart.component.d.ts +1 -1
  30. package/table/lib/table.column.directive.d.ts +1 -1
  31. package/table/lib/table.component.d.ts +38 -15
  32. package/table/lib/table.d.ts +47 -7
  33. package/table/lib/table.directive.d.ts +2 -2
  34. package/table/lib/table.fullsummaryrow.component.d.ts +12 -0
  35. package/table/lib/table.group.directive.d.ts +14 -0
  36. package/table/lib/table.group.footer.component.d.ts +9 -0
  37. package/table/lib/table.group.header.component.d.ts +9 -0
  38. package/table/lib/table.item.action.component.d.ts +2 -2
  39. package/table/lib/table.item.cell.component.d.ts +2 -2
  40. package/table/lib/table.item.directive.d.ts +6 -6
  41. package/table/lib/table.item.header.component.d.ts +2 -2
  42. package/table/lib/table.module.d.ts +1 -13
  43. package/table/lib/table.store.d.ts +11 -9
@@ -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.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.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.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/dereekb-dbx-web-table.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { DbxInjectionComponentConfig, DbxInjectionComponentConfigFactory } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { 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\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 { Injectable } from '@angular/core';\nimport { beginLoading, filterMaybe, LoadingState, PageListLoadingState, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Observable, distinctUntilChanged, first, map, shareReplay, switchMap, tap, combineLatest, of } from 'rxjs';\nimport { DbxTableColumn, DbxTableContextData, DbxTableContextDataDelegate, DbxTableViewDelegate } from './table';\n\nexport interface DbxTableStoreState<I, C, T> {\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>>;\n}\n\n@Injectable()\nexport class DbxTableStore<I = unknown, C = unknown, T = unknown> extends ComponentStore<DbxTableStoreState<I, C, T>> {\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\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 // 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>>) => ({ ...state, viewDelegate }));\n}\n","import { ChangeDetectionStrategy, Component, Injectable, OnDestroy, OnInit, inject, signal, computed } from '@angular/core';\nimport { DateRangeDayDistanceInput, isSameDateDay } from '@dereekb/date';\nimport { DbxTableStore } from '../table.store';\nimport { MatDateRangeSelectionStrategy, DateRange, MAT_DATE_RANGE_SELECTION_STRATEGY, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter } from '@angular/material/core';\nimport { 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 { 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 implements OnInit, OnDestroy {\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 ngOnInit(): void {\n this._syncSub.subscription = 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 this._valueSub.subscription = 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 ngOnDestroy(): void {\n this._syncSub.destroy();\n this._valueSub.destroy();\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\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.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-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 { 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 { 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';\n\n/**\n * Abstract directive that has an element input.\n */\n@Directive()\nexport abstract class AbstractDbxTableElementDirective<T, C = unknown> {\n readonly tableStore = inject(DbxTableStore<unknown, C, T>);\n\n readonly element = input<Maybe<T>>();\n readonly element$ = toObservable(this.element).pipe(filterMaybe(), distinctUntilChanged());\n}\n","import { filterMaybe, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged, switchMap, combineLatest } from 'rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { AbstractDbxTableElementDirective } from './table.item.directive';\nimport { 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 AbstractDbxTableElementDirective<T, C> {\n readonly column = input<Maybe<DbxTableColumn<C>>>();\n\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => combineLatest([toObservable(this.column).pipe(filterMaybe()), this.element$]).pipe(map(([column, element]) => viewDelegate.itemCell(column, element)))),\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, switchMap } from 'rxjs';\nimport { AbstractDbxTableElementDirective } 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 AbstractDbxTableElementDirective<T> {\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => this.element$.pipe(map((x) => viewDelegate.itemHeader(x)))),\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 { AbstractDbxTableElementDirective } from './table.item.directive';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { 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 AbstractDbxTableElementDirective<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.element$.pipe(map((x) => itemAction(x)));\n }\n\n return obs;\n }),\n maybeValueFromObservableOrValue(),\n distinctUntilChanged()\n );\n\n readonly configSignal = toSignal(this.config$);\n}\n","import { ChangeDetectionStrategy, Component, TrackByFunction, inject, computed, input } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxTableStore } from './table.store';\nimport { loadingStateContext } from '@dereekb/rxjs';\nimport { shareReplay, map, Observable } from 'rxjs';\nimport { DbxLoadingComponent } from '@dereekb/dbx-web';\nimport { InfiniteScrollDirective } from 'ngx-infinite-scroll';\nimport { 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';\n\nexport const DBX_TABLE_ITEMS_COLUMN_NAME = '_items';\nexport const DBX_TABLE_ACTIONS_COLUMN_NAME = '_actions';\n\n/**\n * A table with fixed content\n */\n@Component({\n selector: 'dbx-table-view',\n templateUrl: './table.component.html',\n imports: [DbxLoadingComponent, InfiniteScrollDirective, MatTableModule, DbxTableInputCellComponent, DbxTableItemHeaderComponent, DbxTableItemCellComponent, DbxTableItemActionComponent, DbxTableActionCellComponent, DbxTableColumnHeaderComponent, DbxTableColumnFooterComponent, DbxTableSummaryStartCellComponent, DbxTableSummaryEndCellComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTableViewComponent<I, C, T> {\n readonly tableStore = inject(DbxTableStore<I, C, T>);\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 elements$ = this.tableStore.items$;\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 trackByFunctionSignal = toSignal(this.trackByFunction$, { initialValue: this.DEFAULT_TRACK_BY_FUNCTION });\n\n readonly context = loadingStateContext({ obs: this.tableStore.dataState$ });\n readonly dataLoadingContext = loadingStateContext({ obs: this.tableStore.itemsState$ });\n\n readonly contextSignal = toSignal(this.context.state$);\n readonly dataLoadingContextSignal = toSignal(this.dataLoadingContext.state$);\n\n onScrollDown(): void {\n this.tableStore.loadMore();\n }\n}\n","<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elements$\" [trackBy]=\"trackByFunctionSignal() || DEFAULT_TRACK_BY_FUNCTION\">\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th 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 [element]=\"element\"></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 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 [element]=\"element\" [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 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 [element]=\"element\"></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: displayedColumnsSignal()\"></tr>\n\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n</dbx-loading>\n","import { Directive, inject, input, effect } from '@angular/core';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxTableContextDataDelegate, 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 { DbxTableItemHeaderComponent } from './table.item.header.component';\nimport { DbxTableViewComponent } from './table.component';\nimport { DbxTableInputCellComponent } from './table.cell.input.component';\nimport { DbxTableSummaryEndCellComponent } from './table.cell.summaryend.component';\nimport { DbxTableSummaryStartCellComponent } from './table.cell.summarystart.component';\nimport { DbxTableItemActionComponent } from './table.item.action.component';\nimport { DbxTableActionCellComponent } from './table.cell.action.component';\nimport { DbxTableItemCellComponent } from './table.item.cell.component';\nimport { DbxTableColumnHeaderComponent } from './table.column.header.component';\nimport { DbxTableDirective } from './table.directive';\nimport { DbxTableColumnFooterComponent } from './table.column.footer.component';\n\nconst importsAndExports = [DbxTableDirective, DbxTableViewComponent, DbxTableColumnHeaderComponent, DbxTableColumnFooterComponent, DbxTableInputCellComponent, DbxTableActionCellComponent, DbxTableItemCellComponent, DbxTableItemHeaderComponent, DbxTableItemActionComponent, DbxTableSummaryStartCellComponent, DbxTableSummaryEndCellComponent];\n\n/**\n * @deprecated import DbxTableDirective and DbxTableViewComponent directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTableModule {}\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.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/dereekb-dbx-web-table.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { DbxInjectionComponentConfig, DbxInjectionComponentConfigFactory } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { 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\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 { Observable } from 'rxjs';\nimport { LoadingState, ObservableOrValue, PageListLoadingState } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { 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\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 */\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","import { Injectable } from '@angular/core';\nimport { asObservable, beginLoading, filterMaybe, LoadingState, mapLoadingStateValueWithOperator, PageListLoadingState, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Observable, distinctUntilChanged, first, map, shareReplay, switchMap, tap, combineLatest, of } from 'rxjs';\nimport { DbxTableColumn, DbxTableContextData, DbxTableContextDataDelegate, DbxTableItemGroup, 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\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, OnDestroy, OnInit, inject, signal, computed } from '@angular/core';\nimport { DateRangeDayDistanceInput, isSameDateDay } from '@dereekb/date';\nimport { DbxTableStore } from '../table.store';\nimport { MatDateRangeSelectionStrategy, DateRange, MAT_DATE_RANGE_SELECTION_STRATEGY, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter } from '@angular/material/core';\nimport { 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 { 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 implements OnInit, OnDestroy {\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 ngOnInit(): void {\n this._syncSub.subscription = 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 this._valueSub.subscription = 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 ngOnDestroy(): void {\n this._syncSub.destroy();\n this._valueSub.destroy();\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\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 { 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 { 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';\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).pipe(filterMaybe(), distinctUntilChanged());\n}\n","import { filterMaybe, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { map, distinctUntilChanged, switchMap, combineLatest } from 'rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { AbstractDbxTableItemDirective } from './table.item.directive';\nimport { 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\n readonly config$ = this.tableStore.viewDelegate$.pipe(\n switchMap((viewDelegate) => combineLatest([toObservable(this.column).pipe(filterMaybe()), this.item$]).pipe(map(([column, item]) => viewDelegate.itemCell(column, item)))),\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, 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) => viewDelegate.itemHeader(x)))),\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 { AbstractDbxTableItemDirective } from './table.item.directive';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { 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) => itemAction(x)));\n }\n\n return obs;\n }),\n maybeValueFromObservableOrValue(),\n distinctUntilChanged()\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 { 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 { MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { DbxInjectionComponent, 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 { MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { DbxInjectionComponent, 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, TrackByFunction, inject, computed, input, Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxTableStore } from './table.store';\nimport { LoadingState, loadingStateContext, mapLoadingStateValueWithOperator, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { shareReplay, map, Observable, switchMap } from 'rxjs';\nimport { DbxLoadingComponent } from '@dereekb/dbx-web';\nimport { InfiniteScrollDirective } from 'ngx-infinite-scroll';\nimport { 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 { DbxTableItemGroup, 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';\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\nexport function isDbxTableViewGroupElement<T, G>(element: DbxTableViewElement<T, G>): element is DbxTableViewGroupElement<T, G> {\n return element.type === 'group';\n}\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: [DbxLoadingComponent, NgClass, InfiniteScrollDirective, MatTableModule, DbxTableInputCellComponent, DbxTableItemHeaderComponent, DbxTableItemCellComponent, DbxTableItemActionComponent, DbxTableActionCellComponent, DbxTableColumnHeaderComponent, DbxTableColumnFooterComponent, DbxTableSummaryStartCellComponent, DbxTableSummaryEndCellComponent, DbxTableGroupHeaderComponent, DbxTableGroupFooterComponent, DbxTableFullSummaryRowComponent],\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\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\n .map((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 .flat();\n })\n );\n })\n ),\n shareReplay(1)\n );\n\n readonly elements$ = this.elementsState$.pipe(valueFromFinishedLoadingState([]), shareReplay(1));\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 visibleColumnsSignal = computed(() => {\n const displayedColumns = this.displayedColumnsSignal();\n\n // TODO: Every time the table is rendered/size changes/etc we should recompute width of the first n columns that span the viewport\n // in order to calculate a colspan for the group header/footer that is not greater than span of the table for a given view size\n // I.E. if the screen shrinks to only show the first 4 columns, then the colspan should be 4.\n\n // as a temporary measure, we just show half the columns\n\n return displayedColumns.length / 2;\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\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 const showFooterRow = viewDelegate && (viewDelegate.summaryRowHeader != null || viewDelegate.columnFooter != null || viewDelegate.summaryRowEnd != null);\n return showFooterRow;\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 <section class=\"dbx-table-view\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elements$\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"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]=\"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 mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n @if (element.item) {\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n }\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 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 @if (element.item) {\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n }\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 mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n @if (element.item) {\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n }\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</dbx-loading>\n","import { Directive, inject, input, effect } from '@angular/core';\nimport { DbxTableStore } from './table.store';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxTableContextDataDelegate, 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["formatDate","importsAndExports","i1"],"mappings":"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"}
@@ -5116,9 +5116,11 @@ class DbxDownloadTextViewComponent extends AbstractSubscriptionDirective {
5116
5116
  showPreview = input(true);
5117
5117
  content = input(undefined);
5118
5118
  contentState = input(undefined);
5119
+ contentState$ = toObservable(this.contentState).pipe(maybeValueFromObservableOrValue(), shareReplay(1));
5120
+ contentStateSignal = toSignal(this.contentState$);
5119
5121
  contentLoadingStateSignal = computed(() => {
5120
5122
  const content = this.content();
5121
- const contentState = this.contentState();
5123
+ const contentState = this.contentStateSignal();
5122
5124
  let result;
5123
5125
  if (contentState) {
5124
5126
  result = contentState;
@@ -5137,22 +5139,24 @@ class DbxDownloadTextViewComponent extends AbstractSubscriptionDirective {
5137
5139
  return of(undefined);
5138
5140
  }
5139
5141
  }));
5140
- contentData$ = this.content$.pipe(map((x) => x?.content));
5141
- fileName$ = this.content$.pipe(map((x) => x?.name ?? 'File'), shareReplay(1));
5142
- fileUrl$ = this.content$.pipe(map((content) => {
5142
+ contentSignal = toSignal(this.content$);
5143
+ contentDataSignal = computed(() => this.contentSignal()?.content);
5144
+ fileUrlSignal = computed(() => {
5145
+ const content = this.contentSignal();
5143
5146
  let fileUrl = undefined;
5144
5147
  if (content) {
5145
5148
  const blob = new Blob([content.content], { type: content.mimeType ?? 'application/octet-stream' });
5146
5149
  fileUrl = this._sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));
5147
5150
  }
5148
5151
  return fileUrl;
5149
- }), shareReplay(1));
5150
- downloadReady$ = combineLatest([toObservable(this.downloadButton), this.fileName$, this.fileUrl$]).pipe(map(([button, name, url]) => Boolean(button && name && url)), distinctUntilChanged(), shareReplay(1));
5151
- contentSignal = toSignal(this.content$);
5152
- contentDataSignal = toSignal(this.contentData$);
5153
- fileNameSignal = toSignal(this.fileName$);
5154
- fileUrlSignal = toSignal(this.fileUrl$);
5155
- downloadReadySignal = toSignal(this.downloadReady$);
5152
+ });
5153
+ fileNameSignal = computed(() => this.contentSignal()?.name ?? 'File');
5154
+ downloadReadySignal = computed(() => {
5155
+ const downloadButton = this.downloadButton();
5156
+ const fileName = this.fileNameSignal();
5157
+ const fileUrl = this.fileUrlSignal();
5158
+ return Boolean(downloadButton && fileName && fileUrl);
5159
+ });
5156
5160
  context = loadingStateContext({ obs: this.contentLoadingState$ });
5157
5161
  handleCopyToClipboard = () => {
5158
5162
  return this.content$.pipe(first(), switchMap((downloadTextContent) => {