@procore/data-table 13.3.1 → 13.3.3-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import React82, { useState, forwardRef, useContext, useRef, useImperativeHandle, useLayoutEffect, useCallback, useMemo, memo, useEffect, Component as Component$1, createElement } from 'react';
2
2
  import { startsWith, equals, omit, isNil, mergeDeepLeft, intersection, isEmpty, groupBy } from 'ramda';
3
- import { useI18nContext, Select, Input, UNSAFE_useOverlayTriggerContext, Card, Flex, Box, SegmentedController, Calendar, useDateTime, OverlayTrigger, isEventSource, DateInput, UNSAFE_isValidYearRange, DateSelect, PillSelect, TextArea, UNSAFE_useMenuImperativeControlNavigation, UNSAFE_Menu, UNSAFE_menuItemsWrapperAttribute, Spinner, FlexList, Typography, Tooltip, Button, Required, colors, Form, spacing, Switch, Panel, UNSAFE_StyledFilterTokenLabel, typographyWeights, SelectButton, StyledSelectButton, StyledSelectButtonLabel, StyledButton, StyledSelectArrow, Popover, UNSAFE_StyledSuperSelectTrigger, UNSAFE_StyledSuperSelectLabel, UNSAFE_StyledSuperSelectArrow, DateTimeProvider, useField, Label, UNSAFE_mergeRefs, ContactItem as ContactItem$1, ToggleButton, Pagination, Link, AvatarStack, Pill, Typeahead, UNSAFE_FilterToken, useI18n, I18nContext, UNSAFE_SuperSelect, Avatar, MultiSelect, H3, Checkbox, useVisibility, UNSAFE_useSuperSelectContext, DropdownFlyout, StyledDropdownFlyoutLabel, StyledDropdownFlyoutExpandIcon, EmptyState as EmptyState$1 } from '@procore/core-react';
3
+ import { useI18nContext, Select, Input, UNSAFE_useOverlayTriggerContext, Card, Flex, Box, SegmentedController, Calendar, useDateTime, OverlayTrigger, isEventSource, DateInput, UNSAFE_isValidYearRange, DateSelect, PillSelect, TextArea, UNSAFE_useMenuImperativeControlNavigation, UNSAFE_Menu, UNSAFE_menuItemsWrapperAttribute, Spinner as Spinner$1, FlexList, Typography, Tooltip, Button, Required, colors, Form, spacing, Switch, Panel, UNSAFE_StyledFilterTokenLabel, typographyWeights, SelectButton, StyledSelectButton, StyledSelectButtonLabel, StyledButton, StyledSelectArrow, Popover, UNSAFE_StyledSuperSelectTrigger, UNSAFE_StyledSuperSelectLabel, UNSAFE_StyledSuperSelectArrow, DateTimeProvider, useField, Label, UNSAFE_mergeRefs, ContactItem as ContactItem$1, ToggleButton, Pagination, Link, AvatarStack, Pill, Typeahead, UNSAFE_FilterToken, useI18n, I18nContext, UNSAFE_SuperSelect, Avatar, MultiSelect, H3, Checkbox, useVisibility, UNSAFE_useSuperSelectContext, DropdownFlyout, StyledDropdownFlyoutLabel, StyledDropdownFlyoutExpandIcon, EmptyState as EmptyState$1 } from '@procore/core-react';
4
4
  import classnames from 'classnames/bind';
5
5
  import { Error as Error$1, Grip, Pencil, Building, Calendar as Calendar$1, CaretsInVertical, CaretsOutVertical, CaretsOutVerticalWithLine, CaretsIn, CaretsOut, CaretDown, CaretRight, ArrowDown, ArrowUp } from '@procore/core-icons';
6
6
  import classNames from 'classnames';
@@ -996,6 +996,41 @@ var rowHeightMap = {
996
996
  [rowSize.md]: "medium",
997
997
  [rowSize.lg]: "large"
998
998
  };
