@elderbyte/ngx-starter 19.4.2 → 19.6.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 (41) hide show
  1. package/fesm2022/elderbyte-ngx-starter.mjs +2166 -1261
  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/datasource/data-source.d.ts +2 -0
  9. package/lib/common/data/datasource/local/local-list-data-source.d.ts +1 -1
  10. package/lib/common/data/sort-context.d.ts +1 -0
  11. package/lib/common/data/token-chunk-request.d.ts +12 -1
  12. package/lib/components/data-view/base/elder-data-view-base.d.ts +5 -16
  13. package/lib/components/data-view/common/drag-and-drop/data-view-dnd-controller.service.d.ts +70 -0
  14. package/lib/components/data-view/common/drag-and-drop/elder-data-view-dnd.directive.d.ts +66 -0
  15. package/lib/components/data-view/common/drag-and-drop/elder-data-view-item-drag.directive.d.ts +38 -0
  16. package/lib/components/data-view/common/drag-and-drop/events/data-view-drag-entered-event.d.ts +16 -0
  17. package/lib/components/data-view/common/drag-and-drop/events/data-view-drag-exited-event.d.ts +12 -0
  18. package/lib/components/data-view/common/drag-and-drop/events/data-view-item-drop-event.d.ts +74 -0
  19. package/lib/components/data-view/common/drag-and-drop/events/public_api.d.ts +3 -0
  20. package/lib/components/data-view/common/drag-and-drop/grouping/data-view-dnd-group-controller.service.d.ts +42 -0
  21. package/lib/components/data-view/common/drag-and-drop/grouping/elder-data-view-dnd-group.directive.d.ts +30 -0
  22. package/lib/components/data-view/common/drag-and-drop/grouping/public_api.d.ts +2 -0
  23. package/lib/components/data-view/common/drag-and-drop/local-data/data-view-dnd-model-util.d.ts +40 -0
  24. package/lib/components/data-view/common/drag-and-drop/local-data/elder-local-dnd-support.directive.d.ts +54 -0
  25. package/lib/components/data-view/common/drag-and-drop/local-data/public_api.d.ts +2 -0
  26. package/lib/components/data-view/common/drag-and-drop/public_api.d.ts +7 -0
  27. package/lib/components/data-view/common/elder-continuator/elder-continuator.component.d.ts +14 -0
  28. package/lib/components/data-view/common/elder-data-common.module.d.ts +14 -9
  29. package/lib/components/data-view/common/public_api.d.ts +2 -0
  30. package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +3 -1
  31. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +7 -5
  32. package/lib/components/data-view/table/columns/elder-table-selection-cell/elder-table-selection-cell.component.d.ts +30 -0
  33. package/lib/components/data-view/table/drag-and-drop/elder-table-drop-list-connector.directive.d.ts +37 -0
  34. package/lib/components/data-view/table/drag-and-drop/public_api.d.ts +1 -0
  35. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +11 -5
  36. package/lib/components/data-view/table/elder-table-row.directive.d.ts +23 -12
  37. package/lib/components/data-view/table/elder-table.module.d.ts +27 -23
  38. package/package.json +1 -1
  39. package/src/lib/components/data-view/common/elder-continuator/elder-continuator.component.scss +17 -0
  40. package/src/lib/components/data-view/table/columns/elder-table-selection-cell/elder-table-selection-cell.component.scss +0 -0
  41. package/theming/components/_elder-table-theme.scss +24 -0
