@redsift/table 12.6.6-alpha.2 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -30,7 +30,7 @@ const CLASSNAME = 'redsift-datagrid-cell';
30
30
  * The Cell component.
31
31
  */
32
32
  const TextCell = /*#__PURE__*/forwardRef((props, ref) => {
33
- const textCellRef = ref || useRef();
33
+ const textCellRef = ref || useRef(undefined);
34
34
  const {
35
35
  badge,
36
36
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"TextCell2.js","sources":["../../src/components/TextCell/styles.ts","../../src/components/TextCell/TextCell.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledTextCell = styled.div`\n align-items: center;\n box-sizing: border-box;\n display: flex;\n gap: 8px;\n justify-content: flex-start;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const StyledTextCellText = styled.div`\n box-sizing: border-box;\n line-height: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '@redsift/design-system';\nimport { Icon, Shield } from '@redsift/design-system';\n\nimport { StyledTextCell, StyledTextCellText } from './styles';\nimport { TextCellProps } from './types';\n\nconst COMPONENT_NAME = 'DataGridCell';\nconst CLASSNAME = 'redsift-datagrid-cell';\n\n/**\n * The Cell component.\n */\nexport const TextCell: Comp<TextCellProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const textCellRef = ref || useRef<HTMLDivElement>();\n const {\n badge,\n children,\n className,\n leftIcon,\n leftIconColor,\n rightIcon,\n rightIconColor,\n shieldVariant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledTextCell\n {...forwardedProps}\n className={classNames(TextCell.className, className)}\n ref={textCellRef as RefObject<HTMLDivElement>}\n >\n <>\n {shieldVariant ? <Shield variant={shieldVariant} /> : null}\n {leftIcon ? (\n <Icon\n icon={leftIcon}\n aria-hidden=\"true\"\n size=\"small\"\n color={leftIconColor}\n />\n ) : null}\n <StyledTextCellText>{children}</StyledTextCellText>\n {badge ? badge : null}\n {rightIcon ? (\n <Icon\n icon={rightIcon}\n aria-hidden=\"true\"\n size=\"small\"\n color={rightIconColor}\n />\n ) : null}\n </>\n </StyledTextCell>\n );\n }\n);\n\nTextCell.className = CLASSNAME;\nTextCell.displayName = COMPONENT_NAME;\n"],"names":["StyledTextCell","styled","div","StyledTextCellText","COMPONENT_NAME","CLASSNAME","TextCell","forwardRef","props","ref","textCellRef","useRef","badge","children","className","leftIcon","leftIconColor","rightIcon","rightIconColor","shieldVariant","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","_extends","classNames","Fragment","Shield","variant","Icon","icon","size","color","displayName"],"mappings":";;;;;;AAEO,MAAMA,cAAc,GAAGC,MAAM,CAACC,GAAI,CAAA;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAA;AAEM,MAAMC,kBAAkB,GAAGF,MAAM,CAACC,GAAI,CAAA;AAC7C;AACA;AACA;AACA;AACA;AACA,CAAC;;;ACXD,MAAME,cAAc,GAAG,cAAc,CAAA;AACrC,MAAMC,SAAS,GAAG,uBAAuB,CAAA;;AAEzC;AACA;AACA;AACO,MAAMC,QAA6C,gBAAGC,UAAU,CACrE,CAACC,KAAK,EAAEC,GAAG,KAAK;AACd,EAAA,MAAMC,WAAW,GAAGD,GAAG,IAAIE,MAAM,EAAkB,CAAA;EACnD,MAAM;MACJC,KAAK;MACLC,QAAQ;MACRC,SAAS;MACTC,QAAQ;MACRC,aAAa;MACbC,SAAS;MACTC,cAAc;AACdC,MAAAA,aAAAA;AAEF,KAAC,GAAGX,KAAK;AADJY,IAAAA,cAAc,GAAAC,wBAAA,CACfb,KAAK,EAAAc,SAAA,CAAA,CAAA;EAET,oBACEC,cAAA,CAAAC,aAAA,CAACxB,cAAc,EAAAyB,QAAA,KACTL,cAAc,EAAA;IAClBN,SAAS,EAAEY,UAAU,CAACpB,QAAQ,CAACQ,SAAS,EAAEA,SAAS,CAAE;AACrDL,IAAAA,GAAG,EAAEC,WAAAA;AAAyC,GAAA,CAAA,eAE9Ca,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAI,QAAA,EACGR,IAAAA,EAAAA,aAAa,gBAAGI,cAAA,CAAAC,aAAA,CAACI,MAAM,EAAA;AAACC,IAAAA,OAAO,EAAEV,aAAAA;GAAgB,CAAC,GAAG,IAAI,EACzDJ,QAAQ,gBACPQ,cAAA,CAAAC,aAAA,CAACM,IAAI,EAAA;AACHC,IAAAA,IAAI,EAAEhB,QAAS;AACf,IAAA,aAAA,EAAY,MAAM;AAClBiB,IAAAA,IAAI,EAAC,OAAO;AACZC,IAAAA,KAAK,EAAEjB,aAAAA;GACR,CAAC,GACA,IAAI,eACRO,cAAA,CAAAC,aAAA,CAACrB,kBAAkB,EAAA,IAAA,EAAEU,QAA6B,CAAC,EAClDD,KAAK,GAAGA,KAAK,GAAG,IAAI,EACpBK,SAAS,gBACRM,cAAA,CAAAC,aAAA,CAACM,IAAI,EAAA;AACHC,IAAAA,IAAI,EAAEd,SAAU;AAChB,IAAA,aAAA,EAAY,MAAM;AAClBe,IAAAA,IAAI,EAAC,OAAO;AACZC,IAAAA,KAAK,EAAEf,cAAAA;AAAe,GACvB,CAAC,GACA,IACJ,CACY,CAAC,CAAA;AAErB,CACF,EAAC;AAEDZ,QAAQ,CAACQ,SAAS,GAAGT,SAAS,CAAA;AAC9BC,QAAQ,CAAC4B,WAAW,GAAG9B,cAAc;;;;"}
1
+ {"version":3,"file":"TextCell2.js","sources":["../../src/components/TextCell/styles.ts","../../src/components/TextCell/TextCell.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledTextCell = styled.div`\n align-items: center;\n box-sizing: border-box;\n display: flex;\n gap: 8px;\n justify-content: flex-start;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nexport const StyledTextCellText = styled.div`\n box-sizing: border-box;\n line-height: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '@redsift/design-system';\nimport { Icon, Shield } from '@redsift/design-system';\n\nimport { StyledTextCell, StyledTextCellText } from './styles';\nimport { TextCellProps } from './types';\n\nconst COMPONENT_NAME = 'DataGridCell';\nconst CLASSNAME = 'redsift-datagrid-cell';\n\n/**\n * The Cell component.\n */\nexport const TextCell: Comp<TextCellProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const textCellRef = ref || useRef<HTMLDivElement>(undefined);\n const {\n badge,\n children,\n className,\n leftIcon,\n leftIconColor,\n rightIcon,\n rightIconColor,\n shieldVariant,\n ...forwardedProps\n } = props;\n\n return (\n <StyledTextCell\n {...forwardedProps}\n className={classNames(TextCell.className, className)}\n ref={textCellRef as RefObject<HTMLDivElement>}\n >\n <>\n {shieldVariant ? <Shield variant={shieldVariant} /> : null}\n {leftIcon ? (\n <Icon\n icon={leftIcon}\n aria-hidden=\"true\"\n size=\"small\"\n color={leftIconColor}\n />\n ) : null}\n <StyledTextCellText>{children}</StyledTextCellText>\n {badge ? badge : null}\n {rightIcon ? (\n <Icon\n icon={rightIcon}\n aria-hidden=\"true\"\n size=\"small\"\n color={rightIconColor}\n />\n ) : null}\n </>\n </StyledTextCell>\n );\n }\n);\n\nTextCell.className = CLASSNAME;\nTextCell.displayName = COMPONENT_NAME;\n"],"names":["StyledTextCell","styled","div","StyledTextCellText","COMPONENT_NAME","CLASSNAME","TextCell","forwardRef","props","ref","textCellRef","useRef","undefined","badge","children","className","leftIcon","leftIconColor","rightIcon","rightIconColor","shieldVariant","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","_extends","classNames","Fragment","Shield","variant","Icon","icon","size","color","displayName"],"mappings":";;;;;;AAEO,MAAMA,cAAc,GAAGC,MAAM,CAACC,GAAI,CAAA;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAA;AAEM,MAAMC,kBAAkB,GAAGF,MAAM,CAACC,GAAI,CAAA;AAC7C;AACA;AACA;AACA;AACA;AACA,CAAC;;;ACXD,MAAME,cAAc,GAAG,cAAc,CAAA;AACrC,MAAMC,SAAS,GAAG,uBAAuB,CAAA;;AAEzC;AACA;AACA;AACO,MAAMC,QAA6C,gBAAGC,UAAU,CACrE,CAACC,KAAK,EAAEC,GAAG,KAAK;AACd,EAAA,MAAMC,WAAW,GAAGD,GAAG,IAAIE,MAAM,CAAiBC,SAAS,CAAC,CAAA;EAC5D,MAAM;MACJC,KAAK;MACLC,QAAQ;MACRC,SAAS;MACTC,QAAQ;MACRC,aAAa;MACbC,SAAS;MACTC,cAAc;AACdC,MAAAA,aAAAA;AAEF,KAAC,GAAGZ,KAAK;AADJa,IAAAA,cAAc,GAAAC,wBAAA,CACfd,KAAK,EAAAe,SAAA,CAAA,CAAA;EAET,oBACEC,cAAA,CAAAC,aAAA,CAACzB,cAAc,EAAA0B,QAAA,KACTL,cAAc,EAAA;IAClBN,SAAS,EAAEY,UAAU,CAACrB,QAAQ,CAACS,SAAS,EAAEA,SAAS,CAAE;AACrDN,IAAAA,GAAG,EAAEC,WAAAA;AAAyC,GAAA,CAAA,eAE9Cc,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAI,QAAA,EACGR,IAAAA,EAAAA,aAAa,gBAAGI,cAAA,CAAAC,aAAA,CAACI,MAAM,EAAA;AAACC,IAAAA,OAAO,EAAEV,aAAAA;GAAgB,CAAC,GAAG,IAAI,EACzDJ,QAAQ,gBACPQ,cAAA,CAAAC,aAAA,CAACM,IAAI,EAAA;AACHC,IAAAA,IAAI,EAAEhB,QAAS;AACf,IAAA,aAAA,EAAY,MAAM;AAClBiB,IAAAA,IAAI,EAAC,OAAO;AACZC,IAAAA,KAAK,EAAEjB,aAAAA;GACR,CAAC,GACA,IAAI,eACRO,cAAA,CAAAC,aAAA,CAACtB,kBAAkB,EAAA,IAAA,EAAEW,QAA6B,CAAC,EAClDD,KAAK,GAAGA,KAAK,GAAG,IAAI,EACpBK,SAAS,gBACRM,cAAA,CAAAC,aAAA,CAACM,IAAI,EAAA;AACHC,IAAAA,IAAI,EAAEd,SAAU;AAChB,IAAA,aAAA,EAAY,MAAM;AAClBe,IAAAA,IAAI,EAAC,OAAO;AACZC,IAAAA,KAAK,EAAEf,cAAAA;AAAe,GACvB,CAAC,GACA,IACJ,CACY,CAAC,CAAA;AAErB,CACF,EAAC;AAEDb,QAAQ,CAACS,SAAS,GAAGV,SAAS,CAAA;AAC9BC,QAAQ,CAAC6B,WAAW,GAAG/B,cAAc;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar2.js","sources":["../../src/components/Toolbar/styles.ts","../../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import styled from 'styled-components';\n\n/**\n * Component style.\n */\nexport const GridToolbarWrapper = styled.div`\n .MuiButtonBase-root-JobBs.MuiButton-root {\n svg {\n path {\n fill: var(--redsift-color-primary-n);\n }\n }\n }\n`;\n","import React from 'react';\n\nimport {\n GridToolbarContainer,\n GridToolbarColumnsButton,\n GridToolbarDensitySelector,\n GridToolbarFilterButton,\n GridToolbarExport,\n gridExpandedSortedRowIdsSelector,\n GridCsvGetRowsToExportParams,\n GridToolbarQuickFilter,\n} from '@mui/x-data-grid-premium';\n\nimport { GridToolbarWrapper } from './styles';\nimport { ToolbarProps } from './types';\nimport { Flexbox } from '@redsift/design-system';\nimport { GridToolbarFilterSemanticField } from '../GridToolbarFilterSemanticField';\n\n/**\n * Temporary workaround for a type mismatch between react 17 and 18\n * https://github.com/mui/material-ui/issues/35287#issuecomment-1337250566\n */\ndeclare global {\n namespace React {\n interface DOMAttributes<T> {\n onResize?: React.ReactEventHandler<T> | undefined;\n onResizeCapture?: React.ReactEventHandler<T> | undefined;\n nonce?: string | undefined;\n }\n }\n}\n/** ------ */\n\nexport const Toolbar: React.FC<ToolbarProps> = (props) => {\n const {\n hasExportButton = true,\n exportButtonProps,\n exportButtonRef,\n hasFilterButton = true,\n filterButtonProps,\n filterButtonRef,\n hasColumnsButton = true,\n columnsButtonProps,\n columnsButtonRef,\n hasDensityButton = true,\n densityButtonProps,\n densityButtonRef,\n onFilterModelChange,\n semanticFilterProps = undefined,\n showQuickFilter,\n } = props;\n\n if (semanticFilterProps && onFilterModelChange) {\n semanticFilterProps.onFilterModelChange = onFilterModelChange;\n }\n\n return (\n <GridToolbarWrapper>\n <GridToolbarContainer>\n <Flexbox gap=\"0\">\n {hasFilterButton ? (\n <GridToolbarFilterButton\n {...filterButtonProps}\n ref={filterButtonRef}\n slotProps={{\n ...filterButtonProps?.slotProps,\n button: {\n ...filterButtonProps?.slotProps?.button,\n className: filterButtonProps?.slotProps?.button?.className\n ? `${filterButtonProps.slotProps.button.className} redsift-condensed`\n : 'redsift-condensed',\n },\n }}\n />\n ) : null}\n {hasColumnsButton ? (\n <GridToolbarColumnsButton\n {...columnsButtonProps}\n ref={columnsButtonRef}\n slotProps={{\n ...columnsButtonProps?.slotProps,\n button: {\n ...columnsButtonProps?.slotProps?.button,\n className: columnsButtonProps?.slotProps?.button?.className\n ? `${columnsButtonProps.slotProps.button.className} redsift-condensed`\n : 'redsift-condensed',\n },\n }}\n />\n ) : null}\n {hasDensityButton ? (\n <GridToolbarDensitySelector\n {...densityButtonProps}\n ref={densityButtonRef}\n slotProps={{\n ...densityButtonProps?.slotProps,\n button: {\n ...densityButtonProps?.slotProps?.button,\n className: densityButtonProps?.slotProps?.button?.className\n ? `${densityButtonProps.slotProps.button.className} redsift-condensed`\n : 'redsift-condensed',\n },\n }}\n />\n ) : null}\n {hasExportButton ? (\n <GridToolbarExport\n csvOptions={{\n allColumns: true,\n fileName: 'csv',\n getRowsToExport: ({ apiRef }: GridCsvGetRowsToExportParams) => gridExpandedSortedRowIdsSelector(apiRef),\n }}\n printOptions={{\n disableToolbarButton: true,\n }}\n {...exportButtonProps}\n ref={exportButtonRef}\n slotProps={{\n ...exportButtonProps?.slotProps,\n button: {\n ...exportButtonProps?.slotProps?.button,\n className: exportButtonProps?.slotProps?.button?.className\n ? `${exportButtonProps.slotProps.button.className} redsift-condensed`\n : 'redsift-condensed',\n },\n }}\n />\n ) : null}\n <Flexbox marginLeft=\"8px\">{showQuickFilter ? <GridToolbarQuickFilter /> : null}</Flexbox>\n </Flexbox>\n <Flexbox flexGrow={3}>\n {semanticFilterProps ? <GridToolbarFilterSemanticField {...semanticFilterProps} /> : null}\n </Flexbox>\n </GridToolbarContainer>\n </GridToolbarWrapper>\n );\n};\n"],"names":["GridToolbarWrapper","styled","div","Toolbar","props","_filterButtonProps$sl","_filterButtonProps$sl2","_filterButtonProps$sl3","_columnsButtonProps$s","_columnsButtonProps$s2","_columnsButtonProps$s3","_densityButtonProps$s","_densityButtonProps$s2","_densityButtonProps$s3","_exportButtonProps$sl","_exportButtonProps$sl2","_exportButtonProps$sl3","hasExportButton","exportButtonProps","exportButtonRef","hasFilterButton","filterButtonProps","filterButtonRef","hasColumnsButton","columnsButtonProps","columnsButtonRef","hasDensityButton","densityButtonProps","densityButtonRef","onFilterModelChange","semanticFilterProps","undefined","showQuickFilter","React","createElement","GridToolbarContainer","Flexbox","gap","GridToolbarFilterButton","_extends","ref","slotProps","_objectSpread","button","className","GridToolbarColumnsButton","GridToolbarDensitySelector","GridToolbarExport","csvOptions","allColumns","fileName","getRowsToExport","_ref","apiRef","gridExpandedSortedRowIdsSelector","printOptions","disableToolbarButton","marginLeft","GridToolbarQuickFilter","flexGrow","GridToolbarFilterSemanticField"],"mappings":"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"}
1
+ {"version":3,"file":"Toolbar2.js","sources":["../../src/components/Toolbar/styles.ts","../../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import styled from 'styled-components';\n\n/**\n * Component style.\n */\nexport const GridToolbarWrapper = styled.div`\n .MuiButtonBase-root-JobBs.MuiButton-root {\n svg {\n path {\n fill: var(--redsift-color-primary-n);\n }\n }\n }\n`;\n","import React from 'react';\n\nimport {\n GridToolbarContainer,\n GridToolbarColumnsButton,\n GridToolbarDensitySelector,\n GridToolbarFilterButton,\n GridToolbarExport,\n gridExpandedSortedRowIdsSelector,\n GridCsvGetRowsToExportParams,\n GridToolbarQuickFilter,\n} from '@mui/x-data-grid-premium';\n\nimport { GridToolbarWrapper } from './styles';\nimport { ToolbarProps } from './types';\nimport { Flexbox } from '@redsift/design-system';\nimport { GridToolbarFilterSemanticField } from '../GridToolbarFilterSemanticField';\n\n/**\n * Temporary workaround for a type mismatch between react 17 and 18\n * https://github.com/mui/material-ui/issues/35287#issuecomment-1337250566\n */\ndeclare global {\n namespace React {\n interface DOMAttributes<T> {\n onResize?: React.ReactEventHandler<T> | undefined;\n onResizeCapture?: React.ReactEventHandler<T> | undefined;\n nonce?: string | undefined;\n }\n }\n}\n/** ------ */\n\nexport const Toolbar: React.FC<ToolbarProps> = (props) => {\n const {\n hasExportButton = true,\n exportButtonProps,\n exportButtonRef,\n hasFilterButton = true,\n filterButtonProps,\n filterButtonRef,\n hasColumnsButton = true,\n columnsButtonProps,\n columnsButtonRef,\n hasDensityButton = true,\n densityButtonProps,\n densityButtonRef,\n onFilterModelChange,\n semanticFilterProps = undefined,\n showQuickFilter,\n } = props;\n\n if (semanticFilterProps && onFilterModelChange) {\n semanticFilterProps.onFilterModelChange = onFilterModelChange;\n }\n\n return (\n <GridToolbarWrapper>\n <GridToolbarContainer>\n <Flexbox gap=\"0\">\n {hasFilterButton ? (\n <GridToolbarFilterButton\n {...filterButtonProps}\n ref={filterButtonRef as React.RefObject<HTMLButtonElement>}\n slotProps={{\n ...filterButtonProps?.slotProps,\n button: {\n ...filterButtonProps?.slotProps?.button,\n className: filterButtonProps?.slotProps?.button?.className\n ? `${filterButtonProps.slotProps.button.className} redsift-condensed`\n : 'redsift-condensed',\n },\n }}\n />\n ) : null}\n {hasColumnsButton ? (\n <GridToolbarColumnsButton\n {...columnsButtonProps}\n ref={columnsButtonRef as React.RefObject<HTMLButtonElement>}\n slotProps={{\n ...columnsButtonProps?.slotProps,\n button: {\n ...columnsButtonProps?.slotProps?.button,\n className: columnsButtonProps?.slotProps?.button?.className\n ? `${columnsButtonProps.slotProps.button.className} redsift-condensed`\n : 'redsift-condensed',\n },\n }}\n />\n ) : null}\n {hasDensityButton ? (\n <GridToolbarDensitySelector\n {...densityButtonProps}\n ref={densityButtonRef as React.RefObject<HTMLButtonElement>}\n slotProps={{\n ...densityButtonProps?.slotProps,\n button: {\n ...densityButtonProps?.slotProps?.button,\n className: densityButtonProps?.slotProps?.button?.className\n ? `${densityButtonProps.slotProps.button.className} redsift-condensed`\n : 'redsift-condensed',\n },\n }}\n />\n ) : null}\n {hasExportButton ? (\n <GridToolbarExport\n csvOptions={{\n allColumns: true,\n fileName: 'csv',\n getRowsToExport: ({ apiRef }: GridCsvGetRowsToExportParams) => gridExpandedSortedRowIdsSelector(apiRef),\n }}\n printOptions={{\n disableToolbarButton: true,\n }}\n {...exportButtonProps}\n ref={exportButtonRef as React.RefObject<HTMLButtonElement>}\n slotProps={{\n ...exportButtonProps?.slotProps,\n button: {\n ...exportButtonProps?.slotProps?.button,\n className: exportButtonProps?.slotProps?.button?.className\n ? `${exportButtonProps.slotProps.button.className} redsift-condensed`\n : 'redsift-condensed',\n },\n }}\n />\n ) : null}\n <Flexbox marginLeft=\"8px\">{showQuickFilter ? <GridToolbarQuickFilter /> : null}</Flexbox>\n </Flexbox>\n <Flexbox flexGrow={3}>\n {semanticFilterProps ? <GridToolbarFilterSemanticField {...semanticFilterProps} /> : null}\n </Flexbox>\n </GridToolbarContainer>\n </GridToolbarWrapper>\n );\n};\n"],"names":["GridToolbarWrapper","styled","div","Toolbar","props","_filterButtonProps$sl","_filterButtonProps$sl2","_filterButtonProps$sl3","_columnsButtonProps$s","_columnsButtonProps$s2","_columnsButtonProps$s3","_densityButtonProps$s","_densityButtonProps$s2","_densityButtonProps$s3","_exportButtonProps$sl","_exportButtonProps$sl2","_exportButtonProps$sl3","hasExportButton","exportButtonProps","exportButtonRef","hasFilterButton","filterButtonProps","filterButtonRef","hasColumnsButton","columnsButtonProps","columnsButtonRef","hasDensityButton","densityButtonProps","densityButtonRef","onFilterModelChange","semanticFilterProps","undefined","showQuickFilter","React","createElement","GridToolbarContainer","Flexbox","gap","GridToolbarFilterButton","_extends","ref","slotProps","_objectSpread","button","className","GridToolbarColumnsButton","GridToolbarDensitySelector","GridToolbarExport","csvOptions","allColumns","fileName","getRowsToExport","_ref","apiRef","gridExpandedSortedRowIdsSelector","printOptions","disableToolbarButton","marginLeft","GridToolbarQuickFilter","flexGrow","GridToolbarFilterSemanticField"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { GridColTypeDef, GridColType, GridColDef, GridFilterOperator, GridFilterInputSingleSelect, GridFilterInputMultipleSingleSelect, GridRowId, GridRowSelectionModel, DataGridPremiumProps, GridFilterModel, GridPaginationModel, GridSortModel, GridColumnVisibilityModel, GridPinnedColumnFields, GridInitialState, GridRowGroupingModel, GridAggregationModel, GridPivotModel, GridSlotsComponent, GridApiPremium, GridCallbackDetails, GridRowParams, GridToolbarExportProps, GridToolbarFilterButtonProps, GridToolbarColumnsButton, GridToolbarDensitySelector } from '@mui/x-data-grid-premium';
2
2
  export { GridAlignment, GridColDef, GridFilterItem, GridFilterModel, getGridBooleanOperators, getGridDateOperators, getGridSingleSelectOperators } from '@mui/x-data-grid-premium';
3
3
  import * as _mui_x_data_grid from '@mui/x-data-grid';
4
- import React$1, { Ref, ReactElement, ComponentProps, ReactNode, MutableRefObject, RefObject } from 'react';
4
+ import React$1, { Ref, ExoticComponent, ComponentProps, ReactElement, ReactNode, MutableRefObject, RefObject } from 'react';
5
5
  import { TablePaginationProps } from '@mui/material';
6
6
 
7
7
  declare const DETAIL_PANEL_TOGGLE_COL_DEF: _mui_x_data_grid.GridColDef;
@@ -500,9 +500,14 @@ declare const getSelectedIds: (model: GridRowSelectionModel) => GridRowId[];
500
500
 
501
501
  /** Component Type. */
502
502
  type Comp<P, T = HTMLElement> = {
503
+ /**
504
+ * What a `forwardRef` component returns under the installed `@types/react`: `ReactElement | null` up to
505
+ * 18.2.7, `ReactNode` from 18.2.8 (which also brings `JSX.ElementType`, so a `ReactNode` return is a valid
506
+ * JSX element there). Following the consumer's version keeps `Comp` assignable and usable on both.
507
+ */
503
508
  (props: P & {
504
509
  ref?: Ref<T>;
505
- }): ReactElement | null;
510
+ }): ReturnType<ExoticComponent>;
506
511
  /** React component type. */
507
512
  readonly $$typeof?: symbol;
508
513
  /** Component name. */
@@ -1380,19 +1385,19 @@ interface ToolbarProps {
1380
1385
  /** Props to forward to the column button. */
1381
1386
  columnsButtonProps?: GridToolbarColumnsButtonProps;
1382
1387
  /** Column button ref. */
1383
- columnsButtonRef?: RefObject<HTMLButtonElement>;
1388
+ columnsButtonRef?: RefObject<HTMLButtonElement | null>;
1384
1389
  /** Props to forward to the density button. */
1385
1390
  densityButtonProps?: GridToolbarDensitySelectorProps;
1386
1391
  /** Density button ref. */
1387
- densityButtonRef?: RefObject<HTMLButtonElement>;
1392
+ densityButtonRef?: RefObject<HTMLButtonElement | null>;
1388
1393
  /** Props to forward to the export button. */
1389
1394
  exportButtonProps?: GridToolbarExportProps;
1390
1395
  /** Export button ref. */
1391
- exportButtonRef?: RefObject<HTMLButtonElement>;
1396
+ exportButtonRef?: RefObject<HTMLButtonElement | null>;
1392
1397
  /** Props to forward to the filter button. */
1393
1398
  filterButtonProps?: GridToolbarFilterButtonProps;
1394
1399
  /** Filter button ref. */
1395
- filterButtonRef?: RefObject<HTMLButtonElement>;
1400
+ filterButtonRef?: RefObject<HTMLButtonElement | null>;
1396
1401
  /** Whether the columns button is displayed or not. */
1397
1402
  hasColumnsButton?: boolean;
1398
1403
  /** Whether the density button is displayed or not. */
package/index.js CHANGED
@@ -61,7 +61,7 @@ const InputDateInterval = props => {
61
61
  applyValue,
62
62
  focusElementRef = null
63
63
  } = props;
64
- const filterTimeout = React.useRef();
64
+ const filterTimeout = React.useRef(undefined);
65
65
  const [filterValueState, setFilterValueState] = React.useState((_item$value = item.value) !== null && _item$value !== void 0 ? _item$value : ['', '']);
66
66
  const [applying, setIsApplying] = React.useState(false);
67
67
  React.useEffect(() => {
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 * Also coalesces multiple `historyReplace` calls within the same microtask\n * by computing per-call deltas against the captured `search` snapshot and\n * merging them into the live URL. This prevents handler stomping when the\n * grid fires several model-change handlers in the same render (e.g. a\n * pivot change re-emits a synthetic column-visibility change alongside a\n * filter change): without coalescing, each handler would compute a full\n * new search from the same captured snapshot, and the second\n * `history.replace` would clobber the first — dropping any keys (such as\n * the filter just typed) that the second handler didn't know about.\n *\n * Callers that need an authoritative full-URL replacement (e.g.\n * `resetStatefulDataGridState`, which must clear grid params even when the\n * parent component's captured search snapshot is stale relative to the live\n * URL) can pass `{ authoritative: true }` as the second argument to\n * `historyReplace`. Authoritative writes bypass the delta logic and write\n * synchronously to the live URL.\n *\n * The router also returns `getSearch`, which reads `history.location.search`\n * when it is called rather than when `useRouter()` ran. Pass it to\n * `resetStatefulDataGridState` and `resetColumnVisibility` so that they strip\n * the router's live URL. Under a memory history (`createMemoryHistory`, e.g.\n * a sift rendered in an iframe) this is required: without it they read\n * `window.location.search`, which is the document's URL and not the router's.\n * Its identity is stable for the adapter's lifetime.\n *\n * @example\n * ```tsx\n * import { createReactRouterV5Adapter } from '@redsift/table';\n *\n * const useRouter = createReactRouterV5Adapter(history);\n *\n * <StatefulDataGrid useRouter={useRouter} … />\n *\n * // Reset, reading the router's URL (required under a memory history):\n * const { pathname, getSearch, historyReplace } = useRouter();\n * resetStatefulDataGridState({ id: pathname, versions: [0, 1], getSearch, historyReplace });\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): (() => {\n pathname: string;\n search: string;\n /** Reads the router's live query string, without the leading `?`. */\n getSearch: () => string;\n historyReplace: (newSearch: string, options?: { authoritative?: boolean }) => void;\n}) => {\n // Module-instance state shared across all `historyReplace` calls scheduled\n // within the same microtask. Each `useRouter()` invocation captures its own\n // `search` snapshot for delta computation; `pending` accumulates the deltas\n // and is flushed once per microtask onto the live URL.\n let pending: URLSearchParams | null = null;\n let flushScheduled = false;\n\n const scheduleFlush = () => {\n if (flushScheduled) return;\n flushScheduled = true;\n queueMicrotask(() => {\n flushScheduled = false;\n const flush = pending;\n pending = null;\n if (flush === null) return;\n const serialized = flush.toString();\n const nextSearch = serialized ? `?${serialized}` : '';\n if (nextSearch === history.location.search) return;\n history.replace({\n pathname: history.location.pathname,\n search: nextSearch,\n });\n });\n };\n\n // Read at call time, unlike the `search` snapshot below. Defined once so its\n // identity is stable across renders.\n const getSearch = () => history.location.search.replace(/^\\?/, '');\n\n return () => {\n // Capture the search snapshot AT THE TIME useRouter() is called. The\n // grid hands this string to its change handlers, which build a complete\n // new search string from it. Diffing the handler's `newSearch` against\n // this captured snapshot tells us which keys the handler intentionally\n // changed (vs. which are stale passthrough from sibling handlers' models).\n const captured = getSearch();\n const capturedParams = new URLSearchParams(captured);\n const capturedKeys = new Set(capturedParams.keys());\n\n return {\n pathname: history.location.pathname,\n search: captured,\n getSearch,\n historyReplace: (newSearch: string, options?: { authoritative?: boolean }) => {\n // Authoritative writes (e.g. `resetStatefulDataGridState`) bypass the\n // delta-vs-captured-snapshot logic. The caller asserts that `newSearch`\n // is the complete intended query string; write it synchronously and\n // discard any pending coalesced deltas so this write cannot be stomped\n // by a previously-scheduled flush.\n if (options?.authoritative) {\n pending = null;\n flushScheduled = false;\n const trimmed = newSearch.replace(/^\\?/, '');\n const nextSearch = trimmed ? `?${trimmed}` : '';\n if (nextSearch === history.location.search) return;\n history.replace({\n pathname: history.location.pathname,\n search: nextSearch,\n });\n return;\n }\n\n const newParams = new URLSearchParams(newSearch);\n const newKeys = new Set(newParams.keys());\n\n // Lazy-init `pending` from the LIVE URL — not the captured snapshot —\n // so deltas from earlier microtask-scheduled calls (which may have\n // already been flushed, or were scheduled by a previous render and\n // are now reflected in the live URL) are preserved.\n if (pending === null) {\n pending = new URLSearchParams(history.location.search.replace(/^\\?/, ''));\n }\n\n // Apply only keys this handler actually changed. A handler builds a\n // complete new search from a captured snapshot, but only some keys\n // reflect its intent — the rest are passthrough of the snapshot.\n // When two handlers fire in the same render and one was triggered\n // by a model the other doesn't care about, passthrough keys would\n // otherwise stomp pending state from earlier handlers.\n for (const key of newKeys) {\n const newValues = newParams.getAll(key);\n const capturedValues = capturedParams.getAll(key);\n const unchanged =\n newValues.length === capturedValues.length && newValues.every((v, i) => v === capturedValues[i]);\n if (unchanged) continue;\n pending.delete(key);\n for (const value of newValues) {\n pending.append(key, value);\n }\n }\n // Keys that were in the captured snapshot but absent from newSearch\n // were intentionally removed by this handler.\n for (const key of capturedKeys) {\n if (!newKeys.has(key)) pending.delete(key);\n }\n\n scheduleFlush();\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","pending","flushScheduled","scheduleFlush","queueMicrotask","flush","serialized","toString","nextSearch","location","search","replace","pathname","getSearch","captured","capturedParams","URLSearchParams","capturedKeys","keys","historyReplace","newSearch","authoritative","trimmed","newParams","newKeys","key","newValues","getAll","capturedValues","unchanged","every","i","delete","append","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","getSelected","find","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/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>>(undefined);\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 * Also coalesces multiple `historyReplace` calls within the same microtask\n * by computing per-call deltas against the captured `search` snapshot and\n * merging them into the live URL. This prevents handler stomping when the\n * grid fires several model-change handlers in the same render (e.g. a\n * pivot change re-emits a synthetic column-visibility change alongside a\n * filter change): without coalescing, each handler would compute a full\n * new search from the same captured snapshot, and the second\n * `history.replace` would clobber the first — dropping any keys (such as\n * the filter just typed) that the second handler didn't know about.\n *\n * Callers that need an authoritative full-URL replacement (e.g.\n * `resetStatefulDataGridState`, which must clear grid params even when the\n * parent component's captured search snapshot is stale relative to the live\n * URL) can pass `{ authoritative: true }` as the second argument to\n * `historyReplace`. Authoritative writes bypass the delta logic and write\n * synchronously to the live URL.\n *\n * The router also returns `getSearch`, which reads `history.location.search`\n * when it is called rather than when `useRouter()` ran. Pass it to\n * `resetStatefulDataGridState` and `resetColumnVisibility` so that they strip\n * the router's live URL. Under a memory history (`createMemoryHistory`, e.g.\n * a sift rendered in an iframe) this is required: without it they read\n * `window.location.search`, which is the document's URL and not the router's.\n * Its identity is stable for the adapter's lifetime.\n *\n * @example\n * ```tsx\n * import { createReactRouterV5Adapter } from '@redsift/table';\n *\n * const useRouter = createReactRouterV5Adapter(history);\n *\n * <StatefulDataGrid useRouter={useRouter} … />\n *\n * // Reset, reading the router's URL (required under a memory history):\n * const { pathname, getSearch, historyReplace } = useRouter();\n * resetStatefulDataGridState({ id: pathname, versions: [0, 1], getSearch, historyReplace });\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): (() => {\n pathname: string;\n search: string;\n /** Reads the router's live query string, without the leading `?`. */\n getSearch: () => string;\n historyReplace: (newSearch: string, options?: { authoritative?: boolean }) => void;\n}) => {\n // Module-instance state shared across all `historyReplace` calls scheduled\n // within the same microtask. Each `useRouter()` invocation captures its own\n // `search` snapshot for delta computation; `pending` accumulates the deltas\n // and is flushed once per microtask onto the live URL.\n let pending: URLSearchParams | null = null;\n let flushScheduled = false;\n\n const scheduleFlush = () => {\n if (flushScheduled) return;\n flushScheduled = true;\n queueMicrotask(() => {\n flushScheduled = false;\n const flush = pending;\n pending = null;\n if (flush === null) return;\n const serialized = flush.toString();\n const nextSearch = serialized ? `?${serialized}` : '';\n if (nextSearch === history.location.search) return;\n history.replace({\n pathname: history.location.pathname,\n search: nextSearch,\n });\n });\n };\n\n // Read at call time, unlike the `search` snapshot below. Defined once so its\n // identity is stable across renders.\n const getSearch = () => history.location.search.replace(/^\\?/, '');\n\n return () => {\n // Capture the search snapshot AT THE TIME useRouter() is called. The\n // grid hands this string to its change handlers, which build a complete\n // new search string from it. Diffing the handler's `newSearch` against\n // this captured snapshot tells us which keys the handler intentionally\n // changed (vs. which are stale passthrough from sibling handlers' models).\n const captured = getSearch();\n const capturedParams = new URLSearchParams(captured);\n const capturedKeys = new Set(capturedParams.keys());\n\n return {\n pathname: history.location.pathname,\n search: captured,\n getSearch,\n historyReplace: (newSearch: string, options?: { authoritative?: boolean }) => {\n // Authoritative writes (e.g. `resetStatefulDataGridState`) bypass the\n // delta-vs-captured-snapshot logic. The caller asserts that `newSearch`\n // is the complete intended query string; write it synchronously and\n // discard any pending coalesced deltas so this write cannot be stomped\n // by a previously-scheduled flush.\n if (options?.authoritative) {\n pending = null;\n flushScheduled = false;\n const trimmed = newSearch.replace(/^\\?/, '');\n const nextSearch = trimmed ? `?${trimmed}` : '';\n if (nextSearch === history.location.search) return;\n history.replace({\n pathname: history.location.pathname,\n search: nextSearch,\n });\n return;\n }\n\n const newParams = new URLSearchParams(newSearch);\n const newKeys = new Set(newParams.keys());\n\n // Lazy-init `pending` from the LIVE URL — not the captured snapshot —\n // so deltas from earlier microtask-scheduled calls (which may have\n // already been flushed, or were scheduled by a previous render and\n // are now reflected in the live URL) are preserved.\n if (pending === null) {\n pending = new URLSearchParams(history.location.search.replace(/^\\?/, ''));\n }\n\n // Apply only keys this handler actually changed. A handler builds a\n // complete new search from a captured snapshot, but only some keys\n // reflect its intent — the rest are passthrough of the snapshot.\n // When two handlers fire in the same render and one was triggered\n // by a model the other doesn't care about, passthrough keys would\n // otherwise stomp pending state from earlier handlers.\n for (const key of newKeys) {\n const newValues = newParams.getAll(key);\n const capturedValues = capturedParams.getAll(key);\n const unchanged =\n newValues.length === capturedValues.length && newValues.every((v, i) => v === capturedValues[i]);\n if (unchanged) continue;\n pending.delete(key);\n for (const value of newValues) {\n pending.append(key, value);\n }\n }\n // Keys that were in the captured snapshot but absent from newSearch\n // were intentionally removed by this handler.\n for (const key of capturedKeys) {\n if (!newKeys.has(key)) pending.delete(key);\n }\n\n scheduleFlush();\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","undefined","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","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","pending","flushScheduled","scheduleFlush","queueMicrotask","flush","serialized","toString","nextSearch","location","search","replace","pathname","getSearch","captured","capturedParams","URLSearchParams","capturedKeys","keys","historyReplace","newSearch","authoritative","trimmed","newParams","newKeys","key","newValues","getAll","capturedValues","unchanged","every","i","delete","append","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","getSelected","find","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
@@ -23,14 +23,13 @@
23
23
  "build": "rollup -c",
24
24
  "check-types": "tsc --diagnostics",
25
25
  "lint": "eslint --ext .js,.jsx,.ts,.tsx src/",
26
- "prepare": "install-peers || exit 0",
27
26
  "prepublishOnly": "yarn build",
28
- "test:unit": "cp -f ../../.env ./ && NODE_ENV=test jest --verbose",
29
- "test:storybook": "test-storybook -c ../../.storybook --url http://localhost:9000/ --coverage -- --testPathPattern \"packages/table/\"",
30
- "test": "yarn test:unit && yarn test:storybook"
27
+ "test:unit": "TZ=UTC vitest run",
28
+ "test:stories": "vitest run --config vitest.stories.config.ts",
29
+ "test:coverage": "TZ=UTC vitest run --coverage"
31
30
  },
32
31
  "types": "index.d.ts",
33
- "version": "12.6.6-alpha.2",
32
+ "version": "13.0.0",
34
33
  "dependencies": {
35
34
  "@emotion/react": "^11.11.0",
36
35
  "@emotion/styled": "^11.11.0",
@@ -56,20 +55,16 @@
56
55
  "@rollup/plugin-commonjs": "^24.0.0",
57
56
  "@rollup/plugin-json": "^6.0.0",
58
57
  "@rollup/plugin-node-resolve": "^15.3.1",
59
- "@testing-library/dom": "^8.5.0",
60
- "@testing-library/jest-dom": "^5.16.4",
61
- "@testing-library/react": "^13.4.0",
62
- "@testing-library/user-event": "14.2.1",
63
- "@types/jest": "^29.5.0",
58
+ "@testing-library/dom": "^10.4.2",
59
+ "@testing-library/jest-dom": "^6.9.1",
60
+ "@testing-library/react": "^16.3.3",
61
+ "@testing-library/user-event": "14.6.7",
64
62
  "@types/lz-string": "^1.5.0",
65
- "@types/react": "18.2.7",
66
- "@types/react-dom": "18.0.5",
63
+ "@types/react": "^18.3.31",
64
+ "@types/react-dom": "^18.3.7",
67
65
  "@typescript-eslint/eslint-plugin": "^8.0.0",
68
66
  "@typescript-eslint/parser": "^8.0.0",
69
- "identity-obj-proxy": "^3.0.0",
70
- "install-peers-cli": "^2.2.0",
71
- "jest": "^29.7.0",
72
- "jest-environment-jsdom": "^29.7.0",
67
+ "eslint": "^8.57.0",
73
68
  "react": "18.2.0",
74
69
  "react-dom": "18.2.0",
75
70
  "rollup": "^2.72.1",
@@ -82,15 +77,17 @@
82
77
  "rollup-plugin-svg": "^2.0.0",
83
78
  "rollup-plugin-ts-paths-resolve": "^1.7.1",
84
79
  "rollup-plugin-typescript-paths": "^1.3.1",
85
- "ts-jest": "^29.2.0"
80
+ "typescript": "^5.8.0",
81
+ "vitest": "^5.0.2"
86
82
  },
87
83
  "peerDependencies": {
88
84
  "@mui/x-data-grid-premium": "^8.24.0",
89
- "@redsift/design-system": "^12.6.5-0",
90
- "@redsift/icons": "^12.6.5-0",
85
+ "@mui/x-license": "^8.24.0",
86
+ "@redsift/design-system": "^13.0.0-0",
87
+ "@redsift/icons": "^13.0.0-0",
91
88
  "react": ">=17",
92
89
  "react-dom": ">=17",
93
90
  "styled-components": "^6.4.0"
94
91
  },
95
- "gitHead": "6767afb2384c367e0c977ed9f377dde019a6ea38"
92
+ "gitHead": "59ca567ac6685a9aa63fbcf54e0678788276f24b"
96
93
  }