@redsift/table 12.5.3 → 12.5.4-muiv6-alpha.1

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/index.js CHANGED
@@ -1,19 +1,17 @@
1
- import { o as operatorList, D as DOES_NOT_CONTAIN, a as DOES_NOT_EQUAL, b as DOES_NOT_START_WITH, c as DOES_NOT_END_WITH, I as IS_ANY_OF, d as IS_NOT_ANY_OF, C as CONTAINS_ANY_OF, e as DOES_NOT_CONTAIN_ANY_OF, S as STARTS_WITH_ANY_OF, f as DOES_NOT_START_WITH_ANY_OF, E as ENDS_WITH_ANY_OF, g as DOES_NOT_END_WITH_ANY_OF, h as IS_BETWEEN, i as IS_WITH_SELECT, j as IS_NOT_WITH_SELECT, k as IS_ANY_OF_WITH_SELECT, l as IS_NOT_ANY_OF_WITH_SELECT, A as ARRAY_IS_EMPTY, m as ARRAY_IS_NOT_EMPTY, H as HAS_WITH_SELECT, n as DOES_NOT_HAVE_WITH_SELECT, p as HAS_ANY_OF_WITH_SELECT, q as HAS_ALL_OF_WITH_SELECT, r as DOES_NOT_HAVE_ANY_OF_WITH_SELECT, s as HAS_ONLY_WITH_SELECT, t as HAS, u as DOES_NOT_HAVE, v as HAS_ANY_OF, w as HAS_ALL_OF, x as DOES_NOT_HAVE_ANY_OF, y as HAS_ONLY } from './_internal/StatefulDataGrid2.js';
2
- export { X as AGGREGATION_MODEL_KEY, A as ARRAY_IS_EMPTY, m as ARRAY_IS_NOT_EMPTY, _ as CATEGORIES, U as COLUMN_ORDER_MODEL_KEY, C as CONTAINS_ANY_OF, T as DENSITY_MODEL_KEY, Q as DIMENSION_MODEL_KEY, D as DOES_NOT_CONTAIN, e as DOES_NOT_CONTAIN_ANY_OF, c as DOES_NOT_END_WITH, g as DOES_NOT_END_WITH_ANY_OF, a as DOES_NOT_EQUAL, u as DOES_NOT_HAVE, x as DOES_NOT_HAVE_ANY_OF, r as DOES_NOT_HAVE_ANY_OF_WITH_SELECT, n as DOES_NOT_HAVE_WITH_SELECT, b as DOES_NOT_START_WITH, f as DOES_NOT_START_WITH_ANY_OF, E as ENDS_WITH_ANY_OF, M as FILTER_MODEL_KEY, R as FILTER_SEARCH_KEY, t as HAS, w as HAS_ALL_OF, q as HAS_ALL_OF_WITH_SELECT, v as HAS_ANY_OF, p as HAS_ANY_OF_WITH_SELECT, y as HAS_ONLY, s as HAS_ONLY_WITH_SELECT, H as HAS_WITH_SELECT, B as IS, I as IS_ANY_OF, k as IS_ANY_OF_WITH_SELECT, h as IS_BETWEEN, F as IS_NOT, d as IS_NOT_ANY_OF, l as IS_NOT_ANY_OF_WITH_SELECT, j as IS_NOT_WITH_SELECT, i as IS_WITH_SELECT, P as PAGINATION_MODEL_KEY, O as PINNED_COLUMNS, Z as PIVOT_ACTIVE_KEY, Y as PIVOT_MODEL_KEY, W as ROW_GROUPING_MODEL_KEY, N as SORT_MODEL_KEY, S as STARTS_WITH_ANY_OF, aI as StatefulDataGrid, V as VISIBILITY_MODEL_KEY, aH as areFilterModelsEquivalent, a7 as areSearchStringsEqual, a6 as buildQueryParamsString, $ as buildStorageKey, a1 as clearAllVersionStorage, a0 as clearPreviousVersionStorage, a4 as convertFromDisplayFormat, a3 as convertToDisplayFormat, a8 as decodeValue, a9 as encodeValue, az as fromGridPivotModel, ax as getAggregationFromString, at as getColumnOrderFromString, al as getColumnVisibilityFromString, a5 as getDecodedSearchFromUrl, aq as getDensityFromString, as as getDensityModel, af as getFilterModelFromString, aE as getFinalSearch, z as getGridNumericOperators, J as getGridStringArrayOperators, K as getGridStringArrayOperatorsWithSelect, L as getGridStringArrayOperatorsWithSelectOnStringArrayColumns, G as getGridStringOperators, aF as getModelsParsedOrUpdateLocalStorage, aj as getPaginationFromString, an as getPinnedColumnsFromString, aC as getPivotActiveFromString, aA as getPivotFromString, av as getRowGroupingFromString, ay as getSearchParamsFromAggregation, au as getSearchParamsFromColumnOrder, am as getSearchParamsFromColumnVisibility, ar as getSearchParamsFromDensity, ag as getSearchParamsFromFilterModel, ak as getSearchParamsFromPagination, ao as getSearchParamsFromPinnedColumns, aB as getSearchParamsFromPivot, aD as getSearchParamsFromPivotActive, aw as getSearchParamsFromRowGrouping, ai as getSearchParamsFromSorting, ap as getSearchParamsFromTab, ah as getSortingFromString, ad as isOperatorValueValid, ae as isValueValid, ac as numberOperatorDecoder, ab as numberOperatorEncoder, o as operatorList, a2 as resetStatefulDataGridState, aG as updateUrl, aa as urlSearchParamsToString } from './_internal/StatefulDataGrid2.js';
3
- import { GRID_DETAIL_PANEL_TOGGLE_COL_DEF, GridFilterInputMultipleValue, GridFilterInputMultipleSingleSelect, getGridDateOperators, getGridStringOperators, getGridNumericOperators } from '@mui/x-data-grid-premium';
4
- export { getGridBooleanOperators, getGridDateOperators, getGridSingleSelectOperators } from '@mui/x-data-grid-premium';
1
+ import { B as Box, T as TextField, o as operatorList, D as DOES_NOT_CONTAIN, a as DOES_NOT_EQUAL, b as DOES_NOT_START_WITH, c as DOES_NOT_END_WITH, I as IS_ANY_OF, d as IS_NOT_ANY_OF, C as CONTAINS_ANY_OF, e as DOES_NOT_CONTAIN_ANY_OF, S as STARTS_WITH_ANY_OF, f as DOES_NOT_START_WITH_ANY_OF, E as ENDS_WITH_ANY_OF, g as DOES_NOT_END_WITH_ANY_OF, h as IS_BETWEEN, i as IS_WITH_SELECT, j as IS_NOT_WITH_SELECT, k as IS_ANY_OF_WITH_SELECT, l as IS_NOT_ANY_OF_WITH_SELECT, A as ARRAY_IS_EMPTY, m as ARRAY_IS_NOT_EMPTY, H as HAS_WITH_SELECT, n as DOES_NOT_HAVE_WITH_SELECT, p as HAS_ANY_OF_WITH_SELECT, q as HAS_ALL_OF_WITH_SELECT, r as DOES_NOT_HAVE_ANY_OF_WITH_SELECT, s as HAS_ONLY_WITH_SELECT, t as HAS, u as DOES_NOT_HAVE, v as HAS_ANY_OF, w as HAS_ALL_OF, x as DOES_NOT_HAVE_ANY_OF, y as HAS_ONLY } from './_internal/StatefulDataGrid2.js';
2
+ export { A as ARRAY_IS_EMPTY, m as ARRAY_IS_NOT_EMPTY, Y as CATEGORIES, X as COLUMN_ORDER_MODEL_KEY, C as CONTAINS_ANY_OF, W as DENSITY_MODEL_KEY, R as DIMENSION_MODEL_KEY, D as DOES_NOT_CONTAIN, e as DOES_NOT_CONTAIN_ANY_OF, c as DOES_NOT_END_WITH, g as DOES_NOT_END_WITH_ANY_OF, a as DOES_NOT_EQUAL, u as DOES_NOT_HAVE, x as DOES_NOT_HAVE_ANY_OF, r as DOES_NOT_HAVE_ANY_OF_WITH_SELECT, n as DOES_NOT_HAVE_WITH_SELECT, b as DOES_NOT_START_WITH, f as DOES_NOT_START_WITH_ANY_OF, E as ENDS_WITH_ANY_OF, N as FILTER_MODEL_KEY, U as FILTER_SEARCH_KEY, t as HAS, w as HAS_ALL_OF, q as HAS_ALL_OF_WITH_SELECT, v as HAS_ANY_OF, p as HAS_ANY_OF_WITH_SELECT, y as HAS_ONLY, s as HAS_ONLY_WITH_SELECT, H as HAS_WITH_SELECT, F as IS, I as IS_ANY_OF, k as IS_ANY_OF_WITH_SELECT, h as IS_BETWEEN, G as IS_NOT, d as IS_NOT_ANY_OF, l as IS_NOT_ANY_OF_WITH_SELECT, j as IS_NOT_WITH_SELECT, i as IS_WITH_SELECT, P as PAGINATION_MODEL_KEY, Q as PINNED_COLUMNS, O as SORT_MODEL_KEY, S as STARTS_WITH_ANY_OF, aw as StatefulDataGrid, V as VISIBILITY_MODEL_KEY, av as areFilterModelsEquivalent, a5 as areSearchStringsEqual, a4 as buildQueryParamsString, Z as buildStorageKey, $ as clearAllVersionStorage, _ as clearPreviousVersionStorage, a2 as convertFromDisplayFormat, a1 as convertToDisplayFormat, a6 as decodeValue, a7 as encodeValue, aq as getColumnOrderFromString, aj as getColumnVisibilityFromString, a3 as getDecodedSearchFromUrl, ao as getDensityFromString, ad as getFilterModelFromString, as as getFinalSearch, z as getGridNumericOperators, K as getGridStringArrayOperators, L as getGridStringArrayOperatorsWithSelect, M as getGridStringArrayOperatorsWithSelectOnStringArrayColumns, J as getGridStringOperators, at as getModelsParsedOrUpdateLocalStorage, ah as getPaginationFromString, al as getPinnedColumnsFromString, ar as getSearchParamsFromColumnOrder, ak as getSearchParamsFromColumnVisibility, ap as getSearchParamsFromDensity, ae as getSearchParamsFromFilterModel, ai as getSearchParamsFromPagination, am as getSearchParamsFromPinnedColumns, ag as getSearchParamsFromSorting, an as getSearchParamsFromTab, af as getSortingFromString, ab as isOperatorValueValid, ac as isValueValid, aa as numberOperatorDecoder, a9 as numberOperatorEncoder, o as operatorList, a0 as resetStatefulDataGridState, au as updateUrl, a8 as urlSearchParamsToString } from './_internal/StatefulDataGrid2.js';
3
+ import { GRID_DETAIL_PANEL_TOGGLE_COL_DEF, getGridDateOperators, getGridStringOperators, getGridNumericOperators } from '@mui/x-data-grid-pro';
4
+ export { getGridBooleanOperators, getGridDateOperators, getGridSingleSelectOperators } from '@mui/x-data-grid-pro';
5
5
  import { _ as _objectSpread2 } from './_internal/_rollupPluginBabelHelpers.js';
6
6
  import * as React from 'react';
7
7
  import { useState, useRef, useEffect, useCallback, useMemo } from 'react';
8
- import Box from '@mui/material/Box';
9
- import TextField from '@mui/material/TextField';
10
8
  import { Icon } from '@redsift/design-system';
11
9
  import { mdiSync } from '@redsift/icons';
12
10
  export { D as DEFAULT_OPERATORS, G as GridToolbarFilterSemanticField, g as getCompletion } from './_internal/GridToolbarFilterSemanticField2.js';
13
- export { C as ControlledPagination, E as EMPTY_ROW_SELECTION_MODEL, S as ServerSideControlledPagination, c as createRowSelectionModel, f as fixServerSideHeaderCheckboxSelection, b as getSelectableRowIdsInPage, a as getSelectedIds, g as getSelectionCount, i as isRowSelected, n as normalizeRowSelectionModel, o as onServerSideSelectionStatusChange } from './_internal/ServerSideControlledPagination.js';
14
- export { B as BaseButton, a as BaseCheckbox, b as BaseIcon, c as BaseIconButton, m as muiIconToDSIcon } from './_internal/BaseIconButton.js';
11
+ export { B as BaseButton, a as BaseCheckbox, b as BaseIcon, c as BasePopper, m as muiIconToDSIcon } from './_internal/BasePopper.js';
15
12
  export { B as BaseTextField } from './_internal/BaseTextField.js';
16
13
  export { D as DataGrid } from './_internal/DataGrid2.js';
14
+ export { C as ControlledPagination, S as ServerSideControlledPagination, f as fixServerSideHeaderCheckboxSelection, g as getSelectableRowIdsInPage, o as onServerSideSelectionStatusChange } from './_internal/ControlledPagination.js';
17
15
  export { T as TextCell } from './_internal/TextCell2.js';
18
16
  export { T as Toolbar } from './_internal/Toolbar2.js';
19
17
  export { T as ToolbarWrapper } from './_internal/ToolbarWrapper2.js';
@@ -22,37 +20,6 @@ export { T as ToolbarWrapper } from './_internal/ToolbarWrapper2.js';
22
20
  const DETAIL_PANEL_TOGGLE_COL_DEF = GRID_DETAIL_PANEL_TOGGLE_COL_DEF;
23
21
  DETAIL_PANEL_TOGGLE_COL_DEF.type = 'actions';
24
22
 