@@ -0,0 +1,54 @@
1
+ import { DataViewDndControllerService } from '../data-view-dnd-controller.service';
2
+ import { IElderDataView } from '../../../base/elder-data-view';
3
+ import { DataViewDndGroupControllerService } from '../grouping/data-view-dnd-group-controller.service';
4
+ import { ElderDataViewDndDirective } from '../elder-data-view-dnd.directive';
5
+ import { ElderDataViewDndGroupDirective } from '../grouping/elder-data-view-dnd-group.directive';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Adds support for automatic model updates
9
+ * according to occurring drag and drop on data views.
10
+ */
11
+ export declare class ElderLocalDndSupportDirective<T> {
12
+ readonly dropView: ElderDataViewDndDirective<T>;
13
+ readonly dropGroup: ElderDataViewDndGroupDirective<T>;
14
+ readonly dropViewController: DataViewDndControllerService<T>;
15
+ readonly dropGroupController: DataViewDndGroupControllerService<T>;
16
+ readonly _dataView: IElderDataView<T>;
17
+ /***************************************************************************
18
+ * *
19
+ * Fields *
20
+ * *
21
+ **************************************************************************/
22
+ private readonly log;
23
+ private dataContext;
24
+ private dataSource;
25
+ /***************************************************************************
26
+ * *
27
+ * Constructor *
28
+ * *
29
+ **************************************************************************/
30
+ constructor(dropView: ElderDataViewDndDirective<T>, dropGroup: ElderDataViewDndGroupDirective<T>, dropViewController: DataViewDndControllerService<T>, dropGroupController: DataViewDndGroupControllerService<T>, _dataView: IElderDataView<T>);
31
+ /***************************************************************************
32
+ * *
33
+ * Single Drop View Mode *
34
+ * *
35
+ **************************************************************************/
36
+ private initSingleDropViewModelTracking;
37
+ private handleItemDrop;
38
+ private isSortDefined;
39
+ /***************************************************************************
40
+ * *
41
+ * Drop Group Mode *
42
+ * *
43
+ **************************************************************************/
44
+ private initDropGroupModelTracking;
45
+ private handleGroupDrop;
46
+ /***************************************************************************
47
+ * *
48
+ * Private Methods *
49
+ * *
50
+ **************************************************************************/
51
+ private updateModel;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderLocalDndSupportDirective<any>, [{ optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderLocalDndSupportDirective<any>, "[elderLocalDndSupport]", never, {}, {}, never, never, true, never>;
54
+ }
@@ -0,0 +1,2 @@
1
+ export * from './data-view-dnd-model-util';
2
+ export * from './elder-local-dnd-support.directive';
@@ -0,0 +1,7 @@
1
+ export * from './events/public_api';
2
+ export * from './grouping/public_api';
3
+ export * from './local-data/public_api';
4
+ export * from './elder-data-view-dnd.directive';
5
+ export * from './elder-data-view-item-drag.directive';
6
+ export * from './local-data/elder-local-dnd-support.directive';
7
+ export * from './data-view-dnd-controller.service';
@@ -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
+ }
@@ -11,16 +11,21 @@ import * as i9 from "@angular/material/progress-bar";
11
11
  import * as i10 from "@angular/material/dialog";
12
12
  import * as i11 from "@angular/material/tooltip";
13
13
  import * as i12 from "@ngx-translate/core";
14
- import * as i13 from "../../badge/elder-badge.module";
15
- import * as i14 from "./elder-data-toolbar/elder-data-toolbar.component";
16
- import * as i15 from "./elder-single-sort/elder-single-sort.component";
17
- import * as i16 from "./composite-sort/elder-composite-sort/elder-composite-sort.component";
18
- import * as i17 from "./composite-sort/composite-sort-dc.directive";
19
- import * as i18 from "./selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component";
20
- import * as i19 from "./selection/data-context-selection.directive";
21
- import * as i20 from "./data-context-state-indicator/data-context-state-indicator.component";
14
+ import * as i13 from "@angular/cdk/drag-drop";
15
+ import * as i14 from "../../badge/elder-badge.module";
16
+ import * as i15 from "./elder-data-toolbar/elder-data-toolbar.component";
17
+ import * as i16 from "./elder-single-sort/elder-single-sort.component";
18
+ import * as i17 from "./composite-sort/elder-composite-sort/elder-composite-sort.component";
19
+ import * as i18 from "./composite-sort/composite-sort-dc.directive";
20
+ import * as i19 from "./selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component";
21
+ import * as i20 from "./selection/data-context-selection.directive";
22
+ import * as i21 from "./data-context-state-indicator/data-context-state-indicator.component";
23
+ import * as i22 from "./drag-and-drop/elder-data-view-dnd.directive";
24
+ import * as i23 from "./drag-and-drop/elder-data-view-item-drag.directive";
25
+ import * as i24 from "./drag-and-drop/local-data/elder-local-dnd-support.directive";
26
+ import * as i25 from "./drag-and-drop/grouping/elder-data-view-dnd-group.directive";
22
27
  export declare class ElderDataCommonModule {
23
28
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderDataCommonModule, never>;
24
- static ɵmod: i0.ɵɵNgModuleDeclaration<ElderDataCommonModule, never, [typeof i1.CommonModule, typeof i2.RouterModule, typeof i3.MatDividerModule, typeof i4.MatCheckboxModule, typeof i5.MatMenuModule, typeof i6.MatButtonModule, typeof i7.MatIconModule, typeof i8.MatBadgeModule, typeof i9.MatProgressBarModule, typeof i10.MatDialogModule, typeof i11.MatTooltipModule, typeof i12.TranslateModule, typeof i13.ElderBadgeModule, typeof i14.ElderDataToolbarComponent, typeof i14.ElderToolbarContentDirective, typeof i15.ElderSingleSortComponent, typeof i16.ElderCompositeSortComponent, typeof i17.ElderCompositeSortDcDirective, typeof i18.ElderSelectionMasterCheckboxComponent, typeof i19.DataContextSelectionDirective, typeof i20.DataContextStateIndicatorComponent], [typeof i14.ElderDataToolbarComponent, typeof i14.ElderToolbarContentDirective, typeof i15.ElderSingleSortComponent, typeof i16.ElderCompositeSortComponent, typeof i17.ElderCompositeSortDcDirective, typeof i18.ElderSelectionMasterCheckboxComponent, typeof i19.DataContextSelectionDirective, typeof i20.DataContextStateIndicatorComponent]>;
29
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ElderDataCommonModule, never, [typeof i1.CommonModule, typeof i2.RouterModule, typeof i3.MatDividerModule, typeof i4.MatCheckboxModule, typeof i5.MatMenuModule, typeof i6.MatButtonModule, typeof i7.MatIconModule, typeof i8.MatBadgeModule, typeof i9.MatProgressBarModule, typeof i10.MatDialogModule, typeof i11.MatTooltipModule, typeof i12.TranslateModule, typeof i13.DragDropModule, typeof i14.ElderBadgeModule, typeof i15.ElderDataToolbarComponent, typeof i15.ElderToolbarContentDirective, typeof i16.ElderSingleSortComponent, typeof i17.ElderCompositeSortComponent, typeof i18.ElderCompositeSortDcDirective, typeof i19.ElderSelectionMasterCheckboxComponent, typeof i20.DataContextSelectionDirective, typeof i21.DataContextStateIndicatorComponent, typeof i22.ElderDataViewDndDirective, typeof i23.ElderDataViewItemDragDirective, typeof i24.ElderLocalDndSupportDirective, typeof i25.ElderDataViewDndGroupDirective], [typeof i15.ElderDataToolbarComponent, typeof i15.ElderToolbarContentDirective, typeof i16.ElderSingleSortComponent, typeof i17.ElderCompositeSortComponent, typeof i18.ElderCompositeSortDcDirective, typeof i19.ElderSelectionMasterCheckboxComponent, typeof i20.DataContextSelectionDirective, typeof i21.DataContextStateIndicatorComponent, typeof i22.ElderDataViewDndDirective, typeof i23.ElderDataViewItemDragDirective, typeof i24.ElderLocalDndSupportDirective, typeof i25.ElderDataViewDndGroupDirective]>;
25
30
  static ɵinj: i0.ɵɵInjectorDeclaration<ElderDataCommonModule>;
26
31
  }
@@ -8,4 +8,6 @@ export { MasterSelectionState } from './selection/master-selection-state';
8
8
  export { DataContextSelectionDirective } from './selection/data-context-selection.directive';
9
9
  export { DataContextStateIndicatorComponent } from './data-context-state-indicator/data-context-state-indicator.component';
10
10
  export * from './activation/public_api';
11
+ export * from './drag-and-drop/public_api';
11
12
  export { ElderDataCommonModule } from './elder-data-common.module';
13
+ 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
+ }
@@ -0,0 +1,37 @@
1
+ import { DataViewDndControllerService } from '../../common/drag-and-drop/data-view-dnd-controller.service';
2
+ import { CdkDropList } from '@angular/cdk/drag-drop';
3
+ import { ElderTableComponent } from '../elder-table/elder-table.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/drag-drop";
6
+ /**
7
+ * Directive which defines its host table as a CdkDropList and connects
8
+ * it with the drag and drop controller service of the parent data view.
9
+ *
10
+ * This is needed since our elder-table wraps the mat-table.
11
+ * If we someday switch to a more composition-based approach we might not need this anymore.
12
+ */
13
+ export declare class ElderTableDropListConnectorDirective<T> {
14
+ private readonly dndController;
15
+ readonly elderTable: ElderTableComponent;
16
+ readonly cdkDropList: CdkDropList;
17
+ /***************************************************************************
18
+ * *
19
+ * Fields *
20
+ * *
21
+ **************************************************************************/
22
+ private readonly log;
23
+ /***************************************************************************
24
+ * *
25
+ * Constructor *
26
+ * *
27
+ **************************************************************************/
28
+ constructor(dndController: DataViewDndControllerService<T>, elderTable: ElderTableComponent, cdkDropList: CdkDropList);
29
+ /***************************************************************************
30
+ * *
31
+ * Private Methods *
32
+ * *
33
+ **************************************************************************/
34
+ private disableDrag;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableDropListConnectorDirective<any>, [{ optional: true; }, null, null]>;
36
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderTableDropListConnectorDirective<any>, "[elderTableDropListConnector]", never, {}, {}, never, never, true, [{ directive: typeof i1.CdkDropList; inputs: {}; outputs: {}; }]>;
37
+ }
@@ -0,0 +1 @@
1
+ export * from './elder-table-drop-list-connector.directive';
@@ -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,11 +30,17 @@ 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>;
36
39
  rowDefs: QueryList<CdkRowDef<any>>;
