@elderbyte/ngx-starter 19.4.2 → 19.5.0

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 (20) hide show
  1. package/fesm2022/elderbyte-ngx-starter.mjs +1364 -1246
  2. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  3. package/lib/common/data/data-context/data-context-continuable-base.d.ts +3 -2
  4. package/lib/common/data/data-context/data-context-continuable-paged.d.ts +0 -1
  5. package/lib/common/data/data-context/data-context-continuable-token.d.ts +2 -0
  6. package/lib/common/data/data-context/data-context.d.ts +6 -0
  7. package/lib/common/data/data-context/mat-table-data-context-binding.d.ts +6 -1
  8. package/lib/common/data/token-chunk-request.d.ts +12 -1
  9. package/lib/components/data-view/base/elder-data-view-base.d.ts +5 -16
  10. package/lib/components/data-view/common/elder-continuator/elder-continuator.component.d.ts +14 -0
  11. package/lib/components/data-view/common/public_api.d.ts +1 -0
  12. package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +3 -1
  13. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +7 -5
  14. package/lib/components/data-view/table/columns/elder-table-selection-cell/elder-table-selection-cell.component.d.ts +30 -0
  15. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +7 -5
  16. package/lib/components/data-view/table/elder-table-row.directive.d.ts +23 -12
  17. package/lib/components/data-view/table/elder-table.module.d.ts +1 -0
  18. package/package.json +1 -1
  19. package/src/lib/components/data-view/common/elder-continuator/elder-continuator.component.scss +17 -0
  20. package/src/lib/components/data-view/table/columns/elder-table-selection-cell/elder-table-selection-cell.component.scss +0 -0
@@ -15,7 +15,7 @@ export declare abstract class DataContextContinuableBase<T> extends DataContextB
15
15
  * *
16
16
  **************************************************************************/
17
17
  private readonly cblogger;
18
- private _chunkSize;
18
+ private readonly _chunkSize$;
19
19
  /***************************************************************************
20
20
  * *
21
21
  * Constructors *
@@ -28,7 +28,8 @@ export declare abstract class DataContextContinuableBase<T> extends DataContextB
28
28
  * *
29
29
  **************************************************************************/
30
30
  loadAll(sorts?: Sort[], filters?: Filter[]): void;
31
- get chunkSize(): number;
31
+ get chunkSize$(): Observable<number>;
32
+ get chunkSize(): number | undefined;
32
33
  set chunkSize(size: number);
33
34
  /***************************************************************************
34
35
  * *
@@ -47,7 +47,6 @@ export declare class DataContextContinuablePaged<T> extends DataContextContinuab
47
47
  * *
48
48
  **************************************************************************/
49
49
  private checkHasMoreData;
50
- protected onChunkSizeChanged(newSize: number): void;
51
50
  protected reloadInternal(): Observable<any>;
52
51
  protected clearAll(silent?: boolean): void;
53
52
  private fetchPage;
@@ -40,6 +40,8 @@ export declare class DataContextContinuableToken<T> extends DataContextContinuab
40
40
  protected clearAll(silent?: boolean): void;
41
41
  protected reloadInternal(): Observable<any>;
42
42
  private fetchNextChunk;
43
+ private onChunkFetched;
44
+ private onChunkFetchError;
43
45
  /**
44
46
  * Load the data from the given page into the current data context
45
47
  */
@@ -146,6 +146,12 @@ export interface IDataContextContinuable<T> extends IDataContext<T> {
146
146
  * paged context loads page by page until finished.
147
147
  */
148
148
  loadAll(sorts?: Sort[], filters?: Filter[]): void;
149
+ /**
150
+ * Set the desired chunk size
151
+ */
152
+ set chunkSize(size: number | undefined);
153
+ get chunkSize(): number;
154
+ get chunkSize$(): Observable<number | undefined>;
149
155
  }
