@procore/data-table 14.16.0 → 14.17.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,5 +1,16 @@
1
1
  # Change Log
2
2
 
3
+ ## 14.17.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d034e19666: Implement ability to sort filters alphabetically
8
+ - 51578b737a: Corrected the rendering of the external link icon in the `SelectCell` component
9
+
10
+ ### Patch Changes
11
+
12
+ - 9949dc0ed0: Fixing issue with expanded rows persistence opening all groups when the route is an object
13
+
3
14
  ## 14.16.0
4
15
 
5
16
  ### Minor Changes
@@ -54201,6 +54201,38 @@ function sortColumnDefinitionsByFilterIndex(colDef1, colDef2) {
54201
54201
  }
54202
54202
  return filterIndex1 > filterIndex2 ? 1 : -1;
54203
54203
  }
54204
+ function assignAlphabeticalFilterIndices(columnDefinitions) {
54205
+ const newColumns = columnDefinitions.map((col) => ({
54206
+ ...col,
54207
+ filterProps: col.filterProps ? { ...col.filterProps } : void 0
54208
+ }));
54209
+ const filterColumns = newColumns.filter(
54210
+ (col) => col.filterRenderer || col.filterProps
54211
+ );
54212
+ const groups = {};
54213
+ filterColumns.forEach((col) => {
54214
+ var _a;
54215
+ const groupName = ((_a = col.filterProps) == null ? void 0 : _a.groupName) || "default";
54216
+ if (!groups[groupName]) {
54217
+ groups[groupName] = [];
54218
+ }
54219
+ groups[groupName].push(col);
54220
+ });
54221
+ Object.values(groups).forEach((groupCols) => {
54222
+ groupCols.sort((a, b) => {
54223
+ const headerA = a.headerName || "";
54224
+ const headerB = b.headerName || "";
54225
+ return headerA.localeCompare(headerB);
54226
+ });
54227
+ groupCols.forEach((col, idx) => {
54228
+ if (!col.filterProps) {
54229
+ col.filterProps = {};
54230
+ }
54231
+ col.filterProps.index = idx;
54232
+ });
54233
+ });
54234
+ return newColumns;
54235
+ }
54204
54236
 
54205
54237
  // src/state/useFilterState.ts
