@redsift/table 11.6.0-muiv5-alpha.9 → 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
@@ -0,0 +1 @@
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;;;;"}
@@ -0,0 +1,109 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ const useControlledDatagridState = _ref => {
4
+ var _initialState$paginat, _initialState$paginat2;
5
+ let {
6
+ initialState,
7
+ rowsPerPageOptions,
8
+ propsColumnVisibilityModel,
9
+ propsFilterModel,
10
+ propsOnColumnVisibilityModelChange,
11
+ propsOnFilterModelChange,
12
+ propsOnPageChange,
13
+ propsOnPageSizeChange,
14
+ propsOnPinnedColumnsChange,
15
+ propsOnSortModelChange,
16
+ propsPage,
17
+ propsPageSize,
18
+ propsPinnedColumns,
19
+ propsSortModel
20
+ } = _ref;
21
+ const [filterModel, setFilterModel] = useState(propsFilterModel);
22
+ useEffect(() => {
23
+ setFilterModel(propsFilterModel);
24
+ }, [propsFilterModel]);
25
+ const onFilterModelChange = (model, details) => {
26
+ if (propsOnFilterModelChange) {
27
+ propsOnFilterModelChange(model, details);
28
+ } else {
29
+ setFilterModel(model);
30
+ }
31
+ };
32
+ const [columnVisibilityModel, setColumnVisibilityModel] = useState(propsColumnVisibilityModel);
33
+ useEffect(() => {
34
+ setColumnVisibilityModel(propsColumnVisibilityModel);
35
+ }, [propsColumnVisibilityModel]);
36
+ const onColumnVisibilityModelChange = (model, details) => {
37
+ if (propsOnColumnVisibilityModelChange) {
38
+ propsOnColumnVisibilityModelChange(model, details);
39
+ } else {
40
+ setColumnVisibilityModel(model);
41
+ }
42
+ };
43
+ const [pinnedColumns, setPinnedColumns] = useState(propsPinnedColumns);
44
+ useEffect(() => {
45
+ setPinnedColumns(propsPinnedColumns);
46
+ }, [propsPinnedColumns]);
47
+ const onPinnedColumnsChange = (model, details) => {
48
+ if (propsOnPinnedColumnsChange) {
49
+ propsOnPinnedColumnsChange(model, details);
50
+ } else {
51
+ setPinnedColumns(model);
52
+ }
53
+ };
54
+ const [sortModel, setSortModel] = useState(propsSortModel);
55
+ useEffect(() => {
56
+ setSortModel(propsSortModel);
57
+ }, [propsSortModel]);
58
+ const onSortModelChange = (model, details) => {
59
+ if (propsOnSortModelChange) {
60
+ propsOnSortModelChange(model, details);
61
+ } else {
62
+ setSortModel(model);
63
+ }
64
+ };
65
+ const [page, setPage] = useState((initialState === null || initialState === void 0 ? void 0 : (_initialState$paginat = initialState.pagination) === null || _initialState$paginat === void 0 ? void 0 : _initialState$paginat.page) || propsPage || 0);
66
+ const [pageSize, setPageSize] = useState((initialState === null || initialState === void 0 ? void 0 : (_initialState$paginat2 = initialState.pagination) === null || _initialState$paginat2 === void 0 ? void 0 : _initialState$paginat2.pageSize) || propsPageSize || (rowsPerPageOptions === null || rowsPerPageOptions === void 0 ? void 0 : rowsPerPageOptions[0]) || 25);
67
+ const onPageChange = page => {
68
+ if (propsOnPageChange) {
69
+ propsOnPageChange(page, undefined);
70
+ } else {
71
+ setPage(page);
72
+ }
73
+ };
74
+ useEffect(() => {
75
+ if (propsPage || propsPage === 0) {
76
+ setPage(propsPage);
77
+ }
78
+ }, [propsPage]);
79
+ const onPageSizeChange = pageSize => {
80
+ onPageChange(0);
81
+ if (propsOnPageSizeChange) {
82
+ propsOnPageSizeChange(pageSize, undefined);
83
+ } else {
84
+ setPageSize(pageSize);
85
+ }
86
+ };
87
+ useEffect(() => {
88
+ if (propsPageSize) {
89
+ setPageSize(propsPageSize);
90
+ }
91
+ }, [propsPageSize]);
92
+ return {
93
+ filterModel,
94
+ onFilterModelChange,
95
+ columnVisibilityModel,
96
+ onColumnVisibilityModelChange,
97
+ pinnedColumns,
98
+ onPinnedColumnsChange,
99
+ sortModel,
100
+ onSortModelChange,
101
+ page,
102
+ pageSize,
103
+ onPageChange,
104
+ onPageSizeChange
105
+ };
106
+ };
107
+
108
+ export { useControlledDatagridState };
109
+ //# sourceMappingURL=useControlledDatagridState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControlledDatagridState.js","sources":["../../../../../../src/hooks/useControlledDatagridState.tsx"],"sourcesContent":["import {\n GridCallbackDetails,\n GridColumnVisibilityModel,\n GridFilterModel,\n GridPinnedColumns,\n GridSortModel,\n} from '@mui/x-data-grid-pro';\nimport { useEffect, useState } from 'react';\nimport { DataGridProps } from '../components/DataGrid';\n\nexport interface UseControlledDatagridStateProps {\n initialState: DataGridProps['initialState'];\n rowsPerPageOptions: DataGridProps['rowsPerPageOptions'];\n propsColumnVisibilityModel: DataGridProps['columnVisibilityModel'];\n propsFilterModel: DataGridProps['filterModel'];\n propsOnColumnVisibilityModelChange: DataGridProps['onColumnVisibilityModelChange'];\n propsOnFilterModelChange: DataGridProps['onFilterModelChange'];\n propsOnPageChange: DataGridProps['onPageChange'];\n propsOnPageSizeChange: DataGridProps['onPageSizeChange'];\n propsOnPinnedColumnsChange: DataGridProps['onPinnedColumnsChange'];\n propsOnSortModelChange: DataGridProps['onSortModelChange'];\n propsPage: DataGridProps['page'];\n propsPageSize: DataGridProps['pageSize'];\n propsPinnedColumns: DataGridProps['pinnedColumns'];\n propsSortModel: DataGridProps['sortModel'];\n}\n\nexport const useControlledDatagridState = ({\n initialState,\n rowsPerPageOptions,\n propsColumnVisibilityModel,\n propsFilterModel,\n propsOnColumnVisibilityModelChange,\n propsOnFilterModelChange,\n propsOnPageChange,\n propsOnPageSizeChange,\n propsOnPinnedColumnsChange,\n propsOnSortModelChange,\n propsPage,\n propsPageSize,\n propsPinnedColumns,\n propsSortModel,\n}: UseControlledDatagridStateProps) => {\n const [filterModel, setFilterModel] = useState(propsFilterModel);\n useEffect(() => {\n setFilterModel(propsFilterModel);\n }, [propsFilterModel]);\n\n const onFilterModelChange = (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\n if (propsOnFilterModelChange) {\n propsOnFilterModelChange(model, details);\n } else {\n setFilterModel(model);\n }\n };\n\n const [columnVisibilityModel, setColumnVisibilityModel] = useState(propsColumnVisibilityModel);\n useEffect(() => {\n setColumnVisibilityModel(propsColumnVisibilityModel);\n }, [propsColumnVisibilityModel]);\n\n const onColumnVisibilityModelChange = (model: GridColumnVisibilityModel, details: GridCallbackDetails<'filter'>) => {\n if (propsOnColumnVisibilityModelChange) {\n propsOnColumnVisibilityModelChange(model, details);\n } else {\n setColumnVisibilityModel(model);\n }\n };\n\n const [pinnedColumns, setPinnedColumns] = useState(propsPinnedColumns);\n useEffect(() => {\n setPinnedColumns(propsPinnedColumns);\n }, [propsPinnedColumns]);\n\n const onPinnedColumnsChange = (model: GridPinnedColumns, details: GridCallbackDetails<'filter'>) => {\n if (propsOnPinnedColumnsChange) {\n propsOnPinnedColumnsChange(model, details);\n } else {\n setPinnedColumns(model);\n }\n };\n\n const [sortModel, setSortModel] = useState(propsSortModel);\n useEffect(() => {\n setSortModel(propsSortModel);\n }, [propsSortModel]);\n\n const onSortModelChange = (model: GridSortModel, details: GridCallbackDetails<'filter'>) => {\n if (propsOnSortModelChange) {\n propsOnSortModelChange(model, details);\n } else {\n setSortModel(model);\n }\n };\n\n const [page, setPage] = useState(initialState?.pagination?.page || propsPage || 0);\n const [pageSize, setPageSize] = useState(\n initialState?.pagination?.pageSize || propsPageSize || rowsPerPageOptions?.[0] || 25\n );\n\n const onPageChange = (page: number) => {\n if (propsOnPageChange) {\n propsOnPageChange(page, undefined!);\n } else {\n setPage(page);\n }\n };\n\n useEffect(() => {\n if (propsPage || propsPage === 0) {\n setPage(propsPage);\n }\n }, [propsPage]);\n\n const onPageSizeChange = (pageSize: number) => {\n onPageChange(0);\n if (propsOnPageSizeChange) {\n propsOnPageSizeChange(pageSize, undefined!);\n } else {\n setPageSize(pageSize);\n }\n };\n\n useEffect(() => {\n if (propsPageSize) {\n setPageSize(propsPageSize);\n }\n }, [propsPageSize]);\n\n return {\n filterModel,\n onFilterModelChange,\n columnVisibilityModel,\n onColumnVisibilityModelChange,\n pinnedColumns,\n onPinnedColumnsChange,\n sortModel,\n onSortModelChange,\n page,\n pageSize,\n onPageChange,\n onPageSizeChange,\n };\n};\n"],"names":["useControlledDatagridState","_ref","_initialState$paginat","_initialState$paginat2","initialState","rowsPerPageOptions","propsColumnVisibilityModel","propsFilterModel","propsOnColumnVisibilityModelChange","propsOnFilterModelChange","propsOnPageChange","propsOnPageSizeChange","propsOnPinnedColumnsChange","propsOnSortModelChange","propsPage","propsPageSize","propsPinnedColumns","propsSortModel","filterModel","setFilterModel","useState","useEffect","onFilterModelChange","model","details","columnVisibilityModel","setColumnVisibilityModel","onColumnVisibilityModelChange","pinnedColumns","setPinnedColumns","onPinnedColumnsChange","sortModel","setSortModel","onSortModelChange","page","setPage","pagination","pageSize","setPageSize","onPageChange","undefined","onPageSizeChange"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { useCallback } from 'react';
2
+
3
+ // Get and Set data from LocalStorage WITHOUT useState
4
+
5
+ // triggering a state update and consecutive re-render
6
+ const useFetchState = (defaultValue, key) => {
7
+ let stickyValue = null;
8
+ try {
9
+ stickyValue = window.localStorage.getItem(key);
10
+ } catch (e) {
11
+ console.error('StatefulDataGrid: error getting item from local storage: ', e);
12
+ }
13
+ let parsedValue = stickyValue !== null && stickyValue !== undefined && stickyValue !== 'undefined' ? JSON.parse(stickyValue) : defaultValue;
14
+
15
+ // TODO: temporary workaround to avoid clashes when someone had sorting on the now-removed screenshot field (renamed to num_annotations)
16
+ // 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
17
+ if (parsedValue instanceof Array) {
18
+ const fields = (parsedValue || []).map(item => item.field);
19
+ if (fields.includes('screenshot') || fields.includes('diffs')) {
20
+ parsedValue = defaultValue;
21
+ }
22
+ }
23
+ const updateValue = useCallback(value => {
24
+ try {
25
+ window.localStorage.setItem(key, JSON.stringify(value));
26
+ } catch (e) {
27
+ console.error('StatefulDataGrid: error setting item into local storage: ', e);
28
+ }
29
+ }, [key]);
30
+ return [parsedValue, updateValue];
31
+ };
32
+
33
+ export { useFetchState };
34
+ //# sourceMappingURL=useFetchState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchState.js","sources":["../../../../../../src/hooks/useFetchState.tsx"],"sourcesContent":["// 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"],"names":["useFetchState","defaultValue","key","stickyValue","window","localStorage","getItem","e","console","error","parsedValue","undefined","JSON","parse","Array","fields","map","item","field","includes","updateValue","useCallback","value","setItem","stringify"],"mappings":";;AAAA;;AAKA;MACaA,aAAa,GAAGA,CAACC,YAAqB,EAAEC,GAAW,KAAK;EACnE,IAAIC,WAAW,GAAG,IAAI,CAAA;EACtB,IAAI;IACFA,WAAW,GAAGC,MAAM,CAACC,YAAY,CAACC,OAAO,CAACJ,GAAG,CAAC,CAAA;GAC/C,CAAC,OAAOK,CAAC,EAAE;AACVC,IAAAA,OAAO,CAACC,KAAK,CAAC,2DAA2D,EAAEF,CAAC,CAAC,CAAA;AAC/E,GAAA;EACA,IAAIG,WAAW,GACbP,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAKQ,SAAS,IAAIR,WAAW,KAAK,WAAW,GAC5ES,IAAI,CAACC,KAAK,CAACV,WAAW,CAAC,GACvBF,YAAY,CAAA;;AAElB;AACA;EACA,IAAIS,WAAW,YAAYI,KAAK,EAAE;AAChC,IAAA,MAAMC,MAAM,GAAG,CAACL,WAAW,IAAI,EAAE,EAAEM,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,KAAK,CAAC,CAAA;AAC5D,IAAA,IAAIH,MAAM,CAACI,QAAQ,CAAC,YAAY,CAAC,IAAIJ,MAAM,CAACI,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7DT,MAAAA,WAAW,GAAGT,YAAY,CAAA;AAC5B,KAAA;AACF,GAAA;AAEA,EAAA,MAAMmB,WAAW,GAAGC,WAAW,CAC5BC,KAAc,IAAK;IAClB,IAAI;AACFlB,MAAAA,MAAM,CAACC,YAAY,CAACkB,OAAO,CAACrB,GAAG,EAAEU,IAAI,CAACY,SAAS,CAACF,KAAK,CAAC,CAAC,CAAA;KACxD,CAAC,OAAOf,CAAC,EAAE;AACVC,MAAAA,OAAO,CAACC,KAAK,CAAC,2DAA2D,EAAEF,CAAC,CAAC,CAAA;AAC/E,KAAA;AACF,GAAC,EACD,CAACL,GAAG,CACN,CAAC,CAAA;AAED,EAAA,OAAO,CAACQ,WAAW,EAAEU,WAAW,CAAC,CAAA;AACnC;;;;"}
@@ -0,0 +1,182 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../../../../../_virtual/_internal/_rollupPluginBabelHelpers.js';
2
+ import { useEffect, useCallback, useMemo } from 'react';
3
+ import { useTableStates } from './useTableStates.js';
4
+ import { clearPreviousVersionStorage } from '../../utils/_internal/localStorage.js';
5
+ import { getModelsParsedOrUpdateLocalStorage, updateUrl } from '../../utils/_internal/urlLocalStorageSync.js';
6
+
7
+ const useStatefulTable = props => {
8
+ const {
9
+ // density = 'standard',
10
+ apiRef,
11
+ initialState,
12
+ columns: propsColumns,
13
+ onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,
14
+ onColumnWidthChange: propsOnColumnWidthChange,
15
+ onFilterModelChange: propsOnFilterModelChange,
16
+ onPageChange: propsOnPageChange,
17
+ onPageSizeChange: propsOnPageSizeChange,
18
+ onPinnedColumnsChange: propsOnPinnedColumnsChange,
19
+ onSortModelChange: propsOnSortModelChange,
20
+ useRouter,
21
+ localStorageVersion = 1,
22
+ previousLocalStorageVersions = []
23
+ } = props;
24
+ const {
25
+ search,
26
+ pathname,
27
+ historyReplace
28
+ } = useRouter();
29
+ const id = pathname;
30
+
31
+ // States and setters persisted in the local storage for this table
32
+ const {
33
+ paginationModel,
34
+ setPaginationModel,
35
+ sortModel,
36
+ setSortModel,
37
+ localStorageFilters,
38
+ setLocalStorageFilters,
39
+ visibilityModelLocalStorage,
40
+ setVisibilityModelLocalStorage,
41
+ pinnedColumns,
42
+ setPinnedColumns,
43
+ dimensionModel,
44
+ setDimensionModel
45
+ } = useTableStates(id, localStorageVersion);
46
+
47
+ // clearing up old version keys
48
+ useEffect(() => clearPreviousVersionStorage(id, previousLocalStorageVersions), [id, previousLocalStorageVersions]);
49
+ const onColumnDimensionChange = useCallback(_ref => {
50
+ let {
51
+ newWidth,
52
+ field
53
+ } = _ref;
54
+ setDimensionModel(_objectSpread2(_objectSpread2({}, dimensionModel), {}, {
55
+ [field]: newWidth
56
+ }));
57
+ }, [dimensionModel, setDimensionModel]);
58
+ const {
59
+ filterModel: filterParsed,
60
+ sortModel: sortModelParsed,
61
+ paginationModel: paginationModelParsed,
62
+ columnVisibilityModel: visibilityModel,
63
+ pinnedColumnsModel
64
+ } = getModelsParsedOrUpdateLocalStorage(search || '', localStorageVersion, propsColumns, historyReplace, initialState, {
65
+ localStorageFilters,
66
+ setLocalStorageFilters,
67
+ localStorageSorting: sortModel,
68
+ setLocalStorageSorting: setSortModel,
69
+ localStoragePagination: paginationModel,
70
+ setLocalStoragePagination: setPaginationModel,
71
+ localStorageColumnsVisibility: visibilityModelLocalStorage,
72
+ setLocalStorageColumnsVisibility: setVisibilityModelLocalStorage,
73
+ localStoragePinnedColumns: pinnedColumns,
74
+ setLocalStoragePinnedColumns: setPinnedColumns
75
+ });
76
+ const columns = useMemo(() => propsColumns.map(column => {
77
+ column.width = dimensionModel[column.field] || column.width || 100;
78
+ return column;
79
+ }), [propsColumns, dimensionModel]);
80
+
81
+ /** Add resetPage method to apiRef. */
82
+ apiRef.current.resetPage = () => {
83
+ apiRef.current.setPage(0);
84
+ };
85
+ return {
86
+ apiRef,
87
+ columns,
88
+ onFilterModelChange: (model, details) => {
89
+ const filterModel = _objectSpread2(_objectSpread2({}, model), {}, {
90
+ items: model.items.map(item => {
91
+ const column = apiRef.current.getColumn(item.columnField);
92
+ item.type = column.type || 'string';
93
+ return item;
94
+ }),
95
+ quickFilterValues: model.quickFilterValues || []
96
+ });
97
+ propsOnFilterModelChange === null || propsOnFilterModelChange === void 0 ? void 0 : propsOnFilterModelChange(filterModel, details);
98
+ updateUrl({
99
+ filterModel: filterModel,
100
+ sortModel: sortModelParsed,
101
+ paginationModel: paginationModelParsed,
102
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
103
+ pinnedColumnsModel: pinnedColumnsModel
104
+ }, search, localStorageVersion, historyReplace, columns);
105
+ },
106
+ filterModel: filterParsed,
107
+ onSortModelChange: (model, details) => {
108
+ propsOnSortModelChange === null || propsOnSortModelChange === void 0 ? void 0 : propsOnSortModelChange(model, details);
109
+ updateUrl({
110
+ filterModel: filterParsed,
111
+ sortModel: model,
112
+ paginationModel: paginationModelParsed,
113
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
114
+ pinnedColumnsModel: pinnedColumnsModel
115
+ }, search, localStorageVersion, historyReplace, columns);
116
+ },
117
+ sortModel: sortModelParsed,
118
+ onPinnedColumnsChange: (pinnedColumns, details) => {
119
+ propsOnPinnedColumnsChange === null || propsOnPinnedColumnsChange === void 0 ? void 0 : propsOnPinnedColumnsChange(pinnedColumns, details);
120
+ updateUrl({
121
+ filterModel: filterParsed,
122
+ sortModel: sortModelParsed,
123
+ paginationModel: paginationModelParsed,
124
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
125
+ pinnedColumnsModel: pinnedColumns
126
+ }, search, localStorageVersion, historyReplace, columns);
127
+ },
128
+ pinnedColumns: pinnedColumnsModel,
129
+ page: paginationModelParsed.page,
130
+ pageSize: paginationModelParsed.pageSize,
131
+ onPageChange: (page, details) => {
132
+ const direction = paginationModelParsed.page < page ? 'next' : 'back';
133
+ propsOnPageChange === null || propsOnPageChange === void 0 ? void 0 : propsOnPageChange(page, details);
134
+ updateUrl({
135
+ filterModel: filterParsed,
136
+ sortModel: sortModelParsed,
137
+ paginationModel: {
138
+ page,
139
+ pageSize: paginationModelParsed.pageSize,
140
+ direction
141
+ },
142
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
143
+ pinnedColumnsModel: pinnedColumnsModel
144
+ }, search, localStorageVersion, historyReplace, columns);
145
+ },
146
+ onPageSizeChange: (pageSize, details) => {
147
+ propsOnPageSizeChange === null || propsOnPageSizeChange === void 0 ? void 0 : propsOnPageSizeChange(pageSize, details);
148
+ updateUrl({
149
+ filterModel: filterParsed,
150
+ sortModel: sortModelParsed,
151
+ paginationModel: {
152
+ page: paginationModelParsed.page,
153
+ pageSize,
154
+ direction: paginationModelParsed.direction
155
+ },
156
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
157
+ pinnedColumnsModel: pinnedColumnsModel
158
+ }, search, localStorageVersion, historyReplace, columns);
159
+ },
160
+ columnVisibilityModel: visibilityModel,
161
+ onColumnVisibilityModelChange: (columnsVisibilityModel, details) => {
162
+ propsOnColumnVisibilityModelChange === null || propsOnColumnVisibilityModelChange === void 0 ? void 0 : propsOnColumnVisibilityModelChange(columnsVisibilityModel, details);
163
+ updateUrl({
164
+ filterModel: filterParsed,
165
+ sortModel: sortModelParsed,
166
+ paginationModel: paginationModelParsed,
167
+ columnsModel: columnsVisibilityModel,
168
+ pinnedColumnsModel: pinnedColumnsModel
169
+ }, search, localStorageVersion, historyReplace, columns);
170
+ },
171
+ onColumnWidthChange: (params, event, details) => {
172
+ propsOnColumnWidthChange === null || propsOnColumnWidthChange === void 0 ? void 0 : propsOnColumnWidthChange(params, event, details);
173
+ onColumnDimensionChange({
174
+ newWidth: params.width,
175
+ field: params.colDef.field
176
+ });
177
+ }
178
+ };
179
+ };
180
+
181
+ export { useStatefulTable };
182
+ //# sourceMappingURL=useStatefulTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStatefulTable.js","sources":["../../../../../../src/hooks/useStatefulTable.tsx"],"sourcesContent":["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"],"names":["useStatefulTable","props","apiRef","initialState","columns","propsColumns","onColumnVisibilityModelChange","propsOnColumnVisibilityModelChange","onColumnWidthChange","propsOnColumnWidthChange","onFilterModelChange","propsOnFilterModelChange","onPageChange","propsOnPageChange","onPageSizeChange","propsOnPageSizeChange","onPinnedColumnsChange","propsOnPinnedColumnsChange","onSortModelChange","propsOnSortModelChange","useRouter","localStorageVersion","previousLocalStorageVersions","search","pathname","historyReplace","id","paginationModel","setPaginationModel","sortModel","setSortModel","localStorageFilters","setLocalStorageFilters","visibilityModelLocalStorage","setVisibilityModelLocalStorage","pinnedColumns","setPinnedColumns","dimensionModel","setDimensionModel","useTableStates","useEffect","clearPreviousVersionStorage","onColumnDimensionChange","useCallback","_ref","newWidth","field","_objectSpread","filterModel","filterParsed","sortModelParsed","paginationModelParsed","columnVisibilityModel","visibilityModel","pinnedColumnsModel","getModelsParsedOrUpdateLocalStorage","localStorageSorting","setLocalStorageSorting","localStoragePagination","setLocalStoragePagination","localStorageColumnsVisibility","setLocalStorageColumnsVisibility","localStoragePinnedColumns","setLocalStoragePinnedColumns","useMemo","map","column","width","current","resetPage","setPage","model","details","items","item","getColumn","columnField","type","quickFilterValues","updateUrl","columnsModel","state","page","pageSize","direction","columnsVisibilityModel","params","event","colDef"],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { buildStorageKey, PAGINATION_MODEL_KEY, SORT_MODEL_KEY, FILTER_SEARCH_KEY, VISIBILITY_MODEL_KEY, PINNED_COLUMNS, DIMENSION_MODEL_KEY } from '../../utils/_internal/localStorage.js';
2
+ import { useFetchState } from './useFetchState.js';
3
+
4
+ const useTableStates = (id, version) => {
5
+ const [paginationModel, setPaginationModel] = useFetchState('', buildStorageKey({
6
+ id,
7
+ version,
8
+ category: PAGINATION_MODEL_KEY
9
+ }));
10
+ const [sortModel, setSortModel] = useFetchState('', buildStorageKey({
11
+ id,
12
+ version,
13
+ category: SORT_MODEL_KEY
14
+ }));
15
+ const [localStorageFilters, setLocalStorageFilters] = useFetchState('', buildStorageKey({
16
+ id,
17
+ version,
18
+ category: FILTER_SEARCH_KEY
19
+ }));
20
+ const [visibilityModelLocalStorage, setVisibilityModelLocalStorage] = useFetchState('', buildStorageKey({
21
+ id,
22
+ version,
23
+ category: VISIBILITY_MODEL_KEY
24
+ }));
25
+ const [pinnedColumns, setPinnedColumns] = useFetchState('_pinnedColumnsLeft=[]&_pinnedColumnsRight=[]', buildStorageKey({
26
+ id,
27
+ version,
28
+ category: PINNED_COLUMNS
29
+ }));
30
+ const [dimensionModel, setDimensionModel] = useFetchState({}, buildStorageKey({
31
+ id,
32
+ version,
33
+ category: DIMENSION_MODEL_KEY
34
+ }));
35
+ return {
36
+ paginationModel,
37
+ setPaginationModel,
38
+ sortModel,
39
+ setSortModel,
40
+ localStorageFilters,
41
+ setLocalStorageFilters,
42
+ visibilityModelLocalStorage,
43
+ setVisibilityModelLocalStorage,
44
+ pinnedColumns,
45
+ setPinnedColumns,
46
+ dimensionModel,
47
+ setDimensionModel
48
+ };
49
+ };
50
+
51
+ export { useTableStates };
52
+ //# sourceMappingURL=useTableStates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableStates.js","sources":["../../../../../../src/hooks/useTableStates.tsx"],"sourcesContent":["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"],"names":["useTableStates","id","version","paginationModel","setPaginationModel","useFetchState","buildStorageKey","category","PAGINATION_MODEL_KEY","sortModel","setSortModel","SORT_MODEL_KEY","localStorageFilters","setLocalStorageFilters","FILTER_SEARCH_KEY","visibilityModelLocalStorage","setVisibilityModelLocalStorage","VISIBILITY_MODEL_KEY","pinnedColumns","setPinnedColumns","PINNED_COLUMNS","dimensionModel","setDimensionModel","DIMENSION_MODEL_KEY"],"mappings":";;;MAWaA,cAAc,GAAGA,CAACC,EAAU,EAAEC,OAAe,KAAK;EAC7D,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAGC,aAAa,CACzD,EAAE,EACFC,eAAe,CAAC;IAAEL,EAAE;IAAEC,OAAO;AAAEK,IAAAA,QAAQ,EAAEC,oBAAAA;AAAqB,GAAC,CACjE,CAAC,CAAA;EAED,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGL,aAAa,CAAC,EAAE,EAAEC,eAAe,CAAC;IAAEL,EAAE;IAAEC,OAAO;AAAEK,IAAAA,QAAQ,EAAEI,cAAAA;AAAe,GAAC,CAAC,CAAC,CAAA;EAE/G,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGR,aAAa,CACjE,EAAE,EACFC,eAAe,CAAC;IAAEL,EAAE;IAAEC,OAAO;AAAEK,IAAAA,QAAQ,EAAEO,iBAAAA;AAAkB,GAAC,CAC9D,CAAC,CAAA;EAED,MAAM,CAACC,2BAA2B,EAAEC,8BAA8B,CAAC,GAAGX,aAAa,CACjF,EAAE,EACFC,eAAe,CAAC;IAAEL,EAAE;IAAEC,OAAO;AAAEK,IAAAA,QAAQ,EAAEU,oBAAAA;AAAqB,GAAC,CACjE,CAAC,CAAA;EAED,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGd,aAAa,CACrD,8CAA8C,EAC9CC,eAAe,CAAC;IAAEL,EAAE;IAAEC,OAAO;AAAEK,IAAAA,QAAQ,EAAEa,cAAAA;AAAe,GAAC,CAC3D,CAAC,CAAA;AAED,EAAA,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGjB,aAAa,CACvD,EAAE,EACFC,eAAe,CAAC;IAAEL,EAAE;IAAEC,OAAO;AAAEK,IAAAA,QAAQ,EAAEgB,mBAAAA;AAAoB,GAAC,CAChE,CAAC,CAAA;EAED,OAAO;IACLpB,eAAe;IACfC,kBAAkB;IAClBK,SAAS;IACTC,YAAY;IACZE,mBAAmB;IACnBC,sBAAsB;IACtBE,2BAA2B;IAC3BC,8BAA8B;IAC9BE,aAAa;IACbC,gBAAgB;IAChBE,cAAc;AACdC,IAAAA,iBAAAA;GACD,CAAA;AACH;;;;"}
@@ -0,0 +1,38 @@
1
+ export { customColumnTypes, getRsMultipleSelectColumnType, getRsMultipleSelectWithShortOperatorListColumnType, getRsNumberColumnType, getRsSingleSelectColumnType, getRsSingleSelectWithShortOperatorListColumnType, getRsStringColumnType } from './utils/columnTypes/index.js';
2
+ export { operatorList } from './utils/operators/index.js';
3
+ export { getCompletion } from './utils/_internal/gpt.js';
4
+ export { CATEGORIES, DIMENSION_MODEL_KEY, FILTER_MODEL_KEY, FILTER_SEARCH_KEY, PAGINATION_MODEL_KEY, PINNED_COLUMNS, SORT_MODEL_KEY, VISIBILITY_MODEL_KEY, buildStorageKey, clearPreviousVersionStorage } from './utils/_internal/localStorage.js';
5
+ export { areFilterModelsEquivalent, decodeValue, encodeValue, getColumnVisibilityFromString, getFilterModelFromString, getFinalSearch, getModelsParsedOrUpdateLocalStorage, getPaginationFromString, getPinnedColumnsFromString, getSearchParamsFromColumnVisibility, getSearchParamsFromFilterModel, getSearchParamsFromPagination, getSearchParamsFromPinnedColumns, getSearchParamsFromSorting, getSearchParamsFromTab, getSortingFromString, numberOperatorDecoder, numberOperatorEncoder, updateUrl, urlSearchParamsToString } from './utils/_internal/urlLocalStorageSync.js';
6
+ export { DETAIL_PANEL_TOGGLE_COL_DEF } from './utils/columns/_internal/detailPanelToggleColDef.js';
7
+ export { getGridBooleanOperators, getGridDateOperators, getGridSingleSelectOperators } from '@mui/x-data-grid-pro';
8
+ export { IS_BETWEEN } from './utils/operators/numeric/_internal/isBetween.js';
9
+ export { getGridNumericOperators } from './utils/operators/numeric/_internal/getGridNumericOperators.js';
10
+ export { DOES_NOT_CONTAIN } from './utils/operators/string/_internal/doesNotContain.js';
11
+ export { DOES_NOT_EQUAL } from './utils/operators/string/_internal/doesNotEqual.js';
12
+ export { DOES_NOT_HAVE, DOES_NOT_HAVE_WITH_SELECT } from './utils/operators/string/_internal/doesNotHave.js';
13
+ export { HAS, HAS_WITH_SELECT } from './utils/operators/string/_internal/has.js';
14
+ export { HAS_ONLY, HAS_ONLY_WITH_SELECT } from './utils/operators/string/_internal/hasOnly.js';
15
+ export { IS, IS_WITH_SELECT } from './utils/operators/string/_internal/is.js';
16
+ export { IS_NOT, IS_NOT_WITH_SELECT } from './utils/operators/string/_internal/isNot.js';
17
+ export { getGridStringOperators } from './utils/operators/string/_internal/getGridStringOperators.js';
18
+ export { CONTAINS_ANY_OF, CONTAINS_ANY_OF_I } from './utils/operators/string-array/_internal/containsAnyOf.js';
19
+ export { ENDS_WITH_ANY_OF } from './utils/operators/string-array/_internal/endsWithAnyOf.js';
20
+ export { IS_ANY_OF, IS_ANY_OF_WITH_SELECT } from './utils/operators/string-array/_internal/isAnyOf.js';
21
+ export { HAS_ANY_OF, HAS_ANY_OF_WITH_SELECT } from './utils/operators/string-array/_internal/hasAnyOf.js';
22
+ export { IS_NOT_ANY_OF } from './utils/operators/string-array/_internal/isNotAnyOf.js';
23
+ export { STARTS_WITH_ANY_OF } from './utils/operators/string-array/_internal/startsWithAnyOf.js';
24
+ export { getGridStringArrayOperators, getGridStringArrayOperatorsWithSelect, getGridStringArrayOperatorsWithSelectOnStringArrayColumns } from './utils/operators/string-array/_internal/getGridStringArrayOperators.js';
25
+ export { BaseButton } from './components/BaseComponents/_internal/BaseButton.js';
26
+ export { BaseCheckbox } from './components/BaseComponents/_internal/BaseCheckbox.js';
27
+ export { BaseIcon, muiIconToDSIcon } from './components/BaseComponents/_internal/BaseIcon.js';
28
+ export { BasePopper } from './components/BaseComponents/_internal/BasePopper.js';
29
+ export { BaseTextField } from './components/BaseComponents/_internal/BaseTextField.js';
30
+ export { DataGrid } from './components/DataGrid/_internal/DataGrid2.js';
31
+ export { DEFAULT_OPERATORS, GridToolbarFilterSemanticField } from './components/GridToolbarFilterSemanticField/_internal/GridToolbarFilterSemanticField2.js';
32
+ export { ControlledPagination } from './components/Pagination/_internal/ControlledPagination.js';
33
+ export { ServerSideControlledPagination, onServerSideSelectionStatusChange } from './components/Pagination/_internal/ServerSideControlledPagination.js';
34
+ export { StatefulDataGrid } from './components/StatefulDataGrid/_internal/StatefulDataGrid2.js';
35
+ export { TextCell } from './components/TextCell/_internal/TextCell2.js';
36
+ export { Toolbar } from './components/Toolbar/_internal/Toolbar2.js';
37
+ export { ToolbarWrapper } from './components/ToolbarWrapper/_internal/ToolbarWrapper2.js';
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ const API_URL = 'https://api.openai.com/v1/chat/completions';
2
+ async function getCompletion(text, role, openai_api_key) {
3
+ let model = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'gpt-3.5-turbo-0613';
4
+ try {
5
+ const messages = [{
6
+ role: 'system',
7
+ content: role
8
+ }, {
9
+ role: 'user',
10
+ content: text
11
+ }];
12
+ const url = API_URL;
13
+ const response = await fetch(url, {
14
+ method: 'POST',
15
+ headers: {
16
+ 'Content-Type': 'application/json',
17
+ Authorization: `Bearer ${openai_api_key}`
18
+ },
19
+ body: JSON.stringify({
20
+ messages: messages,
21
+ temperature: 0,
22
+ model: model
23
+ })
24
+ });
25
+ const data = await response.json();
26
+ return data.choices[0].message.content;
27
+ } catch (error) {
28
+ return '';
29
+ }
30
+ }
31
+
32
+ export { getCompletion };
33
+ //# sourceMappingURL=gpt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gpt.js","sources":["../../../../../../src/utils/gpt.ts"],"sourcesContent":["const API_URL = 'https://api.openai.com/v1/chat/completions';\n\ninterface Message {\n role: string;\n content: string;\n}\n\nexport async function getCompletion(\n text: string,\n role: string,\n openai_api_key: string | undefined,\n model: string = 'gpt-3.5-turbo-0613',\n): Promise<string> {\n try {\n const messages: Message[] = [\n { role: 'system', content: role },\n { role: 'user', content: text },\n ];\n\n const url = API_URL;\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${openai_api_key}`,\n },\n body: JSON.stringify({\n messages: messages,\n temperature: 0,\n model: model,\n }),\n });\n\n const data = await response.json();\n\n return data.choices[0].message.content;\n } catch (error) {\n return '';\n }\n}\n"],"names":["API_URL","getCompletion","text","role","openai_api_key","model","arguments","length","undefined","messages","content","url","response","fetch","method","headers","Authorization","body","JSON","stringify","temperature","data","json","choices","message","error"],"mappings":"AAAA,MAAMA,OAAO,GAAG,4CAA4C,CAAA;AAOrD,eAAeC,aAAaA,CACjCC,IAAY,EACZC,IAAY,EACZC,cAAkC,EAEjB;AAAA,EAAA,IADjBC,KAAa,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,oBAAoB,CAAA;EAEpC,IAAI;IACF,MAAMG,QAAmB,GAAG,CAC1B;AAAEN,MAAAA,IAAI,EAAE,QAAQ;AAAEO,MAAAA,OAAO,EAAEP,IAAAA;AAAK,KAAC,EACjC;AAAEA,MAAAA,IAAI,EAAE,MAAM;AAAEO,MAAAA,OAAO,EAAER,IAAAA;AAAK,KAAC,CAChC,CAAA;IAED,MAAMS,GAAG,GAAGX,OAAO,CAAA;AACnB,IAAA,MAAMY,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAG,EAAE;AAChCG,MAAAA,MAAM,EAAE,MAAM;AACdC,MAAAA,OAAO,EAAE;AACP,QAAA,cAAc,EAAE,kBAAkB;QAClCC,aAAa,EAAG,UAASZ,cAAe,CAAA,CAAA;OACzC;AACDa,MAAAA,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;AACnBV,QAAAA,QAAQ,EAAEA,QAAQ;AAClBW,QAAAA,WAAW,EAAE,CAAC;AACdf,QAAAA,KAAK,EAAEA,KAAAA;OACR,CAAA;AACH,KAAC,CAAC,CAAA;AAEF,IAAA,MAAMgB,IAAI,GAAG,MAAMT,QAAQ,CAACU,IAAI,EAAE,CAAA;IAElC,OAAOD,IAAI,CAACE,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAACd,OAAO,CAAA;GACvC,CAAC,OAAOe,KAAK,EAAE;AACd,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF;;;;"}
@@ -0,0 +1,59 @@
1
+ const PAGINATION_MODEL_KEY = 'paginationModel';
2
+ const FILTER_MODEL_KEY = 'filterModel';
3
+ const SORT_MODEL_KEY = 'sortModel';
4
+ const VISIBILITY_MODEL_KEY = 'visibilityModel';
5
+ const PINNED_COLUMNS = 'pinnedColumns';
6
+ const DIMENSION_MODEL_KEY = 'dimension';
7
+ const FILTER_SEARCH_KEY = 'searchModel';
8
+ const CATEGORIES = [PAGINATION_MODEL_KEY, FILTER_MODEL_KEY, SORT_MODEL_KEY, VISIBILITY_MODEL_KEY, DIMENSION_MODEL_KEY, FILTER_SEARCH_KEY, PINNED_COLUMNS];
9
+ const buildStorageKey = _ref => {
10
+ let {
11
+ id,
12
+ version,
13
+ category
14
+ } = _ref;
15
+ return `${id}:${version}:${category}`;
16
+ };
17
+ const clearPreviousVersionStorage = (id, previousLocalStorageVersions) => {
18
+ for (const version of previousLocalStorageVersions) {
19
+ const keysToDelete = [buildStorageKey({
20
+ id,
21
+ version,
22
+ category: PAGINATION_MODEL_KEY
23
+ }), buildStorageKey({
24
+ id,
25
+ version,
26
+ category: SORT_MODEL_KEY
27
+ }), buildStorageKey({
28
+ id,
29
+ version,
30
+ category: FILTER_MODEL_KEY
31
+ }), buildStorageKey({
32
+ id,
33
+ version,
34
+ category: VISIBILITY_MODEL_KEY
35
+ }), buildStorageKey({
36
+ id,
37
+ version,
38
+ category: PINNED_COLUMNS
39
+ }), buildStorageKey({
40
+ id,
41
+ version,
42
+ category: FILTER_SEARCH_KEY
43
+ }), buildStorageKey({
44
+ id,
45
+ version,
46
+ category: DIMENSION_MODEL_KEY
47
+ })];
48
+ for (const keyToDelete of keysToDelete) {
49
+ try {
50
+ window.localStorage.removeItem(keyToDelete);
51
+ } catch (e) {
52
+ // Ignore
53
+ }
54
+ }
55
+ }
56
+ };
57
+
58
+ export { CATEGORIES, DIMENSION_MODEL_KEY, FILTER_MODEL_KEY, FILTER_SEARCH_KEY, PAGINATION_MODEL_KEY, PINNED_COLUMNS, SORT_MODEL_KEY, VISIBILITY_MODEL_KEY, buildStorageKey, clearPreviousVersionStorage };
59
+ //# sourceMappingURL=localStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localStorage.js","sources":["../../../../../../src/utils/localStorage.ts"],"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"],"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"],"mappings":"AAAO,MAAMA,oBAAoB,GAAG,kBAAiB;AAC9C,MAAMC,gBAAgB,GAAG,cAAa;AACtC,MAAMC,cAAc,GAAG,YAAW;AAClC,MAAMC,oBAAoB,GAAG,kBAAiB;AAC9C,MAAMC,cAAc,GAAG,gBAAe;AACtC,MAAMC,mBAAmB,GAAG,YAAW;AACvC,MAAMC,iBAAiB,GAAG,cAAa;MACjCC,UAAU,GAAG,CACxBP,oBAAoB,EACpBC,gBAAgB,EAChBC,cAAc,EACdC,oBAAoB,EACpBE,mBAAmB,EACnBC,iBAAiB,EACjBF,cAAc,EACN;AAIGI,MAAAA,eAAe,GAAGC,IAAA,IAAoF;EAAA,IAAnF;IAAEC,EAAE;IAAEC,OAAO;AAAEC,IAAAA,QAAAA;AAA8D,GAAC,GAAAH,IAAA,CAAA;AAC5G,EAAA,OAAQ,GAAEC,EAAG,CAAA,CAAA,EAAGC,OAAQ,CAAA,CAAA,EAAGC,QAAS,CAAC,CAAA,CAAA;AACvC,EAAC;MAEYC,2BAA2B,GAAGA,CAACH,EAAU,EAAEI,4BAAsC,KAAW;AACvG,EAAA,KAAK,MAAMH,OAAO,IAAIG,4BAA4B,EAAE;AAClD,IAAA,MAAMC,YAAY,GAAG,CACnBP,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAEZ,oBAAAA;KACX,CAAC,EACFQ,eAAe,CAAC;MAAEE,EAAE;MAAEC,OAAO;AAAEC,MAAAA,QAAQ,EAAEV,cAAAA;KAAgB,CAAC,EAC1DM,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAEX,gBAAAA;KACX,CAAC,EACFO,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAET,oBAAAA;KACX,CAAC,EACFK,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAER,cAAAA;KACX,CAAC,EACFI,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAEN,iBAAAA;KACX,CAAC,EACFE,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAEP,mBAAAA;AACZ,KAAC,CAAC,CACH,CAAA;AAED,IAAA,KAAK,MAAMW,WAAW,IAAID,YAAY,EAAE;MACtC,IAAI;AACFE,QAAAA,MAAM,CAACC,YAAY,CAACC,UAAU,CAACH,WAAW,CAAC,CAAA;OAC5C,CAAC,OAAOI,CAAC,EAAE;AACV;AAAA,OAAA;AAEJ,KAAA;AACF,GAAA;AACF;;;;"}