150
156
  export interface IDataContextActivePage<T> extends IDataContext<T> {
151
157
  /**
@@ -2,6 +2,7 @@ import { MatPaginator } from '@angular/material/paginator';
2
2
  import { MatSort } from '@angular/material/sort';
3
3
  import { IDataContext } from './data-context';
4
4
  import { Observable } from 'rxjs';
5
+ import { ElderContinuatorComponent } from '../../../components/data-view/common/elder-continuator/elder-continuator.component';
5
6
  export declare class MatTableDataContextBindingBuilder {
6
7
  /***************************************************************************
7
8
  * *
@@ -12,6 +13,7 @@ export declare class MatTableDataContextBindingBuilder {
12
13
  private _dataContext$;
13
14
  private _sorts$;
14
15
  private _matPaginator$;
16
+ private _continuator$;
15
17
  /***************************************************************************
16
18
  * *
17
19
  * Static Builder *
@@ -26,12 +28,14 @@ export declare class MatTableDataContextBindingBuilder {
26
28
  **************************************************************************/
27
29
  withSorts(sorts$: Observable<MatSort[]>): this;
28
30
  withPaginator(paginator$: Observable<MatPaginator>): this;
31
+ withContinuator(continuator$: Observable<ElderContinuatorComponent>): this;
29
32
  bindUntil(destroy$: Observable<any>): MatTableDataContextBinding;
30
33
  }
31
34
  export declare class MatTableDataContextBinding {
32
35
  private readonly _dataContext$;
33
36
  private readonly _matSorts$;
34
37
  private readonly _matPaginator$;
38
+ private readonly _continuator$;
35
39
  /***************************************************************************
36
40
  * *
37
41
  * Fields *
@@ -43,7 +47,7 @@ export declare class MatTableDataContextBinding {
43
47
  * Constructor *
44
48
  * *
45
49
  **************************************************************************/
46
- constructor(_dataContext$: Observable<IDataContext<any>>, _matSorts$: Observable<MatSort[]> | null, _matPaginator$: Observable<MatPaginator> | null, destroy$: Observable<any>);
50
+ constructor(_dataContext$: Observable<IDataContext<any>>, _matSorts$: Observable<MatSort[]> | null, _matPaginator$: Observable<MatPaginator> | null, _continuator$: Observable<ElderContinuatorComponent> | null, destroy$: Observable<any>);
47
51
  /***************************************************************************
48
52
  * *
49
53
  * Private methods *
@@ -55,6 +59,7 @@ export declare class MatTableDataContextBinding {
55
59
  private updateMatSort;
56
60
  private bindMatSortsToDataContextUntil;
57
61
  private bindPaginatorUntil;
62
+ private bindContinuatorUntil;
58
63
  private toMatDirection;
59
64
  private fromMatDirection;
60
65
  }
@@ -1,8 +1,19 @@
1
1
  import { Sort } from './sort';
2
2
  import { Filter } from './filters/filter';
3
+ import { ContinuableListing } from './continuable-listing';
3
4
  export declare class TokenChunkRequest {
4
5
  readonly nextContinuationToken: string | null | undefined;
5
6
  readonly filters: Filter[];
6
7
  readonly sorts: Sort[];
7
- constructor(nextContinuationToken: string | null | undefined, filters: Filter[], sorts: Sort[]);
8
+ readonly chunkSize: number | undefined;
9
+ static first(filters: Filter[], sorts: Sort[], chunkSize: number | undefined): TokenChunkRequest;
10
+ static nextIfAvailable(listing: ContinuableListing<any>, filters: Filter[], sorts: Sort[]): TokenChunkRequest | undefined;
11
+ /**
12
+ *
13
+ * @param nextContinuationToken The continuation token. If not defined, fetches the first chunk.
14
+ * @param filters Filters to send with the request.
15
+ * @param sorts Sorts to send with the request.
16
+ * @param chunkSize The desired chunk size. Since servers are in control of chunk-size (performance), this is only considered a hint which might be ignored.
17
+ */
18
+ constructor(nextContinuationToken: string | null | undefined, filters: Filter[], sorts: Sort[], chunkSize: number | undefined);
8
19
  }
@@ -1,4 +1,3 @@
1
- import { BooleanInput } from '@angular/cdk/coercion';
2
1
  import { OnDestroy, OnInit, Signal } from '@angular/core';
3
2
  import { Observable, Subject } from 'rxjs';
4
3
  import { IDataContext, IDataContextActivePage, IDataContextContinuable } from '../../../common/data/data-context/data-context';
@@ -31,12 +30,8 @@ export declare abstract class ElderDataViewBaseComponent<T = any> implements IEl
31
30
  * In more advanced scenarios where you plan to reuse the same data-context
