@procore/data-table 14.7.0 → 14.9.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,24 @@
1
1
  # Change Log
2
2
 
3
+ ## 14.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 686d8f67d: Add support for conditional row actions when column virtualization is disabled
8
+ - db69660a7: Add default behaviour for persistance
9
+
10
+ ### Patch Changes
11
+
12
+ - 7e74d5c1a: Ensure unviewable columns stay hidden when ungrouping
13
+ - 60800b67c: Fix client-side tables to only select filtered rows
14
+ - d263b410f: Add Background, Border and Box Shadow for pinned column footer cell
15
+
16
+ ## 14.8.0
17
+
18
+ ### Minor Changes
19
+
20
+ - 7be612d76: Add `paginateChildRows` prop for grouped server-side table pagination
21
+
3
22
  ## 14.7.0
4
23
 
5
24
  ### Minor Changes
@@ -13,6 +13,7 @@ var ulid$1 = require('ulid');
13
13
  var toastAlert = require('@procore/toast-alert');
14
14
  var ReactDOM = require('react-dom');
15
15
  var server = require('react-dom/server');
16
+ var webSdkStorage = require('@procore/web-sdk-storage');
16
17
  var _isEqual = require('lodash.isequal');
17
18
  var ReactResizeDetector = require('react-resize-detector');
18
19
  var labsDatetimeSelect = require('@procore/labs-datetime-select');
@@ -1419,7 +1420,7 @@ ag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {
1419
1420
  animation-iteration-count: infinite;
1420
1421
  animation-name: ag-shake-left-to-right;
1421
1422
  }
