@procore/data-table 14.38.0 → 14.39.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## 14.39.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 3052b62: Adds onExpandOrCollapseAll prop for tracking expand/collapse state
8
+
3
9
  ## 14.38.0
4
10
 
5
11
  ### Minor Changes
@@ -56596,9 +56596,10 @@ var GenericHeaderRenderer = (props) => {
56596
56596
  const {
56597
56597
  columnApi,
56598
56598
  tableRef,
56599
+ onExpandOrCollapseAll,
56599
56600
  onServerSideDataRequest,
56600
- showExpandCollapseAllToggle,
56601
- onTableConfigChange
56601
+ onTableConfigChange,
56602
+ showExpandCollapseAllToggle
56602
56603
  } = useInternalTableContext();
56603
56604
  const onSSDR = Boolean(onServerSideDataRequest);
56604
56605
  const [sortOrder, setSortOrder] = React80__default.default.useState(props.column.getSort());
@@ -56789,9 +56790,11 @@ var GenericHeaderRenderer = (props) => {
56789
56790
  }
56790
56791
  });
56791
56792
  setExpansionVariant("tierOne");
56793
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56792
56794
  } else {
56793
56795
  props.api.collapseAll();
56794
56796
  setExpansionVariant("closed");
56797
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(false);
56795
56798
  }
56796
56799
  return;
56797
56800
  }
@@ -56806,10 +56809,13 @@ var GenericHeaderRenderer = (props) => {
56806
56809
  props.api
56807
56810
  );
56808
56811
  setExpansionVariant(hasMoreExpandableNodes ? "tierOne" : "all");
56812
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56809
56813
  } else if (expansionVariant === "tierOne") {
56810
56814
  props.api.expandAll();
56815
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56811
56816
  } else {
56812
56817
  props.api.collapseAll();
56818
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(false);
56813
56819
  }
56814
56820
  }
56815
56821
  const tooltipText = {
@@ -56986,7 +56992,8 @@ var GenericHeaderRenderer = (props) => {
56986
56992
  "aria-label": tooltipText[expansionVariant],
56987
56993
  className: "expand-button",
56988
56994
  onClick: onExpandToggle,
56989
- role: "button"
56995
+ role: "button",
56996
+ "data-qa": "expand-or-collapse-all-button"
56990
56997
  },
56991
56998
  /* @__PURE__ */ React80__default.default.createElement(ExpansionVariantIcon, { size: "sm" })
56992
56999
  )