40
+ /**
41
+ * ID of table component.
42
+ */
43
+ readonly id: import("@angular/core").InputSignal<string>;
37
44
  /**
38
45
  * Field to identify the data records (ID field).
39
46
  * Note: This property is only considered in case the
@@ -57,10 +64,9 @@ export declare class ElderTableComponent<T = any> extends ElderDataViewBaseCompo
57
64
  *
58
65
  */
59
66
  hiddenField: string;
60
- pageSizeOptions: number[];
61
- keepSelection: boolean;
62
- showFooter: boolean;
63
- denseHorizontal: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
67
+ readonly keepSelection: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
68
+ readonly showFooter: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
69
+ readonly denseHorizontal: import("@angular/core").InputSignalWithTransform<boolean, import("@angular/cdk/coercion").BooleanInput>;
64
70
  /**
65
71
  * The table toolbar
66
72
  */
@@ -128,5 +134,5 @@ export declare class ElderTableComponent<T = any> extends ElderDataViewBaseCompo
128
134
  private setupSelectionLifeCycle;
129
135
  private getRowForItem;
130
136
  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>;
137
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderTableComponent<any>, "elder-table", ["elderTable"], { "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "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
138
  }
@@ -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
  }
@@ -9,33 +9,37 @@ import * as i7 from "@angular/material/icon";
9
9
  import * as i8 from "@angular/material/badge";
