@procore/data-table 14.37.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.
@@ -54647,6 +54647,33 @@ function SingleSelectFilterRenderer({
54647
54647
  );
54648
54648
  }
54649
54649
 
54650
+ // src/utils/columnEditableHelpers.ts
54651
+ function createColumnEditableUtils(options) {
54652
+ return {
54653
+ overrideEditable: (columnEditable) => {
54654
+ return (params) => {
54655
+ var _a;
54656
+ const isGroupNodeExpanded = params.node.group && params.node.expanded;
54657
+ if (((_a = params.node) == null ? void 0 : _a.rowPinned) || !options.enableGroupHeaderEdit && isGroupNodeExpanded && !params.node.footer) {
54658
+ return false;
54659
+ }
54660
+ if (typeof columnEditable === "boolean") {
54661
+ return columnEditable;
54662
+ }
54663
+ return (columnEditable == null ? void 0 : columnEditable(params)) ?? false;
54664
+ };
54665
+ }
54666
+ };
54667
+ }
54668
+ function isColumnEditable(columnEditable) {
54669
+ return (params) => {
54670
+ if (typeof columnEditable === "boolean") {
54671
+ return columnEditable;
54672
+ }
54673
+ return (columnEditable == null ? void 0 : columnEditable(params)) ?? false;
54674
+ };
54675
+ }
54676
+
54650
54677
  // src/utils/transformers.ts
54651
54678
  var emptyObject = {};
54652
54679
  var DEFAULT_AUTO_GROUP_COLUMN_DEFINITION = {
@@ -54730,24 +54757,12 @@ function transformToColumnDefinition(colDef = emptyObject) {
54730
54757
  valueSetter: colDef.valueSetter
54731
54758
  };
54732
54759
  }
54733
- function isEditable(columnEditable) {
54734
- return (params) => {
54735
- var _a;
54736
- if (((_a = params.node) == null ? void 0 : _a.rowPinned) || params.node.group && params.node.expanded && !params.node.footer) {
54737
- return false;
54738
- }
54739
- if (typeof columnEditable === "boolean") {
54740
- return columnEditable;
54741
- }
54742
- return (columnEditable == null ? void 0 : columnEditable(params)) ?? false;
54743
- };
54744
- }
54745
54760
  function shouldHaveEditStyles(params) {
54746
54761
  var _a;
54747
54762
  if (!((_a = params.colDef) == null ? void 0 : _a.cellEditor)) {
54748
54763
  return false;
54749
54764
  }
54750
- return isEditable(params.colDef.editable);
54765
+ return isColumnEditable(params.colDef.editable);
54751
54766
  }
54752
54767
  var toExcelCellClass = (className) => `excel-export--${className}`;
54753
54768
  function transformToExcelStyles(excelDataFormats) {
@@ -54872,11 +54887,11 @@ function transformColumnDefinitionToColDef(dataTableColumnDefinition, enableGrou
54872
54887
  parentData: context == null ? void 0 : context.parentData,
54873
54888
  parentId: context == null ? void 0 : context.parentId
54874
54889
  }) : aggFunc,
54875
- bulkEditable: isEditable(bulkEditable),
54890
+ bulkEditable: isColumnEditable(bulkEditable),
54876
54891
  cellClass: cellExcelDataType ? toExcelCellClass(cellExcelDataType) : void 0,
54877
54892
  cellClassRules,
54878
54893
  comparator,
54879
- editable: isEditable(_editable),
54894
+ editable: isColumnEditable(_editable),
54880
54895
  filter: getFilter(dataTableColumnDefinition),
54881
54896
  // set filter by default
