@redsift/table 11.6.0-muiv5-alpha.10 → 11.6.0-muiv5-alpha.11

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.
Files changed (181) hide show
  1. package/_virtual/_internal/_commonjsHelpers.js +6 -0
  2. package/_virtual/_internal/_commonjsHelpers.js.map +1 -0
  3. package/{_internal → _virtual/_internal}/_rollupPluginBabelHelpers.js +1 -1
  4. package/_virtual/_internal/jsx-runtime.js +4 -0
  5. package/_virtual/_internal/jsx-runtime.js.map +1 -0
  6. package/_virtual/_internal/react-is.development.js +4 -0
  7. package/_virtual/_internal/react-is.development.js.map +1 -0
  8. package/_virtual/_internal/react-is.development2.js +4 -0
  9. package/_virtual/_internal/react-is.development2.js.map +1 -0
  10. package/_virtual/_internal/react-is.production.min.js +4 -0
  11. package/_virtual/_internal/react-is.production.min.js.map +1 -0
  12. package/_virtual/_internal/react-is.production.min2.js +4 -0
  13. package/_virtual/_internal/react-is.production.min2.js.map +1 -0
  14. package/_virtual/_internal/react-jsx-runtime.development.js +4 -0
  15. package/_virtual/_internal/react-jsx-runtime.development.js.map +1 -0
  16. package/_virtual/_internal/react-jsx-runtime.production.min.js +4 -0
  17. package/_virtual/_internal/react-jsx-runtime.production.min.js.map +1 -0
  18. package/_virtual/index.js +4 -0
  19. package/_virtual/index.js.map +1 -0
  20. package/_virtual/index2.js +4 -0
  21. package/_virtual/index2.js.map +1 -0
  22. package/_virtual/index3.js +4 -0
  23. package/_virtual/index3.js.map +1 -0
  24. package/package.json +2 -2
  25. package/packages/design-system/src/components/theme/_internal/context.js +7 -0
  26. package/packages/design-system/src/components/theme/_internal/context.js.map +1 -0
  27. package/packages/popovers/src/components/tooltip/_internal/Tooltip.js +60 -0
  28. package/packages/popovers/src/components/tooltip/_internal/Tooltip.js.map +1 -0
  29. package/packages/popovers/src/components/tooltip/_internal/context.js +6 -0
  30. package/packages/popovers/src/components/tooltip/_internal/context.js.map +1 -0
  31. package/packages/popovers/src/components/tooltip/_internal/types.js +28 -0
  32. package/packages/popovers/src/components/tooltip/_internal/types.js.map +1 -0
  33. package/packages/popovers/src/components/tooltip/_internal/useTooltip.js +78 -0
  34. package/packages/popovers/src/components/tooltip/_internal/useTooltip.js.map +1 -0
  35. package/packages/popovers/src/components/tooltip/_internal/useTooltipContext.js +13 -0
  36. package/packages/popovers/src/components/tooltip/_internal/useTooltipContext.js.map +1 -0
  37. package/packages/popovers/src/components/tooltip-content/_internal/TooltipContent.js +79 -0
  38. package/packages/popovers/src/components/tooltip-content/_internal/TooltipContent.js.map +1 -0
  39. package/packages/popovers/src/components/tooltip-content/_internal/styles.js +127 -0
  40. package/packages/popovers/src/components/tooltip-content/_internal/styles.js.map +1 -0
  41. package/packages/popovers/src/components/tooltip-trigger/_internal/TooltipTrigger.js +47 -0
  42. package/packages/popovers/src/components/tooltip-trigger/_internal/TooltipTrigger.js.map +1 -0
  43. package/packages/table/src/components/BaseComponents/_internal/BaseButton.js +41 -0
  44. package/packages/table/src/components/BaseComponents/_internal/BaseButton.js.map +1 -0
  45. package/packages/table/src/components/BaseComponents/_internal/BaseCheckbox.js +24 -0
  46. package/packages/table/src/components/BaseComponents/_internal/BaseCheckbox.js.map +1 -0
  47. package/packages/table/src/components/BaseComponents/_internal/BaseComponents.js +6 -0
  48. package/{_internal → packages/table/src/components/BaseComponents/_internal}/BaseComponents.js.map +1 -1
  49. package/packages/table/src/components/BaseComponents/_internal/BaseIcon.js +33 -0
  50. package/packages/table/src/components/BaseComponents/_internal/BaseIcon.js.map +1 -0
  51. package/packages/table/src/components/BaseComponents/_internal/BasePopper.js +13 -0
  52. package/packages/table/src/components/BaseComponents/_internal/BasePopper.js.map +1 -0
  53. package/{_internal → packages/table/src/components/BaseComponents/_internal}/BaseTextField.js +1 -1
  54. package/packages/table/src/components/BaseComponents/_internal/BaseTextField.js.map +1 -0
  55. package/packages/table/src/components/DataGrid/_internal/DataGrid.js +2 -0
  56. package/{_internal → packages/table/src/components/DataGrid/_internal}/DataGrid2.js +16 -8
  57. package/packages/table/src/components/DataGrid/_internal/DataGrid2.js.map +1 -0
  58. package/packages/table/src/components/DataGrid/_internal/styles.js +74 -0
  59. package/packages/table/src/components/DataGrid/_internal/styles.js.map +1 -0
  60. package/packages/table/src/components/GridToolbarFilterSemanticField/_internal/GridToolbarFilterSemanticField.js +2 -0
  61. package/packages/table/src/components/GridToolbarFilterSemanticField/_internal/GridToolbarFilterSemanticField2.js +183 -0
  62. package/packages/table/src/components/GridToolbarFilterSemanticField/_internal/GridToolbarFilterSemanticField2.js.map +1 -0
  63. package/packages/table/src/components/GridToolbarFilterSemanticField/_internal/styles.js +20 -0
  64. package/packages/table/src/components/GridToolbarFilterSemanticField/_internal/styles.js.map +1 -0
  65. package/packages/table/src/components/Pagination/_internal/ControlledPagination.js +74 -0
  66. package/packages/table/src/components/Pagination/_internal/ControlledPagination.js.map +1 -0
  67. package/packages/table/src/components/Pagination/_internal/Pagination.js +3 -0
  68. package/{_internal → packages/table/src/components/Pagination/_internal}/Pagination.js.map +1 -1
  69. package/packages/table/src/components/Pagination/_internal/ServerSideControlledPagination.js +102 -0
  70. package/packages/table/src/components/Pagination/_internal/ServerSideControlledPagination.js.map +1 -0
  71. package/packages/table/src/components/StatefulDataGrid/_internal/StatefulDataGrid.js +2 -0
  72. package/packages/table/src/components/StatefulDataGrid/_internal/StatefulDataGrid2.js +373 -0
  73. package/packages/table/src/components/StatefulDataGrid/_internal/StatefulDataGrid2.js.map +1 -0
  74. package/packages/table/src/components/TextCell/_internal/TextCell.js +2 -0
  75. package/{_internal → packages/table/src/components/TextCell/_internal}/TextCell2.js +3 -21
  76. package/packages/table/src/components/TextCell/_internal/TextCell2.js.map +1 -0
  77. package/packages/table/src/components/TextCell/_internal/styles.js +22 -0
  78. package/packages/table/src/components/TextCell/_internal/styles.js.map +1 -0
  79. package/packages/table/src/components/Toolbar/_internal/Toolbar.js +2 -0
  80. package/{_internal → packages/table/src/components/Toolbar/_internal}/Toolbar2.js +4 -17
  81. package/packages/table/src/components/Toolbar/_internal/Toolbar2.js.map +1 -0
  82. package/packages/table/src/components/Toolbar/_internal/styles.js +17 -0
  83. package/packages/table/src/components/Toolbar/_internal/styles.js.map +1 -0
  84. package/packages/table/src/components/ToolbarWrapper/_internal/ToolbarWrapper.js +2 -0
  85. package/{_internal → packages/table/src/components/ToolbarWrapper/_internal}/ToolbarWrapper2.js +4 -3
  86. package/packages/table/src/components/ToolbarWrapper/_internal/ToolbarWrapper2.js.map +1 -0
  87. package/packages/table/src/hooks/_internal/useControlledDatagridState.js +109 -0
  88. package/packages/table/src/hooks/_internal/useControlledDatagridState.js.map +1 -0
  89. package/packages/table/src/hooks/_internal/useFetchState.js +34 -0
  90. package/packages/table/src/hooks/_internal/useFetchState.js.map +1 -0
  91. package/packages/table/src/hooks/_internal/useStatefulTable.js +182 -0
  92. package/packages/table/src/hooks/_internal/useStatefulTable.js.map +1 -0
  93. package/packages/table/src/hooks/_internal/useTableStates.js +52 -0
  94. package/packages/table/src/hooks/_internal/useTableStates.js.map +1 -0
  95. package/packages/table/src/index.js +38 -0
  96. package/packages/table/src/index.js.map +1 -0
  97. package/packages/table/src/utils/_internal/gpt.js +33 -0
  98. package/packages/table/src/utils/_internal/gpt.js.map +1 -0
  99. package/packages/table/src/utils/_internal/localStorage.js +59 -0
  100. package/packages/table/src/utils/_internal/localStorage.js.map +1 -0
  101. package/{_internal/StatefulDataGrid2.js → packages/table/src/utils/_internal/urlLocalStorageSync.js} +5 -671
  102. package/packages/table/src/utils/_internal/urlLocalStorageSync.js.map +1 -0
  103. package/packages/table/src/utils/columnTypes/index.js +49 -0
  104. package/packages/table/src/utils/columnTypes/index.js.map +1 -0
  105. package/packages/table/src/utils/columns/_internal/detailPanelToggleColDef.js +8 -0
  106. package/packages/table/src/utils/columns/_internal/detailPanelToggleColDef.js.map +1 -0
  107. package/packages/table/src/utils/fields/_internal/InputNumberInterval.js +85 -0
  108. package/packages/table/src/utils/fields/_internal/InputNumberInterval.js.map +1 -0
  109. package/packages/table/src/utils/operators/index.js +52 -0
  110. package/packages/table/src/utils/operators/index.js.map +1 -0
  111. package/packages/table/src/utils/operators/numeric/_internal/getGridNumericOperators.js +7 -0
  112. package/packages/table/src/utils/operators/numeric/_internal/getGridNumericOperators.js.map +1 -0
  113. package/packages/table/src/utils/operators/numeric/_internal/isBetween.js +28 -0
  114. package/packages/table/src/utils/operators/numeric/_internal/isBetween.js.map +1 -0
  115. package/packages/table/src/utils/operators/string/_internal/doesNotContain.js +25 -0
  116. package/packages/table/src/utils/operators/string/_internal/doesNotContain.js.map +1 -0
  117. package/packages/table/src/utils/operators/string/_internal/doesNotEqual.js +25 -0
  118. package/packages/table/src/utils/operators/string/_internal/doesNotEqual.js.map +1 -0
  119. package/packages/table/src/utils/operators/string/_internal/doesNotHave.js +24 -0
  120. package/packages/table/src/utils/operators/string/_internal/doesNotHave.js.map +1 -0
  121. package/packages/table/src/utils/operators/string/_internal/getGridStringOperators.js +9 -0
  122. package/packages/table/src/utils/operators/string/_internal/getGridStringOperators.js.map +1 -0
  123. package/packages/table/src/utils/operators/string/_internal/has.js +24 -0
  124. package/packages/table/src/utils/operators/string/_internal/has.js.map +1 -0
  125. package/packages/table/src/utils/operators/string/_internal/hasOnly.js +24 -0
  126. package/packages/table/src/utils/operators/string/_internal/hasOnly.js.map +1 -0
  127. package/packages/table/src/utils/operators/string/_internal/is.js +26 -0
  128. package/packages/table/src/utils/operators/string/_internal/is.js.map +1 -0
  129. package/packages/table/src/utils/operators/string/_internal/isNot.js +26 -0
  130. package/packages/table/src/utils/operators/string/_internal/isNot.js.map +1 -0
  131. package/packages/table/src/utils/operators/string-array/_internal/containsAnyOf.js +56 -0
  132. package/packages/table/src/utils/operators/string-array/_internal/containsAnyOf.js.map +1 -0
  133. package/packages/table/src/utils/operators/string-array/_internal/doesNotHaveAnyOf.js +26 -0
  134. package/packages/table/src/utils/operators/string-array/_internal/doesNotHaveAnyOf.js.map +1 -0
  135. package/packages/table/src/utils/operators/string-array/_internal/endsWithAnyOf.js +31 -0
  136. package/packages/table/src/utils/operators/string-array/_internal/endsWithAnyOf.js.map +1 -0
  137. package/packages/table/src/utils/operators/string-array/_internal/getGridStringArrayOperators.js +19 -0
  138. package/packages/table/src/utils/operators/string-array/_internal/getGridStringArrayOperators.js.map +1 -0
  139. package/packages/table/src/utils/operators/string-array/_internal/hasAnyOf.js +28 -0
  140. package/packages/table/src/utils/operators/string-array/_internal/hasAnyOf.js.map +1 -0
  141. package/packages/table/src/utils/operators/string-array/_internal/isAnyOf.js +32 -0
  142. package/packages/table/src/utils/operators/string-array/_internal/isAnyOf.js.map +1 -0
  143. package/packages/table/src/utils/operators/string-array/_internal/isNotAnyOf.js +28 -0
  144. package/packages/table/src/utils/operators/string-array/_internal/isNotAnyOf.js.map +1 -0
  145. package/packages/table/src/utils/operators/string-array/_internal/startsWithAnyOf.js +31 -0
  146. package/packages/table/src/utils/operators/string-array/_internal/startsWithAnyOf.js.map +1 -0
  147. package/_internal/BaseComponents.js +0 -3
  148. package/_internal/BasePopper.js +0 -2448
  149. package/_internal/BasePopper.js.map +0 -1
  150. package/_internal/BaseTextField.js.map +0 -1
  151. package/_internal/ControlledPagination.js +0 -10484
  152. package/_internal/ControlledPagination.js.map +0 -1
  153. package/_internal/DataGrid.js +0 -2
  154. package/_internal/DataGrid2.js.map +0 -1
  155. package/_internal/GridToolbarFilterSemanticField.js +0 -2
  156. package/_internal/GridToolbarFilterSemanticField2.js +0 -5581
  157. package/_internal/GridToolbarFilterSemanticField2.js.map +0 -1
  158. package/_internal/Pagination.js +0 -2
  159. package/_internal/Portal.js +0 -4363
  160. package/_internal/Portal.js.map +0 -1
  161. package/_internal/StatefulDataGrid.js +0 -2
  162. package/_internal/StatefulDataGrid2.js.map +0 -1
  163. package/_internal/TextCell.js +0 -2
  164. package/_internal/TextCell2.js.map +0 -1
  165. package/_internal/Toolbar.js +0 -2
  166. package/_internal/Toolbar2.js.map +0 -1
  167. package/_internal/ToolbarWrapper.js +0 -2
  168. package/_internal/ToolbarWrapper2.js.map +0 -1
  169. package/_internal/jsx-runtime.js +0 -1342
  170. package/_internal/jsx-runtime.js.map +0 -1
  171. package/_internal/useControlledDatagridState.js +0 -2175
  172. package/_internal/useControlledDatagridState.js.map +0 -1
  173. package/index.js +0 -19
  174. package/index.js.map +0 -1
  175. /package/{_internal → _virtual/_internal}/_rollupPluginBabelHelpers.js.map +0 -0
  176. /package/{_internal → packages/table/src/components/DataGrid/_internal}/DataGrid.js.map +0 -0
  177. /package/{_internal → packages/table/src/components/GridToolbarFilterSemanticField/_internal}/GridToolbarFilterSemanticField.js.map +0 -0
  178. /package/{_internal → packages/table/src/components/StatefulDataGrid/_internal}/StatefulDataGrid.js.map +0 -0
  179. /package/{_internal → packages/table/src/components/TextCell/_internal}/TextCell.js.map +0 -0
  180. /package/{_internal → packages/table/src/components/Toolbar/_internal}/Toolbar.js.map +0 -0
  181. /package/{_internal → packages/table/src/components/ToolbarWrapper/_internal}/ToolbarWrapper.js.map +0 -0
