@elderbyte/ngx-starter 19.1.26 → 19.2.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 (36) hide show
  1. package/fesm2022/elderbyte-ngx-starter.mjs +2238 -1875
  2. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  3. package/lib/common/selection/selection-model.d.ts +3 -0
  4. package/lib/components/data-view/base/elder-data-view-base.d.ts +22 -42
  5. package/lib/components/data-view/base/elder-data-view.d.ts +7 -3
  6. package/lib/components/data-view/common/activation/data-view-activation-controller.service.d.ts +69 -0
  7. package/lib/components/data-view/common/activation/elder-activation-options.d.ts +16 -0
  8. package/lib/components/data-view/common/activation/model/activation-model.d.ts +49 -0
  9. package/lib/components/data-view/common/activation/public_api.d.ts +6 -0
  10. package/lib/components/data-view/common/elder-data-common.module.d.ts +0 -9
  11. package/lib/components/data-view/common/public_api.d.ts +11 -0
  12. package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +2 -2
  13. package/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.d.ts +5 -9
  14. package/lib/components/data-view/grid/activation/elder-grid-activation.directive.d.ts +46 -0
  15. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +9 -11
  16. package/lib/components/data-view/grid/elder-grid.module.d.ts +20 -17
  17. package/lib/components/data-view/grid/elder-tile/elder-tile.component.d.ts +53 -0
  18. package/lib/components/data-view/master-detail/elder-master-detail.service.d.ts +1 -1
  19. package/lib/components/data-view/master-detail/master-detail-activation-event.d.ts +1 -1
  20. package/lib/components/data-view/public_api.d.ts +1 -1
  21. package/lib/components/data-view/table/activation/elder-delete-active.directive.d.ts +9 -11
  22. package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +13 -50
  23. package/lib/components/data-view/table/activation/public_api.d.ts +0 -5
  24. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +16 -15
  25. package/lib/components/data-view/table/elder-table-row.directive.d.ts +10 -8
  26. package/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.d.ts +6 -0
  27. package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +18 -10
  28. package/package.json +1 -1
  29. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +9 -80
  30. package/src/lib/components/data-view/grid/elder-tile/elder-tile.component.scss +110 -0
  31. package/theming/abstracts/_elder-design-tokens.scss +13 -1
  32. package/lib/components/data-view/table/activation/elder-activation-context.d.ts +0 -7
  33. package/lib/components/data-view/table/activation/elder-table-activation-options.d.ts +0 -16
  34. /package/lib/components/data-view/{table/activation → common/activation/model}/activation-event-source.d.ts +0 -0
  35. /package/lib/components/data-view/{table/activation → common/activation/model}/item-activation-event.d.ts +0 -0
  36. /package/lib/components/data-view/{table/activation → common/activation/model}/item-activation-options.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { ActivationEventSource } from '../table/activation/activation-event-source';
