@procore/data-table 14.28.0-cdn.2 → 14.28.0-cdn.3

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.
@@ -1424,7 +1424,7 @@ ag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {
1424
1424
  animation-iteration-count: infinite;
1425
1425
  animation-name: ag-shake-left-to-right;
1426
1426
  }
1427
- @keyframes _ag-shake-left-to-right_1ajw9_369 {
1427
+ @keyframes _ag-shake-left-to-right_if78k_369 {
1428
1428
  from {
1429
1429
  padding-left: 6px;
1430
1430
  padding-right: 2px;
@@ -5425,7 +5425,7 @@ input[class^=ag-][type=button]:focus, button[class^=ag-]:focus {
5425
5425
  animation-iteration-count: infinite;
5426
5426
  animation-timing-function: linear;
5427
5427
  }
5428
- @keyframes _spin_1ajw9_1 {
5428
+ @keyframes _spin_if78k_1 {
5429
5429
  from {
5430
5430
  transform: rotate(0deg);
5431
5431
  }
@@ -7680,6 +7680,9 @@ input[class^=ag-][type=range]:disabled {
7680
7680
  .ag-theme-alpine.ag-theme-alpine .ag-icon-tree-open::before {
7681
7681
  content: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8px' height='4px'><path d='M0 0H8L4 4L0 0Z' fill='%232066DF'/></svg>");
7682
7682
  }
7683
+ .ag-theme-alpine.ag-theme-alpine .ag-header-cell-resize {
7684
+ right: -5px;
7685
+ }
7683
7686
  .ag-theme-alpine.ag-theme-alpine .ag-header-cell-resize::after {
7684
7687
  width: 1px;
7685
7688
  height: 100%;
@@ -7933,7 +7936,7 @@ input[class^=ag-][type=range]:disabled {
7933
7936
  padding-left: 16px;
7934
7937
  }
7935
7938
 
7936
- div._contextPanel_1ajw9_7156 {
7939
+ div._contextPanel_if78k_7159 {
7937
7940
  width: 400px;
7938
7941
  transition: all ease 500ms;
7939
7942
  flex: 0 0 auto;
@@ -7942,7 +7945,7 @@ div._contextPanel_1ajw9_7156 {
7942
7945
  border: 1px solid #d6dadc;
7943
7946
  display: flex;
7944
7947
  }
7945
- div._contextPanel--hidden_1ajw9_7165 {
7948
+ div._contextPanel--hidden_if78k_7168 {
7946
7949
  border: none;
7947
7950
  overflow: hidden;
7948
7951
  padding: 0px;
@@ -7950,50 +7953,50 @@ div._contextPanel--hidden_1ajw9_7165 {
7950
7953
  width: 0px;
7951
7954
  }
7952
7955
 
7953
- ._contextPanelWrapper_1ajw9_7173 {
7956
+ ._contextPanelWrapper_if78k_7176 {
7954
7957
  position: relative;
7955
7958
  flex-grow: 1;
7956
7959
  }
7957
7960
 
7958
- ._contextPanelBody_1ajw9_7178 {
7961
+ ._contextPanelBody_if78k_7181 {
7959
7962
  width: clamp(380px, 400px, 100%);
7960
7963
  }
7961
7964
 
7962
- ._contextPanel-stickyHeader_1ajw9_7182 {
7965
+ ._contextPanel-stickyHeader_if78k_7185 {
7963
7966
  background-color: #ffffff;
7964
7967
  position: sticky;
7965
7968
  top: 0;
7966
7969
  z-index: 5;
7967
7970
  }
7968
7971
 
7969
- ._filters-list_1ajw9_7189 {
7972
+ ._filters-list_if78k_7192 {
7970
7973
  padding: 0;
7971
7974
  margin: 0;
7972
7975
  }
7973
- ._filters-list_1ajw9_7189 ol {
7976
+ ._filters-list_if78k_7192 ol {
7974
7977
  padding: 0;
7975
7978
  margin: 0;
7976
7979
  }
7977
7980
 
7978
- ._col-drag-column-icon_1ajw9_7198 {
7981
+ ._col-drag-column-icon_if78k_7201 {
7979
7982
  color: #6a767c;
7980
7983
  }
7981
7984
 
7982
- ._tabular-nums_1ajw9_7202 {
7985
+ ._tabular-nums_if78k_7205 {
7983
7986
  font-variant-numeric: tabular-nums;
7984
7987
  }`;
7985
7988
  document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css));
7986
7989
  var styles_default = {
7987
- "contextPanel": "_contextPanel_1ajw9_7156",
7988
- "contextPanel--hidden": "_contextPanel--hidden_1ajw9_7165",
7989
- "contextPanelWrapper": "_contextPanelWrapper_1ajw9_7173",
7990
- "contextPanelBody": "_contextPanelBody_1ajw9_7178",
7991
- "contextPanel-stickyHeader": "_contextPanel-stickyHeader_1ajw9_7182",
7992
- "filters-list": "_filters-list_1ajw9_7189",
7993
- "col-drag-column-icon": "_col-drag-column-icon_1ajw9_7198",
7994
- "tabular-nums": "_tabular-nums_1ajw9_7202",
7995
- "ag-shake-left-to-right": "_ag-shake-left-to-right_1ajw9_369",
7996
- "spin": "_spin_1ajw9_1"
7990
+ "contextPanel": "_contextPanel_if78k_7159",
7991
+ "contextPanel--hidden": "_contextPanel--hidden_if78k_7168",
7992
+ "contextPanelWrapper": "_contextPanelWrapper_if78k_7176",
7993
+ "contextPanelBody": "_contextPanelBody_if78k_7181",
7994
+ "contextPanel-stickyHeader": "_contextPanel-stickyHeader_if78k_7185",
7995
+ "filters-list": "_filters-list_if78k_7192",
7996
+ "col-drag-column-icon": "_col-drag-column-icon_if78k_7201",
7997
+ "tabular-nums": "_tabular-nums_if78k_7205",
7998
+ "ag-shake-left-to-right": "_ag-shake-left-to-right_if78k_369",
7999
+ "spin": "_spin_if78k_1"
7997
8000
  };
7998
8001
 
7999
8002
  // src/utils/getCellValueTypographyProps.ts
@@ -54371,6 +54374,9 @@ function useFilterState({
54371
54374
  },
54372
54375
  [gridApi]
54373
54376
  );
54377
+ const filterableColumns = React80__default.default.useMemo(() => {
54378
+ return columnDefinitions.filter((colDef) => !!colDef.filterRenderer).sort(sortColumnDefinitionsByFilterIndex);
54379
+ }, [columnDefinitions]);
54374
54380
  const getFieldFilters = React80__default.default.useCallback(() => {
54375
54381
  return filterableColumns.map((column2) => {
54376
54382
  const filterInstance = getFieldFilter(column2.field);
@@ -54384,10 +54390,7 @@ function useFilterState({
54384
54390
  ...instanceOptions
54385
54391
  };
54386
54392
  }).filter((filter) => filter.instance !== void 0);
54387
- }, [getFieldFilter, gridApi]);
54388
- const filterableColumns = React80__default.default.useMemo(() => {
54389
- return columnDefinitions.filter((colDef) => !!colDef.filterRenderer).sort(sortColumnDefinitionsByFilterIndex);
54390
- }, [columnDefinitions]);
54393
+ }, [getFieldFilter, gridApi, filterableColumns]);
54391
54394
  const filterEventFunction = function filterEventFunction2() {
54392
54395
  if (listenersEnabled.current) {
54393
54396
  const allFilters = getFieldFilters();
@@ -54503,6 +54506,10 @@ function ClientSideMultiSelectFilterRenderer({
54503
54506
  value = [],
54504
54507
  ...props
54505
54508
  }) {
54509
+ const filterOptions = React80__default.default.useMemo(
54510
+ () => (options ?? []).map((option) => option ?? ""),
54511
+ [options]
54512
+ );
54506
54513
  return /* @__PURE__ */ React80__default.default.createElement(
54507
54514
  coreReact.MultiSelect,
54508
54515
  {
@@ -54518,8 +54525,8 @@ function ClientSideMultiSelectFilterRenderer({
54518
54525
  return getLabel((_a = columnDefinition.filterProps) == null ? void 0 : _a.getLabel, option);
54519
54526
  },
54520
54527
  onChange,
54521
- options,
54522
- value: ramda.intersection(value || [], options)
54528
+ options: filterOptions,
54529
+ value: ramda.intersection(value || [], filterOptions)
54523
54530
  }
54524
54531
  );
54525
54532
  }
@@ -57255,7 +57262,7 @@ var SortComponent = (props) => {
57255
57262
  return null;
57256
57263
  };
57257
57264
  var isRowSelected = (rowNode) => {
57258
- return Boolean(rowNode.selectable ? rowNode.isSelected() : true);
57265
+ return Boolean(rowNode.selectable ? rowNode.isSelected() : false);
57259
57266
  };
57260
57267
  var GenericHeaderRenderer = (props) => {
57261
57268
  var _a;
@@ -57557,7 +57564,10 @@ var GenericHeaderRenderer = (props) => {
57557
57564
  );
57558
57565
  const isPagination = Boolean(props.api.paginationGetRowCount());
57559
57566
  const currentRows = getCurrentRows(props.api, isPagination);
57560
- const isAllSelected = isPagination ? currentRows.length && currentRows.every(isRowSelected) : isSelectionStateSelectAll;
57567
+ const selectableRows = currentRows.filter(
57568
+ (rowNode) => rowNode.selectable
57569
+ );
57570
+ const isAllSelected = isPagination ? selectableRows.length > 0 && selectableRows.every(isRowSelected) : isSelectionStateSelectAll;
57561
57571
  const isPartialSelected = isPagination ? !isAllSelected && currentRows.some(isRowSelected) : isSelectionStatePartialSelected;
57562
57572
  if (isAllSelected) {
57563
57573
  setSelectAll("all" /* All */);
@@ -57806,6 +57816,11 @@ function getGroupNodes(params) {
57806
57816
  function CustomLoader(params) {
57807
57817
  const I18n = coreReact.useI18nContext();
57808
57818
  const groupNodes = getGroupNodes(params);
57819
+ const internalTableContext = useInternalTableContext();
57820
+ const hasDuplicateRowIds = internalTableContext.hasDuplicateRowIds ?? false;
57821
+ if (hasDuplicateRowIds) {
57822
+ return null;
57823
+ }
57809
57824
  if (params.node === groupNodes.firstLoading) {
57810
57825
  return /* @__PURE__ */ React80__default.default.createElement(coreReact.Flex, { style: { paddingLeft: "16px" } }, /* @__PURE__ */ React80__default.default.createElement(
57811
57826
  LevelIndents,
@@ -58513,7 +58528,8 @@ var InternalTableContext = React80__default.default.createContext({
58513
58528
  },
58514
58529
  totalRowCount: 0,
58515
58530
  setTotalRowCount: () => {
58516
- }
58531
+ },
58532
+ hasDuplicateRowIds: false
58517
58533
  });
58518
58534
  var useInternalTableContext = () => React80__default.default.useContext(InternalTableContext);
58519
58535
  var prng = ulid$1.detectPrng(true);
@@ -105759,6 +105775,9 @@ var de_DE_default = {
105759
105775
  selectCell: {
105760
105776
  placeholder: "{{label}} ausw\xE4hlen"
105761
105777
  },
105778
+ multiSelectCell: {
105779
+ placeholder: "Werte ausw\xE4hlen"
105780
+ },
105762
105781
  booleanCell: {
105763
105782
  options: {
105764
105783
  yes: "Ja",
@@ -105875,7 +105894,7 @@ var en_AU_default = {
105875
105894
  autoSizeAllColumns: "Autosize all columns",
105876
105895
  hideColumn: "Hide column",
105877
105896
  resetColumns: "Reset columns",
105878
- unGroupBy: "Un-Group by {{label}}",
105897
+ unGroupBy: "Un-group by {{label}}",
105879
105898
  groupBy: "Group by {{label}}"
105880
105899
  },
105881
105900
  grandTotals: "Grand totals",
@@ -105922,6 +105941,9 @@ var en_AU_default = {
105922
105941
  selectCell: {
105923
105942
  placeholder: "Select {{label}}"
105924
105943
  },
105944
+ multiSelectCell: {
105945
+ placeholder: "Select values"
105946
+ },
105925
105947
  booleanCell: {
105926
105948
  options: {
105927
105949
  yes: "Yes",
@@ -106038,7 +106060,7 @@ var en_CA_default = {
106038
106060
  autoSizeAllColumns: "Autosize all columns",
106039
106061
  hideColumn: "Hide column",
106040
106062
  resetColumns: "Reset columns",
106041
- unGroupBy: "Un-Group by {{label}}",
106063
+ unGroupBy: "Un-group by {{label}}",
106042
106064
  groupBy: "Group by {{label}}"
106043
106065
  },
106044
106066
  grandTotals: "Grand totals",
@@ -106085,6 +106107,9 @@ var en_CA_default = {
106085
106107
  selectCell: {
106086
106108
  placeholder: "Select {{label}}"
106087
106109
  },
106110
+ multiSelectCell: {
106111
+ placeholder: "Select values"
106112
+ },
106088
106113
  booleanCell: {
106089
106114
  options: {
106090
106115
  yes: "Yes",
@@ -106248,6 +106273,9 @@ var en_GB_default = {
106248
106273
  selectCell: {
106249
106274
  placeholder: "Select {{label}}"
106250
106275
  },
106276
+ multiSelectCell: {
106277
+ placeholder: "Select values"
106278
+ },
106251
106279
  booleanCell: {
106252
106280
  options: {
106253
106281
  yes: "Yes",
@@ -106577,6 +106605,9 @@ var es_ES_default = {
106577
106605
  selectCell: {
106578
106606
  placeholder: "Seleccionar {{label}}"
106579
106607
  },
106608
+ multiSelectCell: {
106609
+ placeholder: "Seleccionar valores"
106610
+ },
106580
106611
  booleanCell: {
106581
106612
  options: {
106582
106613
  yes: "S\xED",
@@ -106613,8 +106644,8 @@ var es_default = {
106613
106644
  description: "Una vez que su equipo cree \xEDtems, podr\xE1 acceder a ellos aqu\xED. ",
106614
106645
  title: "No hay \xEDtems para mostrar en este momento",
106615
106646
  itemsTitle: "No hay %{itemsLabel} para mostrar en este momento",
106616
- tooltip: "El bot\xF3n %{featureName} se habilitar\xE1 una vez que agregue informaci\xF3n al %{tableName}",
106617
- searchTooltip: "La b\xFAsqueda se habilitar\xE1 una vez que agregue informaci\xF3n a %{tableName}",
106647
+ tooltip: "El bot\xF3n %{featureName} se habilitar\xE1 una vez que agregue informaci\xF3n a la %{tableName}.",
106648
+ searchTooltip: "La b\xFAsqueda se habilitar\xE1 una vez que agregue informaci\xF3n a la %{tableName}.",
106618
106649
  featureFilter: "Filtro",
106619
106650
  featureQuickFilter: "Filtro r\xE1pido",
106620
106651
  featureGroupBy: "Agrupar por",
@@ -106627,7 +106658,7 @@ var es_default = {
106627
106658
  bulkEdit: "Edici\xF3n masiva",
106628
106659
  cancel: "Cancelar",
106629
106660
  editValues: "Editar valores",
106630
- error: "Lo sentimos, no se pudieron actualizar los \xEDtems. Vuelva a intentarlo.",
106661
+ error: "Lo sentimos, no se pudieron actualizar los \xEDtems. Int\xE9ntelo de nuevo.",
106631
106662
  placeholderForField: "Ingrese %{fieldName}",
106632
106663
  selection: "%{count} %{number} seleccionado",
106633
106664
  success: "Los \xEDtems se actualizaron correctamente.",
@@ -106673,14 +106704,14 @@ var es_default = {
106673
106704
  }
106674
106705
  },
106675
106706
  loading: {
106676
- initial: "Cargando informaci\xF3n.",
106707
+ initial: "Cargando informaci\xF3n...",
106677
106708
  secondary: "Cargando informaci\xF3n. Gracias por su paciencia."
106678
106709
  },
106679
106710
  menuOptions: {
106680
106711
  sortMenuItem: {
106681
106712
  label: "Ordenar por esta columna",
106682
- sortAscItem: "Ordenar columna ascendente",
106683
- sortDescItem: "Ordenar columna descendente",
106713
+ sortAscItem: "Ordenar columna - Ascendente",
106714
+ sortDescItem: "Ordenar columna - Descendente",
106684
106715
  sortResetItem: "Columna no ordenada"
106685
106716
  },
106686
106717
  expandAllGroups: "Expandir todos los grupos",
@@ -106740,6 +106771,9 @@ var es_default = {
106740
106771
  selectCell: {
106741
106772
  placeholder: "Seleccionar {{label}}"
106742
106773
  },
106774
+ multiSelectCell: {
106775
+ placeholder: "Seleccionar valores"
106776
+ },
106743
106777
  booleanCell: {
106744
106778
  options: {
106745
106779
  yes: "S\xED",
@@ -106790,7 +106824,7 @@ var fr_CA_default = {
106790
106824
  bulkEdit: "Modifier en bloc",
106791
106825
  cancel: "Annuler",
106792
106826
  editValues: "Modifier les valeurs",
106793
- error: "D\xE9sol\xE9, les items n'ont pas pu \xEAtre mis \xE0 jour. R\xE9essayer.",
106827
+ error: "D\xE9sol\xE9, les items n'ont pas pu \xEAtre mis \xE0 jour. Veuillez r\xE9essayer.",
106794
106828
  placeholderForField: "Entrez %{fieldName}",
106795
106829
  selection: "%{count} %{number} s\xE9lectionn\xE9",
106796
106830
  success: "Les items ont \xE9t\xE9 mis \xE0 jour avec succ\xE8s.",
@@ -106903,6 +106937,9 @@ var fr_CA_default = {
106903
106937
  selectCell: {
106904
106938
  placeholder: "S\xE9lectionner {{label}}"
106905
106939
  },
106940
+ multiSelectCell: {
106941
+ placeholder: "S\xE9lectionner les valeurs"
106942
+ },
106906
106943
  booleanCell: {
106907
106944
  options: {
106908
106945
  yes: "Oui",
@@ -106953,7 +106990,7 @@ var fr_FR_default = {
106953
106990
  bulkEdit: "Modifier en masse",
106954
106991
  cancel: "Annuler",
106955
106992
  editValues: "Modifier les valeurs",
106956
- error: "D\xE9sol\xE9, les \xE9l\xE9ments n'ont pas pu \xEAtre mis \xE0 jour. R\xE9essayez.",
106993
+ error: "D\xE9sol\xE9, les \xE9l\xE9ments n'ont pas pu \xEAtre mis \xE0 jour. Veuillez r\xE9essayer.",
106957
106994
  placeholderForField: "Saisissez %{fieldName}",
106958
106995
  selection: "%{count} %{number} s\xE9lectionn\xE9",
106959
106996
  success: "Les \xE9l\xE9ments ont bien \xE9t\xE9 mis \xE0 jour.",
@@ -107066,6 +107103,9 @@ var fr_FR_default = {
107066
107103
  selectCell: {
107067
107104
  placeholder: "S\xE9lectionner {{label}}"
107068
107105
  },
107106
+ multiSelectCell: {
107107
+ placeholder: "S\xE9lectionner les valeurs"
107108
+ },
107069
107109
  booleanCell: {
107070
107110
  options: {
107071
107111
  yes: "Oui",
@@ -107229,6 +107269,9 @@ var is_IS_default = {
107229
107269
  selectCell: {
107230
107270
  placeholder: "Veldu {{label}}"
107231
107271
  },
107272
+ multiSelectCell: {
107273
+ placeholder: "Veldu Gildi"
107274
+ },
107232
107275
  booleanCell: {
107233
107276
  options: {
107234
107277
  yes: "J\xE1",
@@ -107392,6 +107435,9 @@ var ja_JP_default = {
107392
107435
  selectCell: {
107393
107436
  placeholder: "{{label}}\u3092\u9078\u629E\u3059\u308B"
107394
107437
  },
107438
+ multiSelectCell: {
107439
+ placeholder: "\u5024\u3092\u9078\u629E"
107440
+ },
107395
107441
  booleanCell: {
107396
107442
  options: {
107397
107443
  yes: "\u306F\u3044",
@@ -107555,6 +107601,9 @@ var pl_PL_default = {
107555
107601
  selectCell: {
107556
107602
  placeholder: "Wybierz {{label}}"
107557
107603
  },
107604
+ multiSelectCell: {
107605
+ placeholder: "Wybierz warto\u015Bci"
107606
+ },
107558
107607
  booleanCell: {
107559
107608
  options: {
107560
107609
  yes: "Tak",
@@ -107771,7 +107820,7 @@ var pt_BR_default = {
107771
107820
  bulkEdit: "Edi\xE7\xE3o em Massa",
107772
107821
  cancel: "Cancelar",
107773
107822
  editValues: "Editar Valores",
107774
- error: "Lamentamos, mas n\xE3o foi poss\xEDvel atualizar os itens. Tente novamente.",
107823
+ error: "Sentimos muito, mas n\xE3o foi poss\xEDvel atualizar os itens. Tente novamente.",
107775
107824
  placeholderForField: "Digite %{fieldName}",
107776
107825
  selection: "%{count} %{number} selecionado",
107777
107826
  success: "Os itens foram atualizados com sucesso.",
@@ -107884,6 +107933,9 @@ var pt_BR_default = {
107884
107933
  selectCell: {
107885
107934
  placeholder: "Selecionar {{label}}"
107886
107935
  },
107936
+ multiSelectCell: {
107937
+ placeholder: "Selecionar Valores"
107938
+ },
107887
107939
  booleanCell: {
107888
107940
  options: {
107889
107941
  yes: "Sim",
@@ -107934,7 +107986,7 @@ var th_TH_default = {
107934
107986
  bulkEdit: "\u0E01\u0E32\u0E23\u0E41\u0E01\u0E49\u0E44\u0E02\u0E41\u0E1A\u0E1A\u0E01\u0E25\u0E38\u0E48\u0E21",
107935
107987
  cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
107936
107988
  editValues: "\u0E41\u0E01\u0E49\u0E44\u0E02\u0E04\u0E48\u0E32",
107937
- error: "\u0E02\u0E2D\u0E2D\u0E20\u0E31\u0E22 \u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E44\u0E14\u0E49 \u0E42\u0E1B\u0E23\u0E14\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07",
107989
+ error: "\u0E02\u0E2D\u0E2D\u0E20\u0E31\u0E22 \u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E44\u0E14\u0E49 \u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07.",
107938
107990
  placeholderForField: "\u0E1B\u0E49\u0E2D\u0E19 %{fieldName}",
107939
107991
  selection: "%{count} %{number} \u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01",
107940
107992
  success: "\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08\u0E41\u0E25\u0E49\u0E27",
@@ -108047,6 +108099,9 @@ var th_TH_default = {
108047
108099
  selectCell: {
108048
108100
  placeholder: "\u0E40\u0E25\u0E37\u0E2D\u0E01 {{label}}"
108049
108101
  },
108102
+ multiSelectCell: {
108103
+ placeholder: "\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E04\u0E48\u0E32"
108104
+ },
108050
108105
  booleanCell: {
108051
108106
  options: {
108052
108107
  yes: "\u0E43\u0E0A\u0E48",
@@ -108210,6 +108265,9 @@ var zh_SG_default = {
108210
108265
  selectCell: {
108211
108266
  placeholder: "\u9009\u62E9{{label}}"
108212
108267
  },
108268
+ multiSelectCell: {
108269
+ placeholder: "\u9009\u62E9\u503C"
108270
+ },
108213
108271
  booleanCell: {
108214
108272
  options: {
108215
108273
  yes: "\u662F",
@@ -109317,6 +109375,7 @@ var DataTable = ({
109317
109375
  );
109318
109376
  const [gridApi, setGridApi] = React80__default.default.useState();
109319
109377
  const [columnApi, setColumnApi] = React80__default.default.useState();
109378
+ const [hasDuplicateRowIds, setHasDuplicateRowIds] = React80__default.default.useState(false);
109320
109379
  const searchStorage = useSearchStorage();
109321
109380
  const filterState = useFilterState({
109322
109381
  columnDefinitions: columns,
@@ -109394,7 +109453,9 @@ var DataTable = ({
109394
109453
  gridApi == null ? void 0 : gridApi.hideOverlay.bind(gridApi),
109395
109454
  filterStorage.filtersState,
109396
109455
  searchStorage.searchValue,
109397
- setTotalRowCount
109456
+ setTotalRowCount,
109457
+ setHasDuplicateRowIds,
109458
+ getRowId
109398
109459
  )
109399
109460
  );
109400
109461
  gridApi == null ? void 0 : gridApi.paginationGoToPage(0);
@@ -109489,7 +109550,8 @@ var DataTable = ({
109489
109550
  tableRef,
109490
109551
  totalRowCount,
109491
109552
  setTotalRowCount,
109492
- updateServerSideDataSource
109553
+ updateServerSideDataSource,
109554
+ hasDuplicateRowIds
109493
109555
  }
109494
109556
  },
109495
109557
  children
@@ -109500,12 +109562,34 @@ var rowDragMoveEvent;
109500
109562
  var rowDragEndEvent;
109501
109563
  function getServerSideDatasource(onServerSideDataRequestCallbackRef, onEmptyResponseCallback = () => {
109502
109564
  }, onNonEmptyResponseCallback = () => {
109503
- }, filters, search, setTotalRowCount) {
109565
+ }, filters, search, setTotalRowCount, setHasDuplicateRowIds, getRowId) {
109504
109566
  return {
109505
109567
  getRows: async (params) => {
109506
109568
  if (onServerSideDataRequestCallbackRef.current) {
109507
109569
  const { request, success, fail } = params;
109508
109570
  const onSuccess = (loadSuccessParams) => {
109571
+ const { rowData } = loadSuccessParams;
109572
+ if (rowData && Array.isArray(rowData) && getRowId) {
109573
+ const uniqueRowIds = /* @__PURE__ */ new Set();
109574
+ for (const row2 of rowData) {
109575
+ const id = getRowId({
109576
+ data: row2,
109577
+ level: 0,
109578
+ api: {},
109579
+ columnApi: {},
109580
+ context: {}
109581
+ });
109582
+ if (uniqueRowIds.has(id)) {
109583
+ setHasDuplicateRowIds(true);
109584
+ logger.error(
109585
+ "Duplicate row IDs detected in rowData. Check getRowId() to ensure it returns unique IDs."
109586
+ );
109587
+ fail();
109588
+ return;
109589
+ }
109590
+ uniqueRowIds.add(id);
109591
+ }
109592
+ }
109509
109593
  if (!loadSuccessParams.rowCount && request.groupKeys.length === 0) {
109510
109594
  onEmptyResponseCallback();
109511
109595
  } else {
@@ -110523,13 +110607,7 @@ function ClientSideFilterInner(props) {
110523
110607
  var _a, _b;
110524
110608
  const { Component: Component4, columnDefinition, onChange, options, value } = props;
110525
110609
  const filterHeading = ((_b = (_a = columnDefinition.filterProps) == null ? void 0 : _a.getFilterHeadingText) == null ? void 0 : _b.call(_a, columnDefinition)) ?? columnDefinition.headerName;
110526
- const filterOptions = React80__default.default.useMemo(
110527
- () => {
110528
- var _a2;
110529
- return (_a2 = options ?? []) == null ? void 0 : _a2.filter((option) => !!option);
110530
- },
110531
- [options]
110532
- );
110610
+ const filterOptions = React80__default.default.useMemo(() => options ?? [], [options]);
110533
110611
  return /* @__PURE__ */ React80__default.default.createElement(coreReact.Box, { as: "li", display: "block", paddingBottom: "xl", style: { width: "100%" } }, filterHeading ? /* @__PURE__ */ React80__default.default.createElement(
110534
110612
  coreReact.Label,
110535
110613
  {
@@ -1378,6 +1378,7 @@ interface InternalTableContext {
1378
1378
  getColumnDefinition: (field: string) => ColumnDefinition | undefined;
1379
1379
  totalRowCount: number;
1380
1380
  setTotalRowCount: React__default.Dispatch<React__default.SetStateAction<number>>;
1381
+ hasDuplicateRowIds: boolean;
1381
1382
  setSelectedGroupIndex?: React__default.Dispatch<React__default.SetStateAction<string | null>>;
1382
1383
  }
1383
1384
  declare const InternalTableContext: React__default.Context<InternalTableContext>;
@@ -1378,6 +1378,7 @@ interface InternalTableContext {
1378
1378
  getColumnDefinition: (field: string) => ColumnDefinition | undefined;
1379
1379
  totalRowCount: number;
1380
1380
  setTotalRowCount: React__default.Dispatch<React__default.SetStateAction<number>>;
1381
+ hasDuplicateRowIds: boolean;
1381
1382
  setSelectedGroupIndex?: React__default.Dispatch<React__default.SetStateAction<string | null>>;
1382
1383
  }
1383
1384
  declare const InternalTableContext: React__default.Context<InternalTableContext>;