@@ -1,2 +0,0 @@
1
- export { y as StatefulDataGrid } from './StatefulDataGrid2.js';
2
- //# sourceMappingURL=StatefulDataGrid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatefulDataGrid2.js","sources":["../../src/utils/localStorage.ts","../../src/utils/urlLocalStorageSync.ts","../../src/hooks/useFetchState.tsx","../../src/hooks/useTableStates.tsx","../../src/hooks/useStatefulTable.tsx","../../src/components/StatefulDataGrid/StatefulDataGrid.tsx"],"sourcesContent":["export const PAGINATION_MODEL_KEY = 'paginationModel';\nexport const FILTER_MODEL_KEY = 'filterModel';\nexport const SORT_MODEL_KEY = 'sortModel';\nexport const VISIBILITY_MODEL_KEY = 'visibilityModel';\nexport const PINNED_COLUMNS = 'pinnedColumns';\nexport const DIMENSION_MODEL_KEY = 'dimension';\nexport const FILTER_SEARCH_KEY = 'searchModel';\nexport const CATEGORIES = [\n PAGINATION_MODEL_KEY,\n FILTER_MODEL_KEY,\n SORT_MODEL_KEY,\n VISIBILITY_MODEL_KEY,\n DIMENSION_MODEL_KEY,\n FILTER_SEARCH_KEY,\n PINNED_COLUMNS,\n] as const;\n\nexport type Category = (typeof CATEGORIES)[number];\n\nexport const buildStorageKey = ({ id, version, category }: { id: string; version: number; category: Category }) => {\n return `${id}:${version}:${category}` as const;\n};\n\nexport const clearPreviousVersionStorage = (id: string, previousLocalStorageVersions: number[]): void => {\n for (const version of previousLocalStorageVersions) {\n const keysToDelete = [\n buildStorageKey({\n id,\n version,\n category: PAGINATION_MODEL_KEY,\n }),\n buildStorageKey({ id, version, category: SORT_MODEL_KEY }),\n buildStorageKey({\n id,\n version,\n category: FILTER_MODEL_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: VISIBILITY_MODEL_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: PINNED_COLUMNS,\n }),\n buildStorageKey({\n id,\n version,\n category: FILTER_SEARCH_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: DIMENSION_MODEL_KEY,\n }),\n ];\n\n for (const keyToDelete of keysToDelete) {\n try {\n window.localStorage.removeItem(keyToDelete);\n } catch (e) {\n // Ignore\n }\n }\n }\n};\n","import {\n GridColDef,\n GridFilterModel,\n GridColumnVisibilityModel,\n GridSortModel,\n GridLinkOperator,\n GridFilterItem,\n GridSortItem,\n GridPinnedColumns,\n} from '@mui/x-data-grid-pro';\nimport { DataGridProps } from '../components/DataGrid';\nimport { operatorList } from './operators';\nimport {\n ExtendedGridFilterItem,\n ExtendedGridFilterModel,\n ExtendedGridPaginationModel,\n} from '../hooks/useStatefulTable';\nimport { GridInitialStatePro } from '@mui/x-data-grid-pro/models/gridStatePro';\n\ntype OperatorType = 'string' | 'number' | 'date' | 'dateTime' | 'boolean' | 'singleSelect';\n\ntype OperatorValue = string | string[];\n\n// reference value: https://www.w3schools.com/tags/ref_urlencode.ASP\nconst DECODER: Record<string, string> = {\n '%20': ' ',\n '%26': '&',\n '%3D': '=',\n '%3F': '?',\n '%5B': '[',\n '%5D': ']',\n '%2C': ',',\n '%3C': '<',\n '%3E': '>',\n '%21': '!',\n '%22': '\"',\n};\n\nconst ENCODER = {\n ' ': '%20',\n '&': '%26',\n '=': '%3D',\n '?': '%3F',\n '[': '%5B',\n ']': '%5D',\n ',': '%2C',\n '<': '%3C',\n '>': '%3E',\n '!': '%21',\n '\"': '%22',\n} as const;\n\nexport const decodeValue = (value: string): OperatorValue => {\n if (value === '') {\n return '';\n }\n\n const re = new RegExp(\n Object.keys(DECODER).reduce((acc, curr) => `${acc}|${curr}`),\n 'g'\n );\n // decodeValue for lists:\n if (value.startsWith('list[')) {\n const arrayValues = value.split('[')[1].split(']')[0];\n const arrayList = arrayValues\n .split(',')\n .map((v) => v.replace(re, (encoded) => DECODER[encoded]))\n .filter((item) => item);\n return arrayList.length > 0 ? arrayList : [];\n }\n\n return value.replace(re, (encoded) => DECODER[encoded]);\n};\n\nexport const encodeValue = (value: string | undefined) => {\n if (!value) {\n return '';\n }\n\n // Array encoding for value:\n // we are representing it as list[encoded], where encoded is the list comma separated\n if (Array.isArray(value)) {\n const encodedArray = value\n .map((entry: string) => {\n return String(entry).replace(/\\s|&|=|\\?|\\[|\\]/g, (encoded) => ENCODER[encoded as keyof typeof ENCODER]);\n })\n .join(',');\n return `list[${encodedArray}]`;\n }\n\n // we might also pass integers\n const castedValue = String(value);\n\n return castedValue.replace(/\\s|&|=|\\?|\\[|\\]/g, (encoded) => ENCODER[encoded as keyof typeof ENCODER]);\n};\n\nexport const urlSearchParamsToString = (searchParams: URLSearchParams): string => {\n let searchString = '';\n for (const [key, value] of searchParams) {\n searchString = searchString + `${key}=${value}&`;\n }\n return searchString.slice(0, searchString.length - 1);\n};\n\nexport const numberOperatorEncoder: Record<string, string> = {\n '=': 'eq',\n '!=': 'ne',\n '>': 'gt',\n '>=': 'gte',\n '<': 'lt',\n '<=': 'lte',\n};\n\nexport const numberOperatorDecoder: Record<string, string> = {\n eq: '=',\n ne: '!=',\n gt: '>',\n gte: '>=',\n lt: '<',\n lte: '<=',\n};\n\nconst isOperatorValueValid = (\n columnField: string,\n operatorValue: OperatorValue,\n columns: DataGridProps['columns']\n): boolean => {\n const column = columns.find((column) => column.field === columnField);\n if (!column) {\n return false;\n }\n const columnType = (column?.type || 'string') as OperatorType;\n const operators = operatorList[columnType];\n\n if (!operators) {\n return false;\n }\n\n if ('filterOperators' in operators) {\n return !!(operators as any).filterOperators.find((op: any) =>\n columnType === 'number' && Object.keys(numberOperatorEncoder).includes(op.value)\n ? numberOperatorEncoder[op.value] === operatorValue\n : op['value'] === operatorValue\n );\n }\n return !!(operators as any).find((op: any) =>\n ['number', 'rsNumber'].includes(columnType) && Object.keys(numberOperatorEncoder).includes(op.value)\n ? numberOperatorEncoder[op.value] === operatorValue\n : op['value'] === operatorValue\n );\n};\n\nconst listOperators = [\n 'containsAnyOf',\n 'doesNotContainAnyOf',\n 'endsWithAnyOf',\n 'doesNotEndWithAnyOf',\n 'hasAnyOf',\n 'doesNotHaveAnyOf',\n 'isAnyOf',\n 'isNotAnyOf',\n 'startsWithAnyOf',\n 'doesNotStartWithAnyOf',\n];\n\n// Check if the value doesn't break\nconst isValueValid = (\n value: OperatorValue,\n columnField: string,\n columns: DataGridProps['columns'],\n operatorValue: OperatorValue\n): boolean => {\n // every field accepts undefined as value for default\n if (value === undefined || value === '') {\n return true;\n }\n\n // xxxAnyOf accepts as value only lists, and we are declearing them in the\n // URL as `list=[...]`\n if (listOperators.includes(operatorValue as string)) {\n return Array.isArray(value) || value === '';\n }\n\n // We are accepting arrays only if they are of the 'xxxAnyOf' type\n if (Array.isArray(value) && !listOperators.includes(operatorValue as string)) {\n return false;\n }\n\n const column = columns.find((column) => column.field === columnField);\n if (!column) {\n return false;\n }\n const type = column['type'] ?? 'string';\n\n // Only date and rating fail with 500s, other set themselves as undefined\n if (type !== 'date' && type !== 'rating') {\n return true;\n }\n\n // just checking that rating is a number.\n if (type === 'rating') {\n return !isNaN(Number(value));\n }\n\n // format: YYYY-MM-DD\n // just verifying that the 3 values are numbers to avoid 500s,\n // If the value is invalid the form will appear as undefined\n if (type === 'date') {\n const dateSplitted = (value as string).split('-');\n if (dateSplitted.length !== 3) {\n return false;\n }\n const [YYYY, MM, DD] = dateSplitted;\n\n return !isNaN(parseInt(YYYY)) && !isNaN(parseInt(MM)) && !isNaN(parseInt(DD));\n }\n return false;\n};\n\n/** FILTERS */\n\n// example:\n// unicodeDomain[contains]=a&unicodeDomain[contains]=dsa&logicOperator=and&tab=ignored\nexport const getFilterModelFromString = (\n searchString: string,\n columns: DataGridProps['columns']\n): ExtendedGridFilterModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n let linkOperator = GridLinkOperator.And;\n let quickFilterValues: string[] = [];\n\n const searchParams = new URLSearchParams();\n for (const [key, value] of new URLSearchParams(searchString)) {\n if (\n key.startsWith('_') &&\n ![\n '_logicOperator',\n '_sortColumn',\n '_pinnedColumnsLeft',\n '_pinnedColumnsRight',\n '_columnVisibility',\n '_pagination',\n '_quickFilterValues',\n ].includes(key)\n ) {\n searchParams.set(key, value);\n }\n\n if (key === '_logicOperator') {\n linkOperator = value as GridLinkOperator;\n }\n\n if (key === '_quickFilterValues') {\n try {\n quickFilterValues = JSON.parse(decodeURIComponent(value));\n } catch {\n quickFilterValues = [];\n }\n }\n }\n\n let id = 5000;\n const fields = columns.map((column) => column.field);\n\n let isInvalid = false;\n\n const items: ExtendedGridFilterItem[] = [];\n searchParams.forEach((value, key) => {\n if (isInvalid) {\n return;\n }\n\n const field = key.split('[')[0].slice(1); // Slice to remove the _ at the beginning\n if (!fields.includes(field)) {\n return;\n }\n\n const columnType = columns.find((column) => column.field === field)?.type;\n\n const left = key.split(']')[0];\n if (left.split('[').length < 2) {\n isInvalid = true;\n return;\n }\n\n const splitRight = key.split('[')[1].split(']')[0].split(',');\n const type = splitRight[1];\n if (type !== columnType) {\n isInvalid = true;\n return;\n }\n\n const operator = splitRight[0];\n // if the operator is not part of the valid operators invalidate the URL\n if (!isOperatorValueValid(field, operator, columns) || Array.isArray(operator)) {\n isInvalid = true;\n return;\n }\n id += 1;\n\n const decodedValue = decodeValue(value);\n if (!isValueValid(decodedValue, field, columns, operator)) {\n isInvalid = true;\n return;\n }\n\n items.push({\n columnField: field,\n operatorValue:\n ['number', 'rsNumber'].includes(columnType!) && Object.keys(numberOperatorDecoder).includes(operator)\n ? numberOperatorDecoder[operator]\n : operator,\n id,\n value: listOperators.includes(operator as string) && decodedValue === '' ? [] : decodedValue,\n type,\n });\n });\n\n // If we found some condition that results in an invalid URL,\n // return the empty filterModel (this will trigger the localStorage)\n // and will pick up the last valid search\n if (isInvalid) {\n return 'invalid';\n }\n\n return { items, linkOperator, quickFilterValues };\n};\n\nexport const getSearchParamsFromFilterModel = (filterModel: ExtendedGridFilterModel): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set('_logicOperator', filterModel['linkOperator'] || '');\n filterModel['items'].forEach((item: ExtendedGridFilterItem) => {\n const { columnField, operatorValue, value, type } = item;\n\n if (Object.keys(numberOperatorEncoder).includes(operatorValue!)) {\n searchParams.set(\n `_${columnField}[${numberOperatorEncoder[operatorValue!]},${encodeValue(type)}]`,\n encodeValue(value)\n );\n } else {\n searchParams.set(`_${columnField}[${encodeValue(operatorValue)},${encodeValue(type)}]`, encodeValue(value));\n }\n });\n\n if (filterModel.quickFilterValues?.length) {\n searchParams.set('_quickFilterValues', encodeURIComponent(JSON.stringify(filterModel.quickFilterValues)));\n }\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty FilterModel\nconst getFilterModel = (\n search: string,\n columns: DataGridProps['columns'],\n localStorageFilters: string,\n setLocalStorageFilters: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): ExtendedGridFilterModel => {\n const defaultValue =\n initialState && initialState.filter && initialState.filter.filterModel\n ? initialState.filter.filterModel\n : {\n items: [],\n linkOperator: GridLinkOperator.And,\n };\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const filterModelFromSearch = getFilterModelFromString(search, columns);\n\n if (filterModelFromSearch !== 'invalid') {\n const searchFromFilterModel = getSearchParamsFromFilterModel(filterModelFromSearch);\n const searchString = urlSearchParamsToString(searchFromFilterModel);\n if (searchString !== localStorageFilters) {\n setLocalStorageFilters(searchString);\n }\n return filterModelFromSearch;\n }\n\n const filterModelFromLocalStorage = getFilterModelFromString(localStorageFilters, columns);\n\n if (filterModelFromLocalStorage !== 'invalid') {\n return filterModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** SORT */\n\nexport const getSortingFromString = (\n searchString: string,\n columns: DataGridProps['columns']\n): GridSortModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n const searchParams = new URLSearchParams(searchString);\n\n const value = searchParams.get('_sortColumn');\n\n if (value === '' || value === null || value === '[]') {\n return [];\n }\n\n const fields = columns.map((column) => column.field);\n const [column, order] = value.slice(1, value.length - 1).split(',');\n\n if (fields.includes(column) && (order === 'asc' || order === 'desc')) {\n return [\n {\n field: column,\n sort: order,\n },\n ];\n }\n\n return 'invalid';\n};\n\nexport const getSearchParamsFromSorting = (sorting: GridSortItem[]): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set(\n '_sortColumn',\n sorting.length > 0 && sorting[0].sort ? `[${encodeValue(sorting[0].field)},${encodeValue(sorting[0].sort)}]` : '[]'\n );\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty SortModel\nconst getSortModel = (\n search: string,\n columns: DataGridProps['columns'],\n localStorageSorting: string,\n setLocalStorageSorting: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n) => {\n const defaultValue = initialState?.sorting?.sortModel ? initialState.sorting.sortModel : [];\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const sorting = getSortingFromString(search, columns);\n\n if (sorting !== 'invalid') {\n const searchFromSortModel = getSearchParamsFromSorting(sorting);\n const searchString = urlSearchParamsToString(searchFromSortModel);\n if (searchString !== localStorageSorting) {\n setLocalStorageSorting(searchString);\n }\n return sorting;\n }\n\n const sortModelFromLocalStorage = getSortingFromString(localStorageSorting, columns);\n\n if (sortModelFromLocalStorage !== 'invalid') {\n return sortModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** PAGINATION */\n\nexport const getPaginationFromString = (searchString: string): ExtendedGridPaginationModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n const searchParams = new URLSearchParams(searchString);\n\n const value = searchParams.get('_pagination');\n\n if (value === '' || value === null || value === '[]') {\n return 'invalid';\n }\n\n const pagination = value.slice(1, value.length - 1).split(',');\n const page = parseFloat(pagination[0]);\n const pageSize = parseFloat(pagination[1]);\n const direction = pagination[2];\n\n if (!Number.isNaN(page) && !Number.isNaN(pageSize) && direction && ['next', 'back'].includes(direction)) {\n return { page, pageSize, direction: direction as 'next' | 'back' };\n }\n\n return 'invalid';\n};\n\nexport const getSearchParamsFromPagination = (pagination: ExtendedGridPaginationModel): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set('_pagination', `[${pagination.page},${pagination.pageSize},${pagination.direction}]`);\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty PaginationModel\nconst getPaginationModel = (\n search: string,\n localStoragePagination: string,\n setLocalStoragePagination: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n) => {\n const defaultValue = initialState?.pagination\n ? ({ page: 0, pageSize: 25, direction: 'next', ...initialState.pagination } as ExtendedGridPaginationModel)\n : ({ page: 0, pageSize: 25, direction: 'next' } as ExtendedGridPaginationModel);\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const pagination = getPaginationFromString(search);\n\n if (pagination !== 'invalid') {\n const searchFromPaginationModel = getSearchParamsFromPagination(pagination);\n const searchString = urlSearchParamsToString(searchFromPaginationModel);\n if (searchString !== localStoragePagination) {\n setLocalStoragePagination(searchString);\n }\n return pagination;\n }\n\n const paginationModelFromLocalStorage = getPaginationFromString(localStoragePagination);\n\n if (paginationModelFromLocalStorage !== 'invalid') {\n return paginationModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** COLUMN VISIBILITY */\n\nexport const getSearchParamsFromColumnVisibility = (\n columnVisibility: GridColumnVisibilityModel,\n columns: DataGridProps['columns']\n): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const columnFields = columns.map((column) => column.field);\n\n // if column visibility model is empty, show all columns\n if (Object.keys(columnVisibility).length == 0) {\n searchParams.set('_columnVisibility', `[${columnFields.join(',')}]`);\n return searchParams;\n }\n\n const finalColumnVisibility = columns\n .filter((c) => !(c?.hideable ?? true))\n .map((c) => c.field)\n .reduce((acc, colName) => {\n return { ...acc, [colName]: true };\n }, columnVisibility);\n\n const visibleColumns = Object.entries(finalColumnVisibility)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .filter(([_, visible]) => visible)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .map(([column, _]) => encodeValue(column));\n\n searchParams.set('_columnVisibility', `[${visibleColumns.join(',')}]`);\n return searchParams;\n};\n\nexport const getColumnVisibilityFromString = (\n notParsed: string,\n tableColumns: DataGridProps['columns']\n): GridColumnVisibilityModel | 'invalid' => {\n if (!notParsed || (notParsed.length === 1 && notParsed[0] === '?')) {\n return 'invalid';\n }\n // remove the initial ? if present\n const parsed = notParsed[0] === '?' ? notParsed.slice(1) : notParsed;\n\n const visibility: GridColumnVisibilityModel = {};\n let exist = false;\n let visibleColumnsCount = 0;\n for (const item of parsed.split('&')) {\n // if it's not column visibility field, skip\n const fieldURL = item.split('=')[0];\n if (fieldURL !== '_columnVisibility') {\n continue;\n }\n // e.g. item = _columnVisibility[abc,def]\n const left = item.split(']')[0];\n if (left.split('[').length < 2) {\n continue;\n }\n\n const encodedValues = item.split('[')[1].split(']')[0];\n if (typeof encodedValues !== 'string') {\n continue;\n }\n\n exist = true;\n\n const columnFields = tableColumns.map((column) => column.field);\n // TODO: Add validation that , is present\n const columns = encodedValues.split(',').map((value) => decodeValue(value));\n\n // for each column, check if it's visible and add it to visibility model\n for (const column of columnFields) {\n const isColumnVisible = columns.includes(column);\n visibility[column] = isColumnVisible;\n if (isColumnVisible) {\n visibleColumnsCount += 1;\n }\n }\n }\n\n if (visibleColumnsCount === 0 && !exist) {\n return 'invalid';\n }\n\n return visibility;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty ColumnVisibilityModel (which is all columns)\n// NOTE: the `defaultHidden` is a custom field and not standard DataGrid\n// The reason is the following bug: https://github.com/mui/mui-x/issues/8407\nconst getColumnsVisibility = (\n search: string,\n columns: (GridColDef & { defaultHidden?: boolean })[],\n localStorageColumnsVisibility: string,\n setLocalStorageColumnsVisibility: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): GridColumnVisibilityModel => {\n const defaultValue: GridColumnVisibilityModel = {};\n for (const column of columns) {\n const field = column.field;\n if (initialState?.columns?.columnVisibilityModel?.[field] !== undefined) {\n defaultValue[field] = initialState.columns.columnVisibilityModel[field];\n } else {\n defaultValue[field] = column.defaultHidden !== true; // undefined will be true\n }\n }\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const columnVisibility = getColumnVisibilityFromString(search, columns);\n\n if (columnVisibility !== 'invalid') {\n const searchColumnVisibility = getSearchParamsFromColumnVisibility(columnVisibility, columns);\n\n if (searchColumnVisibility.toString() !== localStorageColumnsVisibility) {\n setLocalStorageColumnsVisibility(searchColumnVisibility.toString());\n }\n return columnVisibility;\n }\n\n const columnVisibilityFromLocalStorage = getColumnVisibilityFromString(localStorageColumnsVisibility, columns);\n\n if (columnVisibilityFromLocalStorage !== 'invalid') {\n return columnVisibilityFromLocalStorage;\n }\n\n if (initialState?.columns?.columnVisibilityModel) {\n return initialState.columns.columnVisibilityModel;\n }\n\n return defaultValue;\n};\n\nexport const getPinnedColumnsFromString = (\n notParsed: string,\n tableColumns: DataGridProps['columns']\n): PinnedColumns | 'invalid' => {\n if (!notParsed || (notParsed.length === 1 && notParsed[0] === '?')) {\n return 'invalid';\n }\n // remove the initial ? if present\n const parsed = notParsed[0] === '?' ? notParsed.slice(1) : notParsed;\n\n const pinnedColumns: Partial<PinnedColumns> = {};\n\n for (const item of parsed.split('&')) {\n const fieldURL = item.split('=')[0];\n if (fieldURL !== '_pinnedColumnsLeft' && fieldURL !== '_pinnedColumnsRight') {\n continue;\n }\n\n const left = item.split(']')[0];\n if (left.split('[').length < 2) {\n continue;\n }\n\n const encodedValues = item.split('[')[1].split(']')[0];\n if (typeof encodedValues !== 'string') {\n continue;\n }\n\n const columnFields = [...tableColumns.map((column) => column.field), '__check__'];\n\n const columns = encodedValues\n .split(',')\n .map((value) => decodeValue(value))\n .filter((val): val is string => typeof val === 'string' && columnFields.includes(val));\n\n if (fieldURL === '_pinnedColumnsLeft') {\n pinnedColumns['left'] = columns;\n }\n if (fieldURL === '_pinnedColumnsRight') {\n pinnedColumns['right'] = columns;\n }\n }\n\n return pinnedColumns['left'] || pinnedColumns['right']\n ? {\n left: pinnedColumns['left'] || [],\n right: pinnedColumns['right'] || [],\n }\n : 'invalid';\n};\n\nexport const getSearchParamsFromPinnedColumns = (pinnedColumns: GridPinnedColumns): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const pinnedColumnLeft = pinnedColumns.left?.map((val) => encodeValue(val)) || [];\n const pinnedColumnRight = pinnedColumns.right?.map((val) => encodeValue(val)) || [];\n\n searchParams.set('_pinnedColumnsLeft', `[${pinnedColumnLeft.join(',')}]`);\n searchParams.set('_pinnedColumnsRight', `[${pinnedColumnRight.join(',')}]`);\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty ColumnVisibilityModel (which is all columns)\nconst getPinnedColumns = (\n search: string,\n columns: DataGridProps['columns'],\n localStoragePinnedColumns: string,\n setLocalStoragePinnedColumns: (pinnedColumns: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): PinnedColumns => {\n const defaultValue = initialState?.pinnedColumns\n ? {\n left: initialState?.pinnedColumns['left'] || [],\n right: initialState?.pinnedColumns['right'] || [],\n }\n : { left: [], right: [] };\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const pinnedColumns = getPinnedColumnsFromString(search, columns);\n\n if (pinnedColumns !== 'invalid') {\n const searchPinnedColumns = getSearchParamsFromPinnedColumns(pinnedColumns);\n\n if (searchPinnedColumns.toString() !== localStoragePinnedColumns) {\n setLocalStoragePinnedColumns(searchPinnedColumns.toString());\n }\n return pinnedColumns;\n }\n\n const pinnedColumnsFromLocalStorage = getPinnedColumnsFromString(localStoragePinnedColumns, columns);\n\n if (pinnedColumnsFromLocalStorage !== 'invalid') {\n return pinnedColumnsFromLocalStorage;\n }\n\n return defaultValue;\n};\n\nexport const getSearchParamsFromTab = (search: string): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const openTab = new URLSearchParams(search).get('tab');\n if (openTab) {\n searchParams.set('tab', openTab);\n }\n return searchParams;\n};\n\ntype FinalSearchInput = {\n localStorageVersion: number;\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnsVisibilityModel: GridColumnVisibilityModel;\n pinnedColumnsModel: GridPinnedColumns;\n search: string;\n columns: DataGridProps['columns'];\n};\n\nexport const getFinalSearch = ({\n search,\n localStorageVersion,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel,\n pinnedColumnsModel,\n columns,\n}: FinalSearchInput): URLSearchParams => {\n const filterModelSearch = getSearchParamsFromFilterModel(filterModel);\n const sortModelSearch = getSearchParamsFromSorting(sortModel);\n const paginationModelSearch = getSearchParamsFromPagination(paginationModel);\n const columnVisibilityModelSearch = getSearchParamsFromColumnVisibility(columnsVisibilityModel, columns);\n const pinnedColumnsModelSearch = getSearchParamsFromPinnedColumns(pinnedColumnsModel);\n const tabSearch = getSearchParamsFromTab(search);\n\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of new URLSearchParams(search)) {\n if (!key.startsWith('_')) {\n searchParams.set(key, value);\n }\n }\n searchParams.set('v', `${localStorageVersion}`);\n\n // Add quickFilterValues explicitly if present in filterModel\n if (filterModel.quickFilterValues && filterModel.quickFilterValues.length > 0) {\n // Encode array as JSON string to preserve all values in one param\n searchParams.set('_quickFilterValues', encodeURIComponent(JSON.stringify(filterModel.quickFilterValues)));\n }\n\n return new URLSearchParams([\n ...searchParams,\n ...filterModelSearch,\n ...sortModelSearch,\n ...paginationModelSearch,\n ...tabSearch,\n ...pinnedColumnsModelSearch,\n ...columnVisibilityModelSearch,\n ]);\n};\n\nexport type PinnedColumns = {\n left: string[];\n right: string[];\n};\n\ntype ModelsLocalStorage = {\n localStorageFilters: string;\n setLocalStorageFilters: (search: string) => void;\n localStorageSorting: string;\n setLocalStorageSorting: (search: string) => void;\n localStoragePagination: string;\n setLocalStoragePagination: (search: string) => void;\n localStorageColumnsVisibility: string;\n setLocalStorageColumnsVisibility: (search: string) => void;\n localStoragePinnedColumns: string;\n setLocalStoragePinnedColumns: (search: string) => void;\n};\n\ntype ModelsTable = {\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnVisibilityModel: GridColumnVisibilityModel;\n pinnedColumnsModel: PinnedColumns;\n};\n\n/** Return the state of the table given the URL and the local storage state */\nexport const getModelsParsedOrUpdateLocalStorage = (\n search: string,\n localStorageVersion: number,\n columns: DataGridProps['columns'],\n historyReplace: (newSearch: string) => void,\n initialState: GridInitialStatePro | undefined,\n localStorage: ModelsLocalStorage\n): ModelsTable => {\n const currentVersion = new URLSearchParams(search).get('v');\n const isNewVersion = !currentVersion || Number(currentVersion) !== localStorageVersion;\n\n const {\n localStorageFilters,\n setLocalStorageFilters,\n localStorageSorting,\n setLocalStorageSorting,\n localStoragePagination,\n setLocalStoragePagination,\n localStorageColumnsVisibility,\n setLocalStorageColumnsVisibility,\n localStoragePinnedColumns,\n setLocalStoragePinnedColumns,\n } = localStorage;\n\n const filterModel = getFilterModel(\n search,\n columns,\n localStorageFilters,\n setLocalStorageFilters,\n initialState,\n isNewVersion\n );\n const sortModel = getSortModel(\n search,\n columns,\n localStorageSorting,\n setLocalStorageSorting,\n initialState,\n isNewVersion\n );\n const paginationModel = getPaginationModel(\n search,\n localStoragePagination,\n setLocalStoragePagination,\n initialState,\n isNewVersion\n );\n const columnVisibilityModel = getColumnsVisibility(\n search,\n columns as (GridColDef & { defaultHidden?: boolean })[],\n localStorageColumnsVisibility,\n setLocalStorageColumnsVisibility,\n initialState,\n isNewVersion\n );\n const pinnedColumnsModel = getPinnedColumns(\n search,\n columns,\n localStoragePinnedColumns,\n setLocalStoragePinnedColumns,\n initialState,\n isNewVersion\n );\n\n const finalSearch = getFinalSearch({\n localStorageVersion,\n search,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel: columnVisibilityModel,\n pinnedColumnsModel,\n columns,\n });\n\n const searchString = urlSearchParamsToString(finalSearch);\n if (searchString !== search) {\n historyReplace(searchString);\n }\n\n return {\n filterModel,\n sortModel,\n paginationModel,\n columnVisibilityModel,\n pinnedColumnsModel,\n };\n};\n\nexport type DataGridModel = {\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnsModel: GridColumnVisibilityModel;\n pinnedColumnsModel: GridPinnedColumns;\n};\n\nexport const updateUrl = (\n { filterModel, sortModel, paginationModel, columnsModel: columnsVisibilityModel, pinnedColumnsModel }: DataGridModel,\n search: string,\n localStorageVersion: number,\n historyReplace: (newSearch: string) => void,\n columns: DataGridProps['columns']\n) => {\n const newSearch = getFinalSearch({\n search,\n localStorageVersion,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel,\n pinnedColumnsModel,\n columns,\n });\n\n const searchString = urlSearchParamsToString(newSearch);\n if (searchString !== search) {\n historyReplace(searchString);\n }\n};\n\n// Note: this is a comparator to sort the filters, not pure comparison\n// do not use it for equivalence (e.g. with value `3` and undefined we\n// will get 0).\nconst compareFilters = (firstFilter: GridFilterItem, secondFilter: GridFilterItem): number => {\n if (firstFilter.columnField < secondFilter.columnField) {\n return -1;\n } else if (firstFilter.columnField > secondFilter.columnField) {\n return 1;\n }\n if (firstFilter.operatorValue === undefined || secondFilter.operatorValue === undefined) {\n return 0;\n }\n if (firstFilter.operatorValue < secondFilter.operatorValue) {\n return -1;\n } else if (firstFilter.operatorValue > secondFilter.operatorValue) {\n return 1;\n }\n\n if (firstFilter.value < secondFilter.value) {\n return -1;\n } else if (firstFilter.value > secondFilter.value) {\n return 1;\n }\n\n return 0;\n};\n\nconst areFiltersEquivalent = (firstFilter: GridFilterItem, secondFilter: GridFilterItem): boolean => {\n return (\n firstFilter.columnField === secondFilter.columnField &&\n firstFilter.operatorValue === secondFilter.operatorValue &&\n firstFilter.value === secondFilter.value\n );\n};\n\nexport const areFilterModelsEquivalent = (\n filterModel: GridFilterModel,\n filterModelToMatch: GridFilterModel\n): boolean => {\n const { items, linkOperator } = filterModel;\n const { items: itemsToMatch, linkOperator: linkOperatorToMatch } = filterModelToMatch;\n\n if (linkOperator !== linkOperatorToMatch) {\n return false;\n }\n\n if (items.length !== itemsToMatch.length) {\n return false;\n }\n\n items.sort(compareFilters);\n itemsToMatch.sort(compareFilters);\n\n for (let i = 0; i < items.length; i++) {\n const filter = items[i];\n const filterToCompare = itemsToMatch[i];\n\n // compareFilters return 0 if and only if the filters have the same\n // columnField, operatorValue, and value\n if (!areFiltersEquivalent(filter, filterToCompare)) {\n return false;\n }\n }\n\n return true;\n};\n","// Get and Set data from LocalStorage WITHOUT useState\n// Useful for when you want to get and set data without\n\nimport { useCallback } from 'react';\n\n// triggering a state update and consecutive re-render\nexport const useFetchState = (defaultValue: unknown, key: string) => {\n let stickyValue = null;\n try {\n stickyValue = window.localStorage.getItem(key);\n } catch (e) {\n console.error('StatefulDataGrid: error getting item from local storage: ', e);\n }\n let parsedValue =\n stickyValue !== null && stickyValue !== undefined && stickyValue !== 'undefined'\n ? JSON.parse(stickyValue)\n : defaultValue;\n\n // TODO: temporary workaround to avoid clashes when someone had sorting on the now-removed screenshot field (renamed to num_annotations)\n // Consider upgrading the Datagrid component library as the exception handling was added in this PR: https://github.com/mui-org/material-ui-x/pull/3224\n if (parsedValue instanceof Array) {\n const fields = (parsedValue || []).map((item) => item.field);\n if (fields.includes('screenshot') || fields.includes('diffs')) {\n parsedValue = defaultValue;\n }\n }\n\n const updateValue = useCallback(\n (value: unknown) => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (e) {\n console.error('StatefulDataGrid: error setting item into local storage: ', e);\n }\n },\n [key]\n );\n\n return [parsedValue, updateValue];\n};\n","import {\n buildStorageKey,\n DIMENSION_MODEL_KEY,\n FILTER_SEARCH_KEY,\n PAGINATION_MODEL_KEY,\n PINNED_COLUMNS,\n SORT_MODEL_KEY,\n VISIBILITY_MODEL_KEY,\n} from '../utils/localStorage';\nimport { useFetchState } from './useFetchState';\n\nexport const useTableStates = (id: string, version: number) => {\n const [paginationModel, setPaginationModel] = useFetchState(\n '',\n buildStorageKey({ id, version, category: PAGINATION_MODEL_KEY })\n );\n\n const [sortModel, setSortModel] = useFetchState('', buildStorageKey({ id, version, category: SORT_MODEL_KEY }));\n\n const [localStorageFilters, setLocalStorageFilters] = useFetchState(\n '',\n buildStorageKey({ id, version, category: FILTER_SEARCH_KEY })\n );\n\n const [visibilityModelLocalStorage, setVisibilityModelLocalStorage] = useFetchState(\n '',\n buildStorageKey({ id, version, category: VISIBILITY_MODEL_KEY })\n );\n\n const [pinnedColumns, setPinnedColumns] = useFetchState(\n '_pinnedColumnsLeft=[]&_pinnedColumnsRight=[]',\n buildStorageKey({ id, version, category: PINNED_COLUMNS })\n );\n\n const [dimensionModel, setDimensionModel] = useFetchState(\n {},\n buildStorageKey({ id, version, category: DIMENSION_MODEL_KEY })\n );\n\n return {\n paginationModel,\n setPaginationModel,\n sortModel,\n setSortModel,\n localStorageFilters,\n setLocalStorageFilters,\n visibilityModelLocalStorage,\n setVisibilityModelLocalStorage,\n pinnedColumns,\n setPinnedColumns,\n dimensionModel,\n setDimensionModel,\n };\n};\n","import { useCallback, useEffect, useMemo } from 'react';\nimport { useTableStates } from './useTableStates';\nimport {\n GridCallbackDetails,\n GridColDef,\n GridColumnResizeParams,\n GridFilterItem,\n GridFilterModel,\n GridPinnedColumns,\n GridSortModel,\n} from '@mui/x-data-grid-pro';\nimport { clearPreviousVersionStorage } from '../utils/localStorage';\nimport { getModelsParsedOrUpdateLocalStorage, updateUrl } from '../utils/urlLocalStorageSync';\nimport { GridApiPro } from '@mui/x-data-grid-pro/models/gridApiPro';\nimport { StatefulDataGridProps } from '../components/StatefulDataGrid';\nimport { DataGridProps } from '../components/DataGrid';\n\nexport interface UseStatefulTableProps\n extends Pick<\n StatefulDataGridProps,\n | 'columns'\n | 'onColumnVisibilityModelChange'\n | 'onColumnWidthChange'\n | 'onFilterModelChange'\n | 'onPageChange'\n | 'onPageSizeChange'\n | 'onPinnedColumnsChange'\n | 'onSortModelChange'\n | 'useRouter'\n | 'localStorageVersion'\n | 'previousLocalStorageVersions'\n | 'initialState'\n >,\n Required<Pick<StatefulDataGridProps, 'apiRef'>> {\n // density?: GridDensity;\n}\n\nexport interface ExtendedGridFilterItem extends GridFilterItem {\n type?: string;\n}\n\nexport interface ExtendedGridFilterModel extends GridFilterModel {\n quickFilterValues?: string[];\n}\n\nexport interface ExtendedGridPaginationModel {\n page: number;\n pageSize: number;\n direction?: 'next' | 'back';\n}\n\nexport interface ExtendedGridApiPro extends GridApiPro {\n resetPage?: () => void;\n}\n\nexport interface UseStatefulTableReponse extends DataGridProps {}\n\nexport const useStatefulTable = (props: UseStatefulTableProps): UseStatefulTableReponse => {\n const {\n // density = 'standard',\n apiRef,\n initialState,\n columns: propsColumns,\n onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,\n onColumnWidthChange: propsOnColumnWidthChange,\n onFilterModelChange: propsOnFilterModelChange,\n onPageChange: propsOnPageChange,\n onPageSizeChange: propsOnPageSizeChange,\n onPinnedColumnsChange: propsOnPinnedColumnsChange,\n onSortModelChange: propsOnSortModelChange,\n useRouter,\n localStorageVersion = 1,\n previousLocalStorageVersions = [],\n } = props;\n\n const { search, pathname, historyReplace } = useRouter();\n\n const id = pathname;\n\n // States and setters persisted in the local storage for this table\n const {\n paginationModel,\n setPaginationModel,\n sortModel,\n setSortModel,\n localStorageFilters,\n setLocalStorageFilters,\n visibilityModelLocalStorage,\n setVisibilityModelLocalStorage,\n pinnedColumns,\n setPinnedColumns,\n dimensionModel,\n setDimensionModel,\n } = useTableStates(id, localStorageVersion);\n\n // clearing up old version keys\n useEffect(() => clearPreviousVersionStorage(id, previousLocalStorageVersions), [id, previousLocalStorageVersions]);\n\n const onColumnDimensionChange = useCallback(\n ({\n newWidth,\n field,\n }: {\n newWidth: GridColumnResizeParams['width'];\n field: GridColumnResizeParams['colDef']['field'];\n }) => {\n setDimensionModel({ ...dimensionModel, [field]: newWidth });\n },\n [dimensionModel, setDimensionModel]\n );\n\n const {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnVisibilityModel: visibilityModel,\n pinnedColumnsModel,\n } = getModelsParsedOrUpdateLocalStorage(\n search || '',\n localStorageVersion,\n propsColumns,\n historyReplace,\n initialState,\n {\n localStorageFilters,\n setLocalStorageFilters,\n localStorageSorting: sortModel,\n setLocalStorageSorting: setSortModel,\n localStoragePagination: paginationModel,\n setLocalStoragePagination: setPaginationModel,\n localStorageColumnsVisibility: visibilityModelLocalStorage,\n setLocalStorageColumnsVisibility: setVisibilityModelLocalStorage,\n localStoragePinnedColumns: pinnedColumns,\n setLocalStoragePinnedColumns: setPinnedColumns,\n }\n );\n\n const columns = useMemo(\n () =>\n propsColumns.map((column: GridColDef) => {\n column.width = dimensionModel[column.field] || column.width || 100;\n return column;\n }),\n [propsColumns, dimensionModel]\n );\n\n /** Add resetPage method to apiRef. */\n (apiRef.current as ExtendedGridApiPro).resetPage = () => {\n apiRef.current.setPage(0);\n };\n\n return {\n apiRef,\n columns,\n onFilterModelChange: (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\n const filterModel: GridFilterModel = {\n ...model,\n items: model.items.map((item) => {\n const column = apiRef.current.getColumn(item.columnField);\n (item as ExtendedGridFilterItem).type = column.type || 'string';\n return item;\n }),\n quickFilterValues: model.quickFilterValues || [],\n };\n propsOnFilterModelChange?.(filterModel, details);\n updateUrl(\n {\n filterModel: filterModel,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n filterModel: filterParsed,\n onSortModelChange: (model: GridSortModel, details: GridCallbackDetails) => {\n propsOnSortModelChange?.(model, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: model,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n sortModel: sortModelParsed,\n onPinnedColumnsChange: (pinnedColumns: GridPinnedColumns, details: GridCallbackDetails) => {\n propsOnPinnedColumnsChange?.(pinnedColumns, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumns,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n pinnedColumns: pinnedColumnsModel,\n page: paginationModelParsed.page,\n pageSize: paginationModelParsed.pageSize,\n onPageChange: (page, details) => {\n const direction = paginationModelParsed.page < page ? 'next' : 'back';\n propsOnPageChange?.(page, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: {\n page,\n pageSize: paginationModelParsed.pageSize,\n direction,\n } as ExtendedGridPaginationModel,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n onPageSizeChange: (pageSize, details) => {\n propsOnPageSizeChange?.(pageSize, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: {\n page: paginationModelParsed.page,\n pageSize,\n direction: paginationModelParsed.direction,\n } as ExtendedGridPaginationModel,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n columnVisibilityModel: visibilityModel,\n onColumnVisibilityModelChange: (columnsVisibilityModel, details) => {\n propsOnColumnVisibilityModelChange?.(columnsVisibilityModel, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: columnsVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n onColumnWidthChange: (params, event, details) => {\n propsOnColumnWidthChange?.(params, event, details);\n onColumnDimensionChange({ newWidth: params.width, field: params.colDef.field });\n },\n };\n};\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef, useState } from 'react';\nimport { ThemeProvider as MuiThemeProvider, createTheme } from '@mui/material/styles';\nimport classNames from 'classnames';\nimport { LicenseInfo } from '@mui/x-license-pro';\nimport {\n Comp,\n RedsiftColorBlueN,\n RedsiftColorNeutralWhite,\n RedsiftColorNeutralXDarkGrey,\n ThemeProvider,\n useTheme,\n} from '@redsift/design-system';\nimport {\n DataGridPro,\n GridCallbackDetails,\n gridFilteredSortedRowEntriesSelector,\n gridFilteredSortedRowIdsSelector,\n gridPaginatedVisibleSortedGridRowEntriesSelector,\n gridPaginatedVisibleSortedGridRowIdsSelector,\n GridRowParams,\n GridSelectionModel,\n useGridApiRef,\n} from '@mui/x-data-grid-pro';\n\nimport { StyledDataGrid } from '../DataGrid/styles';\nimport { SelectionStatus } from '../DataGrid/types';\nimport { Toolbar as DefaultToolbar } from '../Toolbar';\nimport { BaseIcon, BaseButton, BaseCheckbox, BasePopper } from '../BaseComponents';\nimport { ToolbarWrapper } from '../ToolbarWrapper';\nimport { onServerSideSelectionStatusChange, ServerSideControlledPagination, ControlledPagination } from '../Pagination';\n\nimport { useStatefulTable } from '../../hooks/useStatefulTable';\nimport { StatefulDataGridProps } from './types';\nimport { customColumnTypes } from '../../utils/columnTypes';\nimport { useControlledDatagridState } from '../../hooks/useControlledDatagridState';\n\nconst COMPONENT_NAME = 'DataGrid';\nconst CLASSNAME = 'redsift-datagrid';\n\nexport const StatefulDataGrid: Comp<StatefulDataGridProps, HTMLDivElement> = forwardRef((props, ref) => {\n const datagridRef = ref || useRef<HTMLDivElement>();\n\n const {\n apiRef: propsApiRef,\n autoHeight,\n className,\n columns,\n columnTypes: propsColumnTypes,\n components,\n componentsProps,\n filterModel: propsFilterModel,\n columnVisibilityModel: propsColumnVisibilityModel,\n pinnedColumns: propsPinnedColumns,\n sortModel: propsSortModel,\n page: propsPage,\n pageSize: propsPageSize,\n height: propsHeight,\n hideToolbar,\n initialState,\n isRowSelectable,\n license = process.env.MUI_LICENSE_KEY,\n localStorageVersion,\n previousLocalStorageVersions,\n onFilterModelChange: propsOnFilterModelChange,\n selectionModel: propsSelectionModel,\n onColumnWidthChange: propsOnColumnWidthChange,\n onPageChange: propsOnPageChange,\n onPageSizeChange: propsOnPageSizeChange,\n onSelectionModelChange: propsOnSelectionModelChange,\n onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,\n onPinnedColumnsChange: propsOnPinnedColumnsChange,\n onSortModelChange: propsOnSortModelChange,\n pagination,\n paginationPlacement = 'both',\n paginationProps,\n rows,\n rowsPerPageOptions,\n sx,\n theme: propsTheme,\n useRouter,\n paginationMode = 'client',\n rowCount,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const _apiRef = useGridApiRef();\n const apiRef = propsApiRef ?? _apiRef;\n const RenderedToolbar = components?.Toolbar ? components.Toolbar : DefaultToolbar;\n\n LicenseInfo.setLicenseKey(license!);\n\n const height = propsHeight ?? (autoHeight ? undefined : '500px');\n\n const {\n onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,\n onFilterModelChange: controlledOnFilterModelChange,\n onPageChange: controlledOnPageChange,\n onPageSizeChange: controlledOnPageSizeChange,\n onPinnedColumnsChange: controlledOnPinnedColumnsChange,\n onSortModelChange: controlledOnSortModelChange,\n } = useControlledDatagridState({\n initialState,\n rowsPerPageOptions,\n propsColumnVisibilityModel,\n propsFilterModel,\n propsOnColumnVisibilityModelChange,\n propsOnFilterModelChange,\n propsOnPinnedColumnsChange,\n propsOnSortModelChange,\n propsPage,\n propsPageSize,\n propsPinnedColumns,\n propsSortModel,\n propsOnPageChange,\n propsOnPageSizeChange,\n });\n\n const {\n columnVisibilityModel,\n filterModel,\n onColumnVisibilityModelChange,\n onFilterModelChange,\n onPageChange,\n onPageSizeChange,\n onPinnedColumnsChange,\n onSortModelChange,\n page,\n pageSize,\n pinnedColumns,\n sortModel,\n onColumnWidthChange,\n } = useStatefulTable({\n apiRef: apiRef!,\n initialState,\n columns,\n onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,\n onColumnWidthChange: propsOnColumnWidthChange,\n onFilterModelChange: controlledOnFilterModelChange,\n onPageChange: controlledOnPageChange,\n onPageSizeChange: controlledOnPageSizeChange,\n onPinnedColumnsChange: controlledOnPinnedColumnsChange,\n onSortModelChange: controlledOnSortModelChange,\n useRouter: useRouter!,\n localStorageVersion,\n previousLocalStorageVersions,\n });\n\n const [selectionModel, setSelectionModel] = useState(propsSelectionModel ?? []);\n useEffect(() => {\n setSelectionModel(propsSelectionModel ?? []);\n }, [propsSelectionModel]);\n\n const onSelectionModelChange = (selectionModel: GridSelectionModel, details: GridCallbackDetails) => {\n if (propsOnSelectionModelChange) {\n propsOnSelectionModelChange(selectionModel, details);\n } else {\n setSelectionModel(selectionModel);\n }\n };\n\n const selectionStatus = useRef<SelectionStatus>({\n type: 'none',\n numberOfSelectedRows: 0,\n numberOfSelectedRowsInPage: 0,\n page,\n pageSize: pageSize,\n });\n\n // in server-side pagination we want to update the selection status\n // every time we navigate between pages, resize our page or select something\n useEffect(() => {\n if (paginationMode == 'server') {\n onServerSideSelectionStatusChange(\n Array.isArray(selectionModel) ? selectionModel : [selectionModel],\n apiRef,\n selectionStatus,\n isRowSelectable,\n page!,\n pageSize!\n );\n }\n }, [selectionModel, page, pageSize]);\n\n if (!Array.isArray(rows)) {\n return null;\n }\n\n const muiTheme = useMemo(\n () =>\n createTheme({\n palette: {\n mode: theme,\n primary: { main: RedsiftColorBlueN },\n background: {\n default: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite,\n paper: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite,\n },\n },\n }),\n [theme]\n );\n\n return (\n <ThemeProvider value={{ theme }}>\n <MuiThemeProvider theme={muiTheme}>\n {/* <pre>{JSON.stringify(selectionStatus, null, 2)}</pre> */}\n <StyledDataGrid\n ref={datagridRef as RefObject<HTMLDivElement>}\n className={classNames(StatefulDataGrid.className, className)}\n $height={height}\n >\n <DataGridPro\n {...forwardedProps}\n apiRef={apiRef}\n columns={columns}\n columnVisibilityModel={columnVisibilityModel}\n filterModel={filterModel}\n onColumnVisibilityModelChange={onColumnVisibilityModelChange}\n onFilterModelChange={onFilterModelChange}\n onPageChange={onPageChange}\n onPageSizeChange={onPageSizeChange}\n onPinnedColumnsChange={onPinnedColumnsChange}\n onSortModelChange={onSortModelChange}\n page={page}\n pageSize={pageSize}\n pinnedColumns={pinnedColumns}\n sortModel={sortModel}\n rowsPerPageOptions={rowsPerPageOptions}\n onColumnWidthChange={onColumnWidthChange}\n initialState={initialState}\n isRowSelectable={isRowSelectable}\n pagination={pagination}\n paginationMode={paginationMode}\n keepNonExistentRowsSelected={paginationMode == 'server'}\n rows={rows}\n rowCount={rowCount!}\n autoHeight={autoHeight}\n checkboxSelectionVisibleOnly={Boolean(pagination)}\n columnTypes={{ ...customColumnTypes, ...propsColumnTypes }}\n components={{\n BaseButton,\n BaseCheckbox,\n // BaseTextField,\n BasePopper,\n ColumnFilteredIcon: (props) => <BaseIcon {...props} displayName=\"ColumnFilteredIcon\" />,\n ColumnSelectorIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSelectorIcon\" />,\n ColumnSortedAscendingIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSortedAscendingIcon\" />,\n ColumnSortedDescendingIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSortedDescendingIcon\" />,\n DensityCompactIcon: (props) => <BaseIcon {...props} displayName=\"DensityCompactIcon\" />,\n DensityStandardIcon: (props) => <BaseIcon {...props} displayName=\"DensityStandardIcon\" />,\n DensityComfortableIcon: (props) => <BaseIcon {...props} displayName=\"DensityComfortableIcon\" />,\n DetailPanelCollapseIcon: (props) => <BaseIcon {...props} displayName=\"DetailPanelCollapseIcon\" />,\n DetailPanelExpandIcon: (props) => <BaseIcon {...props} displayName=\"DetailPanelExpandIcon\" />,\n ExportIcon: (props) => <BaseIcon {...props} displayName=\"ExportIcon\" />,\n OpenFilterButtonIcon: (props) => <BaseIcon displayName=\"OpenFilterButtonIcon\" {...props} />,\n ...components,\n Toolbar: ToolbarWrapper,\n Pagination: (props) => {\n return pagination ? (\n paginationMode == 'server' ? (\n <ServerSideControlledPagination\n {...props}\n displaySelection={false}\n displayRowsPerPage={['bottom', 'both'].includes(paginationPlacement!)}\n displayPagination={['bottom', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n page={page}\n pageSize={pageSize}\n onPageChange={onPageChange}\n onPageSizeChange={onPageSizeChange}\n rowsPerPageOptions={rowsPerPageOptions as any as number[]}\n paginationProps={paginationProps}\n paginationMode={paginationMode}\n rowCount={rowCount!}\n />\n ) : (\n <ControlledPagination\n {...props}\n displaySelection={false}\n displayRowsPerPage={['bottom', 'both'].includes(paginationPlacement!)}\n displayPagination={['bottom', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n apiRef={apiRef}\n isRowSelectable={isRowSelectable}\n page={page}\n pageSize={pageSize}\n onPageChange={onPageChange}\n onPageSizeChange={onPageSizeChange}\n rowsPerPageOptions={rowsPerPageOptions as any as number[]}\n paginationProps={paginationProps}\n paginationMode={paginationMode}\n />\n )\n ) : null;\n },\n }}\n componentsProps={{\n ...componentsProps,\n toolbar: {\n hideToolbar,\n RenderedToolbar,\n filterModel,\n onFilterModelChange,\n pagination,\n paginationPlacement,\n selectionStatus,\n apiRef,\n isRowSelectable,\n page,\n pageSize,\n onPageChange,\n onPageSizeChange,\n rowsPerPageOptions,\n paginationProps,\n paginationMode,\n rowCount,\n ...componentsProps?.toolbar,\n },\n }}\n selectionModel={selectionModel}\n onSelectionModelChange={(newSelectionModel, details) => {\n if (pagination && paginationMode != 'server') {\n const selectableRowsInPage = isRowSelectable\n ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef)\n .filter(({ model }) => isRowSelectable({ row: model } as GridRowParams))\n .map(({ id }) => id)\n : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);\n const numberOfSelectableRowsInPage = selectableRowsInPage.length;\n\n const selectableRowsInTable = isRowSelectable\n ? gridFilteredSortedRowEntriesSelector(apiRef)\n .filter(({ model }) => isRowSelectable({ row: model } as GridRowParams))\n .map(({ id }) => id)\n : gridFilteredSortedRowIdsSelector(apiRef);\n const numberOfSelectableRowsInTable = selectableRowsInTable.length;\n\n const numberOfSelectedRows = newSelectionModel.length;\n\n if (\n (selectionStatus.current.type === 'table' &&\n numberOfSelectedRows === numberOfSelectableRowsInTable - numberOfSelectableRowsInPage) ||\n (selectionStatus.current.type === 'table' &&\n numberOfSelectedRows === numberOfSelectableRowsInTable) ||\n (selectionStatus.current.type === 'page' && numberOfSelectedRows === numberOfSelectableRowsInPage)\n ) {\n setTimeout(() => {\n apiRef.current.selectRows([], true, true);\n }, 0);\n }\n\n if (\n numberOfSelectedRows === numberOfSelectableRowsInPage &&\n numberOfSelectableRowsInPage < numberOfSelectableRowsInTable\n ) {\n selectionStatus.current = {\n type: 'page',\n numberOfSelectedRows,\n };\n } else if (\n numberOfSelectedRows === numberOfSelectableRowsInTable &&\n numberOfSelectableRowsInPage < numberOfSelectableRowsInTable\n ) {\n selectionStatus.current = {\n type: 'table',\n numberOfSelectedRows,\n };\n } else if (numberOfSelectedRows > 0) {\n selectionStatus.current = {\n type: 'other',\n numberOfSelectedRows,\n };\n } else {\n selectionStatus.current = {\n type: 'none',\n numberOfSelectedRows,\n };\n }\n }\n onSelectionModelChange?.(newSelectionModel, details);\n }}\n sx={{\n ...sx,\n '.MuiDataGrid-columnHeaders': {\n flexDirection: 'column',\n alignItems: 'normal',\n },\n '.MuiDataGrid-selectedRowCount': {\n margin: 'none',\n },\n }}\n />\n </StyledDataGrid>\n </MuiThemeProvider>\n </ThemeProvider>\n );\n});\nStatefulDataGrid.className = CLASSNAME;\nStatefulDataGrid.displayName = COMPONENT_NAME;\n"],"names":["PAGINATION_MODEL_KEY","FILTER_MODEL_KEY","SORT_MODEL_KEY","VISIBILITY_MODEL_KEY","PINNED_COLUMNS","DIMENSION_MODEL_KEY","FILTER_SEARCH_KEY","CATEGORIES","buildStorageKey","_ref","id","version","category","clearPreviousVersionStorage","previousLocalStorageVersions","keysToDelete","keyToDelete","window","localStorage","removeItem","e","DECODER","ENCODER","decodeValue","value","re","RegExp","Object","keys","reduce","acc","curr","startsWith","arrayValues","split","arrayList","map","v","replace","encoded","filter","item","length","encodeValue","Array","isArray","encodedArray","entry","String","join","castedValue","urlSearchParamsToString","searchParams","searchString","key","slice","numberOperatorEncoder","numberOperatorDecoder","eq","ne","gt","gte","lt","lte","isOperatorValueValid","columnField","operatorValue","columns","column","find","field","columnType","type","operators","operatorList","filterOperators","op","includes","listOperators","isValueValid","_column$type","undefined","isNaN","Number","dateSplitted","YYYY","MM","DD","parseInt","getFilterModelFromString","linkOperator","GridLinkOperator","And","quickFilterValues","URLSearchParams","set","JSON","parse","decodeURIComponent","fields","isInvalid","items","forEach","_columns$find","left","splitRight","operator","decodedValue","push","getSearchParamsFromFilterModel","filterModel","_filterModel$quickFil","encodeURIComponent","stringify","getFilterModel","search","localStorageFilters","setLocalStorageFilters","initialState","isNewVersion","defaultValue","filterModelFromSearch","searchFromFilterModel","filterModelFromLocalStorage","getSortingFromString","get","order","sort","getSearchParamsFromSorting","sorting","getSortModel","localStorageSorting","setLocalStorageSorting","_initialState$sorting","sortModel","searchFromSortModel","sortModelFromLocalStorage","getPaginationFromString","pagination","page","parseFloat","pageSize","direction","getSearchParamsFromPagination","getPaginationModel","localStoragePagination","setLocalStoragePagination","_objectSpread","searchFromPaginationModel","paginationModelFromLocalStorage","getSearchParamsFromColumnVisibility","columnVisibility","columnFields","finalColumnVisibility","c","_c$hideable","hideable","colName","visibleColumns","entries","_","visible","_ref2","getColumnVisibilityFromString","notParsed","tableColumns","parsed","visibility","exist","visibleColumnsCount","fieldURL","encodedValues","isColumnVisible","getColumnsVisibility","localStorageColumnsVisibility","setLocalStorageColumnsVisibility","_initialState$columns3","_initialState$columns","_initialState$columns2","columnVisibilityModel","defaultHidden","searchColumnVisibility","toString","columnVisibilityFromLocalStorage","getPinnedColumnsFromString","pinnedColumns","val","right","getSearchParamsFromPinnedColumns","_pinnedColumns$left","_pinnedColumns$right","pinnedColumnLeft","pinnedColumnRight","getPinnedColumns","localStoragePinnedColumns","setLocalStoragePinnedColumns","searchPinnedColumns","pinnedColumnsFromLocalStorage","getSearchParamsFromTab","openTab","getFinalSearch","_ref3","localStorageVersion","paginationModel","columnsVisibilityModel","pinnedColumnsModel","filterModelSearch","sortModelSearch","paginationModelSearch","columnVisibilityModelSearch","pinnedColumnsModelSearch","tabSearch","getModelsParsedOrUpdateLocalStorage","historyReplace","currentVersion","finalSearch","updateUrl","_ref4","columnsModel","newSearch","compareFilters","firstFilter","secondFilter","areFiltersEquivalent","areFilterModelsEquivalent","filterModelToMatch","itemsToMatch","linkOperatorToMatch","i","filterToCompare","useFetchState","stickyValue","getItem","console","error","parsedValue","updateValue","useCallback","setItem","useTableStates","setPaginationModel","setSortModel","visibilityModelLocalStorage","setVisibilityModelLocalStorage","setPinnedColumns","dimensionModel","setDimensionModel","useStatefulTable","props","apiRef","propsColumns","onColumnVisibilityModelChange","propsOnColumnVisibilityModelChange","onColumnWidthChange","propsOnColumnWidthChange","onFilterModelChange","propsOnFilterModelChange","onPageChange","propsOnPageChange","onPageSizeChange","propsOnPageSizeChange","onPinnedColumnsChange","propsOnPinnedColumnsChange","onSortModelChange","propsOnSortModelChange","useRouter","pathname","useEffect","onColumnDimensionChange","newWidth","filterParsed","sortModelParsed","paginationModelParsed","visibilityModel","useMemo","width","current","resetPage","setPage","model","details","getColumn","state","params","event","colDef","COMPONENT_NAME","CLASSNAME","StatefulDataGrid","forwardRef","ref","datagridRef","useRef","propsApiRef","autoHeight","className","columnTypes","propsColumnTypes","components","componentsProps","propsFilterModel","propsColumnVisibilityModel","propsPinnedColumns","propsSortModel","propsPage","propsPageSize","height","propsHeight","hideToolbar","isRowSelectable","license","process","env","MUI_LICENSE_KEY","selectionModel","propsSelectionModel","onSelectionModelChange","propsOnSelectionModelChange","paginationPlacement","paginationProps","rows","rowsPerPageOptions","sx","theme","propsTheme","paginationMode","rowCount","forwardedProps","_objectWithoutProperties","_excluded","useTheme","_apiRef","useGridApiRef","RenderedToolbar","Toolbar","DefaultToolbar","LicenseInfo","setLicenseKey","controlledOnColumnVisibilityModelChange","controlledOnFilterModelChange","controlledOnPageChange","controlledOnPageSizeChange","controlledOnPinnedColumnsChange","controlledOnSortModelChange","useControlledDatagridState","setSelectionModel","useState","selectionStatus","numberOfSelectedRows","numberOfSelectedRowsInPage","onServerSideSelectionStatusChange","muiTheme","createTheme","palette","mode","primary","main","RedsiftColorBlueN","background","default","RedsiftColorNeutralXDarkGrey","RedsiftColorNeutralWhite","paper","React","createElement","ThemeProvider","MuiThemeProvider","StyledDataGrid","classNames","$height","DataGridPro","_extends","keepNonExistentRowsSelected","checkboxSelectionVisibleOnly","Boolean","customColumnTypes","BaseButton","BaseCheckbox","BasePopper","ColumnFilteredIcon","BaseIcon","displayName","ColumnSelectorIcon","ColumnSortedAscendingIcon","ColumnSortedDescendingIcon","DensityCompactIcon","DensityStandardIcon","DensityComfortableIcon","DetailPanelCollapseIcon","DetailPanelExpandIcon","ExportIcon","OpenFilterButtonIcon","ToolbarWrapper","Pagination","ServerSideControlledPagination","displaySelection","displayRowsPerPage","displayPagination","ControlledPagination","toolbar","newSelectionModel","selectableRowsInPage","gridPaginatedVisibleSortedGridRowEntriesSelector","row","gridPaginatedVisibleSortedGridRowIdsSelector","numberOfSelectableRowsInPage","selectableRowsInTable","gridFilteredSortedRowEntriesSelector","gridFilteredSortedRowIdsSelector","numberOfSelectableRowsInTable","setTimeout","selectRows","flexDirection","alignItems","margin"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { T as TextCell } from './TextCell2.js';
2
- //# sourceMappingURL=TextCell.js.map
@@ -1 +0,0 @@
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,2 +0,0 @@
1
- export { T as Toolbar } from './Toolbar2.js';
2
- //# sourceMappingURL=Toolbar.js.map
@@ -1 +0,0 @@
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 gridVisibleSortedRowIdsSelector,\n GridCsvGetRowsToExportParams,\n GridToolbarQuickFilter,\n} from '@mui/x-data-grid-pro';\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 className={\n filterButtonProps?.className ? `${filterButtonProps?.className} redsift-condensed` : 'redsift-condensed'\n }\n />\n ) : null}\n {hasColumnsButton ? (\n <GridToolbarColumnsButton\n {...columnsButtonProps}\n ref={columnsButtonRef}\n className={\n filterButtonProps?.className ? `${filterButtonProps?.className} redsift-condensed` : 'redsift-condensed'\n }\n />\n ) : null}\n {hasDensityButton ? (\n <GridToolbarDensitySelector\n {...densityButtonProps}\n ref={densityButtonRef}\n className={\n filterButtonProps?.className ? `${filterButtonProps?.className} redsift-condensed` : 'redsift-condensed'\n }\n />\n ) : null}\n {hasExportButton ? (\n <GridToolbarExport\n csvOptions={{\n allColumns: true,\n fileName: 'csv',\n getRowsToExport: ({ apiRef }: GridCsvGetRowsToExportParams) => gridVisibleSortedRowIdsSelector(apiRef),\n }}\n printOptions={{\n disableToolbarButton: true,\n }}\n {...exportButtonProps}\n ref={exportButtonRef}\n className={\n filterButtonProps?.className ? `${filterButtonProps?.className} redsift-condensed` : 'redsift-condensed'\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","hasExportButton","exportButtonProps","exportButtonRef","hasFilterButton","filterButtonProps","filterButtonRef","hasColumnsButton","columnsButtonProps","columnsButtonRef","hasDensityButton","densityButtonProps","densityButtonRef","onFilterModelChange","semanticFilterProps","undefined","showQuickFilter","React","createElement","GridToolbarContainer","Flexbox","gap","GridToolbarFilterButton","_extends","ref","className","GridToolbarColumnsButton","GridToolbarDensitySelector","GridToolbarExport","csvOptions","allColumns","fileName","getRowsToExport","_ref","apiRef","gridVisibleSortedRowIdsSelector","printOptions","disableToolbarButton","marginLeft","GridToolbarQuickFilter","flexGrow","GridToolbarFilterSemanticField"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { T as ToolbarWrapper } from './ToolbarWrapper2.js';
2
- //# sourceMappingURL=ToolbarWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolbarWrapper2.js","sources":["../../src/components/ToolbarWrapper/ToolbarWrapper.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DataGridProps, SelectionStatus } from '../DataGrid/types';\nimport { ServerSideControlledPagination } from '../Pagination/ServerSideControlledPagination';\nimport { ControlledPagination } from '../Pagination/ControlledPagination';\n\nexport type ToolbarWrapperProps = {\n hideToolbar: DataGridProps['hideToolbar'];\n RenderedToolbar: React.JSXElementConstructor<any>;\n filterModel: DataGridProps['filterModel'];\n onFilterModelChange: DataGridProps['onFilterModelChange'];\n pagination: DataGridProps['pagination'];\n paginationPlacement: DataGridProps['paginationPlacement'];\n selectionStatus: React.MutableRefObject<SelectionStatus>;\n apiRef: DataGridProps['apiRef'];\n isRowSelectable: DataGridProps['isRowSelectable'];\n page: DataGridProps['page'];\n onPageChange: DataGridProps['onPageChange'];\n pageSize: DataGridProps['pageSize'];\n onPageSizeChange: DataGridProps['onPageSizeChange'];\n rowsPerPageOptions: DataGridProps['rowsPerPageOptions'];\n paginationProps: DataGridProps['paginationProps'];\n paginationMode?: DataGridProps['paginationMode'];\n rowCount?: DataGridProps['rowCount'];\n};\n\nexport const ToolbarWrapper: React.FC<ToolbarWrapperProps> = ({\n hideToolbar,\n RenderedToolbar,\n filterModel,\n onFilterModelChange,\n pagination,\n paginationPlacement,\n selectionStatus,\n apiRef,\n isRowSelectable,\n page,\n onPageChange,\n pageSize,\n onPageSizeChange,\n rowsPerPageOptions,\n paginationProps,\n paginationMode = 'client',\n rowCount,\n ...forwardedProps\n}) => {\n return (\n <>\n {!hideToolbar ? (\n <RenderedToolbar {...forwardedProps} filterModel={filterModel} onFilterModelChange={onFilterModelChange} />\n ) : null}\n {pagination ? (\n paginationMode == 'server' ? (\n <ServerSideControlledPagination\n displaySelection={true}\n displayRowsPerPage={false}\n displayPagination={['top', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n page={page!}\n onPageChange={onPageChange as any}\n pageSize={pageSize!}\n onPageSizeChange={onPageSizeChange as any}\n rowsPerPageOptions={rowsPerPageOptions}\n paginationProps={paginationProps}\n rowCount={rowCount!}\n />\n ) : (\n <ControlledPagination\n displaySelection={true}\n displayRowsPerPage={false}\n displayPagination={['top', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n apiRef={apiRef!}\n isRowSelectable={isRowSelectable}\n page={page!}\n onPageChange={onPageChange as any}\n pageSize={pageSize!}\n onPageSizeChange={onPageSizeChange as any}\n rowsPerPageOptions={rowsPerPageOptions}\n paginationProps={paginationProps}\n />\n )\n ) : null}\n </>\n );\n};\n"],"names":["ToolbarWrapper","_ref","hideToolbar","RenderedToolbar","filterModel","onFilterModelChange","pagination","paginationPlacement","selectionStatus","apiRef","isRowSelectable","page","onPageChange","pageSize","onPageSizeChange","rowsPerPageOptions","paginationProps","paginationMode","rowCount","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","Fragment","_extends","ServerSideControlledPagination","displaySelection","displayRowsPerPage","displayPagination","includes","current","ControlledPagination"],"mappings":";;;;;AA0BaA,MAAAA,cAA6C,GAAGC,IAAA,IAmBvD;EAAA,IAnBwD;MAC5DC,WAAW;MACXC,eAAe;MACfC,WAAW;MACXC,mBAAmB;MACnBC,UAAU;MACVC,mBAAmB;MACnBC,eAAe;MACfC,MAAM;MACNC,eAAe;MACfC,IAAI;MACJC,YAAY;MACZC,QAAQ;MACRC,gBAAgB;MAChBC,kBAAkB;MAClBC,eAAe;AACfC,MAAAA,cAAc,GAAG,QAAQ;AACzBC,MAAAA,QAAAA;AAEF,KAAC,GAAAjB,IAAA;AADIkB,IAAAA,cAAc,GAAAC,wBAAA,CAAAnB,IAAA,EAAAoB,SAAA,CAAA,CAAA;AAEjB,EAAA,oBACEC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EACG,IAAA,EAAA,CAACtB,WAAW,gBACXoB,cAAA,CAAAC,aAAA,CAACpB,eAAe,EAAAsB,QAAA,KAAKN,cAAc,EAAA;AAAEf,IAAAA,WAAW,EAAEA,WAAY;AAACC,IAAAA,mBAAmB,EAAEA,mBAAAA;AAAoB,GAAA,CAAE,CAAC,GACzG,IAAI,EACPC,UAAU,GACTW,cAAc,IAAI,QAAQ,gBACxBK,cAAA,CAAAC,aAAA,CAACG,8BAA8B,EAAA;AAC7BC,IAAAA,gBAAgB,EAAE,IAAK;AACvBC,IAAAA,kBAAkB,EAAE,KAAM;IAC1BC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACvB,mBAAoB,CAAE;IAClEC,eAAe,EAAEA,eAAe,CAACuB,OAAQ;AACzCpB,IAAAA,IAAI,EAAEA,IAAM;AACZC,IAAAA,YAAY,EAAEA,YAAoB;AAClCC,IAAAA,QAAQ,EAAEA,QAAU;AACpBC,IAAAA,gBAAgB,EAAEA,gBAAwB;AAC1CC,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,eAAe,EAAEA,eAAgB;AACjCE,IAAAA,QAAQ,EAAEA,QAAAA;AAAU,GACrB,CAAC,gBAEFI,cAAA,CAAAC,aAAA,CAACS,oBAAoB,EAAA;AACnBL,IAAAA,gBAAgB,EAAE,IAAK;AACvBC,IAAAA,kBAAkB,EAAE,KAAM;IAC1BC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACvB,mBAAoB,CAAE;IAClEC,eAAe,EAAEA,eAAe,CAACuB,OAAQ;AACzCtB,IAAAA,MAAM,EAAEA,MAAQ;AAChBC,IAAAA,eAAe,EAAEA,eAAgB;AACjCC,IAAAA,IAAI,EAAEA,IAAM;AACZC,IAAAA,YAAY,EAAEA,YAAoB;AAClCC,IAAAA,QAAQ,EAAEA,QAAU;AACpBC,IAAAA,gBAAgB,EAAEA,gBAAwB;AAC1CC,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,eAAe,EAAEA,eAAAA;GAClB,CACF,GACC,IACJ,CAAC,CAAA;AAEP;;;;"}