@@ -57846,6 +57853,8 @@ var InternalTableContext = React80__default.default.createContext({
57846
57853
  gridApi: void 0,
57847
57854
  localStoragePersistenceKey: void 0,
57848
57855
  onBulkEditUpdate: () => Promise.resolve(),
57856
+ onExpandOrCollapseAll: () => {
57857
+ },
57849
57858
  onServerSideDataRequest: void 0,
57850
57859
  onTableConfigChange: () => {
57851
57860
  },
@@ -108988,6 +108997,7 @@ var DataTable = ({
108988
108997
  getRowId,
108989
108998
  initialTableConfig: _initialTableConfig,
108990
108999
  onBulkEditUpdate,
109000
+ onExpandOrCollapseAll,
108991
109001
  onServerSideDataRequest,
108992
109002
  onTableConfigChange,
108993
109003
  showExpandCollapseAllToggle,
@@ -109238,6 +109248,7 @@ var DataTable = ({
109238
109248
  gridApi,
109239
109249
  initialTableConfig,
109240
109250
  onBulkEditUpdate,
109251
+ onExpandOrCollapseAll,
109241
109252
  onServerSideDataRequest,
109242
109253
  onTableConfigChange: internalOnTableConfigChange,
109243
109254
  rowSelectionRef,
@@ -112316,6 +112327,7 @@ var ClientSideDataTable = ({
112316
112327
  getRowId,
112317
112328
  initialTableConfig: _initialTableConfig,
112318
112329
  onBulkEditUpdate,
112330
+ onExpandOrCollapseAll,
112319
112331
  onTableConfigChange,
112320
112332
  translations: translations2 = {},
112321
112333
  enableCellTextSelection,
@@ -112332,8 +112344,9 @@ var ClientSideDataTable = ({
112332
112344
  filterGroups,
112333
112345
  getRowId,
112334
112346
  initialTableConfig: _initialTableConfig,
112335
- onTableConfigChange,
112336
112347
  onBulkEditUpdate,
112348
+ onExpandOrCollapseAll,
112349
+ onTableConfigChange,
112337
112350
  showExpandCollapseAllToggle: true,
112338
112351
  translations: translations2,
112339
112352
  localStoragePersistenceKey,
@@ -116725,6 +116738,7 @@ var ServerSideDataTable = ({
116725
116738
  getRowId,
116726
116739
  initialTableConfig: _initialTableConfig,
116727
116740
  onBulkEditUpdate,
116741
+ onExpandOrCollapseAll,
116728
116742
  onServerSideDataRequest,
116729
116743
  onTableConfigChange,
116730
116744
  enableCellTextSelection,
@@ -116743,9 +116757,10 @@ var ServerSideDataTable = ({
116743
116757
  filterGroups,
116744
116758
  getRowId,
116745
116759
  initialTableConfig: _initialTableConfig,
116746
- onTableConfigChange,
116747
- onServerSideDataRequest,
116748
116760
  onBulkEditUpdate,
116761
+ onExpandOrCollapseAll,
116762
+ onServerSideDataRequest,
116763
+ onTableConfigChange,
116749
116764
  showExpandCollapseAllToggle,
116750
116765
  translations: translations2,
116751
116766
  customBulkEditorFields,
@@ -1145,8 +1145,16 @@ interface DataTableProps {
1145
1145
  filterGroups?: FilterGroup[];
1146
1146
  getRowId?: (params: GetRowIdParams) => string;
1147
1147
  initialTableConfig?: DataTableConfig;
1148
- onTableConfigChange?: (config: DataTableConfig) => void;
1148
+ /**
1149
+ * Callback invoked when the row group expand/collapse state changes via
1150
+ * the Expand/Collapse toggle button. Use this to track the table's
1151
+ * expand/collapse state.
1152
+ * @param expanded - `true` when groups are expanded at any level, `false`
1153
+ * when all groups are collapsed.
1154
+ */
1155
+ onExpandOrCollapseAll?: (expanded: boolean) => void;
1149
1156
  onServerSideDataRequest?: (params: ServerSideGetRowsParams) => Promise<SuccessParams | void> | void;
1157
+ onTableConfigChange?: (config: DataTableConfig) => void;
1150
1158
  grandTotalsLabelRenderer?: React.FunctionComponent<GrandTotalsLabelRendererProps>;
1151
1159
  /**
1152
1160
  * Callback after bulk edit action is performed.
@@ -1374,6 +1382,7 @@ interface InternalTableContext {
1374
1382
  onServerSideDataRequest?: DataTableProps['onServerSideDataRequest'];
1375
1383
  updateServerSideDataSource: (params: UpdateServerSideDataSourceParams) => void;
1376
1384
  localStoragePersistenceKey?: string;
1385
+ onExpandOrCollapseAll?: (expanded: boolean) => void;
1377
1386
  onTableConfigChange: () => void;
1378
1387
  rowHeight: RowSize;
1379
1388
  rowSelectionRef?: React__default.MutableRefObject<RowSelectionRef>;
@@ -1454,7 +1463,7 @@ interface BulkActionProps {
1454
1463
  style?: React__default.CSSProperties;
1455
1464
  }
1456
1465
 
1457
- declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1466
+ declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onExpandOrCollapseAll, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1458
1467
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1459
1468
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1460
1469
  ConfigPanelButton: React__default.FC<{}>;
@@ -1491,7 +1500,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1491
1500
 
1492
1501
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1493
1502
 
1494
- declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1503
+ declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onExpandOrCollapseAll, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1495
1504
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1496
1505
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1497
1506
  ConfigPanelButton: React__default.FC<{}>;
@@ -1145,8 +1145,16 @@ interface DataTableProps {
1145
1145
  filterGroups?: FilterGroup[];
1146
1146
  getRowId?: (params: GetRowIdParams) => string;
1147
1147
  initialTableConfig?: DataTableConfig;
1148
- onTableConfigChange?: (config: DataTableConfig) => void;
1148
+ /**
1149
+ * Callback invoked when the row group expand/collapse state changes via
1150
+ * the Expand/Collapse toggle button. Use this to track the table's
1151
+ * expand/collapse state.
1152
+ * @param expanded - `true` when groups are expanded at any level, `false`
1153
+ * when all groups are collapsed.
1154
+ */
1155
+ onExpandOrCollapseAll?: (expanded: boolean) => void;
1149
1156
  onServerSideDataRequest?: (params: ServerSideGetRowsParams) => Promise<SuccessParams | void> | void;
1157
+ onTableConfigChange?: (config: DataTableConfig) => void;
1150
1158
  grandTotalsLabelRenderer?: React.FunctionComponent<GrandTotalsLabelRendererProps>;
1151
1159
  /**
1152
1160
  * Callback after bulk edit action is performed.
@@ -1374,6 +1382,7 @@ interface InternalTableContext {
1374
1382
  onServerSideDataRequest?: DataTableProps['onServerSideDataRequest'];
1375
1383
  updateServerSideDataSource: (params: UpdateServerSideDataSourceParams) => void;
1376
1384
  localStoragePersistenceKey?: string;
1385
+ onExpandOrCollapseAll?: (expanded: boolean) => void;
1377
1386
  onTableConfigChange: () => void;
1378
1387
  rowHeight: RowSize;
1379
1388
  rowSelectionRef?: React__default.MutableRefObject<RowSelectionRef>;
@@ -1454,7 +1463,7 @@ interface BulkActionProps {
1454
1463
  style?: React__default.CSSProperties;
1455
1464
  }
1456
1465
 
1457
- declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1466
+ declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onExpandOrCollapseAll, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1458
1467
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1459
1468
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1460
1469
  ConfigPanelButton: React__default.FC<{}>;
@@ -1491,7 +1500,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1491
1500
 
1492
1501
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1493
1502
 
1494
- declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1503
+ declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onExpandOrCollapseAll, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1495
1504
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1496
1505
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1497
1506
  ConfigPanelButton: React__default.FC<{}>;
@@ -56583,9 +56583,10 @@ var GenericHeaderRenderer = (props) => {
56583
56583
  const {
56584
56584
  columnApi,
56585
56585
  tableRef,
56586
+ onExpandOrCollapseAll,
56586
56587
  onServerSideDataRequest,
56587
- showExpandCollapseAllToggle,
56588
- onTableConfigChange
56588
+ onTableConfigChange,
56589
+ showExpandCollapseAllToggle
56589
56590
  } = useInternalTableContext();
56590
56591
  const onSSDR = Boolean(onServerSideDataRequest);
56591
56592
  const [sortOrder, setSortOrder] = React80.useState(props.column.getSort());
@@ -56776,9 +56777,11 @@ var GenericHeaderRenderer = (props) => {
56776
56777
  }
56777
56778
  });
56778
56779
  setExpansionVariant("tierOne");
56780
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56779
56781
  } else {
56780
56782
  props.api.collapseAll();
56781
56783
  setExpansionVariant("closed");
56784
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(false);
56782
56785
  }
56783
56786
  return;
56784
56787
  }
@@ -56793,10 +56796,13 @@ var GenericHeaderRenderer = (props) => {
56793
56796
  props.api
56794
56797
  );
56795
56798
  setExpansionVariant(hasMoreExpandableNodes ? "tierOne" : "all");
56799
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56796
56800
  } else if (expansionVariant === "tierOne") {
56797
56801
  props.api.expandAll();
56802
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56798
56803
  } else {
56799
56804
  props.api.collapseAll();
56805
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(false);
56800
56806
  }
56801
56807
  }
56802
56808
  const tooltipText = {
@@ -56973,7 +56979,8 @@ var GenericHeaderRenderer = (props) => {
56973
56979
  "aria-label": tooltipText[expansionVariant],
56974
56980
  className: "expand-button",
56975
56981
  onClick: onExpandToggle,
56976
- role: "button"
56982
+ role: "button",
56983
+ "data-qa": "expand-or-collapse-all-button"
56977
56984
  },
56978
56985
  /* @__PURE__ */ React80.createElement(ExpansionVariantIcon, { size: "sm" })
56979
56986
  )
@@ -57833,6 +57840,8 @@ var InternalTableContext = React80.createContext({
57833
57840
  gridApi: void 0,
57834
57841
  localStoragePersistenceKey: void 0,
57835
57842
  onBulkEditUpdate: () => Promise.resolve(),
57843
+ onExpandOrCollapseAll: () => {
57844
+ },
57836
57845
  onServerSideDataRequest: void 0,
57837
57846
  onTableConfigChange: () => {
57838
57847
  },
@@ -108975,6 +108984,7 @@ var DataTable = ({
108975
108984
  getRowId,
108976
108985
  initialTableConfig: _initialTableConfig,
108977
108986
  onBulkEditUpdate,
108987
+ onExpandOrCollapseAll,
108978
108988
  onServerSideDataRequest,
108979
108989
  onTableConfigChange,
108980
108990
  showExpandCollapseAllToggle,
@@ -109225,6 +109235,7 @@ var DataTable = ({
109225
109235
  gridApi,
109226
109236
  initialTableConfig,
109227
109237
  onBulkEditUpdate,
109238
+ onExpandOrCollapseAll,
109228
109239
  onServerSideDataRequest,
109229
109240
  onTableConfigChange: internalOnTableConfigChange,
109230
109241
  rowSelectionRef,
@@ -112303,6 +112314,7 @@ var ClientSideDataTable = ({
112303
112314
  getRowId,
112304
112315
  initialTableConfig: _initialTableConfig,
112305
112316
  onBulkEditUpdate,
112317
+ onExpandOrCollapseAll,
112306
112318
  onTableConfigChange,
112307
112319
  translations: translations2 = {},
112308
112320
  enableCellTextSelection,
@@ -112319,8 +112331,9 @@ var ClientSideDataTable = ({
112319
112331
  filterGroups,
112320
112332
  getRowId,
112321
112333
  initialTableConfig: _initialTableConfig,
112322
- onTableConfigChange,
112323
112334
  onBulkEditUpdate,
112335
+ onExpandOrCollapseAll,
112336
+ onTableConfigChange,
112324
112337
  showExpandCollapseAllToggle: true,
112325
112338
  translations: translations2,
112326
112339
  localStoragePersistenceKey,
@@ -116712,6 +116725,7 @@ var ServerSideDataTable = ({
116712
116725
  getRowId,
116713
116726
  initialTableConfig: _initialTableConfig,
116714
116727
  onBulkEditUpdate,
116728
+ onExpandOrCollapseAll,
116715
116729
  onServerSideDataRequest,
116716
116730
  onTableConfigChange,
116717
116731
  enableCellTextSelection,
@@ -116730,9 +116744,10 @@ var ServerSideDataTable = ({
116730
116744
  filterGroups,
116731
116745
  getRowId,
116732
116746
  initialTableConfig: _initialTableConfig,
116733
- onTableConfigChange,
116734
- onServerSideDataRequest,
116735
116747
  onBulkEditUpdate,
116748
+ onExpandOrCollapseAll,
116749
+ onServerSideDataRequest,
116750
+ onTableConfigChange,
116736
116751
  showExpandCollapseAllToggle,
116737
116752
  translations: translations2,
116738
116753
  customBulkEditorFields,
@@ -56517,9 +56517,10 @@ var GenericHeaderRenderer = (props) => {
56517
56517
  const {
56518
56518
  columnApi,
56519
56519
  tableRef,
56520
+ onExpandOrCollapseAll,
56520
56521
  onServerSideDataRequest,
56521
- showExpandCollapseAllToggle,
56522
- onTableConfigChange
56522
+ onTableConfigChange,
56523
+ showExpandCollapseAllToggle
56523
56524
  } = useInternalTableContext();
56524
56525
  const onSSDR = Boolean(onServerSideDataRequest);
56525
56526
  const [sortOrder, setSortOrder] = React80__default.default.useState(props.column.getSort());
@@ -56708,9 +56709,11 @@ var GenericHeaderRenderer = (props) => {
56708
56709
  }
56709
56710
  });
56710
56711
  setExpansionVariant("tierOne");
56712
+ onExpandOrCollapseAll?.(true);
56711
56713
  } else {
56712
56714
  props.api.collapseAll();
56713
56715
  setExpansionVariant("closed");
56716
+ onExpandOrCollapseAll?.(false);
56714
56717
  }
56715
56718
  return;
56716
56719
  }
@@ -56725,10 +56728,13 @@ var GenericHeaderRenderer = (props) => {
56725
56728
  props.api
56726
56729
  );
56727
56730
  setExpansionVariant(hasMoreExpandableNodes ? "tierOne" : "all");
56731
+ onExpandOrCollapseAll?.(true);
56728
56732
  } else if (expansionVariant === "tierOne") {
56729
56733
  props.api.expandAll();
56734
+ onExpandOrCollapseAll?.(true);
56730
56735
  } else {
56731
56736
  props.api.collapseAll();
56737
+ onExpandOrCollapseAll?.(false);
56732
56738
  }
56733
56739
  }
56734
56740
  const tooltipText = {
@@ -56900,7 +56906,8 @@ var GenericHeaderRenderer = (props) => {
56900
56906
  "aria-label": tooltipText[expansionVariant],
56901
56907
  className: "expand-button",
56902
56908
  onClick: onExpandToggle,
56903
- role: "button"
56909
+ role: "button",
56910
+ "data-qa": "expand-or-collapse-all-button"
56904
56911
  },
56905
56912
  /* @__PURE__ */ React80__default.default.createElement(ExpansionVariantIcon, { size: "sm" })
56906
56913
  )
@@ -57744,6 +57751,8 @@ var InternalTableContext = React80__default.default.createContext({
57744
57751
  gridApi: void 0,
57745
57752
  localStoragePersistenceKey: void 0,
57746
57753
  onBulkEditUpdate: () => Promise.resolve(),
57754
+ onExpandOrCollapseAll: () => {
57755
+ },
57747
57756
  onServerSideDataRequest: void 0,
57748
57757
  onTableConfigChange: () => {
57749
57758
  },
@@ -108837,6 +108846,7 @@ var DataTable = ({
108837
108846
  getRowId,
108838
108847
  initialTableConfig: _initialTableConfig,
108839
108848
  onBulkEditUpdate,
108849
+ onExpandOrCollapseAll,
108840
108850
  onServerSideDataRequest,
108841
108851
  onTableConfigChange,
108842
108852
  showExpandCollapseAllToggle,
@@ -109083,6 +109093,7 @@ var DataTable = ({
109083
109093
  gridApi,
109084
109094
  initialTableConfig,
109085
109095
  onBulkEditUpdate,
109096
+ onExpandOrCollapseAll,
109086
109097
  onServerSideDataRequest,
109087
109098
  onTableConfigChange: internalOnTableConfigChange,
109088
109099
  rowSelectionRef,
@@ -112086,6 +112097,7 @@ var ClientSideDataTable = ({
112086
112097
  getRowId,
112087
112098
  initialTableConfig: _initialTableConfig,
112088
112099
  onBulkEditUpdate,
112100
+ onExpandOrCollapseAll,
112089
112101
  onTableConfigChange,
112090
112102
  translations: translations2 = {},
112091
112103
  enableCellTextSelection,
@@ -112102,8 +112114,9 @@ var ClientSideDataTable = ({
112102
112114
  filterGroups,
112103
112115
  getRowId,
112104
112116
  initialTableConfig: _initialTableConfig,
112105
- onTableConfigChange,
112106
112117
  onBulkEditUpdate,
112118
+ onExpandOrCollapseAll,
112119
+ onTableConfigChange,
112107
112120
  showExpandCollapseAllToggle: true,
112108
112121
  translations: translations2,
112109
112122
  localStoragePersistenceKey,
@@ -116494,6 +116507,7 @@ var ServerSideDataTable = ({
116494
116507
  getRowId,
116495
116508
  initialTableConfig: _initialTableConfig,
116496
116509
  onBulkEditUpdate,
116510
+ onExpandOrCollapseAll,
116497
116511
  onServerSideDataRequest,
116498
116512
  onTableConfigChange,
116499
116513
  enableCellTextSelection,
@@ -116512,9 +116526,10 @@ var ServerSideDataTable = ({
116512
116526
  filterGroups,
116513
116527
  getRowId,
116514
116528
  initialTableConfig: _initialTableConfig,
116515
- onTableConfigChange,
116516
- onServerSideDataRequest,
116517
116529
  onBulkEditUpdate,
116530
+ onExpandOrCollapseAll,
116531
+ onServerSideDataRequest,
116532
+ onTableConfigChange,
116518
116533
  showExpandCollapseAllToggle,
116519
116534
  translations: translations2,
116520
116535
  customBulkEditorFields,
@@ -1145,8 +1145,16 @@ interface DataTableProps {
1145
1145
  filterGroups?: FilterGroup[];
1146
1146
  getRowId?: (params: GetRowIdParams) => string;
1147
1147
  initialTableConfig?: DataTableConfig;
1148
- onTableConfigChange?: (config: DataTableConfig) => void;
1148
+ /**
1149
+ * Callback invoked when the row group expand/collapse state changes via
1150
+ * the Expand/Collapse toggle button. Use this to track the table's
1151
+ * expand/collapse state.
1152
+ * @param expanded - `true` when groups are expanded at any level, `false`
1153
+ * when all groups are collapsed.
1154
+ */
1155
+ onExpandOrCollapseAll?: (expanded: boolean) => void;
1149
1156
  onServerSideDataRequest?: (params: ServerSideGetRowsParams) => Promise<SuccessParams | void> | void;
1157
+ onTableConfigChange?: (config: DataTableConfig) => void;
1150
1158
  grandTotalsLabelRenderer?: React.FunctionComponent<GrandTotalsLabelRendererProps>;
1151
1159
  /**
1152
1160
  * Callback after bulk edit action is performed.
@@ -1374,6 +1382,7 @@ interface InternalTableContext {
1374
1382
  onServerSideDataRequest?: DataTableProps['onServerSideDataRequest'];
1375
1383
  updateServerSideDataSource: (params: UpdateServerSideDataSourceParams) => void;
1376
1384
  localStoragePersistenceKey?: string;
1385
+ onExpandOrCollapseAll?: (expanded: boolean) => void;
1377
1386
  onTableConfigChange: () => void;
1378
1387
  rowHeight: RowSize;
1379
1388
  rowSelectionRef?: React__default.MutableRefObject<RowSelectionRef>;
@@ -1454,7 +1463,7 @@ interface BulkActionProps {
1454
1463
  style?: React__default.CSSProperties;
1455
1464
  }
1456
1465
 
1457
- declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1466
+ declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onExpandOrCollapseAll, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1458
1467
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1459
1468
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1460
1469
  ConfigPanelButton: React__default.FC<{}>;
@@ -1491,7 +1500,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1491
1500
 
1492
1501
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1493
1502
 
1494
- declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1503
+ declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onExpandOrCollapseAll, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1495
1504
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1496
1505
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1497
1506
  ConfigPanelButton: React__default.FC<{}>;
@@ -1145,8 +1145,16 @@ interface DataTableProps {
1145
1145
  filterGroups?: FilterGroup[];
1146
1146
  getRowId?: (params: GetRowIdParams) => string;
1147
1147
  initialTableConfig?: DataTableConfig;
1148
- onTableConfigChange?: (config: DataTableConfig) => void;
1148
+ /**
1149
+ * Callback invoked when the row group expand/collapse state changes via
1150
+ * the Expand/Collapse toggle button. Use this to track the table's
1151
+ * expand/collapse state.
1152
+ * @param expanded - `true` when groups are expanded at any level, `false`
1153
+ * when all groups are collapsed.
1154
+ */
1155
+ onExpandOrCollapseAll?: (expanded: boolean) => void;
1149
1156
  onServerSideDataRequest?: (params: ServerSideGetRowsParams) => Promise<SuccessParams | void> | void;
1157
+ onTableConfigChange?: (config: DataTableConfig) => void;
1150
1158
  grandTotalsLabelRenderer?: React.FunctionComponent<GrandTotalsLabelRendererProps>;
1151
1159
  /**
1152
1160
  * Callback after bulk edit action is performed.
@@ -1374,6 +1382,7 @@ interface InternalTableContext {
1374
1382
  onServerSideDataRequest?: DataTableProps['onServerSideDataRequest'];
1375
1383
  updateServerSideDataSource: (params: UpdateServerSideDataSourceParams) => void;
1376
1384
  localStoragePersistenceKey?: string;
1385
+ onExpandOrCollapseAll?: (expanded: boolean) => void;
1377
1386
  onTableConfigChange: () => void;
1378
1387
  rowHeight: RowSize;
1379
1388
  rowSelectionRef?: React__default.MutableRefObject<RowSelectionRef>;
@@ -1454,7 +1463,7 @@ interface BulkActionProps {
1454
1463
  style?: React__default.CSSProperties;
1455
1464
  }
1456
1465
 
1457
- declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1466
+ declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onExpandOrCollapseAll, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1458
1467
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1459
1468
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1460
1469
  ConfigPanelButton: React__default.FC<{}>;
@@ -1491,7 +1500,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1491
1500
 
1492
1501
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1493
1502
 
1494
- declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1503
+ declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onExpandOrCollapseAll, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, enableCDN, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1495
1504
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1496
1505
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1497
1506
  ConfigPanelButton: React__default.FC<{}>;
@@ -56504,9 +56504,10 @@ var GenericHeaderRenderer = (props) => {
56504
56504
  const {
56505
56505
  columnApi,
56506
56506
  tableRef,
56507
+ onExpandOrCollapseAll,
56507
56508
  onServerSideDataRequest,
56508
- showExpandCollapseAllToggle,
56509
- onTableConfigChange
56509
+ onTableConfigChange,
56510
+ showExpandCollapseAllToggle
56510
56511
  } = useInternalTableContext();
56511
56512
  const onSSDR = Boolean(onServerSideDataRequest);
56512
56513
  const [sortOrder, setSortOrder] = React80.useState(props.column.getSort());
@@ -56695,9 +56696,11 @@ var GenericHeaderRenderer = (props) => {
56695
56696
  }
56696
56697
  });
56697
56698
  setExpansionVariant("tierOne");
56699
+ onExpandOrCollapseAll?.(true);
56698
56700
  } else {
56699
56701
  props.api.collapseAll();
56700
56702
  setExpansionVariant("closed");
56703
+ onExpandOrCollapseAll?.(false);
56701
56704
  }
56702
56705
  return;
56703
56706
  }
@@ -56712,10 +56715,13 @@ var GenericHeaderRenderer = (props) => {
56712
56715
  props.api
56713
56716
  );
56714
56717
  setExpansionVariant(hasMoreExpandableNodes ? "tierOne" : "all");
56718
+ onExpandOrCollapseAll?.(true);
56715
56719
  } else if (expansionVariant === "tierOne") {
56716
56720
  props.api.expandAll();
56721
+ onExpandOrCollapseAll?.(true);
56717
56722
  } else {
56718
56723
  props.api.collapseAll();
56724
+ onExpandOrCollapseAll?.(false);
56719
56725
  }
56720
56726
  }
56721
56727
  const tooltipText = {
@@ -56887,7 +56893,8 @@ var GenericHeaderRenderer = (props) => {
56887
56893
  "aria-label": tooltipText[expansionVariant],
56888
56894
  className: "expand-button",
56889
56895
  onClick: onExpandToggle,
56890
- role: "button"
56896
+ role: "button",
56897
+ "data-qa": "expand-or-collapse-all-button"
56891
56898
  },
56892
56899
  /* @__PURE__ */ React80.createElement(ExpansionVariantIcon, { size: "sm" })
56893
56900
  )
@@ -57731,6 +57738,8 @@ var InternalTableContext = React80.createContext({
57731
57738
  gridApi: void 0,
57732
57739
  localStoragePersistenceKey: void 0,
57733
57740
  onBulkEditUpdate: () => Promise.resolve(),
57741
+ onExpandOrCollapseAll: () => {
57742
+ },
57734
57743
  onServerSideDataRequest: void 0,
57735
57744
  onTableConfigChange: () => {
57736
57745
  },
@@ -108824,6 +108833,7 @@ var DataTable = ({
108824
108833
  getRowId,
108825
108834
  initialTableConfig: _initialTableConfig,
108826
108835
  onBulkEditUpdate,
108836
+ onExpandOrCollapseAll,
108827
108837
  onServerSideDataRequest,
108828
108838
  onTableConfigChange,
108829
108839
  showExpandCollapseAllToggle,
@@ -109070,6 +109080,7 @@ var DataTable = ({
109070
109080
  gridApi,
109071
109081
  initialTableConfig,
109072
109082
  onBulkEditUpdate,
109083
+ onExpandOrCollapseAll,
109073
109084
  onServerSideDataRequest,
109074
109085
  onTableConfigChange: internalOnTableConfigChange,
109075
109086
  rowSelectionRef,
@@ -112073,6 +112084,7 @@ var ClientSideDataTable = ({
112073
112084
  getRowId,
112074
112085
  initialTableConfig: _initialTableConfig,
112075
112086
  onBulkEditUpdate,
112087
+ onExpandOrCollapseAll,
112076
112088
  onTableConfigChange,
112077
112089
  translations: translations2 = {},
112078
112090
  enableCellTextSelection,
@@ -112089,8 +112101,9 @@ var ClientSideDataTable = ({
112089
112101
  filterGroups,
112090
112102
  getRowId,
112091
112103
  initialTableConfig: _initialTableConfig,
112092
- onTableConfigChange,
112093
112104
  onBulkEditUpdate,
112105
+ onExpandOrCollapseAll,
112106
+ onTableConfigChange,
112094
112107
  showExpandCollapseAllToggle: true,
112095
112108
  translations: translations2,
112096
112109
  localStoragePersistenceKey,
@@ -116481,6 +116494,7 @@ var ServerSideDataTable = ({
116481
116494
  getRowId,
116482
116495
  initialTableConfig: _initialTableConfig,
116483
116496
  onBulkEditUpdate,
116497
+ onExpandOrCollapseAll,
116484
116498
  onServerSideDataRequest,
116485
116499
  onTableConfigChange,
116486
116500
  enableCellTextSelection,
@@ -116499,9 +116513,10 @@ var ServerSideDataTable = ({
116499
116513
  filterGroups,
116500
116514
  getRowId,
116501
116515
  initialTableConfig: _initialTableConfig,
116502
- onTableConfigChange,
116503
- onServerSideDataRequest,
116504
116516
  onBulkEditUpdate,
116517
+ onExpandOrCollapseAll,
116518
+ onServerSideDataRequest,
116519
+ onTableConfigChange,
116505
116520
  showExpandCollapseAllToggle,
116506
116521
  translations: translations2,
116507
116522
  customBulkEditorFields,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procore/data-table",
3
- "version": "14.38.0",
3
+ "version": "14.39.0",
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",
@@ -108,7 +108,7 @@
108
108
  "@procore/core-css": "10.17.0",
109
109
  "@procore/core-icons": "^12.11.0",
110
110
  "@procore/core-prettier": "10.2.0",
111
- "@procore/core-react": "^12.32.0",
111
+ "@procore/core-react": "^12.33.0",
112
112
  "@procore/eslint-config": "10.0.0",
113
113
  "@procore/globalization-toolkit": "3.1.0",
114
114
  "@procore/labs-financials-utils": "4.3.1",