25
- const isAnyOfIOperator = {
26
- label: 'is any of (case-insensitive)',
27
- value: 'isAnyOfI',
28
- getApplyFilterFn: filterItem => {
29
- if (!filterItem.field || !filterItem.value || !filterItem.operator) {
30
- return null;
31
- }
32
- const lowerCaseFilterValues = filterItem.value.map(v => String(v).toLowerCase());
33
- return value => {
34
- if (filterItem.value.length === 0) {
35
- return true;
36
- }
37
- if (value == null) {
38
- return false;
39
- }
40
- const paramValues = Array.isArray(value) ? value : [value];
41
- for (const paramValue of paramValues) {
42
- if (lowerCaseFilterValues.includes(String(paramValue).toLowerCase())) {
43
- return true;
44
- }
45
- }
46
- return false;
47
- };
48
- },
49
- InputComponent: GridFilterInputMultipleValue
50
- };
51
- const IS_ANY_OF_I = isAnyOfIOperator;
52
- const IS_ANY_OF_I_WITH_SELECT = _objectSpread2(_objectSpread2({}, IS_ANY_OF_I), {}, {
53
- InputComponent: GridFilterInputMultipleSingleSelect
54
- });
55
-
56
23
  const SUBMIT_FILTER_STROKE_TIME = 500;
