@reforgium/data-grid 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- export { o as DATA_GRID_CONFIG, p as DEFAULT_DATA_GRID_DEFAULTS, r 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, q as provideDataGridDefaults } from './reforgium-data-grid-reforgium-data-grid-DmoyegCD.mjs';
1
+ export { o as DATA_GRID_CONFIG, p as DATA_GRID_TYPE_RENDERERS, q as DATA_GRID_TYPE_TRANSFORMERS, r as DEFAULT_DATA_GRID_DEFAULTS, v 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, s as provideDataGridDefaults, t as provideDataGridTypeRenderers, u as provideDataGridTypeTransformers } from './reforgium-data-grid-reforgium-data-grid-Civdbsy1.mjs';
2
2
  //# sourceMappingURL=reforgium-data-grid.mjs.map
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.4.0",
2
+ "version": "2.5.0",
3
3
  "name": "@reforgium/data-grid",
4
4
  "description": "reforgium DataGrid component",
5
5
  "author": "rtommievich",
@@ -121,6 +121,7 @@ type GridTooltipContext<Data extends AnyDict = AnyDict> = {
121
121
  col: GridColumn<Data>;
122
122
  index: number;
123
123
  value: AnyType;
124
+ isPinned: boolean;
124
125
  };
125
126
  type GridColumnTooltip<Data extends AnyDict = AnyDict> = true | string | ((row: Data) => string) | TemplateRef<GridTooltipContext>;
126
127
  /**
@@ -139,7 +140,8 @@ type GridStickySide = 'left' | 'right';
139
140
  * - `'index'` - Display row index number
140
141
  * - `'checkbox'` - Display checkbox for selection
141
142
  */
142
- type GridCellRendererType = 'plain' | 'date' | 'number' | 'index' | 'checkbox';
143
+ type GridBuiltInCellType = 'plain' | 'date' | 'number' | 'index' | 'checkbox';
144
+ type GridCellRendererType = GridBuiltInCellType | string;
143
145
  /**
144
146
  * Array of column definitions for the data grid.
145
147
  *
@@ -290,6 +292,13 @@ type BaseGridColumn<Data extends AnyDict = AnyDict> = {
290
292
  * Defaults to `true` when omitted.
291
293
  */
292
294
  resizable?: boolean;
295
+ /**
296
+ * Optional display transformer applied to row data before rendering cell content.
297
+ *
298
+ * Unlike `value`, this preserves the standard key-based value extraction and only
299
+ * customizes the final displayed text.
300
+ */
301
+ transformer?: GridCellTransformer<Data>;
293
302
  /**
294
303
  * Data key to use for expanding/collapsing row details.
295
304
  */
@@ -303,7 +312,24 @@ type BaseGridColumn<Data extends AnyDict = AnyDict> = {
303
312
  *
304
313
  * @template Data - Type of data objects displayed in the grid rows
305
314
  */
306
- type GridCellRenderer<Data> = KeyResolver<Data, string | number>;
315
+ type GridCellValueContext<Data extends AnyDict = AnyDict> = {
316
+ col: GridColumn<Data>;
317
+ index: number;
318
+ isPinned: boolean;
319
+ };
320
+ type GridCellRenderer<Data extends AnyDict = AnyDict> = {
321
+ bivarianceHack(row: Data, ctx: GridCellValueContext<Data>): string | number;
322
+ }['bivarianceHack'];
323
+ type GridCellTransformerContext<Data extends AnyDict = AnyDict> = {
324
+ value: unknown;
325
+ col: GridColumn<Data>;
326
+ index: number;
327
+ type: GridCellRendererType;
328
+ isPinned: boolean;
329
+ };
330
+ type GridCellTransformer<Data extends AnyDict = AnyDict> = {
331
+ bivarianceHack(row: Data, ctx: GridCellTransformerContext<Data>): unknown;
332
+ }['bivarianceHack'];
307
333
  /**
308
334
  * Context data provided to the header template.
309
335
  *
@@ -344,6 +370,7 @@ type RenderTemplateData<Data extends AnyDict = AnyDict> = {
344
370
  * Zero-based row index in the current data set.
345
371
  */
346
372
  index: number;
373
+ isPinned: boolean;
347
374
  };
