@reforgium/data-grid 2.3.6 → 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-D5cKt3RW.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.3.6",
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
  *
@@ -284,6 +286,19 @@ type BaseGridColumn<Data extends AnyDict = AnyDict> = {
284
286
  * Optional tooltip content shown on cell hover.
285
287
  */
286
288
  tooltip?: GridColumnTooltip<Data>;
289
+ /**
290
+ * Enables/disables manual column resize via drag handle in header.
291
+ *
292
+ * Defaults to `true` when omitted.
293
+ */
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>;
287
302
  /**
288
303
  * Data key to use for expanding/collapsing row details.
289
304
  */
@@ -297,7 +312,24 @@ type BaseGridColumn<Data extends AnyDict = AnyDict> = {
297
312
  *
298
313
  * @template Data - Type of data objects displayed in the grid rows
299
314
  */
300
- 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'];
301
333
  /**
302
334
  * Context data provided to the header template.
303
335
  *
@@ -338,6 +370,7 @@ type RenderTemplateData<Data extends AnyDict = AnyDict> = {
338
370
  * Zero-based row index in the current data set.
339
371
  */
340
372
  index: number;
373
+ isPinned: boolean;
341
374
  };
342
375
  type DeclarativeColumnDef<Data extends AnyDict = AnyDict> = {
343
376
  key: DataKey<Data>;
@@ -354,10 +387,12 @@ type DeclarativeColumnDef<Data extends AnyDict = AnyDict> = {
354
387
  minWidth?: number;
355
388
  maxWidth?: number;
356
389
  flex?: number;
390
+ resizable?: boolean;
357
391
  type?: GridCellRendererType;
358
392
  typeParams?: AnyType;
359
393
  defaultValue?: AnyType;
360
394
  value?: GridCellRenderer<Data>;
395
+ transformer?: GridCellTransformer<Data>;
361
396
  track?: (row: Data) => string;
362
397
  tooltip?: GridColumnTooltip<Data>;
363
398
  };
@@ -408,17 +443,19 @@ declare class DataGridDeclarativeColumn<Data extends AnyDict = AnyDict> {
408
443
  minWidth: _angular_core.InputSignalWithTransform<number | undefined, string | number | undefined>;
409
444
  maxWidth: _angular_core.InputSignalWithTransform<number | undefined, string | number | undefined>;
410
445
  flex: _angular_core.InputSignalWithTransform<number | undefined, string | number | undefined>;
411
- type: _angular_core.InputSignal<GridCellRendererType | undefined>;
446
+ resizable: _angular_core.InputSignalWithTransform<boolean | undefined, string | boolean | undefined>;
447
+ type: _angular_core.InputSignal<string | undefined>;
412
448
  typeParams: _angular_core.InputSignal<any>;
413
449
  defaultValue: _angular_core.InputSignal<any>;
414
450
  value: _angular_core.InputSignal<GridCellRenderer<Data> | undefined>;
451
+ transformer: _angular_core.InputSignal<GridCellTransformer<Data> | undefined>;
415
452
  track: _angular_core.InputSignal<((row: Data) => string) | undefined>;
416
453
  tooltip: _angular_core.InputSignal<GridColumnTooltip<Data> | undefined>;
417
454
  private headerTplRef;
418
455
  private cellTplRef;
419
456
  toDeclarativeColumn(): DeclarativeColumnDef<Data>;
420
457
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataGridDeclarativeColumn<any>, never>;
421
- 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; }; "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>;
422
459
  }
423
460
 
424
461
  declare class DataGridDeclarativeHeaderDirective {
@@ -631,6 +668,7 @@ type DataGridTranslations = {
631
668
  itemsPerPageLabel: string;
632
669
  nextPageLabel: string;
633
670
  prevPageLabel: string;
671
+ indexColumnHeader: string;
634
672
  };
635
673
  /**
636
674
  * Global default configuration for all `re-data-grid` instances.
@@ -650,6 +688,8 @@ type DataGridConfigProvider = {
650
688
  pageSize: number;
651
689
  /** Sorting mode for grid columns. */
652
690
  sortMode: GridSortMode;
691
+ /** Default column resize availability when column `resizable` is not explicitly set. */
692
+ resizable: boolean;
653
693
  /** Height of each data row in pixels. */
654
694
  rowHeight: number;
655
695
  /** Height of the header row in pixels. */
@@ -682,15 +722,35 @@ type DataGridConfigProvider = {
682
722
  scroll: number;
683
723
  };
684
724
  };
725
+ type DataGridConfigOverrides = Partial<Omit<DataGridConfigProvider, 'translations' | 'debounce'>> & {
726
+ translations?: Partial<DataGridTranslations>;
727
+ debounce?: Partial<DataGridConfigProvider['debounce']>;
728
+ };
685
729
  declare const DEFAULT_DATA_GRID_DEFAULTS: DataGridConfigProvider;
686
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>>>>>;
687
735
  /**
688
- * Provides default configuration for Data Grid, overriding base settings.
736
+ * Provides a default configuration for Data Grid, overriding base settings.
689
737
  *
690
738
  * @param config Partial configuration object to be merged with current settings.
691
739
  * @returns EnvironmentProviders for use in application or component configuration.
692
740
  */
693
- declare function provideDataGridDefaults(config: Partial<DataGridConfigProvider>): EnvironmentProviders;
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;
694
754
 
695
755
  type DeclarativeColumnsResult<Data extends AnyDict = AnyDict> = {
696
756
  columns: GridColumns<Data>;
@@ -949,7 +1009,7 @@ declare class DataGridVm<Data extends AnyDict> {
949
1009
  * Stores reusable template references for different cell renderer types
950
1010
  * that can be shared across multiple columns.
951
1011
  */
952
- globalTypeCellTpls: Map<GridCellRendererType, TemplateRef<Data>>;
1012
+ globalTypeCellTpls: Map<string, TemplateRef<Data>>;
953
1013
  globalDataCellTpls: Map<string | keyof Data, TemplateRef<Data>>;
954
1014
  globalRowCellTpls: Map<string | keyof Data, TemplateRef<Data>>;
955
1015
  pinnedTop: _angular_core.WritableSignal<GridPinnedRow<Data>[]>;
@@ -1371,6 +1431,7 @@ declare class DataGrid<Data extends AnyDict> {
1371
1431
  private headerGroupsFeature;
1372
1432
  private infinityPageRequestFeature;
1373
1433
  private expanderFeature;
1434
+ private columnResizeFeature;
1374
1435
  private selectionReconcileFeature;
1375
1436
  private gridApiFeature;
1376
1437
  private tooltipAdapterFeature;
@@ -1421,6 +1482,7 @@ declare class DataGrid<Data extends AnyDict> {
1421
1482
  protected stickyRowData: _angular_core.Signal<Data | null>;
1422
1483
  private stickyIndexes;
1423
1484
  private contentInitialized;
1485
+ protected isColumnResizing: _angular_core.WritableSignal<boolean>;
1424
1486
  protected expanderMap: _angular_core.WritableSignal<Map<DataKey<Data>, boolean>>;
1425
1487
  protected declarativeColumns: _angular_core.Signal<DeclarativeColumnsResult<Data>>;
1426
1488
  protected sourceColumns: _angular_core.Signal<GridColumn<Data>[]>;
@@ -1460,6 +1522,7 @@ declare class DataGrid<Data extends AnyDict> {
1460
1522
  * @param col - Column configuration that was clicked
1461
1523
  */
1462
1524
  protected onSort(col: GridColumn<Data>): void;
1525
+ protected onColumnResizeStart(event: MouseEvent, col: GridColumn<Data>): void;
1463
1526
  /**
1464
1527
  * Handles cell click events.
1465
1528
  *
@@ -1482,6 +1545,7 @@ declare class DataGrid<Data extends AnyDict> {
1482
1545
  protected onRowContext(row: Data, index: number, event: MouseEvent): void;
1483
1546
  protected onRowDoubleClick(row: Data, index: number, event: MouseEvent): void;
1484
1547
  protected isExpandable(column: GridColumn<Data>): boolean;
1548
+ protected canResizeColumn(column: GridColumn<Data>): boolean;
1485
1549
  /**
1486
1550
  * Handles column expand/collapse toggle.
1487
1551
  *
@@ -1549,6 +1613,6 @@ declare class DataGrid<Data extends AnyDict> {
1549
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>;
1550
1614
  }
1551
1615
 
1552
- export { DATA_GRID_CONFIG, DEFAULT_DATA_GRID_DEFAULTS, DataGrid, DataGridCellEmptyDirective, DataGridCellLoadingDirective, DataGridCellTemplateDirective, DataGridDeclarativeCellDirective, DataGridDeclarativeColumn, DataGridDeclarativeHeaderDirective, DataGridExpanderIconDirective, DataGridHeaderTemplateDirective, DataGridRowDirective, DataGridSortIconDirective, DataGridStickyRowDirective, DataGridTypeCellTemplateDirective, provideDataGridDefaults };
1553
- 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 };
1554
1618
  //# sourceMappingURL=reforgium-data-grid.d.ts.map