1
+ import { ActivationEventSource } from '../common/activation/model/activation-event-source';
2
2
  export declare class MasterDetailActivationEvent<T> {
3
3
  readonly item: T;
4
4
  readonly creating: boolean;
@@ -1,5 +1,5 @@
1
1
  export * from './base/public_api';
2
- export * from './common/elder-data-common.module';
2
+ export * from './common/public_api';
3
3
  export * from './table/elder-table.module';
4
4
  export * from './simple/elder-simple-selection-view/elder-simple-selection-view.module';
5
5
  export * from './grid/elder-grid.module';
@@ -1,9 +1,12 @@
1
- import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { ElderTableActivationDirective } from './elder-table-activation.directive';
1
+ import { DestroyRef, EventEmitter, OnInit } from '@angular/core';
3
2
  import { ElderDialogService } from '../../../dialogs/elder-dialog.service';
3
+ import { DataViewActivationController } from '../../common/activation/data-view-activation-controller.service';
4
+ import { ElderTableComponent } from '../elder-table/elder-table.component';
4
5
  import * as i0 from "@angular/core";
5
- export declare class ElderDeleteActiveDirective<T = any> implements OnInit, OnDestroy {
6
- private readonly activation;
6
+ export declare class ElderDeleteActiveDirective<T = any> implements OnInit {
7
+ private readonly elderTable;
8
+ private readonly destroyRef;
9
+ private readonly activationController;
7
10
  private readonly elderDialog;
8
11
  /***************************************************************************
9
12
  * *
@@ -12,11 +15,7 @@ export declare class ElderDeleteActiveDirective<T = any> implements OnInit, OnDe
12
15
  **************************************************************************/
13
16
  private readonly logger;
14
17
  private latestDeleteRequest;
15
- private readonly destroy$;
16
- /**
17
- * Emits when the active item should be deleted.
18
- */
19
- readonly requestDelete: EventEmitter<T>;
18
+ private readonly requestDelete;
20
19
  /**
21
20
  * Emits when the active item should be deleted.
22
21
  */
@@ -27,14 +26,13 @@ export declare class ElderDeleteActiveDirective<T = any> implements OnInit, OnDe
27
26
  * Constructor *
28
27
  * *
29
28
  **************************************************************************/
30
- constructor(activation: ElderTableActivationDirective<any>, elderDialog: ElderDialogService);
29
+ constructor(elderTable: ElderTableComponent, destroyRef: DestroyRef, activationController: DataViewActivationController<T>, elderDialog: ElderDialogService);
31
30
  /***************************************************************************
32
31
  * *
33
32
  * Life Cycle *
34
33
  * *
35
34
  **************************************************************************/
36
35
  ngOnInit(): void;
37
- ngOnDestroy(): void;
38
36
  /***************************************************************************
39
37
  * *.
40
38
  * Host Listeners *
@@ -1,40 +1,30 @@
1
- import { AfterViewInit, OnDestroy } from '@angular/core';
2
- import { ElderTableRowDirective } from '../elder-table-row.directive';
3
- import { BehaviorSubject, Observable } from 'rxjs';
1
+ import { DestroyRef } from '@angular/core';
2
+ import { Observable } from 'rxjs';
4
3
  import { ElderTableComponent } from '../elder-table/elder-table.component';
5
- import { ElderTableActivationOptions } from './elder-table-activation-options';
6
- import { ItemActivationOptions } from './item-activation-options';
7
- import { ItemActivationEvent } from './item-activation-event';
8
- import { ElderActivationContext } from './elder-activation-context';
4
+ import { ElderActivationOptions } from '../../common/activation/elder-activation-options';
5
+ import { ItemActivationOptions } from '../../common/activation/model/item-activation-options';
6
+ import { ItemActivationEvent } from '../../common/activation/model/item-activation-event';
9
7
  import { NoInputArgs } from '../../../../common/utils/input-utils';
8
+ import { ActivationModel } from '../../common/activation/model/activation-model';
9
+ import { DataViewActivationController } from '../../common/activation/data-view-activation-controller.service';
10
10
  import * as i0 from "@angular/core";
11
- export declare class ElderTableActivationDirective<T> implements ElderActivationContext<T>, AfterViewInit, OnDestroy {
11
+ export declare class ElderTableActivationDirective<T> {
12
12
  private readonly elderTable;
13
+ private readonly destroyRef;
14
+ private readonly activationModel;
15
+ readonly controller: DataViewActivationController<T>;
13
16
  /***************************************************************************
14
17
  * *
15
18
  * Fields *
16
19
  * *
17
20
  **************************************************************************/
18
21
  private readonly logger;
19
- private readonly destroy$;
20
- private readonly itemActivationEventSubject;
21
- private _data;
22
- readonly activeItem$: BehaviorSubject<T>;
23
- readonly rows$: BehaviorSubject<ElderTableRowDirective<T>[]>;
24
- private _activationOptions;
25
22
  /***************************************************************************
26
23
  * *
27
24
  * Constructor *
28
25
  * *
29
26
  **************************************************************************/
30
- constructor(elderTable: ElderTableComponent);
31
- /***************************************************************************
32
- * *
33
- * Life Cycle *
34
- * *
35
- **************************************************************************/
36
- ngAfterViewInit(): void;
37
- ngOnDestroy(): void;
27
+ constructor(elderTable: ElderTableComponent, destroyRef: DestroyRef, activationModel: ActivationModel<T>, controller: DataViewActivationController<T>);
38
28
  /***************************************************************************
39
29
  * *.
40
30
  * Host Listeners *
@@ -46,8 +36,7 @@ export declare class ElderTableActivationDirective<T> implements ElderActivation
46
36
  * Properties *
47
37
  * *
48
38
  **************************************************************************/
49
- set activationOptions(options: ElderTableActivationOptions | NoInputArgs);
50
- get activationOptions(): ElderTableActivationOptions;
39
+ set activationOptions(options: ElderActivationOptions | NoInputArgs);
51
40
  get activeItemEventChange(): Observable<ItemActivationEvent<T>>;
52
41
  get activeItemChange(): Observable<T>;
53
42
  get activeItem(): T;
@@ -59,32 +48,6 @@ export declare class ElderTableActivationDirective<T> implements ElderActivation
59
48
  **************************************************************************/
60
49
  activate(item: T, options: ItemActivationOptions): void;
61
50
  activateAndFocus(item: T): void;
62
- isItemActive(item: T): boolean;
63
- hasItemFocus(item: T): boolean;
64
- nextCloseTo(active: T): T;
65
- /***************************************************************************
66
- * *
67
- * Private methods *
68
- * *
69
- **************************************************************************/
70
- private updateActiveItem;
71
- private updateRowsActivation;
72
- private updateRowActivation;
73
- private rowDataUpdated;
74
- private deactivateById;
75
- private getRowForItem;
76
- private handleAutoActivations;
77
- private get hasActiveItem();
78
- private activateFirst;
79
- private activateLast;
80
- private previousRowItem;
81
- private nextRowItem;
82
- private getCurrentIndex;
83
- private getItemAtIndex;
84
- private findItemIndex;
85
- private itemEquals;
86
- private itemEqualsId;
87
- private getId;
88
51
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableActivationDirective<any>, never>;
89
52
  static ɵdir: i0.ɵɵDirectiveDeclaration<ElderTableActivationDirective<any>, "elder-table[elderTableActivation]", ["elderTableActivation"], { "activationOptions": { "alias": "elderTableActivation"; "required": false; }; "activeItem": { "alias": "activeItem"; "required": false; }; }, { "activeItemEventChange": "activeItemEventChange"; "activeItemChange": "activeItemChange"; }, never, never, true, never>;
90
53
  }
@@ -1,7 +1,2 @@
1
- export * from './activation-event-source';
2
- export * from './item-activation-event';
3
- export * from './elder-activation-context';
4
1
  export * from './elder-delete-active.directive';
5
2
  export * from './elder-table-activation.directive';
6
- export * from './elder-table-activation-options';
7
- export * from './item-activation-options';
@@ -1,9 +1,9 @@
1
- import { AfterContentInit, AfterViewInit, ChangeDetectorRef, NgZone, OnInit, QueryList, TemplateRef, TrackByFunction } from '@angular/core';
1
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, NgZone, OnInit, QueryList, Signal, TemplateRef, TrackByFunction } from '@angular/core';
2
2
  import { MatPaginator } from '@angular/material/paginator';
3
3
  import { MatSort } from '@angular/material/sort';
4
4
  import { IDataContext } from '../../../../common/data/data-context/data-context';
5
5
  import { SelectionModel } from '../../../../common/selection/selection-model';
6
- import { BehaviorSubject, Observable } from 'rxjs';
6
+ import { BehaviorSubject } from 'rxjs';
7
7
  import { CdkColumnDef, CdkRowDef, CdkTable } from '@angular/cdk/table';
8
8
  import { ElderTableRowDirective } from '../elder-table-row.directive';
9
9
  import { IDataSource } from '../../../../common/data/datasource/data-source';
@@ -13,7 +13,7 @@ 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
15
  import * as i0 from "@angular/core";
16
- export declare class ElderTableComponent extends ElderDataViewBaseComponent implements OnInit, AfterContentInit, AfterViewInit {
16
+ export declare class ElderTableComponent<T = any> extends ElderDataViewBaseComponent<T> implements OnInit, AfterContentInit, AfterViewInit {
17
17
  readonly tableModel: ElderTableModel;
18
18
  private readonly parentExtension;
19
19
  private cdr;
@@ -23,7 +23,7 @@ export declare class ElderTableComponent extends ElderDataViewBaseComponent impl
23
23
  * Fields *
24
24
  * *
25
25
  **************************************************************************/
26
- private readonly logger;
26
+ private readonly log;
27
27
  /**
28
28
  * Load next chunk after current is done
29
29
  */
@@ -61,13 +61,11 @@ export declare class ElderTableComponent extends ElderDataViewBaseComponent impl
61
61
  keepSelection: boolean;
62
62
  showFooter: boolean;
63
63
  denseHorizontal: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
64
- canLoadMore$: Observable<boolean>;
65
- total$: Observable<string>;
66
64
  /**
67
65
  * The table toolbar
68
66
  */
69
67
  toolbarRowTemplateQuery: QueryList<TemplateRef<any>>;
70
- readonly toolbarRowTemplates$: BehaviorSubject<TemplateRef<any>[]>;
68
+ readonly toolbarRowTemplates: import("@angular/core").WritableSignal<TemplateRef<any>[]>;
71
69
  /**
72
70
  * Selection model life cycle
73
71
  */
@@ -76,18 +74,19 @@ export declare class ElderTableComponent extends ElderDataViewBaseComponent impl
76
74
  /**
77
75
  * Gets the current rows of this table.
78
76
  */
79
- readonly rows$: BehaviorSubject<ElderTableRowDirective<any>[]>;
77
+ readonly rows$: BehaviorSubject<ElderTableRowDirective<T>[]>;
80
78
  /**
81
79
  * The index of this table group extension
82
80
  * @private
83
81
  */
84
82
  private readonly _extensionGroupIndex;
83
+ readonly displayedColumnsInner: Signal<string[] | undefined>;
85
84
  /***************************************************************************
86
85
  * *
87
86
  * Constructor *
88
87
  * *
89
88
  **************************************************************************/
90
- constructor(tableModel: ElderTableModel, selectionModel: SelectionModel<any>, dataViewOptionsProvider: ElderDataViewOptionsProvider, matSort: MatSort, parentExtension: ElderTableExtensionDirective, cdr: ChangeDetectorRef, zone: NgZone);
89
+ constructor(tableModel: ElderTableModel, selectionModel: SelectionModel<T>, dataViewOptionsProvider: ElderDataViewOptionsProvider, matSort: MatSort, parentExtension: ElderTableExtensionDirective, cdr: ChangeDetectorRef, zone: NgZone);
91
90
  /***************************************************************************
92
91
  * *
93
92
  * Life Cycle *
@@ -105,8 +104,8 @@ export declare class ElderTableComponent extends ElderDataViewBaseComponent impl
105
104
  * @deprecated
106
105
  */
107
106
  set toolbarTemplate(template: TemplateRef<any>);
108
- set data(data: Array<any> | IDataSource<any> | IDataContext<any>);
109
- protected onDataContextSet(data: IDataContext<any>): void;
107
+ set data(data: Array<T> | IDataSource<T> | IDataContext<T>);
108
+ protected onDataContextSet(data: IDataContext<T>): void;
110
109
  set displayedColumns(displayedColumns: string[]);
111
110
  get displayedColumns(): string[];
112
111
  /** Indicates if selection column is shown. */
@@ -118,14 +117,16 @@ export declare class ElderTableComponent extends ElderDataViewBaseComponent impl
118
117
  * *
119
118
  **************************************************************************/
120
119
  requestMoreDataZoned(event: unknown): void;
121
- get trackByFn(): TrackByFunction<any>;
122
- isDataValid(data: any): boolean;
120
+ get trackByFn(): TrackByFunction<T>;
121
+ isDataValid(data: T[]): boolean;
122
+ hasItemFocus(item: T): boolean;
123
123
  /***************************************************************************
124
124
  * *
125
125
  * Private Methods *
126
126
  * *
127
127
  **************************************************************************/
128
128
  private setupSelectionLifeCycle;
129
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableComponent, [null, { optional: true; }, { optional: true; skipSelf: true; }, { optional: true; }, { optional: true; skipSelf: true; }, null, null]>;
130
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderTableComponent, "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>;
129
+ private getRowForItem;
130
+ 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>;
131
132
  }
@@ -1,9 +1,10 @@
1
1
  import { ElementRef, Renderer2 } from '@angular/core';
2
- import { ElderActivationContext } from './activation/elder-activation-context';
2
+ import { ActivationModel } from '../common/activation/model/activation-model';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class ElderTableRowDirective<T> {
5
5
  private readonly rowRef;
6
6
  private readonly renderer;
7
+ private readonly activationModel;
7
8
  /***************************************************************************
8
9
  * *
9
10
  * Fields *
@@ -12,14 +13,16 @@ export declare class ElderTableRowDirective<T> {
12
13
  private readonly logger;
13
14
  private _activated;
14
15
  private _model;
15
- private readonly _activationDir$;
16
- private readonly focused$;
16
+ private readonly _focused;
17
17
  /***************************************************************************
18
18
  * *
19
19
  * Constructor *
20
20
  * *
21
21
  **************************************************************************/
22
- constructor(rowRef: ElementRef<HTMLTableRowElement>, renderer: Renderer2);
22
+ constructor(rowRef: ElementRef<HTMLTableRowElement>, renderer: Renderer2, activationModel: ActivationModel);
23
+ private handleActivationEvent;
24
+ private isItemActive;
25
+ private updateRowActivation;
23
26
  /***************************************************************************
24
27
  * *
25
28
  * Host Listener *
@@ -33,8 +36,8 @@ export declare class ElderTableRowDirective<T> {
33
36
  * Host Bindings *
34
37
  * *
35
38
  **************************************************************************/
36
- get activated(): boolean;
37
- set activated(value: boolean);
39
+ private get activated();
40
+ private set activated(value);
38
41
  /***************************************************************************
39
42
  * *
40
43
  * Properties *
@@ -48,7 +51,6 @@ export declare class ElderTableRowDirective<T> {
48
51
  * Public API *
49
52
  * *
50
53
  **************************************************************************/
51
- bindTableActivation(activationDir: ElderActivationContext<T>): void;
52
54
  bringToView(): void;
53
55
  focus(): void;
54
56
  /***************************************************************************
@@ -58,6 +60,6 @@ export declare class ElderTableRowDirective<T> {
58
60
  **************************************************************************/
59
61
  private enableRowFocus;
60
62
  private activatedClassEnabled;
61
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableRowDirective<any>, never>;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderTableRowDirective<any>, [null, null, { optional: true; }]>;
62
64
  static ɵdir: i0.ɵɵDirectiveDeclaration<ElderTableRowDirective<any>, "tr[elderTableRow]", ["elderTableRow"], { "model": { "alias": "elderTableRow"; "required": false; }; }, {}, never, never, true, never>;
63
65
  }
@@ -23,7 +23,13 @@ export declare class ElderLocalizedInputTableComponent<T extends Localized> exte
23
23
  readonly textColumns$: BehaviorSubject<ElderLocalizedTextColumnDirective[]>;
24
24
  readonly defaultLanguageTags$: BehaviorSubject<string[]>;
25
25
  dense: boolean;
26
+ /**
27
+ * @deprecated No longer supported
28
+ */
26
29
  float: boolean;
30
+ /**
31
+ * @deprecated No longer supported
32
+ */
27
33
  embedded: boolean;
28
34
  private readonly destroy$;
29
35
  /***************************************************************************
@@ -1,17 +1,21 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { SelectionModel } from '../../../common/selection/selection-model';
3
- import { BehaviorSubject, Observable } from 'rxjs';
3
+ import { IElderDataView } from '../../data-view/base/elder-data-view';
4
+ import { Observable } from 'rxjs';
4
5
  import { ThemePalette } from '@angular/material/core';
6
+ import { IDataContext } from '../../../common/data/data-context/data-context';
7
+ import { IDataSource } from '../../../common/data/datasource/data-source';
5
8
  import * as i0 from "@angular/core";
6
- export declare class ElderChipListSelectComponent {
7
- selectionModel: SelectionModel<any>;
9
+ export declare class ElderChipListSelectComponent<T = any> implements IElderDataView {
10
+ selectionModel: SelectionModel<T>;
8
11
  /***************************************************************************
9
12
  * *
10
13
  * Fields *
11
14
  * *
12
15
  **************************************************************************/
13
16
  private readonly log;
14
- data$: BehaviorSubject<any[]>;
17
+ private readonly _dataSource$;
18
+ private readonly _dataContext$;
15
19
  /**
16
20
  * The property used to compare two values.
17
21
  * Useful if the values are entities with an id property.
@@ -30,20 +34,24 @@ export declare class ElderChipListSelectComponent {
30
34
  */
31
35
  stacked: false;
32
36
  itemClick: EventEmitter<any>;
37
+ readonly data$: Observable<T[]>;
33
38
  /***************************************************************************
34
39
  * *
35
40
  * Constructor *
36
41
  * *
37
42
  **************************************************************************/
38
- constructor(selectionModel: SelectionModel<any>);
43
+ constructor(selectionModel: SelectionModel<T>);
44
+ hasItemFocus(item: any): boolean;
39
45
  /***************************************************************************
40
46
  * *
41
47
  * Properties *
42
48
  * *
43
49
  **************************************************************************/
44
- set data(data: any[]);
45
- set selection(selection: any[]);
46
- get selectionChange(): Observable<any[]>;
50
+ set data(data: T[]);
51
+ set dataSource(dataSource: IDataSource<T>);
52
+ get dataContext$(): Observable<IDataContext<T>>;
53
+ set selection(selection: T[]);
54
+ get selectionChange(): Observable<T[]>;
47
55
  get selectionSingleChange(): Observable<any>;
48
56
  set selectionMultiEnabled(enableMultiSelection: boolean);
49
57
  /***************************************************************************
@@ -68,6 +76,6 @@ export declare class ElderChipListSelectComponent {
68
76
  * *
69
77
  **************************************************************************/
70
78
  private getId;
71
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderChipListSelectComponent, [{ optional: true; }]>;
72
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderChipListSelectComponent, " elder-chip-list-select", never, { "data$": { "alias": "data$"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; "displayField": { "alias": "displayField"; "required": false; }; "color": { "alias": "color"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "data": { "alias": "data"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "selectionMultiEnabled": { "alias": "selectionMultiEnabled"; "required": false; }; }, { "itemClick": "itemClick"; "selectionChange": "selectionChange"; "selectionSingleChange": "selectionSingleChange"; }, never, never, true, never>;
79
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderChipListSelectComponent<any>, [{ optional: true; }]>;
80
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderChipListSelectComponent<any>, " elder-chip-list-select", never, { "idField": { "alias": "idField"; "required": false; }; "displayField": { "alias": "displayField"; "required": false; }; "color": { "alias": "color"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "data": { "alias": "data"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "selectionMultiEnabled": { "alias": "selectionMultiEnabled"; "required": false; }; }, { "itemClick": "itemClick"; "selectionChange": "selectionChange"; "selectionSingleChange": "selectionSingleChange"; }, never, never, true, never>;
73
81
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elderbyte/ngx-starter",
3
- "version": "19.1.26",
3
+ "version": "19.2.0",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^18.0.0 || ^19.0.0",
6
6
  "@angular/common": "^18.0.0 || ^19.0.0",
@@ -1,5 +1,14 @@
1
1
  $elder-tile-padding: 8px;
2
2
 
3
+ .elder-grid-tile {
4
+ flex: 0 1 100%;
5
+ flex-grow: 1;
6
+ margin: 0 $elder-tile-padding;
7
+ width: 100%;
8
+ height: 100%;
9
+ cursor: pointer;
10
+ }
11
+
3
12
  .elder-grid-tile-row {
4
13
  display: flex;
5
14
  flex-direction: row;
@@ -16,36 +25,6 @@ $elder-tile-padding: 8px;
16
25
  height: 100%;
17
26
  }
18
27
 
19
- .elder-grid-tile-content {
20
- position: relative;
21
- width: 100%;
22
- height: 100%;
23
- overflow: hidden;
24
- }
25
-
26
- .elder-grid-tile-overlay {
27
- position: absolute;
28
- left: 0;
29
- top: 0;
30
- right: 0;
31
- bottom: 0;
32
- transition:
33
- background-color 0.1s ease-in,
34
- opacity 0.1s ease-in;
35
- }
36
-
37
- .elder-click-through {
38
- pointer-events: none;
39
- }
40
-
41
- .elder-grid-tile-overlay-visible {
42
- opacity: 1;
43
- }
44
-
45
- .elder-grid-tile-overlay-hidden {
46
- opacity: 0;
47
- }
48
-
49
28
  .elder-grid-container {
50
29
  background-color: var(--elder-grid-background-color);
51
30
  }
@@ -65,53 +44,3 @@ $elder-tile-padding: 8px;
65
44
  .elder-grid-footer {
66
45
  min-height: var(--elder-data-element-footer-height);
67
46
  }
68
-
69
- .elder-grid-tile {
70
- overflow: hidden;
71
- flex: 0 1 100%;
72
- flex-grow: 1;
73
- margin: 0 $elder-tile-padding;
74
- width: 100%;
75
- height: 100%;
76
- cursor: pointer;
77
- border-radius: var(--elder-pane-border-radius);
78
- background-color: var(--md-sys-color-surface-container-low);
79
- text-align: left;
80
- transition:
81
- box-shadow 200ms cubic-bezier(0, 0, 0.2, 1),
82
- border 0.25s linear;
83
- }
84
-
85
- .elder-grid-tile:hover {
86
- //border-color: rgba(var(--md-sys-color-primary), 0.75);
87
- border-color: var(--md-sys-color-primary);
88
- }
89
-
90
- .elder-grid-tile-content:hover .elder-grid-tile-overlay {
91
- opacity: 1;
92
- background-color: rgba(white, 0.08);
93
- }
94
-
95
- .elder-grid-tile:active {
96
- z-index: 100;
97
- box-shadow: var(--elder-box-shadow-default);
98
- }
99
-
100
- .elder-grid-tile-check {
101
- pointer-events: auto;
102
- mat-icon {
103
- color: var(--md-sys-color-outline-variant);
104
- background-color: var(--md-sys-color-surface);
105
- border-radius: 12px;
106
- }
107
-
108
- mat-icon.elder-selected {
109
- color: var(--md-sys-color-tertiary);
110
- }
111
- }
112
-
113
- .elder-grid-tile-check:hover {
114
- mat-icon {
115
- color: var(--md-sys-color-primary);
116
- }
117
- }
@@ -0,0 +1,110 @@
1
+ .elder-tile {
2
+ border-radius: var(--elder-pane-border-radius);
3
+ background-color: var(--md-sys-color-surface-container-low);
4
+ text-align: left;
5
+ overflow: hidden;
6
+ transition:
7
+ box-shadow 200ms cubic-bezier(0, 0, 0.2, 1),
8
+ border 0.25s linear;
9
+ }
10
+
11
+ .elder-tile:hover {
12
+ //border-color: rgba(var(--md-sys-color-primary), 0.75);
13
+ border-color: var(--md-sys-color-primary);
14
+ }
15
+
16
+ .elder-tile-content {
17
+ position: relative;
18
+ width: 100%;
19
+ height: 100%;
20
+
21
+ border-radius: var(--elder-pane-border-radius);
22
+ }
23
+
24
+ .elder-tile-content:hover .elder-tile-overlay {
25
+ opacity: 1;
26
+ background-color: rgba(white, 0.08);
27
+ }
28
+
29
+ .elder-tile:active {
30
+ z-index: 100;
31
+ box-shadow: var(--elder-box-shadow-default);
32
+ }
33
+
34
+ .elder-selection-overlay {
35
+ position: absolute;
36
+ left: 0;
37
+ top: 0;
38
+ right: 0;
39
+ bottom: 0;
40
+ transition:
41
+ background-color 0.1s ease-in,
42
+ opacity 0.1s ease-in;
43
+ }
44
+
45
+ .elder-tile-overlay {
46
+ position: absolute;
47
+ left: 0;
48
+ top: 0;
49
+ right: 0;
50
+ bottom: 0;
51
+ }
52
+
53
+ .elder-selection-overlay-visible {
54
+ opacity: 1;
55
+ tab-index: 0;
56
+ }
57
+
58
+ .elder-selection-overlay-hidden {
59
+ opacity: 0;
60
+ tab-index: -1;
61
+ }
62
+
63
+ .elder-click-through {
64
+ pointer-events: none;
65
+ }
66
+
67
+ .elder-tile-check {
68
+ pointer-events: auto;
69
+ mat-icon {
70
+ color: var(--md-sys-color-outline-variant);
71
+ background-color: var(--md-sys-color-surface);
72
+ border-radius: 12px;
73
+ }
74
+
75
+ mat-icon.elder-selected {
76
+ color: var(--md-sys-color-tertiary);
77
+ }
78
+ }
79
+
80
+ .elder-tile-check:hover {
81
+ mat-icon {
82
+ color: var(--md-sys-color-primary);
83
+ }
84
+ }
85
+
86
+ .elder-tile:focus {
87
+ // Disable browser focus style
88
+ // box-shadow: color-mix(in rgb, 80%, black);
89
+ //background-color: color-mix(in sRGB, var(--elder-color-highlight-strong) 80%, black)
90
+ outline: 2px solid var(--elder-color-highlight-focus);
91
+
92
+ // background-color: var(--elder-color-highlight-strong);
93
+ }
94
+
95
+ .elder-tile.activated:focus {
96
+ // Disable browser focus style
97
+ // box-shadow: color-mix(in rgb, 80%, black);
98
+ //background-color: color-mix(in sRGB, var(--elder-color-highlight-strong) 80%, black)
99
+ outline: 2px solid var(--elder-color-highlight-focus);
100
+ // background-color: var(--elder-color-highlight-strong);
101
+ }
102
+
103
+ .elder-tile.activated {
104
+ // background-color: var(--elder-color-highlight-strong);
105
+ outline: 2px dashed var(--elder-color-highlight-focus);
106
+ .elder-tile-overlay {
107
+ // opacity: 1;
108
+ // background-color: color-mix(in sRGB, var(--elder-color-highlight-strong), transparent 70%);
109
+ }
110
+ }