@procore/data-table 14.28.0-cdn.9 → 14.29.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,16 +1,14 @@
1
1
  # Change Log
2
2
 
3
- ## 14.28.0-cdn.9
3
+ ## 14.29.0
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - 3f72970: Add placeholder implementation for MultiSelectCellRenderer component
8
- - 8baa7c3: Update I18nprovider and DataTable to have the option to pull translations from the CDN
7
+ - 10547ee: Prevent SSR number and multi-number filters from sending empty value
9
8
 
10
9
  ### Patch Changes
11
10
 
12
- - Updated dependencies [8baa7c3]
13
- - @procore/core-react@12.21.0-cdn.0
11
+ - f59703f: Remove filter when value is empty
14
12
 
15
13
  ## 14.28.0
16
14
 
@@ -12,7 +12,6 @@ var labsFinancialsUtils = require('@procore/labs-financials-utils');
12
12
  var styled4 = require('styled-components');
13
13
  var format = require('@procore/labs-financials-utils/dist/format');
14
14
  var ulid$1 = require('ulid');
15
- var cdnTranslations = require('@procore/cdn-translations');
16
15
  var toastAlert = require('@procore/toast-alert');
17
16
  var ReactDOM = require('react-dom');
18
17
  var server = require('react-dom/server');
@@ -54967,6 +54966,7 @@ function ServerSideNumberFilterRenderer({
54967
54966
  }
54968
54967
  );
54969
54968
  const prevValueRef = React80.useRef([]);
54969
+ const internalClearRef = React80.useRef(false);
54970
54970
  const debounceTimerRef = React80.useRef(null);
