@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,5 +1,5 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { WorkUsingObservable, LoadingState } from '@dereekb/rxjs';
2
+ import { WorkUsingObservable, LoadingState, MaybeObservableOrValue } from '@dereekb/rxjs';
3
3
  import { type Maybe } from '@dereekb/util';
4
4
  import { Observable } from 'rxjs';
5
5
  import { DownloadTextContent } from './download.text';
@@ -19,19 +19,17 @@ export declare class DbxDownloadTextViewComponent extends AbstractSubscriptionDi
19
19
  readonly showTitle: import("@angular/core").InputSignal<boolean>;
20
20
  readonly showPreview: import("@angular/core").InputSignal<boolean>;
21
21
  readonly content: import("@angular/core").InputSignal<Maybe<DownloadTextContent>>;
22
- readonly contentState: import("@angular/core").InputSignal<Maybe<LoadingState<DownloadTextContent>>>;
22
+ readonly contentState: import("@angular/core").InputSignal<MaybeObservableOrValue<LoadingState<DownloadTextContent>>>;
23
+ readonly contentState$: Observable<Maybe<LoadingState<DownloadTextContent>>>;
24
+ readonly contentStateSignal: import("@angular/core").Signal<Maybe<LoadingState<DownloadTextContent>>>;
23
25
  readonly contentLoadingStateSignal: import("@angular/core").Signal<Maybe<LoadingState<DownloadTextContent>>>;
24
26
  readonly contentLoadingState$: Observable<Maybe<LoadingState<DownloadTextContent>>>;
25
27
  readonly content$: Observable<Maybe<DownloadTextContent>>;
26
- readonly contentData$: Observable<string | undefined>;
27
- readonly fileName$: Observable<string>;
28
- readonly fileUrl$: Observable<Maybe<SafeResourceUrl>>;
29
- readonly downloadReady$: Observable<boolean>;
30
28
  readonly contentSignal: import("@angular/core").Signal<Maybe<DownloadTextContent>>;
31
29
  readonly contentDataSignal: import("@angular/core").Signal<string | undefined>;
32
- readonly fileNameSignal: import("@angular/core").Signal<string | undefined>;
33
- readonly fileUrlSignal: import("@angular/core").Signal<Maybe<SafeResourceUrl>>;
34
- readonly downloadReadySignal: import("@angular/core").Signal<boolean | undefined>;
30
+ readonly fileUrlSignal: import("@angular/core").Signal<SafeResourceUrl | undefined>;
31
+ readonly fileNameSignal: import("@angular/core").Signal<string>;
32
+ readonly downloadReadySignal: import("@angular/core").Signal<boolean>;
35
33
  readonly context: import("@dereekb/rxjs").MutableLoadingStateContext<unknown, LoadingState<DownloadTextContent>, import("@dereekb/rxjs").LoadingContextEvent & LoadingState<DownloadTextContent>>;
36
34
  readonly handleCopyToClipboard: WorkUsingObservable;
37
35
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxDownloadTextViewComponent, never>;
@@ -36,6 +36,13 @@
36
36
  font-weight: 800;
37
37
  }
38
38
  }
39
+
40
+ // MARK: Full summary row
41
+ .dbx-table-view-full-summary-row-container > .mat-mdc-row {
42
+ border-top-color: var(--mat-table-row-item-outline-color, var(--mat-app-outline, rgba(0, 0, 0, 0.12)));
43
+ border-top-width: var(--mat-table-row-item-outline-width, 1px);
44
+ border-top-style: solid;
45
+ }
39
46
  }
40
47
 
41
48
  @mixin color($theme-config) {
@@ -56,6 +56,10 @@
56
56
  }
57
57
  }
58
58
 
59
+ .dbx-h100 {
60
+ height: 100%;
61
+ }
62
+
59
63
  .d-block,