1422
- @keyframes _ag-shake-left-to-right_10eap_366 {
1423
+ @keyframes _ag-shake-left-to-right_7x7l9_366 {
1423
1424
  from {
1424
1425
  padding-left: 6px;
1425
1426
  padding-right: 2px;
@@ -5420,7 +5421,7 @@ input[class^=ag-][type=button]:focus, button[class^=ag-]:focus {
5420
5421
  animation-iteration-count: infinite;
5421
5422
  animation-timing-function: linear;
5422
5423
  }
5423
- @keyframes _spin_10eap_1 {
5424
+ @keyframes _spin_7x7l9_1 {
5424
5425
  from {
5425
5426
  transform: rotate(0deg);
5426
5427
  }
@@ -7541,6 +7542,18 @@ input[class^=ag-][type=range]:disabled {
7541
7542
  box-shadow: 0px -6px 12px -3px hsla(200, 8%, 10%, 0.25);
7542
7543
  z-index: 2;
7543
7544
  }
7545
+ .ag-theme-alpine.ag-theme-alpine .ag-floating-bottom .ag-pinned-left-floating-bottom .ag-row, .ag-theme-alpine.ag-theme-alpine .ag-floating-bottom .ag-pinned-right-floating-bottom .ag-row {
7546
+ background-color: #f4f5f6;
7547
+ }
7548
+ .ag-theme-alpine.ag-theme-alpine .ag-floating-bottom .ag-pinned-left-floating-bottom {
7549
+ z-index: 1;
7550
+ box-shadow: 3px 0px 12px 0.5px hsl(200, 8%, 90%);
7551
+ border-right: 1px solid #d6dadc;
7552
+ }
7553
+ .ag-theme-alpine.ag-theme-alpine .ag-floating-bottom .ag-pinned-right-floating-bottom {
7554
+ box-shadow: -3px 0px 12px 0.5px hsl(200, 8%, 90%);
7555
+ border-left: 1px solid #d6dadc;
7556
+ }
7544
7557
  .ag-theme-alpine.ag-theme-alpine .ag-group-value {
7545
7558
  line-height: 16px;
7546
7559
  }
@@ -7907,7 +7920,7 @@ input[class^=ag-][type=range]:disabled {
7907
7920
  padding-left: 16px;
7908
7921
  }
7909
7922
 
7910
- div._contextPanel_10eap_7131 {
7923
+ div._contextPanel_7x7l9_7144 {
7911
7924
  width: 400px;
7912
7925
  transition: all ease 500ms;
7913
7926
  flex: 0 0 auto;
@@ -7916,7 +7929,7 @@ div._contextPanel_10eap_7131 {
7916
7929
  border: 1px solid #d6dadc;
7917
7930
  display: flex;
7918
7931
  }
7919
- div._contextPanel--hidden_10eap_7140 {
7932
+ div._contextPanel--hidden_7x7l9_7153 {
7920
7933
  border: none;
7921
7934
  overflow: hidden;
7922
7935
  padding: 0px;
@@ -7924,50 +7937,50 @@ div._contextPanel--hidden_10eap_7140 {
7924
7937
  width: 0px;
7925
7938
  }
7926
7939
 
7927
- ._contextPanelWrapper_10eap_7148 {
7940
+ ._contextPanelWrapper_7x7l9_7161 {
7928
7941
  position: relative;
7929
7942
  flex-grow: 1;
7930
7943
  }
7931
7944
 
7932
- ._contextPanelBody_10eap_7153 {
7945
+ ._contextPanelBody_7x7l9_7166 {
7933
7946
  width: clamp(380px, 400px, 100%);
7934
7947
  }
7935
7948
 
7936
- ._contextPanel-stickyHeader_10eap_7157 {
7949
+ ._contextPanel-stickyHeader_7x7l9_7170 {
7937
7950
  background-color: #ffffff;
7938
7951
  position: sticky;
7939
7952
  top: 0;
7940
7953
  z-index: 5;
7941
7954
  }
7942
7955
 
7943
- ._filters-list_10eap_7164 {
7956
+ ._filters-list_7x7l9_7177 {
7944
7957
  padding: 0;
7945
7958
  margin: 0;
7946
7959
  }
7947
- ._filters-list_10eap_7164 ol {
7960
+ ._filters-list_7x7l9_7177 ol {
7948
7961
  padding: 0;
7949
7962
  margin: 0;
7950
7963
  }
7951
7964
 
7952
- ._col-drag-column-icon_10eap_7173 {
7965
+ ._col-drag-column-icon_7x7l9_7186 {
7953
7966
  color: #6a767c;
7954
7967
  }
7955
7968
 
7956
- ._tabular-nums_10eap_7177 {
7969
+ ._tabular-nums_7x7l9_7190 {
7957
7970
  font-variant-numeric: tabular-nums;
7958
7971
  }`;
7959
7972
  document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css));
7960
7973
  var styles_default = {
7961
- "contextPanel": "_contextPanel_10eap_7131",
7962
- "contextPanel--hidden": "_contextPanel--hidden_10eap_7140",
7963
- "contextPanelWrapper": "_contextPanelWrapper_10eap_7148",
7964
- "contextPanelBody": "_contextPanelBody_10eap_7153",
7965
- "contextPanel-stickyHeader": "_contextPanel-stickyHeader_10eap_7157",
7966
- "filters-list": "_filters-list_10eap_7164",
7967
- "col-drag-column-icon": "_col-drag-column-icon_10eap_7173",
7968
- "tabular-nums": "_tabular-nums_10eap_7177",
7969
- "ag-shake-left-to-right": "_ag-shake-left-to-right_10eap_366",
7970
- "spin": "_spin_10eap_1"
7974
+ "contextPanel": "_contextPanel_7x7l9_7144",
7975
+ "contextPanel--hidden": "_contextPanel--hidden_7x7l9_7153",
7976
+ "contextPanelWrapper": "_contextPanelWrapper_7x7l9_7161",
7977
+ "contextPanelBody": "_contextPanelBody_7x7l9_7166",
7978
+ "contextPanel-stickyHeader": "_contextPanel-stickyHeader_7x7l9_7170",
7979
+ "filters-list": "_filters-list_7x7l9_7177",
7980
+ "col-drag-column-icon": "_col-drag-column-icon_7x7l9_7186",
7981
+ "tabular-nums": "_tabular-nums_7x7l9_7190",
7982
+ "ag-shake-left-to-right": "_ag-shake-left-to-right_7x7l9_366",
7983
+ "spin": "_spin_7x7l9_1"
7971
7984
  };
7972
7985
 
7973
7986
  // src/utils/getCellValueTypographyProps.ts
@@ -55242,6 +55255,16 @@ function getParentSelectionState(parent, affectedRows, parentChildrenMap) {
55242
55255
  return rowSelectionState.indeterminate;
55243
55256
  }
55244
55257
  }
55258
+ function getNodeSelectedState(node) {
55259
+ const filteredChildren = node.childrenAfterFilter || [];
55260
+ const numSelectedChildren = filteredChildren.filter(
55261
+ (child) => child.isSelected()
55262
+ ).length;
55263
+ return {
55264
+ selected: filteredChildren.length > 0 ? numSelectedChildren > 0 : node.isSelected(),
55265
+ indeterminate: filteredChildren ? numSelectedChildren > 0 && filteredChildren.length !== numSelectedChildren : false
55266
+ };
55267
+ }
55245
55268
  function getAffectedRows(currentRows, selectionNode, affectedRows) {
55246
55269
  var _a;
55247
55270
  const isNodeRootLevel = isNodeRootLevelOfGrid(selectionNode.parent);
@@ -55322,13 +55345,9 @@ function getAffectedRows(currentRows, selectionNode, affectedRows) {
55322
55345
  function noop2() {
55323
55346
  }
55324
55347
  function ClientSideRowCheckbox(props) {
55325
- var _a, _b;
55326
- const [selected, setSelected] = React83.useState(props.node.isSelected());
55327
- const numSelectedChildren = (props.node.childrenAfterGroup || []).filter(
55328
- (child) => child.isSelected()
55329
- ).length;
55330
- const selectedState = props.node.childrenAfterGroup ? numSelectedChildren > 0 : props.node.isSelected();
55331
- const indeterminateState = props.node.childrenAfterGroup ? numSelectedChildren > 0 && ((_a = props.node.childrenAfterGroup) == null ? void 0 : _a.length) !== numSelectedChildren : false;
55348
+ var _a;
55349
+ const [_selected, setSelected] = React83.useState(props.node.isSelected());
55350
+ const { selected, indeterminate } = getNodeSelectedState(props.node);
55332
55351
  function handleRowSelection(event) {
55333
55352
  if (props.node === event.node) {
55334
55353
  setSelected(event.node.isSelected());
@@ -55343,13 +55362,18 @@ function ClientSideRowCheckbox(props) {
55343
55362
  return /* @__PURE__ */ React83__default.default.createElement(coreReact.Box, { paddingRight: "md" }, /* @__PURE__ */ React83__default.default.createElement(
55344
55363
  coreReact.Checkbox,
55345
55364
  {
55346
- checked: selectedState,
55347
- disabled: (_b = props.data) == null ? void 0 : _b.checkboxDisabled,
55348
- indeterminate: indeterminateState,
55365
+ checked: selected,
55366
+ disabled: (_a = props.data) == null ? void 0 : _a.checkboxDisabled,
55367
+ indeterminate,
55349
55368
  "data-qa": "rowCheckbox",
55350
55369
  onClick: noop2,
55351
- onChange: () => {
55352
- props.node.setSelected(!selected, void 0, "checkboxSelected");
55370
+ onChange: (event) => {
55371
+ return props.node.setSelectedParams({
55372
+ newValue: event.target.checked,
55373
+ groupSelectsFiltered: true,
55374
+ event,
55375
+ source: "checkboxSelected"
55376
+ });
55353
55377
  }
55354
55378
  }
55355
55379
  ));
@@ -55515,23 +55539,33 @@ var AutoGroupCellRenderer = (props) => {
55515
55539
  };
55516
55540
 
55517
55541
  // src/CellRenderers/rowActionsCellStyles.scss
55518
- var css6 = `div[col-id=rowActions] {
55519
- left: calc(var(--viewport-width) - var(--rowActions-width)) !important;
55520
- padding: 0px 8px !important;
55542
+ var css6 = `.ag-theme-alpine.ag-theme-alpine div.ag-cell[col-id=rowActions] {
55543
+ left: var(--viewport-width) !important;
55544
+ width: 0px !important;
55545
+ padding: 0px !important;
55521
55546
  position: sticky;
55522
55547
  visibility: hidden;
55523
55548
  flex: none;
55549
+ background: none;
55550
+ overflow: visible;
55524
55551
  }
55525
- .ag-row-hover div[col-id=rowActions] {
55552
+ .ag-theme-alpine.ag-theme-alpine div.ag-cell[col-id=rowActions] .inline-nonedit-wrapper {
55553
+ width: auto;
55554
+ height: 100%;
55555
+ padding: 0px 8px;
55556
+ position: absolute;
55557
+ right: 0px;
55558
+ }
55559
+ .ag-theme-alpine.ag-theme-alpine .ag-row-hover div.ag-cell[col-id=rowActions] .inline-nonedit-wrapper {
55526
55560
  background: #f4f5f6;
55527
55561
  }
55528
- .ag-row-focus div[col-id=rowActions] {
55562
+ .ag-theme-alpine.ag-theme-alpine .ag-row-focus div.ag-cell[col-id=rowActions] .inline-nonedit-wrapper {
55529
55563
  background: #f6f9fe;
55530
55564
  }
55531
- .ag-row-hover div[col-id=rowActions], .ag-row-focus div[col-id=rowActions] {
55565
+ .ag-theme-alpine.ag-theme-alpine .ag-row-hover .ag-cell[col-id=rowActions], .ag-theme-alpine.ag-theme-alpine .ag-row-focus .ag-cell[col-id=rowActions] {
55532
55566
  visibility: visible;
55533
55567
  }
55534
- div[col-id=rowActions-pinned] {
55568
+ .ag-theme-alpine.ag-theme-alpine .ag-cell[col-id=rowActions-pinned] {
55535
55569
  background: "transparent";
55536
55570
  left: calc(var(--viewport-width) - var(--rowActions-width)) !important;
55537
55571
  padding: 2px 8px !important;
@@ -55540,8 +55574,18 @@ div[col-id=rowActions-pinned] {
55540
55574
  document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css6));
55541
55575
 
55542
55576
  // src/CellRenderers/RowActionsCell.tsx
55577
+ function getRowActions(actions, rowProps) {
55578
+ if (typeof actions === "function") {
55579
+ return actions(rowProps);
55580
+ }
55581
+ return actions;
55582
+ }
55543
55583
  var InternalRowActionsCellRenderer = (props) => {
55544
- if (props.rowPinned || props.columnDefinition.cellRendererParams.hideActionsOnGroupedRow && props.isGroup) {
55584
+ const actions = getRowActions(
55585
+ props.columnDefinition.cellRendererParams.actions,
55586
+ props
55587
+ );
55588
+ if (props.rowPinned || props.columnDefinition.cellRendererParams.hideActionsOnGroupedRow && props.isGroup || actions.length === 0) {
55545
55589
  return null;
55546
55590
  }
55547
55591
  return /* @__PURE__ */ React83__default.default.createElement(
@@ -55552,7 +55596,7 @@ var InternalRowActionsCellRenderer = (props) => {
55552
55596
  size: "xs",
55553
55597
  margin: "0px 4px"
55554
55598
  },
55555
- props.columnDefinition.cellRendererParams.actions.map((Action, idx) => {
55599
+ actions.map((Action, idx) => {
55556
55600
  const key = `${Action.displayName}${idx}`;
55557
55601
  return /* @__PURE__ */ React83__default.default.createElement(Action, { ...props, key });
55558
55602
  })
@@ -56213,6 +56257,7 @@ var css7 = `.ag-header-cell .data-table-header-menu {
56213
56257
  document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css7));
56214
56258
 
56215
56259
  // src/GenericHeader/GenericHeader.tsx
56260
+ var filterChanged = "filterChanged";
56216
56261
  var selectionChanged = "selectionChanged";
56217
56262
  var paginationChanged = "paginationChanged";
56218
56263
  var tooltipDelay = {
@@ -56518,7 +56563,7 @@ var GenericHeaderRenderer = (props) => {
56518
56563
  if (node.selectable === false) {
56519
56564
  return;
56520
56565
  }
56521
- if (node.isSelected()) {
56566
+ if (getNodeSelectedState(node).selected) {
56522
56567
  hasSelectedNodes = true;
56523
56568
  } else {
56524
56569
  isAllSelected = false;
@@ -56532,9 +56577,11 @@ var GenericHeaderRenderer = (props) => {
56532
56577
  setSelectAll("none" /* None */);
56533
56578
  }
56534
56579
  }
56580
+ props.api.addEventListener(filterChanged, onSelectionChanged);
56535
56581
  props.api.addEventListener(selectionChanged, onSelectionChanged);
56536
56582
  onSelectionChanged();
56537
56583
  return () => {
56584
+ removeEventListenerFromGrid(filterChanged, onSelectionChanged, props.api);
56538
56585
  removeEventListenerFromGrid(
56539
56586
  selectionChanged,
56540
56587
  onSelectionChanged,
@@ -81140,9 +81187,20 @@ var useTableApi = ({
81140
81187
  message
81141
81188
  });
81142
81189
  }, []);
81190
+ function getUnviewableGroupedColumns(columnApi2) {
81191
+ return ((columnApi2 == null ? void 0 : columnApi2.getRowGroupColumns()) ?? []).filter((column2) => {
81192
+ const colDef = column2.getColDef();
81193
+ return colDef.lockVisible && colDef.hide;
81194
+ }).map((column2) => column2.getColId());
81195
+ }
81143
81196
  const setRowGrouping = React83__default.default.useCallback(
81144
81197
  (value) => {
81198
+ const unviewableGroupedColumns = getUnviewableGroupedColumns(columnApi);
81145
81199
  columnApi == null ? void 0 : columnApi.setRowGroupColumns(value);
81200
+ const recentlyUngroupedUnviewableColumns = unviewableGroupedColumns.filter((colId) => !value.includes(colId));
81201
+ if (recentlyUngroupedUnviewableColumns.length > 0) {
81202
+ columnApi == null ? void 0 : columnApi.setColumnsVisible(recentlyUngroupedUnviewableColumns, false);
81203
+ }
81146
81204
  resetPagination();
81147
81205
  },
81148
81206
  [columnApi]
@@ -81621,15 +81679,16 @@ var DataTable = ({
81621
81679
  onTableConfigChange,
81622
81680
  showExpandCollapseAllToggle,
81623
81681
  translations: translations2 = {},
81624
- enableCellTextSelection
81682
+ enableCellTextSelection,
81683
+ localStoragePersistenceKey
81625
81684
  }) => {
81626
- const [initialTableConfig] = React83__default.default.useState(_initialTableConfig);
81685
+ const initialTableConfig = localStoragePersistenceKey && webSdkStorage.storage.local.getItem(localStoragePersistenceKey) || _initialTableConfig;
81627
81686
  const onServerSideDataRequestRef = React83__default.default.useRef(onServerSideDataRequest);
81628
81687
  const tableRef = React83__default.default.useRef(null);
81629
81688
  const [totalRowCount, setTotalRowCount] = React83__default.default.useState(0);
81630
81689
  const [selectedGroupIndex, setSelectedGroupIndex] = React83__default.default.useState(null);
81631
81690
  const [initialConfigSet, setInitialConfigSet] = React83__default.default.useState(
81632
- !_initialTableConfig
81691
+ !initialTableConfig
81633
81692
  );
81634
81693
  const contextPanel = useContextPanel();
81635
81694
  const clientI18n = coreReact.useI18nContext();
@@ -81719,18 +81778,31 @@ var DataTable = ({
81719
81778
  });
81720
81779
  checkboxColumn.current = newCheckboxColumn;
81721
81780
  }
81722
- if (!gridApi || !columnApi || !onTableConfigChange) {
81781
+ if (!gridApi || !columnApi) {
81723
81782
  return;
81724
81783
  }
81725
81784
  const config = (_a = tableRef == null ? void 0 : tableRef.current) == null ? void 0 : _a.getTableConfiguration();
81726
81785
  if (config) {
81727
- onTableConfigChange({
81786
+ if (localStoragePersistenceKey) {
81787
+ webSdkStorage.storage.local.setItem(localStoragePersistenceKey, {
81788
+ ...config,
81789
+ rowHeight: rowHeightRef.current,
81790
+ serverFilters: filterStorage.filtersState
81791
+ });
81792
+ }
81793
+ onTableConfigChange == null ? void 0 : onTableConfigChange({
81728
81794
  ...config,
81729
81795
  rowHeight: rowHeightRef.current,
81730
81796
  serverFilters: filterStorage.filtersState
81731
81797
  });
81732
81798
  }
81733
- }, [gridApi, columnApi, onTableConfigChange, filterStorage.filtersState]);
81799
+ }, [
81800
+ gridApi,
81801
+ columnApi,
81802
+ onTableConfigChange,
81803
+ filterStorage.filtersState,
81804
+ localStoragePersistenceKey
81805
+ ]);
81734
81806
  const filtersRef = React83.useRef(filterStorage.selectedFilters);
81735
81807
  if (!_isEqual__default.default(filtersRef.current, filterStorage.selectedFilters)) {
81736
81808
  filtersRef.current = filterStorage.selectedFilters;
@@ -82088,10 +82160,14 @@ var Table = (props) => {
82088
82160
  suppressMovable: true,
82089
82161
  suppressSizeToFit: true,
82090
82162
  suppressMenu: true,
82091
- width: rowActionsWidth.current,
82092
- minWidth: rowActionsWidth.current,
82163
+ width: suppressColumnVirtualisation ? 0 : rowActionsWidth.current,
82164
+ minWidth: suppressColumnVirtualisation ? 0 : rowActionsWidth.current,
82093
82165
  cellStyle: (params) => {
82094
- if (params.node.rowPinned === "bottom") {
82166
+ const actions = getRowActions(
82167
+ params.colDef.cellRendererParams.actions,
82168
+ params
82169
+ );
82170
+ if (params.node.rowPinned === "bottom" || actions.length === 0) {
82095
82171
  return {
82096
82172
  display: "none"
82097
82173
  };
@@ -82700,6 +82776,7 @@ var Table = (props) => {
82700
82776
  onSortChanged: onSortEventChanged,
82701
82777
  onFilterChanged,
82702
82778
  onFirstDataRendered: props.onFirstDataRendered,
82779
+ paginateChildRows: props.paginateChildRows,
82703
82780
  pagination: props.pagination,
82704
82781
  paginationPageSize: props.paginationPageSize || defaultPaginationPageSize,
82705
82782
  popupParent: props.popupParent,
@@ -82732,18 +82809,14 @@ var Table = (props) => {
82732
82809
  TablePagination,
82733
82810
  {
82734
82811
  gridApi,
82735
- isServerSideRowModel: !!onSSDR,
82736
- pageSize: props.paginationPageSize,
82737
- totalRowCount: internalTableContext.totalRowCount
82812
+ pageSize: props.paginationPageSize
82738
82813
  }
82739
82814
  )
82740
82815
  );
82741
82816
  };
82742
82817
  var TablePagination = ({
82743
82818
  gridApi,
82744
- isServerSideRowModel,
82745
- pageSize,
82746
- totalRowCount
82819
+ pageSize
82747
82820
  }) => {
82748
82821
  const [pagination, setPagination] = React83__default.default.useState({
82749
82822
  page: 0,
@@ -82772,7 +82845,7 @@ var TablePagination = ({
82772
82845
  {
82773
82846
  activePage: pagination.page + 1,
82774
82847
  "data-qa": "data-table-pagination",
82775
- items: isServerSideRowModel ? totalRowCount : pagination.items,
82848
+ items: pagination.items,
82776
82849
  onSelectPage: (_page) => {
82777
82850
  gridApi == null ? void 0 : gridApi.paginationGoToPage(_page - 1);
82778
82851
  },
@@ -82848,7 +82921,8 @@ var ClientSideDataTable = ({
82848
82921
  onBulkEditUpdate,
82849
82922
  onTableConfigChange,
82850
82923
  translations: translations2 = {},
82851
- enableCellTextSelection
82924
+ enableCellTextSelection,
82925
+ localStoragePersistenceKey
82852
82926
  }) => {
82853
82927
  return /* @__PURE__ */ React83__default.default.createElement(
82854
82928
  DataTable,
@@ -82864,6 +82938,7 @@ var ClientSideDataTable = ({
82864
82938
  onBulkEditUpdate,
82865
82939
  showExpandCollapseAllToggle: true,
82866
82940
  translations: translations2,
82941
+ localStoragePersistenceKey,
82867
82942
  customBulkEditorFields,
82868
82943
  enableCellTextSelection
82869
82944
  },
@@ -87368,8 +87443,8 @@ var FilterListener = class FilterListener2 extends BeanStub {
87368
87443
  Object.keys(allColKeysMap).forEach((key) => {
87369
87444
  const oldJson = JSON.stringify(oldModel[key]);
87370
87445
  const newJson = JSON.stringify(newModel[key]);
87371
- const filterChanged = oldJson != newJson;
87372
- if (filterChanged) {
87446
+ const filterChanged2 = oldJson != newJson;
87447
+ if (filterChanged2) {
87373
87448
  res.push(key);
87374
87449
  }
87375
87450
  });
@@ -88280,7 +88355,8 @@ var ServerSideDataTable = ({
88280
88355
  onTableConfigChange,
88281
88356
  enableCellTextSelection,
88282
88357
  showExpandCollapseAllToggle,
88283
- translations: translations2 = {}
88358
+ translations: translations2 = {},
88359
+ localStoragePersistenceKey
88284
88360
  }) => {
88285
88361
  return /* @__PURE__ */ React83__default.default.createElement(
88286
88362
  DataTable,
@@ -88298,7 +88374,8 @@ var ServerSideDataTable = ({
88298
88374
  showExpandCollapseAllToggle,
88299
88375
  translations: translations2,
88300
88376
  customBulkEditorFields,
88301
- enableCellTextSelection
88377
+ enableCellTextSelection,
88378
+ localStoragePersistenceKey
88302
88379
  },
88303
88380
  children
88304
88381
  );
@@ -955,11 +955,12 @@ interface TableProps<TRow = any, TBottomRow = any> {
955
955
  onTableReady?: (tableApi: TableApi, tableApiRef: React.RefObject<TableApi>) => void;
956
956
  onColumnEverythingChanged?: (changeEvent: ColumnEverythingChangedEvent) => void;
957
957
  onFirstDataRendered?: (event: FirstDataRenderedEvent) => void;
958
+ paginateChildRows?: boolean;
958
959
  pagination?: boolean;
959
960
  paginationPageSize?: number;
960
961
  pinnedBottomRowData?: TBottomRow[];
961
962
  popupParent?: HTMLElement;
962
- rowActions?: React.FunctionComponent<any>[];
963
+ rowActions?: React.FunctionComponent<any>[] | ((rowProps: DataTableCellRendererProps) => React.FunctionComponent<any>[]);
963
964
  /**
964
965
  * @private
965
966
  * Unsafe to use.
@@ -1087,6 +1088,7 @@ interface DataTableProps {
1087
1088
  * the updated values
1088
1089
  */
1089
1090
  onBulkEditUpdate?: (rows: BulkEditResult[]) => Promise<void>;
1091
+ localStoragePersistenceKey?: string;
1090
1092
  showExpandCollapseAllToggle?: boolean;
1091
1093
  translations?: DataTableTranslations;
1092
1094
  enableCellTextSelection?: boolean;
@@ -1335,7 +1337,7 @@ interface BulkActionProps {
1335
1337
  style?: React__default.CSSProperties;
1336
1338
  }
1337
1339
 
1338
- declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1340
+ declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1339
1341
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1340
1342
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1341
1343
  ConfigPanelButton: React__default.FC<{}>;
@@ -1372,7 +1374,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1372
1374
 
1373
1375
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1374
1376
 
1375
- declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1377
+ declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1376
1378
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1377
1379
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1378
1380
  ConfigPanelButton: React__default.FC<{}>;
@@ -955,11 +955,12 @@ interface TableProps<TRow = any, TBottomRow = any> {
955
955
  onTableReady?: (tableApi: TableApi, tableApiRef: React.RefObject<TableApi>) => void;
956
956
  onColumnEverythingChanged?: (changeEvent: ColumnEverythingChangedEvent) => void;
957
957
  onFirstDataRendered?: (event: FirstDataRenderedEvent) => void;
958
+ paginateChildRows?: boolean;
958
959
  pagination?: boolean;
959
960
  paginationPageSize?: number;
960
961
  pinnedBottomRowData?: TBottomRow[];
961
962
  popupParent?: HTMLElement;
962
- rowActions?: React.FunctionComponent<any>[];
963
+ rowActions?: React.FunctionComponent<any>[] | ((rowProps: DataTableCellRendererProps) => React.FunctionComponent<any>[]);
963
964
  /**
964
965
  * @private
965
966
  * Unsafe to use.
@@ -1087,6 +1088,7 @@ interface DataTableProps {
1087
1088
  * the updated values
1088
1089
  */
1089
1090
  onBulkEditUpdate?: (rows: BulkEditResult[]) => Promise<void>;
1091
+ localStoragePersistenceKey?: string;
1090
1092
  showExpandCollapseAllToggle?: boolean;
1091
1093
  translations?: DataTableTranslations;
1092
1094
  enableCellTextSelection?: boolean;
@@ -1335,7 +1337,7 @@ interface BulkActionProps {
1335
1337
  style?: React__default.CSSProperties;
1336
1338
  }
1337
1339
 
1338
- declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1340
+ declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1339
1341
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1340
1342
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1341
1343
  ConfigPanelButton: React__default.FC<{}>;
@@ -1372,7 +1374,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1372
1374
 
1373
1375
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1374
1376
 
1375
- declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1377
+ declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1376
1378
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1377
1379
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1378
1380
  ConfigPanelButton: React__default.FC<{}>;