@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.
@@ -1422,7 +1422,7 @@ ag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {
1422
1422
  animation-iteration-count: infinite;
1423
1423
  animation-name: ag-shake-left-to-right;
1424
1424
  }
1425
- @keyframes _ag-shake-left-to-right_1ajw9_369 {
1425
+ @keyframes _ag-shake-left-to-right_if78k_369 {
1426
1426
  from {
1427
1427
  padding-left: 6px;
1428
1428
  padding-right: 2px;
@@ -5423,7 +5423,7 @@ input[class^=ag-][type=button]:focus, button[class^=ag-]:focus {
5423
5423
  animation-iteration-count: infinite;
5424
5424
  animation-timing-function: linear;
5425
5425
  }
5426
- @keyframes _spin_1ajw9_1 {
5426
+ @keyframes _spin_if78k_1 {
5427
5427
  from {
5428
5428
  transform: rotate(0deg);
5429
5429
  }
@@ -7678,6 +7678,9 @@ input[class^=ag-][type=range]:disabled {
7678
7678
  .ag-theme-alpine.ag-theme-alpine .ag-icon-tree-open::before {
7679
7679
  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>");
7680
7680
  }
7681
+ .ag-theme-alpine.ag-theme-alpine .ag-header-cell-resize {
7682
+ right: -5px;
7683
+ }
7681
7684
  .ag-theme-alpine.ag-theme-alpine .ag-header-cell-resize::after {
7682
7685
  width: 1px;
7683
7686
  height: 100%;
@@ -7931,7 +7934,7 @@ input[class^=ag-][type=range]:disabled {
7931
7934
  padding-left: 16px;
7932
7935
  }
7933
7936
 
7934
- div._contextPanel_1ajw9_7156 {
7937
+ div._contextPanel_if78k_7159 {
7935
7938
  width: 400px;
7936
7939
  transition: all ease 500ms;
7937
7940
  flex: 0 0 auto;
@@ -7940,7 +7943,7 @@ div._contextPanel_1ajw9_7156 {
7940
7943
  border: 1px solid #d6dadc;
7941
7944
  display: flex;
7942
7945
  }
7943
- div._contextPanel--hidden_1ajw9_7165 {
7946
+ div._contextPanel--hidden_if78k_7168 {
7944
7947
  border: none;
7945
7948
  overflow: hidden;
7946
7949
  padding: 0px;
@@ -7948,50 +7951,50 @@ div._contextPanel--hidden_1ajw9_7165 {
7948
7951
  width: 0px;
7949
7952
  }
7950
7953
 
7951
- ._contextPanelWrapper_1ajw9_7173 {
7954
+ ._contextPanelWrapper_if78k_7176 {
7952
7955
  position: relative;
7953
7956
  flex-grow: 1;
7954
7957
  }
7955
7958
 
7956
- ._contextPanelBody_1ajw9_7178 {
7959
+ ._contextPanelBody_if78k_7181 {
7957
7960
  width: clamp(380px, 400px, 100%);
7958
7961
  }
7959
7962
 
7960
- ._contextPanel-stickyHeader_1ajw9_7182 {
7963
+ ._contextPanel-stickyHeader_if78k_7185 {
7961
7964
  background-color: #ffffff;
7962
7965
  position: sticky;
7963
7966
  top: 0;
7964
7967
  z-index: 5;
7965
7968
  }
7966
7969
 
7967
- ._filters-list_1ajw9_7189 {
7970
+ ._filters-list_if78k_7192 {
7968
7971
  padding: 0;
7969
7972
  margin: 0;
7970
7973
  }
7971
- ._filters-list_1ajw9_7189 ol {
7974
+ ._filters-list_if78k_7192 ol {
7972
7975
  padding: 0;
7973
7976
  margin: 0;
7974
7977
  }
7975
7978
 
7976
- ._col-drag-column-icon_1ajw9_7198 {
7979
+ ._col-drag-column-icon_if78k_7201 {
7977
7980
  color: #6a767c;
7978
7981
  }
7979
7982
 
7980
- ._tabular-nums_1ajw9_7202 {
7983
+ ._tabular-nums_if78k_7205 {
7981
7984
  font-variant-numeric: tabular-nums;
7982
7985
  }`;
7983
7986
  document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css));
7984
7987
  var styles_default = {
7985
- "contextPanel": "_contextPanel_1ajw9_7156",
7986
- "contextPanel--hidden": "_contextPanel--hidden_1ajw9_7165",
7987
- "contextPanelWrapper": "_contextPanelWrapper_1ajw9_7173",
7988
- "contextPanelBody": "_contextPanelBody_1ajw9_7178",
7989
- "contextPanel-stickyHeader": "_contextPanel-stickyHeader_1ajw9_7182",
7990
- "filters-list": "_filters-list_1ajw9_7189",
7991
- "col-drag-column-icon": "_col-drag-column-icon_1ajw9_7198",
7992
- "tabular-nums": "_tabular-nums_1ajw9_7202",
7993
- "ag-shake-left-to-right": "_ag-shake-left-to-right_1ajw9_369",
7994
- "spin": "_spin_1ajw9_1"
7988
+ "contextPanel": "_contextPanel_if78k_7159",
7989
+ "contextPanel--hidden": "_contextPanel--hidden_if78k_7168",
7990
+ "contextPanelWrapper": "_contextPanelWrapper_if78k_7176",
7991
+ "contextPanelBody": "_contextPanelBody_if78k_7181",
7992
+ "contextPanel-stickyHeader": "_contextPanel-stickyHeader_if78k_7185",
7993
+ "filters-list": "_filters-list_if78k_7192",
7994
+ "col-drag-column-icon": "_col-drag-column-icon_if78k_7201",
7995
+ "tabular-nums": "_tabular-nums_if78k_7205",
7996
+ "ag-shake-left-to-right": "_ag-shake-left-to-right_if78k_369",
7997
+ "spin": "_spin_if78k_1"
7995
7998
  };
7996
7999
 
7997
8000
  // src/utils/getCellValueTypographyProps.ts
@@ -54322,6 +54325,9 @@ function useFilterState({
54322
54325
  },
54323
54326
  [gridApi]
54324
54327
  );
54328
+ const filterableColumns = React80__default.default.useMemo(() => {
54329
+ return columnDefinitions.filter((colDef) => !!colDef.filterRenderer).sort(sortColumnDefinitionsByFilterIndex);
54330
+ }, [columnDefinitions]);
54325
54331
  const getFieldFilters = React80__default.default.useCallback(() => {
54326
54332
  return filterableColumns.map((column2) => {
54327
54333
  const filterInstance = getFieldFilter(column2.field);
@@ -54335,10 +54341,7 @@ function useFilterState({
54335
54341
  ...instanceOptions
54336
54342
  };
54337
54343
  }).filter((filter) => filter.instance !== void 0);
54338
- }, [getFieldFilter, gridApi]);
54339
- const filterableColumns = React80__default.default.useMemo(() => {
54340
- return columnDefinitions.filter((colDef) => !!colDef.filterRenderer).sort(sortColumnDefinitionsByFilterIndex);
54341
- }, [columnDefinitions]);
54344
+ }, [getFieldFilter, gridApi, filterableColumns]);
54342
54345
  const filterEventFunction = function filterEventFunction2() {
54343
54346
  if (listenersEnabled.current) {
54344
54347
  const allFilters = getFieldFilters();
@@ -54449,6 +54452,10 @@ function ClientSideMultiSelectFilterRenderer({
54449
54452
  value = [],
54450
54453
  ...props
54451
54454
  }) {
54455
+ const filterOptions = React80__default.default.useMemo(
54456
+ () => (options ?? []).map((option) => option ?? ""),
54457
+ [options]
54458
+ );
54452
54459
  return /* @__PURE__ */ React80__default.default.createElement(
54453
54460
  coreReact.MultiSelect,
54454
54461
  {
@@ -54462,8 +54469,8 @@ function ClientSideMultiSelectFilterRenderer({
54462
54469
  return getLabel(columnDefinition.filterProps?.getLabel, option);
54463
54470
  },
54464
54471
  onChange,
54465
- options,
54466
- value: ramda.intersection(value || [], options)
54472
+ options: filterOptions,
54473
+ value: ramda.intersection(value || [], filterOptions)
54467
54474
  }
54468
54475
  );
54469
54476
  }
@@ -57154,7 +57161,7 @@ var SortComponent = (props) => {
57154
57161
  return null;
57155
57162
  };
57156
57163
  var isRowSelected = (rowNode) => {
57157
- return Boolean(rowNode.selectable ? rowNode.isSelected() : true);
57164
+ return Boolean(rowNode.selectable ? rowNode.isSelected() : false);
57158
57165
  };
57159
57166
  var GenericHeaderRenderer = (props) => {
57160
57167
  const colDef = props.column.getColDef();
@@ -57449,7 +57456,10 @@ var GenericHeaderRenderer = (props) => {
57449
57456
  );
57450
57457
  const isPagination = Boolean(props.api.paginationGetRowCount());
57451
57458
  const currentRows = getCurrentRows(props.api, isPagination);
57452
- const isAllSelected = isPagination ? currentRows.length && currentRows.every(isRowSelected) : isSelectionStateSelectAll;
57459
+ const selectableRows = currentRows.filter(
57460
+ (rowNode) => rowNode.selectable
57461
+ );
57462
+ const isAllSelected = isPagination ? selectableRows.length > 0 && selectableRows.every(isRowSelected) : isSelectionStateSelectAll;
57453
57463
  const isPartialSelected = isPagination ? !isAllSelected && currentRows.some(isRowSelected) : isSelectionStatePartialSelected;
57454
57464
  if (isAllSelected) {
57455
57465
  setSelectAll("all" /* All */);
@@ -57695,6 +57705,11 @@ function getGroupNodes(params) {
57695
57705
  function CustomLoader(params) {
57696
57706
  const I18n = coreReact.useI18nContext();
57697
57707
  const groupNodes = getGroupNodes(params);
57708
+ const internalTableContext = useInternalTableContext();
57709
+ const hasDuplicateRowIds = internalTableContext.hasDuplicateRowIds ?? false;
57710
+ if (hasDuplicateRowIds) {
57711
+ return null;
57712
+ }
57698
57713
  if (params.node === groupNodes.firstLoading) {
57699
57714
  return /* @__PURE__ */ React80__default.default.createElement(coreReact.Flex, { style: { paddingLeft: "16px" } }, /* @__PURE__ */ React80__default.default.createElement(
57700
57715
  LevelIndents,
@@ -58383,7 +58398,8 @@ var InternalTableContext = React80__default.default.createContext({
58383
58398
  },
58384
58399
  totalRowCount: 0,
58385
58400
  setTotalRowCount: () => {
58386
- }
58401
+ },
58402
+ hasDuplicateRowIds: false
58387
58403
  });
58388
58404
  var useInternalTableContext = () => React80__default.default.useContext(InternalTableContext);
58389
58405
  var prng = ulid$1.detectPrng(true);
@@ -105593,6 +105609,9 @@ var de_DE_default = {
105593
105609
  selectCell: {
105594
105610
  placeholder: "{{label}} ausw\xE4hlen"
105595
105611
  },
105612
+ multiSelectCell: {
105613
+ placeholder: "Werte ausw\xE4hlen"
105614
+ },
105596
105615
  booleanCell: {
105597
105616
  options: {
105598
105617
  yes: "Ja",
@@ -105709,7 +105728,7 @@ var en_AU_default = {
105709
105728
  autoSizeAllColumns: "Autosize all columns",
105710
105729
  hideColumn: "Hide column",
105711
105730
  resetColumns: "Reset columns",
105712
- unGroupBy: "Un-Group by {{label}}",
105731
+ unGroupBy: "Un-group by {{label}}",
105713
105732
  groupBy: "Group by {{label}}"
105714
105733
  },
105715
105734
  grandTotals: "Grand totals",
@@ -105756,6 +105775,9 @@ var en_AU_default = {
105756
105775
  selectCell: {
105757
105776
  placeholder: "Select {{label}}"
105758
105777
  },
105778
+ multiSelectCell: {
105779
+ placeholder: "Select values"
105780
+ },
105759
105781
  booleanCell: {
105760
105782
  options: {
105761
105783
  yes: "Yes",
@@ -105872,7 +105894,7 @@ var en_CA_default = {
105872
105894
  autoSizeAllColumns: "Autosize all columns",
105873
105895
  hideColumn: "Hide column",
105874
105896
  resetColumns: "Reset columns",
105875
- unGroupBy: "Un-Group by {{label}}",
105897
+ unGroupBy: "Un-group by {{label}}",
105876
105898
  groupBy: "Group by {{label}}"
105877
105899
  },
105878
105900
  grandTotals: "Grand totals",
@@ -105919,6 +105941,9 @@ var en_CA_default = {
105919
105941
  selectCell: {
105920
105942
  placeholder: "Select {{label}}"
105921
105943
  },
105944
+ multiSelectCell: {
105945
+ placeholder: "Select values"
105946
+ },
105922
105947
  booleanCell: {
105923
105948
  options: {
105924
105949
  yes: "Yes",
@@ -106082,6 +106107,9 @@ var en_GB_default = {
106082
106107
  selectCell: {
106083
106108
  placeholder: "Select {{label}}"
106084
106109
  },
106110
+ multiSelectCell: {
106111
+ placeholder: "Select values"
106112
+ },
106085
106113
  booleanCell: {
106086
106114
  options: {
106087
106115
  yes: "Yes",
@@ -106411,6 +106439,9 @@ var es_ES_default = {
106411
106439
  selectCell: {
106412
106440
  placeholder: "Seleccionar {{label}}"
106413
106441
  },
106442
+ multiSelectCell: {
106443
+ placeholder: "Seleccionar valores"
106444
+ },
106414
106445
  booleanCell: {
106415
106446
  options: {
106416
106447
  yes: "S\xED",
@@ -106447,8 +106478,8 @@ var es_default = {
106447
106478
  description: "Una vez que su equipo cree \xEDtems, podr\xE1 acceder a ellos aqu\xED. ",
106448
106479
  title: "No hay \xEDtems para mostrar en este momento",
106449
106480
  itemsTitle: "No hay %{itemsLabel} para mostrar en este momento",
106450
- tooltip: "El bot\xF3n %{featureName} se habilitar\xE1 una vez que agregue informaci\xF3n al %{tableName}",
106451
- searchTooltip: "La b\xFAsqueda se habilitar\xE1 una vez que agregue informaci\xF3n a %{tableName}",
106481
+ tooltip: "El bot\xF3n %{featureName} se habilitar\xE1 una vez que agregue informaci\xF3n a la %{tableName}.",
106482
+ searchTooltip: "La b\xFAsqueda se habilitar\xE1 una vez que agregue informaci\xF3n a la %{tableName}.",
106452
106483
  featureFilter: "Filtro",
106453
106484
  featureQuickFilter: "Filtro r\xE1pido",
106454
106485
  featureGroupBy: "Agrupar por",
@@ -106461,7 +106492,7 @@ var es_default = {
106461
106492
  bulkEdit: "Edici\xF3n masiva",
106462
106493
  cancel: "Cancelar",
106463
106494
  editValues: "Editar valores",
106464
- error: "Lo sentimos, no se pudieron actualizar los \xEDtems. Vuelva a intentarlo.",
106495
+ error: "Lo sentimos, no se pudieron actualizar los \xEDtems. Int\xE9ntelo de nuevo.",
106465
106496
  placeholderForField: "Ingrese %{fieldName}",
106466
106497
  selection: "%{count} %{number} seleccionado",
106467
106498
  success: "Los \xEDtems se actualizaron correctamente.",
@@ -106507,14 +106538,14 @@ var es_default = {
106507
106538
  }
106508
106539
  },
106509
106540
  loading: {
106510
- initial: "Cargando informaci\xF3n.",
106541
+ initial: "Cargando informaci\xF3n...",
106511
106542
  secondary: "Cargando informaci\xF3n. Gracias por su paciencia."
106512
106543
  },
106513
106544
  menuOptions: {
106514
106545
  sortMenuItem: {
106515
106546
  label: "Ordenar por esta columna",
106516
- sortAscItem: "Ordenar columna ascendente",
106517
- sortDescItem: "Ordenar columna descendente",
106547
+ sortAscItem: "Ordenar columna - Ascendente",
106548
+ sortDescItem: "Ordenar columna - Descendente",
106518
106549
  sortResetItem: "Columna no ordenada"
106519
106550
  },
106520
106551
  expandAllGroups: "Expandir todos los grupos",
@@ -106574,6 +106605,9 @@ var es_default = {
106574
106605
  selectCell: {
106575
106606
  placeholder: "Seleccionar {{label}}"
106576
106607
  },
106608
+ multiSelectCell: {
106609
+ placeholder: "Seleccionar valores"
106610
+ },
106577
106611
  booleanCell: {
106578
106612
  options: {
106579
106613
  yes: "S\xED",
@@ -106624,7 +106658,7 @@ var fr_CA_default = {
106624
106658
  bulkEdit: "Modifier en bloc",
106625
106659
  cancel: "Annuler",
106626
106660
  editValues: "Modifier les valeurs",
106627
- error: "D\xE9sol\xE9, les items n'ont pas pu \xEAtre mis \xE0 jour. R\xE9essayer.",
106661
+ error: "D\xE9sol\xE9, les items n'ont pas pu \xEAtre mis \xE0 jour. Veuillez r\xE9essayer.",
106628
106662
  placeholderForField: "Entrez %{fieldName}",
106629
106663
  selection: "%{count} %{number} s\xE9lectionn\xE9",
106630
106664
  success: "Les items ont \xE9t\xE9 mis \xE0 jour avec succ\xE8s.",
@@ -106737,6 +106771,9 @@ var fr_CA_default = {
106737
106771
  selectCell: {
106738
106772
  placeholder: "S\xE9lectionner {{label}}"
106739
106773
  },
106774
+ multiSelectCell: {
106775
+ placeholder: "S\xE9lectionner les valeurs"
106776
+ },
106740
106777
  booleanCell: {
106741
106778
  options: {
106742
106779
  yes: "Oui",
@@ -106787,7 +106824,7 @@ var fr_FR_default = {
106787
106824
  bulkEdit: "Modifier en masse",
106788
106825
  cancel: "Annuler",
106789
106826
  editValues: "Modifier les valeurs",
106790
- error: "D\xE9sol\xE9, les \xE9l\xE9ments n'ont pas pu \xEAtre mis \xE0 jour. R\xE9essayez.",
106827
+ error: "D\xE9sol\xE9, les \xE9l\xE9ments n'ont pas pu \xEAtre mis \xE0 jour. Veuillez r\xE9essayer.",
106791
106828
  placeholderForField: "Saisissez %{fieldName}",
106792
106829
  selection: "%{count} %{number} s\xE9lectionn\xE9",
106793
106830
  success: "Les \xE9l\xE9ments ont bien \xE9t\xE9 mis \xE0 jour.",
@@ -106900,6 +106937,9 @@ var fr_FR_default = {
106900
106937
  selectCell: {
106901
106938
  placeholder: "S\xE9lectionner {{label}}"
106902
106939
  },
106940
+ multiSelectCell: {
106941
+ placeholder: "S\xE9lectionner les valeurs"
106942
+ },
106903
106943
  booleanCell: {
106904
106944
  options: {
106905
106945
  yes: "Oui",
@@ -107063,6 +107103,9 @@ var is_IS_default = {
107063
107103
  selectCell: {
107064
107104
  placeholder: "Veldu {{label}}"
107065
107105
  },
107106
+ multiSelectCell: {
107107
+ placeholder: "Veldu Gildi"
107108
+ },
107066
107109
  booleanCell: {
107067
107110
  options: {
107068
107111
  yes: "J\xE1",
@@ -107226,6 +107269,9 @@ var ja_JP_default = {
107226
107269
  selectCell: {
107227
107270
  placeholder: "{{label}}\u3092\u9078\u629E\u3059\u308B"
107228
107271
  },
107272
+ multiSelectCell: {
107273
+ placeholder: "\u5024\u3092\u9078\u629E"
107274
+ },
107229
107275
  booleanCell: {
107230
107276
  options: {
107231
107277
  yes: "\u306F\u3044",
@@ -107389,6 +107435,9 @@ var pl_PL_default = {
107389
107435
  selectCell: {
107390
107436
  placeholder: "Wybierz {{label}}"
107391
107437
  },
107438
+ multiSelectCell: {
107439
+ placeholder: "Wybierz warto\u015Bci"
107440
+ },
107392
107441
  booleanCell: {
107393
107442
  options: {
107394
107443
  yes: "Tak",
@@ -107605,7 +107654,7 @@ var pt_BR_default = {
107605
107654
  bulkEdit: "Edi\xE7\xE3o em Massa",
107606
107655
  cancel: "Cancelar",
107607
107656
  editValues: "Editar Valores",
107608
- error: "Lamentamos, mas n\xE3o foi poss\xEDvel atualizar os itens. Tente novamente.",
107657
+ error: "Sentimos muito, mas n\xE3o foi poss\xEDvel atualizar os itens. Tente novamente.",
107609
107658
  placeholderForField: "Digite %{fieldName}",
107610
107659
  selection: "%{count} %{number} selecionado",
107611
107660
  success: "Os itens foram atualizados com sucesso.",
@@ -107718,6 +107767,9 @@ var pt_BR_default = {
107718
107767
  selectCell: {
107719
107768
  placeholder: "Selecionar {{label}}"
107720
107769
  },
107770
+ multiSelectCell: {
107771
+ placeholder: "Selecionar Valores"
107772
+ },
107721
107773
  booleanCell: {
107722
107774
  options: {
107723
107775
  yes: "Sim",
@@ -107768,7 +107820,7 @@ var th_TH_default = {
107768
107820
  bulkEdit: "\u0E01\u0E32\u0E23\u0E41\u0E01\u0E49\u0E44\u0E02\u0E41\u0E1A\u0E1A\u0E01\u0E25\u0E38\u0E48\u0E21",
107769
107821
  cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
107770
107822
  editValues: "\u0E41\u0E01\u0E49\u0E44\u0E02\u0E04\u0E48\u0E32",
107771
- 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",
107823
+ 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.",
107772
107824
  placeholderForField: "\u0E1B\u0E49\u0E2D\u0E19 %{fieldName}",
107773
107825
  selection: "%{count} %{number} \u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01",
107774
107826
  success: "\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08\u0E41\u0E25\u0E49\u0E27",
@@ -107881,6 +107933,9 @@ var th_TH_default = {
107881
107933
  selectCell: {
107882
107934
  placeholder: "\u0E40\u0E25\u0E37\u0E2D\u0E01 {{label}}"
107883
107935
  },
107936
+ multiSelectCell: {
107937
+ placeholder: "\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E04\u0E48\u0E32"
107938
+ },
107884
107939
  booleanCell: {
107885
107940
  options: {
107886
107941
  yes: "\u0E43\u0E0A\u0E48",
@@ -108044,6 +108099,9 @@ var zh_SG_default = {
108044
108099
  selectCell: {
108045
108100
  placeholder: "\u9009\u62E9{{label}}"
108046
108101
  },
108102
+ multiSelectCell: {
108103
+ placeholder: "\u9009\u62E9\u503C"
108104
+ },
108047
108105
  booleanCell: {
108048
108106
  options: {
108049
108107
  yes: "\u662F",
@@ -109137,6 +109195,7 @@ var DataTable = ({
109137
109195
  );
109138
109196
  const [gridApi, setGridApi] = React80__default.default.useState();
109139
109197
  const [columnApi, setColumnApi] = React80__default.default.useState();
109198
+ const [hasDuplicateRowIds, setHasDuplicateRowIds] = React80__default.default.useState(false);
109140
109199
  const searchStorage = useSearchStorage();
109141
109200
  const filterState = useFilterState({
109142
109201
  columnDefinitions: columns,
@@ -109212,7 +109271,9 @@ var DataTable = ({
109212
109271
  gridApi?.hideOverlay.bind(gridApi),
109213
109272
  filterStorage.filtersState,
109214
109273
  searchStorage.searchValue,
109215
- setTotalRowCount
109274
+ setTotalRowCount,
109275
+ setHasDuplicateRowIds,
109276
+ getRowId
109216
109277
  )
109217
109278
  );
109218
109279
  gridApi?.paginationGoToPage(0);
@@ -109305,7 +109366,8 @@ var DataTable = ({
109305
109366
  tableRef,
109306
109367
  totalRowCount,
109307
109368
  setTotalRowCount,
109308
- updateServerSideDataSource
109369
+ updateServerSideDataSource,
109370
+ hasDuplicateRowIds
109309
109371
  }
109310
109372
  },
109311
109373
  children
@@ -109316,12 +109378,34 @@ var rowDragMoveEvent;
109316
109378
  var rowDragEndEvent;
109317
109379
  function getServerSideDatasource(onServerSideDataRequestCallbackRef, onEmptyResponseCallback = () => {
109318
109380
  }, onNonEmptyResponseCallback = () => {
109319
- }, filters, search, setTotalRowCount) {
109381
+ }, filters, search, setTotalRowCount, setHasDuplicateRowIds, getRowId) {
109320
109382
  return {
109321
109383
  getRows: async (params) => {
109322
109384
  if (onServerSideDataRequestCallbackRef.current) {
109323
109385
  const { request, success, fail } = params;
109324
109386
  const onSuccess = (loadSuccessParams) => {
109387
+ const { rowData } = loadSuccessParams;
109388
+ if (rowData && Array.isArray(rowData) && getRowId) {
109389
+ const uniqueRowIds = /* @__PURE__ */ new Set();
109390
+ for (const row2 of rowData) {
109391
+ const id = getRowId({
109392
+ data: row2,
109393
+ level: 0,
109394
+ api: {},
109395
+ columnApi: {},
109396
+ context: {}
109397
+ });
109398
+ if (uniqueRowIds.has(id)) {
109399
+ setHasDuplicateRowIds(true);
109400
+ logger.error(
109401
+ "Duplicate row IDs detected in rowData. Check getRowId() to ensure it returns unique IDs."
109402
+ );
109403
+ fail();
109404
+ return;
109405
+ }
109406
+ uniqueRowIds.add(id);
109407
+ }
109408
+ }
109325
109409
  if (!loadSuccessParams.rowCount && request.groupKeys.length === 0) {
109326
109410
  onEmptyResponseCallback();
109327
109411
  } else {
@@ -110305,10 +110389,7 @@ function isLastColumnInGroup(params) {
110305
110389
  function ClientSideFilterInner(props) {
110306
110390
  const { Component: Component4, columnDefinition, onChange, options, value } = props;
110307
110391
  const filterHeading = columnDefinition.filterProps?.getFilterHeadingText?.(columnDefinition) ?? columnDefinition.headerName;
110308
- const filterOptions = React80__default.default.useMemo(
110309
- () => (options ?? [])?.filter((option) => !!option),
110310
- [options]
110311
- );
110392
+ const filterOptions = React80__default.default.useMemo(() => options ?? [], [options]);
110312
110393
  return /* @__PURE__ */ React80__default.default.createElement(coreReact.Box, { as: "li", display: "block", paddingBottom: "xl", style: { width: "100%" } }, filterHeading ? /* @__PURE__ */ React80__default.default.createElement(
110313
110394
  coreReact.Label,
110314
110395
  {
@@ -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>;