@procore/data-table 14.35.2 → 14.35.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Change Log
2
2
 
3
+ ## 14.35.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 1077669: Add support for onRowSelect callback of detail rows.
8
+
9
+ ## 14.35.3
10
+
11
+ ### Patch Changes
12
+
13
+ - 7704d98: [Bug Fix] Deselect group children when group is deselected but closed
14
+
3
15
  ## 14.35.2
4
16
 
5
17
  ### Patch Changes
@@ -55273,6 +55273,16 @@ var rowSelectionState = {
55273
55273
  selected: "selected",
55274
55274
  unselected: "unselected"
55275
55275
  };
55276
+ var getRowSelectionState = (rowNode) => {
55277
+ switch (rowNode.isSelected()) {
55278
+ case void 0:
55279
+ return rowSelectionState.indeterminate;
55280
+ case true:
55281
+ return rowSelectionState.selected;
55282
+ case false:
55283
+ return rowSelectionState.unselected;
55284
+ }
55285
+ };
55276
55286
  function isNodeRootLevelOfGrid(node) {
55277
55287
  return node ? node.level === -1 : false;
55278
55288
  }
@@ -104407,6 +104417,7 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
104407
104417
  onCellValueChanged: onGridReadyOrValueChange,
104408
104418
  onRowDataChanged: onGridReadyOrValueChange,
104409
104419
  onRowDataUpdated: onGridReadyOrValueChange,
104420
+ onRowSelected: detailRowConfig.onRowSelected ?? null,
104410
104421
  refreshStrategy: detailRowConfig.refreshStrategy || "everything",
104411
104422
  aggFuncs: aggregationFunctions_exports,
