@reforgium/data-grid 3.2.2 → 3.2.4

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.
@@ -72,7 +72,7 @@ class DataGridDropdown {
72
72
  </div>
73
73
  }
74
74
  </div>
75
- `, isInline: true, styles: [":host{--re-data-grid-dropdown-width: 120px;--re-data-grid-dropdown-height: 2rem;--re-data-grid-dropdown-radius: .375rem;--re-data-grid-dropdown-border: 1px solid var(--border-color, --re-data-grid-paginator-separator-color, #e2e8f0);--re-data-grid-dropdown-surface: var(--surface-neutral, --re-data-grid-surface);--re-data-grid-dropdown-color: var(--text-primary, #1e293b);--re-data-grid-dropdown-menu-z-index: 30;--re-data-grid-dropdown-hover-surface: rgba(15, 23, 42, .05);--re-data-grid-dropdown-active-surface: rgba(15, 23, 42, .08);--re-data-grid-dropdown-shadow: 0 8px 20px rgba(0, 0, 0, .12);display:inline-flex;position:relative;min-width:var(--re-data-grid-dropdown-width);color:var(--re-data-grid-dropdown-color)}.re-dg-dd{position:relative;width:100%}.re-dg-dd-trigger{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:var(--re-data-grid-dropdown-height);border-radius:var(--re-data-grid-dropdown-radius);border:var(--re-data-grid-dropdown-border);background:var(--re-data-grid-dropdown-surface);color:inherit;padding:0 .625rem;cursor:pointer}.re-dg-dd-menu{position:absolute;top:calc(100% + .25rem);left:0;z-index:var(--re-data-grid-dropdown-menu-z-index);width:100%;border-radius:var(--re-data-grid-dropdown-radius);border:var(--re-data-grid-dropdown-border);background:var(--re-data-grid-dropdown-surface);box-shadow:var(--re-data-grid-dropdown-shadow);overflow:hidden}.re-dg-dd-option{width:100%;height:var(--re-data-grid-dropdown-height);border:0;background:transparent;color:inherit;text-align:left;padding:0 .625rem;cursor:pointer}.re-dg-dd-option:hover:not(.re-dg-dd-option--disabled){background:var(--re-data-grid-dropdown-hover-surface)}.re-dg-dd-option--active{background:var(--re-data-grid-dropdown-active-surface);font-weight:600}.re-dg-dd-option--disabled{opacity:.6;cursor:not-allowed}.re-dg-dd-chevron{transition:transform .2s}.re-dg-dd-chevron--opened{transform:rotate(180deg)}.re-dg-dd--disabled .re-dg-dd-trigger{opacity:.65;cursor:default}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
75
+ `, isInline: true, styles: [":host{--re-data-grid-dropdown-width: 120px;--re-data-grid-dropdown-height: 2rem;--re-data-grid-dropdown-radius: .375rem;--re-data-grid-dropdown-border: 1px solid var(--border-color, var(--re-data-grid-paginator-separator-color, #e2e8f0));--re-data-grid-dropdown-surface: var(--surface-neutral, var(--re-data-grid-surface, #ffffff));--re-data-grid-dropdown-color: var(--text-primary, #1e293b);--re-data-grid-dropdown-menu-z-index: 30;--re-data-grid-dropdown-hover-surface: rgba(15, 23, 42, .05);--re-data-grid-dropdown-active-surface: rgba(15, 23, 42, .08);--re-data-grid-dropdown-shadow: 0 8px 20px rgba(0, 0, 0, .12);display:inline-flex;position:relative;min-width:var(--re-data-grid-dropdown-width);color:var(--re-data-grid-dropdown-color)}.re-dg-dd{position:relative;width:100%}.re-dg-dd-trigger{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:var(--re-data-grid-dropdown-height);border-radius:var(--re-data-grid-dropdown-radius);border:var(--re-data-grid-dropdown-border);background:var(--re-data-grid-dropdown-surface);color:inherit;padding:0 .625rem;cursor:pointer}.re-dg-dd-menu{position:absolute;top:calc(100% + .25rem);left:0;z-index:var(--re-data-grid-dropdown-menu-z-index);width:100%;border-radius:var(--re-data-grid-dropdown-radius);border:var(--re-data-grid-dropdown-border);background:var(--re-data-grid-dropdown-surface);box-shadow:var(--re-data-grid-dropdown-shadow);overflow:hidden}.re-dg-dd-option{width:100%;height:var(--re-data-grid-dropdown-height);border:0;background:transparent;color:inherit;text-align:left;padding:0 .625rem;cursor:pointer}.re-dg-dd-option:hover:not(.re-dg-dd-option--disabled){background:var(--re-data-grid-dropdown-hover-surface)}.re-dg-dd-option--active{background:var(--re-data-grid-dropdown-active-surface);font-weight:600}.re-dg-dd-option--disabled{opacity:.6;cursor:not-allowed}.re-dg-dd-chevron{transition:transform .2s}.re-dg-dd-chevron--opened{transform:rotate(180deg)}.re-dg-dd--disabled .re-dg-dd-trigger{opacity:.65;cursor:default}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
76
76
  }
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DataGridDropdown, decorators: [{
78
78
  type: Component,
@@ -113,7 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
113
113
  </div>
114
114
  `, host: {
115
115
  'document:mousedown': 'onDocumentMouseDown($event.target)',
116
- }, styles: [":host{--re-data-grid-dropdown-width: 120px;--re-data-grid-dropdown-height: 2rem;--re-data-grid-dropdown-radius: .375rem;--re-data-grid-dropdown-border: 1px solid var(--border-color, --re-data-grid-paginator-separator-color, #e2e8f0);--re-data-grid-dropdown-surface: var(--surface-neutral, --re-data-grid-surface);--re-data-grid-dropdown-color: var(--text-primary, #1e293b);--re-data-grid-dropdown-menu-z-index: 30;--re-data-grid-dropdown-hover-surface: rgba(15, 23, 42, .05);--re-data-grid-dropdown-active-surface: rgba(15, 23, 42, .08);--re-data-grid-dropdown-shadow: 0 8px 20px rgba(0, 0, 0, .12);display:inline-flex;position:relative;min-width:var(--re-data-grid-dropdown-width);color:var(--re-data-grid-dropdown-color)}.re-dg-dd{position:relative;width:100%}.re-dg-dd-trigger{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:var(--re-data-grid-dropdown-height);border-radius:var(--re-data-grid-dropdown-radius);border:var(--re-data-grid-dropdown-border);background:var(--re-data-grid-dropdown-surface);color:inherit;padding:0 .625rem;cursor:pointer}.re-dg-dd-menu{position:absolute;top:calc(100% + .25rem);left:0;z-index:var(--re-data-grid-dropdown-menu-z-index);width:100%;border-radius:var(--re-data-grid-dropdown-radius);border:var(--re-data-grid-dropdown-border);background:var(--re-data-grid-dropdown-surface);box-shadow:var(--re-data-grid-dropdown-shadow);overflow:hidden}.re-dg-dd-option{width:100%;height:var(--re-data-grid-dropdown-height);border:0;background:transparent;color:inherit;text-align:left;padding:0 .625rem;cursor:pointer}.re-dg-dd-option:hover:not(.re-dg-dd-option--disabled){background:var(--re-data-grid-dropdown-hover-surface)}.re-dg-dd-option--active{background:var(--re-data-grid-dropdown-active-surface);font-weight:600}.re-dg-dd-option--disabled{opacity:.6;cursor:not-allowed}.re-dg-dd-chevron{transition:transform .2s}.re-dg-dd-chevron--opened{transform:rotate(180deg)}.re-dg-dd--disabled .re-dg-dd-trigger{opacity:.65;cursor:default}\n"] }]
116
+ }, styles: [":host{--re-data-grid-dropdown-width: 120px;--re-data-grid-dropdown-height: 2rem;--re-data-grid-dropdown-radius: .375rem;--re-data-grid-dropdown-border: 1px solid var(--border-color, var(--re-data-grid-paginator-separator-color, #e2e8f0));--re-data-grid-dropdown-surface: var(--surface-neutral, var(--re-data-grid-surface, #ffffff));--re-data-grid-dropdown-color: var(--text-primary, #1e293b);--re-data-grid-dropdown-menu-z-index: 30;--re-data-grid-dropdown-hover-surface: rgba(15, 23, 42, .05);--re-data-grid-dropdown-active-surface: rgba(15, 23, 42, .08);--re-data-grid-dropdown-shadow: 0 8px 20px rgba(0, 0, 0, .12);display:inline-flex;position:relative;min-width:var(--re-data-grid-dropdown-width);color:var(--re-data-grid-dropdown-color)}.re-dg-dd{position:relative;width:100%}.re-dg-dd-trigger{display:inline-flex;align-items:center;justify-content:space-between;width:100%;height:var(--re-data-grid-dropdown-height);border-radius:var(--re-data-grid-dropdown-radius);border:var(--re-data-grid-dropdown-border);background:var(--re-data-grid-dropdown-surface);color:inherit;padding:0 .625rem;cursor:pointer}.re-dg-dd-menu{position:absolute;top:calc(100% + .25rem);left:0;z-index:var(--re-data-grid-dropdown-menu-z-index);width:100%;border-radius:var(--re-data-grid-dropdown-radius);border:var(--re-data-grid-dropdown-border);background:var(--re-data-grid-dropdown-surface);box-shadow:var(--re-data-grid-dropdown-shadow);overflow:hidden}.re-dg-dd-option{width:100%;height:var(--re-data-grid-dropdown-height);border:0;background:transparent;color:inherit;text-align:left;padding:0 .625rem;cursor:pointer}.re-dg-dd-option:hover:not(.re-dg-dd-option--disabled){background:var(--re-data-grid-dropdown-hover-surface)}.re-dg-dd-option--active{background:var(--re-data-grid-dropdown-active-surface);font-weight:600}.re-dg-dd-option--disabled{opacity:.6;cursor:not-allowed}.re-dg-dd-chevron{transition:transform .2s}.re-dg-dd-chevron--opened{transform:rotate(180deg)}.re-dg-dd--disabled .re-dg-dd-trigger{opacity:.65;cursor:default}\n"] }]
117
117
  }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], selectValue: [{ type: i0.Output, args: ["selectValue"] }], root: [{ type: i0.ViewChild, args: ['root', { isSignal: true }] }] } });
118
118
 
119
119
  /**
@@ -1,2 +1,2 @@
1
- export { o as DATA_GRID_CONFIG, p as DATA_GRID_HEADER_TEXT_RESOLVER, q as DATA_GRID_TYPE_RENDERERS, r as DATA_GRID_TYPE_TRANSFORMERS, s as DEFAULT_DATA_GRID_DEFAULTS, y as DataGrid, i as DataGridCellEmptyDirective, j as DataGridCellLoadingDirective, b as DataGridCellTemplateDirective, h as DataGridDeclarativeCellDirective, f as DataGridDeclarativeColumn, g as DataGridDeclarativeHeaderDirective, n as DataGridExpanderIconDirective, d as DataGridHeaderTemplateDirective, e as DataGridRowDirective, l as DataGridSortIconDirective, k as DataGridStickyRowDirective, D as DataGridTypeCellTemplateDirective, t as provideDataGridDefaults, u as provideDataGridHeaderTextResolver, v as provideDataGridHeaderTextResolverWithParent, w as provideDataGridTypeRenderers, x as provideDataGridTypeTransformers } from './reforgium-data-grid-reforgium-data-grid-MQb2oHWO.mjs';
1
+ export { o as DATA_GRID_CONFIG, p as DATA_GRID_HEADER_TEXT_RESOLVER, q as DATA_GRID_TYPE_RENDERERS, r as DATA_GRID_TYPE_TRANSFORMERS, s as DEFAULT_DATA_GRID_DEFAULTS, y as DataGrid, i as DataGridCellEmptyDirective, j as DataGridCellLoadingDirective, b as DataGridCellTemplateDirective, h as DataGridDeclarativeCellDirective, f as DataGridDeclarativeColumn, g as DataGridDeclarativeHeaderDirective, n as DataGridExpanderIconDirective, d as DataGridHeaderTemplateDirective, e as DataGridRowDirective, l as DataGridSortIconDirective, k as DataGridStickyRowDirective, D as DataGridTypeCellTemplateDirective, z as gridBackendSortField, t as provideDataGridDefaults, u as provideDataGridHeaderTextResolver, v as provideDataGridHeaderTextResolverWithParent, w as provideDataGridTypeRenderers, x as provideDataGridTypeTransformers } from './reforgium-data-grid-reforgium-data-grid-BP7MSHYb.mjs';
2
2
  //# sourceMappingURL=reforgium-data-grid.mjs.map
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.2.2",
2
+ "version": "3.2.4",
3
3
  "name": "@reforgium/data-grid",
4
4
  "description": "reforgium DataGrid component",
5
5
  "author": "rtommievich",
@@ -32,8 +32,7 @@
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@angular/common": ">=18.0.0",
35
- "@angular/core": ">=18.0.0",
36
- "rxjs": ">=7.0.0"
35
+ "@angular/core": ">=18.0.0"
37
36
  },
38
37
  "files": [
39
38
  "fesm2022/*.mjs",
@@ -23,6 +23,7 @@ declare class DataGridPaginator {
23
23
  totalElements: _angular_core.InputSignalWithTransform<number, string | number | undefined>;
24
24
  pageSize: _angular_core.InputSignalWithTransform<number, string | number | undefined>;
25
25
  maxShowPages: _angular_core.InputSignalWithTransform<number, string | number | undefined>;
26
+ disabled: _angular_core.InputSignalWithTransform<boolean, string | boolean | undefined>;
26
27
  showFirstLast: _angular_core.InputSignalWithTransform<boolean, string | boolean | undefined>;
27
28
  firstLabel: _angular_core.InputSignal<string>;
28
29
  lastLabel: _angular_core.InputSignal<string>;
@@ -39,11 +40,12 @@ declare class DataGridPaginator {
39
40
  protected pageTpl: _angular_core.Signal<DataGridPaginatorPageDirective | undefined>;
40
41
  protected normalizedPageSizeOptions: _angular_core.Signal<DataGridDropdownOption<number>[]>;
41
42
  totalPages: _angular_core.Signal<number>;
43
+ protected normalizedCurrent: _angular_core.Signal<number>;
42
44
  pages: _angular_core.Signal<number[]>;
43
45
  protected goToPage(page: number): void;
44
46
  protected onPageSizeChange(value: string | number): void;
45
47
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataGridPaginator, never>;
46
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGridPaginator, "re-data-grid-paginator", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; "totalElements": { "alias": "totalElements"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "maxShowPages": { "alias": "maxShowPages"; "required": false; "isSignal": true; }; "showFirstLast": { "alias": "showFirstLast"; "required": false; "isSignal": true; }; "firstLabel": { "alias": "firstLabel"; "required": false; "isSignal": true; }; "lastLabel": { "alias": "lastLabel"; "required": false; "isSignal": true; }; "showPerPage": { "alias": "showPerPage"; "required": false; "isSignal": true; }; "perPageLabel": { "alias": "perPageLabel"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, ["firstSlotRefs", "lastSlotRefs", "pageSlotRefs"], never, true, never>;
48
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGridPaginator, "re-data-grid-paginator", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; "totalElements": { "alias": "totalElements"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "maxShowPages": { "alias": "maxShowPages"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showFirstLast": { "alias": "showFirstLast"; "required": false; "isSignal": true; }; "firstLabel": { "alias": "firstLabel"; "required": false; "isSignal": true; }; "lastLabel": { "alias": "lastLabel"; "required": false; "isSignal": true; }; "showPerPage": { "alias": "showPerPage"; "required": false; "isSignal": true; }; "perPageLabel": { "alias": "perPageLabel"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, ["firstSlotRefs", "lastSlotRefs", "pageSlotRefs"], never, true, never>;
47
49
  }
48
50
 
49
51
  type DataGridPaginatorEdgeTemplateContext = {
@@ -87,6 +87,18 @@ declare class DataGridHeaderTemplateDirective {
87
87
  * Used for identifying data properties in rows.
88
88
  */
89
89
  type DataKey<Data> = (keyof Data & string) | string;
90
+ /**
91
+ * Explicit backend-only field name for a sort that is not a property of the displayed row.
92
+ *
93
+ * This branded string is assignable to legacy `DataKey<T>` contracts, allowing gradual migration
94
+ * before a future major release narrows `DataKey<T>` to real row properties.
95
+ */
96
+ declare const gridBackendSortFieldBrand: unique symbol;
97
+ type GridBackendSortField = string & {
98
+ readonly [gridBackendSortFieldBrand]: 'GridBackendSortField';
99
+ };
100
+ /** Marks a backend-only sort field explicitly at the call site. */
101
+ declare const gridBackendSortField: (field: string) => GridBackendSortField;
90
102
  /**
91
103
  * Function type that resolves a value of type `Return` from an argument of type `Arg`.
92
104
  * Often used to transform row data or extract specific properties.
@@ -183,15 +195,15 @@ type _DefaultGridColumn<Data extends AnyDict = AnyDict> = BaseGridColumn<Data> &
183
195
  * Column definition using a custom value renderer function.
184
196
  *
185
197
  * Allows custom logic for transforming row data into display values.
186
- * Requires a tracking function for change detection optimization.
198
+ * Row identity is controlled by the grid-level `rowKey`, not this column.
187
199
  *
188
200
  * @template Data - Type of data objects displayed in the grid rows
189
201
  */
190
202
  type _ValuedGridColumn<Data extends AnyDict = AnyDict> = BaseGridColumn<Data> & {
191
203
  /**
192
- * Function returning unique identifier for the row (for change detection).
204
+ * @deprecated Not consumed by the renderer. Use grid-level `rowKey` for row identity.
193
205
  */
194
- track: (row: Data) => string;
206
+ track?: (row: Data) => string;
195
207
  /**
196
208
  * Function that resolves cell display value from row data.
197
209
  */
@@ -202,15 +214,15 @@ type _ValuedGridColumn<Data extends AnyDict = AnyDict> = BaseGridColumn<Data> &
202
214
  *
203
215
  * Provides maximum flexibility by allowing custom HTML templates
204
216
  * with full access to row data, column config, and cell context.
205
- * Requires a tracking function for change detection optimization.
217
+ * Row identity is controlled by the grid-level `rowKey`, not this column.
206
218
  *
207
219
  * @template Data - Type of data objects displayed in the grid rows
208
220
  */
209
221
  type _TemplatedGridColumn<Data extends AnyDict = AnyDict> = BaseGridColumn<Data> & {
210
222
  /**
211
- * Function returning unique identifier for the row (for change detection).
223
+ * @deprecated Not consumed by the renderer. Use grid-level `rowKey` for row identity.
212
224
  */
213
- track: (row: Data) => string;
225
+ track?: (row: Data) => string;
214
226
  /**
215
227
  * Angular TemplateRef for rendering cell content.
216
228
  */
@@ -393,6 +405,7 @@ type DeclarativeColumnDef<Data extends AnyDict = AnyDict> = {
393
405
  defaultValue?: AnyType;
394
406
  value?: GridCellRenderer<Data>;
395
407
  transformer?: GridCellTransformer<Data>;
408
+ /** @deprecated Not consumed by the renderer. Use grid-level rowKey for row identity. */
396
409
  track?: (row: Data) => string;
397
410
  tooltip?: GridColumnTooltip<Data>;
398
411
  };
@@ -449,6 +462,7 @@ declare class DataGridDeclarativeColumn<Data extends AnyDict = AnyDict> {
449
462
  defaultValue: _angular_core.InputSignal<any>;
450
463
  value: _angular_core.InputSignal<GridCellRenderer<Data> | undefined>;
451
464
  transformer: _angular_core.InputSignal<GridCellTransformer<Data> | undefined>;
465
+ /** @deprecated Not consumed by the renderer. Use the grid-level rowKey input. */
452
466
  track: _angular_core.InputSignal<((row: Data) => string) | undefined>;
453
467
  tooltip: _angular_core.InputSignal<GridColumnTooltip<Data> | undefined>;
454
468
  private headerTplRef;
@@ -597,6 +611,19 @@ type GridSortItem<Data = AnyDict> = {
597
611
  type GridMultiSortEvent<Data = AnyDict> = {
598
612
  sort: ReadonlyArray<GridSortItem<Data>>;
599
613
  };
614
+ /** Source operation that failed outside a source-owned error signal. */
615
+ type GridSourceRequestOperation = 'page' | 'page-size' | 'sort' | 'multi-sort' | 'prefetch';
616
+ /**
617
+ * Error emitted by the grid when a source request fails and the source does not expose error state.
618
+ */
619
+ type GridSourceRequestErrorEvent<Data extends AnyDict = AnyDict> = {
620
+ operation: GridSourceRequestOperation;
621
+ error: unknown;
622
+ page?: number;
623
+ pageSize?: number;
624
+ sort?: GridSortItem<Data> | null;
625
+ sorts?: ReadonlyArray<GridSortItem<Data>>;
626
+ };
600
627
  /**
601
628
  * Event emitted when row selection changes in the data grid.
602
629
  *
@@ -606,7 +633,7 @@ type GridMultiSortEvent<Data = AnyDict> = {
606
633
  * @template Data - Type of data objects in the grid
607
634
  */
608
635
  type GridSelectEvent<Data extends AnyDict = AnyDict> = {
609
- selected: (string | Data[DataKey<Data>])[];
636
+ selected: GridSelectionValue<Data>[];
610
637
  };
611
638
  /**
612
639
  * Event emitted when a row is clicked in the data grid.
@@ -745,6 +772,21 @@ type GridPinnedRows<Data extends AnyDict = AnyDict> = GridPinnedRow<Data>[];
745
772
  *
746
773
  * @template Data - Type of data objects displayed in the grid rows
747
774
  */
775
+ type GridPageResult<Data extends AnyDict = AnyDict> = {
776
+ /** Page identity returned by the loader. */
777
+ page: number;
778
+ /** Items belonging to the returned page only. */
779
+ items: ReadonlyArray<Data>;
780
+ /** Effective page size used for the request. */
781
+ pageSize?: number;
782
+ /** Total dataset size when known. */
783
+ totalElements?: number;
784
+ };
785
+ /** Optional request context passed to a stateless page loader. */
786
+ type GridPageRequestOptions = {
787
+ /** Aborted when the grid invalidates or supersedes the request. */
788
+ signal?: AbortSignal;
789
+ };
748
790
  interface GridPagedDataSource<Data extends AnyDict = AnyDict> {
749
791
  /** Current page payload. */
750
792
  items: Signal<Data[]>;
@@ -768,18 +810,39 @@ interface GridPagedDataSource<Data extends AnyDict = AnyDict> {
768
810
  * after the next request returns a short page.
769
811
  */
770
812
  totalElements?: number;
771
- /** Optional dataset revision signal. Increment to force the grid to clear its local page buffer. */
813
+ /**
814
+ * Optional dataset revision signal. Increment to force the grid to clear its local page buffer.
815
+ *
816
+ * Required (when present) to be incremented on any dataset growth, replacement, or filter/sort change:
817
+ * in `infinity` mode without `totalElements` the grid pins end-of-data state on the first short/empty
818
+ * page it sees, and only a version bump clears that pin. Mutating `items()` in place without bumping
819
+ * `version` will leave the grid with a stale row count.
820
+ */
772
821
  version?: Signal<number>;
822
+ /**
823
+ * Declares that this source's dataset never changes while the source instance is assigned.
824
+ * Immutable sources may omit `version`; replace the source instance for a new dataset.
825
+ */
826
+ immutable?: boolean;
773
827
  /** Current source-side sort state. */
774
828
  sort?: ReadonlyArray<GridSortItem<Data>>;
775
829
  /**
776
830
  * Optional prefetch strategy for infinity mode page buffering.
777
831
  * - `sequential` (default) is safest for latest-wins sources such as `PagedQueryStore`
778
- * - `parallel` warms nearby pages faster when the source supports concurrent `updatePage(...)` calls
832
+ * - `parallel` warms nearby pages faster when the source exposes explicit page results through `loadPage(...)`
779
833
  */
780
834
  prefetchMode?: 'sequential' | 'parallel';
781
- /** Load a specific page. */
782
- updatePage: (page: number) => Promise<unknown>;
835
+ /**
836
+ * Load a page without mutating shared source state.
837
+ *
838
+ * The returned page identity and items allow the grid to safely buffer parallel responses.
839
+ */
840
+ loadPage?: (page: number, options?: GridPageRequestOptions) => Promise<GridPageResult<Data>>;
841
+ /**
842
+ * Load a specific page by mutating the source state.
843
+ * @deprecated Prefer `loadPage` for stateless page loading; retained as a compatibility fallback.
844
+ */
845
+ updatePage?: (page: number) => Promise<unknown>;
783
846
  /** Update page size and load the first page. */
784
847
  updatePageSize?: (size: number) => Promise<unknown>;
785
848
  /** Update single-column sort and refresh the source. */
@@ -796,6 +859,28 @@ interface GridPagedDataSource<Data extends AnyDict = AnyDict> {
796
859
  * @template Data - Type of data objects displayed in the grid rows
797
860
  */
798
861
  type GridSelection<Data extends AnyDict = AnyDict> = _Selectless | _Selectfull<Data>;
862
+ /** A non-null row field value that can participate in selection state. */
863
+ type GridSelectionValue<Data extends AnyDict = AnyDict> = string | Exclude<Data[keyof Data], null | undefined>;
864
+ /**
865
+ * Determines whether a data refresh may discard keys that are not currently loaded.
866
+ *
867
+ * `preserve-unloaded` is the default and keeps selections across source pages.
868
+ * `loaded-only` is available for datasets where a loaded page is the complete selection scope.
869
+ */
870
+ type GridSelectionPolicy = 'loaded-only' | 'preserve-unloaded';
871
+ /**
872
+ * Key-correlated selection configuration for consumers that want strict selection value checking
873
+ * without narrowing the legacy `GridSelection<T>` compatibility type.
874
+ */
875
+ type GridSelectionByKey<Data extends AnyDict, Key extends keyof Data & string> = {
876
+ mode: 'none';
877
+ } | {
878
+ mode: 'single' | 'multi';
879
+ key: Key;
880
+ defaultSelectedKeys?: ReadonlyArray<Exclude<Data[Key], null | undefined>>;
881
+ /** @deprecated Use `defaultSelectedKeys`. */
882
+ defaultSelected?: ReadonlyArray<Exclude<Data[Key], null | undefined>>;
883
+ };
799
884
  /**
800
885
  * Selection configuration when row selection is disabled.
801
886
  *
@@ -822,9 +907,13 @@ type _Selectfull<Data extends AnyDict> = {
822
907
  */
823
908
  key: DataKey<Data>;
824
909
  /**
825
- * Optional array of initially selected row identifiers.
910
+ * Optional array of initially selected row values.
911
+ *
912
+ * @deprecated Use `defaultSelectedKeys`; this legacy property historically accepted values despite its incorrect type.
826
913
  */
827
- defaultSelected?: DataKey<Data>[];
914
+ defaultSelected?: GridSelectionValue<Data>[];
915
+ /** Optional array of initially selected row values for uncontrolled selection. */
916
+ defaultSelectedKeys?: ReadonlyArray<GridSelectionValue<Data>>;
828
917
  };
829
918
  /**
830
919
  * Configuration for a single pinned row in the data grid.
@@ -843,6 +932,10 @@ type GridPinnedRow<Data extends AnyDict = AnyDict> = {
843
932
  * Relative display order when multiple rows are pinned at the same position.
844
933
  */
845
934
  order?: number;
935
+ /**
936
+ * Stable identity inside its top or bottom region. Falls back to the regional index when omitted.
937
+ */
938
+ id?: string | number;
846
939
  /**
847
940
  * Static data or function returning data for the row.
848
941
  */
@@ -1216,7 +1309,7 @@ declare class Selector<Data extends AnyDict> {
1216
1309
  * defined in the selection configuration.
1217
1310
  * Defaults to an empty array.
1218
1311
  */
1219
- selectedKeys: _angular_core.WritableSignal<DataKey<Data>[]>;
1312
+ selectedKeys: _angular_core.WritableSignal<GridSelectionValue<Data>[]>;
1220
1313
  private selectedKeySet;
1221
1314
  /**
1222
1315
  * Computed signal indicating the overall selection state of all rows.
@@ -1251,7 +1344,7 @@ declare class Selector<Data extends AnyDict> {
1251
1344
  * @returns The updated array of selected keys.
1252
1345
  * @throws {Error} If selection mode is not `'multi'`.
1253
1346
  */
1254
- selectAll(): DataKey<Data>[];
1347
+ selectAll(): GridSelectionValue<Data>[];
1255
1348
  /**
1256
1349
  * Selects or deselects a specific row.
1257
1350
  *
@@ -1264,7 +1357,7 @@ declare class Selector<Data extends AnyDict> {
1264
1357
  * @returns The updated array of selected keys after the operation.
1265
1358
  * @throws {Error} If selection mode is `'none'`.
1266
1359
  */
1267
- select(row: Data): (string | (Data[DataKey<Data>] & {}))[];
1360
+ select(row: Data): (GridSelectionValue<Data> | (Data[DataKey<Data>] & {}))[];
1268
1361
  }
1269
1362
 
1270
1363
  type TooltipState = {
@@ -1326,7 +1419,8 @@ declare class DataGrid<Data extends AnyDict> {
1326
1419
  /**
1327
1420
  * Pagination mode: 'none', 'pagination', or 'infinity'.
1328
1421
  *
1329
- * - `none` - No pagination, all data is rendered
1422
+ * -
1423
+ one` - No pagination, all data is rendered
1330
1424
  * - `pagination` - Classic page-based pagination with fixed page size
1331
1425
  * - `infinity` - Infinite scroll mode, loads more data as user scrolls
1332
1426
  */
@@ -1375,6 +1469,10 @@ declare class DataGrid<Data extends AnyDict> {
1375
1469
  * When selection is enabled, a `key` must be provided to identify rows.
1376
1470
  */
1377
1471
  selection: _angular_core.InputSignal<GridSelection>;
1472
+ /** Controlled selection values. When set, the consumer owns selection state. */
1473
+ selectedKeys: _angular_core.InputSignal<readonly GridSelectionValue<Data>[] | undefined>;
1474
+ /** Selection reconciliation policy. Defaults to preserving keys across source pages. */
1475
+ selectionPolicy: _angular_core.InputSignal<GridSelectionPolicy>;
1378
1476
  /**
1379
1477
  * Number of items per page.
1380
1478
  *
@@ -1392,7 +1490,8 @@ declare class DataGrid<Data extends AnyDict> {
1392
1490
  /**
1393
1491
  * Grid height configuration.
1394
1492
  *
1395
- * - `number` - Fixed height in pixels
1493
+ * -
1494
+ umber` - Fixed height in pixels
1396
1495
  * - `'full'` - Fill container height (100%), can be managed by host component style
1397
1496
  * - `'default'` - Height by CSS var (--re-data-grid-height)
1398
1497
  */
@@ -1474,6 +1573,8 @@ declare class DataGrid<Data extends AnyDict> {
1474
1573
  * ```
1475
1574
  */
1476
1575
  pageChange: _angular_core.OutputEmitterRef<GridPageChangeEvent>;
1576
+ /** Emitted for a failed source request when the source has no error signal. */
1577
+ sourceError: _angular_core.OutputEmitterRef<GridSourceRequestErrorEvent<Data>>;
1477
1578
  /**
1478
1579
  * Event emitted when sort order changes.
1479
1580
  *
@@ -1496,6 +1597,8 @@ declare class DataGrid<Data extends AnyDict> {
1496
1597
  * Contains an array of currently selected row keys.
1497
1598
  */
1498
1599
  selectChange: _angular_core.OutputEmitterRef<GridSelectEvent<Data>>;
1600
+ /** Emits proposed controlled selection values after user interaction. */
1601
+ selectedKeysChange: _angular_core.OutputEmitterRef<readonly GridSelectionValue<Data>[]>;
1499
1602
  /**
1500
1603
  * Event emitted when a row is clicked.
1501
1604
  *
@@ -1585,6 +1688,10 @@ declare class DataGrid<Data extends AnyDict> {
1585
1688
  protected stickyRowTpl: Signal<DataGridStickyRowDirective<any> | undefined>;
1586
1689
  protected rowTpl: Signal<DataGridRowDirective<any> | undefined>;
1587
1690
  protected renderSlots: _angular_core.WritableSignal<number[]>;
1691
+ protected renderSlotEntries: Signal<{
1692
+ slot: number;
1693
+ key: string | number;
1694
+ }[]>;
1588
1695
  protected renderCount: number;
1589
1696
  private lastStartIndex;
1590
1697
  private lastEndIndex;
@@ -1593,8 +1700,10 @@ declare class DataGrid<Data extends AnyDict> {
1593
1700
  private tooltipEl;
1594
1701
  protected tooltipState: _angular_core.WritableSignal<TooltipState>;
1595
1702
  protected activeTooltipCellId: _angular_core.WritableSignal<string | null>;
1703
+ private readonly ariaInstanceId;
1596
1704
  protected readonly tooltipId: string;
1597
1705
  protected readonly expanderRegionId: string;
1706
+ private readonly warnedPinnedIds;
1598
1707
  protected stickyRowIndex: _angular_core.WritableSignal<number | null>;
1599
1708
  protected stickyRowTopPx: _angular_core.WritableSignal<number>;
1600
1709
  protected stickyRowData: Signal<Data | null>;
@@ -1604,6 +1713,7 @@ declare class DataGrid<Data extends AnyDict> {
1604
1713
  protected expanderMap: _angular_core.WritableSignal<Map<DataKey<Data>, boolean>>;
1605
1714
  protected declarativeColumns: Signal<DeclarativeColumnsResult<Data>>;
1606
1715
  protected sourceColumns: Signal<GridColumn<Data>[]>;
1716
+ private resolvedHeaderTemplates;
1607
1717
  private slotsFeature;
1608
1718
  protected extendedColumns: Signal<GridColumn<Data>[]>;
1609
1719
  /**
@@ -1611,7 +1721,9 @@ declare class DataGrid<Data extends AnyDict> {
1611
1721
  */
1612
1722
  styleHeight: Signal<string>;
1613
1723
  protected resolvedLoading: Signal<boolean>;
1724
+ protected resolvedBlockingLoading: Signal<boolean>;
1614
1725
  protected totalRowCount: Signal<number>;
1726
+ protected renderRowCount: Signal<number>;
1615
1727
  protected selectionRows: Signal<Data[]>;
1616
1728
  protected ariaColCount: Signal<number>;
1617
1729
  protected ariaHeaderRowCount: Signal<number>;
@@ -1631,6 +1743,14 @@ declare class DataGrid<Data extends AnyDict> {
1631
1743
  selectAllLoaded(): void;
1632
1744
  /** Resets sorting state and emits sort events. */
1633
1745
  resetSort(): void;
1746
+ /** Clears the grid-owned source page buffer and invalidates in-flight page results. */
1747
+ resetSourceBuffer(): void;
1748
+ /** Requests a page through the source contract or legacy pageChange output. */
1749
+ requestPage(page: number): void;
1750
+ /** Changes the page size and restarts from page zero through the shared request path. */
1751
+ requestPageSize(pageSize: number): void;
1752
+ /** Retries the current source page, or an explicitly supplied page. */
1753
+ retryPage(page?: number): void;
1634
1754
  /** Sets a single-column sorting state and emits sort events. */
1635
1755
  setSort(sort: GridSortEvent<Data>): void;
1636
1756
  /** Sets multi-column sorting state and emits sort events. */
@@ -1647,6 +1767,7 @@ declare class DataGrid<Data extends AnyDict> {
1647
1767
  */
1648
1768
  protected onSort(col: GridColumn<Data>): void;
1649
1769
  protected onColumnResizeStart(event: MouseEvent, col: GridColumn<Data>): void;
1770
+ protected onColumnResizeKeydown(event: Event, col: GridColumn<Data>): void;
1650
1771
  /**
1651
1772
  * Handles cell click events.
1652
1773
  *
@@ -1666,6 +1787,8 @@ declare class DataGrid<Data extends AnyDict> {
1666
1787
  protected onCellContext(row: Data, col: GridColumn<Data>, index: number, event: MouseEvent): void;
1667
1788
  protected onCellDoubleClick(row: Data, col: GridColumn<Data>, index: number, event: MouseEvent): void;
1668
1789
  protected onRowClick(row: Data, index: number, event: Event): void;
1790
+ protected onRowKeydown(index: number, event: Event): void;
1791
+ private focusVirtualRow;
1669
1792
  protected onRowContext(row: Data, index: number, event: MouseEvent): void;
1670
1793
  protected onRowDoubleClick(row: Data, index: number, event: MouseEvent): void;
1671
1794
  protected isExpandable(column: GridColumn<Data>): boolean;
@@ -1697,12 +1820,12 @@ declare class DataGrid<Data extends AnyDict> {
1697
1820
  * to track thumb position and update scroll position accordingly.
1698
1821
  * Automatically cleans up listeners when dragging ends.
1699
1822
  *
1700
- * @param e - Mouse down event from a scrollbar thumb element
1823
+ * @param e - Pointer down event from a scrollbar thumb element
1701
1824
  */
1702
- protected onThumbDown(e: MouseEvent): void;
1825
+ protected onThumbDown(e: PointerEvent): void;
1703
1826
  protected showScrollbar(): void;
1704
1827
  protected hideScrollbarSoon(delay?: number): void;
1705
- protected trackPinnedRow: (row: GridPinnedRow) => number | undefined;
1828
+ protected trackPinnedRow: (row: GridPinnedRow, region: "top" | "bottom", index: number) => string | number;
1706
1829
  protected isDisabledRow(row: Data, index: number): boolean;
1707
1830
  protected cellClass(col: GridColumn<Data>, row: Data): string | undefined;
1708
1831
  protected resolveRowClass(row: Data, index: number): string | undefined;
@@ -1712,9 +1835,14 @@ declare class DataGrid<Data extends AnyDict> {
1712
1835
  protected showTooltip(event: MouseEvent, row: Data, col: GridColumn<Data>, index: number): void;
1713
1836
  protected hideTooltip(): void;
1714
1837
  protected onTooltipEnter(event: MouseEvent, row: Data, col: GridColumn<Data>, index: number, cellId: string): void;
1838
+ protected onTooltipFocus(event: FocusEvent, row: Data, col: GridColumn<Data>, index: number, cellId: string): void;
1715
1839
  protected isStickyRowIndex(index: number): boolean;
1716
1840
  protected resolveRowTemplate(row: Data, index: number): TemplateRef<AnyType> | null;
1717
- protected rowAt(index: number): Data | null;
1841
+ protected rowAt(index: number): Data | null; /**
1842
+ * Keys virtual row views by record identity rather than by recyclable slot.
1843
+ * Without a rowKey, the absolute index still prevents a replaced row from inheriting slot state.
1844
+ */
1845
+ protected trackVirtualRow(slot: number, startIndex: number, row?: Data | null): string | number;
1718
1846
  protected shouldRenderLoadingRow(index: number, topGap: {
1719
1847
  start: number;
1720
1848
  count: number;
@@ -1737,8 +1865,12 @@ declare class DataGrid<Data extends AnyDict> {
1737
1865
  protected ariaSortLabel(col: GridColumn<Data>): string;
1738
1866
  protected ariaExpandLabel(col: GridColumn<Data>): string;
1739
1867
  protected ariaResizeLabel(col: GridColumn<Data>): string;
1868
+ protected ariaResizeMin(col: GridColumn<Data>): number;
1869
+ protected ariaResizeMax(col: GridColumn<Data>): number | null;
1870
+ protected ariaResizeValue(col: GridColumn<Data>): number;
1740
1871
  protected ariaHeaderGroupColIndex(group: NormalizedHeader): number | null;
1741
1872
  protected cellAriaId(colKey: string, rowIndex: number, isPinned: boolean): string;
1873
+ protected pinnedCellAriaId(colKey: string, row: GridPinnedRow, region: 'top' | 'bottom', index: number): string;
1742
1874
  protected isTooltipTarget(cellId: string): boolean;
1743
1875
  protected resolveHeaderGroupTitle(group: GridHeaderGroup<Data>): string;
1744
1876
  protected resolveHeaderGroupTitle(group: {
@@ -1746,7 +1878,9 @@ declare class DataGrid<Data extends AnyDict> {
1746
1878
  }): string;
1747
1879
  private readResolvedHeaderText;
1748
1880
  private activePageSize;
1749
- private requestPage;
1881
+ private warnDuplicatePinnedIds;
1882
+ private emitSelectionChange;
1883
+ private handlePageRequest;
1750
1884
  private initVm;
1751
1885
  private initSelector;
1752
1886
  private initRefs;
@@ -1770,9 +1904,9 @@ declare class DataGrid<Data extends AnyDict> {
1770
1904
  private updateStickyRow;
1771
1905
  private updateStickyFromScroll;
1772
1906
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataGrid<any>, never>;
1773
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGrid<any>, "re-data-grid", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "source": { "alias": "source"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "pinnedRows": { "alias": "pinnedRows"; "required": false; "isSignal": true; }; "isRowSticky": { "alias": "isRowSticky"; "required": false; "isSignal": true; }; "isRowDisabled": { "alias": "isRowDisabled"; "required": false; "isSignal": true; }; "getRowClass": { "alias": "getRowClass"; "required": false; "isSignal": true; }; "getRowTemplate": { "alias": "getRowTemplate"; "required": false; "isSignal": true; }; "hasIndexColumn": { "alias": "hasIndexColumn"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "virtualBuffer": { "alias": "virtualBuffer"; "required": false; "isSignal": true; }; "lockVerticalScroll": { "alias": "lockVerticalScroll"; "required": false; "isSignal": true; }; "headerGroups": { "alias": "headerGroups"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingMode": { "alias": "loadingMode"; "required": false; "isSignal": true; }; "deferContent": { "alias": "deferContent"; "required": false; "isSignal": true; }; "deferHeader": { "alias": "deferHeader"; "required": false; "isSignal": true; }; "deferPinned": { "alias": "deferPinned"; "required": false; "isSignal": true; }; "deferCells": { "alias": "deferCells"; "required": false; "isSignal": true; }; "deferIcons": { "alias": "deferIcons"; "required": false; "isSignal": true; }; "deferTooltip": { "alias": "deferTooltip"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "pageStartFromZero": { "alias": "pageStartFromZero"; "required": false; "isSignal": true; }; "sortMode": { "alias": "sortMode"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "sortChange": "sortChange"; "multiSortChange": "multiSortChange"; "selectChange": "selectChange"; "rowClick": "rowClick"; "rowContext": "rowContext"; "rowDoubleClick": "rowDoubleClick"; "cellClick": "cellClick"; "cellContext": "cellContext"; "cellDoubleClick": "cellDoubleClick"; "columnResizeEnd": "columnResizeEnd"; }, ["cellTypedSlotRefs", "cellDataSlotRefs", "declarativeColumnRefs", "headerSlotRefs", "emptySlotRefs", "loadingSlotRefs", "sortIcSlotRefs", "expanderIcSlotRefs", "stickyRowSlotRefs", "rowSlotRefs"], never, true, never>;
1907
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGrid<any>, "re-data-grid", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "source": { "alias": "source"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "pinnedRows": { "alias": "pinnedRows"; "required": false; "isSignal": true; }; "isRowSticky": { "alias": "isRowSticky"; "required": false; "isSignal": true; }; "isRowDisabled": { "alias": "isRowDisabled"; "required": false; "isSignal": true; }; "getRowClass": { "alias": "getRowClass"; "required": false; "isSignal": true; }; "getRowTemplate": { "alias": "getRowTemplate"; "required": false; "isSignal": true; }; "hasIndexColumn": { "alias": "hasIndexColumn"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "selectedKeys": { "alias": "selectedKeys"; "required": false; "isSignal": true; }; "selectionPolicy": { "alias": "selectionPolicy"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "virtualBuffer": { "alias": "virtualBuffer"; "required": false; "isSignal": true; }; "lockVerticalScroll": { "alias": "lockVerticalScroll"; "required": false; "isSignal": true; }; "headerGroups": { "alias": "headerGroups"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingMode": { "alias": "loadingMode"; "required": false; "isSignal": true; }; "deferContent": { "alias": "deferContent"; "required": false; "isSignal": true; }; "deferHeader": { "alias": "deferHeader"; "required": false; "isSignal": true; }; "deferPinned": { "alias": "deferPinned"; "required": false; "isSignal": true; }; "deferCells": { "alias": "deferCells"; "required": false; "isSignal": true; }; "deferIcons": { "alias": "deferIcons"; "required": false; "isSignal": true; }; "deferTooltip": { "alias": "deferTooltip"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "pageStartFromZero": { "alias": "pageStartFromZero"; "required": false; "isSignal": true; }; "sortMode": { "alias": "sortMode"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "sourceError": "sourceError"; "sortChange": "sortChange"; "multiSortChange": "multiSortChange"; "selectChange": "selectChange"; "selectedKeysChange": "selectedKeysChange"; "rowClick": "rowClick"; "rowContext": "rowContext"; "rowDoubleClick": "rowDoubleClick"; "cellClick": "cellClick"; "cellContext": "cellContext"; "cellDoubleClick": "cellDoubleClick"; "columnResizeEnd": "columnResizeEnd"; }, ["cellTypedSlotRefs", "cellDataSlotRefs", "declarativeColumnRefs", "headerSlotRefs", "emptySlotRefs", "loadingSlotRefs", "sortIcSlotRefs", "expanderIcSlotRefs", "stickyRowSlotRefs", "rowSlotRefs"], never, true, never>;
1774
1908
  }
1775
1909
 
1776
- export { DATA_GRID_CONFIG, DATA_GRID_HEADER_TEXT_RESOLVER, DATA_GRID_TYPE_RENDERERS, DATA_GRID_TYPE_TRANSFORMERS, DEFAULT_DATA_GRID_DEFAULTS, DataGrid, DataGridCellEmptyDirective, DataGridCellLoadingDirective, DataGridCellTemplateDirective, DataGridDeclarativeCellDirective, DataGridDeclarativeColumn, DataGridDeclarativeHeaderDirective, DataGridExpanderIconDirective, DataGridHeaderTemplateDirective, DataGridRowDirective, DataGridSortIconDirective, DataGridStickyRowDirective, DataGridTypeCellTemplateDirective, provideDataGridDefaults, provideDataGridHeaderTextResolver, provideDataGridHeaderTextResolverWithParent, provideDataGridTypeRenderers, provideDataGridTypeTransformers };
1777
- export type { BaseGridColumn, DataGridConfigProvider, DataGridHeaderTextContext, DataGridHeaderTextResolver, DataGridRowTemplateContext, DataGridStickyRowTemplateContext, DataGridTypeRenderers, DataGridTypeTransformers, DeclarativeColumnDef, GridBuiltInCellType, GridCellAlign, GridCellClickEvent, GridCellContextEvent, GridCellDoubleClickEvent, GridCellRenderer, GridCellRendererType, GridCellTransformer, GridCellTransformerContext, GridCellValueContext, GridColumn, GridColumnResizeEndEvent, GridColumnTooltip, GridColumns, GridHeaderGroup, GridMultiSortEvent, GridPageChangeEvent, GridPagedDataSource, GridPaginationMode, GridPinnedPosition, GridPinnedRow, GridPinnedRows, GridRowClickEvent, GridRowContextEvent, GridRowDoubleClickEvent, GridSelectEvent, GridSelectMode, GridSelection, GridSortEvent, GridSortItem, GridSortMode, GridSortOrder, GridStickySide, GridTooltipContext, HeaderTemplateData, KeyResolver, RenderTemplateData };
1910
+ export { DATA_GRID_CONFIG, DATA_GRID_HEADER_TEXT_RESOLVER, DATA_GRID_TYPE_RENDERERS, DATA_GRID_TYPE_TRANSFORMERS, DEFAULT_DATA_GRID_DEFAULTS, DataGrid, DataGridCellEmptyDirective, DataGridCellLoadingDirective, DataGridCellTemplateDirective, DataGridDeclarativeCellDirective, DataGridDeclarativeColumn, DataGridDeclarativeHeaderDirective, DataGridExpanderIconDirective, DataGridHeaderTemplateDirective, DataGridRowDirective, DataGridSortIconDirective, DataGridStickyRowDirective, DataGridTypeCellTemplateDirective, gridBackendSortField, provideDataGridDefaults, provideDataGridHeaderTextResolver, provideDataGridHeaderTextResolverWithParent, provideDataGridTypeRenderers, provideDataGridTypeTransformers };
1911
+ export type { BaseGridColumn, DataGridConfigProvider, DataGridHeaderTextContext, DataGridHeaderTextResolver, DataGridRowTemplateContext, DataGridStickyRowTemplateContext, DataGridTypeRenderers, DataGridTypeTransformers, DeclarativeColumnDef, GridBackendSortField, GridBuiltInCellType, GridCellAlign, GridCellClickEvent, GridCellContextEvent, GridCellDoubleClickEvent, GridCellRenderer, GridCellRendererType, GridCellTransformer, GridCellTransformerContext, GridCellValueContext, GridColumn, GridColumnResizeEndEvent, GridColumnTooltip, GridColumns, GridHeaderGroup, GridMultiSortEvent, GridPageChangeEvent, GridPageRequestOptions, GridPageResult, GridPagedDataSource, GridPaginationMode, GridPinnedPosition, GridPinnedRow, GridPinnedRows, GridRowClickEvent, GridRowContextEvent, GridRowDoubleClickEvent, GridSelectEvent, GridSelectMode, GridSelection, GridSelectionByKey, GridSelectionPolicy, GridSelectionValue, GridSortEvent, GridSortItem, GridSortMode, GridSortOrder, GridSourceRequestErrorEvent, GridSourceRequestOperation, GridStickySide, GridTooltipContext, HeaderTemplateData, KeyResolver, RenderTemplateData };
1778
1912
  //# sourceMappingURL=reforgium-data-grid.d.ts.map