54206
54238
  function isNumberFilterModel(value) {
@@ -55976,7 +56008,10 @@ var DataTableCellRenderer = ({
55976
56008
  value
55977
56009
  };
55978
56010
  const hasValue = value !== void 0 && value !== null && value !== "";
55979
- const isSelectCellComponent = ((_c = (_b = columnDefinition.cellEditor) == null ? void 0 : _b.render) == null ? void 0 : _c.displayName) === "SelectCellEditor";
56011
+ const isSelectCellComponent = ((_c = (_b = columnDefinition.cellRendererSelector) == null ? void 0 : _b.call(columnDefinition, {
56012
+ ...columnDefinition.cellRendererParams,
56013
+ node
56014
+ }).component) == null ? void 0 : _c.displayName) === "SelectCellRenderer";
55980
56015
  const URL = isSelectCellComponent && ((_d = columnDefinition == null ? void 0 : columnDefinition.cellRendererParams) == null ? void 0 : _d.getURL) ? columnDefinition.cellRendererParams.getURL(value) : null;
55981
56016
  const startEditing = React76.useCallback(
55982
56017
  () => api.startEditingCell({
@@ -78240,12 +78275,16 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
78240
78275
  };
78241
78276
 
78242
78277
  // src/utils/expandRows.ts
78278
+ function getStringifiedRoute(node) {
78279
+ var _a;
78280
+ return (_a = node.getRoute()) == null ? void 0 : _a.map((r) => typeof r === "object" ? JSON.stringify(r) : r);
78281
+ }
78243
78282
  var getGroupRowState = (gridApi, groupDefaultExpanded = 0) => {
78244
78283
  const expandedRoutes = [];
78245
78284
  const collapsedRoutes = [];
78246
78285
  if (gridApi) {
78247
78286
  gridApi.forEachNode((node) => {
78248
- const route = node.getRoute();
78287
+ const route = getStringifiedRoute(node);
78249
78288
  if (route) {
78250
78289
  const routePath = route.join(",");
78251
78290
  const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
@@ -78266,7 +78305,7 @@ var setExpandCollapseRow = (gridApi, tableConfig, groupDefaultExpanded = 0) => {
78266
78305
  const expandedRoutes = ((_a = tableConfig.groupRowState) == null ? void 0 : _a.expandedRoutes) ?? [];
78267
78306
  const collapsedRoutes = ((_b = tableConfig.groupRowState) == null ? void 0 : _b.collapsedRoutes) ?? [];
78268
78307
  gridApi.forEachNode((node) => {
78269
- const route = node.getRoute();
78308
+ const route = getStringifiedRoute(node);
78270
78309
  if (route) {
78271
78310
  const routePath = route.join(",");
78272
78311
  const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
@@ -78284,7 +78323,7 @@ var isRowOpenedByDefault = (node, tableConfig, groupDefaultExpanded = 0) => {
78284
78323
  var _a, _b;
78285
78324
  const expandedRoutes = ((_a = tableConfig == null ? void 0 : tableConfig.groupRowState) == null ? void 0 : _a.expandedRoutes) ?? [];
78286
78325
  const collapsedRoutes = ((_b = tableConfig == null ? void 0 : tableConfig.groupRowState) == null ? void 0 : _b.collapsedRoutes) ?? [];
78287
- const route = node.getRoute();
78326
+ const route = getStringifiedRoute(node);
78288
78327
  if (!route) {
78289
78328
  return false;
78290
78329
  }
@@ -89398,6 +89437,7 @@ exports.SingleSelectQuickFilterRenderer = SingleSelectQuickFilterRenderer_defaul
89398
89437
  exports.TextCellEditor = TextCellEditor2;
89399
89438
  exports.TextCellRenderer = TextCellRenderer;
89400
89439
  exports.UNSAFE_useTableContext = UNSAFE_useTableContext;
89440
+ exports.assignAlphabeticalFilterIndices = assignAlphabeticalFilterIndices;
89401
89441
  exports.rowSize = rowSize;
89402
89442
  exports.useAnalyticsContext = useAnalyticsContext;
89403
89443
  exports.useRowSelectionState = useRowSelectionState;
@@ -1457,6 +1457,8 @@ declare const useRowSelectionState: () => IRowNode<any>[];
1457
1457
  declare function withDataTableEditor(Component: React__default.ForwardRefExoticComponent<any>, editorType: 'input' | 'select' | 'date' | 'textarea'): React__default.ForwardRefExoticComponent<ICellEditorParams>;
1458
1458
  declare function withDataTableRenderer(Component: React__default.ComponentType<any>, editorType?: 'input' | 'select' | 'date' | 'textarea'): React__default.FC<ICellRendererParams>;
1459
1459
 
1460
+ declare function assignAlphabeticalFilterIndices(columnDefinitions: ColumnDefinition[]): ColumnDefinition[];
1461
+
1460
1462
  declare const waitForAsyncCondition: (condition: Function, maxAttempts?: number, timeout?: number, attempts?: number) => Promise<void>;
1461
1463
 
1462
1464
  /**
@@ -1469,4 +1471,4 @@ declare const waitForAsyncCondition: (condition: Function, maxAttempts?: number,
1469
1471
  */
1470
1472
  declare const UNSAFE_useTableContext: () => InternalTableContext;
1471
1473
 
1472
- export { type AgDomLayout, type AgGetDetailRowDataParams, type AgSort, type AggregationFunction, type AnalyticEvent, _default$2 as Analytics, AnalyticsBulkClient, type AnalyticsBulkConfig, type AnalyticsClient, type AnalyticsConfig$1 as AnalyticsConfig, type AvatarStackItemFilter, type BooleanCellColumnDefinition, BooleanCellEditor, type BooleanCellEditorProps, BooleanCellRenderer, type BooleanCellRendererProps, type ButtonsCellColumnDefinition, ButtonsCellRenderer, type CSVExportConfig, type CellValueChangeParams, _default$1 as ClientSideDataTable, type ClientSideDataTableProps, type ColumnConfig, type ColumnDefinition, type ColumnGroupStateConfig, type CompanyCellColumnDefinition, CompanyCellRenderer, type CompanyCellRendererProps, type ContextPanelApi, type ContextPanelContent, type CurrencyCellColumnDefinition, CurrencyCellEditor, type CurrencyCellEditorProps, CurrencyCellRenderer, type CurrencyCellRendererProps, type CustomBulkEditorFields, type CustomEditorCell, type CustomFilter, type CustomFooterConfig, type CustomRendererCell, type DTExcelFormats, type DataTableCellEditorProps, type DataTableCellRendererProps, type DataTableConfig, type DataTableProps, type DataTableTranslations, type DateCellColumnDefinition, DateCellEditor, type DateCellEditorProps, DateCellRenderer, type DateCellRendererProps, DateFilterRenderer, type DateFilterSelectionType, QuickDateFilterRenderer as DateQuickFilterRenderer, type DateTimeCellColumnDefinition, DateTimeCellEditor, DateTimeCellRenderer, type DetailRowConfig, type EmptyRendererProps, type ExcelExportConfig, type ExtendedColDef, type FilterGroup, type FrameworkComponents, type GetDetailRowDataParams, type GetRowHeightWithFooters, GrandTotalsLabelRenderer, type GranularPartial, type GranularRequired, type GroupCellColumnDefinition, GroupCellRenderer, type HTMLStringExportConfig, type ISearchState, type IServerFilter, type IsEditableParams, type IsRowSelectable, type LinkCellColumnDefinition, LinkCellRenderer, type LinkCellRendererProps, type LocationColumnDefinition, type LocationFilterOpt, LocationFilterRenderer, LocationQuickFilterRenderer, type MultiSelectCellColumnDefinition, MultiSelectCellEditor, MultiSelectCellRenderer, type MultiSelectCellRendererProps, MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer, type NestedColumnDefinition, type NumberCellColumnDefinition, NumberCellEditor, type NumberCellEditorProps, NumberCellRenderer, type NumberCellRendererProps, NumberFilterRenderer, type PartialTableApi, type PeopleCellColumnDefinition, PeopleCellRenderer, type PeopleCellRendererProps, type PercentCellColumnDefinition, PercentCellEditor, type PercentCellEditorProps, PercentCellRenderer, type PercentCellRendererProps, PersonCellRenderer, type PillCellColumnDefinition, PillCellRenderer, type PillCellRendererProps, PillSelectCellEditor, type PillSelectCellEditorProps, type PinnedBottomRow, type RefreshServerSideDataParams, type RowActionsConfig, type RowActivePredicateParams, type RowGroupToggledEvent, type RowNode, type RowSelectablePredicateParams, type RowSelectionRef, SelectAllState, type SelectCellColumnDefinition, SelectCellEditor, type SelectCellEditorProps, SelectCellRenderer, type SelectCellRendererProps, _default as ServerSideDataTable, type DataTableProps as ServerSideDataTableProps, type ServerSideGetRowsParams, type ServerSideGetRowsRequest, type ServerSideParamsOptions, SingleSelectQuickFilterRenderer, type SortModel, type SuccessParams, type TableApi, type TableFrameworkComponents, type TablePanelProps, type TableProps, type TextAreaCellColumnDefinition, type TextAreaCellEditorProps, type TextAreaCellRendererProps, type TextCellColumnDefinition, TextCellEditor, type TextCellEditorProps, TextCellRenderer, type TextCellRendererProps, UNSAFE_useTableContext, type UpdateServerSideDataSourceParams, type ValueGetterParams, type ValueParserParams, type ValueSetterParams, type ValueValidator, type ValueValidatorParams, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
1474
+ export { type AgDomLayout, type AgGetDetailRowDataParams, type AgSort, type AggregationFunction, type AnalyticEvent, _default$2 as Analytics, AnalyticsBulkClient, type AnalyticsBulkConfig, type AnalyticsClient, type AnalyticsConfig$1 as AnalyticsConfig, type AvatarStackItemFilter, type BooleanCellColumnDefinition, BooleanCellEditor, type BooleanCellEditorProps, BooleanCellRenderer, type BooleanCellRendererProps, type ButtonsCellColumnDefinition, ButtonsCellRenderer, type CSVExportConfig, type CellValueChangeParams, _default$1 as ClientSideDataTable, type ClientSideDataTableProps, type ColumnConfig, type ColumnDefinition, type ColumnGroupStateConfig, type CompanyCellColumnDefinition, CompanyCellRenderer, type CompanyCellRendererProps, type ContextPanelApi, type ContextPanelContent, type CurrencyCellColumnDefinition, CurrencyCellEditor, type CurrencyCellEditorProps, CurrencyCellRenderer, type CurrencyCellRendererProps, type CustomBulkEditorFields, type CustomEditorCell, type CustomFilter, type CustomFooterConfig, type CustomRendererCell, type DTExcelFormats, type DataTableCellEditorProps, type DataTableCellRendererProps, type DataTableConfig, type DataTableProps, type DataTableTranslations, type DateCellColumnDefinition, DateCellEditor, type DateCellEditorProps, DateCellRenderer, type DateCellRendererProps, DateFilterRenderer, type DateFilterSelectionType, QuickDateFilterRenderer as DateQuickFilterRenderer, type DateTimeCellColumnDefinition, DateTimeCellEditor, DateTimeCellRenderer, type DetailRowConfig, type EmptyRendererProps, type ExcelExportConfig, type ExtendedColDef, type FilterGroup, type FrameworkComponents, type GetDetailRowDataParams, type GetRowHeightWithFooters, GrandTotalsLabelRenderer, type GranularPartial, type GranularRequired, type GroupCellColumnDefinition, GroupCellRenderer, type HTMLStringExportConfig, type ISearchState, type IServerFilter, type IsEditableParams, type IsRowSelectable, type LinkCellColumnDefinition, LinkCellRenderer, type LinkCellRendererProps, type LocationColumnDefinition, type LocationFilterOpt, LocationFilterRenderer, LocationQuickFilterRenderer, type MultiSelectCellColumnDefinition, MultiSelectCellEditor, MultiSelectCellRenderer, type MultiSelectCellRendererProps, MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer, type NestedColumnDefinition, type NumberCellColumnDefinition, NumberCellEditor, type NumberCellEditorProps, NumberCellRenderer, type NumberCellRendererProps, NumberFilterRenderer, type PartialTableApi, type PeopleCellColumnDefinition, PeopleCellRenderer, type PeopleCellRendererProps, type PercentCellColumnDefinition, PercentCellEditor, type PercentCellEditorProps, PercentCellRenderer, type PercentCellRendererProps, PersonCellRenderer, type PillCellColumnDefinition, PillCellRenderer, type PillCellRendererProps, PillSelectCellEditor, type PillSelectCellEditorProps, type PinnedBottomRow, type RefreshServerSideDataParams, type RowActionsConfig, type RowActivePredicateParams, type RowGroupToggledEvent, type RowNode, type RowSelectablePredicateParams, type RowSelectionRef, SelectAllState, type SelectCellColumnDefinition, SelectCellEditor, type SelectCellEditorProps, SelectCellRenderer, type SelectCellRendererProps, _default as ServerSideDataTable, type DataTableProps as ServerSideDataTableProps, type ServerSideGetRowsParams, type ServerSideGetRowsRequest, type ServerSideParamsOptions, SingleSelectQuickFilterRenderer, type SortModel, type SuccessParams, type TableApi, type TableFrameworkComponents, type TablePanelProps, type TableProps, type TextAreaCellColumnDefinition, type TextAreaCellEditorProps, type TextAreaCellRendererProps, type TextCellColumnDefinition, TextCellEditor, type TextCellEditorProps, TextCellRenderer, type TextCellRendererProps, UNSAFE_useTableContext, type UpdateServerSideDataSourceParams, type ValueGetterParams, type ValueParserParams, type ValueSetterParams, type ValueValidator, type ValueValidatorParams, assignAlphabeticalFilterIndices, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
@@ -1457,6 +1457,8 @@ declare const useRowSelectionState: () => IRowNode<any>[];
1457
1457
  declare function withDataTableEditor(Component: React__default.ForwardRefExoticComponent<any>, editorType: 'input' | 'select' | 'date' | 'textarea'): React__default.ForwardRefExoticComponent<ICellEditorParams>;
1458
1458
  declare function withDataTableRenderer(Component: React__default.ComponentType<any>, editorType?: 'input' | 'select' | 'date' | 'textarea'): React__default.FC<ICellRendererParams>;
1459
1459
 
1460
+ declare function assignAlphabeticalFilterIndices(columnDefinitions: ColumnDefinition[]): ColumnDefinition[];
1461
+
1460
1462
  declare const waitForAsyncCondition: (condition: Function, maxAttempts?: number, timeout?: number, attempts?: number) => Promise<void>;
1461
1463
 
1462
1464
  /**
@@ -1469,4 +1471,4 @@ declare const waitForAsyncCondition: (condition: Function, maxAttempts?: number,
1469
1471
  */
1470
1472
  declare const UNSAFE_useTableContext: () => InternalTableContext;
1471
1473
 
1472
- export { type AgDomLayout, type AgGetDetailRowDataParams, type AgSort, type AggregationFunction, type AnalyticEvent, _default$2 as Analytics, AnalyticsBulkClient, type AnalyticsBulkConfig, type AnalyticsClient, type AnalyticsConfig$1 as AnalyticsConfig, type AvatarStackItemFilter, type BooleanCellColumnDefinition, BooleanCellEditor, type BooleanCellEditorProps, BooleanCellRenderer, type BooleanCellRendererProps, type ButtonsCellColumnDefinition, ButtonsCellRenderer, type CSVExportConfig, type CellValueChangeParams, _default$1 as ClientSideDataTable, type ClientSideDataTableProps, type ColumnConfig, type ColumnDefinition, type ColumnGroupStateConfig, type CompanyCellColumnDefinition, CompanyCellRenderer, type CompanyCellRendererProps, type ContextPanelApi, type ContextPanelContent, type CurrencyCellColumnDefinition, CurrencyCellEditor, type CurrencyCellEditorProps, CurrencyCellRenderer, type CurrencyCellRendererProps, type CustomBulkEditorFields, type CustomEditorCell, type CustomFilter, type CustomFooterConfig, type CustomRendererCell, type DTExcelFormats, type DataTableCellEditorProps, type DataTableCellRendererProps, type DataTableConfig, type DataTableProps, type DataTableTranslations, type DateCellColumnDefinition, DateCellEditor, type DateCellEditorProps, DateCellRenderer, type DateCellRendererProps, DateFilterRenderer, type DateFilterSelectionType, QuickDateFilterRenderer as DateQuickFilterRenderer, type DateTimeCellColumnDefinition, DateTimeCellEditor, DateTimeCellRenderer, type DetailRowConfig, type EmptyRendererProps, type ExcelExportConfig, type ExtendedColDef, type FilterGroup, type FrameworkComponents, type GetDetailRowDataParams, type GetRowHeightWithFooters, GrandTotalsLabelRenderer, type GranularPartial, type GranularRequired, type GroupCellColumnDefinition, GroupCellRenderer, type HTMLStringExportConfig, type ISearchState, type IServerFilter, type IsEditableParams, type IsRowSelectable, type LinkCellColumnDefinition, LinkCellRenderer, type LinkCellRendererProps, type LocationColumnDefinition, type LocationFilterOpt, LocationFilterRenderer, LocationQuickFilterRenderer, type MultiSelectCellColumnDefinition, MultiSelectCellEditor, MultiSelectCellRenderer, type MultiSelectCellRendererProps, MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer, type NestedColumnDefinition, type NumberCellColumnDefinition, NumberCellEditor, type NumberCellEditorProps, NumberCellRenderer, type NumberCellRendererProps, NumberFilterRenderer, type PartialTableApi, type PeopleCellColumnDefinition, PeopleCellRenderer, type PeopleCellRendererProps, type PercentCellColumnDefinition, PercentCellEditor, type PercentCellEditorProps, PercentCellRenderer, type PercentCellRendererProps, PersonCellRenderer, type PillCellColumnDefinition, PillCellRenderer, type PillCellRendererProps, PillSelectCellEditor, type PillSelectCellEditorProps, type PinnedBottomRow, type RefreshServerSideDataParams, type RowActionsConfig, type RowActivePredicateParams, type RowGroupToggledEvent, type RowNode, type RowSelectablePredicateParams, type RowSelectionRef, SelectAllState, type SelectCellColumnDefinition, SelectCellEditor, type SelectCellEditorProps, SelectCellRenderer, type SelectCellRendererProps, _default as ServerSideDataTable, type DataTableProps as ServerSideDataTableProps, type ServerSideGetRowsParams, type ServerSideGetRowsRequest, type ServerSideParamsOptions, SingleSelectQuickFilterRenderer, type SortModel, type SuccessParams, type TableApi, type TableFrameworkComponents, type TablePanelProps, type TableProps, type TextAreaCellColumnDefinition, type TextAreaCellEditorProps, type TextAreaCellRendererProps, type TextCellColumnDefinition, TextCellEditor, type TextCellEditorProps, TextCellRenderer, type TextCellRendererProps, UNSAFE_useTableContext, type UpdateServerSideDataSourceParams, type ValueGetterParams, type ValueParserParams, type ValueSetterParams, type ValueValidator, type ValueValidatorParams, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
1474
+ export { type AgDomLayout, type AgGetDetailRowDataParams, type AgSort, type AggregationFunction, type AnalyticEvent, _default$2 as Analytics, AnalyticsBulkClient, type AnalyticsBulkConfig, type AnalyticsClient, type AnalyticsConfig$1 as AnalyticsConfig, type AvatarStackItemFilter, type BooleanCellColumnDefinition, BooleanCellEditor, type BooleanCellEditorProps, BooleanCellRenderer, type BooleanCellRendererProps, type ButtonsCellColumnDefinition, ButtonsCellRenderer, type CSVExportConfig, type CellValueChangeParams, _default$1 as ClientSideDataTable, type ClientSideDataTableProps, type ColumnConfig, type ColumnDefinition, type ColumnGroupStateConfig, type CompanyCellColumnDefinition, CompanyCellRenderer, type CompanyCellRendererProps, type ContextPanelApi, type ContextPanelContent, type CurrencyCellColumnDefinition, CurrencyCellEditor, type CurrencyCellEditorProps, CurrencyCellRenderer, type CurrencyCellRendererProps, type CustomBulkEditorFields, type CustomEditorCell, type CustomFilter, type CustomFooterConfig, type CustomRendererCell, type DTExcelFormats, type DataTableCellEditorProps, type DataTableCellRendererProps, type DataTableConfig, type DataTableProps, type DataTableTranslations, type DateCellColumnDefinition, DateCellEditor, type DateCellEditorProps, DateCellRenderer, type DateCellRendererProps, DateFilterRenderer, type DateFilterSelectionType, QuickDateFilterRenderer as DateQuickFilterRenderer, type DateTimeCellColumnDefinition, DateTimeCellEditor, DateTimeCellRenderer, type DetailRowConfig, type EmptyRendererProps, type ExcelExportConfig, type ExtendedColDef, type FilterGroup, type FrameworkComponents, type GetDetailRowDataParams, type GetRowHeightWithFooters, GrandTotalsLabelRenderer, type GranularPartial, type GranularRequired, type GroupCellColumnDefinition, GroupCellRenderer, type HTMLStringExportConfig, type ISearchState, type IServerFilter, type IsEditableParams, type IsRowSelectable, type LinkCellColumnDefinition, LinkCellRenderer, type LinkCellRendererProps, type LocationColumnDefinition, type LocationFilterOpt, LocationFilterRenderer, LocationQuickFilterRenderer, type MultiSelectCellColumnDefinition, MultiSelectCellEditor, MultiSelectCellRenderer, type MultiSelectCellRendererProps, MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer, type NestedColumnDefinition, type NumberCellColumnDefinition, NumberCellEditor, type NumberCellEditorProps, NumberCellRenderer, type NumberCellRendererProps, NumberFilterRenderer, type PartialTableApi, type PeopleCellColumnDefinition, PeopleCellRenderer, type PeopleCellRendererProps, type PercentCellColumnDefinition, PercentCellEditor, type PercentCellEditorProps, PercentCellRenderer, type PercentCellRendererProps, PersonCellRenderer, type PillCellColumnDefinition, PillCellRenderer, type PillCellRendererProps, PillSelectCellEditor, type PillSelectCellEditorProps, type PinnedBottomRow, type RefreshServerSideDataParams, type RowActionsConfig, type RowActivePredicateParams, type RowGroupToggledEvent, type RowNode, type RowSelectablePredicateParams, type RowSelectionRef, SelectAllState, type SelectCellColumnDefinition, SelectCellEditor, type SelectCellEditorProps, SelectCellRenderer, type SelectCellRendererProps, _default as ServerSideDataTable, type DataTableProps as ServerSideDataTableProps, type ServerSideGetRowsParams, type ServerSideGetRowsRequest, type ServerSideParamsOptions, SingleSelectQuickFilterRenderer, type SortModel, type SuccessParams, type TableApi, type TableFrameworkComponents, type TablePanelProps, type TableProps, type TextAreaCellColumnDefinition, type TextAreaCellEditorProps, type TextAreaCellRendererProps, type TextCellColumnDefinition, TextCellEditor, type TextCellEditorProps, TextCellRenderer, type TextCellRendererProps, UNSAFE_useTableContext, type UpdateServerSideDataSourceParams, type ValueGetterParams, type ValueParserParams, type ValueSetterParams, type ValueValidator, type ValueValidatorParams, assignAlphabeticalFilterIndices, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
@@ -54187,6 +54187,38 @@ function sortColumnDefinitionsByFilterIndex(colDef1, colDef2) {
54187
54187
  }
54188
54188
  return filterIndex1 > filterIndex2 ? 1 : -1;
54189
54189
  }
54190
+ function assignAlphabeticalFilterIndices(columnDefinitions) {
54191
+ const newColumns = columnDefinitions.map((col) => ({
54192
+ ...col,
54193
+ filterProps: col.filterProps ? { ...col.filterProps } : void 0
54194
+ }));
54195
+ const filterColumns = newColumns.filter(
54196
+ (col) => col.filterRenderer || col.filterProps
54197
+ );
54198
+ const groups = {};
54199
+ filterColumns.forEach((col) => {
54200
+ var _a;
54201
+ const groupName = ((_a = col.filterProps) == null ? void 0 : _a.groupName) || "default";
54202
+ if (!groups[groupName]) {
54203
+ groups[groupName] = [];
54204
+ }
54205
+ groups[groupName].push(col);
54206
+ });
54207
+ Object.values(groups).forEach((groupCols) => {
54208
+ groupCols.sort((a, b) => {
54209
+ const headerA = a.headerName || "";
54210
+ const headerB = b.headerName || "";
54211
+ return headerA.localeCompare(headerB);
54212
+ });
54213
+ groupCols.forEach((col, idx) => {
54214
+ if (!col.filterProps) {
54215
+ col.filterProps = {};
54216
+ }
54217
+ col.filterProps.index = idx;
54218
+ });
54219
+ });
54220
+ return newColumns;
54221
+ }
54190
54222
 
54191
54223
  // src/state/useFilterState.ts
54192
54224
  function isNumberFilterModel(value) {
@@ -55962,7 +55994,10 @@ var DataTableCellRenderer = ({
55962
55994
  value
55963
55995
  };
55964
55996
  const hasValue = value !== void 0 && value !== null && value !== "";
55965
- const isSelectCellComponent = ((_c = (_b = columnDefinition.cellEditor) == null ? void 0 : _b.render) == null ? void 0 : _c.displayName) === "SelectCellEditor";
55997
+ const isSelectCellComponent = ((_c = (_b = columnDefinition.cellRendererSelector) == null ? void 0 : _b.call(columnDefinition, {
55998
+ ...columnDefinition.cellRendererParams,
55999
+ node
56000
+ }).component) == null ? void 0 : _c.displayName) === "SelectCellRenderer";
55966
56001
  const URL = isSelectCellComponent && ((_d = columnDefinition == null ? void 0 : columnDefinition.cellRendererParams) == null ? void 0 : _d.getURL) ? columnDefinition.cellRendererParams.getURL(value) : null;
55967
56002
  const startEditing = useCallback(
55968
56003
  () => api.startEditingCell({
@@ -78226,12 +78261,16 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
78226
78261
  };
78227
78262
 
78228
78263
  // src/utils/expandRows.ts
78264
+ function getStringifiedRoute(node) {
78265
+ var _a;
78266
+ return (_a = node.getRoute()) == null ? void 0 : _a.map((r) => typeof r === "object" ? JSON.stringify(r) : r);
78267
+ }
78229
78268
  var getGroupRowState = (gridApi, groupDefaultExpanded = 0) => {
78230
78269
  const expandedRoutes = [];
78231
78270
  const collapsedRoutes = [];
78232
78271
  if (gridApi) {
78233
78272
  gridApi.forEachNode((node) => {
78234
- const route = node.getRoute();
78273
+ const route = getStringifiedRoute(node);
78235
78274
  if (route) {
78236
78275
  const routePath = route.join(",");
78237
78276
  const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
@@ -78252,7 +78291,7 @@ var setExpandCollapseRow = (gridApi, tableConfig, groupDefaultExpanded = 0) => {
78252
78291
  const expandedRoutes = ((_a = tableConfig.groupRowState) == null ? void 0 : _a.expandedRoutes) ?? [];
78253
78292
  const collapsedRoutes = ((_b = tableConfig.groupRowState) == null ? void 0 : _b.collapsedRoutes) ?? [];
78254
78293
  gridApi.forEachNode((node) => {
78255
- const route = node.getRoute();
78294
+ const route = getStringifiedRoute(node);
78256
78295
  if (route) {
78257
78296
  const routePath = route.join(",");
78258
78297
  const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
@@ -78270,7 +78309,7 @@ var isRowOpenedByDefault = (node, tableConfig, groupDefaultExpanded = 0) => {
78270
78309
  var _a, _b;
78271
78310
  const expandedRoutes = ((_a = tableConfig == null ? void 0 : tableConfig.groupRowState) == null ? void 0 : _a.expandedRoutes) ?? [];
78272
78311
  const collapsedRoutes = ((_b = tableConfig == null ? void 0 : tableConfig.groupRowState) == null ? void 0 : _b.collapsedRoutes) ?? [];
78273
- const route = node.getRoute();
78312
+ const route = getStringifiedRoute(node);
78274
78313
  if (!route) {
78275
78314
  return false;
78276
78315
  }
@@ -89343,4 +89382,4 @@ object-assign/index.js:
89343
89382
  *)
89344
89383
  */
89345
89384
 
89346
- export { Analytics_default as Analytics, AnalyticsBulkClient, BooleanCellEditor, BooleanCellRenderer, ButtonsCellRenderer, ClientSideDataTable_default as ClientSideDataTable, CompanyCellRenderer, CurrencyCellEditor, CurrencyCellRenderer, DateCellEditor, DateCellRenderer, DateFilterRenderer_default as DateFilterRenderer, DateQuickFilterRenderer_default as DateQuickFilterRenderer, DateTimeCellEditor, DateTimeCellRenderer, GrandTotalsLabelRenderer, GroupCellRenderer2 as GroupCellRenderer, LinkCellRenderer, LocationFilterRenderer, LocationQuickFilterRenderer_default as LocationQuickFilterRenderer, MultiSelectCellEditor, MultiSelectCellRenderer, MultiSelectFilterRenderer_default as MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer_default as MultiSelectQuickFilterRenderer, NumberCellEditor2 as NumberCellEditor, NumberCellRenderer, NumberFilterRenderer, PeopleCellRenderer, PercentCellEditor, PercentCellRenderer, PersonCellRenderer, PillCellRenderer, PillSelectCellEditor, SelectAllState, SelectCellEditor2 as SelectCellEditor, SelectCellRenderer, ServerSideDataTable_default as ServerSideDataTable, SingleSelectQuickFilterRenderer_default as SingleSelectQuickFilterRenderer, TextCellEditor2 as TextCellEditor, TextCellRenderer, UNSAFE_useTableContext, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
89385
+ export { Analytics_default as Analytics, AnalyticsBulkClient, BooleanCellEditor, BooleanCellRenderer, ButtonsCellRenderer, ClientSideDataTable_default as ClientSideDataTable, CompanyCellRenderer, CurrencyCellEditor, CurrencyCellRenderer, DateCellEditor, DateCellRenderer, DateFilterRenderer_default as DateFilterRenderer, DateQuickFilterRenderer_default as DateQuickFilterRenderer, DateTimeCellEditor, DateTimeCellRenderer, GrandTotalsLabelRenderer, GroupCellRenderer2 as GroupCellRenderer, LinkCellRenderer, LocationFilterRenderer, LocationQuickFilterRenderer_default as LocationQuickFilterRenderer, MultiSelectCellEditor, MultiSelectCellRenderer, MultiSelectFilterRenderer_default as MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer_default as MultiSelectQuickFilterRenderer, NumberCellEditor2 as NumberCellEditor, NumberCellRenderer, NumberFilterRenderer, PeopleCellRenderer, PercentCellEditor, PercentCellRenderer, PersonCellRenderer, PillCellRenderer, PillSelectCellEditor, SelectAllState, SelectCellEditor2 as SelectCellEditor, SelectCellRenderer, ServerSideDataTable_default as ServerSideDataTable, SingleSelectQuickFilterRenderer_default as SingleSelectQuickFilterRenderer, TextCellEditor2 as TextCellEditor, TextCellRenderer, UNSAFE_useTableContext, assignAlphabeticalFilterIndices, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
@@ -54156,6 +54156,37 @@ function sortColumnDefinitionsByFilterIndex(colDef1, colDef2) {
54156
54156
  }
54157
54157
  return filterIndex1 > filterIndex2 ? 1 : -1;
54158
54158
  }
54159
+ function assignAlphabeticalFilterIndices(columnDefinitions) {
54160
+ const newColumns = columnDefinitions.map((col) => ({
54161
+ ...col,
54162
+ filterProps: col.filterProps ? { ...col.filterProps } : void 0
54163
+ }));
54164
+ const filterColumns = newColumns.filter(
54165
+ (col) => col.filterRenderer || col.filterProps
54166
+ );
54167
+ const groups = {};
54168
+ filterColumns.forEach((col) => {
54169
+ const groupName = col.filterProps?.groupName || "default";
54170
+ if (!groups[groupName]) {
54171
+ groups[groupName] = [];
54172
+ }
54173
+ groups[groupName].push(col);
54174
+ });
54175
+ Object.values(groups).forEach((groupCols) => {
54176
+ groupCols.sort((a, b) => {
54177
+ const headerA = a.headerName || "";
54178
+ const headerB = b.headerName || "";
54179
+ return headerA.localeCompare(headerB);
54180
+ });
54181
+ groupCols.forEach((col, idx) => {
54182
+ if (!col.filterProps) {
54183
+ col.filterProps = {};
54184
+ }
54185
+ col.filterProps.index = idx;
54186
+ });
54187
+ });
54188
+ return newColumns;
54189
+ }
54159
54190
 
54160
54191
  // src/state/useFilterState.ts
54161
54192
  function isNumberFilterModel(value) {
@@ -55894,7 +55925,10 @@ var DataTableCellRenderer = ({
55894
55925
  value
55895
55926
  };
55896
55927
  const hasValue = value !== void 0 && value !== null && value !== "";
55897
- const isSelectCellComponent = columnDefinition.cellEditor?.render?.displayName === "SelectCellEditor";
55928
+ const isSelectCellComponent = columnDefinition.cellRendererSelector?.({
55929
+ ...columnDefinition.cellRendererParams,
55930
+ node
55931
+ }).component?.displayName === "SelectCellRenderer";
55898
55932
  const URL = isSelectCellComponent && columnDefinition?.cellRendererParams?.getURL ? columnDefinition.cellRendererParams.getURL(value) : null;
55899
55933
  const startEditing = React76.useCallback(
55900
55934
  () => api.startEditingCell({
@@ -78088,12 +78122,15 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
78088
78122
  };
78089
78123
 
78090
78124
  // src/utils/expandRows.ts
78125
+ function getStringifiedRoute(node) {
78126
+ return node.getRoute()?.map((r) => typeof r === "object" ? JSON.stringify(r) : r);
78127
+ }
78091
78128
  var getGroupRowState = (gridApi, groupDefaultExpanded = 0) => {
78092
78129
  const expandedRoutes = [];
78093
78130
  const collapsedRoutes = [];
78094
78131
  if (gridApi) {
78095
78132
  gridApi.forEachNode((node) => {
78096
- const route = node.getRoute();
78133
+ const route = getStringifiedRoute(node);
78097
78134
  if (route) {
78098
78135
  const routePath = route.join(",");
78099
78136
  const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
@@ -78113,7 +78150,7 @@ var setExpandCollapseRow = (gridApi, tableConfig, groupDefaultExpanded = 0) => {
78113
78150
  const expandedRoutes = tableConfig.groupRowState?.expandedRoutes ?? [];
78114
78151
  const collapsedRoutes = tableConfig.groupRowState?.collapsedRoutes ?? [];
78115
78152
  gridApi.forEachNode((node) => {
78116
- const route = node.getRoute();
78153
+ const route = getStringifiedRoute(node);
78117
78154
  if (route) {
78118
78155
  const routePath = route.join(",");
78119
78156
  const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
@@ -78130,7 +78167,7 @@ var setExpandCollapseRow = (gridApi, tableConfig, groupDefaultExpanded = 0) => {
78130
78167
  var isRowOpenedByDefault = (node, tableConfig, groupDefaultExpanded = 0) => {
78131
78168
  const expandedRoutes = tableConfig?.groupRowState?.expandedRoutes ?? [];
78132
78169
  const collapsedRoutes = tableConfig?.groupRowState?.collapsedRoutes ?? [];
78133
- const route = node.getRoute();
78170
+ const route = getStringifiedRoute(node);
78134
78171
  if (!route) {
78135
78172
  return false;
78136
78173
  }
@@ -89151,6 +89188,7 @@ exports.SingleSelectQuickFilterRenderer = SingleSelectQuickFilterRenderer_defaul
89151
89188
  exports.TextCellEditor = TextCellEditor2;
89152
89189
  exports.TextCellRenderer = TextCellRenderer;
89153
89190
  exports.UNSAFE_useTableContext = UNSAFE_useTableContext;
89191
+ exports.assignAlphabeticalFilterIndices = assignAlphabeticalFilterIndices;
89154
89192
  exports.rowSize = rowSize;
89155
89193
  exports.useAnalyticsContext = useAnalyticsContext;
89156
89194
  exports.useRowSelectionState = useRowSelectionState;
@@ -1457,6 +1457,8 @@ declare const useRowSelectionState: () => IRowNode<any>[];
1457
1457
  declare function withDataTableEditor(Component: React__default.ForwardRefExoticComponent<any>, editorType: 'input' | 'select' | 'date' | 'textarea'): React__default.ForwardRefExoticComponent<ICellEditorParams>;
1458
1458
  declare function withDataTableRenderer(Component: React__default.ComponentType<any>, editorType?: 'input' | 'select' | 'date' | 'textarea'): React__default.FC<ICellRendererParams>;
1459
1459
 
1460
+ declare function assignAlphabeticalFilterIndices(columnDefinitions: ColumnDefinition[]): ColumnDefinition[];
1461
+
1460
1462
  declare const waitForAsyncCondition: (condition: Function, maxAttempts?: number, timeout?: number, attempts?: number) => Promise<void>;
1461
1463
 
1462
1464
  /**
@@ -1469,4 +1471,4 @@ declare const waitForAsyncCondition: (condition: Function, maxAttempts?: number,
1469
1471
  */
1470
1472
  declare const UNSAFE_useTableContext: () => InternalTableContext;
1471
1473
 
1472
- export { type AgDomLayout, type AgGetDetailRowDataParams, type AgSort, type AggregationFunction, type AnalyticEvent, _default$2 as Analytics, AnalyticsBulkClient, type AnalyticsBulkConfig, type AnalyticsClient, type AnalyticsConfig$1 as AnalyticsConfig, type AvatarStackItemFilter, type BooleanCellColumnDefinition, BooleanCellEditor, type BooleanCellEditorProps, BooleanCellRenderer, type BooleanCellRendererProps, type ButtonsCellColumnDefinition, ButtonsCellRenderer, type CSVExportConfig, type CellValueChangeParams, _default$1 as ClientSideDataTable, type ClientSideDataTableProps, type ColumnConfig, type ColumnDefinition, type ColumnGroupStateConfig, type CompanyCellColumnDefinition, CompanyCellRenderer, type CompanyCellRendererProps, type ContextPanelApi, type ContextPanelContent, type CurrencyCellColumnDefinition, CurrencyCellEditor, type CurrencyCellEditorProps, CurrencyCellRenderer, type CurrencyCellRendererProps, type CustomBulkEditorFields, type CustomEditorCell, type CustomFilter, type CustomFooterConfig, type CustomRendererCell, type DTExcelFormats, type DataTableCellEditorProps, type DataTableCellRendererProps, type DataTableConfig, type DataTableProps, type DataTableTranslations, type DateCellColumnDefinition, DateCellEditor, type DateCellEditorProps, DateCellRenderer, type DateCellRendererProps, DateFilterRenderer, type DateFilterSelectionType, QuickDateFilterRenderer as DateQuickFilterRenderer, type DateTimeCellColumnDefinition, DateTimeCellEditor, DateTimeCellRenderer, type DetailRowConfig, type EmptyRendererProps, type ExcelExportConfig, type ExtendedColDef, type FilterGroup, type FrameworkComponents, type GetDetailRowDataParams, type GetRowHeightWithFooters, GrandTotalsLabelRenderer, type GranularPartial, type GranularRequired, type GroupCellColumnDefinition, GroupCellRenderer, type HTMLStringExportConfig, type ISearchState, type IServerFilter, type IsEditableParams, type IsRowSelectable, type LinkCellColumnDefinition, LinkCellRenderer, type LinkCellRendererProps, type LocationColumnDefinition, type LocationFilterOpt, LocationFilterRenderer, LocationQuickFilterRenderer, type MultiSelectCellColumnDefinition, MultiSelectCellEditor, MultiSelectCellRenderer, type MultiSelectCellRendererProps, MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer, type NestedColumnDefinition, type NumberCellColumnDefinition, NumberCellEditor, type NumberCellEditorProps, NumberCellRenderer, type NumberCellRendererProps, NumberFilterRenderer, type PartialTableApi, type PeopleCellColumnDefinition, PeopleCellRenderer, type PeopleCellRendererProps, type PercentCellColumnDefinition, PercentCellEditor, type PercentCellEditorProps, PercentCellRenderer, type PercentCellRendererProps, PersonCellRenderer, type PillCellColumnDefinition, PillCellRenderer, type PillCellRendererProps, PillSelectCellEditor, type PillSelectCellEditorProps, type PinnedBottomRow, type RefreshServerSideDataParams, type RowActionsConfig, type RowActivePredicateParams, type RowGroupToggledEvent, type RowNode, type RowSelectablePredicateParams, type RowSelectionRef, SelectAllState, type SelectCellColumnDefinition, SelectCellEditor, type SelectCellEditorProps, SelectCellRenderer, type SelectCellRendererProps, _default as ServerSideDataTable, type DataTableProps as ServerSideDataTableProps, type ServerSideGetRowsParams, type ServerSideGetRowsRequest, type ServerSideParamsOptions, SingleSelectQuickFilterRenderer, type SortModel, type SuccessParams, type TableApi, type TableFrameworkComponents, type TablePanelProps, type TableProps, type TextAreaCellColumnDefinition, type TextAreaCellEditorProps, type TextAreaCellRendererProps, type TextCellColumnDefinition, TextCellEditor, type TextCellEditorProps, TextCellRenderer, type TextCellRendererProps, UNSAFE_useTableContext, type UpdateServerSideDataSourceParams, type ValueGetterParams, type ValueParserParams, type ValueSetterParams, type ValueValidator, type ValueValidatorParams, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
1474
+ export { type AgDomLayout, type AgGetDetailRowDataParams, type AgSort, type AggregationFunction, type AnalyticEvent, _default$2 as Analytics, AnalyticsBulkClient, type AnalyticsBulkConfig, type AnalyticsClient, type AnalyticsConfig$1 as AnalyticsConfig, type AvatarStackItemFilter, type BooleanCellColumnDefinition, BooleanCellEditor, type BooleanCellEditorProps, BooleanCellRenderer, type BooleanCellRendererProps, type ButtonsCellColumnDefinition, ButtonsCellRenderer, type CSVExportConfig, type CellValueChangeParams, _default$1 as ClientSideDataTable, type ClientSideDataTableProps, type ColumnConfig, type ColumnDefinition, type ColumnGroupStateConfig, type CompanyCellColumnDefinition, CompanyCellRenderer, type CompanyCellRendererProps, type ContextPanelApi, type ContextPanelContent, type CurrencyCellColumnDefinition, CurrencyCellEditor, type CurrencyCellEditorProps, CurrencyCellRenderer, type CurrencyCellRendererProps, type CustomBulkEditorFields, type CustomEditorCell, type CustomFilter, type CustomFooterConfig, type CustomRendererCell, type DTExcelFormats, type DataTableCellEditorProps, type DataTableCellRendererProps, type DataTableConfig, type DataTableProps, type DataTableTranslations, type DateCellColumnDefinition, DateCellEditor, type DateCellEditorProps, DateCellRenderer, type DateCellRendererProps, DateFilterRenderer, type DateFilterSelectionType, QuickDateFilterRenderer as DateQuickFilterRenderer, type DateTimeCellColumnDefinition, DateTimeCellEditor, DateTimeCellRenderer, type DetailRowConfig, type EmptyRendererProps, type ExcelExportConfig, type ExtendedColDef, type FilterGroup, type FrameworkComponents, type GetDetailRowDataParams, type GetRowHeightWithFooters, GrandTotalsLabelRenderer, type GranularPartial, type GranularRequired, type GroupCellColumnDefinition, GroupCellRenderer, type HTMLStringExportConfig, type ISearchState, type IServerFilter, type IsEditableParams, type IsRowSelectable, type LinkCellColumnDefinition, LinkCellRenderer, type LinkCellRendererProps, type LocationColumnDefinition, type LocationFilterOpt, LocationFilterRenderer, LocationQuickFilterRenderer, type MultiSelectCellColumnDefinition, MultiSelectCellEditor, MultiSelectCellRenderer, type MultiSelectCellRendererProps, MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer, type NestedColumnDefinition, type NumberCellColumnDefinition, NumberCellEditor, type NumberCellEditorProps, NumberCellRenderer, type NumberCellRendererProps, NumberFilterRenderer, type PartialTableApi, type PeopleCellColumnDefinition, PeopleCellRenderer, type PeopleCellRendererProps, type PercentCellColumnDefinition, PercentCellEditor, type PercentCellEditorProps, PercentCellRenderer, type PercentCellRendererProps, PersonCellRenderer, type PillCellColumnDefinition, PillCellRenderer, type PillCellRendererProps, PillSelectCellEditor, type PillSelectCellEditorProps, type PinnedBottomRow, type RefreshServerSideDataParams, type RowActionsConfig, type RowActivePredicateParams, type RowGroupToggledEvent, type RowNode, type RowSelectablePredicateParams, type RowSelectionRef, SelectAllState, type SelectCellColumnDefinition, SelectCellEditor, type SelectCellEditorProps, SelectCellRenderer, type SelectCellRendererProps, _default as ServerSideDataTable, type DataTableProps as ServerSideDataTableProps, type ServerSideGetRowsParams, type ServerSideGetRowsRequest, type ServerSideParamsOptions, SingleSelectQuickFilterRenderer, type SortModel, type SuccessParams, type TableApi, type TableFrameworkComponents, type TablePanelProps, type TableProps, type TextAreaCellColumnDefinition, type TextAreaCellEditorProps, type TextAreaCellRendererProps, type TextCellColumnDefinition, TextCellEditor, type TextCellEditorProps, TextCellRenderer, type TextCellRendererProps, UNSAFE_useTableContext, type UpdateServerSideDataSourceParams, type ValueGetterParams, type ValueParserParams, type ValueSetterParams, type ValueValidator, type ValueValidatorParams, assignAlphabeticalFilterIndices, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
@@ -1457,6 +1457,8 @@ declare const useRowSelectionState: () => IRowNode<any>[];
1457
1457
  declare function withDataTableEditor(Component: React__default.ForwardRefExoticComponent<any>, editorType: 'input' | 'select' | 'date' | 'textarea'): React__default.ForwardRefExoticComponent<ICellEditorParams>;
1458
1458
  declare function withDataTableRenderer(Component: React__default.ComponentType<any>, editorType?: 'input' | 'select' | 'date' | 'textarea'): React__default.FC<ICellRendererParams>;
1459
1459
 
1460
+ declare function assignAlphabeticalFilterIndices(columnDefinitions: ColumnDefinition[]): ColumnDefinition[];
1461
+
1460
1462
  declare const waitForAsyncCondition: (condition: Function, maxAttempts?: number, timeout?: number, attempts?: number) => Promise<void>;
1461
1463
 
1462
1464
  /**
@@ -1469,4 +1471,4 @@ declare const waitForAsyncCondition: (condition: Function, maxAttempts?: number,
1469
1471
  */
1470
1472
  declare const UNSAFE_useTableContext: () => InternalTableContext;
1471
1473
 
1472
- export { type AgDomLayout, type AgGetDetailRowDataParams, type AgSort, type AggregationFunction, type AnalyticEvent, _default$2 as Analytics, AnalyticsBulkClient, type AnalyticsBulkConfig, type AnalyticsClient, type AnalyticsConfig$1 as AnalyticsConfig, type AvatarStackItemFilter, type BooleanCellColumnDefinition, BooleanCellEditor, type BooleanCellEditorProps, BooleanCellRenderer, type BooleanCellRendererProps, type ButtonsCellColumnDefinition, ButtonsCellRenderer, type CSVExportConfig, type CellValueChangeParams, _default$1 as ClientSideDataTable, type ClientSideDataTableProps, type ColumnConfig, type ColumnDefinition, type ColumnGroupStateConfig, type CompanyCellColumnDefinition, CompanyCellRenderer, type CompanyCellRendererProps, type ContextPanelApi, type ContextPanelContent, type CurrencyCellColumnDefinition, CurrencyCellEditor, type CurrencyCellEditorProps, CurrencyCellRenderer, type CurrencyCellRendererProps, type CustomBulkEditorFields, type CustomEditorCell, type CustomFilter, type CustomFooterConfig, type CustomRendererCell, type DTExcelFormats, type DataTableCellEditorProps, type DataTableCellRendererProps, type DataTableConfig, type DataTableProps, type DataTableTranslations, type DateCellColumnDefinition, DateCellEditor, type DateCellEditorProps, DateCellRenderer, type DateCellRendererProps, DateFilterRenderer, type DateFilterSelectionType, QuickDateFilterRenderer as DateQuickFilterRenderer, type DateTimeCellColumnDefinition, DateTimeCellEditor, DateTimeCellRenderer, type DetailRowConfig, type EmptyRendererProps, type ExcelExportConfig, type ExtendedColDef, type FilterGroup, type FrameworkComponents, type GetDetailRowDataParams, type GetRowHeightWithFooters, GrandTotalsLabelRenderer, type GranularPartial, type GranularRequired, type GroupCellColumnDefinition, GroupCellRenderer, type HTMLStringExportConfig, type ISearchState, type IServerFilter, type IsEditableParams, type IsRowSelectable, type LinkCellColumnDefinition, LinkCellRenderer, type LinkCellRendererProps, type LocationColumnDefinition, type LocationFilterOpt, LocationFilterRenderer, LocationQuickFilterRenderer, type MultiSelectCellColumnDefinition, MultiSelectCellEditor, MultiSelectCellRenderer, type MultiSelectCellRendererProps, MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer, type NestedColumnDefinition, type NumberCellColumnDefinition, NumberCellEditor, type NumberCellEditorProps, NumberCellRenderer, type NumberCellRendererProps, NumberFilterRenderer, type PartialTableApi, type PeopleCellColumnDefinition, PeopleCellRenderer, type PeopleCellRendererProps, type PercentCellColumnDefinition, PercentCellEditor, type PercentCellEditorProps, PercentCellRenderer, type PercentCellRendererProps, PersonCellRenderer, type PillCellColumnDefinition, PillCellRenderer, type PillCellRendererProps, PillSelectCellEditor, type PillSelectCellEditorProps, type PinnedBottomRow, type RefreshServerSideDataParams, type RowActionsConfig, type RowActivePredicateParams, type RowGroupToggledEvent, type RowNode, type RowSelectablePredicateParams, type RowSelectionRef, SelectAllState, type SelectCellColumnDefinition, SelectCellEditor, type SelectCellEditorProps, SelectCellRenderer, type SelectCellRendererProps, _default as ServerSideDataTable, type DataTableProps as ServerSideDataTableProps, type ServerSideGetRowsParams, type ServerSideGetRowsRequest, type ServerSideParamsOptions, SingleSelectQuickFilterRenderer, type SortModel, type SuccessParams, type TableApi, type TableFrameworkComponents, type TablePanelProps, type TableProps, type TextAreaCellColumnDefinition, type TextAreaCellEditorProps, type TextAreaCellRendererProps, type TextCellColumnDefinition, TextCellEditor, type TextCellEditorProps, TextCellRenderer, type TextCellRendererProps, UNSAFE_useTableContext, type UpdateServerSideDataSourceParams, type ValueGetterParams, type ValueParserParams, type ValueSetterParams, type ValueValidator, type ValueValidatorParams, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
1474
+ export { type AgDomLayout, type AgGetDetailRowDataParams, type AgSort, type AggregationFunction, type AnalyticEvent, _default$2 as Analytics, AnalyticsBulkClient, type AnalyticsBulkConfig, type AnalyticsClient, type AnalyticsConfig$1 as AnalyticsConfig, type AvatarStackItemFilter, type BooleanCellColumnDefinition, BooleanCellEditor, type BooleanCellEditorProps, BooleanCellRenderer, type BooleanCellRendererProps, type ButtonsCellColumnDefinition, ButtonsCellRenderer, type CSVExportConfig, type CellValueChangeParams, _default$1 as ClientSideDataTable, type ClientSideDataTableProps, type ColumnConfig, type ColumnDefinition, type ColumnGroupStateConfig, type CompanyCellColumnDefinition, CompanyCellRenderer, type CompanyCellRendererProps, type ContextPanelApi, type ContextPanelContent, type CurrencyCellColumnDefinition, CurrencyCellEditor, type CurrencyCellEditorProps, CurrencyCellRenderer, type CurrencyCellRendererProps, type CustomBulkEditorFields, type CustomEditorCell, type CustomFilter, type CustomFooterConfig, type CustomRendererCell, type DTExcelFormats, type DataTableCellEditorProps, type DataTableCellRendererProps, type DataTableConfig, type DataTableProps, type DataTableTranslations, type DateCellColumnDefinition, DateCellEditor, type DateCellEditorProps, DateCellRenderer, type DateCellRendererProps, DateFilterRenderer, type DateFilterSelectionType, QuickDateFilterRenderer as DateQuickFilterRenderer, type DateTimeCellColumnDefinition, DateTimeCellEditor, DateTimeCellRenderer, type DetailRowConfig, type EmptyRendererProps, type ExcelExportConfig, type ExtendedColDef, type FilterGroup, type FrameworkComponents, type GetDetailRowDataParams, type GetRowHeightWithFooters, GrandTotalsLabelRenderer, type GranularPartial, type GranularRequired, type GroupCellColumnDefinition, GroupCellRenderer, type HTMLStringExportConfig, type ISearchState, type IServerFilter, type IsEditableParams, type IsRowSelectable, type LinkCellColumnDefinition, LinkCellRenderer, type LinkCellRendererProps, type LocationColumnDefinition, type LocationFilterOpt, LocationFilterRenderer, LocationQuickFilterRenderer, type MultiSelectCellColumnDefinition, MultiSelectCellEditor, MultiSelectCellRenderer, type MultiSelectCellRendererProps, MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer, type NestedColumnDefinition, type NumberCellColumnDefinition, NumberCellEditor, type NumberCellEditorProps, NumberCellRenderer, type NumberCellRendererProps, NumberFilterRenderer, type PartialTableApi, type PeopleCellColumnDefinition, PeopleCellRenderer, type PeopleCellRendererProps, type PercentCellColumnDefinition, PercentCellEditor, type PercentCellEditorProps, PercentCellRenderer, type PercentCellRendererProps, PersonCellRenderer, type PillCellColumnDefinition, PillCellRenderer, type PillCellRendererProps, PillSelectCellEditor, type PillSelectCellEditorProps, type PinnedBottomRow, type RefreshServerSideDataParams, type RowActionsConfig, type RowActivePredicateParams, type RowGroupToggledEvent, type RowNode, type RowSelectablePredicateParams, type RowSelectionRef, SelectAllState, type SelectCellColumnDefinition, SelectCellEditor, type SelectCellEditorProps, SelectCellRenderer, type SelectCellRendererProps, _default as ServerSideDataTable, type DataTableProps as ServerSideDataTableProps, type ServerSideGetRowsParams, type ServerSideGetRowsRequest, type ServerSideParamsOptions, SingleSelectQuickFilterRenderer, type SortModel, type SuccessParams, type TableApi, type TableFrameworkComponents, type TablePanelProps, type TableProps, type TextAreaCellColumnDefinition, type TextAreaCellEditorProps, type TextAreaCellRendererProps, type TextCellColumnDefinition, TextCellEditor, type TextCellEditorProps, TextCellRenderer, type TextCellRendererProps, UNSAFE_useTableContext, type UpdateServerSideDataSourceParams, type ValueGetterParams, type ValueParserParams, type ValueSetterParams, type ValueValidator, type ValueValidatorParams, assignAlphabeticalFilterIndices, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
@@ -54142,6 +54142,37 @@ function sortColumnDefinitionsByFilterIndex(colDef1, colDef2) {
54142
54142
  }
54143
54143
  return filterIndex1 > filterIndex2 ? 1 : -1;
54144
54144
  }
54145
+ function assignAlphabeticalFilterIndices(columnDefinitions) {
54146
+ const newColumns = columnDefinitions.map((col) => ({
54147
+ ...col,
54148
+ filterProps: col.filterProps ? { ...col.filterProps } : void 0
54149
+ }));
54150
+ const filterColumns = newColumns.filter(
54151
+ (col) => col.filterRenderer || col.filterProps
54152
+ );
54153
+ const groups = {};
54154
+ filterColumns.forEach((col) => {
54155
+ const groupName = col.filterProps?.groupName || "default";
54156
+ if (!groups[groupName]) {
54157
+ groups[groupName] = [];
54158
+ }
54159
+ groups[groupName].push(col);
54160
+ });
54161
+ Object.values(groups).forEach((groupCols) => {
54162
+ groupCols.sort((a, b) => {
54163
+ const headerA = a.headerName || "";
54164
+ const headerB = b.headerName || "";
54165
+ return headerA.localeCompare(headerB);
54166
+ });
54167
+ groupCols.forEach((col, idx) => {
54168
+ if (!col.filterProps) {
54169
+ col.filterProps = {};
54170
+ }
54171
+ col.filterProps.index = idx;
54172
+ });
54173
+ });
54174
+ return newColumns;
54175
+ }
54145
54176
 
54146
54177
  // src/state/useFilterState.ts
54147
54178
  function isNumberFilterModel(value) {
@@ -55880,7 +55911,10 @@ var DataTableCellRenderer = ({
55880
55911
  value
55881
55912
  };
55882
55913
  const hasValue = value !== void 0 && value !== null && value !== "";
55883
- const isSelectCellComponent = columnDefinition.cellEditor?.render?.displayName === "SelectCellEditor";
55914
+ const isSelectCellComponent = columnDefinition.cellRendererSelector?.({
55915
+ ...columnDefinition.cellRendererParams,
55916
+ node
55917
+ }).component?.displayName === "SelectCellRenderer";
55884
55918
  const URL = isSelectCellComponent && columnDefinition?.cellRendererParams?.getURL ? columnDefinition.cellRendererParams.getURL(value) : null;
55885
55919
  const startEditing = useCallback(
55886
55920
  () => api.startEditingCell({
@@ -78074,12 +78108,15 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
78074
78108
  };
78075
78109
 
78076
78110
  // src/utils/expandRows.ts
78111
+ function getStringifiedRoute(node) {
78112
+ return node.getRoute()?.map((r) => typeof r === "object" ? JSON.stringify(r) : r);
78113
+ }
78077
78114
  var getGroupRowState = (gridApi, groupDefaultExpanded = 0) => {
78078
78115
  const expandedRoutes = [];
78079
78116
  const collapsedRoutes = [];
78080
78117
  if (gridApi) {
78081
78118
  gridApi.forEachNode((node) => {
78082
- const route = node.getRoute();
78119
+ const route = getStringifiedRoute(node);
78083
78120
  if (route) {
78084
78121
  const routePath = route.join(",");
78085
78122
  const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
@@ -78099,7 +78136,7 @@ var setExpandCollapseRow = (gridApi, tableConfig, groupDefaultExpanded = 0) => {
78099
78136
  const expandedRoutes = tableConfig.groupRowState?.expandedRoutes ?? [];
78100
78137
  const collapsedRoutes = tableConfig.groupRowState?.collapsedRoutes ?? [];
78101
78138
  gridApi.forEachNode((node) => {
78102
- const route = node.getRoute();
78139
+ const route = getStringifiedRoute(node);
78103
78140
  if (route) {
78104
78141
  const routePath = route.join(",");
78105
78142
  const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
@@ -78116,7 +78153,7 @@ var setExpandCollapseRow = (gridApi, tableConfig, groupDefaultExpanded = 0) => {
78116
78153
  var isRowOpenedByDefault = (node, tableConfig, groupDefaultExpanded = 0) => {
78117
78154
  const expandedRoutes = tableConfig?.groupRowState?.expandedRoutes ?? [];
78118
78155
  const collapsedRoutes = tableConfig?.groupRowState?.collapsedRoutes ?? [];
78119
- const route = node.getRoute();
78156
+ const route = getStringifiedRoute(node);
78120
78157
  if (!route) {
78121
78158
  return false;
78122
78159
  }
@@ -89096,4 +89133,4 @@ object-assign/index.js:
89096
89133
  *)
89097
89134
  */
89098
89135
 
89099
- export { Analytics_default as Analytics, AnalyticsBulkClient, BooleanCellEditor, BooleanCellRenderer, ButtonsCellRenderer, ClientSideDataTable_default as ClientSideDataTable, CompanyCellRenderer, CurrencyCellEditor, CurrencyCellRenderer, DateCellEditor, DateCellRenderer, DateFilterRenderer_default as DateFilterRenderer, DateQuickFilterRenderer_default as DateQuickFilterRenderer, DateTimeCellEditor, DateTimeCellRenderer, GrandTotalsLabelRenderer, GroupCellRenderer2 as GroupCellRenderer, LinkCellRenderer, LocationFilterRenderer, LocationQuickFilterRenderer_default as LocationQuickFilterRenderer, MultiSelectCellEditor, MultiSelectCellRenderer, MultiSelectFilterRenderer_default as MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer_default as MultiSelectQuickFilterRenderer, NumberCellEditor2 as NumberCellEditor, NumberCellRenderer, NumberFilterRenderer, PeopleCellRenderer, PercentCellEditor, PercentCellRenderer, PersonCellRenderer, PillCellRenderer, PillSelectCellEditor, SelectAllState, SelectCellEditor2 as SelectCellEditor, SelectCellRenderer, ServerSideDataTable_default as ServerSideDataTable, SingleSelectQuickFilterRenderer_default as SingleSelectQuickFilterRenderer, TextCellEditor2 as TextCellEditor, TextCellRenderer, UNSAFE_useTableContext, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
89136
+ export { Analytics_default as Analytics, AnalyticsBulkClient, BooleanCellEditor, BooleanCellRenderer, ButtonsCellRenderer, ClientSideDataTable_default as ClientSideDataTable, CompanyCellRenderer, CurrencyCellEditor, CurrencyCellRenderer, DateCellEditor, DateCellRenderer, DateFilterRenderer_default as DateFilterRenderer, DateQuickFilterRenderer_default as DateQuickFilterRenderer, DateTimeCellEditor, DateTimeCellRenderer, GrandTotalsLabelRenderer, GroupCellRenderer2 as GroupCellRenderer, LinkCellRenderer, LocationFilterRenderer, LocationQuickFilterRenderer_default as LocationQuickFilterRenderer, MultiSelectCellEditor, MultiSelectCellRenderer, MultiSelectFilterRenderer_default as MultiSelectFilterRenderer, MultiSelectQuickFilterRenderer_default as MultiSelectQuickFilterRenderer, NumberCellEditor2 as NumberCellEditor, NumberCellRenderer, NumberFilterRenderer, PeopleCellRenderer, PercentCellEditor, PercentCellRenderer, PersonCellRenderer, PillCellRenderer, PillSelectCellEditor, SelectAllState, SelectCellEditor2 as SelectCellEditor, SelectCellRenderer, ServerSideDataTable_default as ServerSideDataTable, SingleSelectQuickFilterRenderer_default as SingleSelectQuickFilterRenderer, TextCellEditor2 as TextCellEditor, TextCellRenderer, UNSAFE_useTableContext, assignAlphabeticalFilterIndices, rowSize, useAnalyticsContext, useRowSelectionState, waitForAsyncCondition, withDataTableEditor, withDataTableRenderer };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procore/data-table",
3
- "version": "14.16.0",
3
+ "version": "14.17.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",
@@ -111,7 +111,7 @@
111
111
  "@procore/core-css": "10.17.0",
112
112
  "@procore/core-icons": "12.2.0",
113
113
  "@procore/core-prettier": "10.2.0",
114
- "@procore/core-react": "12.12.1",
114
+ "@procore/core-react": "12.13.0",
115
115
  "@procore/eslint-config": "10.0.0",
116
116
  "@procore/globalization-toolkit": "3.1.0",
117
117
  "@procore/labs-financials-utils": "3.0.1",