104412
104423
  defaultColDef: {
@@ -107767,8 +107778,7 @@ var useTableApi = ({
107767
107778
  if (!event.node.displayed || !event.node.id) {
107768
107779
  return;
107769
107780
  }
107770
- const isRowSelected2 = event.node.isSelected();
107771
- const selectedState = isRowSelected2 === true ? rowSelectionState.selected : isRowSelected2 === false ? rowSelectionState.unselected : rowSelectionState.indeterminate;
107781
+ const selectedState = getRowSelectionState(event.node);
107772
107782
  rowSelectionRef.current.affectedRows[event.node.id] = {
107773
107783
  node: event.node,
107774
107784
  selectedState
@@ -109234,7 +109244,7 @@ var Table = (props) => {
109234
109244
  (_c2 = (_b2 = props.UNSAFE_internalAGGridOverrides) == null ? void 0 : _b2.onGridReady) == null ? void 0 : _c2.call(_b2, params);
109235
109245
  };
109236
109246
  const internalOnRowSelected = (event) => {
109237
- var _a2, _b2, _c2;
109247
+ var _a2, _b2, _c2, _d;
109238
109248
  (_a2 = props.onRowSelected) == null ? void 0 : _a2.call(props, event);
109239
109249
  if (props.siblingGroupsRowSelectionDisabled) {
109240
109250
  const rootRowNode = getRootRowNode(event.node);
@@ -109246,6 +109256,10 @@ var Table = (props) => {
109246
109256
  });
109247
109257
  }
109248
109258
  }
109259
+ if ((_d = internalTableContext.rowSelectionRef) == null ? void 0 : _d.current.affectedRows[event.node.id]) {
109260
+ const nextSelectionState = getRowSelectionState(event.node);
109261
+ internalTableContext.rowSelectionRef.current.affectedRows[event.node.id] = { node: event.node, selectedState: nextSelectionState };
109262
+ }
109249
109263
  };
109250
109264
  const internalRowGroupOpened = React80__default.default.useCallback(
109251
109265
  (event) => {
@@ -1,5 +1,5 @@
1
1
  import * as _ag_grid_community_core from '@ag-grid-community/core';
2
- import { ICellRendererParams, NumberFilterModel as NumberFilterModel$1, ColDef, IRowNode, ICellEditorParams, ColumnPinnedType, RowHeightParams, GetRowIdParams, RowDataTransaction, RowNodeTransaction, ServerSideTransaction, GridApi, ICellEditor, RefreshCellsParams, RowNode as RowNode$1, Column, SelectionEventSourceType, CheckboxSelectionCallbackParams, ExcelDataType, Module, RowGroupOpenedEvent, RowSelectedEvent, ColumnEverythingChangedEvent, CellFocusedEvent, ColumnApi, TabToNextCellParams, CellPosition, IFilter, IScalarFilterParams, ISimpleFilterParams } from '@ag-grid-community/core';
2
+ import { ICellRendererParams, NumberFilterModel as NumberFilterModel$1, ColDef, IRowNode, ICellEditorParams, ColumnPinnedType, RowHeightParams, GetRowIdParams, RowDataTransaction, RowNodeTransaction, ServerSideTransaction, GridApi, ICellEditor, RefreshCellsParams, RowNode as RowNode$1, Column, SelectionEventSourceType, CheckboxSelectionCallbackParams, RowSelectedEvent, ExcelDataType, Module, RowGroupOpenedEvent, ColumnEverythingChangedEvent, CellFocusedEvent, ColumnApi, TabToNextCellParams, CellPosition, IFilter, IScalarFilterParams, ISimpleFilterParams } from '@ag-grid-community/core';
3
3
  import * as React$1 from 'react';
4
4
  import React__default from 'react';
5
5
  import { AgGridReactProps, AgReactUiProps } from '@ag-grid-community/react';
@@ -759,6 +759,7 @@ interface DetailRowConfig<TRow = any> {
759
759
  rowSelection?: 'multiple' | 'single';
760
760
  rowMultiSelectWithClick?: boolean;
761
761
  suppressRowClickSelection?: boolean;
762
+ onRowSelected?: (event: RowSelectedEvent) => void;
762
763
  }
763
764
  type CustomRendererCell = {
764
765
  component: React.ComponentType<any>;
@@ -1,5 +1,5 @@
1
1
  import * as _ag_grid_community_core from '@ag-grid-community/core';
2
- import { ICellRendererParams, NumberFilterModel as NumberFilterModel$1, ColDef, IRowNode, ICellEditorParams, ColumnPinnedType, RowHeightParams, GetRowIdParams, RowDataTransaction, RowNodeTransaction, ServerSideTransaction, GridApi, ICellEditor, RefreshCellsParams, RowNode as RowNode$1, Column, SelectionEventSourceType, CheckboxSelectionCallbackParams, ExcelDataType, Module, RowGroupOpenedEvent, RowSelectedEvent, ColumnEverythingChangedEvent, CellFocusedEvent, ColumnApi, TabToNextCellParams, CellPosition, IFilter, IScalarFilterParams, ISimpleFilterParams } from '@ag-grid-community/core';
2
+ import { ICellRendererParams, NumberFilterModel as NumberFilterModel$1, ColDef, IRowNode, ICellEditorParams, ColumnPinnedType, RowHeightParams, GetRowIdParams, RowDataTransaction, RowNodeTransaction, ServerSideTransaction, GridApi, ICellEditor, RefreshCellsParams, RowNode as RowNode$1, Column, SelectionEventSourceType, CheckboxSelectionCallbackParams, RowSelectedEvent, ExcelDataType, Module, RowGroupOpenedEvent, ColumnEverythingChangedEvent, CellFocusedEvent, ColumnApi, TabToNextCellParams, CellPosition, IFilter, IScalarFilterParams, ISimpleFilterParams } from '@ag-grid-community/core';
3
3
  import * as React$1 from 'react';
4
4
  import React__default from 'react';
5
5
  import { AgGridReactProps, AgReactUiProps } from '@ag-grid-community/react';
@@ -759,6 +759,7 @@ interface DetailRowConfig<TRow = any> {
759
759
  rowSelection?: 'multiple' | 'single';
760
760
  rowMultiSelectWithClick?: boolean;
761
761
  suppressRowClickSelection?: boolean;
762
+ onRowSelected?: (event: RowSelectedEvent) => void;
762
763
  }
763
764
  type CustomRendererCell = {
764
765
  component: React.ComponentType<any>;
@@ -55260,6 +55260,16 @@ var rowSelectionState = {
55260
55260
  selected: "selected",
55261
55261
  unselected: "unselected"
55262
55262
  };
55263
+ var getRowSelectionState = (rowNode) => {
55264
+ switch (rowNode.isSelected()) {
55265
+ case void 0:
55266
+ return rowSelectionState.indeterminate;
55267
+ case true:
55268
+ return rowSelectionState.selected;
55269
+ case false:
55270
+ return rowSelectionState.unselected;
55271
+ }
55272
+ };
55263
55273
  function isNodeRootLevelOfGrid(node) {
55264
55274
  return node ? node.level === -1 : false;
55265
55275
  }
@@ -104394,6 +104404,7 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
104394
104404
  onCellValueChanged: onGridReadyOrValueChange,
104395
104405
  onRowDataChanged: onGridReadyOrValueChange,
104396
104406
  onRowDataUpdated: onGridReadyOrValueChange,
104407
+ onRowSelected: detailRowConfig.onRowSelected ?? null,
104397
104408
  refreshStrategy: detailRowConfig.refreshStrategy || "everything",
104398
104409
  aggFuncs: aggregationFunctions_exports,
104399
104410
  defaultColDef: {
@@ -107754,8 +107765,7 @@ var useTableApi = ({
107754
107765
  if (!event.node.displayed || !event.node.id) {
107755
107766
  return;
107756
107767
  }
107757
- const isRowSelected2 = event.node.isSelected();
107758
- const selectedState = isRowSelected2 === true ? rowSelectionState.selected : isRowSelected2 === false ? rowSelectionState.unselected : rowSelectionState.indeterminate;
107768
+ const selectedState = getRowSelectionState(event.node);
107759
107769
  rowSelectionRef.current.affectedRows[event.node.id] = {
107760
107770
  node: event.node,
107761
107771
  selectedState
@@ -109221,7 +109231,7 @@ var Table = (props) => {
109221
109231
  (_c2 = (_b2 = props.UNSAFE_internalAGGridOverrides) == null ? void 0 : _b2.onGridReady) == null ? void 0 : _c2.call(_b2, params);
109222
109232
  };
109223
109233
  const internalOnRowSelected = (event) => {
109224
- var _a2, _b2, _c2;
109234
+ var _a2, _b2, _c2, _d;
109225
109235
  (_a2 = props.onRowSelected) == null ? void 0 : _a2.call(props, event);
109226
109236
  if (props.siblingGroupsRowSelectionDisabled) {
109227
109237
  const rootRowNode = getRootRowNode(event.node);
@@ -109233,6 +109243,10 @@ var Table = (props) => {
109233
109243
  });
109234
109244
  }
109235
109245
  }
109246
+ if ((_d = internalTableContext.rowSelectionRef) == null ? void 0 : _d.current.affectedRows[event.node.id]) {
109247
+ const nextSelectionState = getRowSelectionState(event.node);
109248
+ internalTableContext.rowSelectionRef.current.affectedRows[event.node.id] = { node: event.node, selectedState: nextSelectionState };
109249
+ }
109236
109250
  };
109237
109251
  const internalRowGroupOpened = React80.useCallback(
109238
109252
  (event) => {
@@ -55217,6 +55217,16 @@ var rowSelectionState = {
55217
55217
  selected: "selected",
55218
55218
  unselected: "unselected"
55219
55219
  };
55220
+ var getRowSelectionState = (rowNode) => {
55221
+ switch (rowNode.isSelected()) {
55222
+ case void 0:
55223
+ return rowSelectionState.indeterminate;
55224
+ case true:
55225
+ return rowSelectionState.selected;
55226
+ case false:
55227
+ return rowSelectionState.unselected;
55228
+ }
55229
+ };
55220
55230
  function isNodeRootLevelOfGrid(node) {
55221
55231
  return node ? node.level === -1 : false;
55222
55232
  }
@@ -104273,6 +104283,7 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
104273
104283
  onCellValueChanged: onGridReadyOrValueChange,
104274
104284
  onRowDataChanged: onGridReadyOrValueChange,
104275
104285
  onRowDataUpdated: onGridReadyOrValueChange,
104286
+ onRowSelected: detailRowConfig.onRowSelected ?? null,
104276
104287
  refreshStrategy: detailRowConfig.refreshStrategy || "everything",
104277
104288
  aggFuncs: aggregationFunctions_exports,
104278
104289
  defaultColDef: {
@@ -107624,8 +107635,7 @@ var useTableApi = ({
107624
107635
  if (!event.node.displayed || !event.node.id) {
107625
107636
  return;
107626
107637
  }
107627
- const isRowSelected2 = event.node.isSelected();
107628
- const selectedState = isRowSelected2 === true ? rowSelectionState.selected : isRowSelected2 === false ? rowSelectionState.unselected : rowSelectionState.indeterminate;
107638
+ const selectedState = getRowSelectionState(event.node);
107629
107639
  rowSelectionRef.current.affectedRows[event.node.id] = {
107630
107640
  node: event.node,
107631
107641
  selectedState
@@ -109059,6 +109069,10 @@ var Table = (props) => {
109059
109069
  });
109060
109070
  }
109061
109071
  }
109072
+ if (internalTableContext.rowSelectionRef?.current.affectedRows[event.node.id]) {
109073
+ const nextSelectionState = getRowSelectionState(event.node);
109074
+ internalTableContext.rowSelectionRef.current.affectedRows[event.node.id] = { node: event.node, selectedState: nextSelectionState };
109075
+ }
109062
109076
  };
109063
109077
  const internalRowGroupOpened = React80__default.default.useCallback(
109064
109078
  (event) => {
@@ -1,5 +1,5 @@
1
1
  import * as _ag_grid_community_core from '@ag-grid-community/core';
2
- import { ICellRendererParams, NumberFilterModel as NumberFilterModel$1, ColDef, IRowNode, ICellEditorParams, ColumnPinnedType, RowHeightParams, GetRowIdParams, RowDataTransaction, RowNodeTransaction, ServerSideTransaction, GridApi, ICellEditor, RefreshCellsParams, RowNode as RowNode$1, Column, SelectionEventSourceType, CheckboxSelectionCallbackParams, ExcelDataType, Module, RowGroupOpenedEvent, RowSelectedEvent, ColumnEverythingChangedEvent, CellFocusedEvent, ColumnApi, TabToNextCellParams, CellPosition, IFilter, IScalarFilterParams, ISimpleFilterParams } from '@ag-grid-community/core';
2
+ import { ICellRendererParams, NumberFilterModel as NumberFilterModel$1, ColDef, IRowNode, ICellEditorParams, ColumnPinnedType, RowHeightParams, GetRowIdParams, RowDataTransaction, RowNodeTransaction, ServerSideTransaction, GridApi, ICellEditor, RefreshCellsParams, RowNode as RowNode$1, Column, SelectionEventSourceType, CheckboxSelectionCallbackParams, RowSelectedEvent, ExcelDataType, Module, RowGroupOpenedEvent, ColumnEverythingChangedEvent, CellFocusedEvent, ColumnApi, TabToNextCellParams, CellPosition, IFilter, IScalarFilterParams, ISimpleFilterParams } from '@ag-grid-community/core';
3
3
  import * as React$1 from 'react';
4
4
  import React__default from 'react';
5
5
  import { AgGridReactProps, AgReactUiProps } from '@ag-grid-community/react';
@@ -759,6 +759,7 @@ interface DetailRowConfig<TRow = any> {
759
759
  rowSelection?: 'multiple' | 'single';
760
760
  rowMultiSelectWithClick?: boolean;
761
761
  suppressRowClickSelection?: boolean;
762
+ onRowSelected?: (event: RowSelectedEvent) => void;
762
763
  }
763
764
  type CustomRendererCell = {
764
765
  component: React.ComponentType<any>;
@@ -1,5 +1,5 @@
1
1
  import * as _ag_grid_community_core from '@ag-grid-community/core';
2
- import { ICellRendererParams, NumberFilterModel as NumberFilterModel$1, ColDef, IRowNode, ICellEditorParams, ColumnPinnedType, RowHeightParams, GetRowIdParams, RowDataTransaction, RowNodeTransaction, ServerSideTransaction, GridApi, ICellEditor, RefreshCellsParams, RowNode as RowNode$1, Column, SelectionEventSourceType, CheckboxSelectionCallbackParams, ExcelDataType, Module, RowGroupOpenedEvent, RowSelectedEvent, ColumnEverythingChangedEvent, CellFocusedEvent, ColumnApi, TabToNextCellParams, CellPosition, IFilter, IScalarFilterParams, ISimpleFilterParams } from '@ag-grid-community/core';
2
+ import { ICellRendererParams, NumberFilterModel as NumberFilterModel$1, ColDef, IRowNode, ICellEditorParams, ColumnPinnedType, RowHeightParams, GetRowIdParams, RowDataTransaction, RowNodeTransaction, ServerSideTransaction, GridApi, ICellEditor, RefreshCellsParams, RowNode as RowNode$1, Column, SelectionEventSourceType, CheckboxSelectionCallbackParams, RowSelectedEvent, ExcelDataType, Module, RowGroupOpenedEvent, ColumnEverythingChangedEvent, CellFocusedEvent, ColumnApi, TabToNextCellParams, CellPosition, IFilter, IScalarFilterParams, ISimpleFilterParams } from '@ag-grid-community/core';
3
3
  import * as React$1 from 'react';
4
4
  import React__default from 'react';
5
5
  import { AgGridReactProps, AgReactUiProps } from '@ag-grid-community/react';
@@ -759,6 +759,7 @@ interface DetailRowConfig<TRow = any> {
759
759
  rowSelection?: 'multiple' | 'single';
760
760
  rowMultiSelectWithClick?: boolean;
761
761
  suppressRowClickSelection?: boolean;
762
+ onRowSelected?: (event: RowSelectedEvent) => void;
762
763
  }
763
764
  type CustomRendererCell = {
764
765
  component: React.ComponentType<any>;
@@ -55204,6 +55204,16 @@ var rowSelectionState = {
55204
55204
  selected: "selected",
55205
55205
  unselected: "unselected"
55206
55206
  };
55207
+ var getRowSelectionState = (rowNode) => {
55208
+ switch (rowNode.isSelected()) {
55209
+ case void 0:
55210
+ return rowSelectionState.indeterminate;
55211
+ case true:
55212
+ return rowSelectionState.selected;
55213
+ case false:
55214
+ return rowSelectionState.unselected;
55215
+ }
55216
+ };
55207
55217
  function isNodeRootLevelOfGrid(node) {
55208
55218
  return node ? node.level === -1 : false;
55209
55219
  }
@@ -104260,6 +104270,7 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
104260
104270
  onCellValueChanged: onGridReadyOrValueChange,
104261
104271
  onRowDataChanged: onGridReadyOrValueChange,
104262
104272
  onRowDataUpdated: onGridReadyOrValueChange,
104273
+ onRowSelected: detailRowConfig.onRowSelected ?? null,
104263
104274
  refreshStrategy: detailRowConfig.refreshStrategy || "everything",
104264
104275
  aggFuncs: aggregationFunctions_exports,
104265
104276
  defaultColDef: {
@@ -107611,8 +107622,7 @@ var useTableApi = ({
107611
107622
  if (!event.node.displayed || !event.node.id) {
107612
107623
  return;
107613
107624
  }
107614
- const isRowSelected2 = event.node.isSelected();
107615
- const selectedState = isRowSelected2 === true ? rowSelectionState.selected : isRowSelected2 === false ? rowSelectionState.unselected : rowSelectionState.indeterminate;
107625
+ const selectedState = getRowSelectionState(event.node);
107616
107626
  rowSelectionRef.current.affectedRows[event.node.id] = {
107617
107627
  node: event.node,
107618
107628
  selectedState
@@ -109046,6 +109056,10 @@ var Table = (props) => {
109046
109056
  });
109047
109057
  }
109048
109058
  }
109059
+ if (internalTableContext.rowSelectionRef?.current.affectedRows[event.node.id]) {
109060
+ const nextSelectionState = getRowSelectionState(event.node);
109061
+ internalTableContext.rowSelectionRef.current.affectedRows[event.node.id] = { node: event.node, selectedState: nextSelectionState };
109062
+ }
109049
109063
  };
109050
109064
  const internalRowGroupOpened = React80.useCallback(
109051
109065
  (event) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procore/data-table",
3
- "version": "14.35.2",
3
+ "version": "14.35.4",
4
4
  "description": "Complex data grid built on top of ag-grid, with DST components and styles.",
5
5
  "author": "Procore Technologies",
6
6
  "homepage": "https://github.com/procore/core/tree/main/packages/data-table",
@@ -107,9 +107,9 @@
107
107
  "@dotenvx/dotenvx": "1.6.4",
108
108
  "@ngneat/falso": "6.4.0",
109
109
  "@procore/core-css": "10.17.0",
110
- "@procore/core-icons": "^12.8.0",
110
+ "@procore/core-icons": "^12.10.0",
111
111
  "@procore/core-prettier": "10.2.0",
112
- "@procore/core-react": "^12.25.2",
112
+ "@procore/core-react": "^12.26.6",
113
113
  "@procore/eslint-config": "10.0.0",
114
114
  "@procore/globalization-toolkit": "3.1.0",
115
115
  "@procore/labs-financials-utils": "4.3.1",