32
31
  * set this to false and release the resources yourself. (dataContext.close)
33
32
  */
34
- cleanUp: boolean;
35
- /**
36
- * If true, this table is in dense mode.
37
- * Heights are generally reduced.
38
- */
39
- private _dense;
33
+ readonly cleanUp: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
34
+ readonly dense: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
40
35
  private readonly _itemClickSubject;
41
36
  private readonly EntityIdKeyFn;
42
37
  protected readonly destroy$: Subject<void>;
@@ -46,7 +41,9 @@ export declare abstract class ElderDataViewBaseComponent<T = any> implements IEl
46
41
  readonly canLoadMore: Signal<boolean | undefined>;
47
42
  readonly viewData: Signal<T[] | undefined>;
48
43
  readonly currentPage: Signal<PageRequest | undefined>;
44
+ readonly currentChunkSize: Signal<number | undefined>;
49
45
  readonly currentSelection: Signal<T[] | undefined>;
46
+ readonly selectionSingleChange: Observable<any>;
50
47
  /***************************************************************************
51
48
  * *
52
49
  * Constructor *
@@ -80,7 +77,6 @@ export declare abstract class ElderDataViewBaseComponent<T = any> implements IEl
80
77
  set selectableEvaluatorFn(selectableEvaluatorFn: (entity: any) => boolean);
81
78
  set selection(selection: any[]);
82
79
  get selectionChange(): Observable<any[]>;
83
- get selectionSingleChange(): Observable<any>;
84
80
  set selectionMultiEnabled(enableMultiSelection: boolean);
85
81
  abstract get selectionVisible(): boolean;
86
82
  abstract set selectionVisible(selectionVisible: boolean);
@@ -90,13 +86,6 @@ export declare abstract class ElderDataViewBaseComponent<T = any> implements IEl
90
86
  * *
91
87
  **************************************************************************/
92
88
  get itemClick(): Observable<any>;
93
- /***************************************************************************
94
- * *
95
- * Style Properties *
96
- * *
97
- **************************************************************************/
98
- set dense(value: BooleanInput);
99
- get dense(): boolean;
100
89
  /***************************************************************************
101
90
  * *
102
91
  * Event Entry Points *
@@ -124,5 +113,5 @@ export declare abstract class ElderDataViewBaseComponent<T = any> implements IEl
124
113
  */
125
114
  protected autoCleanUp(): void;