57
24
  const InputDateInterval = props => {
58
25
  var _item$value, _filterValueState$, _filterValueState$2;
@@ -159,11 +126,11 @@ const isBetweenOperator = {
159
126
  if (isNaN(fromTime) || isNaN(toTime)) {
160
127
  return null;
161
128
  }
162
- return value => {
163
- if (value == null) {
129
+ return params => {
130
+ if (params.value == null) {
164
131
  return false;
165
132
  }
166
- const cellTime = value instanceof Date ? value.getTime() : new Date(value).getTime();
133
+ const cellTime = params.value instanceof Date ? params.value.getTime() : new Date(params.value).getTime();
167
134
  if (isNaN(cellTime)) {
168
135
  return false;
169
136
  }
@@ -206,9 +173,11 @@ const wrapCaseInsensitive = operator => {
206
173
  if (!originalFn) {
207
174
  return null;
208
175
  }
209
- return (value, row, column, apiRef) => {
210
- const lowercasedValue = lowercaseValue(value);
211
- return originalFn(lowercasedValue, row, column, apiRef);
176
+ return params => {
177
+ const lowercasedParams = _objectSpread2(_objectSpread2({}, params), {}, {
178
+ value: lowercaseValue(params.value)
179
+ });
180
+ return originalFn(lowercasedParams);
212
181
  };
213
182
  }
214
183
  });
@@ -647,5 +616,5 @@ function useLinkedFilterModel() {
647
616
  }), [filterModel, onFilterModelChange, getSelected, getValue, setMultiSelect, setBoolean, clearField, reset, isFieldExternallyControlled]);
648
617
  }
649
618
 
650
- export { DATE_IS_BETWEEN, DETAIL_PANEL_TOGGLE_COL_DEF, IS_ANY_OF_I, IS_ANY_OF_I_WITH_SELECT, createColumn, createReactRouterV5Adapter, customColumnTypes, getGridDateOperatorsExtended, getRsMultipleSelectColumnType, getRsMultipleSelectWithShortOperatorListColumnType, getRsNumberColumnType, getRsSingleSelectColumnType, getRsSingleSelectWithShortOperatorListColumnType, getRsStringColumnType, makeCaseInsensitive, useLinkedFilterModel, wrapCaseInsensitive };
619
+ export { DATE_IS_BETWEEN, DETAIL_PANEL_TOGGLE_COL_DEF, createColumn, createReactRouterV5Adapter, customColumnTypes, getGridDateOperatorsExtended, getRsMultipleSelectColumnType, getRsMultipleSelectWithShortOperatorListColumnType, getRsNumberColumnType, getRsSingleSelectColumnType, getRsSingleSelectWithShortOperatorListColumnType, getRsStringColumnType, makeCaseInsensitive, useLinkedFilterModel, wrapCaseInsensitive };
651
620
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/columns/detailPanelToggleColDef.ts","../src/utils/operators/string-array/isAnyOfI.tsx","../src/utils/fields/InputDateInterval.tsx","../src/utils/operators/date/isBetween.tsx","../src/utils/operators/date/getGridDateOperators.ts","../src/utils/operators/utils/caseInsensitive.ts","../src/utils/columnTypes/index.ts","../src/utils/createColumn.ts","../src/adapters/reactRouterV5.ts","../src/hooks/useLinkedFilterModel.ts"],"sourcesContent":["import { GRID_DETAIL_PANEL_TOGGLE_COL_DEF } from '@mui/x-data-grid-premium';\n\n// Don't use a spread operator there or it will break the build due to MUI internal components\nconst DETAIL_PANEL_TOGGLE_COL_DEF = GRID_DETAIL_PANEL_TOGGLE_COL_DEF;\nDETAIL_PANEL_TOGGLE_COL_DEF.type = 'actions';\n\nexport { DETAIL_PANEL_TOGGLE_COL_DEF };\n","import { GridFilterInputMultipleSingleSelect, GridFilterInputMultipleValue, GridFilterOperator } from '@mui/x-data-grid-premium';\n\nconst isAnyOfIOperator: GridFilterOperator<any, string | string[], any> = {\n label: 'is any of (case-insensitive)',\n value: 'isAnyOfI',\n getApplyFilterFn: (filterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n const lowerCaseFilterValues = filterItem.value.map((v: string) => String(v).toLowerCase());\n\n return (value) => {\n if (filterItem.value.length === 0) {\n return true;\n }\n if (value == null) {\n return false;\n }\n const paramValues = Array.isArray(value) ? value : [value];\n\n for (const paramValue of paramValues) {\n if (lowerCaseFilterValues.includes(String(paramValue).toLowerCase())) {\n return true;\n }\n }\n return false;\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nexport const IS_ANY_OF_I = isAnyOfIOperator;\n\nexport const IS_ANY_OF_I_WITH_SELECT = { ...IS_ANY_OF_I, InputComponent: GridFilterInputMultipleSingleSelect };\n","import * as React from 'react';\nimport Box from '@mui/material/Box';\nimport TextField, { TextFieldProps } from '@mui/material/TextField';\nimport { Icon } from '@redsift/design-system';\nimport { mdiSync } from '@redsift/icons';\nimport { GridFilterInputValueProps } from '@mui/x-data-grid-premium';\n\nconst SUBMIT_FILTER_STROKE_TIME = 500;\n\nexport const InputDateInterval = (props: GridFilterInputValueProps) => {\n const { item, applyValue, focusElementRef = null } = props;\n\n const filterTimeout = React.useRef<ReturnType<typeof setTimeout>>();\n const [filterValueState, setFilterValueState] = React.useState<[string, string]>(item.value ?? ['', '']);\n const [applying, setIsApplying] = React.useState(false);\n\n React.useEffect(() => {\n return () => {\n clearTimeout(filterTimeout.current);\n };\n }, []);\n\n React.useEffect(() => {\n const itemValue = item.value ?? ['', ''];\n setFilterValueState(itemValue);\n }, [item.value]);\n\n const updateFilterValue = (from: string, to: string) => {\n clearTimeout(filterTimeout.current);\n setFilterValueState([from, to]);\n\n setIsApplying(true);\n filterTimeout.current = setTimeout(() => {\n setIsApplying(false);\n applyValue({ ...item, value: [from, to] });\n }, SUBMIT_FILTER_STROKE_TIME);\n };\n\n const handleFromChange: TextFieldProps['onChange'] = (event) => {\n const newFrom = event.target.value;\n updateFilterValue(newFrom, filterValueState[1]);\n };\n\n const handleToChange: TextFieldProps['onChange'] = (event) => {\n const newTo = event.target.value;\n updateFilterValue(filterValueState[0], newTo);\n };\n\n return (\n <Box\n sx={{\n display: 'inline-flex',\n flexDirection: 'row',\n alignItems: 'end',\n height: 48,\n pl: '20px',\n }}\n >\n <TextField\n name=\"date-from-input\"\n placeholder=\"From\"\n label=\"From\"\n variant=\"standard\"\n value={filterValueState[0] ?? ''}\n onChange={handleFromChange}\n type=\"date\"\n inputRef={focusElementRef}\n sx={{ mr: 2 }}\n InputLabelProps={{ shrink: true }}\n />\n <TextField\n name=\"date-to-input\"\n placeholder=\"To\"\n label=\"To\"\n variant=\"standard\"\n value={filterValueState[1] ?? ''}\n onChange={handleToChange}\n type=\"date\"\n InputProps={applying ? { endAdornment: <Icon icon={mdiSync} /> } : {}}\n InputLabelProps={{ shrink: true }}\n />\n </Box>\n );\n};\n","import { GridFilterOperator } from '@mui/x-data-grid-premium';\nimport { InputDateInterval } from '../../fields/InputDateInterval';\n\nconst isBetweenOperator: GridFilterOperator<any, string | string[], any> = {\n label: 'is between',\n value: 'isBetween',\n getApplyFilterFn: (filterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n if (!Array.isArray(filterItem.value) || filterItem.value.length !== 2) {\n return null;\n }\n\n if (!filterItem.value[0] || !filterItem.value[1]) {\n return null;\n }\n\n // Parse as local time (not UTC) since the date input produces YYYY-MM-DD\n // strings representing dates in the user's local timezone.\n const [fromYear, fromMonth, fromDay] = filterItem.value[0].split('-').map(Number);\n const [toYear, toMonth, toDay] = filterItem.value[1].split('-').map(Number);\n\n const fromTime = new Date(fromYear, fromMonth - 1, fromDay).getTime();\n // Set upper bound to end-of-day so dateTime values later that day are included.\n const toTime = new Date(toYear, toMonth - 1, toDay, 23, 59, 59, 999).getTime();\n\n if (isNaN(fromTime) || isNaN(toTime)) {\n return null;\n }\n\n return (value) => {\n if (value == null) {\n return false;\n }\n const cellTime = value instanceof Date ? value.getTime() : new Date(value as string).getTime();\n if (isNaN(cellTime)) {\n return false;\n }\n return cellTime >= fromTime && cellTime <= toTime;\n };\n },\n InputComponent: InputDateInterval,\n};\n\nexport const DATE_IS_BETWEEN = isBetweenOperator;\n","import { getGridDateOperators as forwardOperators, GridFilterOperator } from '@mui/x-data-grid-premium';\nimport { DATE_IS_BETWEEN } from './isBetween';\n\nexport const getGridDateOperatorsExtended: (showTime?: boolean) => GridFilterOperator[] = (showTime = false) => [\n ...forwardOperators(showTime),\n DATE_IS_BETWEEN,\n];\n","import { GridFilterItem, GridFilterOperator } from '@mui/x-data-grid-premium';\n\ntype ApplyFilterFn = ((value: any, row?: any, column?: any, apiRef?: any) => boolean) | null;\ntype GetApplyFilterFn = (filterItem: GridFilterItem, column?: any) => ApplyFilterFn;\n\nconst lowercaseValue = (value: unknown): unknown => {\n if (typeof value === 'string') {\n return value.toLowerCase();\n }\n if (Array.isArray(value)) {\n return value.map(lowercaseValue);\n }\n return value;\n};\n\n/**\n * Wraps a filter operator's `getApplyFilterFn` to lowercase both the cell value\n * and the filter value before comparison, making the operator case-insensitive.\n *\n * Only affects string-based values — numbers, dates, and booleans pass through unchanged.\n */\nexport const wrapCaseInsensitive = (operator: GridFilterOperator): GridFilterOperator => {\n const originalGetApplyFilterFn = operator.getApplyFilterFn as GetApplyFilterFn;\n\n return {\n ...operator,\n getApplyFilterFn: (filterItem: GridFilterItem, column?: any) => {\n const caseInsensitiveFilterItem = {\n ...filterItem,\n value: lowercaseValue(filterItem.value),\n };\n\n const originalFn = originalGetApplyFilterFn(caseInsensitiveFilterItem, column);\n if (!originalFn) {\n return null;\n }\n\n return (value: any, row?: any, column?: any, apiRef?: any) => {\n const lowercasedValue = lowercaseValue(value);\n return originalFn(lowercasedValue, row, column, apiRef);\n };\n },\n };\n};\n\n/**\n * Applies case-insensitive wrapping to an array of filter operators.\n */\nexport const makeCaseInsensitive = (operators: GridFilterOperator[]): GridFilterOperator[] => {\n return operators.map(wrapCaseInsensitive);\n};\n","import { GridColType, GridColTypeDef } from '@mui/x-data-grid-premium';\nimport { operatorList } from '../operators';\n\nexport const getRsStringColumnType = () => {\n return {\n type: 'string' as const,\n filterOperators: operatorList.rsString,\n } as GridColTypeDef;\n};\n\nexport const getRsNumberColumnType = () => {\n return {\n type: 'number' as const,\n filterOperators: operatorList.rsNumber,\n } as GridColTypeDef;\n};\n\nexport const getRsSingleSelectColumnType = () => {\n return {\n type: 'singleSelect' as const,\n filterOperators: operatorList.rsSingleSelect,\n } as GridColTypeDef;\n};\n\nexport const getRsSingleSelectWithShortOperatorListColumnType = () => {\n return {\n type: 'singleSelect' as const,\n filterOperators: operatorList.rsSingleSelectWithShortOperatorList,\n } as GridColTypeDef;\n};\n\nexport const getRsMultipleSelectColumnType = () => {\n return {\n type: 'singleSelect' as const,\n filterOperators: operatorList.rsMultipleSelect,\n } as GridColTypeDef;\n};\n\nexport const getRsMultipleSelectWithShortOperatorListColumnType = () => {\n return {\n type: 'singleSelect' as const,\n filterOperators: operatorList.rsMultipleSelectWithShortOperatorList,\n } as GridColTypeDef;\n};\n\nexport const customColumnTypes: Record<GridColType | string, GridColTypeDef> = {\n rsString: getRsStringColumnType(),\n rsNumber: getRsNumberColumnType(),\n rsSingleSelect: getRsSingleSelectColumnType(),\n rsSingleSelectWithShortOperatorList: getRsSingleSelectWithShortOperatorListColumnType(),\n rsMultipleSelect: getRsMultipleSelectColumnType(),\n rsMultipleSelectWithShortOperatorList: getRsMultipleSelectWithShortOperatorListColumnType(),\n};\n","import {\n getGridStringOperators as nativeGetGridStringOperators,\n getGridNumericOperators as nativeGetGridNumericOperators,\n getGridDateOperators as nativeGetGridDateOperators,\n GridColDef,\n GridColType,\n GridFilterOperator,\n} from '@mui/x-data-grid-premium';\n\nimport { DOES_NOT_CONTAIN } from './operators/string/doesNotContain';\nimport { DOES_NOT_END_WITH } from './operators/string/doesNotEndWith';\nimport { DOES_NOT_EQUAL } from './operators/string/doesNotEqual';\nimport { DOES_NOT_HAVE, DOES_NOT_HAVE_WITH_SELECT } from './operators/string/doesNotHave';\nimport { DOES_NOT_START_WITH } from './operators/string/doesNotStartWith';\nimport { HAS, HAS_WITH_SELECT } from './operators/string/has';\nimport { HAS_ONLY, HAS_ONLY_WITH_SELECT } from './operators/string/hasOnly';\nimport { IS_WITH_SELECT } from './operators/string/is';\nimport { IS_NOT_WITH_SELECT } from './operators/string/isNot';\n\nimport { CONTAINS_ANY_OF } from './operators/string-array/containsAnyOf';\nimport { DOES_NOT_CONTAIN_ANY_OF } from './operators/string-array/doesNotContainAnyOf';\nimport { DOES_NOT_END_WITH_ANY_OF } from './operators/string-array/doesNotEndWithAnyOf';\nimport { DOES_NOT_HAVE_ANY_OF, DOES_NOT_HAVE_ANY_OF_WITH_SELECT } from './operators/string-array/doesNotHaveAnyOf';\nimport { DOES_NOT_START_WITH_ANY_OF } from './operators/string-array/doesNotStartWithAnyOf';\nimport { ENDS_WITH_ANY_OF } from './operators/string-array/endsWithAnyOf';\nimport { HAS_ALL_OF, HAS_ALL_OF_WITH_SELECT } from './operators/string-array/hasAllOf';\nimport { HAS_ANY_OF, HAS_ANY_OF_WITH_SELECT } from './operators/string-array/hasAnyOf';\nimport { IS_ANY_OF, IS_ANY_OF_WITH_SELECT } from './operators/string-array/isAnyOf';\nimport { IS_NOT_ANY_OF, IS_NOT_ANY_OF_WITH_SELECT } from './operators/string-array/isNotAnyOf';\nimport { STARTS_WITH_ANY_OF } from './operators/string-array/startsWithAnyOf';\n\nimport { IS_BETWEEN } from './operators/numeric/isBetween';\nimport { DATE_IS_BETWEEN } from './operators/date/isBetween';\nimport { ARRAY_IS_EMPTY, ARRAY_IS_NOT_EMPTY } from './operators/common/isEmpty';\nimport { makeCaseInsensitive } from './operators/utils/caseInsensitive';\n\n// ---------------------------------------------------------------------------\n// Operator name unions (for typed `exclude`)\n// ---------------------------------------------------------------------------\n\nexport type StringOperatorName =\n | 'contains'\n | 'doesNotContain'\n | 'equals'\n | 'doesNotEqual'\n | 'startsWith'\n | 'doesNotStartWith'\n | 'endsWith'\n | 'doesNotEndWith'\n | 'isEmpty'\n | 'isNotEmpty'\n | 'isAnyOf'\n | 'isNotAnyOf'\n | 'containsAnyOf'\n | 'doesNotContainAnyOf'\n | 'startsWithAnyOf'\n | 'doesNotStartWithAnyOf'\n | 'endsWithAnyOf'\n | 'doesNotEndWithAnyOf';\n\nexport type NumberOperatorName = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'isEmpty' | 'isNotEmpty' | 'isBetween';\n\nexport type DateOperatorName =\n | 'is'\n | 'not'\n | 'after'\n | 'onOrAfter'\n | 'before'\n | 'onOrBefore'\n | 'isEmpty'\n | 'isNotEmpty'\n | 'isBetween';\n\nexport type SingleSelectOperatorName = 'is' | 'isNot' | 'isAnyOf' | 'isNotAnyOf' | 'isEmpty' | 'isNotEmpty';\n\nexport type MultiSelectOperatorName =\n | 'has'\n | 'doesNotHave'\n | 'hasAnyOf'\n | 'hasAllOf'\n | 'doesNotHaveAnyOf'\n | 'hasOnly'\n | 'isEmpty'\n | 'isNotEmpty';\n\nexport type TagsOperatorName =\n | 'has'\n | 'doesNotHave'\n | 'hasAnyOf'\n | 'hasAllOf'\n | 'doesNotHaveAnyOf'\n | 'hasOnly'\n | 'containsAnyOf'\n | 'doesNotContainAnyOf'\n | 'isEmpty'\n | 'isNotEmpty';\n\n// ---------------------------------------------------------------------------\n// Column type\n// ---------------------------------------------------------------------------\n\nexport type ColumnType = 'string' | 'number' | 'date' | 'dateTime' | 'singleSelect' | 'multiSelect' | 'tags';\n\n// ---------------------------------------------------------------------------\n// Options: discriminated union (built-in vs override)\n// ---------------------------------------------------------------------------\n\ntype BuiltInOptions<TOperatorName extends string> = {\n compact?: boolean;\n exclude?: TOperatorName[];\n extend?: GridFilterOperator[];\n caseSensitive?: boolean;\n};\n\ntype OverrideOptions = {\n operators: GridFilterOperator[];\n};\n\ntype StringColumnOptions = BuiltInOptions<StringOperatorName> | OverrideOptions;\ntype NumberColumnOptions = Omit<BuiltInOptions<NumberOperatorName>, 'caseSensitive'> | OverrideOptions;\ntype DateColumnOptions = Omit<BuiltInOptions<DateOperatorName>, 'caseSensitive'> | OverrideOptions;\ntype SingleSelectColumnOptions = BuiltInOptions<SingleSelectOperatorName> | OverrideOptions;\ntype MultiSelectColumnOptions = BuiltInOptions<MultiSelectOperatorName> | OverrideOptions;\ntype TagsColumnOptions = BuiltInOptions<TagsOperatorName> | OverrideOptions;\n\nexport type ColumnOptions<T extends ColumnType> = T extends 'string'\n ? StringColumnOptions\n : T extends 'number'\n ? NumberColumnOptions\n : T extends 'date' | 'dateTime'\n ? DateColumnOptions\n : T extends 'singleSelect'\n ? SingleSelectColumnOptions\n : T extends 'multiSelect'\n ? MultiSelectColumnOptions\n : T extends 'tags'\n ? TagsColumnOptions\n : never;\n\n// ---------------------------------------------------------------------------\n// Full & compact operator lists\n// ---------------------------------------------------------------------------\n\nconst getStringOperatorsFull = (): GridFilterOperator[] => [\n ...nativeGetGridStringOperators().filter((op) => !['isAnyOf'].includes(op.value)),\n DOES_NOT_CONTAIN,\n DOES_NOT_EQUAL,\n DOES_NOT_START_WITH,\n DOES_NOT_END_WITH,\n IS_ANY_OF,\n IS_NOT_ANY_OF,\n CONTAINS_ANY_OF,\n DOES_NOT_CONTAIN_ANY_OF,\n STARTS_WITH_ANY_OF,\n DOES_NOT_START_WITH_ANY_OF,\n ENDS_WITH_ANY_OF,\n DOES_NOT_END_WITH_ANY_OF,\n];\n\nconst getStringOperatorsCompact = (): GridFilterOperator[] => [\n ...nativeGetGridStringOperators().filter((op) => !['isAnyOf', 'startsWith', 'endsWith'].includes(op.value)),\n DOES_NOT_CONTAIN,\n DOES_NOT_EQUAL,\n IS_ANY_OF,\n];\n\nconst getNumberOperatorsFull = (): GridFilterOperator[] => [...nativeGetGridNumericOperators(), IS_BETWEEN];\n\nconst getNumberOperatorsCompact = (): GridFilterOperator[] => nativeGetGridNumericOperators();\n\nconst getDateOperatorsFull = (showTime: boolean): GridFilterOperator[] => [\n ...nativeGetGridDateOperators(showTime),\n DATE_IS_BETWEEN,\n];\n\nconst getDateOperatorsCompact = (showTime: boolean): GridFilterOperator[] => nativeGetGridDateOperators(showTime);\n\nconst getSingleSelectOperatorsFull = (): GridFilterOperator[] => [\n IS_WITH_SELECT,\n IS_NOT_WITH_SELECT,\n IS_ANY_OF_WITH_SELECT,\n IS_NOT_ANY_OF_WITH_SELECT,\n ARRAY_IS_EMPTY,\n ARRAY_IS_NOT_EMPTY,\n];\n\nconst getSingleSelectOperatorsCompact = (): GridFilterOperator[] => [\n IS_WITH_SELECT,\n IS_NOT_WITH_SELECT,\n IS_ANY_OF_WITH_SELECT,\n];\n\nconst getMultiSelectOperatorsFull = (): GridFilterOperator[] => [\n HAS_WITH_SELECT,\n DOES_NOT_HAVE_WITH_SELECT,\n HAS_ANY_OF_WITH_SELECT,\n HAS_ALL_OF_WITH_SELECT,\n DOES_NOT_HAVE_ANY_OF_WITH_SELECT,\n HAS_ONLY_WITH_SELECT,\n ARRAY_IS_EMPTY,\n ARRAY_IS_NOT_EMPTY,\n];\n\nconst getMultiSelectOperatorsCompact = (): GridFilterOperator[] => [\n HAS_WITH_SELECT,\n DOES_NOT_HAVE_WITH_SELECT,\n HAS_ANY_OF_WITH_SELECT,\n];\n\nconst getTagsOperatorsFull = (): GridFilterOperator[] => [\n HAS,\n DOES_NOT_HAVE,\n HAS_ANY_OF,\n HAS_ALL_OF,\n DOES_NOT_HAVE_ANY_OF,\n HAS_ONLY,\n CONTAINS_ANY_OF,\n DOES_NOT_CONTAIN_ANY_OF,\n ARRAY_IS_EMPTY,\n ARRAY_IS_NOT_EMPTY,\n];\n\nconst getTagsOperatorsCompact = (): GridFilterOperator[] => [HAS, DOES_NOT_HAVE, HAS_ANY_OF];\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst isOverrideOptions = (options: any): options is OverrideOptions => {\n return options && 'operators' in options;\n};\n\nconst arraySortComparator = (a: unknown, b: unknown): number => {\n const arrA = Array.isArray(a) ? a : [];\n const arrB = Array.isArray(b) ? b : [];\n if (arrA.length !== arrB.length) {\n return arrA.length - arrB.length;\n }\n const strA = arrA.map(String).sort().join(',');\n const strB = arrB.map(String).sort().join(',');\n return strA.localeCompare(strB);\n};\n\nconst arrayValueFormatter = (value: unknown): string => {\n if (Array.isArray(value)) {\n return value.map(String).join(', ');\n }\n return value != null ? String(value) : '';\n};\n\n// ---------------------------------------------------------------------------\n// Operator type strings that support case-insensitive wrapping\n// ---------------------------------------------------------------------------\n\nconst CASE_INSENSITIVE_TYPES: ColumnType[] = ['string', 'singleSelect', 'tags'];\n\n// ---------------------------------------------------------------------------\n// createColumn()\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a column configuration with the appropriate MUI type and filter operators\n * for the given column type. Spread the result into your column definition.\n *\n * @example\n * ```tsx\n * const columns = [\n * { ...createColumn('string'), field: 'name', headerName: 'Name' },\n * { ...createColumn('number'), field: 'price', headerName: 'Price' },\n * { ...createColumn('singleSelect', { compact: true }), field: 'status', valueOptions: ['active', 'inactive'] },\n * { ...createColumn('multiSelect'), field: 'tags', valueOptions: ['a', 'b', 'c'] },\n * { ...createColumn('tags'), field: 'labels', headerName: 'Labels' },\n * ];\n * ```\n */\nexport function createColumn<T extends ColumnType>(type: T, options?: ColumnOptions<T>): Partial<GridColDef> {\n // Override mode: consumer provides full operator list\n if (options && isOverrideOptions(options)) {\n const result: Partial<GridColDef> = {\n type: getMuiType(type),\n filterOperators: options.operators,\n };\n if (type === 'multiSelect' || type === 'tags') {\n result.sortComparator = arraySortComparator;\n result.valueFormatter = arrayValueFormatter;\n }\n return result;\n }\n\n // Built-in mode\n const builtInOpts = (options ?? {}) as BuiltInOptions<string>;\n const compact = builtInOpts.compact ?? false;\n const caseSensitive = builtInOpts.caseSensitive ?? false;\n\n let operators = getOperatorsForType(type, compact);\n\n // Apply exclude\n if (builtInOpts.exclude && builtInOpts.exclude.length > 0) {\n const excludeSet = new Set(builtInOpts.exclude);\n operators = operators.filter((op) => !excludeSet.has(op.value));\n }\n\n // Apply case-insensitive wrapping\n if (!caseSensitive && CASE_INSENSITIVE_TYPES.includes(type)) {\n operators = makeCaseInsensitive(operators);\n }\n\n // Apply extend\n if (builtInOpts.extend && builtInOpts.extend.length > 0) {\n operators = [...operators, ...builtInOpts.extend];\n }\n\n const result: Partial<GridColDef> = {\n type: getMuiType(type),\n filterOperators: operators,\n };\n\n if (type === 'multiSelect' || type === 'tags') {\n result.sortComparator = arraySortComparator;\n result.valueFormatter = arrayValueFormatter;\n }\n\n return result;\n}\n\nfunction getMuiType(type: ColumnType): GridColType {\n switch (type) {\n case 'multiSelect':\n case 'singleSelect':\n return 'singleSelect';\n case 'tags':\n return 'string';\n default:\n return type as GridColType;\n }\n}\n\nfunction getOperatorsForType(type: ColumnType, compact: boolean): GridFilterOperator[] {\n switch (type) {\n case 'string':\n return compact ? getStringOperatorsCompact() : getStringOperatorsFull();\n case 'number':\n return compact ? getNumberOperatorsCompact() : getNumberOperatorsFull();\n case 'date':\n return compact ? getDateOperatorsCompact(false) : getDateOperatorsFull(false);\n case 'dateTime':\n return compact ? getDateOperatorsCompact(true) : getDateOperatorsFull(true);\n case 'singleSelect':\n return compact ? getSingleSelectOperatorsCompact() : getSingleSelectOperatorsFull();\n case 'multiSelect':\n return compact ? getMultiSelectOperatorsCompact() : getMultiSelectOperatorsFull();\n case 'tags':\n return compact ? getTagsOperatorsCompact() : getTagsOperatorsFull();\n }\n}\n","/**\n * A React Router v5 / connected-react-router adapter for `StatefulDataGrid.useRouter`.\n *\n * Defers `history.replace` via `queueMicrotask` to avoid the\n * \"Cannot update during an existing state transition\" warning\n * that connected-react-router triggers when the grid synchronises\n * URL state during render.\n *\n * @example\n * ```tsx\n * import { createReactRouterV5Adapter } from '@redsift/table';\n *\n * const useRouter = createReactRouterV5Adapter(history);\n *\n * <StatefulDataGrid useRouter={useRouter} … />\n * ```\n */\n\n/** Minimal subset of React Router v5 `history` used by the adapter. */\nexport interface ReactRouterV5History {\n location: {\n pathname: string;\n search: string;\n };\n replace: (path: { pathname: string; search: string }) => void;\n}\n\n/**\n * Create a `useRouter` hook compatible with `StatefulDataGrid` from a\n * React Router v5 `history` object.\n */\nexport const createReactRouterV5Adapter = (\n history: ReactRouterV5History\n): (() => { pathname: string; search: string; historyReplace: (newSearch: string) => void }) => {\n return () => ({\n pathname: history.location.pathname,\n search: history.location.search.replace(/^\\?/, ''),\n historyReplace: (newSearch: string) => {\n queueMicrotask(() => {\n history.replace({\n pathname: history.location.pathname,\n search: newSearch ? `?${newSearch}` : '',\n });\n });\n },\n });\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { GridFilterModel } from '@mui/x-data-grid-premium';\n\nconst EMPTY_FILTER_MODEL: GridFilterModel = { items: [] };\n\nexport interface UseLinkedFilterModelOptions {\n /** Starting filter model. Defaults to `{ items: [] }`. */\n initialFilterModel?: GridFilterModel;\n /**\n * Debounce window (ms) applied to changes coming from the DataGrid filter panel.\n * Card-driven changes via `setMultiSelect` / `setBoolean` are never debounced.\n * Defaults to `300`. Pass `0` to disable.\n */\n debounceMs?: number;\n /** Optional callback fired on every settled filter model change. */\n onChange?: (model: GridFilterModel) => void;\n}\n\nexport interface UseLinkedFilterModelReturn {\n /** Current filter model. Pass to DataGrid `filterModel` and read for DataCard derivations. */\n filterModel: GridFilterModel;\n /** Bind to DataGrid `onFilterModelChange`. Debounced for panel changes. */\n onFilterModelChange: (model: GridFilterModel) => void;\n /** Read selected values for an `isAnyOf` / `hasAnyOf` field. Empty array when not set. */\n getSelected: (field: string) => string[];\n /** Read the raw filter value for a field (e.g. boolean toggles). */\n getValue: (field: string) => unknown;\n /** Set a multi-select filter from a DataCard. Empty array clears the field. */\n setMultiSelect: (field: string, values: string[], operator?: string) => void;\n /** Set a boolean filter. Pass `null` to clear. */\n setBoolean: (field: string, value: boolean | null) => void;\n /** Remove a single field from the filter model. */\n clearField: (field: string) => void;\n /** Reset the filter model to the initial value. */\n reset: () => void;\n /**\n * Whether a field's filter was set externally (DataGrid filter panel) rather than\n * via this hook's setters. Useful for disabling the corresponding DataCard so the\n * panel and card don't fight over the same field.\n */\n isFieldExternallyControlled: (field: string) => boolean;\n}\n\nconst sameItems = (a: GridFilterModel, b: GridFilterModel): boolean =>\n JSON.stringify(a.items) === JSON.stringify(b.items);\n\nconst filterOutField = (model: GridFilterModel, field: string): GridFilterModel['items'] =>\n model.items.filter((item) => item.field !== field);\n\nconst nextItemId = (() => {\n let id = 1;\n return () => id++;\n})();\n\n/**\n * Bridge a DataGrid `filterModel` and the DataCards that drive (and reflect) it.\n *\n * Without this hook, every drilldowned datagrid page hand-rolls the same plumbing:\n * derive selections from `filterModel`, write them back via raw `setFilterModel`\n * mutations, debounce panel changes, and track which fields the panel \"owns\" so\n * cards don't fight the panel for control. SOFA-6 shipped this logic ad hoc and\n * got it wrong (no debounce, prop-drilled state, no panel/card reconciliation).\n *\n * @example\n * const filter = useLinkedFilterModel();\n *\n * <DataCard.Listbox\n * values={filter.getSelected('Category')}\n * onChange={(values) => filter.setMultiSelect('Category', values)}\n * isDisabled={filter.isFieldExternallyControlled('Category')}\n * >\n * {…}\n * </DataCard.Listbox>\n *\n * <DataGrid filterModel={filter.filterModel} onFilterModelChange={filter.onFilterModelChange} />\n */\nexport function useLinkedFilterModel(options: UseLinkedFilterModelOptions = {}): UseLinkedFilterModelReturn {\n const { initialFilterModel = EMPTY_FILTER_MODEL, debounceMs = 300, onChange } = options;\n\n const [filterModel, setFilterModel] = useState<GridFilterModel>(initialFilterModel);\n\n // Fields whose current filter was set by setMultiSelect / setBoolean (not the panel).\n const cardOwnedFields = useRef<Set<string>>(new Set());\n // Marks the next onFilterModelChange as originating from a card setter so we skip debouncing.\n const skipNextDebounce = useRef(false);\n const debounceTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const onChangeRef = useRef(onChange);\n\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n useEffect(() => {\n return () => {\n if (debounceTimer.current) clearTimeout(debounceTimer.current);\n };\n }, []);\n\n const commit = useCallback((next: GridFilterModel) => {\n setFilterModel((prev) => {\n if (sameItems(prev, next)) return prev;\n onChangeRef.current?.(next);\n return next;\n });\n }, []);\n\n const onFilterModelChange = useCallback(\n (model: GridFilterModel) => {\n if (skipNextDebounce.current) {\n skipNextDebounce.current = false;\n // If the incoming model matches the current state, this is a DataGrid echo\n // of a card setter — commit (no-op) and preserve card ownership.\n if (sameItems(filterModel, model)) {\n commit(model);\n return;\n }\n // Otherwise a real panel change arrived — fall through to ownership logic.\n }\n\n // Panel change — drop card ownership for fields the panel now controls / has cleared,\n // then debounce the commit.\n const panelFields = new Set(model.items.map((item) => item.field));\n for (const field of Array.from(cardOwnedFields.current)) {\n if (!panelFields.has(field)) cardOwnedFields.current.delete(field);\n }\n // If the panel touched a field the card previously owned, transfer ownership to the panel.\n for (const field of panelFields) {\n cardOwnedFields.current.delete(field);\n }\n\n if (debounceMs <= 0) {\n commit(model);\n return;\n }\n if (debounceTimer.current) clearTimeout(debounceTimer.current);\n debounceTimer.current = setTimeout(() => {\n debounceTimer.current = null;\n commit(model);\n }, debounceMs);\n },\n [commit, debounceMs, filterModel]\n );\n\n const getSelected = useCallback(\n (field: string): string[] => {\n const item = filterModel.items.find((i) => i.field === field);\n if (!item || item.value === undefined || item.value === null) return [];\n if (item.operator === 'isAnyOf' || item.operator === 'hasAnyOf') {\n return Array.isArray(item.value) ? (item.value as string[]) : [String(item.value)];\n }\n return [];\n },\n [filterModel]\n );\n\n const getValue = useCallback(\n (field: string): unknown => filterModel.items.find((i) => i.field === field)?.value,\n [filterModel]\n );\n\n const setMultiSelect = useCallback((field: string, values: string[], operator: string = 'isAnyOf') => {\n skipNextDebounce.current = true;\n setFilterModel((prev) => {\n const items = filterOutField(prev, field);\n if (values.length > 0) {\n items.push({ field, id: nextItemId(), operator, value: values });\n cardOwnedFields.current.add(field);\n } else {\n cardOwnedFields.current.delete(field);\n }\n const next: GridFilterModel = { ...prev, items };\n if (sameItems(prev, next)) return prev;\n onChangeRef.current?.(next);\n return next;\n });\n }, []);\n\n const setBoolean = useCallback((field: string, value: boolean | null) => {\n skipNextDebounce.current = true;\n setFilterModel((prev) => {\n const items = filterOutField(prev, field);\n if (value !== null) {\n items.push({ field, id: nextItemId(), operator: 'is', value: String(value) });\n cardOwnedFields.current.add(field);\n } else {\n cardOwnedFields.current.delete(field);\n }\n const next: GridFilterModel = { ...prev, items };\n if (sameItems(prev, next)) return prev;\n onChangeRef.current?.(next);\n return next;\n });\n }, []);\n\n const clearField = useCallback((field: string) => {\n skipNextDebounce.current = true;\n setFilterModel((prev) => {\n const items = filterOutField(prev, field);\n cardOwnedFields.current.delete(field);\n const next: GridFilterModel = { ...prev, items };\n if (sameItems(prev, next)) return prev;\n onChangeRef.current?.(next);\n return next;\n });\n }, []);\n\n const reset = useCallback(() => {\n skipNextDebounce.current = true;\n cardOwnedFields.current.clear();\n commit(initialFilterModel);\n }, [commit, initialFilterModel]);\n\n const isFieldExternallyControlled = useCallback(\n (field: string): boolean => {\n const hasFilter = filterModel.items.some((item) => item.field === field);\n return hasFilter && !cardOwnedFields.current.has(field);\n },\n [filterModel]\n );\n\n return useMemo(\n () => ({\n filterModel,\n onFilterModelChange,\n getSelected,\n getValue,\n setMultiSelect,\n setBoolean,\n clearField,\n reset,\n isFieldExternallyControlled,\n }),\n [\n filterModel,\n onFilterModelChange,\n getSelected,\n getValue,\n setMultiSelect,\n setBoolean,\n clearField,\n reset,\n isFieldExternallyControlled,\n ]\n );\n}\n"],"names":["DETAIL_PANEL_TOGGLE_COL_DEF","GRID_DETAIL_PANEL_TOGGLE_COL_DEF","type","isAnyOfIOperator","label","value","getApplyFilterFn","filterItem","field","operator","lowerCaseFilterValues","map","v","String","toLowerCase","length","paramValues","Array","isArray","paramValue","includes","InputComponent","GridFilterInputMultipleValue","IS_ANY_OF_I","IS_ANY_OF_I_WITH_SELECT","_objectSpread","GridFilterInputMultipleSingleSelect","SUBMIT_FILTER_STROKE_TIME","InputDateInterval","props","_item$value","_filterValueState$","_filterValueState$2","item","applyValue","focusElementRef","filterTimeout","React","useRef","filterValueState","setFilterValueState","useState","applying","setIsApplying","useEffect","clearTimeout","current","_item$value2","itemValue","updateFilterValue","from","to","setTimeout","handleFromChange","event","newFrom","target","handleToChange","newTo","createElement","Box","sx","display","flexDirection","alignItems","height","pl","TextField","name","placeholder","variant","onChange","inputRef","mr","InputLabelProps","shrink","InputProps","endAdornment","Icon","icon","mdiSync","isBetweenOperator","fromYear","fromMonth","fromDay","split","Number","toYear","toMonth","toDay","fromTime","Date","getTime","toTime","isNaN","cellTime","DATE_IS_BETWEEN","getGridDateOperatorsExtended","showTime","arguments","undefined","forwardOperators","lowercaseValue","wrapCaseInsensitive","originalGetApplyFilterFn","column","caseInsensitiveFilterItem","originalFn","row","apiRef","lowercasedValue","makeCaseInsensitive","operators","getRsStringColumnType","filterOperators","operatorList","rsString","getRsNumberColumnType","rsNumber","getRsSingleSelectColumnType","rsSingleSelect","getRsSingleSelectWithShortOperatorListColumnType","rsSingleSelectWithShortOperatorList","getRsMultipleSelectColumnType","rsMultipleSelect","getRsMultipleSelectWithShortOperatorListColumnType","rsMultipleSelectWithShortOperatorList","customColumnTypes","getStringOperatorsFull","nativeGetGridStringOperators","filter","op","DOES_NOT_CONTAIN","DOES_NOT_EQUAL","DOES_NOT_START_WITH","DOES_NOT_END_WITH","IS_ANY_OF","IS_NOT_ANY_OF","CONTAINS_ANY_OF","DOES_NOT_CONTAIN_ANY_OF","STARTS_WITH_ANY_OF","DOES_NOT_START_WITH_ANY_OF","ENDS_WITH_ANY_OF","DOES_NOT_END_WITH_ANY_OF","getStringOperatorsCompact","getNumberOperatorsFull","nativeGetGridNumericOperators","IS_BETWEEN","getNumberOperatorsCompact","getDateOperatorsFull","nativeGetGridDateOperators","getDateOperatorsCompact","getSingleSelectOperatorsFull","IS_WITH_SELECT","IS_NOT_WITH_SELECT","IS_ANY_OF_WITH_SELECT","IS_NOT_ANY_OF_WITH_SELECT","ARRAY_IS_EMPTY","ARRAY_IS_NOT_EMPTY","getSingleSelectOperatorsCompact","getMultiSelectOperatorsFull","HAS_WITH_SELECT","DOES_NOT_HAVE_WITH_SELECT","HAS_ANY_OF_WITH_SELECT","HAS_ALL_OF_WITH_SELECT","DOES_NOT_HAVE_ANY_OF_WITH_SELECT","HAS_ONLY_WITH_SELECT","getMultiSelectOperatorsCompact","getTagsOperatorsFull","HAS","DOES_NOT_HAVE","HAS_ANY_OF","HAS_ALL_OF","DOES_NOT_HAVE_ANY_OF","HAS_ONLY","getTagsOperatorsCompact","isOverrideOptions","options","arraySortComparator","a","b","arrA","arrB","strA","sort","join","strB","localeCompare","arrayValueFormatter","CASE_INSENSITIVE_TYPES","createColumn","_builtInOpts$compact","_builtInOpts$caseSens","result","getMuiType","sortComparator","valueFormatter","builtInOpts","compact","caseSensitive","getOperatorsForType","exclude","excludeSet","Set","has","extend","createReactRouterV5Adapter","history","pathname","location","search","replace","historyReplace","newSearch","queueMicrotask","EMPTY_FILTER_MODEL","items","sameItems","JSON","stringify","filterOutField","model","nextItemId","id","useLinkedFilterModel","initialFilterModel","debounceMs","filterModel","setFilterModel","cardOwnedFields","skipNextDebounce","debounceTimer","onChangeRef","commit","useCallback","next","prev","_onChangeRef$current","call","onFilterModelChange","panelFields","delete","getSelected","find","i","getValue","_filterModel$items$fi","setMultiSelect","values","_onChangeRef$current2","push","add","setBoolean","_onChangeRef$current3","clearField","_onChangeRef$current4","reset","clear","isFieldExternallyControlled","hasFilter","some","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/columns/detailPanelToggleColDef.ts","../src/utils/fields/InputDateInterval.tsx","../src/utils/operators/date/isBetween.tsx","../src/utils/operators/date/getGridDateOperators.ts","../src/utils/operators/utils/caseInsensitive.ts","../src/utils/columnTypes/index.ts","../src/utils/createColumn.ts","../src/adapters/reactRouterV5.ts","../src/hooks/useLinkedFilterModel.ts"],"sourcesContent":["import { GRID_DETAIL_PANEL_TOGGLE_COL_DEF } from '@mui/x-data-grid-pro';\n\n// Don't use a spread operator there or it will break the build due to MUI internal components\nconst DETAIL_PANEL_TOGGLE_COL_DEF = GRID_DETAIL_PANEL_TOGGLE_COL_DEF;\nDETAIL_PANEL_TOGGLE_COL_DEF.type = 'actions';\n\nexport { DETAIL_PANEL_TOGGLE_COL_DEF };\n","import * as React from 'react';\nimport Box from '@mui/material/Box';\nimport TextField, { TextFieldProps } from '@mui/material/TextField';\nimport { Icon } from '@redsift/design-system';\nimport { mdiSync } from '@redsift/icons';\n\nconst SUBMIT_FILTER_STROKE_TIME = 500;\n\nexport const InputDateInterval = (props: any) => {\n const { item, applyValue, focusElementRef = null } = props;\n\n const filterTimeout = React.useRef<any>();\n const [filterValueState, setFilterValueState] = React.useState<[string, string]>(item.value ?? ['', '']);\n const [applying, setIsApplying] = React.useState(false);\n\n React.useEffect(() => {\n return () => {\n clearTimeout(filterTimeout.current);\n };\n }, []);\n\n React.useEffect(() => {\n const itemValue = item.value ?? ['', ''];\n setFilterValueState(itemValue);\n }, [item.value]);\n\n const updateFilterValue = (from: string, to: string) => {\n clearTimeout(filterTimeout.current);\n setFilterValueState([from, to]);\n\n setIsApplying(true);\n filterTimeout.current = setTimeout(() => {\n setIsApplying(false);\n applyValue({ ...item, value: [from, to] });\n }, SUBMIT_FILTER_STROKE_TIME);\n };\n\n const handleFromChange: TextFieldProps['onChange'] = (event) => {\n const newFrom = event.target.value;\n updateFilterValue(newFrom, filterValueState[1]);\n };\n\n const handleToChange: TextFieldProps['onChange'] = (event) => {\n const newTo = event.target.value;\n updateFilterValue(filterValueState[0], newTo);\n };\n\n return (\n <Box\n sx={{\n display: 'inline-flex',\n flexDirection: 'row',\n alignItems: 'end',\n height: 48,\n pl: '20px',\n }}\n >\n <TextField\n name=\"date-from-input\"\n placeholder=\"From\"\n label=\"From\"\n variant=\"standard\"\n value={filterValueState[0] ?? ''}\n onChange={handleFromChange}\n type=\"date\"\n inputRef={focusElementRef}\n sx={{ mr: 2 }}\n InputLabelProps={{ shrink: true }}\n />\n <TextField\n name=\"date-to-input\"\n placeholder=\"To\"\n label=\"To\"\n variant=\"standard\"\n value={filterValueState[1] ?? ''}\n onChange={handleToChange}\n type=\"date\"\n InputProps={applying ? { endAdornment: <Icon icon={mdiSync} /> } : {}}\n InputLabelProps={{ shrink: true }}\n />\n </Box>\n );\n};\n","import { GridCellParams, GridFilterItem } from '@mui/x-data-grid-pro';\nimport { InputDateInterval } from '../../fields/InputDateInterval';\n\nconst isBetweenOperator = {\n label: 'is between',\n value: 'isBetween',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n if (!Array.isArray(filterItem.value) || filterItem.value.length !== 2) {\n return null;\n }\n\n if (!filterItem.value[0] || !filterItem.value[1]) {\n return null;\n }\n\n // Parse as local time (not UTC) since the date input produces YYYY-MM-DD\n // strings representing dates in the user's local timezone.\n const [fromYear, fromMonth, fromDay] = filterItem.value[0].split('-').map(Number);\n const [toYear, toMonth, toDay] = filterItem.value[1].split('-').map(Number);\n\n const fromTime = new Date(fromYear, fromMonth - 1, fromDay).getTime();\n // Set upper bound to end-of-day so dateTime values later that day are included.\n const toTime = new Date(toYear, toMonth - 1, toDay, 23, 59, 59, 999).getTime();\n\n if (isNaN(fromTime) || isNaN(toTime)) {\n return null;\n }\n\n return (params: GridCellParams<any, any>): boolean => {\n if (params.value == null) {\n return false;\n }\n const cellTime = params.value instanceof Date ? params.value.getTime() : new Date(params.value).getTime();\n if (isNaN(cellTime)) {\n return false;\n }\n return cellTime >= fromTime && cellTime <= toTime;\n };\n },\n InputComponent: InputDateInterval,\n};\n\nexport const DATE_IS_BETWEEN = isBetweenOperator;\n","import { getGridDateOperators as forwardOperators, GridFilterOperator } from '@mui/x-data-grid-pro';\nimport { DATE_IS_BETWEEN } from './isBetween';\n\nexport const getGridDateOperatorsExtended: (showTime?: boolean) => GridFilterOperator[] = (showTime = false) => [\n ...forwardOperators(showTime),\n DATE_IS_BETWEEN,\n];\n","import { GridCellParams, GridFilterItem, GridFilterOperator } from '@mui/x-data-grid-pro';\n\ntype ApplyFilterFn = ((params: GridCellParams) => boolean) | null;\ntype GetApplyFilterFn = (filterItem: GridFilterItem, column?: any) => ApplyFilterFn;\n\nconst lowercaseValue = (value: unknown): unknown => {\n if (typeof value === 'string') {\n return value.toLowerCase();\n }\n if (Array.isArray(value)) {\n return value.map(lowercaseValue);\n }\n return value;\n};\n\n/**\n * Wraps a filter operator's `getApplyFilterFn` to lowercase both the cell value\n * and the filter value before comparison, making the operator case-insensitive.\n *\n * Only affects string-based values — numbers, dates, and booleans pass through unchanged.\n */\nexport const wrapCaseInsensitive = (operator: GridFilterOperator): GridFilterOperator => {\n const originalGetApplyFilterFn = operator.getApplyFilterFn as GetApplyFilterFn;\n\n return {\n ...operator,\n getApplyFilterFn: (filterItem: GridFilterItem, column?: any) => {\n const caseInsensitiveFilterItem = {\n ...filterItem,\n value: lowercaseValue(filterItem.value),\n };\n\n const originalFn = originalGetApplyFilterFn(caseInsensitiveFilterItem, column);\n if (!originalFn) {\n return null;\n }\n\n return (params: GridCellParams) => {\n const lowercasedParams = {\n ...params,\n value: lowercaseValue(params.value),\n } as GridCellParams;\n return originalFn(lowercasedParams);\n };\n },\n };\n};\n\n/**\n * Applies case-insensitive wrapping to an array of filter operators.\n */\nexport const makeCaseInsensitive = (operators: GridFilterOperator[]): GridFilterOperator[] => {\n return operators.map(wrapCaseInsensitive);\n};\n","import { GridColumnTypesRecord } from '@mui/x-data-grid-pro';\nimport { operatorList } from '../operators';\n\nexport const getRsStringColumnType = () => {\n return {\n type: 'string',\n filterOperators: operatorList.rsString,\n };\n};\n\nexport const getRsNumberColumnType = () => {\n return {\n type: 'number',\n filterOperators: operatorList.rsNumber,\n };\n};\n\nexport const getRsSingleSelectColumnType = () => {\n return {\n type: 'singleSelect',\n filterOperators: operatorList.rsSingleSelect,\n };\n};\n\nexport const getRsSingleSelectWithShortOperatorListColumnType = () => {\n return {\n type: 'singleSelect',\n filterOperators: operatorList.rsSingleSelectWithShortOperatorList,\n };\n};\n\nexport const getRsMultipleSelectColumnType = () => {\n return {\n type: 'singleSelect',\n filterOperators: operatorList.rsMultipleSelect,\n };\n};\n\nexport const getRsMultipleSelectWithShortOperatorListColumnType = () => {\n return {\n type: 'singleSelect',\n filterOperators: operatorList.rsMultipleSelectWithShortOperatorList,\n };\n};\n\nexport const customColumnTypes: Partial<GridColumnTypesRecord> = {\n rsString: getRsStringColumnType(),\n rsNumber: getRsNumberColumnType(),\n rsSingleSelect: getRsSingleSelectColumnType(),\n rsSingleSelectWithShortOperatorList: getRsSingleSelectWithShortOperatorListColumnType(),\n rsMultipleSelect: getRsMultipleSelectColumnType(),\n rsMultipleSelectWithShortOperatorList: getRsMultipleSelectWithShortOperatorListColumnType(),\n};\n","import {\n getGridStringOperators as nativeGetGridStringOperators,\n getGridNumericOperators as nativeGetGridNumericOperators,\n getGridDateOperators as nativeGetGridDateOperators,\n GridColDef,\n GridFilterOperator,\n} from '@mui/x-data-grid-pro';\n\nimport { DOES_NOT_CONTAIN } from './operators/string/doesNotContain';\nimport { DOES_NOT_END_WITH } from './operators/string/doesNotEndWith';\nimport { DOES_NOT_EQUAL } from './operators/string/doesNotEqual';\nimport { DOES_NOT_HAVE, DOES_NOT_HAVE_WITH_SELECT } from './operators/string/doesNotHave';\nimport { DOES_NOT_START_WITH } from './operators/string/doesNotStartWith';\nimport { HAS, HAS_WITH_SELECT } from './operators/string/has';\nimport { HAS_ONLY, HAS_ONLY_WITH_SELECT } from './operators/string/hasOnly';\nimport { IS_WITH_SELECT } from './operators/string/is';\nimport { IS_NOT_WITH_SELECT } from './operators/string/isNot';\n\nimport { CONTAINS_ANY_OF } from './operators/string-array/containsAnyOf';\nimport { DOES_NOT_CONTAIN_ANY_OF } from './operators/string-array/doesNotContainAnyOf';\nimport { DOES_NOT_END_WITH_ANY_OF } from './operators/string-array/doesNotEndWithAnyOf';\nimport { DOES_NOT_HAVE_ANY_OF, DOES_NOT_HAVE_ANY_OF_WITH_SELECT } from './operators/string-array/doesNotHaveAnyOf';\nimport { DOES_NOT_START_WITH_ANY_OF } from './operators/string-array/doesNotStartWithAnyOf';\nimport { ENDS_WITH_ANY_OF } from './operators/string-array/endsWithAnyOf';\nimport { HAS_ALL_OF, HAS_ALL_OF_WITH_SELECT } from './operators/string-array/hasAllOf';\nimport { HAS_ANY_OF, HAS_ANY_OF_WITH_SELECT } from './operators/string-array/hasAnyOf';\nimport { IS_ANY_OF, IS_ANY_OF_WITH_SELECT } from './operators/string-array/isAnyOf';\nimport { IS_NOT_ANY_OF, IS_NOT_ANY_OF_WITH_SELECT } from './operators/string-array/isNotAnyOf';\nimport { STARTS_WITH_ANY_OF } from './operators/string-array/startsWithAnyOf';\n\nimport { IS_BETWEEN } from './operators/numeric/isBetween';\nimport { DATE_IS_BETWEEN } from './operators/date/isBetween';\nimport { ARRAY_IS_EMPTY, ARRAY_IS_NOT_EMPTY } from './operators/common/isEmpty';\nimport { makeCaseInsensitive } from './operators/utils/caseInsensitive';\n\n// ---------------------------------------------------------------------------\n// Operator name unions (for typed `exclude`)\n// ---------------------------------------------------------------------------\n\nexport type StringOperatorName =\n | 'contains'\n | 'doesNotContain'\n | 'equals'\n | 'doesNotEqual'\n | 'startsWith'\n | 'doesNotStartWith'\n | 'endsWith'\n | 'doesNotEndWith'\n | 'isEmpty'\n | 'isNotEmpty'\n | 'isAnyOf'\n | 'isNotAnyOf'\n | 'containsAnyOf'\n | 'doesNotContainAnyOf'\n | 'startsWithAnyOf'\n | 'doesNotStartWithAnyOf'\n | 'endsWithAnyOf'\n | 'doesNotEndWithAnyOf';\n\nexport type NumberOperatorName = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'isEmpty' | 'isNotEmpty' | 'isBetween';\n\nexport type DateOperatorName =\n | 'is'\n | 'not'\n | 'after'\n | 'onOrAfter'\n | 'before'\n | 'onOrBefore'\n | 'isEmpty'\n | 'isNotEmpty'\n | 'isBetween';\n\nexport type SingleSelectOperatorName = 'is' | 'isNot' | 'isAnyOf' | 'isNotAnyOf' | 'isEmpty' | 'isNotEmpty';\n\nexport type MultiSelectOperatorName =\n | 'has'\n | 'doesNotHave'\n | 'hasAnyOf'\n | 'hasAllOf'\n | 'doesNotHaveAnyOf'\n | 'hasOnly'\n | 'isEmpty'\n | 'isNotEmpty';\n\nexport type TagsOperatorName =\n | 'has'\n | 'doesNotHave'\n | 'hasAnyOf'\n | 'hasAllOf'\n | 'doesNotHaveAnyOf'\n | 'hasOnly'\n | 'containsAnyOf'\n | 'doesNotContainAnyOf'\n | 'isEmpty'\n | 'isNotEmpty';\n\n// ---------------------------------------------------------------------------\n// Column type\n// ---------------------------------------------------------------------------\n\nexport type ColumnType = 'string' | 'number' | 'date' | 'dateTime' | 'singleSelect' | 'multiSelect' | 'tags';\n\n// ---------------------------------------------------------------------------\n// Options: discriminated union (built-in vs override)\n// ---------------------------------------------------------------------------\n\ntype BuiltInOptions<TOperatorName extends string> = {\n compact?: boolean;\n exclude?: TOperatorName[];\n extend?: GridFilterOperator[];\n caseSensitive?: boolean;\n};\n\ntype OverrideOptions = {\n operators: GridFilterOperator[];\n};\n\ntype StringColumnOptions = BuiltInOptions<StringOperatorName> | OverrideOptions;\ntype NumberColumnOptions = Omit<BuiltInOptions<NumberOperatorName>, 'caseSensitive'> | OverrideOptions;\ntype DateColumnOptions = Omit<BuiltInOptions<DateOperatorName>, 'caseSensitive'> | OverrideOptions;\ntype SingleSelectColumnOptions = BuiltInOptions<SingleSelectOperatorName> | OverrideOptions;\ntype MultiSelectColumnOptions = BuiltInOptions<MultiSelectOperatorName> | OverrideOptions;\ntype TagsColumnOptions = BuiltInOptions<TagsOperatorName> | OverrideOptions;\n\nexport type ColumnOptions<T extends ColumnType> = T extends 'string'\n ? StringColumnOptions\n : T extends 'number'\n ? NumberColumnOptions\n : T extends 'date' | 'dateTime'\n ? DateColumnOptions\n : T extends 'singleSelect'\n ? SingleSelectColumnOptions\n : T extends 'multiSelect'\n ? MultiSelectColumnOptions\n : T extends 'tags'\n ? TagsColumnOptions\n : never;\n\n// ---------------------------------------------------------------------------\n// Full & compact operator lists\n// ---------------------------------------------------------------------------\n\nconst getStringOperatorsFull = (): GridFilterOperator[] => [\n ...nativeGetGridStringOperators().filter((op) => !['isAnyOf'].includes(op.value)),\n DOES_NOT_CONTAIN,\n DOES_NOT_EQUAL,\n DOES_NOT_START_WITH,\n DOES_NOT_END_WITH,\n IS_ANY_OF,\n IS_NOT_ANY_OF,\n CONTAINS_ANY_OF,\n DOES_NOT_CONTAIN_ANY_OF,\n STARTS_WITH_ANY_OF,\n DOES_NOT_START_WITH_ANY_OF,\n ENDS_WITH_ANY_OF,\n DOES_NOT_END_WITH_ANY_OF,\n];\n\nconst getStringOperatorsCompact = (): GridFilterOperator[] => [\n ...nativeGetGridStringOperators().filter((op) => !['isAnyOf', 'startsWith', 'endsWith'].includes(op.value)),\n DOES_NOT_CONTAIN,\n DOES_NOT_EQUAL,\n IS_ANY_OF,\n];\n\nconst getNumberOperatorsFull = (): GridFilterOperator[] => [...nativeGetGridNumericOperators(), IS_BETWEEN];\n\nconst getNumberOperatorsCompact = (): GridFilterOperator[] => nativeGetGridNumericOperators();\n\nconst getDateOperatorsFull = (showTime: boolean): GridFilterOperator[] => [\n ...nativeGetGridDateOperators(showTime),\n DATE_IS_BETWEEN,\n];\n\nconst getDateOperatorsCompact = (showTime: boolean): GridFilterOperator[] => nativeGetGridDateOperators(showTime);\n\nconst getSingleSelectOperatorsFull = (): GridFilterOperator[] => [\n IS_WITH_SELECT,\n IS_NOT_WITH_SELECT,\n IS_ANY_OF_WITH_SELECT,\n IS_NOT_ANY_OF_WITH_SELECT,\n ARRAY_IS_EMPTY,\n ARRAY_IS_NOT_EMPTY,\n];\n\nconst getSingleSelectOperatorsCompact = (): GridFilterOperator[] => [\n IS_WITH_SELECT,\n IS_NOT_WITH_SELECT,\n IS_ANY_OF_WITH_SELECT,\n];\n\nconst getMultiSelectOperatorsFull = (): GridFilterOperator[] => [\n HAS_WITH_SELECT,\n DOES_NOT_HAVE_WITH_SELECT,\n HAS_ANY_OF_WITH_SELECT,\n HAS_ALL_OF_WITH_SELECT,\n DOES_NOT_HAVE_ANY_OF_WITH_SELECT,\n HAS_ONLY_WITH_SELECT,\n ARRAY_IS_EMPTY,\n ARRAY_IS_NOT_EMPTY,\n];\n\nconst getMultiSelectOperatorsCompact = (): GridFilterOperator[] => [\n HAS_WITH_SELECT,\n DOES_NOT_HAVE_WITH_SELECT,\n HAS_ANY_OF_WITH_SELECT,\n];\n\nconst getTagsOperatorsFull = (): GridFilterOperator[] => [\n HAS,\n DOES_NOT_HAVE,\n HAS_ANY_OF,\n HAS_ALL_OF,\n DOES_NOT_HAVE_ANY_OF,\n HAS_ONLY,\n CONTAINS_ANY_OF,\n DOES_NOT_CONTAIN_ANY_OF,\n ARRAY_IS_EMPTY,\n ARRAY_IS_NOT_EMPTY,\n];\n\nconst getTagsOperatorsCompact = (): GridFilterOperator[] => [HAS, DOES_NOT_HAVE, HAS_ANY_OF];\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst isOverrideOptions = (options: any): options is OverrideOptions => {\n return options && 'operators' in options;\n};\n\nconst arraySortComparator = (a: unknown, b: unknown): number => {\n const arrA = Array.isArray(a) ? a : [];\n const arrB = Array.isArray(b) ? b : [];\n if (arrA.length !== arrB.length) {\n return arrA.length - arrB.length;\n }\n const strA = arrA.map(String).sort().join(',');\n const strB = arrB.map(String).sort().join(',');\n return strA.localeCompare(strB);\n};\n\nconst arrayValueFormatter = (value: unknown): string => {\n if (Array.isArray(value)) {\n return value.map(String).join(', ');\n }\n return value != null ? String(value) : '';\n};\n\n// ---------------------------------------------------------------------------\n// Operator type strings that support case-insensitive wrapping\n// ---------------------------------------------------------------------------\n\nconst CASE_INSENSITIVE_TYPES: ColumnType[] = ['string', 'singleSelect', 'tags'];\n\n// ---------------------------------------------------------------------------\n// createColumn()\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a column configuration with the appropriate MUI type and filter operators\n * for the given column type. Spread the result into your column definition.\n *\n * @example\n * ```tsx\n * const columns = [\n * { ...createColumn('string'), field: 'name', headerName: 'Name' },\n * { ...createColumn('number'), field: 'price', headerName: 'Price' },\n * { ...createColumn('singleSelect', { compact: true }), field: 'status', valueOptions: ['active', 'inactive'] },\n * { ...createColumn('multiSelect'), field: 'tags', valueOptions: ['a', 'b', 'c'] },\n * { ...createColumn('tags'), field: 'labels', headerName: 'Labels' },\n * ];\n * ```\n */\nexport function createColumn<T extends ColumnType>(type: T, options?: ColumnOptions<T>): Partial<GridColDef> {\n // Override mode: consumer provides full operator list\n if (options && isOverrideOptions(options)) {\n const result: Partial<GridColDef> = {\n type: getMuiType(type),\n filterOperators: options.operators,\n };\n if (type === 'multiSelect' || type === 'tags') {\n result.sortComparator = arraySortComparator;\n result.valueFormatter = arrayValueFormatter;\n }\n return result;\n }\n\n // Built-in mode\n const builtInOpts = (options ?? {}) as BuiltInOptions<string>;\n const compact = builtInOpts.compact ?? false;\n const caseSensitive = builtInOpts.caseSensitive ?? false;\n\n let operators = getOperatorsForType(type, compact);\n\n // Apply exclude\n if (builtInOpts.exclude && builtInOpts.exclude.length > 0) {\n const excludeSet = new Set(builtInOpts.exclude);\n operators = operators.filter((op) => !excludeSet.has(op.value));\n }\n\n // Apply case-insensitive wrapping\n if (!caseSensitive && CASE_INSENSITIVE_TYPES.includes(type)) {\n operators = makeCaseInsensitive(operators);\n }\n\n // Apply extend\n if (builtInOpts.extend && builtInOpts.extend.length > 0) {\n operators = [...operators, ...builtInOpts.extend];\n }\n\n const result: Partial<GridColDef> = {\n type: getMuiType(type),\n filterOperators: operators,\n };\n\n if (type === 'multiSelect' || type === 'tags') {\n result.sortComparator = arraySortComparator;\n result.valueFormatter = arrayValueFormatter;\n }\n\n return result;\n}\n\nfunction getMuiType(type: ColumnType): string {\n switch (type) {\n case 'multiSelect':\n case 'singleSelect':\n return 'singleSelect';\n case 'tags':\n return 'string';\n default:\n return type;\n }\n}\n\nfunction getOperatorsForType(type: ColumnType, compact: boolean): GridFilterOperator[] {\n switch (type) {\n case 'string':\n return compact ? getStringOperatorsCompact() : getStringOperatorsFull();\n case 'number':\n return compact ? getNumberOperatorsCompact() : getNumberOperatorsFull();\n case 'date':\n return compact ? getDateOperatorsCompact(false) : getDateOperatorsFull(false);\n case 'dateTime':\n return compact ? getDateOperatorsCompact(true) : getDateOperatorsFull(true);\n case 'singleSelect':\n return compact ? getSingleSelectOperatorsCompact() : getSingleSelectOperatorsFull();\n case 'multiSelect':\n return compact ? getMultiSelectOperatorsCompact() : getMultiSelectOperatorsFull();\n case 'tags':\n return compact ? getTagsOperatorsCompact() : getTagsOperatorsFull();\n }\n}\n","/**\n * A React Router v5 / connected-react-router adapter for `StatefulDataGrid.useRouter`.\n *\n * Defers `history.replace` via `queueMicrotask` to avoid the\n * \"Cannot update during an existing state transition\" warning\n * that connected-react-router triggers when the grid synchronises\n * URL state during render.\n *\n * @example\n * ```tsx\n * import { createReactRouterV5Adapter } from '@redsift/table';\n *\n * const useRouter = createReactRouterV5Adapter(history);\n *\n * <StatefulDataGrid useRouter={useRouter} … />\n * ```\n */\n\n/** Minimal subset of React Router v5 `history` used by the adapter. */\nexport interface ReactRouterV5History {\n location: {\n pathname: string;\n search: string;\n };\n replace: (path: { pathname: string; search: string }) => void;\n}\n\n/**\n * Create a `useRouter` hook compatible with `StatefulDataGrid` from a\n * React Router v5 `history` object.\n */\nexport const createReactRouterV5Adapter = (\n history: ReactRouterV5History\n): (() => { pathname: string; search: string; historyReplace: (newSearch: string) => void }) => {\n return () => ({\n pathname: history.location.pathname,\n search: history.location.search.replace(/^\\?/, ''),\n historyReplace: (newSearch: string) => {\n queueMicrotask(() => {\n history.replace({\n pathname: history.location.pathname,\n search: newSearch ? `?${newSearch}` : '',\n });\n });\n },\n });\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { GridFilterModel } from '@mui/x-data-grid-pro';\n\nconst EMPTY_FILTER_MODEL: GridFilterModel = { items: [] };\n\nexport interface UseLinkedFilterModelOptions {\n /** Starting filter model. Defaults to `{ items: [] }`. */\n initialFilterModel?: GridFilterModel;\n /**\n * Debounce window (ms) applied to changes coming from the DataGrid filter panel.\n * Card-driven changes via `setMultiSelect` / `setBoolean` are never debounced.\n * Defaults to `300`. Pass `0` to disable.\n */\n debounceMs?: number;\n /** Optional callback fired on every settled filter model change. */\n onChange?: (model: GridFilterModel) => void;\n}\n\nexport interface UseLinkedFilterModelReturn {\n /** Current filter model. Pass to DataGrid `filterModel` and read for DataCard derivations. */\n filterModel: GridFilterModel;\n /** Bind to DataGrid `onFilterModelChange`. Debounced for panel changes. */\n onFilterModelChange: (model: GridFilterModel) => void;\n /** Read selected values for an `isAnyOf` / `hasAnyOf` field. Empty array when not set. */\n getSelected: (field: string) => string[];\n /** Read the raw filter value for a field (e.g. boolean toggles). */\n getValue: (field: string) => unknown;\n /** Set a multi-select filter from a DataCard. Empty array clears the field. */\n setMultiSelect: (field: string, values: string[], operator?: string) => void;\n /** Set a boolean filter. Pass `null` to clear. */\n setBoolean: (field: string, value: boolean | null) => void;\n /** Remove a single field from the filter model. */\n clearField: (field: string) => void;\n /** Reset the filter model to the initial value. */\n reset: () => void;\n /**\n * Whether a field's filter was set externally (DataGrid filter panel) rather than\n * via this hook's setters. Useful for disabling the corresponding DataCard so the\n * panel and card don't fight over the same field.\n */\n isFieldExternallyControlled: (field: string) => boolean;\n}\n\nconst sameItems = (a: GridFilterModel, b: GridFilterModel): boolean =>\n JSON.stringify(a.items) === JSON.stringify(b.items);\n\nconst filterOutField = (model: GridFilterModel, field: string): GridFilterModel['items'] =>\n model.items.filter((item) => item.field !== field);\n\nconst nextItemId = (() => {\n let id = 1;\n return () => id++;\n})();\n\n/**\n * Bridge a DataGrid `filterModel` and the DataCards that drive (and reflect) it.\n *\n * Without this hook, every drilldowned datagrid page hand-rolls the same plumbing:\n * derive selections from `filterModel`, write them back via raw `setFilterModel`\n * mutations, debounce panel changes, and track which fields the panel \"owns\" so\n * cards don't fight the panel for control. SOFA-6 shipped this logic ad hoc and\n * got it wrong (no debounce, prop-drilled state, no panel/card reconciliation).\n *\n * @example\n * const filter = useLinkedFilterModel();\n *\n * <DataCard.Listbox\n * values={filter.getSelected('Category')}\n * onChange={(values) => filter.setMultiSelect('Category', values)}\n * isDisabled={filter.isFieldExternallyControlled('Category')}\n * >\n * {…}\n * </DataCard.Listbox>\n *\n * <DataGrid filterModel={filter.filterModel} onFilterModelChange={filter.onFilterModelChange} />\n */\nexport function useLinkedFilterModel(options: UseLinkedFilterModelOptions = {}): UseLinkedFilterModelReturn {\n const { initialFilterModel = EMPTY_FILTER_MODEL, debounceMs = 300, onChange } = options;\n\n const [filterModel, setFilterModel] = useState<GridFilterModel>(initialFilterModel);\n\n // Fields whose current filter was set by setMultiSelect / setBoolean (not the panel).\n const cardOwnedFields = useRef<Set<string>>(new Set());\n // Marks the next onFilterModelChange as originating from a card setter so we skip debouncing.\n const skipNextDebounce = useRef(false);\n const debounceTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const onChangeRef = useRef(onChange);\n\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n useEffect(() => {\n return () => {\n if (debounceTimer.current) clearTimeout(debounceTimer.current);\n };\n }, []);\n\n const commit = useCallback((next: GridFilterModel) => {\n setFilterModel((prev) => {\n if (sameItems(prev, next)) return prev;\n onChangeRef.current?.(next);\n return next;\n });\n }, []);\n\n const onFilterModelChange = useCallback(\n (model: GridFilterModel) => {\n if (skipNextDebounce.current) {\n skipNextDebounce.current = false;\n // If the incoming model matches the current state, this is a DataGrid echo\n // of a card setter — commit (no-op) and preserve card ownership.\n if (sameItems(filterModel, model)) {\n commit(model);\n return;\n }\n // Otherwise a real panel change arrived — fall through to ownership logic.\n }\n\n // Panel change — drop card ownership for fields the panel now controls / has cleared,\n // then debounce the commit.\n const panelFields = new Set(model.items.map((item) => item.field));\n for (const field of Array.from(cardOwnedFields.current)) {\n if (!panelFields.has(field)) cardOwnedFields.current.delete(field);\n }\n // If the panel touched a field the card previously owned, transfer ownership to the panel.\n for (const field of panelFields) {\n cardOwnedFields.current.delete(field);\n }\n\n if (debounceMs <= 0) {\n commit(model);\n return;\n }\n if (debounceTimer.current) clearTimeout(debounceTimer.current);\n debounceTimer.current = setTimeout(() => {\n debounceTimer.current = null;\n commit(model);\n }, debounceMs);\n },\n [commit, debounceMs, filterModel]\n );\n\n const getSelected = useCallback(\n (field: string): string[] => {\n const item = filterModel.items.find((i) => i.field === field);\n if (!item || item.value === undefined || item.value === null) return [];\n if (item.operator === 'isAnyOf' || item.operator === 'hasAnyOf') {\n return Array.isArray(item.value) ? (item.value as string[]) : [String(item.value)];\n }\n return [];\n },\n [filterModel]\n );\n\n const getValue = useCallback(\n (field: string): unknown => filterModel.items.find((i) => i.field === field)?.value,\n [filterModel]\n );\n\n const setMultiSelect = useCallback((field: string, values: string[], operator: string = 'isAnyOf') => {\n skipNextDebounce.current = true;\n setFilterModel((prev) => {\n const items = filterOutField(prev, field);\n if (values.length > 0) {\n items.push({ field, id: nextItemId(), operator, value: values });\n cardOwnedFields.current.add(field);\n } else {\n cardOwnedFields.current.delete(field);\n }\n const next: GridFilterModel = { ...prev, items };\n if (sameItems(prev, next)) return prev;\n onChangeRef.current?.(next);\n return next;\n });\n }, []);\n\n const setBoolean = useCallback((field: string, value: boolean | null) => {\n skipNextDebounce.current = true;\n setFilterModel((prev) => {\n const items = filterOutField(prev, field);\n if (value !== null) {\n items.push({ field, id: nextItemId(), operator: 'is', value: String(value) });\n cardOwnedFields.current.add(field);\n } else {\n cardOwnedFields.current.delete(field);\n }\n const next: GridFilterModel = { ...prev, items };\n if (sameItems(prev, next)) return prev;\n onChangeRef.current?.(next);\n return next;\n });\n }, []);\n\n const clearField = useCallback((field: string) => {\n skipNextDebounce.current = true;\n setFilterModel((prev) => {\n const items = filterOutField(prev, field);\n cardOwnedFields.current.delete(field);\n const next: GridFilterModel = { ...prev, items };\n if (sameItems(prev, next)) return prev;\n onChangeRef.current?.(next);\n return next;\n });\n }, []);\n\n const reset = useCallback(() => {\n skipNextDebounce.current = true;\n cardOwnedFields.current.clear();\n commit(initialFilterModel);\n }, [commit, initialFilterModel]);\n\n const isFieldExternallyControlled = useCallback(\n (field: string): boolean => {\n const hasFilter = filterModel.items.some((item) => item.field === field);\n return hasFilter && !cardOwnedFields.current.has(field);\n },\n [filterModel]\n );\n\n return useMemo(\n () => ({\n filterModel,\n onFilterModelChange,\n getSelected,\n getValue,\n setMultiSelect,\n setBoolean,\n clearField,\n reset,\n isFieldExternallyControlled,\n }),\n [\n filterModel,\n onFilterModelChange,\n getSelected,\n getValue,\n setMultiSelect,\n setBoolean,\n clearField,\n reset,\n isFieldExternallyControlled,\n ]\n );\n}\n"],"names":["DETAIL_PANEL_TOGGLE_COL_DEF","GRID_DETAIL_PANEL_TOGGLE_COL_DEF","type","SUBMIT_FILTER_STROKE_TIME","InputDateInterval","props","_item$value","_filterValueState$","_filterValueState$2","item","applyValue","focusElementRef","filterTimeout","React","useRef","filterValueState","setFilterValueState","useState","value","applying","setIsApplying","useEffect","clearTimeout","current","_item$value2","itemValue","updateFilterValue","from","to","setTimeout","_objectSpread","handleFromChange","event","newFrom","target","handleToChange","newTo","createElement","Box","sx","display","flexDirection","alignItems","height","pl","TextField","name","placeholder","label","variant","onChange","inputRef","mr","InputLabelProps","shrink","InputProps","endAdornment","Icon","icon","mdiSync","isBetweenOperator","getApplyFilterFn","filterItem","field","operator","Array","isArray","length","fromYear","fromMonth","fromDay","split","map","Number","toYear","toMonth","toDay","fromTime","Date","getTime","toTime","isNaN","params","cellTime","InputComponent","DATE_IS_BETWEEN","getGridDateOperatorsExtended","showTime","arguments","undefined","forwardOperators","lowercaseValue","toLowerCase","wrapCaseInsensitive","originalGetApplyFilterFn","column","caseInsensitiveFilterItem","originalFn","lowercasedParams","makeCaseInsensitive","operators","getRsStringColumnType","filterOperators","operatorList","rsString","getRsNumberColumnType","rsNumber","getRsSingleSelectColumnType","rsSingleSelect","getRsSingleSelectWithShortOperatorListColumnType","rsSingleSelectWithShortOperatorList","getRsMultipleSelectColumnType","rsMultipleSelect","getRsMultipleSelectWithShortOperatorListColumnType","rsMultipleSelectWithShortOperatorList","customColumnTypes","getStringOperatorsFull","nativeGetGridStringOperators","filter","op","includes","DOES_NOT_CONTAIN","DOES_NOT_EQUAL","DOES_NOT_START_WITH","DOES_NOT_END_WITH","IS_ANY_OF","IS_NOT_ANY_OF","CONTAINS_ANY_OF","DOES_NOT_CONTAIN_ANY_OF","STARTS_WITH_ANY_OF","DOES_NOT_START_WITH_ANY_OF","ENDS_WITH_ANY_OF","DOES_NOT_END_WITH_ANY_OF","getStringOperatorsCompact","getNumberOperatorsFull","nativeGetGridNumericOperators","IS_BETWEEN","getNumberOperatorsCompact","getDateOperatorsFull","nativeGetGridDateOperators","getDateOperatorsCompact","getSingleSelectOperatorsFull","IS_WITH_SELECT","IS_NOT_WITH_SELECT","IS_ANY_OF_WITH_SELECT","IS_NOT_ANY_OF_WITH_SELECT","ARRAY_IS_EMPTY","ARRAY_IS_NOT_EMPTY","getSingleSelectOperatorsCompact","getMultiSelectOperatorsFull","HAS_WITH_SELECT","DOES_NOT_HAVE_WITH_SELECT","HAS_ANY_OF_WITH_SELECT","HAS_ALL_OF_WITH_SELECT","DOES_NOT_HAVE_ANY_OF_WITH_SELECT","HAS_ONLY_WITH_SELECT","getMultiSelectOperatorsCompact","getTagsOperatorsFull","HAS","DOES_NOT_HAVE","HAS_ANY_OF","HAS_ALL_OF","DOES_NOT_HAVE_ANY_OF","HAS_ONLY","getTagsOperatorsCompact","isOverrideOptions","options","arraySortComparator","a","b","arrA","arrB","strA","String","sort","join","strB","localeCompare","arrayValueFormatter","CASE_INSENSITIVE_TYPES","createColumn","_builtInOpts$compact","_builtInOpts$caseSens","result","getMuiType","sortComparator","valueFormatter","builtInOpts","compact","caseSensitive","getOperatorsForType","exclude","excludeSet","Set","has","extend","createReactRouterV5Adapter","history","pathname","location","search","replace","historyReplace","newSearch","queueMicrotask","EMPTY_FILTER_MODEL","items","sameItems","JSON","stringify","filterOutField","model","nextItemId","id","useLinkedFilterModel","initialFilterModel","debounceMs","filterModel","setFilterModel","cardOwnedFields","skipNextDebounce","debounceTimer","onChangeRef","commit","useCallback","next","prev","_onChangeRef$current","call","onFilterModelChange","panelFields","delete","getSelected","find","i","getValue","_filterModel$items$fi","setMultiSelect","values","_onChangeRef$current2","push","add","setBoolean","_onChangeRef$current3","clearField","_onChangeRef$current4","reset","clear","isFieldExternallyControlled","hasFilter","some","useMemo"],"mappings":"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"}
package/package.json CHANGED
@@ -30,11 +30,12 @@
30
30
  "test": "yarn test:unit && yarn test:storybook"
31
31
  },