10
10
  import * as i9 from "@angular/material/progress-bar";
11
11
  import * as i10 from "@angular/cdk/table";
12
- import * as i11 from "@angular/material/table";
13
- import * as i12 from "@angular/material/paginator";
14
- import * as i13 from "@angular/material/sort";
15
- import * as i14 from "@angular/material/dialog";
16
- import * as i15 from "@angular/material/tooltip";
17
- import * as i16 from "@angular/material/menu";
18
- import * as i17 from "@ngx-translate/core";
19
- import * as i18 from "../common/elder-data-common.module";
20
- import * as i19 from "../../infinitescroll/elder-infinite-scroll.module";
21
- import * as i20 from "../../forms/directives/elder-forms-directives.module";
22
- import * as i21 from "@angular/material/card";
23
- import * as i22 from "./elder-table/elder-table.component";
24
- import * as i23 from "./elder-table/elder-table-toolbar.directive";
25
- import * as i24 from "./elder-table-sort.directive";
26
- import * as i25 from "./elder-center-cell.directive";
27
- import * as i26 from "./elder-number-cell.directive";
28
- import * as i27 from "./activation/elder-table-activation.directive";
29
- import * as i28 from "./elder-table-row.directive";
30
- import * as i29 from "./elder-table-extension.directive";
31
- import * as i30 from "./elder-table-column.directive";
32
- import * as i31 from "./elder-table-root.directive";
33
- import * as i32 from "./activation/elder-delete-active.directive";
12
+ import * as i11 from "@angular/cdk/drag-drop";
13
+ import * as i12 from "@angular/material/table";
14
+ import * as i13 from "@angular/material/paginator";
15
+ import * as i14 from "@angular/material/sort";
16
+ import * as i15 from "@angular/material/dialog";
17
+ import * as i16 from "@angular/material/tooltip";
18
+ import * as i17 from "@angular/material/menu";
19
+ import * as i18 from "@ngx-translate/core";
20
+ import * as i19 from "../common/elder-data-common.module";
21
+ import * as i20 from "../../infinitescroll/elder-infinite-scroll.module";
22
+ import * as i21 from "../../forms/directives/elder-forms-directives.module";
23
+ import * as i22 from "@angular/material/card";
24
+ import * as i23 from "./elder-table/elder-table.component";
25
+ import * as i24 from "./elder-table/elder-table-toolbar.directive";
26
+ import * as i25 from "./elder-table-sort.directive";
27
+ import * as i26 from "./elder-center-cell.directive";
28
+ import * as i27 from "./elder-number-cell.directive";
29
+ import * as i28 from "./activation/elder-table-activation.directive";
30
+ import * as i29 from "./elder-table-row.directive";
31
+ import * as i30 from "./elder-table-extension.directive";
32
+ import * as i31 from "./elder-table-column.directive";
33
+ import * as i32 from "./elder-table-root.directive";
34
+ import * as i33 from "./activation/elder-delete-active.directive";
35
+ import * as i34 from "./drag-and-drop/elder-table-drop-list-connector.directive";
34
36
  export * from './model/elder-table-model';