60
64
  .dbx-block {
61
65
  display: block;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web",
3
- "version": "12.1.7",
3
+ "version": "12.1.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.0.0",
6
6
  "@angular/core": "^18.0.0",
@@ -35,7 +35,7 @@ export declare const DEFAULT_DBX_TABLE_DATE_RANGE_DAY_BUTTON_FORMAT = "MMM dd";
35
35
  * Cell input for a DateRangeDayDistanceInput value.
36
36
  */
37
37
  export declare class DbxTableDateRangeDayDistanceInputCellInputComponent implements OnInit, OnDestroy {
38
- readonly tableStore: DbxTableStore<DateRangeDayDistanceInput, unknown, unknown>;
38
+ readonly tableStore: DbxTableStore<DateRangeDayDistanceInput, unknown, unknown, unknown>;
39
39
  private readonly _syncSub;
40
40
  private readonly _valueSub;
41
41
  private readonly _pickerOpenedSignal;
@@ -8,6 +8,9 @@ export * from './table.column.header.component';
8
8
  export * from './table.column.footer.component';
9
9
  export * from './table.component';
10
10
  export * from './table.directive';
11
+ export * from './table.group.directive';
12
+ export * from './table.group.header.component';
13
+ export * from './table.group.footer.component';
11
14
  export * from './table.item.action.component';
12
15
  export * from './table.item.cell.component';
13
16
  export * from './table.item.directive';
@@ -1,7 +1,7 @@
1
1
  import { DbxTableStore } from './table.store';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class DbxTableActionCellComponent {
4
- readonly tableStore: DbxTableStore<any, any, any>;
4
+ readonly tableStore: DbxTableStore<any, any, any, any>;
5
5
  readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
6
6
  readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableActionCellComponent, never>;
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
4
4
  * A table header component used for injecting the input picker view.
5
5
  */
6
6
  export declare class DbxTableInputCellComponent {
7
- readonly tableStore: DbxTableStore<any, any, any>;
7
+ readonly tableStore: DbxTableStore<any, any, any, any>;
8
8
  readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
9
9
  readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableInputCellComponent, never>;
@@ -1,7 +1,7 @@
1
1
  import { DbxTableStore } from './table.store';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class DbxTableSummaryEndCellComponent {
4
- readonly tableStore: DbxTableStore<any, any, any>;
4
+ readonly tableStore: DbxTableStore<any, any, any, any>;
5
5
  readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
6
6
  readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableSummaryEndCellComponent, never>;
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
4
4
  * A table header component used for injecting the input picker view.
5
5
  */
6
6
  export declare class DbxTableSummaryStartCellComponent {
7
- readonly tableStore: DbxTableStore<any, any, any>;
7
+ readonly tableStore: DbxTableStore<any, any, any, any>;
8
8
  readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
9
9
  readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableSummaryStartCellComponent, never>;
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
6
6
  * Abstract directive that has a column input.
7
7
  */
8
8
  export declare class AbstractDbxTableColumnDirective<C> {
9
- readonly tableStore: DbxTableStore<unknown, C, unknown>;
9
+ readonly tableStore: DbxTableStore<unknown, C, unknown, unknown>;
10
10
  readonly column: import("@angular/core").InputSignal<Maybe<DbxTableColumn<C>>>;
11
11
  readonly column$: import("rxjs").Observable<DbxTableColumn<C>>;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxTableColumnDirective<any>, never>;
@@ -1,33 +1,56 @@
1
- import { TrackByFunction } from '@angular/core';
1
+ import { TrackByFunction, Signal } from '@angular/core';
2
2
  import { DbxTableStore } from './table.store';
3
+ import { LoadingState } from '@dereekb/rxjs';
3
4
  import { Observable } from 'rxjs';
5
+ import { DbxTableItemGroup } from './table';
4
6
  import * as i0 from "@angular/core";
5
7
  export declare const DBX_TABLE_ITEMS_COLUMN_NAME = "_items";
6
8
  export declare const DBX_TABLE_ACTIONS_COLUMN_NAME = "_actions";
9
+ export interface DbxTableViewGroupElement<T, G> {
10
+ readonly type: 'group';
11
+ readonly location: 'header' | 'footer';
12
+ readonly group: DbxTableItemGroup<T, G>;
13
+ }
14
+ export interface DbxTableViewItemElement<T, G> {
15
+ readonly type: 'item';
16
+ readonly item: T;
17
+ }
18
+ export type DbxTableViewElement<T, G> = DbxTableViewGroupElement<T, G> | DbxTableViewItemElement<T, G>;
19
+ export declare function isDbxTableViewGroupElement<T, G>(element: DbxTableViewElement<T, G>): element is DbxTableViewGroupElement<T, G>;
20
+ export declare function isDbxTableViewItemElement<T, G>(element: DbxTableViewElement<T, G>): element is DbxTableViewItemElement<T, G>;
7
21
  /**
8
22
  * A table with fixed content
9
23
  */
10
- export declare class DbxTableViewComponent<I, C, T> {
11
- readonly tableStore: DbxTableStore<I, C, T>;
24
+ export declare class DbxTableViewComponent<I, C, T, G = unknown> {
25
+ readonly tableStore: DbxTableStore<I, C, T, G>;
12
26
  readonly DEFAULT_TRACK_BY_FUNCTION: TrackByFunction<any>;
13
27
  readonly scrollDistance: import("@angular/core").InputSignal<number>;
14
28
  readonly throttleScroll: import("@angular/core").InputSignal<number>;
15
29
  readonly itemsColumnName = "_items";
16
30
  readonly actionsColumnName = "_actions";
17
- readonly innerColumns$: Observable<import("@dereekb/dbx-web/table").DbxTableColumn<C>[]>;
31
+ readonly innerColumns$: Observable<import("./table").DbxTableColumn<C>[]>;
18
32
  readonly innerColumnNames$: Observable<string[]>;
19
- readonly innerColumnsSignal: import("@angular/core").Signal<import("@dereekb/dbx-web/table").DbxTableColumn<C>[] | undefined>;
20
- readonly innerColumnNamesSignal: import("@angular/core").Signal<string[] | undefined>;
21
- readonly elements$: Observable<T[]>;
33
+ readonly innerColumnsSignal: Signal<import("./table").DbxTableColumn<C>[] | undefined>;
34
+ readonly innerColumnNamesSignal: Signal<string[] | undefined>;
35
+ readonly elementsState$: Observable<LoadingState<DbxTableViewElement<T, G>[]>>;
36
+ readonly elements$: Observable<DbxTableViewElement<T, G>[]>;
22
37
  readonly displayedColumns$: Observable<string[]>;
23
- readonly displayedColumnsSignal: import("@angular/core").Signal<string[]>;
38
+ readonly displayedColumnsSignal: Signal<string[]>;
39
+ readonly visibleColumnsSignal: Signal<number>;
24
40
  readonly trackByFunction$: Observable<TrackByFunction<T>>;
25
- readonly trackByFunctionSignal: import("@angular/core").Signal<TrackByFunction<any> | TrackByFunction<T>>;
26
- readonly context: import("@dereekb/rxjs").MutableLoadingStateContext<unknown, import("@dereekb/rxjs").LoadingState<import("@dereekb/dbx-web/table").DbxTableContextData<I, C, T>>, import("@dereekb/rxjs").LoadingContextEvent & import("@dereekb/rxjs").LoadingState<import("@dereekb/dbx-web/table").DbxTableContextData<I, C, T>>>;
27
- readonly dataLoadingContext: import("@dereekb/rxjs").MutableLoadingStateContext<unknown, import("@dereekb/rxjs").PageListLoadingState<T>, import("@dereekb/rxjs").LoadingContextEvent & import("@dereekb/rxjs").PageListLoadingState<T>>;
28
- readonly contextSignal: import("@angular/core").Signal<import("@dereekb/rxjs").LoadingState<import("@dereekb/dbx-web/table").DbxTableContextData<I, C, T>> | undefined>;
29
- readonly dataLoadingContextSignal: import("@angular/core").Signal<import("@dereekb/rxjs").PageListLoadingState<T> | undefined>;
41
+ readonly inputTrackByFunctionSignal: Signal<TrackByFunction<any> | TrackByFunction<T>>;
42
+ readonly trackElementByFunctionSignal: Signal<TrackByFunction<DbxTableViewElement<T, G>>>;
43
+ readonly context: import("@dereekb/rxjs").MutableLoadingStateContext<unknown, LoadingState<import("./table").DbxTableContextData<I, C, T>>, import("@dereekb/rxjs").LoadingContextEvent & LoadingState<import("./table").DbxTableContextData<I, C, T>>>;
44
+ readonly dataLoadingContext: import("@dereekb/rxjs").MutableLoadingStateContext<unknown, LoadingState<DbxTableViewElement<T, G>[]>, import("@dereekb/rxjs").LoadingContextEvent & LoadingState<DbxTableViewElement<T, G>[]>>;
45
+ readonly contextSignal: Signal<LoadingState<import("./table").DbxTableContextData<I, C, T>> | undefined>;
46
+ readonly dataLoadingContextSignal: Signal<LoadingState<DbxTableViewElement<T, G>[]> | undefined>;
47
+ readonly viewDelegateSignal: Signal<import("./table").DbxTableViewDelegate<I, C, T, G> | undefined>;
30
48
  onScrollDown(): void;
31
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableViewComponent<any, any, any>, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxTableViewComponent<any, any, any>, "dbx-table-view", never, { "scrollDistance": { "alias": "scrollDistance"; "required": false; "isSignal": true; }; "throttleScroll": { "alias": "throttleScroll"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
49
+ showItemRow(_: number, row: DbxTableViewElement<T, G>): boolean;
50
+ showGroupHeaderRow(_: number, row: DbxTableViewElement<T, G>): boolean;
51
+ showGroupFooterRow(_: number, row: DbxTableViewElement<T, G>): boolean;
52
+ readonly showFooterRowSignal: Signal<boolean | undefined>;
53
+ readonly showFullSummaryRowSignal: Signal<boolean>;
54
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableViewComponent<any, any, any, any>, never>;
55
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxTableViewComponent<any, any, any, any>, "dbx-table-view", never, { "scrollDistance": { "alias": "scrollDistance"; "required": false; "isSignal": true; }; "throttleScroll": { "alias": "throttleScroll"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
33
56
  }
@@ -1,5 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
- import { LoadingState, PageListLoadingState } from '@dereekb/rxjs';
2
+ import { LoadingState, ObservableOrValue, PageListLoadingState } from '@dereekb/rxjs';
3
3
  import { type Maybe } from '@dereekb/util';
4
4
  import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
5
5
  import { TrackByFunction } from '@angular/core';
@@ -42,14 +42,34 @@ export interface DbxTableColumn<C> {
42
42
  */
43
43
  readonly meta: C;
44
44
  }
45
+ export declare const NO_GROUPS_ID = "none";
46
+ /**
47
+ * Unique identifier used for grouping items together.
48
+ */
49
+ export type DbxTableGroupId = string;
50
+ export interface DbxTableItemGroup<T, G = unknown> {
51
+ readonly groupId: DbxTableGroupId;
52
+ readonly items: T[];
53
+ readonly meta: G;
54
+ }
55
+ export interface DefaultDbxTableItemGroup<T, G = unknown> extends DbxTableItemGroup<T, G> {
56
+ readonly groupId: typeof NO_GROUPS_ID;
57
+ readonly default: true;
58
+ }
59
+ export declare function defaultDbxTableItemGroup<T, G = unknown>(items: T[]): DefaultDbxTableItemGroup<T, G>;
60
+ export type DbxTableGroupByFunction<T, G = unknown> = (items: T[]) => ObservableOrValue<DbxTableItemGroup<T, G>[]>;
45
61
  /**
46
62
  * Delegate used for generating view configurations given the input.
47
63
  */
48
- export interface DbxTableViewDelegate<I = unknown, C = unknown, T = unknown> {
64
+ export interface DbxTableViewDelegate<I = unknown, C = unknown, T = unknown, G = unknown> {
49
65
  /**
50
66
  * Track by
51
67
  */
52
68
  readonly trackBy?: TrackByFunction<T>;
69
+ /**
70
+ * If provided, will group items together
71
+ */
72
+ readonly groupBy?: DbxTableGroupByFunction<T, G>;
53
73
  /**
54
74
  * Input picker view configuration
55
75
  */
@@ -59,13 +79,33 @@ export interface DbxTableViewDelegate<I = unknown, C = unknown, T = unknown> {
59
79
  */
60
80
  readonly actionHeader?: Maybe<DbxInjectionComponentConfig<any>>;
61
81
  /**
62
- * Summary row header view configuration
82
+ * Full-width summary row view configuration.
83
+ */
84
+ readonly fullSummaryRow?: Maybe<DbxInjectionComponentConfig<any>>;
85
+ /**
86
+ * Summary row header view configuration.
63
87
  */
64
88
  readonly summaryRowHeader?: Maybe<DbxInjectionComponentConfig<any>>;
65
89
  /**
66
90
  * Summary row end view configuration
67
91
  */
68
92
  readonly summaryRowEnd?: Maybe<DbxInjectionComponentConfig<any>>;
93
+ /**
94
+ * Group row header view configuration for a specific group.
95
+ *
96
+ * If this function returns undefined, the group row will not be shown.
97
+ *
98
+ * @param group
99
+ */
100
+ groupHeader?(group: DbxTableItemGroup<T, G>): Maybe<DbxInjectionComponentConfig<any>>;
101
+ /**
102
+ * Group row footer view configuration for a specific group.
103
+ *
104
+ * If this function returns undefined, the group row will not be shown.
105
+ *
106
+ * @param group
107
+ */
108
+ groupFooter?(group: DbxTableItemGroup<T, G>): Maybe<DbxInjectionComponentConfig<any>>;
69
109
  /**
70
110
  * Column header view configuration for a specific column.
71
111
  *
@@ -73,25 +113,25 @@ export interface DbxTableViewDelegate<I = unknown, C = unknown, T = unknown> {
73
113
  */
74
114
  columnHeader?(column: DbxTableColumn<C>): Maybe<DbxInjectionComponentConfig<any>>;
75
115
  /**
76
- * Column footer view configuration for a specific column.
116
+ * Optional column footer view configuration for a specific column.
77
117
  *
78
118
  * @param item
79
119
  */
80
120
  columnFooter?(column: DbxTableColumn<C>): Maybe<DbxInjectionComponentConfig<any>>;
81
121
  /**
82
- * Item header view configuration for a specific item.
122
+ * Item header view (left-most column for an item row) configuration for a specific item.
83
123
  *
84
124
  * @param item
85
125
  */
86
126
  itemHeader(item: T): Maybe<DbxInjectionComponentConfig<any>>;
87
127
  /**
88
- * Item cell view configuration for a specific item and column.
128
+ * Item cell view (middle columns for an item row) configuration for a specific item and column.
89
129
  *
90
130
  * @param item
91
131
  */
92
132
  itemCell(column: DbxTableColumn<C>, item: T): Maybe<DbxInjectionComponentConfig<any>>;
93
133
  /**
94
- * Item action view configuration for a specific item.
134
+ * Item action view (right-most column for an item row) configuration for a specific item.
95
135
  *
96
136
  * @param item
97
137
  */
@@ -6,9 +6,9 @@ import * as i0 from "@angular/core";
6
6
  * Directive for providing and configuring a DbxTableStore
7
7
  */
8
8
  export declare class DbxTableDirective<I, C, T> {
9
- readonly tableStore: DbxTableStore<I, C, T>;
9
+ readonly tableStore: DbxTableStore<I, C, T, unknown>;
10
10
  readonly dbxTableInput: import("@angular/core").InputSignal<Maybe<I>>;
11
- readonly dbxTableViewDelegate: import("@angular/core").InputSignal<Maybe<DbxTableViewDelegate<I, C, T>>>;
11
+ readonly dbxTableViewDelegate: import("@angular/core").InputSignal<Maybe<DbxTableViewDelegate<I, C, T, unknown>>>;
12
12
  readonly dbxTableDataDelegate: import("@angular/core").InputSignal<Maybe<DbxTableContextDataDelegate<I, C, T>>>;
13
13
  protected readonly _setOnTableStoreEffect: import("@angular/core").EffectRef;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableDirective<any, any, any>, never>;
@@ -0,0 +1,12 @@
1
+ import { DbxTableStore } from './table.store';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * A table header component used for injecting the input picker view.
5
+ */
6
+ export declare class DbxTableFullSummaryRowComponent {
7
+ readonly tableStore: DbxTableStore<any, any, any, any>;
8
+ readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
9
+ readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableFullSummaryRowComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxTableFullSummaryRowComponent, "dbx-table-full-summary-row", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,14 @@
1
+ import { DbxTableStore } from './table.store';
2
+ import { type Maybe } from '@dereekb/util';
3
+ import { DbxTableItemGroup } from './table';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Abstract directive that has an element input.
7
+ */
8
+ export declare abstract class AbstractDbxTableGroupDirective<T, C = unknown, G = unknown> {
9
+ readonly tableStore: DbxTableStore<unknown, C, T, G>;
10
+ readonly group: import("@angular/core").InputSignal<Maybe<DbxTableItemGroup<T, G>>>;
11
+ readonly group$: import("rxjs").Observable<DbxTableItemGroup<T, G>>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxTableGroupDirective<any, any, any>, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxTableGroupDirective<any, any, any>, never, never, { "group": { "alias": "group"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
14
+ }
@@ -0,0 +1,9 @@
1
+ import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
2
+ import { AbstractDbxTableGroupDirective } from './table.group.directive';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DbxTableGroupFooterComponent<T> extends AbstractDbxTableGroupDirective<T> {
5
+ readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<DbxInjectionComponentConfig<unknown>>>;
6
+ readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<DbxInjectionComponentConfig<unknown>>>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableGroupFooterComponent<any>, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxTableGroupFooterComponent<any>, "dbx-table-group-footer", never, {}, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
2
+ import { AbstractDbxTableGroupDirective } from './table.group.directive';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DbxTableGroupHeaderComponent<T> extends AbstractDbxTableGroupDirective<T> {
5
+ readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<DbxInjectionComponentConfig<unknown>>>;
6
+ readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<DbxInjectionComponentConfig<unknown>>>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableGroupHeaderComponent<any>, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxTableGroupHeaderComponent<any>, "dbx-table-group-header", never, {}, {}, never, never, true, never>;
9
+ }
@@ -1,7 +1,7 @@
1
- import { AbstractDbxTableElementDirective } from './table.item.directive';
1
+ import { AbstractDbxTableItemDirective } from './table.item.directive';
2
2
  import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
3
3
  import * as i0 from "@angular/core";
4
- export declare class DbxTableItemActionComponent<T> extends AbstractDbxTableElementDirective<T> {
4
+ export declare class DbxTableItemActionComponent<T> extends AbstractDbxTableItemDirective<T> {
5
5
  readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<DbxInjectionComponentConfig<unknown>>>;
6
6
  readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<DbxInjectionComponentConfig<unknown>>>;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableItemActionComponent<any>, never>;
@@ -1,8 +1,8 @@
1
1
  import { type Maybe } from '@dereekb/util';
2
- import { AbstractDbxTableElementDirective } from './table.item.directive';
2
+ import { AbstractDbxTableItemDirective } from './table.item.directive';
3
3
  import { DbxTableColumn } from './table';
4
4
  import * as i0 from "@angular/core";
5
- export declare class DbxTableItemCellComponent<T, C> extends AbstractDbxTableElementDirective<T, C> {
5
+ export declare class DbxTableItemCellComponent<T, C> extends AbstractDbxTableItemDirective<T, C> {
6
6
  readonly column: import("@angular/core").InputSignal<Maybe<DbxTableColumn<C>>>;
7
7
  readonly config$: import("rxjs").Observable<Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
8
8
  readonly configSignal: import("@angular/core").Signal<Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
@@ -4,10 +4,10 @@ import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Abstract directive that has an element input.
6
6
  */
7
- export declare abstract class AbstractDbxTableElementDirective<T, C = unknown> {
8
- readonly tableStore: DbxTableStore<unknown, C, T>;
9
- readonly element: import("@angular/core").InputSignal<Maybe<T>>;
10
- readonly element$: import("rxjs").Observable<T>;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxTableElementDirective<any, any>, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxTableElementDirective<any, any>, never, never, { "element": { "alias": "element"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
7
+ export declare abstract class AbstractDbxTableItemDirective<T, C = unknown> {
8
+ readonly tableStore: DbxTableStore<unknown, C, T, unknown>;
9
+ readonly item: import("@angular/core").InputSignal<Maybe<T>>;
10
+ readonly item$: import("rxjs").Observable<T>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxTableItemDirective<any, any>, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxTableItemDirective<any, any>, never, never, { "item": { "alias": "item"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
13
13
  }
@@ -1,6 +1,6 @@
1
- import { AbstractDbxTableElementDirective } from './table.item.directive';
1
+ import { AbstractDbxTableItemDirective } from './table.item.directive';
2
2
  import * as i0 from "@angular/core";
3
- export declare class DbxTableItemHeaderComponent<T> extends AbstractDbxTableElementDirective<T> {
3
+ export declare class DbxTableItemHeaderComponent<T> extends AbstractDbxTableItemDirective<T> {
4
4
  readonly config$: import("rxjs").Observable<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
5
5
  readonly configSignal: import("@angular/core").Signal<import("dist/packages/util/src").Maybe<import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>>>;
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableItemHeaderComponent<any>, never>;
@@ -1,20 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./table.directive";
3
3
  import * as i2 from "./table.component";
4
- import * as i3 from "./table.column.header.component";
5
- import * as i4 from "./table.column.footer.component";
6
- import * as i5 from "./table.cell.input.component";
7
- import * as i6 from "./table.cell.action.component";
8
- import * as i7 from "./table.item.cell.component";
9
- import * as i8 from "./table.item.header.component";
10
- import * as i9 from "./table.item.action.component";
11
- import * as i10 from "./table.cell.summarystart.component";
12
- import * as i11 from "./table.cell.summaryend.component";
13
- /**
14
- * @deprecated import DbxTableDirective and DbxTableViewComponent directly instead.
15
- */
16
4
  export declare class DbxTableModule {
17
5
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableModule, never>;
18
- static ɵmod: i0.ɵɵNgModuleDeclaration<DbxTableModule, never, [typeof i1.DbxTableDirective, typeof i2.DbxTableViewComponent, typeof i3.DbxTableColumnHeaderComponent, typeof i4.DbxTableColumnFooterComponent, typeof i5.DbxTableInputCellComponent, typeof i6.DbxTableActionCellComponent, typeof i7.DbxTableItemCellComponent, typeof i8.DbxTableItemHeaderComponent, typeof i9.DbxTableItemActionComponent, typeof i10.DbxTableSummaryStartCellComponent, typeof i11.DbxTableSummaryEndCellComponent], [typeof i1.DbxTableDirective, typeof i2.DbxTableViewComponent, typeof i3.DbxTableColumnHeaderComponent, typeof i4.DbxTableColumnFooterComponent, typeof i5.DbxTableInputCellComponent, typeof i6.DbxTableActionCellComponent, typeof i7.DbxTableItemCellComponent, typeof i8.DbxTableItemHeaderComponent, typeof i9.DbxTableItemActionComponent, typeof i10.DbxTableSummaryStartCellComponent, typeof i11.DbxTableSummaryEndCellComponent]>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxTableModule, never, [typeof i1.DbxTableDirective, typeof i2.DbxTableViewComponent], [typeof i1.DbxTableDirective, typeof i2.DbxTableViewComponent]>;
19
7
  static ɵinj: i0.ɵɵInjectorDeclaration<DbxTableModule>;
20
8
  }
@@ -2,9 +2,9 @@ import { LoadingState, PageListLoadingState } from '@dereekb/rxjs';
2
2
  import { type Maybe } from '@dereekb/util';
3
3
  import { ComponentStore } from '@ngrx/component-store';
4
4
  import { Observable } from 'rxjs';
5
- import { DbxTableColumn, DbxTableContextData, DbxTableContextDataDelegate, DbxTableViewDelegate } from './table';
5
+ import { DbxTableColumn, DbxTableContextData, DbxTableContextDataDelegate, DbxTableItemGroup, DbxTableViewDelegate } from './table';
6
6
  import * as i0 from "@angular/core";
7
- export interface DbxTableStoreState<I, C, T> {
7
+ export interface DbxTableStoreState<I, C, T, G> {
8
8
  /**
9
9
  * Contextual input that is passed to the data delegate.
10
10
  */
@@ -16,23 +16,25 @@ export interface DbxTableStoreState<I, C, T> {
16
16
  /**
17
17
  * Delegate used for retrieving view configurations.
18
18
  */
19
- readonly viewDelegate: Maybe<DbxTableViewDelegate<I, C, T>>;
19
+ readonly viewDelegate: Maybe<DbxTableViewDelegate<I, C, T, G>>;
20
20
  }
21
- export declare class DbxTableStore<I = unknown, C = unknown, T = unknown> extends ComponentStore<DbxTableStoreState<I, C, T>> {
21
+ export declare class DbxTableStore<I = unknown, C = unknown, T = unknown, G = unknown> extends ComponentStore<DbxTableStoreState<I, C, T, G>> {
22
22
  constructor();
23
23
  readonly loadMore: (observableOrValue?: void | Observable<void> | undefined) => import("rxjs").Subscription;
24
24
  readonly input$: Observable<Maybe<I>>;
25
25
  readonly dataDelegate$: Observable<Maybe<DbxTableContextDataDelegate<I, C, T>>>;
26
- readonly currentViewDelegate$: Observable<Maybe<DbxTableViewDelegate<I, C, T>>>;
27
- readonly viewDelegate$: Observable<DbxTableViewDelegate<I, C, T>>;
26
+ readonly currentViewDelegate$: Observable<Maybe<DbxTableViewDelegate<I, C, T, G>>>;
27
+ readonly viewDelegate$: Observable<DbxTableViewDelegate<I, C, T, G>>;
28
28
  readonly dataState$: Observable<LoadingState<DbxTableContextData<I, C, T>>>;
29
29
  readonly data$: Observable<DbxTableContextData<I, C, T>>;
30
30
  readonly columns$: Observable<DbxTableColumn<C>[]>;
31
31
  readonly itemsState$: Observable<PageListLoadingState<T>>;
32
32
  readonly items$: Observable<T[]>;
33
+ readonly groupsState$: Observable<LoadingState<DbxTableItemGroup<T, G>[]>>;
34
+ readonly groups$: Observable<DbxTableItemGroup<T, G>[]>;
33
35
  readonly setInput: (() => void) | ((observableOrValue: Maybe<I> | Observable<Maybe<I>>) => import("rxjs").Subscription) | (I extends void ? () => void : (observableOrValue: Maybe<I> | Observable<Maybe<I>>) => import("rxjs").Subscription);
34
36
  readonly setDataDelegate: (() => void) | ((observableOrValue: Maybe<DbxTableContextDataDelegate<I, C, T>> | Observable<Maybe<DbxTableContextDataDelegate<I, C, T>>>) => import("rxjs").Subscription);
35
- readonly setViewDelegate: (() => void) | ((observableOrValue: Maybe<DbxTableViewDelegate<I, C, T>> | Observable<Maybe<DbxTableViewDelegate<I, C, T>>>) => import("rxjs").Subscription);
36
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableStore<any, any, any>, never>;
37
- static ɵprov: i0.ɵɵInjectableDeclaration<DbxTableStore<any, any, any>>;
37
+ readonly setViewDelegate: (() => void) | ((observableOrValue: Maybe<DbxTableViewDelegate<I, C, T, G>> | Observable<Maybe<DbxTableViewDelegate<I, C, T, G>>>) => import("rxjs").Subscription);
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxTableStore<any, any, any, any>, never>;
39
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxTableStore<any, any, any, any>>;
38
40
  }