54882
54897
  filterParams: {
@@ -55201,12 +55216,12 @@ function getDecoratedAutoGroupColDef(columnDefinition, enableGroupEditAndValidat
55201
55216
  }
55202
55217
 
55203
55218
  // src/CellRenderers/AutoGroupCell.scss
55204
- var css5 = `._autoGroupCell_pq41h_1 {
55219
+ var css5 = `._autoGroupCell_1qx8z_1 {
55205
55220
  height: 100%;
55206
55221
  width: 100%;
55207
55222
  }
55208
55223
 
55209
- ._indent_pq41h_6 {
55224
+ ._indent_1qx8z_6 {
55210
55225
  border-right: 1px solid #d6dadc;
55211
55226
  background: #f4f5f6;
55212
55227
  position: absolute;
@@ -55214,44 +55229,45 @@ var css5 = `._autoGroupCell_pq41h_1 {
55214
55229
  bottom: -1px;
55215
55230
  width: 12px;
55216
55231
  }
55217
- ._indent_pq41h_6._innermostLastIndent_pq41h_14 {
55232
+ ._indent_1qx8z_6._innermostLastIndent_1qx8z_14 {
55218
55233
  bottom: 0px;
55219
55234
  }
55220
55235
 
55221
- ._expandableCaret_pq41h_18 {
55236
+ ._expandableCaret_1qx8z_18 {
55222
55237
  margin-left: -8px;
55223
55238
  margin-right: 4px;
55224
55239
  width: 24px;
55240
+ flex-shrink: 0;
55225
55241
  }
55226
55242
 
55227
- ._expandCaret_pq41h_24 {
55243
+ ._expandCaret_1qx8z_25 {
55228
55244
  color: #2066df;
55229
55245
  cursor: pointer;
55230
55246
  }
55231
55247
 
55232
- ._collapseCaret_pq41h_29 {
55248
+ ._collapseCaret_1qx8z_30 {
55233
55249
  color: #75838a;
55234
55250
  cursor: pointer;
55235
55251
  }
55236
55252
 
55237
- ._value_pq41h_34 {
55253
+ ._value_1qx8z_35 {
55238
55254
  overflow: hidden;
55239
55255
  text-overflow: ellipsis;
55240
55256
  font-size: 12px;
55241
55257
  }
55242
- ._value_pq41h_34._footer_pq41h_39 {
55258
+ ._value_1qx8z_35._footer_1qx8z_40 {
55243
55259
  color: #6a767c;
55244
55260
  }`;
55245
55261
  document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css5));
55246
55262
  var AutoGroupCell_default = {
55247
- "autoGroupCell": "_autoGroupCell_pq41h_1",
55248
- "indent": "_indent_pq41h_6",
55249
- "innermostLastIndent": "_innermostLastIndent_pq41h_14",
55250
- "expandableCaret": "_expandableCaret_pq41h_18",
55251
- "expandCaret": "_expandCaret_pq41h_24",
55252
- "collapseCaret": "_collapseCaret_pq41h_29",
55253
- "value": "_value_pq41h_34",
55254
- "footer": "_footer_pq41h_39"
55263
+ "autoGroupCell": "_autoGroupCell_1qx8z_1",
55264
+ "indent": "_indent_1qx8z_6",
55265
+ "innermostLastIndent": "_innermostLastIndent_1qx8z_14",
55266
+ "expandableCaret": "_expandableCaret_1qx8z_18",
55267
+ "expandCaret": "_expandCaret_1qx8z_25",
55268
+ "collapseCaret": "_collapseCaret_1qx8z_30",
55269
+ "value": "_value_1qx8z_35",
55270
+ "footer": "_footer_1qx8z_40"
55255
55271
  };
55256
55272
 
55257
55273
  // src/utils/rowSelectionHelpers.ts
@@ -56567,9 +56583,10 @@ var GenericHeaderRenderer = (props) => {
56567
56583
  const {
56568
56584
  columnApi,
56569
56585
  tableRef,
56586
+ onExpandOrCollapseAll,
56570
56587
  onServerSideDataRequest,
56571
- showExpandCollapseAllToggle,
56572
- onTableConfigChange
56588
+ onTableConfigChange,
56589
+ showExpandCollapseAllToggle
56573
56590
  } = useInternalTableContext();
56574
56591
  const onSSDR = Boolean(onServerSideDataRequest);
56575
56592
  const [sortOrder, setSortOrder] = React80.useState(props.column.getSort());
@@ -56760,9 +56777,11 @@ var GenericHeaderRenderer = (props) => {
56760
56777
  }
56761
56778
  });
56762
56779
  setExpansionVariant("tierOne");
56780
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56763
56781
  } else {
56764
56782
  props.api.collapseAll();
56765
56783
  setExpansionVariant("closed");
56784
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(false);
56766
56785
  }
56767
56786
  return;
56768
56787
  }
@@ -56777,10 +56796,13 @@ var GenericHeaderRenderer = (props) => {
56777
56796
  props.api
56778
56797
  );
56779
56798
  setExpansionVariant(hasMoreExpandableNodes ? "tierOne" : "all");
56799
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56780
56800
  } else if (expansionVariant === "tierOne") {
56781
56801
  props.api.expandAll();
56802
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(true);
56782
56803
  } else {
56783
56804
  props.api.collapseAll();
56805
+ onExpandOrCollapseAll == null ? void 0 : onExpandOrCollapseAll(false);
56784
56806
  }
56785
56807
  }
56786
56808
  const tooltipText = {
@@ -56957,7 +56979,8 @@ var GenericHeaderRenderer = (props) => {
56957
56979
  "aria-label": tooltipText[expansionVariant],
56958
56980
  className: "expand-button",
56959
56981
  onClick: onExpandToggle,
56960
- role: "button"
56982
+ role: "button",
56983
+ "data-qa": "expand-or-collapse-all-button"
56961
56984
  },
56962
56985
  /* @__PURE__ */ React80.createElement(ExpansionVariantIcon, { size: "sm" })
56963
56986
  )