37
+ export * from './columns/elder-table-selection-cell/elder-table-selection-cell.component';
35
38
  export * from './model/elder-table-model-provider';
36
39
  export * from './model/elder-table-model-cdk-table-binding';
37
40
  export * from './model/elder-table-model-query-group';
38
41
  export * from './activation/public_api';
42
+ export * from './drag-and-drop/public_api';
39
43
  export * from './elder-number-cell.directive';
40
44
  export * from './elder-center-cell.directive';
41
45
  export * from './elder-table/elder-table.component';
@@ -45,6 +49,6 @@ export * from './elder-table-extension.directive';
45
49
  export * from './elder-table-root.directive';
46
50
  export declare class ElderTableModule {
47
51
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableModule, never>;
48
- static ɵmod: i0.ɵɵNgModuleDeclaration<ElderTableModule, never, [typeof i1.CommonModule, typeof i2.RouterModule, typeof i3.FormsModule, typeof i4.MatDividerModule, typeof i5.MatCheckboxModule, typeof i6.MatButtonModule, typeof i7.MatIconModule, typeof i8.MatBadgeModule, typeof i9.MatProgressBarModule, typeof i10.CdkTableModule, typeof i11.MatTableModule, typeof i12.MatPaginatorModule, typeof i13.MatSortModule, typeof i14.MatDialogModule, typeof i15.MatTooltipModule, typeof i16.MatMenuModule, typeof i17.TranslateModule, typeof i18.ElderDataCommonModule, typeof i19.ElderInfiniteScrollModule, typeof i20.ElderFormsDirectivesModule, typeof i21.MatCardModule, typeof i22.ElderTableComponent, typeof i23.ElderTableToolbarDirective, typeof i24.ElderTableSortDirective, typeof i25.ElderCenterCellDirective, typeof i26.ElderNumberCellDirective, typeof i27.ElderTableActivationDirective, typeof i28.ElderTableRowDirective, typeof i29.ElderTableExtensionDirective, typeof i30.ElderTableColumnDirective, typeof i31.ElderTableRootDirective, typeof i32.ElderDeleteActiveDirective], [typeof i22.ElderTableComponent, typeof i23.ElderTableToolbarDirective, typeof i18.ElderDataCommonModule, typeof i24.ElderTableSortDirective, typeof i25.ElderCenterCellDirective, typeof i26.ElderNumberCellDirective, typeof i27.ElderTableActivationDirective, typeof i29.ElderTableExtensionDirective, typeof i31.ElderTableRootDirective, typeof i32.ElderDeleteActiveDirective]>;
52
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ElderTableModule, never, [typeof i1.CommonModule, typeof i2.RouterModule, typeof i3.FormsModule, typeof i4.MatDividerModule, typeof i5.MatCheckboxModule, typeof i6.MatButtonModule, typeof i7.MatIconModule, typeof i8.MatBadgeModule, typeof i9.MatProgressBarModule, typeof i10.CdkTableModule, typeof i11.DragDropModule, typeof i12.MatTableModule, typeof i13.MatPaginatorModule, typeof i14.MatSortModule, typeof i15.MatDialogModule, typeof i16.MatTooltipModule, typeof i17.MatMenuModule, typeof i18.TranslateModule, typeof i19.ElderDataCommonModule, typeof i20.ElderInfiniteScrollModule, typeof i21.ElderFormsDirectivesModule, typeof i22.MatCardModule, typeof i23.ElderTableComponent, typeof i24.ElderTableToolbarDirective, typeof i25.ElderTableSortDirective, typeof i26.ElderCenterCellDirective, typeof i27.ElderNumberCellDirective, typeof i28.ElderTableActivationDirective, typeof i29.ElderTableRowDirective, typeof i30.ElderTableExtensionDirective, typeof i31.ElderTableColumnDirective, typeof i32.ElderTableRootDirective, typeof i33.ElderDeleteActiveDirective, typeof i34.ElderTableDropListConnectorDirective], [typeof i23.ElderTableComponent, typeof i24.ElderTableToolbarDirective, typeof i19.ElderDataCommonModule, typeof i25.ElderTableSortDirective, typeof i26.ElderCenterCellDirective, typeof i27.ElderNumberCellDirective, typeof i28.ElderTableActivationDirective, typeof i30.ElderTableExtensionDirective, typeof i32.ElderTableRootDirective, typeof i33.ElderDeleteActiveDirective, typeof i34.ElderTableDropListConnectorDirective]>;
49
53
  static ɵinj: i0.ɵɵInjectorDeclaration<ElderTableModule>;
50
54
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elderbyte/ngx-starter",
3
- "version": "19.4.2",
3
+ "version": "19.6.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
+ }
@@ -126,6 +126,30 @@
126
126
  @include _inner-table($pad, $pad-right);
127
127
  }
128
128
  }
129
+
130
+ @include table-row-drag-and-drop;
131
+ }
132
+
133
+ @mixin table-row-drag-and-drop {
134
+ // styles the element visible while dragging (aka drag preview)
135
+ .elder-table-row.elder-table-row.cdk-drag-preview {
136
+ display: flex;
137
+ justify-content: space-between;
138
+ align-items: center;
139
+ td {
140
+ flex: 1 1 auto;
141
+ border: none;
142
+ }
143
+ }
144
+
145
+ // styles the element that shows where the drag-element will be placed when dropped (aka drag placeholder)
146
+ .elder-table .cdk-drop-list-dragging {
147
+ .cdk-drag-placeholder {
148
+ opacity: 0.4;
149
+ color: transparent;
150
+ background-color: var(--md-sys-color-primary-container);
151
+ }
152
+ }
129
153
  }
130
154
 
131
155
  @mixin _inner-table($pad, $pad-right) {