348
375
  type DeclarativeColumnDef<Data extends AnyDict = AnyDict> = {
349
376
  key: DataKey<Data>;
@@ -365,6 +392,7 @@ type DeclarativeColumnDef<Data extends AnyDict = AnyDict> = {
365
392
  typeParams?: AnyType;
366
393
  defaultValue?: AnyType;
367
394
  value?: GridCellRenderer<Data>;
395
+ transformer?: GridCellTransformer<Data>;
368
396
  track?: (row: Data) => string;
369
397
  tooltip?: GridColumnTooltip<Data>;
370
398
  };
@@ -416,17 +444,18 @@ declare class DataGridDeclarativeColumn<Data extends AnyDict = AnyDict> {
416
444
  maxWidth: _angular_core.InputSignalWithTransform<number | undefined, string | number | undefined>;
417
445
  flex: _angular_core.InputSignalWithTransform<number | undefined, string | number | undefined>;
418
446
  resizable: _angular_core.InputSignalWithTransform<boolean | undefined, string | boolean | undefined>;
419
- type: _angular_core.InputSignal<GridCellRendererType | undefined>;
447
+ type: _angular_core.InputSignal<string | undefined>;
420
448
  typeParams: _angular_core.InputSignal<any>;
421
449
  defaultValue: _angular_core.InputSignal<any>;
422
450
  value: _angular_core.InputSignal<GridCellRenderer<Data> | undefined>;
451
+ transformer: _angular_core.InputSignal<GridCellTransformer<Data> | undefined>;
423
452
  track: _angular_core.InputSignal<((row: Data) => string) | undefined>;
424
453
  tooltip: _angular_core.InputSignal<GridColumnTooltip<Data> | undefined>;
425
454
  private headerTplRef;
426
455
  private cellTplRef;
427
456
  toDeclarativeColumn(): DeclarativeColumnDef<Data>;
428
457
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataGridDeclarativeColumn<any>, never>;
429
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGridDeclarativeColumn<any>, "re-dg-column", never, { "key": { "alias": "key"; "required": true; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sortKey": { "alias": "sortKey"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "expandBy": { "alias": "expandBy"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "flex": { "alias": "flex"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "typeParams": { "alias": "typeParams"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "track": { "alias": "track"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, ["headerTplRef", "cellTplRef"], ["*"], true, never>;
458
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGridDeclarativeColumn<any>, "re-dg-column", never, { "key": { "alias": "key"; "required": true; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sortKey": { "alias": "sortKey"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "expandBy": { "alias": "expandBy"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "flex": { "alias": "flex"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "typeParams": { "alias": "typeParams"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "transformer": { "alias": "transformer"; "required": false; "isSignal": true; }; "track": { "alias": "track"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, ["headerTplRef", "cellTplRef"], ["*"], true, never>;
430
459
  }
431
460
 
432
461
  declare class DataGridDeclarativeHeaderDirective {
@@ -699,6 +728,10 @@ type DataGridConfigOverrides = Partial<Omit<DataGridConfigProvider, 'translation
699
728
  };
700
729
  declare const DEFAULT_DATA_GRID_DEFAULTS: DataGridConfigProvider;
701
730
  declare const DATA_GRID_CONFIG: InjectionToken<DataGridConfigProvider>;
731
+ type DataGridTypeTransformers<Data extends AnyDict = AnyDict> = Partial<Record<GridCellRendererType, GridCellTransformer<Data>>>;
732
+ type DataGridTypeRenderers<Data extends AnyDict = AnyDict> = Partial<Record<GridCellRendererType, TemplateRef<RenderTemplateData<Data>>>>;
733
+ declare const DATA_GRID_TYPE_TRANSFORMERS: InjectionToken<Partial<Record<string, GridCellTransformer<AnyDict>>>>;
734
+ declare const DATA_GRID_TYPE_RENDERERS: InjectionToken<Partial<Record<string, TemplateRef<RenderTemplateData<AnyDict>>>>>;
702
735
  /**
703
736
  * Provides a default configuration for Data Grid, overriding base settings.
704
737
  *
@@ -706,6 +739,18 @@ declare const DATA_GRID_CONFIG: InjectionToken<DataGridConfigProvider>;
706
739
  * @returns EnvironmentProviders for use in application or component configuration.
707
740
  */
708
741
  declare function provideDataGridDefaults(config: DataGridConfigOverrides): EnvironmentProviders;
742
+ /**
743
+ * Provides global type-based cell transformers for all `re-data-grid` instances in the current injector scope.
744
+ *
745
+ * Registrations are merged with parent injector registrations, and later providers override earlier ones.
746
+ */
747
+ declare function provideDataGridTypeTransformers<Data extends AnyDict = AnyDict>(transformers: DataGridTypeTransformers<Data>): EnvironmentProviders;
748
+ /**
749
+ * Provides global type-based cell render templates for all `re-data-grid` instances in the current injector scope.
750
+ *
751
+ * Registrations are merged with parent injector registrations, and later providers override earlier ones.
752
+ */
753
+ declare function provideDataGridTypeRenderers<Data extends AnyDict = AnyDict>(renderers: DataGridTypeRenderers<Data>): EnvironmentProviders;
709
754
 
710
755
  type DeclarativeColumnsResult<Data extends AnyDict = AnyDict> = {
711
756
  columns: GridColumns<Data>;
@@ -964,7 +1009,7 @@ declare class DataGridVm<Data extends AnyDict> {
964
1009
  * Stores reusable template references for different cell renderer types
965
1010
  * that can be shared across multiple columns.
966
1011
  */
967
- globalTypeCellTpls: Map<GridCellRendererType, TemplateRef<Data>>;
1012
+ globalTypeCellTpls: Map<string, TemplateRef<Data>>;
968
1013
  globalDataCellTpls: Map<string | keyof Data, TemplateRef<Data>>;
969
1014
  globalRowCellTpls: Map<string | keyof Data, TemplateRef<Data>>;
970
1015
  pinnedTop: _angular_core.WritableSignal<GridPinnedRow<Data>[]>;
@@ -1568,6 +1613,6 @@ declare class DataGrid<Data extends AnyDict> {
1568
1613
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataGrid<any>, "re-data-grid", never, { "data": { "alias": "data"; "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; }; "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"; }, ["cellTypedSlotRefs", "cellDataSlotRefs", "declarativeColumnRefs", "headerSlotRefs", "emptySlotRefs", "loadingSlotRefs", "sortIcSlotRefs", "expanderIcSlotRefs", "stickyRowSlotRefs", "rowSlotRefs"], never, true, never>;
1569
1614
  }
1570
1615
 
1571
- export { DATA_GRID_CONFIG, DEFAULT_DATA_GRID_DEFAULTS, DataGrid, DataGridCellEmptyDirective, DataGridCellLoadingDirective, DataGridCellTemplateDirective, DataGridDeclarativeCellDirective, DataGridDeclarativeColumn, DataGridDeclarativeHeaderDirective, DataGridExpanderIconDirective, DataGridHeaderTemplateDirective, DataGridRowDirective, DataGridSortIconDirective, DataGridStickyRowDirective, DataGridTypeCellTemplateDirective, provideDataGridDefaults };
1572
- export type { BaseGridColumn, DataGridConfigProvider, DataGridRowTemplateContext, DataGridStickyRowTemplateContext, DeclarativeColumnDef, GridCellAlign, GridCellClickEvent, GridCellContextEvent, GridCellDoubleClickEvent, GridCellRenderer, GridCellRendererType, GridColumn, GridColumnTooltip, GridColumns, GridHeaderGroup, GridMultiSortEvent, GridPageChangeEvent, GridPaginationMode, GridPinnedPosition, GridPinnedRow, GridPinnedRows, GridRowClickEvent, GridRowContextEvent, GridRowDoubleClickEvent, GridSelectEvent, GridSelectMode, GridSelection, GridSortEvent, GridSortItem, GridSortMode, GridSortOrder, GridStickySide, GridTooltipContext, HeaderTemplateData, RenderTemplateData };
1616
+ export { DATA_GRID_CONFIG, 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, provideDataGridTypeRenderers, provideDataGridTypeTransformers };
1617
+ export type { BaseGridColumn, DataGridConfigProvider, DataGridRowTemplateContext, DataGridStickyRowTemplateContext, DataGridTypeRenderers, DataGridTypeTransformers, DeclarativeColumnDef, GridBuiltInCellType, GridCellAlign, GridCellClickEvent, GridCellContextEvent, GridCellDoubleClickEvent, GridCellRenderer, GridCellRendererType, GridCellTransformer, GridCellTransformerContext, GridCellValueContext, GridColumn, GridColumnTooltip, GridColumns, GridHeaderGroup, GridMultiSortEvent, GridPageChangeEvent, GridPaginationMode, GridPinnedPosition, GridPinnedRow, GridPinnedRows, GridRowClickEvent, GridRowContextEvent, GridRowDoubleClickEvent, GridSelectEvent, GridSelectMode, GridSelection, GridSortEvent, GridSortItem, GridSortMode, GridSortOrder, GridStickySide, GridTooltipContext, HeaderTemplateData, RenderTemplateData };
1573
1618
  //# sourceMappingURL=reforgium-data-grid.d.ts.map