32
32
  "types": "index.d.ts",
33
- "version": "12.5.3",
33
+ "version": "12.5.4-muiv6-alpha.1",
34
34
  "dependencies": {
35
35
  "@emotion/react": "^11.11.0",
36
36
  "@emotion/styled": "^11.11.0",
37
- "@mui/material": "^7.0.0",
37
+ "@mui/material": "^5.13.3",
38
+ "@mui/styled-engine-sc": "^5.11.0",
38
39
  "classnames": "^2.3.1",
39
40
  "lz-string": "^1.5.0"
40
41
  },
@@ -50,12 +51,12 @@
50
51
  "@babel/preset-env": "^7.17.10",
51
52
  "@babel/preset-react": "^7.17.12",
52
53
  "@babel/preset-typescript": "^7.16.7",
53
- "@mui/x-data-grid-premium": "^8.24.0",
54
- "@mui/x-license": "^8.0.0",
54
+ "@mui/x-data-grid-pro": "^6.18.0",
55
+ "@mui/x-license-pro": "^6.6.0",
55
56
  "@rollup/plugin-babel": "^6.0.2",
56
57
  "@rollup/plugin-commonjs": "^24.0.0",
57
58
  "@rollup/plugin-json": "^6.0.0",
58
- "@rollup/plugin-node-resolve": "^15.3.1",
59
+ "@rollup/plugin-node-resolve": "^13.3.0",
59
60
  "@testing-library/dom": "^8.5.0",