999
+ var Spinner = ({
1000
+ loading,
1001
+ ...rest
1002
+ }) => /* @__PURE__ */ React82.createElement(Box, { "data-qa": loading ? "loading" : "loaded", display: "flex-row", flex: 1 }, /* @__PURE__ */ React82.createElement(Spinner$1, { loading, size: "md", centered: true, ...rest }));
1003
+ function isNestedColumnDefinition(Column2) {
1004
+ return "children" in Column2;
1005
+ }
1006
+ function isNestedColDef(colDef) {
1007
+ if (!colDef.groupId) {
1008
+ return false;
1009
+ }
1010
+ return "groupId" in colDef;
1011
+ }
1012
+ function getLeafColDefs(columnDefinitions) {
1013
+ return columnDefinitions.flatMap((colDef) => {
1014
+ return isNestedColDef(colDef) ? getLeafColDefs(colDef.children) : [colDef];
1015
+ });
1016
+ }
1017
+ function isFirstColumn(params) {
1018
+ const displayedColumns = params?.columnApi?.getAllDisplayedColumns() || [];
1019
+ return displayedColumns.length ? displayedColumns[0] === params.column : false;
1020
+ }
1021
+ function getCheckboxColumn(columnApi) {
1022
+ const isGrouping = columnApi?.getRowGroupColumns?.()?.length !== 0;
1023
+ if (isGrouping) {
1024
+ return null;
1025
+ }
1026
+ const displayedColumns = columnApi?.getAllDisplayedColumns() || [];
1027
+ return displayedColumns.length ? displayedColumns[0] : null;
1028
+ }
1029
+ function removeEventListenerFromGrid(event, listener, gridApi) {
1030
+ if (!gridApi || gridApi?.destroyCalled)
1031
+ return;
1032
+ gridApi?.removeEventListener(event, listener);
1033
+ }
999
1034
 
1000
1035
  // src/styles.scss
1001
1036
  var styles_exports = {};
@@ -8521,9 +8556,6 @@ var DateFilterRenderer = (props) => {
8521
8556
  if (onServerSideDataRequest) {
8522
8557
  return /* @__PURE__ */ React82.createElement(ServerSideDateSelectFilterRenderer, { ...props });
8523
8558
  }
8524
- console.error(
8525
- "Warning: Date Filters are currently only implemented for the serverside row model"
8526
- );
8527
8559
  return null;
8528
8560
  };
8529
8561
  var DateFilterTokenText = ({
@@ -53792,7 +53824,7 @@ var LocationFilterOverlay = React82.forwardRef(
53792
53824
  getLabel3(item)
53793
53825
  );
53794
53826
  })),
53795
- loading && /* @__PURE__ */ React82.createElement(UNSAFE_Menu.Footer, null, /* @__PURE__ */ React82.createElement(Flex, { justifyContent: "center" }, /* @__PURE__ */ React82.createElement(Spinner, { size: "sm" })))
53827
+ loading && /* @__PURE__ */ React82.createElement(UNSAFE_Menu.Footer, null, /* @__PURE__ */ React82.createElement(Flex, { justifyContent: "center" }, /* @__PURE__ */ React82.createElement(Spinner$1, { size: "sm" })))
53796
53828
  ));
53797
53829
  }
53798
53830
  );
@@ -53920,9 +53952,6 @@ var LocationFilterRenderer = (props) => {
53920
53952
  if (onServerSideDataRequest) {
53921
53953
  return /* @__PURE__ */ React82.createElement(ServerSideLocationFilterRenderer, { ...props });
53922
53954
  }
53923
- console.error(
53924
- "Warning: Location Filters are currently only implemented for the serverside row model"
53925
- );
53926
53955
  return null;
53927
53956
  };
53928
53957
 