126
115
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderDataViewBaseComponent<any>, never>;
127
- static ɵdir: i0.ɵɵDirectiveDeclaration<ElderDataViewBaseComponent<any>, never, never, { "interactionMode": { "alias": "interactionMode"; "required": false; }; "cleanUp": { "alias": "cleanUp"; "required": false; }; "selectableEvaluatorFn": { "alias": "selectableEvaluatorFn"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "selectionMultiEnabled": { "alias": "selectionMultiEnabled"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "selectionChange": "selectionChange"; "selectionSingleChange": "selectionSingleChange"; "itemClick": "itemClick"; }, never, never, true, never>;
116
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderDataViewBaseComponent<any>, never, never, { "interactionMode": { "alias": "interactionMode"; "required": false; }; "cleanUp": { "alias": "cleanUp"; "required": false; "isSignal": true; }; "dense": { "alias": "dense"; "required": false; "isSignal": true; }; "selectableEvaluatorFn": { "alias": "selectableEvaluatorFn"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "selectionMultiEnabled": { "alias": "selectionMultiEnabled"; "required": false; }; }, { "selectionSingleChange": "selectionSingleChange"; "selectionChange": "selectionChange"; "itemClick": "itemClick"; }, never, never, true, never>;
128
117
  }
@@ -0,0 +1,14 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ElderContinuatorComponent {
3
+ readonly loadedCount: import("@angular/core").InputSignal<number>;
4
+ readonly total: import("@angular/core").InputSignal<string | number>;
5
+ readonly canLoadMore: import("@angular/core").InputSignal<boolean>;
6
+ readonly chunkSizeOptions: import("@angular/core").InputSignal<number[]>;
7
+ readonly chunkSize: import("@angular/core").InputSignal<number>;
8
+ readonly canModifyChunkSize: import("@angular/core").Signal<boolean>;
9
+ readonly loadMoreRequested: import("@angular/core").OutputEmitterRef<void>;
10
+ readonly chunkSizeChange: import("@angular/core").OutputEmitterRef<number>;
11
+ onChunkSizeChange(newSize: undefined | number): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderContinuatorComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderContinuatorComponent, "elder-continuator", never, { "loadedCount": { "alias": "loadedCount"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "canLoadMore": { "alias": "canLoadMore"; "required": false; "isSignal": true; }; "chunkSizeOptions": { "alias": "chunkSizeOptions"; "required": false; "isSignal": true; }; "chunkSize": { "alias": "chunkSize"; "required": false; "isSignal": true; }; }, { "loadMoreRequested": "loadMoreRequested"; "chunkSizeChange": "chunkSizeChange"; }, never, never, true, never>;
14
+ }
@@ -9,3 +9,4 @@ export { DataContextSelectionDirective } from './selection/data-context-selectio
9
9
  export { DataContextStateIndicatorComponent } from './data-context-state-indicator/data-context-state-indicator.component';
10
10
  export * from './activation/public_api';
11
11
  export { ElderDataCommonModule } from './elder-data-common.module';
12
+ export { ElderContinuatorComponent } from './elder-continuator/elder-continuator.component';
@@ -1,5 +1,6 @@
1
1
  import { Signal } from '@angular/core';
2
2
  import { SelectionModel } from '../../../../common/selection/selection-model';
3
+ import { Observable } from 'rxjs';
3
4
  import { IDataContext } from '../../../../common/data/data-context/data-context';
4
5
  import { MasterSelectionState } from './master-selection-state';
5
6
  import * as i0 from "@angular/core";
@@ -10,7 +11,7 @@ export declare class DataContextSelectionDirective {
10
11
  * *
11
12
  **************************************************************************/
12
13
  private readonly log;
13
- private readonly selectionModel$;
14
+ private readonly _selectionModel$;
14
15
  private readonly dataContext$;
15
16
  readonly selectionState: Signal<MasterSelectionState>;
16
17
  /***************************************************************************
@@ -25,6 +26,7 @@ export declare class DataContextSelectionDirective {
25
26
  * *
26
27
  **************************************************************************/
27
28
  set selectionModel(model: SelectionModel<any>);
29
+ get selectionModel$(): Observable<SelectionModel<any>>;
28
30
  get selectionModel(): SelectionModel<any>;
29
31
  set dataContext(dataContext: IDataContext<any>);
30
32
  /** Whether the number of selected elements matches the totalSnapshot number of selectable rows. */
@@ -9,6 +9,7 @@ import { ElderDataViewOptionsProvider } from '../../base/elder-data-view-options
9
9
  import { BreakpointObserver } from '@angular/cdk/layout';
10
10
  import { CompositeSort } from '../../common/composite-sort/composite-sort';
11
11
  import { ElderTileComponent } from '../elder-tile/elder-tile.component';
12
+ import { ElderContinuatorComponent } from '../../common/elder-continuator/elder-continuator.component';
12
13
  import * as i0 from "@angular/core";
13
14
  declare class GridRow<T> {
14
15
  readonly id: string;
@@ -51,9 +52,9 @@ export declare class ElderGridComponent<T = any> extends ElderDataViewBaseCompon
51
52
  dataRows$: Observable<GridRow<T>[]>;
52
53
  tileTemplateQuery: TemplateRef<any>;
53
54
  private _tileTemplate;
54
- toolbarVisible: boolean;
55
- footerVisible: boolean;
56
- itemHeight: number;
55
+ readonly toolbarVisible: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
56
+ readonly footerVisible: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
57
+ readonly itemHeight: import("@angular/core").InputSignal<number>;
57
58
  readonly tileOutlined: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
58
59
  readonly responsiveColumnCount: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
59
60
  virtualScrollViewPort: CdkVirtualScrollViewport;
@@ -63,8 +64,9 @@ export declare class ElderGridComponent<T = any> extends ElderDataViewBaseCompon
63
64
  sortTranslationPrefix: string;
64
65
  hiddenField: string;
65
66
  selectionVisible: boolean;
66
- pageSizeOptions: number[];
67
+ readonly pageSizeOptions: import("@angular/core").InputSignal<number[]>;
67
68
  matPaginator: MatPaginator;
69
+ elderContinuator: ElderContinuatorComponent;
68
70
  toolbarTemplateQuery: TemplateRef<any>;
69
71
  private _toolbarTemplate;
70
72
  readonly activeColumnCount$: Observable<number>;
@@ -116,6 +118,6 @@ export declare class ElderGridComponent<T = any> extends ElderDataViewBaseCompon
116
118
  private initialColumnCount;
117
119
  private getTileForItem;
118
120
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderGridComponent<any>, [{ optional: true; }, { optional: true; skipSelf: true; }, null]>;
119
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderGridComponent<any>, "elder-grid", never, { "toolbarVisible": { "alias": "toolbarVisible"; "required": false; }; "footerVisible": { "alias": "footerVisible"; "required": false; }; "itemHeight": { "alias": "itemHeight"; "required": false; }; "tileOutlined": { "alias": "tileOutlined"; "required": false; "isSignal": true; }; "responsiveColumnCount": { "alias": "responsiveColumnCount"; "required": false; "isSignal": true; }; "availableSorts": { "alias": "availableSorts"; "required": false; }; "sortTranslationPrefix": { "alias": "sortTranslationPrefix"; "required": false; }; "hiddenField": { "alias": "hiddenField"; "required": false; }; "selectionVisible": { "alias": "selectionVisible"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "tileTemplate": { "alias": "tileTemplate"; "required": false; }; "toolbarTemplate": { "alias": "toolbarTemplate"; "required": false; }; "data": { "alias": "data"; "required": false; }; "columnCount": { "alias": "columnCount"; "required": false; }; }, {}, ["tileTemplateQuery", "toolbarTemplateQuery"], never, true, never>;
121
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderGridComponent<any>, "elder-grid", never, { "toolbarVisible": { "alias": "toolbarVisible"; "required": false; "isSignal": true; }; "footerVisible": { "alias": "footerVisible"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "tileOutlined": { "alias": "tileOutlined"; "required": false; "isSignal": true; }; "responsiveColumnCount": { "alias": "responsiveColumnCount"; "required": false; "isSignal": true; }; "availableSorts": { "alias": "availableSorts"; "required": false; }; "sortTranslationPrefix": { "alias": "sortTranslationPrefix"; "required": false; }; "hiddenField": { "alias": "hiddenField"; "required": false; }; "selectionVisible": { "alias": "selectionVisible"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "tileTemplate": { "alias": "tileTemplate"; "required": false; }; "toolbarTemplate": { "alias": "toolbarTemplate"; "required": false; }; "data": { "alias": "data"; "required": false; }; "columnCount": { "alias": "columnCount"; "required": false; }; }, {}, ["tileTemplateQuery", "toolbarTemplateQuery"], never, true, never>;
120
122
  }
121
123
  export {};
@@ -0,0 +1,30 @@
1
+ import { Signal } from '@angular/core';
2
+ import { MatCheckboxChange } from '@angular/material/checkbox';
3
+ import { DataContextSelectionDirective } from '../../../common/selection/data-context-selection.directive';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ElderTableSelectionCellComponent<T = any> {
6
+ readonly dataContextSelection: DataContextSelectionDirective;
7
+ /***************************************************************************
8
+ * *
9
+ * Fields *
10
+ * *
11
+ **************************************************************************/
12
+ private readonly log;
13
+ readonly entity: import("@angular/core").InputSignal<T>;
14
+ readonly selected: Signal<boolean>;
15
+ readonly selectable: Signal<boolean>;
16
+ /***************************************************************************
17
+ * *
18
+ * Constructor *
19
+ * *
20
+ **************************************************************************/
21
+ constructor(dataContextSelection: DataContextSelectionDirective);
22
+ /***************************************************************************
23
+ * *
24
+ * Public API *
25
+ * *
26
+ **************************************************************************/
27
+ onCheckboxChange(event: MatCheckboxChange): void;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableSelectionCellComponent<any>, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderTableSelectionCellComponent<any>, "elder-table-selection-cell", never, { "entity": { "alias": "entity"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
30
+ }
@@ -12,6 +12,7 @@ import { ElderTableModel } from '../model/elder-table-model';
12
12
  import { ElderTableExtensionDirective } from '../elder-table-extension.directive';
13
13
  import { ElderTableColumnDirective } from '../elder-table-column.directive';
14
14
  import { ElderDataViewOptionsProvider } from '../../base/elder-data-view-options-provider';
15
+ import { ElderContinuatorComponent } from '../../common/elder-continuator/elder-continuator.component';
15
16
  import * as i0 from "@angular/core";
16
17
  export declare class ElderTableComponent<T = any> extends ElderDataViewBaseComponent<T> implements OnInit, AfterContentInit, AfterViewInit {
17
18
  readonly tableModel: ElderTableModel;
@@ -29,7 +30,9 @@ export declare class ElderTableComponent<T = any> extends ElderDataViewBaseCompo
29
30
  */
30
31
  private loadNextQueued;
31
32
  matTable: CdkTable<any>;
33
+ readonly pageSizeOptions: import("@angular/core").InputSignal<number[]>;
32
34
  matPaginator: MatPaginator;
35
+ elderContinuator: ElderContinuatorComponent;
33
36
  private readonly _matSort;
34
37
  columnDefs: QueryList<CdkColumnDef>;
35
38
  elderColumns: QueryList<ElderTableColumnDirective>;
@@ -57,10 +60,9 @@ export declare class ElderTableComponent<T = any> extends ElderDataViewBaseCompo
57
60
  *
58
61
  */
59
62
  hiddenField: string;
60
- pageSizeOptions: number[];
61
- keepSelection: boolean;
62
- showFooter: boolean;
63
- denseHorizontal: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
63
+ readonly keepSelection: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
64
+ readonly showFooter: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
65
+ readonly denseHorizontal: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
64
66
  /**
65
67
  * The table toolbar
66
68
  */
@@ -128,5 +130,5 @@ export declare class ElderTableComponent<T = any> extends ElderDataViewBaseCompo
128
130
  private setupSelectionLifeCycle;
129
131
  private getRowForItem;
130
132
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableComponent<any>, [null, { optional: true; }, { optional: true; skipSelf: true; }, { optional: true; }, { optional: true; skipSelf: true; }, null, null]>;
131
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderTableComponent<any>, "elder-table", never, { "idField": { "alias": "idField"; "required": false; }; "removingField": { "alias": "removingField"; "required": false; }; "hiddenField": { "alias": "hiddenField"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "keepSelection": { "alias": "keepSelection"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "denseHorizontal": { "alias": "denseHorizontal"; "required": false; "isSignal": true; }; "toolbarTemplate": { "alias": "toolbarTemplate"; "required": false; }; "data": { "alias": "data"; "required": false; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; }; "selectionVisible": { "alias": "selectionVisible"; "required": false; }; }, {}, ["columnDefs", "elderColumns", "rowDefs", "toolbarRowTemplateQuery"], never, true, never>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderTableComponent<any>, "elder-table", never, { "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "idField": { "alias": "idField"; "required": false; }; "removingField": { "alias": "removingField"; "required": false; }; "hiddenField": { "alias": "hiddenField"; "required": false; }; "keepSelection": { "alias": "keepSelection"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "denseHorizontal": { "alias": "denseHorizontal"; "required": false; "isSignal": true; }; "toolbarTemplate": { "alias": "toolbarTemplate"; "required": false; }; "data": { "alias": "data"; "required": false; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; }; "selectionVisible": { "alias": "selectionVisible"; "required": false; }; }, {}, ["columnDefs", "elderColumns", "rowDefs", "toolbarRowTemplateQuery"], never, true, never>;
132
134
  }
@@ -1,10 +1,13 @@
1
- import { ElementRef, Renderer2 } from '@angular/core';
1
+ import { DestroyRef, ElementRef, OnInit, Renderer2 } from '@angular/core';
2
2
  import { ActivationModel } from '../common/activation/model/activation-model';
3
+ import { DataContextSelectionDirective } from '../common/selection/data-context-selection.directive';
3
4
  import * as i0 from "@angular/core";
4
- export declare class ElderTableRowDirective<T> {
5
+ export declare class ElderTableRowDirective<T> implements OnInit {
5
6
  private readonly rowRef;
7
+ private readonly destroyRef;
6
8
  private readonly renderer;
7
9
  private readonly activationModel;
10
+ private readonly dataContextSelection;
8
11
  /***************************************************************************
9
12
  * *
10
13
  * Fields *
@@ -12,17 +15,24 @@ export declare class ElderTableRowDirective<T> {
12
15
  **************************************************************************/
13
16
  private readonly logger;
14
17
  private _activated;
15
- private _model;
18
+ readonly entity: import("@angular/core").InputSignal<T>;
19
+ readonly highlightSelection: import("@angular/core").InputSignal<boolean>;
16
20
  private readonly _focused;
21
+ private readonly highlightSelection$;
22
+ private readonly entity$;
17
23
  /***************************************************************************
18
24
  * *
19
25
  * Constructor *
20
26
  * *
21
27
  **************************************************************************/
22
- constructor(rowRef: ElementRef<HTMLTableRowElement>, renderer: Renderer2, activationModel: ActivationModel);
23
- private handleActivationEvent;
24
- private isItemActive;
25
- private updateRowActivation;
28
+ constructor(rowRef: ElementRef<HTMLTableRowElement>, destroyRef: DestroyRef, renderer: Renderer2, activationModel: ActivationModel, dataContextSelection: DataContextSelectionDirective);
29
+ /***************************************************************************
30
+ * *
31
+ * Life Cycle *
32
+ * *
33
+ **************************************************************************/
34
+ ngOnInit(): void;
35
+ private bindHighlightSelection;
26
36
  /***************************************************************************
27
37
  * *
28
38
  * Host Listener *
@@ -43,8 +53,6 @@ export declare class ElderTableRowDirective<T> {
43
53
  * Properties *
44
54
  * *
45
55
  **************************************************************************/
46
- set model(model: T);
47
- get model(): T;
48
56
  get hasFocus(): boolean;
49
57
  /***************************************************************************
50
58
  * *
@@ -58,8 +66,11 @@ export declare class ElderTableRowDirective<T> {
58
66
  * Private methods *
59
67
  * *
60
68
  **************************************************************************/
69
+ private handleActivationEvent;
70
+ private isItemActive;
71
+ private updateRowActivation;
61
72
  private enableRowFocus;
62
- private activatedClassEnabled;
63
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableRowDirective<any>, [null, null, { optional: true; }]>;
64
- static ɵdir: i0.ɵɵDirectiveDeclaration<ElderTableRowDirective<any>, "tr[elderTableRow]", ["elderTableRow"], { "model": { "alias": "elderTableRow"; "required": false; }; }, {}, never, never, true, never>;
73
+ private updateHostClass;
74
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableRowDirective<any>, [null, null, null, { optional: true; }, null]>;
75
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderTableRowDirective<any>, "tr[elderTableRow]", ["elderTableRow"], { "entity": { "alias": "elderTableRow"; "required": true; "isSignal": true; }; "highlightSelection": { "alias": "highlightSelection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
65
76
  }
@@ -32,6 +32,7 @@ import * as i30 from "./elder-table-column.directive";
32
32
  import * as i31 from "./elder-table-root.directive";
33
33
  import * as i32 from "./activation/elder-delete-active.directive";
34
34
  export * from './model/elder-table-model';
35
+ export * from './columns/elder-table-selection-cell/elder-table-selection-cell.component';
35
36
  export * from './model/elder-table-model-provider';
36
37
  export * from './model/elder-table-model-cdk-table-binding';
37
38
  export * from './model/elder-table-model-query-group';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elderbyte/ngx-starter",
3
- "version": "19.4.2",
3
+ "version": "19.5.0",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^18.0.0 || ^19.0.0",
6
6
  "@angular/common": "^18.0.0 || ^19.0.0",
@@ -0,0 +1,17 @@
1
+ @use '@angular/material' as mat;
2
+
3
+ .loaded-info-text {
4
+ color: var(--md-sys-color-outline);
5
+ }
6
+
7
+ .elder-chunk-size-select.mat-mdc-form-field {
8
+ width: 84px;
9
+ @include mat.form-field-density(-5);
10
+
11
+ .mat-mdc-select {
12
+ --mat-select-trigger-text-size: var(
13
+ --mat-paginator-container-text-size,
14
+ var(--mat-sys-body-small-size)
15
+ );
16
+ }
17
+ }