60
61
  "@testing-library/jest-dom": "^5.16.4",
61
62
  "@testing-library/react": "^13.4.0",
@@ -85,12 +86,12 @@
85
86
  "ts-jest": "^29.2.0"
86
87
  },
87
88
  "peerDependencies": {
88
- "@mui/x-data-grid-pro": ">=8",
89
+ "@mui/x-data-grid-pro": ">=6",
89
90
  "@redsift/design-system": "^12.5.3-0",
90
91
  "@redsift/icons": "^12.5.3-0",
91
92
  "react": ">=17",
92
93
  "react-dom": ">=17",
93
94
  "styled-components": "6.1.19"
94
95
  },
95
- "gitHead": "06c293087b38eed12e13fccefba0e3a21ebfcb0e"
96
+ "gitHead": "2e7e8170870a88e67f552a2c2039d7f9c645adf2"
96
97
  }
@@ -1,126 +0,0 @@
1
- import { a as _objectWithoutProperties, b as _extends } from './_rollupPluginBabelHelpers.js';
2
- import React__default, { forwardRef } from 'react';
3
- import { ButtonsColorPalette, IconButton, Button, Checkbox, Icon } from '@redsift/design-system';
4
- import { mdiFilterVariant, mdiViewColumn, mdiArrowUp, mdiArrowDown, mdiViewHeadline, mdiViewSequential, mdiViewStream, mdiChevronDown, mdiChevronRight, mdiTrayArrowDown } from '@redsift/icons';
5
-
6
- const _excluded$3 = ["children", "color", "onClick", "startIcon"];
7
- const BaseButton = /*#__PURE__*/forwardRef((props, ref) => {
8
- var _props$className;
9
- const {
10
- children,
11
- color: propsColor,
12
- onClick,
13
- startIcon
14
- } = props,
15
- forwardedProps = _objectWithoutProperties(props, _excluded$3);
16
- const color = Object.keys(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';
17
- if ((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('redsift-condensed')) {
18
- return /*#__PURE__*/React__default.createElement(IconButton, _extends({}, forwardedProps, {
19
- color: color,
20
- onClick: onClick,
21
- ref: ref,
22
- variant: "unstyled",
23
- isActive: props['aria-expanded'] === 'true',
24
- icon: typeof startIcon !== 'string' ? /*#__PURE__*/React__default.cloneElement(startIcon, {
25
- fontSize: 'medium'
26
- }) : startIcon,
27
- "aria-label": children,
28
- size: "medium"
29
- }));
30
- }
31
- return /*#__PURE__*/React__default.createElement(Button, _extends({}, forwardedProps, {
32
- color: color,
33
- onClick: onClick,
34
- ref: ref,
35
- variant: "unstyled",
36
- isActive: props['aria-expanded'] === 'true',
37
- leftIcon: startIcon
38
- }), children);
39
- });
40
-
41
- const _excluded$2 = ["checked", "indeterminate", "disabled", "onChange", "label", "slotProps", "material", "field", "isSelected", "inputProps", "touchRippleRef"];
42
- const BaseCheckbox = /*#__PURE__*/forwardRef((props, ref) => {
43
- const {
44
- checked,
45
- indeterminate,
46
- disabled,
47
- onChange,
48
- label,
49
- // MUI DataGrid v8 injects these props — strip them to avoid DOM warnings
50
- slotProps,
51
- material,
52
- field,
53
- isSelected,
54
- inputProps,
55
- touchRippleRef
56
- } = props,
57
- forwardedProps = _objectWithoutProperties(props, _excluded$2);
58
- return /*#__PURE__*/React__default.createElement(Checkbox, _extends({}, forwardedProps, inputProps, {
59
- isSelected: checked && !indeterminate,
60
- isDisabled: disabled,
61
- isIndeterminate: indeterminate,
62
- ref: ref,
63
- onChange: (isChecked, value, name, event) => onChange(event),
64
- "aria-label": label || 'Select row'
65
- }), label);
66
- });
67
-
68
- const _excluded$1 = ["displayName"];
69
- const muiIconToDSIcon = {
70
- columnFilteredIcon: mdiFilterVariant,
71
- columnSelectorIcon: mdiViewColumn,
72
- columnSortedAscendingIcon: mdiArrowUp,
73
- columnSortedDescendingIcon: mdiArrowDown,
74
- densityCompactIcon: mdiViewHeadline,
75
- densityStandardIcon: mdiViewSequential,
76
- densityComfortableIcon: mdiViewStream,
77
- detailPanelCollapseIcon: mdiChevronDown,
78
- detailPanelExpandIcon: mdiChevronRight,
79
- exportIcon: mdiTrayArrowDown,
80
- openFilterButtonIcon: mdiFilterVariant
81
- };
82
- const BaseIcon = /*#__PURE__*/forwardRef((props, ref) => {
83
- const {
84
- displayName
85
- } = props,
86
- forwardedProps = _objectWithoutProperties(props, _excluded$1);
87
- return /*#__PURE__*/React__default.createElement(Icon, _extends({}, forwardedProps, forwardedProps.inputProps, {
88
- ref: ref,
89
- size: forwardedProps.fontSize,
90
- icon: muiIconToDSIcon[displayName]
91
- }));
92
- });
93
-
94
- const _excluded = ["children", "color", "onClick", "field"];
95
- const BaseIconButton = /*#__PURE__*/forwardRef((props, ref) => {
96
- const {
97
- children,
98
- color: propsColor,
99
- onClick,
100
- field
101
- } = props,
102
- forwardedProps = _objectWithoutProperties(props, _excluded);
103
- const color = Object.keys(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';
104
-
105
- // MUI passes the icon as children (already rendered), but DS IconButton expects an icon prop
106
- // We pass children directly as the icon - the Icon component can handle ReactElements
107
- return /*#__PURE__*/React__default.createElement(IconButton, _extends({}, forwardedProps, {
108
- color: color,
109
- onClick: onClick,
110
- ref: ref,
111
- variant: "unstyled",
112
- isActive: props['aria-expanded'] === 'true',
113
- icon: children,
114
- size: "medium",
115
- iconProps: {
116
- style: {
117
- display: 'flex',
118
- alignItems: 'center',
119
- justifyContent: 'center'
120
- }
121
- }
122
- }));
123
- });
124
-
125
- export { BaseButton as B, BaseCheckbox as a, BaseIcon as b, BaseIconButton as c, muiIconToDSIcon as m };
126
- //# sourceMappingURL=BaseIconButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseIconButton.js","sources":["../../src/components/BaseComponents/BaseButton.tsx","../../src/components/BaseComponents/BaseCheckbox.tsx","../../src/components/BaseComponents/BaseIcon.tsx","../../src/components/BaseComponents/BaseIconButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { Button, ButtonsColorPalette, IconButton } from '@redsift/design-system';\n\nexport const BaseButton: React.JSXElementConstructor<any> = forwardRef((props, ref) => {\n const { children, color: propsColor, onClick, startIcon, ...forwardedProps } = props;\n\n const color = Object.keys(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';\n\n if (props.className?.includes('redsift-condensed')) {\n return (\n <IconButton\n {...forwardedProps}\n color={color}\n onClick={onClick}\n ref={ref}\n variant=\"unstyled\"\n isActive={props['aria-expanded'] === 'true'}\n icon={typeof startIcon !== 'string' ? React.cloneElement(startIcon, { fontSize: 'medium' }) : startIcon}\n aria-label={children}\n size=\"medium\"\n />\n );\n }\n\n return (\n <Button\n {...forwardedProps}\n color={color}\n onClick={onClick}\n ref={ref}\n variant=\"unstyled\"\n isActive={props['aria-expanded'] === 'true'}\n leftIcon={startIcon}\n >\n {children}\n </Button>\n );\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { forwardRef, MutableRefObject } from 'react';\nimport { Checkbox } from '@redsift/design-system';\n\nexport const BaseCheckbox: React.JSXElementConstructor<any> = forwardRef((props, ref) => {\n const {\n checked,\n indeterminate,\n disabled,\n onChange,\n label,\n // MUI DataGrid v8 injects these props — strip them to avoid DOM warnings\n slotProps,\n material,\n field,\n isSelected,\n inputProps,\n touchRippleRef,\n ...forwardedProps\n } = props;\n\n return (\n <Checkbox\n {...forwardedProps}\n {...inputProps}\n isSelected={checked && !indeterminate}\n isDisabled={disabled}\n isIndeterminate={indeterminate}\n ref={ref as MutableRefObject<HTMLLabelElement>}\n onChange={(isChecked, value, name, event) => onChange(event)}\n aria-label={label || 'Select row'}\n >\n {label}\n </Checkbox>\n );\n});\n","import React, { forwardRef } from 'react';\nimport { Icon } from '@redsift/design-system';\nimport {\n mdiArrowDown,\n mdiArrowUp,\n mdiChevronDown,\n mdiChevronRight,\n mdiFilterVariant,\n mdiTrayArrowDown,\n mdiViewColumn,\n mdiViewHeadline,\n mdiViewSequential,\n mdiViewStream,\n} from '@redsift/icons';\nimport { GridSlotsComponent } from '@mui/x-data-grid-premium';\n\nexport const muiIconToDSIcon: Partial<Record<keyof GridSlotsComponent, string>> = {\n columnFilteredIcon: mdiFilterVariant,\n columnSelectorIcon: mdiViewColumn,\n columnSortedAscendingIcon: mdiArrowUp,\n columnSortedDescendingIcon: mdiArrowDown,\n densityCompactIcon: mdiViewHeadline,\n densityStandardIcon: mdiViewSequential,\n densityComfortableIcon: mdiViewStream,\n detailPanelCollapseIcon: mdiChevronDown,\n detailPanelExpandIcon: mdiChevronRight,\n exportIcon: mdiTrayArrowDown,\n openFilterButtonIcon: mdiFilterVariant,\n};\n\nexport const BaseIcon: React.JSXElementConstructor<any> = forwardRef((props, ref) => {\n const { displayName, ...forwardedProps } = props;\n\n return (\n <Icon\n {...forwardedProps}\n {...forwardedProps.inputProps}\n ref={ref}\n size={forwardedProps.fontSize}\n icon={muiIconToDSIcon[displayName as keyof GridSlotsComponent]}\n />\n );\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { forwardRef } from 'react';\nimport { IconButton, ButtonsColorPalette } from '@redsift/design-system';\n\nexport const BaseIconButton: React.JSXElementConstructor<any> = forwardRef((props, ref) => {\n const { children, color: propsColor, onClick, field, ...forwardedProps } = props;\n\n const color = Object.keys(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';\n\n // MUI passes the icon as children (already rendered), but DS IconButton expects an icon prop\n // We pass children directly as the icon - the Icon component can handle ReactElements\n return (\n <IconButton\n {...forwardedProps}\n color={color}\n onClick={onClick}\n ref={ref}\n variant=\"unstyled\"\n isActive={props['aria-expanded'] === 'true'}\n icon={children}\n size=\"medium\"\n iconProps={{ style: { display: 'flex', alignItems: 'center', justifyContent: 'center' } }}\n />\n );\n});\n"],"names":["BaseButton","forwardRef","props","ref","_props$className","children","color","propsColor","onClick","startIcon","forwardedProps","_objectWithoutProperties","_excluded","Object","keys","ButtonsColorPalette","includes","className","React","createElement","IconButton","_extends","variant","isActive","icon","cloneElement","fontSize","size","Button","leftIcon","BaseCheckbox","checked","indeterminate","disabled","onChange","label","slotProps","material","field","isSelected","inputProps","touchRippleRef","Checkbox","isDisabled","isIndeterminate","isChecked","value","name","event","muiIconToDSIcon","columnFilteredIcon","mdiFilterVariant","columnSelectorIcon","mdiViewColumn","columnSortedAscendingIcon","mdiArrowUp","columnSortedDescendingIcon","mdiArrowDown","densityCompactIcon","mdiViewHeadline","densityStandardIcon","mdiViewSequential","densityComfortableIcon","mdiViewStream","detailPanelCollapseIcon","mdiChevronDown","detailPanelExpandIcon","mdiChevronRight","exportIcon","mdiTrayArrowDown","openFilterButtonIcon","BaseIcon","displayName","Icon","BaseIconButton","iconProps","style","display","alignItems","justifyContent"],"mappings":"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"}