@@ -53995,8 +54024,16 @@ function useFilterState({
53995
54024
  }
53996
54025
  return () => {
53997
54026
  listenersEnabled.current = false;
53998
- gridApi?.removeEventListener("filterChanged", filterEventFunction);
53999
- gridApi?.removeEventListener("rowDataUpdated", filterEventFunction);
54027
+ removeEventListenerFromGrid(
54028
+ "filterChanged",
54029
+ filterEventFunction,
54030
+ gridApi
54031
+ );
54032
+ removeEventListenerFromGrid(
54033
+ "rowDataUpdated",
54034
+ filterEventFunction,
54035
+ gridApi
54036
+ );
54000
54037
  };
54001
54038
  }, [gridApi, columnDefinitions]);
54002
54039
  return { allAvailableFilters, changeFilterValue, filterableColumns };
@@ -54101,9 +54138,6 @@ var MultiSelectFilterRenderer = (props) => {
54101
54138
  const { onServerSideDataRequest } = useInternalTableContext();
54102
54139
  const Renderer13 = onServerSideDataRequest ? ServerSideMultiSelectFilterRenderer : ClientSideMultiSelectFilterRenderer;
54103
54140
  if (isNumberFilterModel(value)) {
54104
- console.warn(
54105
- "a value was set that is not compatible with this MultiSelectFilterRenderer"
54106
- );
54107
54141
  return null;
54108
54142
  }
54109
54143
  return /* @__PURE__ */ React82.createElement(Renderer13, { value, ...otherProps });
@@ -54450,9 +54484,6 @@ var ServerSideFilter = ({
54450
54484
  value
54451
54485
  } = useServerSideFilter({ columnDefinition });
54452
54486
  if (columnDefinition === void 0 || columnDefinition === null) {
54453
- console.warn(
54454
- `Unable to find the columnDefinition (${columnDefinition}) for fieldName: ${fieldName}`
54455
- );
54456
54487
  return null;
54457
54488
  }
54458
54489
  return /* @__PURE__ */ React82.createElement(
@@ -54478,36 +54509,6 @@ var ServerSideFilter = ({
54478
54509
  )
54479
54510
  );
54480
54511
  };
54481
- var Spinner2 = ({
54482
- loading,
54483
- ...rest
54484
- }) => /* @__PURE__ */ React82.createElement(Box, { "data-qa": loading ? "loading" : "loaded", display: "flex-row", flex: 1 }, /* @__PURE__ */ React82.createElement(Spinner, { loading, size: "md", centered: true, ...rest }));
54485
- function isNestedColumnDefinition(Column2) {
54486
- return "children" in Column2;
54487
- }
54488
- function isNestedColDef(colDef) {
54489
- if (!colDef.groupId) {
54490
- return false;
54491
- }
54492
- return "groupId" in colDef;
54493
- }
54494
- function getLeafColDefs(columnDefinitions) {
54495
- return columnDefinitions.flatMap((colDef) => {
54496
- return isNestedColDef(colDef) ? getLeafColDefs(colDef.children) : [colDef];
54497
- });
54498
- }
54499
- function isFirstColumn(params) {
54500
- const displayedColumns = params?.columnApi?.getAllDisplayedColumns() || [];
54501
- return displayedColumns.length ? displayedColumns[0] === params.column : false;
54502
- }
54503
- function getCheckboxColumn(columnApi) {
54504
- const isGrouping = columnApi?.getRowGroupColumns?.()?.length !== 0;
54505
- if (isGrouping) {
54506
- return null;
54507
- }
54508
- const displayedColumns = columnApi?.getAllDisplayedColumns() || [];
54509
- return displayedColumns.length ? displayedColumns[0] : null;
54510
- }
54511
54512
 
54512
54513
  // src/utils/transformers.ts
54513
54514
  var emptyObject = {};
@@ -55205,7 +55206,7 @@ function ClientSideRowCheckbox(props) {
55205
55206
  useEffect(() => {
55206
55207
  props.api.addEventListener("rowSelected", handleRowSelection);
55207
55208
  return () => {
55208
- props.api.removeEventListener("rowSelected", handleRowSelection);
55209
+ removeEventListenerFromGrid("rowSelected", handleRowSelection, props.api);
55209
55210
  };
55210
55211
  }, []);
55211
55212
  return /* @__PURE__ */ React82.createElement(Box, { paddingRight: "md" }, /* @__PURE__ */ React82.createElement(
@@ -55316,7 +55317,11 @@ function GroupCaret(props) {
55316
55317
  props.api.addEventListener("rowGroupOpened", handleRowGroupToggle);
55317
55318
  return () => {
55318
55319
  mounted.current = false;
55319
- props.api.removeEventListener("rowGroupOpened", handleRowGroupToggle);
55320
+ removeEventListenerFromGrid(
55321
+ "rowGroupOpened",
55322
+ handleRowGroupToggle,
55323
+ props.api
55324
+ );
55320
55325
  };
55321
55326
  }, []);
55322
55327
  return /* @__PURE__ */ React82.createElement(Box, { className: AutoGroupCell_default.expandableCaret }, props.node.isExpandable() && /* @__PURE__ */ React82.createElement(
@@ -55342,7 +55347,11 @@ var AutoGroupCellRenderer = (props) => {
55342
55347
  useEffect(() => {
55343
55348
  props.api.addEventListener("cellValueChanged", handleCellValueChange);
55344
55349
  return () => {
55345
- props.api.removeEventListener("cellValueChanged", handleCellValueChange);
55350
+ removeEventListenerFromGrid(
55351
+ "cellValueChanged",
55352
+ handleCellValueChange,
55353
+ props.api
55354
+ );
55346
55355
  };
55347
55356
  }, []);
55348
55357
  const adjustedLevel = props.node.footer ? props.node.level + 1 : props.node.level;
@@ -56193,7 +56202,7 @@ var GenericHeaderRenderer = (props) => {
56193
56202
  props.api.addEventListener("columnMoved", calculatePosition);
56194
56203
  calculatePosition();
56195
56204
  return () => {
56196
- props.api.removeEventListener("columnMoved", calculatePosition);
56205
+ removeEventListenerFromGrid("columnMoved", calculatePosition, props.api);
56197
56206
  };
56198
56207
  }, []);
56199
56208
  const onSortToggled = (event) => {
@@ -56270,7 +56279,11 @@ var GenericHeaderRenderer = (props) => {
56270
56279
  };
56271
56280
  props.api?.addEventListener("expandOrCollapseAll", onExpandAllChange);
56272
56281
  return () => {
56273
- props.api?.removeEventListener("expandOrCollapseAll", onExpandAllChange);
56282
+ removeEventListenerFromGrid(
56283
+ "expandOrCollapseAll",
56284
+ onExpandAllChange,
56285
+ props.api
56286
+ );
56274
56287
  };
56275
56288
  }, [props.api]);
56276
56289
  React82.useEffect(() => {
@@ -56361,7 +56374,11 @@ var GenericHeaderRenderer = (props) => {
56361
56374
  props.api.addEventListener(selectionChanged, onSelectionChanged);
56362
56375
  onSelectionChanged();
56363
56376
  return () => {
56364
- props.api.removeEventListener(selectionChanged, onSelectionChanged);
56377
+ removeEventListenerFromGrid(
56378
+ selectionChanged,
56379
+ onSelectionChanged,
56380
+ props.api
56381
+ );
56365
56382
  };
56366
56383
  }, [isFirstColumn2, selectAll]);
56367
56384
  const { ref, isOverflowing, recalculate } = useOverflowObserver();
@@ -56370,8 +56387,8 @@ var GenericHeaderRenderer = (props) => {
56370
56387
  props.api.addEventListener("cellMouseOver", handler);
56371
56388
  props.api.addEventListener("columnResized", handler);
56372
56389
  return () => {
56373
- props.api.removeEventListener("cellMouseOver", handler);
56374
- props.api.removeEventListener("columnResized", handler);
56390
+ removeEventListenerFromGrid("cellMouseOver", handler, props.api);
56391
+ removeEventListenerFromGrid("columnResized", handler, props.api);
56375
56392
  };
56376
56393
  }, []);
56377
56394
  React82.useEffect(() => {
@@ -56397,8 +56414,16 @@ var GenericHeaderRenderer = (props) => {
56397
56414
  props.api.addEventListener(selectionChanged, updateSelectAllCheckbox);
56398
56415
  props.api.addEventListener(paginationChanged, updateSelectAllCheckbox);
56399
56416
  return () => {
56400
- props.api.removeEventListener(selectionChanged, updateSelectAllCheckbox);
56401
- props.api.removeEventListener(paginationChanged, updateSelectAllCheckbox);
56417
+ removeEventListenerFromGrid(
56418
+ selectionChanged,
56419
+ updateSelectAllCheckbox,
56420
+ props.api
56421
+ );
56422
+ removeEventListenerFromGrid(
56423
+ paginationChanged,
56424
+ updateSelectAllCheckbox,
56425
+ props.api
56426
+ );
56402
56427
  };
56403
56428
  }, [isFirstColumn2, props.selectionSSREnabled, props.api, onSSDR]);
56404
56429
  const toggleSelectAll = React82.useCallback(() => {
@@ -56606,7 +56631,7 @@ function CustomLoader(params) {
56606
56631
  level: params.node.level,
56607
56632
  lastRowInGroup: params.node === groupNodes.last
56608
56633
  }
56609
- ), /* @__PURE__ */ React82.createElement(Spinner2, { loading: true, size: "sm" }), /* @__PURE__ */ React82.createElement(Box, { paddingLeft: "sm" }, /* @__PURE__ */ React82.createElement(Typography, { color: "gray15", italic: true, intent: "small" }, I18n.t(
56634
+ ), /* @__PURE__ */ React82.createElement(Spinner, { loading: true, size: "sm" }), /* @__PURE__ */ React82.createElement(Box, { paddingLeft: "sm" }, /* @__PURE__ */ React82.createElement(Typography, { color: "gray15", italic: true, intent: "small" }, I18n.t(
56610
56635
  `dataTable.loading.${params.node === groupNodes.first ? "initial" : "secondary"}`
56611
56636
  ))));
56612
56637
  }
@@ -56616,7 +56641,7 @@ var DefaultFrameworkComponents = {
56616
56641
  agColumnHeader: GenericHeaderRenderer,
56617
56642
  agLoadingCellRenderer: CustomLoader,
56618
56643
  agColumnGroupHeader: GenericColumnGroupHeader,
56619
- loadingOverlayRenderer: Spinner2,
56644
+ loadingOverlayRenderer: Spinner,
56620
56645
  emptyStateRenderer: EmptyState
56621
56646
  };
56622
56647
  function getFrameworkComponents(headerMenuConfig, onSelectAll, selectionSSREnabled) {
@@ -56774,9 +56799,8 @@ var MultiSelectCellRenderer = withDataTableRenderer(
56774
56799
  // src/FilterRenderers/useServerSideFilterStorage.tsx
56775
56800
  var emptyArray2 = [];
56776
56801
  var emptyObj = {};
56777
- function logNoOp(text, returns) {
56802
+ function logNoOp(_text, returns) {
56778
56803
  return function() {
56779
- console.log("No-op", text);
56780
56804
  return returns;
56781
56805
  };
56782
56806
  }
@@ -56951,12 +56975,12 @@ var defaultServerSideFiltersContext = {
56951
56975
  getSelected: logNoOp("ServerSideFiltersContext getSelected", emptyObj),
56952
56976
  hasDefinedFilters: false,
56953
56977
  hasSelectedFilters: false,
56954
- onChangeFilterValue: logNoOp("ServerSideFiltersContext onChangeFilterValue"),
56955
- onClearAllFilters: logNoOp("ServerSideFiltersContext onClearAllFilters"),
56956
- onClearFilter: logNoOp("ServerSideFiltersContext onClearFilter"),
56978
+ onChangeFilterValue: logNoOp(),
56979
+ onClearAllFilters: logNoOp(),
56980
+ onClearFilter: logNoOp(),
56957
56981
  possibleFilters: emptyArray2,
56958
56982
  selectedFilters: emptyObj,
56959
- setSelectedFilters: logNoOp("ServerSideFiltersContext setSelectedFilters"),
56983
+ setSelectedFilters: logNoOp(),
56960
56984
  waitForStoredOptions: logNoOp(
56961
56985
  "ServerSideFiltersContext waitForStoredOptions",
56962
56986
  true
@@ -58753,12 +58777,18 @@ var useRowSelectionState = () => {
58753
58777
  const { gridApi, rowSelectionRef } = useInternalTableContext();
58754
58778
  React82.useEffect(() => {
58755
58779
  function selectionEventFunction() {
58756
- setSelectedRows(getSelectedRows({ gridApi, rowSelectionRef }));
58780
+ if (!gridApi?.destroyCalled) {
58781
+ setSelectedRows(getSelectedRows({ gridApi, rowSelectionRef }));
58782
+ }
58757
58783
  }
58758
58784
  selectionEventFunction();
58759
58785
  gridApi?.addEventListener("selectionChanged", selectionEventFunction);
58760
58786
  return () => {
58761
- gridApi?.removeEventListener("selectionChanged", selectionEventFunction);
58787
+ removeEventListenerFromGrid(
58788
+ "selectionChanged",
58789
+ selectionEventFunction,
58790
+ gridApi
58791
+ );
58762
58792
  };
58763
58793
  }, [gridApi]);
58764
58794
  return selectedRows;
@@ -76259,7 +76289,7 @@ function personOptionRenderer(editorParams) {
76259
76289
  };
76260
76290
  }
76261
76291
  function LoadingField() {
76262
- return /* @__PURE__ */ React82.createElement(Box, { marginTop: "md" }, /* @__PURE__ */ React82.createElement(Spinner, { size: "sm", loading: true }));
76292
+ return /* @__PURE__ */ React82.createElement(Box, { marginTop: "md" }, /* @__PURE__ */ React82.createElement(Spinner$1, { size: "sm", loading: true }));
76263
76293
  }
76264
76294
  function RadioList({
76265
76295
  getId: getId3,
@@ -76586,9 +76616,6 @@ var BulkEditInput = (props) => {
76586
76616
  }
76587
76617
  );
76588
76618
  } else {
76589
- console.warn(
76590
- `@procore/labs-data-table: Unable to find the field for ${props.editor}. Will fallback to a Form.Text.`
76591
- );
76592
76619
  return defaultField;
76593
76620
  }
76594
76621
  }
@@ -77048,9 +77075,10 @@ var ConfigurationColumns = React82.forwardRef(
77048
77075
  onDisplayedColumnsChanged
77049
77076
  );
77050
77077
  return () => {
77051
- gridApi?.removeEventListener(
77078
+ removeEventListenerFromGrid(
77052
77079
  "displayedColumnsChanged",
77053
- onDisplayedColumnsChanged
77080
+ onDisplayedColumnsChanged,
77081
+ gridApi
77054
77082
  );
77055
77083
  };
77056
77084
  }, [gridApi, colDefs]);
@@ -77212,16 +77240,11 @@ function groupFiltersByGroupName(props) {
77212
77240
  }
77213
77241
  const filterGroupNames = filterGroups?.map((filterGroup) => filterGroup.name);
77214
77242
  let filterIndex = 0;
77215
- return groupBy((filterRecord) => {
77243
+ return groupBy((_filterRecord) => {
77216
77244
  const filterProps = availableFilterProps[filterIndex];
77217
77245
  const groupName = filterProps?.groupName;
77218
77246
  filterIndex++;
77219
77247
  if (groupName && !filterGroupNames?.includes(groupName)) {
77220
- console.warn(
77221
- 'filter "%s" is being associated with a filter group "%s" that does not exist',
77222
- filterRecord.field,
77223
- groupName
77224
- );
77225
77248
  return FILTER_GROUP_NO_KEY;
77226
77249
  }
77227
77250
  return groupName?.toString() || FILTER_GROUP_NO_KEY;
@@ -77337,7 +77360,6 @@ function FilterListItems(props) {
77337
77360
  "data-qa": "data-table-possible-filters-list"
77338
77361
  },
77339
77362
  filtersInGroup.map((filterRecord) => {
77340
- console.log("filterRecord ", filterRecord);
77341
77363
  const { columnDefinition } = filterRecord;
77342
77364
  if (!columnDefinition) {
77343
77365
  return null;
@@ -77397,10 +77419,6 @@ function FiltersList(props) {
77397
77419
  },
77398
77420
  filterGroups?.map((group) => {
77399
77421
  if (!filterGroupsMap[group.name]) {
77400
- console.warn(
77401
- 'filters group "%s" is not associated with any filter',
77402
- group.name
77403
- );
77404
77422
  return null;
77405
77423
  }
77406
77424
  return /* @__PURE__ */ React82.createElement(FilterGroupWrapper, { filterGroup: group, key: group.name }, /* @__PURE__ */ React82.createElement(
@@ -77895,9 +77913,10 @@ var RowGroupSelector = ({ localeText }) => {
77895
77913
  onDisplayedColumnsChanged
77896
77914
  );
77897
77915
  return () => {
77898
- gridApi?.removeEventListener(
77916
+ removeEventListenerFromGrid(
77899
77917
  "displayedColumnsChanged",
77900
- onDisplayedColumnsChanged
77918
+ onDisplayedColumnsChanged,
77919
+ gridApi
77901
77920
  );
77902
77921
  };
77903
77922
  }, [gridApi]);
@@ -78116,12 +78135,6 @@ var buildDetailRowsConfig = ({
78116
78135
  if (detailRowConfigs === void 0 || !detailRowConfigs[0]) {
78117
78136
  return {};
78118
78137
  }
78119
- if (detailRowConfigs.length > 1) {
78120
- console.warn(`
78121
- DataTable: "detailRowConfigs" of length ${detailRowConfigs.length} was provided, while it only supports an array of length 1.
78122
- Please use "detailRowConfig", as "detailRowConfigs" is deprecated.
78123
- `);
78124
- }
78125
78138
  return buildDetailRowsConfig_(detailRowConfigs[0], {
78126
78139
  defaultColDef,
78127
78140
  frameworkComponents,
@@ -81191,7 +81204,6 @@ var DataTable = ({
81191
81204
  const missingTranslation = internalI18n.missingTranslation.bind(internalI18n);
81192
81205
  internalI18n.missingTranslation = (scope2, options) => {
81193
81206
  if (scope2.match(/core\.dataTable/)) {
81194
- console.warn(`[DataTable] Missing Translation: ${scope2}`);
81195
81207
  return "";
81196
81208
  }
81197
81209
  if (dataTableTranslationKeys.includes(scope2)) {
@@ -81550,7 +81562,9 @@ var Table = (props) => {
81550
81562
  maxHeight = nodeHeight;
81551
81563
  }
81552
81564
  });
81553
- gridApi?.setHeaderHeight(maxHeight);
81565
+ if (!gridApi?.destroyCalled) {
81566
+ gridApi?.setHeaderHeight(maxHeight);
81567
+ }
81554
81568
  }
81555
81569
  React82.useEffect(() => {
81556
81570
  if (gridApi && columnApi && internalTableContext.tableRef?.current) {
@@ -81561,7 +81575,11 @@ var Table = (props) => {
81561
81575
  gridApi.addEventListener("firstDataRendered", setHeaderHeight);
81562
81576
  setHeaderHeight();
81563
81577
  return () => {
81564
- gridApi.removeEventListener("firstDataRendered", setHeaderHeight);
81578
+ removeEventListenerFromGrid(
81579
+ "firstDataRendered",
81580
+ setHeaderHeight,
81581
+ gridApi
81582
+ );
81565
81583
  };
81566
81584
  }
81567
81585
  return;
@@ -81633,7 +81651,6 @@ var Table = (props) => {
81633
81651
  ]);
81634
81652
  React82.useEffect(() => {
81635
81653
  if (frameworkComponentsInitialized.current === true) {
81636
- console.warn("Don't update custom cells after the initial render.");
81637
81654
  setFrameworkComponents(
81638
81655
  getFrameworkComponents(
81639
81656
  headerMenuConfig,
@@ -81793,6 +81810,8 @@ var Table = (props) => {
81793
81810
  const onDisplayedColumnsChanged = React82.useCallback(
81794
81811
  (event) => {
81795
81812
  if (props.onRowDragEnd) {
81813
+ if (event.columnApi?.destroyCalled)
81814
+ return;
81796
81815
  const firstVisibleColumn = event.columnApi.getAllGridColumns().find((col) => col.isVisible());
81797
81816
  if (!firstVisibleColumn?.getColDef().rowDrag) {
81798
81817
  adjustRowDragIcon(event.api, event.columnApi);
@@ -82086,7 +82105,7 @@ var Table = (props) => {
82086
82105
  props.UNSAFE_internalAGGridOverrides ?? {}
82087
82106
  );
82088
82107
  return /* @__PURE__ */ React82.createElement(
82089
- Spinner2,
82108
+ Spinner,
82090
82109
  {
82091
82110
  loading: loadingStatus.loading,
82092
82111
  label: loadingStatus.message,
@@ -82253,7 +82272,11 @@ var TablePagination = ({
82253
82272
  }
82254
82273
  gridApi?.addEventListener("paginationChanged", onPaginationChanged);
82255
82274
  return () => {
82256
- gridApi?.removeEventListener("paginationChanged", onPaginationChanged);
82275
+ removeEventListenerFromGrid(
82276
+ "paginationChanged",
82277
+ onPaginationChanged,
82278
+ gridApi
82279
+ );
82257
82280
  };
82258
82281
  }, []);
82259
82282
  return /* @__PURE__ */ React82.createElement(
@@ -82617,9 +82640,6 @@ var QuickDateFilterRenderer = (props) => {
82617
82640
  if (onServerSideDataRequest) {
82618
82641
  return /* @__PURE__ */ React82.createElement(ServerSideQuickDateFilterRenderer, { ...props });
82619
82642
  }
82620
- console.error(
82621
- "Warning: Date Filters are currently only implemented for the serverside row model"
82622
- );
82623
82643
  return null;
82624
82644
  };
82625
82645
  var dateInputLocales = {
@@ -82715,9 +82735,6 @@ var LocationQuickFilterOverlay = React82.forwardRef(
82715
82735
  value
82716
82736
  }, ref) => {
82717
82737
  if (value && !Array.isArray(value)) {
82718
- console.warn(
82719
- "a value was set that is not compatible with this LocationQuickFilterRenderer"
82720
- );
82721
82738
  return null;
82722
82739
  }
82723
82740
  const [items, setItems] = React82.useState(options);
@@ -82813,7 +82830,7 @@ var LocationQuickFilterOverlay = React82.forwardRef(
82813
82830
  getLabel3(item)
82814
82831
  );
82815
82832
  })),
82816
- loading && /* @__PURE__ */ React82.createElement(UNSAFE_Menu.Footer, null, /* @__PURE__ */ React82.createElement(Flex, { justifyContent: "center" }, /* @__PURE__ */ React82.createElement(Spinner, { size: "sm" })))
82833
+ loading && /* @__PURE__ */ React82.createElement(UNSAFE_Menu.Footer, null, /* @__PURE__ */ React82.createElement(Flex, { justifyContent: "center" }, /* @__PURE__ */ React82.createElement(Spinner$1, { size: "sm" })))
82817
82834
  ));
82818
82835
  }
82819
82836
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procore/data-table",
3
- "version": "13.3.1",
3
+ "version": "13.3.3-next.0",
4
4
  "description": "Complex data grid built on top of ag-grid, with DST components and styles.",
5
5
  "main": "dist/legacy/index.js",
6
6
  "module": "dist/legacy/index.mjs",