54971
54971
  React80.useEffect(() => {
54972
54972
  return () => {
@@ -54976,9 +54976,10 @@ function ServerSideNumberFilterRenderer({
54976
54976
  };
54977
54977
  }, []);
54978
54978
  React80.useEffect(() => {
54979
- if (prevValueRef.current.length !== 0 && value.length === 0) {
54979
+ if (prevValueRef.current.length > 0 && value.length === 0 && !internalClearRef.current) {
54980
54980
  setLocalFilter({});
54981
54981
  }
54982
+ internalClearRef.current = false;
54982
54983
  prevValueRef.current = value;
54983
54984
  }, [value]);
54984
54985
  const transformToFilterArray = (filter) => {
@@ -55064,12 +55065,19 @@ function ServerSideNumberFilterRenderer({
55064
55065
  clearTimeout(debounceTimerRef.current);
55065
55066
  }
55066
55067
  debounceTimerRef.current = setTimeout(() => {
55067
- if (next.type === "inRange") {
55068
- if (next.value !== void 0 && next.valueTo !== void 0) {
55069
- updateFilter(next);
55070
- }
55071
- } else {
55068
+ const { type, value: value2, valueTo } = next;
55069
+ if (!type) {
55070
+ onChange == null ? void 0 : onChange([]);
55071
+ return;
55072
+ }
55073
+ const isInRange = type === "inRange";
55074
+ const hasValues = isInRange ? value2 !== void 0 && valueTo !== void 0 : value2 !== void 0;
55075
+ if (hasValues) {
55072
55076
  updateFilter(next);
55077
+ } else {
55078
+ internalClearRef.current = true;
55079
+ setLocalFilter(next);
55080
+ onChange == null ? void 0 : onChange([]);
55073
55081
  }
55074
55082
  }, DEBOUNCE_TIME);
55075
55083
  },
@@ -55203,6 +55211,17 @@ function ServerSideMultiNumberFilterRenderer({
55203
55211
  const [returnedFilter] = returnedFilterArray;
55204
55212
  const next = returnedFilter ? { ...returnedFilter, operator: firstFilter.operator } : { operator: firstFilter.operator };
55205
55213
  setFirstFilter(next);
55214
+ const isCleared = !returnedFilter || !isValidFilter(returnedFilter) && !returnedFilter.type;
55215
+ if (isCleared) {
55216
+ if (debounceTimerRef.current) {
55217
+ clearTimeout(debounceTimerRef.current);
55218
+ debounceTimerRef.current = null;
55219
+ }
55220
+ setFirstFilter({ operator: "and" });
55221
+ setSecondFilter({ operator: "and" });
55222
+ onChange == null ? void 0 : onChange([]);
55223
+ return;
55224
+ }
55206
55225
  if (debounceTimerRef.current)
55207
55226
  clearTimeout(debounceTimerRef.current);
55208
55227
  debounceTimerRef.current = setTimeout(() => {
@@ -55221,20 +55240,12 @@ function ServerSideMultiNumberFilterRenderer({
55221
55240
  };
55222
55241
  const fireOnChange = React80.useCallback(
55223
55242
  (f1, f2) => {
55224
- if (!f1.type) {
55225
- onChange == null ? void 0 : onChange([]);
55226
- setFirstFilter({ operator: "and" });
55227
- setSecondFilter({ operator: "and" });
55228
- return;
55229
- }
55230
55243
  const f1Valid = isValidFilter(f1);
55231
55244
  const f2Valid = isValidFilter(f2);
55232
55245
  const values2 = [f1Valid ? f1 : null, f2Valid ? f2 : null].filter(
55233
55246
  (value2) => value2 !== null
55234
55247
  );
55235
- if (values2.length) {
55236
- onChange == null ? void 0 : onChange(values2);
55237
- }
55248
+ onChange == null ? void 0 : onChange(values2);
55238
55249
  },
55239
55250
  [onChange]
55240
55251
  );
@@ -109295,8 +109306,7 @@ var DataTable = ({
109295
109306
  showExpandCollapseAllToggle,
109296
109307
  translations: translations2 = {},
109297
109308
  enableCellTextSelection,
109298
- localStoragePersistenceKey,
109299
- enableCDN
109309
+ localStoragePersistenceKey
109300
109310
  }) => {
109301
109311
  const initialTableConfig = localStoragePersistenceKey && webSdkStorage.storage.local.getItem(localStoragePersistenceKey) || _initialTableConfig;
109302
109312
  const onServerSideDataRequestRef = React80__default.default.useRef(onServerSideDataRequest);
@@ -109308,28 +109318,14 @@ var DataTable = ({
109308
109318
  );
109309
109319
  const contextPanel = useContextPanel();
109310
109320
  const clientI18n = coreReact.useI18nContext();
109311
- const isCDNEnabled = cdnTranslations.isCDNFeatureFlagEnabled(clientI18n, enableCDN);
109312
- const cdnTranslations$1 = cdnTranslations.useRequestTranslations(
109313
- {
109314
- locale: clientI18n.locale,
109315
- type: "file",
109316
- absolute_file_path: (locale) => `core/packages/data-table/src/locales/${locale}.json`
109317
- },
109318
- { en: translations.en, pseudo: translations.pseudo },
109319
- {
109320
- oldTranslations: translations,
109321
- enableCDN: isCDNEnabled
109322
- }
109323
- );
109324
109321
  const internalI18n = coreReact.useI18n({
109325
- locale: clientI18n.locale,
109322
+ ...clientI18n,
109326
109323
  translations: ramda.mergeDeepLeft(
109327
109324
  ramda.mergeDeepLeft(clientI18n.translations, {
109328
109325
  [clientI18n.locale]: translations2
109329
109326
  }),
109330
- cdnTranslations$1.translations
109331
- ),
109332
- enableCDN: isCDNEnabled
109327
+ translations
109328
+ )
109333
109329
  });
109334
109330
  const rowSelectionRef = React80__default.default.useRef({
109335
109331
  affectedRows: {},
@@ -112592,8 +112588,7 @@ var ClientSideDataTable = ({
112592
112588
  onTableConfigChange,
112593
112589
  translations: translations2 = {},
112594
112590
  enableCellTextSelection,
112595
- localStoragePersistenceKey,
112596
- enableCDN
112591
+ localStoragePersistenceKey
112597
112592
  }) => {
112598
112593
  return /* @__PURE__ */ React80__default.default.createElement(
112599
112594
  DataTable,
@@ -112611,8 +112606,7 @@ var ClientSideDataTable = ({
112611
112606
  translations: translations2,
112612
112607
  localStoragePersistenceKey,
112613
112608
  customBulkEditorFields,
112614
- enableCellTextSelection,
112615
- enableCDN
112609
+ enableCellTextSelection
112616
112610
  },
112617
112611
  children
112618
112612
  );
@@ -117073,8 +117067,7 @@ var ServerSideDataTable = ({
117073
117067
  enableCellTextSelection,
117074
117068
  showExpandCollapseAllToggle,
117075
117069
  translations: translations2 = {},
117076
- localStoragePersistenceKey,
117077
- enableCDN
117070
+ localStoragePersistenceKey
117078
117071
  }) => {
117079
117072
  return /* @__PURE__ */ React80__default.default.createElement(
117080
117073
  DataTable,
@@ -117093,8 +117086,7 @@ var ServerSideDataTable = ({
117093
117086
  translations: translations2,
117094
117087
  customBulkEditorFields,
117095
117088
  enableCellTextSelection,
117096
- localStoragePersistenceKey,
117097
- enableCDN
117089
+ localStoragePersistenceKey
117098
117090
  },
117099
117091
  children
117100
117092
  );
@@ -1148,7 +1148,6 @@ interface DataTableProps {
1148
1148
  showExpandCollapseAllToggle?: boolean;
1149
1149
  translations?: DataTableTranslations;
1150
1150
  enableCellTextSelection?: boolean;
1151
- enableCDN?: boolean;
1152
1151
  }
1153
1152
  interface ClientSideDataTableProps extends Omit<DataTableProps, 'onServerSideDataRequest' | 'showExpandCollapseAllToggle'> {
1154
1153
  }
@@ -1439,7 +1438,7 @@ interface BulkActionProps {
1439
1438
  style?: React__default.CSSProperties;
1440
1439
  }
1441
1440
 
1442
- 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) & {
1441
+ 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) & {
1443
1442
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1444
1443
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1445
1444
  ConfigPanelButton: React__default.FC<{}>;
@@ -1476,7 +1475,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1476
1475
 
1477
1476
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1478
1477
 
1479
- 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) & {
1478
+ 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) & {
1480
1479
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1481
1480
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1482
1481
  ConfigPanelButton: React__default.FC<{}>;
@@ -1148,7 +1148,6 @@ interface DataTableProps {
1148
1148
  showExpandCollapseAllToggle?: boolean;
1149
1149
  translations?: DataTableTranslations;
1150
1150
  enableCellTextSelection?: boolean;
1151
- enableCDN?: boolean;
1152
1151
  }
1153
1152
  interface ClientSideDataTableProps extends Omit<DataTableProps, 'onServerSideDataRequest' | 'showExpandCollapseAllToggle'> {
1154
1153
  }
@@ -1439,7 +1438,7 @@ interface BulkActionProps {
1439
1438
  style?: React__default.CSSProperties;
1440
1439
  }
1441
1440
 
1442
- 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) & {
1441
+ 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) & {
1443
1442
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1444
1443
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1445
1444
  ConfigPanelButton: React__default.FC<{}>;
@@ -1476,7 +1475,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1476
1475
 
1477
1476
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1478
1477
 
1479
- 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) & {
1478
+ 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) & {
1480
1479
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1481
1480
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1482
1481
  ConfigPanelButton: React__default.FC<{}>;
@@ -10,7 +10,6 @@ import { formatNumber, formatCurrency, formatPercentage } from '@procore/labs-fi
10
10
  import styled4, { css as css$1 } from 'styled-components';
11
11
  import { format } from '@procore/labs-financials-utils/dist/format';
12
12
  import { detectPrng, factory } from 'ulid';
13
- import { isCDNFeatureFlagEnabled, useRequestTranslations } from '@procore/cdn-translations';
14
13
  import { useToastAlertContext, ToastAlertProvider } from '@procore/toast-alert';
15
14
  import ReactDOM, { createPortal } from 'react-dom';
16
15
  import { renderToString, renderToStaticMarkup } from 'react-dom/server';
@@ -54954,6 +54953,7 @@ function ServerSideNumberFilterRenderer({
54954
54953
  }
54955
54954
  );
54956
54955
  const prevValueRef = useRef([]);
54956
+ const internalClearRef = useRef(false);
54957
54957
  const debounceTimerRef = useRef(null);
54958
54958
  useEffect(() => {
54959
54959
  return () => {
@@ -54963,9 +54963,10 @@ function ServerSideNumberFilterRenderer({
54963
54963
  };
54964
54964
  }, []);
54965
54965
  useEffect(() => {
54966
- if (prevValueRef.current.length !== 0 && value.length === 0) {
54966
+ if (prevValueRef.current.length > 0 && value.length === 0 && !internalClearRef.current) {
54967
54967
  setLocalFilter({});
54968
54968
  }
54969
+ internalClearRef.current = false;
54969
54970
  prevValueRef.current = value;
54970
54971
  }, [value]);
54971
54972
  const transformToFilterArray = (filter) => {
@@ -55051,12 +55052,19 @@ function ServerSideNumberFilterRenderer({
55051
55052
  clearTimeout(debounceTimerRef.current);
55052
55053
  }
55053
55054
  debounceTimerRef.current = setTimeout(() => {
55054
- if (next.type === "inRange") {
55055
- if (next.value !== void 0 && next.valueTo !== void 0) {
55056
- updateFilter(next);
55057
- }
55058
- } else {
55055
+ const { type, value: value2, valueTo } = next;
55056
+ if (!type) {
55057
+ onChange == null ? void 0 : onChange([]);
55058
+ return;
55059
+ }
55060
+ const isInRange = type === "inRange";
55061
+ const hasValues = isInRange ? value2 !== void 0 && valueTo !== void 0 : value2 !== void 0;
55062
+ if (hasValues) {
55059
55063
  updateFilter(next);
55064
+ } else {
55065
+ internalClearRef.current = true;
55066
+ setLocalFilter(next);
55067
+ onChange == null ? void 0 : onChange([]);
55060
55068
  }
55061
55069
  }, DEBOUNCE_TIME);
55062
55070
  },
@@ -55190,6 +55198,17 @@ function ServerSideMultiNumberFilterRenderer({
55190
55198
  const [returnedFilter] = returnedFilterArray;
55191
55199
  const next = returnedFilter ? { ...returnedFilter, operator: firstFilter.operator } : { operator: firstFilter.operator };
55192
55200
  setFirstFilter(next);
55201
+ const isCleared = !returnedFilter || !isValidFilter(returnedFilter) && !returnedFilter.type;
55202
+ if (isCleared) {
55203
+ if (debounceTimerRef.current) {
55204
+ clearTimeout(debounceTimerRef.current);
55205
+ debounceTimerRef.current = null;
55206
+ }
55207
+ setFirstFilter({ operator: "and" });
55208
+ setSecondFilter({ operator: "and" });
55209
+ onChange == null ? void 0 : onChange([]);
55210
+ return;
55211
+ }
55193
55212
  if (debounceTimerRef.current)
55194
55213
  clearTimeout(debounceTimerRef.current);
55195
55214
  debounceTimerRef.current = setTimeout(() => {
@@ -55208,20 +55227,12 @@ function ServerSideMultiNumberFilterRenderer({
55208
55227
  };
55209
55228
  const fireOnChange = useCallback(
55210
55229
  (f1, f2) => {
55211
- if (!f1.type) {
55212
- onChange == null ? void 0 : onChange([]);
55213
- setFirstFilter({ operator: "and" });
55214
- setSecondFilter({ operator: "and" });
55215
- return;
55216
- }
55217
55230
  const f1Valid = isValidFilter(f1);
55218
55231
  const f2Valid = isValidFilter(f2);
55219
55232
  const values2 = [f1Valid ? f1 : null, f2Valid ? f2 : null].filter(
55220
55233
  (value2) => value2 !== null
55221
55234
  );
55222
- if (values2.length) {
55223
- onChange == null ? void 0 : onChange(values2);
55224
- }
55235
+ onChange == null ? void 0 : onChange(values2);
55225
55236
  },
55226
55237
  [onChange]
55227
55238
  );
@@ -109282,8 +109293,7 @@ var DataTable = ({
109282
109293
  showExpandCollapseAllToggle,
109283
109294
  translations: translations2 = {},
109284
109295
  enableCellTextSelection,
109285
- localStoragePersistenceKey,
109286
- enableCDN
109296
+ localStoragePersistenceKey
109287
109297
  }) => {
109288
109298
  const initialTableConfig = localStoragePersistenceKey && storage.local.getItem(localStoragePersistenceKey) || _initialTableConfig;
109289
109299
  const onServerSideDataRequestRef = React80.useRef(onServerSideDataRequest);
@@ -109295,28 +109305,14 @@ var DataTable = ({
109295
109305
  );
109296
109306
  const contextPanel = useContextPanel();
109297
109307
  const clientI18n = useI18nContext();
109298
- const isCDNEnabled = isCDNFeatureFlagEnabled(clientI18n, enableCDN);
109299
- const cdnTranslations = useRequestTranslations(
109300
- {
109301
- locale: clientI18n.locale,
109302
- type: "file",
109303
- absolute_file_path: (locale) => `core/packages/data-table/src/locales/${locale}.json`
109304
- },
109305
- { en: translations.en, pseudo: translations.pseudo },
109306
- {
109307
- oldTranslations: translations,
109308
- enableCDN: isCDNEnabled
109309
- }
109310
- );
109311
109308
  const internalI18n = useI18n({
109312
- locale: clientI18n.locale,
109309
+ ...clientI18n,
109313
109310
  translations: mergeDeepLeft(
109314
109311
  mergeDeepLeft(clientI18n.translations, {
109315
109312
  [clientI18n.locale]: translations2
109316
109313
  }),
109317
- cdnTranslations.translations
109318
- ),
109319
- enableCDN: isCDNEnabled
109314
+ translations
109315
+ )
109320
109316
  });
109321
109317
  const rowSelectionRef = React80.useRef({
109322
109318
  affectedRows: {},
@@ -112579,8 +112575,7 @@ var ClientSideDataTable = ({
112579
112575
  onTableConfigChange,
112580
112576
  translations: translations2 = {},
112581
112577
  enableCellTextSelection,
112582
- localStoragePersistenceKey,
112583
- enableCDN
112578
+ localStoragePersistenceKey
112584
112579
  }) => {
112585
112580
  return /* @__PURE__ */ React80.createElement(
112586
112581
  DataTable,
@@ -112598,8 +112593,7 @@ var ClientSideDataTable = ({
112598
112593
  translations: translations2,
112599
112594
  localStoragePersistenceKey,
112600
112595
  customBulkEditorFields,
112601
- enableCellTextSelection,
112602
- enableCDN
112596
+ enableCellTextSelection
112603
112597
  },
112604
112598
  children
112605
112599
  );
@@ -117060,8 +117054,7 @@ var ServerSideDataTable = ({
117060
117054
  enableCellTextSelection,
117061
117055
  showExpandCollapseAllToggle,
117062
117056
  translations: translations2 = {},
117063
- localStoragePersistenceKey,
117064
- enableCDN
117057
+ localStoragePersistenceKey
117065
117058
  }) => {
117066
117059
  return /* @__PURE__ */ React80.createElement(
117067
117060
  DataTable,
@@ -117080,8 +117073,7 @@ var ServerSideDataTable = ({
117080
117073
  translations: translations2,
117081
117074
  customBulkEditorFields,
117082
117075
  enableCellTextSelection,
117083
- localStoragePersistenceKey,
117084
- enableCDN
117076
+ localStoragePersistenceKey
117085
117077
  },
117086
117078
  children
117087
117079
  );
@@ -12,7 +12,6 @@ var labsFinancialsUtils = require('@procore/labs-financials-utils');
12
12
  var styled4 = require('styled-components');
13
13
  var format = require('@procore/labs-financials-utils/dist/format');
14
14
  var ulid$1 = require('ulid');
15
- var cdnTranslations = require('@procore/cdn-translations');
16
15
  var toastAlert = require('@procore/toast-alert');
17
16
  var ReactDOM = require('react-dom');
18
17
  var server = require('react-dom/server');
@@ -54906,6 +54905,7 @@ function ServerSideNumberFilterRenderer({
54906
54905
  }
54907
54906
  );
54908
54907
  const prevValueRef = React80.useRef([]);
54908
+ const internalClearRef = React80.useRef(false);
54909
54909
  const debounceTimerRef = React80.useRef(null);
54910
54910
  React80.useEffect(() => {
54911
54911
  return () => {
@@ -54915,9 +54915,10 @@ function ServerSideNumberFilterRenderer({
54915
54915
  };
54916
54916
  }, []);
54917
54917
  React80.useEffect(() => {
54918
- if (prevValueRef.current.length !== 0 && value.length === 0) {
54918
+ if (prevValueRef.current.length > 0 && value.length === 0 && !internalClearRef.current) {
54919
54919
  setLocalFilter({});
54920
54920
  }
54921
+ internalClearRef.current = false;
54921
54922
  prevValueRef.current = value;
54922
54923
  }, [value]);
54923
54924
  const transformToFilterArray = (filter) => {
@@ -55003,12 +55004,19 @@ function ServerSideNumberFilterRenderer({
55003
55004
  clearTimeout(debounceTimerRef.current);
55004
55005
  }
55005
55006
  debounceTimerRef.current = setTimeout(() => {
55006
- if (next.type === "inRange") {
55007
- if (next.value !== void 0 && next.valueTo !== void 0) {
55008
- updateFilter(next);
55009
- }
55010
- } else {
55007
+ const { type, value: value2, valueTo } = next;
55008
+ if (!type) {
55009
+ onChange?.([]);
55010
+ return;
55011
+ }
55012
+ const isInRange = type === "inRange";
55013
+ const hasValues = isInRange ? value2 !== void 0 && valueTo !== void 0 : value2 !== void 0;
55014
+ if (hasValues) {
55011
55015
  updateFilter(next);
55016
+ } else {
55017
+ internalClearRef.current = true;
55018
+ setLocalFilter(next);
55019
+ onChange?.([]);
55012
55020
  }
55013
55021
  }, DEBOUNCE_TIME);
55014
55022
  },
@@ -55141,6 +55149,17 @@ function ServerSideMultiNumberFilterRenderer({
55141
55149
  const [returnedFilter] = returnedFilterArray;
55142
55150
  const next = returnedFilter ? { ...returnedFilter, operator: firstFilter.operator } : { operator: firstFilter.operator };
55143
55151
  setFirstFilter(next);
55152
+ const isCleared = !returnedFilter || !isValidFilter(returnedFilter) && !returnedFilter.type;
55153
+ if (isCleared) {
55154
+ if (debounceTimerRef.current) {
55155
+ clearTimeout(debounceTimerRef.current);
55156
+ debounceTimerRef.current = null;
55157
+ }
55158
+ setFirstFilter({ operator: "and" });
55159
+ setSecondFilter({ operator: "and" });
55160
+ onChange?.([]);
55161
+ return;
55162
+ }
55144
55163
  if (debounceTimerRef.current)
55145
55164
  clearTimeout(debounceTimerRef.current);
55146
55165
  debounceTimerRef.current = setTimeout(() => {
@@ -55159,20 +55178,12 @@ function ServerSideMultiNumberFilterRenderer({
55159
55178
  };
55160
55179
  const fireOnChange = React80.useCallback(
55161
55180
  (f1, f2) => {
55162
- if (!f1.type) {
55163
- onChange?.([]);
55164
- setFirstFilter({ operator: "and" });
55165
- setSecondFilter({ operator: "and" });
55166
- return;
55167
- }
55168
55181
  const f1Valid = isValidFilter(f1);
55169
55182
  const f2Valid = isValidFilter(f2);
55170
55183
  const values2 = [f1Valid ? f1 : null, f2Valid ? f2 : null].filter(
55171
55184
  (value2) => value2 !== null
55172
55185
  );
55173
- if (values2.length) {
55174
- onChange?.(values2);
55175
- }
55186
+ onChange?.(values2);
55176
55187
  },
55177
55188
  [onChange]
55178
55189
  );
@@ -109115,8 +109126,7 @@ var DataTable = ({
109115
109126
  showExpandCollapseAllToggle,
109116
109127
  translations: translations2 = {},
109117
109128
  enableCellTextSelection,
109118
- localStoragePersistenceKey,
109119
- enableCDN
109129
+ localStoragePersistenceKey
109120
109130
  }) => {
109121
109131
  const initialTableConfig = localStoragePersistenceKey && webSdkStorage.storage.local.getItem(localStoragePersistenceKey) || _initialTableConfig;
109122
109132
  const onServerSideDataRequestRef = React80__default.default.useRef(onServerSideDataRequest);
@@ -109128,28 +109138,14 @@ var DataTable = ({
109128
109138
  );
109129
109139
  const contextPanel = useContextPanel();
109130
109140
  const clientI18n = coreReact.useI18nContext();
109131
- const isCDNEnabled = cdnTranslations.isCDNFeatureFlagEnabled(clientI18n, enableCDN);
109132
- const cdnTranslations$1 = cdnTranslations.useRequestTranslations(
109133
- {
109134
- locale: clientI18n.locale,
109135
- type: "file",
109136
- absolute_file_path: (locale) => `core/packages/data-table/src/locales/${locale}.json`
109137
- },
109138
- { en: translations.en, pseudo: translations.pseudo },
109139
- {
109140
- oldTranslations: translations,
109141
- enableCDN: isCDNEnabled
109142
- }
109143
- );
109144
109141
  const internalI18n = coreReact.useI18n({
109145
- locale: clientI18n.locale,
109142
+ ...clientI18n,
109146
109143
  translations: ramda.mergeDeepLeft(
109147
109144
  ramda.mergeDeepLeft(clientI18n.translations, {
109148
109145
  [clientI18n.locale]: translations2
109149
109146
  }),
109150
- cdnTranslations$1.translations
109151
- ),
109152
- enableCDN: isCDNEnabled
109147
+ translations
109148
+ )
109153
109149
  });
109154
109150
  const rowSelectionRef = React80__default.default.useRef({
109155
109151
  affectedRows: {},
@@ -112333,8 +112329,7 @@ var ClientSideDataTable = ({
112333
112329
  onTableConfigChange,
112334
112330
  translations: translations2 = {},
112335
112331
  enableCellTextSelection,
112336
- localStoragePersistenceKey,
112337
- enableCDN
112332
+ localStoragePersistenceKey
112338
112333
  }) => {
112339
112334
  return /* @__PURE__ */ React80__default.default.createElement(
112340
112335
  DataTable,
@@ -112352,8 +112347,7 @@ var ClientSideDataTable = ({
112352
112347
  translations: translations2,
112353
112348
  localStoragePersistenceKey,
112354
112349
  customBulkEditorFields,
112355
- enableCellTextSelection,
112356
- enableCDN
112350
+ enableCellTextSelection
112357
112351
  },
112358
112352
  children
112359
112353
  );
@@ -116813,8 +116807,7 @@ var ServerSideDataTable = ({
116813
116807
  enableCellTextSelection,
116814
116808
  showExpandCollapseAllToggle,
116815
116809
  translations: translations2 = {},
116816
- localStoragePersistenceKey,
116817
- enableCDN
116810
+ localStoragePersistenceKey
116818
116811
  }) => {
116819
116812
  return /* @__PURE__ */ React80__default.default.createElement(
116820
116813
  DataTable,
@@ -116833,8 +116826,7 @@ var ServerSideDataTable = ({
116833
116826
  translations: translations2,
116834
116827
  customBulkEditorFields,
116835
116828
  enableCellTextSelection,
116836
- localStoragePersistenceKey,
116837
- enableCDN
116829
+ localStoragePersistenceKey
116838
116830
  },
116839
116831
  children
116840
116832
  );
@@ -1148,7 +1148,6 @@ interface DataTableProps {
1148
1148
  showExpandCollapseAllToggle?: boolean;
1149
1149
  translations?: DataTableTranslations;
1150
1150
  enableCellTextSelection?: boolean;
1151
- enableCDN?: boolean;
1152
1151
  }
1153
1152
  interface ClientSideDataTableProps extends Omit<DataTableProps, 'onServerSideDataRequest' | 'showExpandCollapseAllToggle'> {
1154
1153
  }
@@ -1439,7 +1438,7 @@ interface BulkActionProps {
1439
1438
  style?: React__default.CSSProperties;
1440
1439
  }
1441
1440
 
1442
- 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) & {
1441
+ 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) & {
1443
1442
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1444
1443
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1445
1444
  ConfigPanelButton: React__default.FC<{}>;
@@ -1476,7 +1475,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1476
1475
 
1477
1476
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1478
1477
 
1479
- 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) & {
1478
+ 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) & {
1480
1479
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1481
1480
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1482
1481
  ConfigPanelButton: React__default.FC<{}>;
@@ -1148,7 +1148,6 @@ interface DataTableProps {
1148
1148
  showExpandCollapseAllToggle?: boolean;
1149
1149
  translations?: DataTableTranslations;
1150
1150
  enableCellTextSelection?: boolean;
1151
- enableCDN?: boolean;
1152
1151
  }
1153
1152
  interface ClientSideDataTableProps extends Omit<DataTableProps, 'onServerSideDataRequest' | 'showExpandCollapseAllToggle'> {
1154
1153
  }
@@ -1439,7 +1438,7 @@ interface BulkActionProps {
1439
1438
  style?: React__default.CSSProperties;
1440
1439
  }
1441
1440
 
1442
- 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) & {
1441
+ 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) & {
1443
1442
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1444
1443
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1445
1444
  ConfigPanelButton: React__default.FC<{}>;
@@ -1476,7 +1475,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1476
1475
 
1477
1476
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1478
1477
 
1479
- 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) & {
1478
+ 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) & {
1480
1479
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1481
1480
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1482
1481
  ConfigPanelButton: React__default.FC<{}>;
@@ -10,7 +10,6 @@ import { formatNumber, formatCurrency, formatPercentage } from '@procore/labs-fi
10
10
  import styled4, { css as css$1 } from 'styled-components';
11
11
  import { format } from '@procore/labs-financials-utils/dist/format';
12
12
  import { detectPrng, factory } from 'ulid';
13
- import { isCDNFeatureFlagEnabled, useRequestTranslations } from '@procore/cdn-translations';
14
13
  import { useToastAlertContext, ToastAlertProvider } from '@procore/toast-alert';
15
14
  import ReactDOM, { createPortal } from 'react-dom';
16
15
  import { renderToString, renderToStaticMarkup } from 'react-dom/server';
@@ -54893,6 +54892,7 @@ function ServerSideNumberFilterRenderer({
54893
54892
  }
54894
54893
  );
54895
54894
  const prevValueRef = useRef([]);
54895
+ const internalClearRef = useRef(false);
54896
54896
  const debounceTimerRef = useRef(null);
54897
54897
  useEffect(() => {
54898
54898
  return () => {
@@ -54902,9 +54902,10 @@ function ServerSideNumberFilterRenderer({
54902
54902
  };
54903
54903
  }, []);
54904
54904
  useEffect(() => {
54905
- if (prevValueRef.current.length !== 0 && value.length === 0) {
54905
+ if (prevValueRef.current.length > 0 && value.length === 0 && !internalClearRef.current) {
54906
54906
  setLocalFilter({});
54907
54907
  }
54908
+ internalClearRef.current = false;
54908
54909
  prevValueRef.current = value;
54909
54910
  }, [value]);
54910
54911
  const transformToFilterArray = (filter) => {
@@ -54990,12 +54991,19 @@ function ServerSideNumberFilterRenderer({
54990
54991
  clearTimeout(debounceTimerRef.current);
54991
54992
  }
54992
54993
  debounceTimerRef.current = setTimeout(() => {
54993
- if (next.type === "inRange") {
54994
- if (next.value !== void 0 && next.valueTo !== void 0) {
54995
- updateFilter(next);
54996
- }
54997
- } else {
54994
+ const { type, value: value2, valueTo } = next;
54995
+ if (!type) {
54996
+ onChange?.([]);
54997
+ return;
54998
+ }
54999
+ const isInRange = type === "inRange";
55000
+ const hasValues = isInRange ? value2 !== void 0 && valueTo !== void 0 : value2 !== void 0;
55001
+ if (hasValues) {
54998
55002
  updateFilter(next);
55003
+ } else {
55004
+ internalClearRef.current = true;
55005
+ setLocalFilter(next);
55006
+ onChange?.([]);
54999
55007
  }
55000
55008
  }, DEBOUNCE_TIME);
55001
55009
  },
@@ -55128,6 +55136,17 @@ function ServerSideMultiNumberFilterRenderer({
55128
55136
  const [returnedFilter] = returnedFilterArray;
55129
55137
  const next = returnedFilter ? { ...returnedFilter, operator: firstFilter.operator } : { operator: firstFilter.operator };
55130
55138
  setFirstFilter(next);
55139
+ const isCleared = !returnedFilter || !isValidFilter(returnedFilter) && !returnedFilter.type;
55140
+ if (isCleared) {
55141
+ if (debounceTimerRef.current) {
55142
+ clearTimeout(debounceTimerRef.current);
55143
+ debounceTimerRef.current = null;
55144
+ }
55145
+ setFirstFilter({ operator: "and" });
55146
+ setSecondFilter({ operator: "and" });
55147
+ onChange?.([]);
55148
+ return;
55149
+ }
55131
55150
  if (debounceTimerRef.current)
55132
55151
  clearTimeout(debounceTimerRef.current);
55133
55152
  debounceTimerRef.current = setTimeout(() => {
@@ -55146,20 +55165,12 @@ function ServerSideMultiNumberFilterRenderer({
55146
55165
  };
55147
55166
  const fireOnChange = useCallback(
55148
55167
  (f1, f2) => {
55149
- if (!f1.type) {
55150
- onChange?.([]);
55151
- setFirstFilter({ operator: "and" });
55152
- setSecondFilter({ operator: "and" });
55153
- return;
55154
- }
55155
55168
  const f1Valid = isValidFilter(f1);
55156
55169
  const f2Valid = isValidFilter(f2);
55157
55170
  const values2 = [f1Valid ? f1 : null, f2Valid ? f2 : null].filter(
55158
55171
  (value2) => value2 !== null
55159
55172
  );
55160
- if (values2.length) {
55161
- onChange?.(values2);
55162
- }
55173
+ onChange?.(values2);
55163
55174
  },
55164
55175
  [onChange]
55165
55176
  );
@@ -109102,8 +109113,7 @@ var DataTable = ({
109102
109113
  showExpandCollapseAllToggle,
109103
109114
  translations: translations2 = {},
109104
109115
  enableCellTextSelection,
109105
- localStoragePersistenceKey,
109106
- enableCDN
109116
+ localStoragePersistenceKey
109107
109117
  }) => {
109108
109118
  const initialTableConfig = localStoragePersistenceKey && storage.local.getItem(localStoragePersistenceKey) || _initialTableConfig;
109109
109119
  const onServerSideDataRequestRef = React80.useRef(onServerSideDataRequest);
@@ -109115,28 +109125,14 @@ var DataTable = ({
109115
109125
  );
109116
109126
  const contextPanel = useContextPanel();
109117
109127
  const clientI18n = useI18nContext();
109118
- const isCDNEnabled = isCDNFeatureFlagEnabled(clientI18n, enableCDN);
109119
- const cdnTranslations = useRequestTranslations(
109120
- {
109121
- locale: clientI18n.locale,
109122
- type: "file",
109123
- absolute_file_path: (locale) => `core/packages/data-table/src/locales/${locale}.json`
109124
- },
109125
- { en: translations.en, pseudo: translations.pseudo },
109126
- {
109127
- oldTranslations: translations,
109128
- enableCDN: isCDNEnabled
109129
- }
109130
- );
109131
109128
  const internalI18n = useI18n({
109132
- locale: clientI18n.locale,
109129
+ ...clientI18n,
109133
109130
  translations: mergeDeepLeft(
109134
109131
  mergeDeepLeft(clientI18n.translations, {
109135
109132
  [clientI18n.locale]: translations2
109136
109133
  }),
109137
- cdnTranslations.translations
109138
- ),
109139
- enableCDN: isCDNEnabled
109134
+ translations
109135
+ )
109140
109136
  });
109141
109137
  const rowSelectionRef = React80.useRef({
109142
109138
  affectedRows: {},
@@ -112320,8 +112316,7 @@ var ClientSideDataTable = ({
112320
112316
  onTableConfigChange,
112321
112317
  translations: translations2 = {},
112322
112318
  enableCellTextSelection,
112323
- localStoragePersistenceKey,
112324
- enableCDN
112319
+ localStoragePersistenceKey
112325
112320
  }) => {
112326
112321
  return /* @__PURE__ */ React80.createElement(
112327
112322
  DataTable,
@@ -112339,8 +112334,7 @@ var ClientSideDataTable = ({
112339
112334
  translations: translations2,
112340
112335
  localStoragePersistenceKey,
112341
112336
  customBulkEditorFields,
112342
- enableCellTextSelection,
112343
- enableCDN
112337
+ enableCellTextSelection
112344
112338
  },
112345
112339
  children
112346
112340
  );
@@ -116800,8 +116794,7 @@ var ServerSideDataTable = ({
116800
116794
  enableCellTextSelection,
116801
116795
  showExpandCollapseAllToggle,
116802
116796
  translations: translations2 = {},
116803
- localStoragePersistenceKey,
116804
- enableCDN
116797
+ localStoragePersistenceKey
116805
116798
  }) => {
116806
116799
  return /* @__PURE__ */ React80.createElement(
116807
116800
  DataTable,
@@ -116820,8 +116813,7 @@ var ServerSideDataTable = ({
116820
116813
  translations: translations2,
116821
116814
  customBulkEditorFields,
116822
116815
  enableCellTextSelection,
116823
- localStoragePersistenceKey,
116824
- enableCDN
116816
+ localStoragePersistenceKey
116825
116817
  },
116826
116818
  children
116827
116819
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procore/data-table",
3
- "version": "14.28.0-cdn.9",
3
+ "version": "14.29.0",
4
4
  "description": "Complex data grid built on top of ag-grid, with DST components and styles.",
5
5
  "type": "module",
6
6
  "main": "dist/legacy/index.cjs",
@@ -79,7 +79,6 @@
79
79
  "styled-components": ">= 5.1.1 < 6"
80
80
  },
81
81
  "dependencies": {
82
- "@procore/cdn-translations": "0.1.6",
83
82
  "@procore/error-pages": "0.2.1",
84
83
  "@procore/labs-datetime-select": "0.1.1",
85
84
  "@procore/labs-group-by-select": "4.0.0",
@@ -114,7 +113,7 @@
114
113
  "@procore/core-css": "10.17.0",
115
114
  "@procore/core-icons": "12.6.0",
116
115
  "@procore/core-prettier": "10.2.0",
117
- "@procore/core-react": "12.21.0-cdn.9",
116
+ "@procore/core-react": "12.21.0",
118
117
  "@procore/eslint-config": "10.0.0",
119
118
  "@procore/globalization-toolkit": "3.1.0",
120
119
  "@procore/labs-financials-utils": "4.3.1",