@@ -57817,6 +57840,8 @@ var InternalTableContext = React80.createContext({
57817
57840
  gridApi: void 0,
57818
57841
  localStoragePersistenceKey: void 0,
57819
57842
  onBulkEditUpdate: () => Promise.resolve(),
57843
+ onExpandOrCollapseAll: () => {
57844
+ },
57820
57845
  onServerSideDataRequest: void 0,
57821
57846
  onTableConfigChange: () => {
57822
57847
  },
@@ -76362,12 +76387,12 @@ var MenuItemMapper = class MenuItemMapper2 extends BeanStub {
76362
76387
  if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, "Cut from Menu", this.context.getGridId())) {
76363
76388
  const focusedCell = this.focusService.getFocusedCell();
76364
76389
  const rowNode = focusedCell ? this.rowPositionUtils.getRowNode(focusedCell) : null;
76365
- const isEditable2 = rowNode ? focusedCell === null || focusedCell === void 0 ? void 0 : focusedCell.column.isCellEditable(rowNode) : false;
76390
+ const isEditable = rowNode ? focusedCell === null || focusedCell === void 0 ? void 0 : focusedCell.column.isCellEditable(rowNode) : false;
76366
76391
  return {
76367
76392
  name: localeTextFunc("cut", "Cut"),
76368
76393
  shortcut: localeTextFunc("ctrlX", "Ctrl+X"),
76369
76394
  icon: _.createIconNoSpan("clipboardCut", this.gridOptionsService, null),
76370
- disabled: !isEditable2 || this.gridOptionsService.is("suppressCutToClipboard"),
76395
+ disabled: !isEditable || this.gridOptionsService.is("suppressCutToClipboard"),
76371
76396
  action: () => this.clipboardService.cutToClipboard(void 0, "contextMenu")
76372
76397
  };
76373
76398
  } else {
@@ -108959,6 +108984,7 @@ var DataTable = ({
108959
108984
  getRowId,
108960
108985
  initialTableConfig: _initialTableConfig,
108961
108986
  onBulkEditUpdate,
108987
+ onExpandOrCollapseAll,
108962
108988
  onServerSideDataRequest,
108963
108989
  onTableConfigChange,
108964
108990
  showExpandCollapseAllToggle,
@@ -109209,6 +109235,7 @@ var DataTable = ({
109209
109235
  gridApi,
109210
109236
  initialTableConfig,
109211
109237
  onBulkEditUpdate,
109238
+ onExpandOrCollapseAll,
109212
109239
  onServerSideDataRequest,
109213
109240
  onTableConfigChange: internalOnTableConfigChange,
109214
109241
  rowSelectionRef,
@@ -109295,6 +109322,20 @@ function getServerSideDatasource(onServerSideDataRequestCallbackRef, onEmptyResp
109295
109322
  };
109296
109323
  }
109297
109324
  var minimumColumnWidth = 140;
109325
+ function useComputeAgGridProps(props) {
109326
+ const internalTableContext = useInternalTableContext();
109327
+ const onSSDR = internalTableContext.onServerSideDataRequest;
109328
+ return {
109329
+ groupIncludeFooter: !onSSDR && props.groupIncludeFooter === void 0 ? true : props.groupIncludeFooter,
109330
+ rowDragManaged: onSSDR ? false : props.rowDragManaged ?? true,
109331
+ rowModelType: onSSDR ? "serverSide" : void 0,
109332
+ groupSelectsChildren: (
109333
+ // Always true for client side, defaults to true for server side
109334
+ internalTableContext.totalRowCount > 0 && props.groupSelectsChildren !== false || !onSSDR
109335
+ ),
109336
+ groupDefaultExpanded: props.groupsAlwaysExpanded ? -1 : props.groupDefaultExpanded
109337
+ };
109338
+ }
109298
109339
  var Table = (props) => {
109299
109340
  var _a, _b, _c;
109300
109341
  const { suppressColumnVirtualisation = true, rowActionsConfig = {} } = props;
@@ -109345,16 +109386,30 @@ var Table = (props) => {
109345
109386
  React80.useImperativeHandle(internalTableContext.tableRef, () => tableApi, [
109346
109387
  tableApi
109347
109388
  ]);
109389
+ const {
109390
+ groupIncludeFooter,
109391
+ rowDragManaged,
109392
+ rowModelType,
109393
+ groupSelectsChildren,
109394
+ groupDefaultExpanded
109395
+ } = useComputeAgGridProps(props);
109396
+ const { overrideEditable } = createColumnEditableUtils({
109397
+ enableGroupHeaderEdit: props.enableGroupHeaderEdit
109398
+ });
109348
109399
  const decoratedColDefs = React80.useMemo(
109349
109400
  () => {
109350
109401
  var _a2;
109351
- return (_a2 = internalTableContext.columnDefinitions) == null ? void 0 : _a2.map(
109352
- (colDef) => transformToColDef(
109402
+ return (_a2 = internalTableContext.columnDefinitions) == null ? void 0 : _a2.map((colDef) => {
109403
+ const newColDef = transformToColDef(
109353
109404
  colDef,
109354
109405
  internalTableContext.enableGroupEditAndValidation,
109355
109406
  internalTableContext.enableDynamicRowHeight
109356
- )
109357
- );
109407
+ );
109408
+ return {
109409
+ ...newColDef,
109410
+ editable: overrideEditable(colDef.editable)
109411
+ };
109412
+ });
109358
109413
  },
109359
109414
  [internalTableContext.columnDefinitions]
109360
109415
  );
@@ -110126,13 +110181,10 @@ var Table = (props) => {
110126
110181
  getRowId: internalTableContext.getRowId,
110127
110182
  getRowStyle,
110128
110183
  groupAllowUnbalanced: true,
110129
- groupDefaultExpanded: props.groupsAlwaysExpanded ? -1 : props.groupDefaultExpanded,
110130
- groupIncludeFooter: !onSSDR && props.groupIncludeFooter === void 0 ? true : props.groupIncludeFooter,
110184
+ groupDefaultExpanded,
110185
+ groupIncludeFooter,
110131
110186
  getGroupRowAgg: props.getGroupRowAgg ? getGroupRowAgg : void 0,
110132
- groupSelectsChildren: (
110133
- // Always true for client side, defaults to true for server side
110134
- internalTableContext.totalRowCount > 0 && props.groupSelectsChildren !== false || !onSSDR
110135
- ),
110187
+ groupSelectsChildren,
110136
110188
  groupSelectsFiltered: true,
110137
110189
  headerHeight: props.headerHeight,
110138
110190
  icons: tableIcons,
@@ -110190,8 +110242,8 @@ var Table = (props) => {
110190
110242
  pinnedBottomRowData: props.pinnedBottomRowData,
110191
110243
  rowBuffer: props.rowBuffer,
110192
110244
  rowClassRules,
110193
- rowDragManaged: onSSDR ? false : props.rowDragManaged ?? true,
110194
- rowModelType: onSSDR ? "serverSide" : void 0,
110245
+ rowDragManaged,
110246
+ rowModelType,
110195
110247
  rowSelection: "multiple",
110196
110248
  ...serverSideInfiniteScroll,
110197
110249
  suppressClickEdit: true,
@@ -112262,6 +112314,7 @@ var ClientSideDataTable = ({
112262
112314
  getRowId,
112263
112315
  initialTableConfig: _initialTableConfig,
112264
112316
  onBulkEditUpdate,
112317
+ onExpandOrCollapseAll,
112265
112318
  onTableConfigChange,
112266
112319
  translations: translations2 = {},
112267
112320
  enableCellTextSelection,
@@ -112278,8 +112331,9 @@ var ClientSideDataTable = ({
112278
112331
  filterGroups,
112279
112332
  getRowId,
112280
112333
  initialTableConfig: _initialTableConfig,
112281
- onTableConfigChange,
112282
112334
  onBulkEditUpdate,
112335
+ onExpandOrCollapseAll,
112336
+ onTableConfigChange,
112283
112337
  showExpandCollapseAllToggle: true,
112284
112338
  translations: translations2,
112285
112339
  localStoragePersistenceKey,
@@ -116671,6 +116725,7 @@ var ServerSideDataTable = ({
116671
116725
  getRowId,
116672
116726
  initialTableConfig: _initialTableConfig,
116673
116727
  onBulkEditUpdate,
116728
+ onExpandOrCollapseAll,
116674
116729
  onServerSideDataRequest,
116675
116730
  onTableConfigChange,
116676
116731
  enableCellTextSelection,
@@ -116689,9 +116744,10 @@ var ServerSideDataTable = ({
116689
116744
  filterGroups,
116690
116745
  getRowId,
116691
116746
  initialTableConfig: _initialTableConfig,
116692
- onTableConfigChange,
116693
- onServerSideDataRequest,
116694
116747
  onBulkEditUpdate,
116748
+ onExpandOrCollapseAll,
116749
+ onServerSideDataRequest,
116750
+ onTableConfigChange,
116695
116751
  showExpandCollapseAllToggle,
116696
116752
  translations: translations2,
116697
116753
  customBulkEditorFields,