@dartech/arsenal-ui 1.2.5 → 1.2.7

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 (271) hide show
  1. package/{index.ts → index.d.ts} +5 -5
  2. package/index.js +1 -0
  3. package/package.json +12 -3
  4. package/src/consts/index.d.ts +12 -0
  5. package/src/interfaces/common.d.ts +17 -0
  6. package/src/interfaces/definition.d.ts +107 -0
  7. package/src/interfaces/{index.ts → index.d.ts} +3 -3
  8. package/src/interfaces/ui.d.ts +70 -0
  9. package/src/lib/Alert/Alert.d.ts +53 -0
  10. package/src/lib/Alert/index.d.ts +1 -0
  11. package/src/lib/Breadcrumbs/Breadcrumbs.d.ts +9 -0
  12. package/src/lib/Breadcrumbs/Breadcrumbs.styled.d.ts +2 -0
  13. package/src/lib/Breadcrumbs/{index.ts → index.d.ts} +1 -1
  14. package/src/lib/ContentLayout/ContentLayout.d.ts +9 -0
  15. package/src/lib/ContentLayout/index.d.ts +1 -0
  16. package/src/lib/Definition/CreateDefinition/CreateDefinition.d.ts +11 -0
  17. package/src/lib/Definition/CreateDefinition/{index.ts → index.d.ts} +1 -1
  18. package/src/lib/Definition/DefinitionFiller/DefinitionFiller.d.ts +10 -0
  19. package/src/lib/Definition/DefinitionFiller/{index.ts → index.d.ts} +1 -1
  20. package/src/lib/Definition/DefinitionValueView/DefinitionValueView.d.ts +8 -0
  21. package/src/lib/Definition/DefinitionValueView/PropertyDataView.d.ts +9 -0
  22. package/src/lib/Definition/DefinitionValueView/{index.ts → index.d.ts} +1 -1
  23. package/src/lib/Definition/{index.ts → index.d.ts} +3 -3
  24. package/src/lib/Forms/BackButton.d.ts +7 -0
  25. package/src/lib/Forms/ControlAceEditor.d.ts +24 -0
  26. package/src/lib/Forms/ControlAutocomplete.d.ts +69 -0
  27. package/src/lib/Forms/ControlCheckbox.d.ts +51 -0
  28. package/src/lib/Forms/ControlDate.d.ts +18 -0
  29. package/src/lib/Forms/ControlDateTime.d.ts +18 -0
  30. package/src/lib/Forms/ControlDebouncedInput.d.ts +4 -0
  31. package/src/lib/Forms/ControlInput.d.ts +59 -0
  32. package/src/lib/Forms/ControlNumberInput.d.ts +51 -0
  33. package/src/lib/Forms/ControlQueryAutocomplete.d.ts +16 -0
  34. package/src/lib/Forms/ControlRadio.d.ts +66 -0
  35. package/src/lib/Forms/ControlSelect.d.ts +67 -0
  36. package/src/lib/Forms/ControlSwitch.d.ts +19 -0
  37. package/src/lib/Forms/ControlTime.d.ts +18 -0
  38. package/src/lib/Forms/CopyButton.d.ts +20 -0
  39. package/src/lib/Forms/{index.ts → index.d.ts} +15 -15
  40. package/src/lib/Forms/useAutocomplete.d.ts +10 -0
  41. package/src/lib/InfoItem/InfoItem.d.ts +10 -0
  42. package/src/lib/InfoItem/{index.ts → index.d.ts} +1 -1
  43. package/src/lib/InfoItem/styles.d.ts +12 -0
  44. package/src/lib/JsonPathPicker/JsonPathPicker.d.ts +10 -0
  45. package/src/lib/JsonPathPicker/PropertyStep.d.ts +11 -0
  46. package/src/lib/JsonPathPicker/{index.ts → index.d.ts} +1 -1
  47. package/src/lib/JsonView/JsonView.d.ts +7 -0
  48. package/src/lib/JsonView/{index.ts → index.d.ts} +1 -1
  49. package/src/lib/Loader/Loader.d.ts +21 -0
  50. package/src/lib/Loader/{index.ts → index.d.ts} +1 -1
  51. package/src/lib/Modals/JsonModalView.d.ts +10 -0
  52. package/src/lib/Modals/{index.ts → index.d.ts} +1 -1
  53. package/src/lib/Property/PropertyFiller/JsonEditor.d.ts +10 -0
  54. package/src/lib/Property/PropertyFiller/MultiplePropertyFiller.d.ts +12 -0
  55. package/src/lib/Property/PropertyFiller/MultiplePropertyWidget.d.ts +11 -0
  56. package/src/lib/Property/PropertyFiller/PropertyFiller.d.ts +12 -0
  57. package/src/lib/Property/PropertyFiller/{index.ts → index.d.ts} +2 -2
  58. package/src/lib/Property/PropertyFiller/usePropertyFiller.d.ts +24 -0
  59. package/src/lib/Property/PropertyFiller/useStyles.d.ts +12 -0
  60. package/src/lib/Property/PropertyValidator/NodeValidator.d.ts +6 -0
  61. package/src/lib/Property/PropertyValidator/NodesList.d.ts +6 -0
  62. package/src/lib/Property/PropertyValidator/NumericTypeValidator.d.ts +8 -0
  63. package/src/lib/Property/PropertyValidator/PropertyValidator.d.ts +6 -0
  64. package/src/lib/Property/PropertyValidator/PropertyValidatorContext.d.ts +3 -0
  65. package/src/lib/Property/PropertyValidator/StringTypeValidator.d.ts +8 -0
  66. package/src/lib/Property/PropertyValidator/ValidationNodeSelector.d.ts +7 -0
  67. package/src/lib/Property/PropertyValidator/index.d.ts +1 -0
  68. package/src/lib/Property/PropertyValueField/BooleanValueField.d.ts +7 -0
  69. package/src/lib/Property/PropertyValueField/DateTimeValueField.d.ts +9 -0
  70. package/src/lib/Property/PropertyValueField/DateValueField.d.ts +9 -0
  71. package/src/lib/Property/PropertyValueField/JsonValueField.d.ts +10 -0
  72. package/src/lib/Property/PropertyValueField/PropertyValueField.d.ts +9 -0
  73. package/src/lib/Property/PropertyValueField/StringValueField.d.ts +9 -0
  74. package/src/lib/Property/PropertyValueField/TimeValueField.d.ts +9 -0
  75. package/src/lib/Property/PropertyValueField/{index.ts → index.d.ts} +1 -1
  76. package/src/lib/Property/PropertyWidget/PropertyWidget.d.ts +13 -0
  77. package/src/lib/Property/PropertyWidget/{index.ts → index.d.ts} +1 -1
  78. package/src/lib/Property/UpsertProperty/CreatePropertiesList.d.ts +13 -0
  79. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.d.ts +10 -0
  80. package/src/lib/Property/UpsertProperty/CustomPropertyField.d.ts +7 -0
  81. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.d.ts +6 -0
  82. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.d.ts +7 -0
  83. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.d.ts +8 -0
  84. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.d.ts +6 -0
  85. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.d.ts +10 -0
  86. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.d.ts +6 -0
  87. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/{index.ts → index.d.ts} +1 -1
  88. package/src/lib/Property/UpsertProperty/{index.ts → index.d.ts} +2 -2
  89. package/src/lib/Property/UpsertProperty/useCustomFields.d.ts +6 -0
  90. package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.d.ts +8 -0
  91. package/src/lib/Property/ViewPropertiesList/{index.ts → index.d.ts} +1 -1
  92. package/src/lib/Property/ViewProperty/EntityPropertiesShortView.d.ts +7 -0
  93. package/src/lib/Property/ViewProperty/EntityPropertiesView.d.ts +8 -0
  94. package/src/lib/Property/ViewProperty/PropertyDataTable.d.ts +7 -0
  95. package/src/lib/Property/ViewProperty/PropertyItem.d.ts +9 -0
  96. package/src/lib/Property/ViewProperty/ViewProperty.d.ts +9 -0
  97. package/src/lib/Property/ViewProperty/{index.ts → index.d.ts} +1 -1
  98. package/src/lib/Property/{index.ts → index.d.ts} +5 -5
  99. package/src/lib/Sidebar/Sidebar.d.ts +10 -0
  100. package/src/lib/Sidebar/Sidebar.styled.d.ts +117 -0
  101. package/src/lib/Sidebar/SidebarContext.d.ts +11 -0
  102. package/src/lib/Sidebar/SidebarDrawer.d.ts +9 -0
  103. package/src/lib/Sidebar/SidebarLink/MenuIcon.d.ts +7 -0
  104. package/src/lib/Sidebar/SidebarLink/SidebarLink.d.ts +7 -0
  105. package/src/lib/Sidebar/SidebarLink/SidebarLinkItem.d.ts +8 -0
  106. package/src/lib/Sidebar/SidebarLink/SidebarNestedItem.d.ts +10 -0
  107. package/src/lib/Sidebar/SidebarLink/{index.ts → index.d.ts} +2 -2
  108. package/src/lib/Sidebar/index.d.ts +2 -0
  109. package/src/lib/Status/Status.d.ts +8 -0
  110. package/src/lib/Status/{index.ts → index.d.ts} +1 -1
  111. package/src/lib/Status/styles.d.ts +12 -0
  112. package/src/lib/StepperView/StepperView.d.ts +11 -0
  113. package/src/lib/StepperView/{index.ts → index.d.ts} +1 -1
  114. package/src/lib/Table/DataGrid/JsonTypeCell.d.ts +7 -0
  115. package/src/lib/Table/DataGrid/Table.d.ts +49 -0
  116. package/src/lib/Table/DataGrid/TableAction.d.ts +13 -0
  117. package/src/lib/Table/DataGrid/TableColumnMenu.d.ts +3 -0
  118. package/src/lib/Table/DataGrid/TablePagination.d.ts +3 -0
  119. package/src/lib/Table/DataGrid/index.d.ts +2 -0
  120. package/src/lib/Table/DataGrid/styles.d.ts +12 -0
  121. package/src/lib/Table/DataGrid/usePagination.d.ts +5 -0
  122. package/src/lib/Table/DataGrid/useTableQueryPagination.d.ts +11 -0
  123. package/src/lib/Table/DataGrid/useTableQuerySorting.d.ts +6 -0
  124. package/src/lib/Table/SimpleTable/SimpleTable.d.ts +17 -0
  125. package/src/lib/Table/SimpleTable/TableActionCell.d.ts +10 -0
  126. package/src/lib/Table/SimpleTable/index.d.ts +2 -0
  127. package/src/lib/Table/SimpleTable/useTablePagination.d.ts +7 -0
  128. package/src/lib/Table/SimpleTable/useTableSorting.d.ts +6 -0
  129. package/src/lib/Table/index.d.ts +2 -0
  130. package/src/lib/Tabs/RouteTabs.d.ts +11 -0
  131. package/src/lib/Tabs/TabPanel.d.ts +25 -0
  132. package/src/lib/Tabs/{index.ts → index.d.ts} +2 -2
  133. package/src/lib/{index.ts → index.d.ts} +16 -16
  134. package/src/theme/baseTheme.d.ts +2 -0
  135. package/src/theme/index.d.ts +1 -0
  136. package/src/theme/inputThemeOptions.d.ts +117 -0
  137. package/src/theme/stepperThemeOptions.d.ts +16 -0
  138. package/src/theme/tableThemeOptions.d.ts +47 -0
  139. package/src/theme/typographyThemeOptions.d.ts +29 -0
  140. package/src/utils/common.d.ts +7 -0
  141. package/src/utils/dem.d.ts +27 -0
  142. package/src/utils/hooks.d.ts +7 -0
  143. package/src/utils/{index.ts → index.d.ts} +5 -5
  144. package/src/utils/ui-utils.d.ts +14 -0
  145. package/src/utils/validators.d.ts +5 -0
  146. package/.babelrc +0 -13
  147. package/.eslintrc.json +0 -22
  148. package/jest.config.ts +0 -11
  149. package/project.json +0 -94
  150. package/rollup.config.js +0 -146
  151. package/src/assets/chevron_left_gray.svg +0 -3
  152. package/src/consts/index.ts +0 -13
  153. package/src/interfaces/common.ts +0 -18
  154. package/src/interfaces/definition.ts +0 -143
  155. package/src/interfaces/ui.ts +0 -80
  156. package/src/lib/Alert/Alert.tsx +0 -108
  157. package/src/lib/Alert/index.ts +0 -1
  158. package/src/lib/Breadcrumbs/Breadcrumbs.styled.tsx +0 -16
  159. package/src/lib/Breadcrumbs/Breadcrumbs.tsx +0 -40
  160. package/src/lib/ContentLayout/ContentLayout.tsx +0 -31
  161. package/src/lib/ContentLayout/index.ts +0 -1
  162. package/src/lib/Definition/CreateDefinition/CreateDefinition.tsx +0 -78
  163. package/src/lib/Definition/DefinitionFiller/DefinitionFiller.tsx +0 -71
  164. package/src/lib/Definition/DefinitionValueView/DefinitionValueView.tsx +0 -54
  165. package/src/lib/Definition/DefinitionValueView/PropertyDataView.tsx +0 -67
  166. package/src/lib/Forms/BackButton.tsx +0 -46
  167. package/src/lib/Forms/ControlAceEditor.tsx +0 -125
  168. package/src/lib/Forms/ControlAutocomplete.tsx +0 -145
  169. package/src/lib/Forms/ControlCheckbox.tsx +0 -113
  170. package/src/lib/Forms/ControlDate.tsx +0 -75
  171. package/src/lib/Forms/ControlDateTime.tsx +0 -77
  172. package/src/lib/Forms/ControlDebouncedInput.tsx +0 -80
  173. package/src/lib/Forms/ControlInput.tsx +0 -111
  174. package/src/lib/Forms/ControlNumberInput.tsx +0 -121
  175. package/src/lib/Forms/ControlQueryAutocomplete.tsx +0 -197
  176. package/src/lib/Forms/ControlRadio.tsx +0 -136
  177. package/src/lib/Forms/ControlSelect.tsx +0 -164
  178. package/src/lib/Forms/ControlSwitch.tsx +0 -71
  179. package/src/lib/Forms/ControlTime.tsx +0 -93
  180. package/src/lib/Forms/CopyButton.tsx +0 -46
  181. package/src/lib/Forms/useAutocomplete.tsx +0 -47
  182. package/src/lib/InfoItem/InfoItem.tsx +0 -40
  183. package/src/lib/InfoItem/styles.ts +0 -17
  184. package/src/lib/JsonPathPicker/JsonPathPicker.tsx +0 -73
  185. package/src/lib/JsonPathPicker/PropertyStep.tsx +0 -70
  186. package/src/lib/JsonView/JsonView.tsx +0 -41
  187. package/src/lib/Loader/Loader.tsx +0 -41
  188. package/src/lib/Modals/JsonModalView.tsx +0 -53
  189. package/src/lib/Property/PropertyFiller/JsonEditor.tsx +0 -58
  190. package/src/lib/Property/PropertyFiller/MultiplePropertyFiller.tsx +0 -129
  191. package/src/lib/Property/PropertyFiller/MultiplePropertyWidget.tsx +0 -85
  192. package/src/lib/Property/PropertyFiller/PropertyFiller.tsx +0 -199
  193. package/src/lib/Property/PropertyFiller/usePropertyFiller.ts +0 -72
  194. package/src/lib/Property/PropertyFiller/useStyles.ts +0 -12
  195. package/src/lib/Property/PropertyValidator/NodeValidator.tsx +0 -92
  196. package/src/lib/Property/PropertyValidator/NodesList.tsx +0 -26
  197. package/src/lib/Property/PropertyValidator/NumericTypeValidator.tsx +0 -59
  198. package/src/lib/Property/PropertyValidator/PropertyValidator.tsx +0 -42
  199. package/src/lib/Property/PropertyValidator/PropertyValidatorContext.tsx +0 -4
  200. package/src/lib/Property/PropertyValidator/StringTypeValidator.tsx +0 -36
  201. package/src/lib/Property/PropertyValidator/ValidationNodeSelector.tsx +0 -62
  202. package/src/lib/Property/PropertyValidator/index.ts +0 -1
  203. package/src/lib/Property/PropertyValueField/BooleanValueField.tsx +0 -49
  204. package/src/lib/Property/PropertyValueField/DateTimeValueField.tsx +0 -58
  205. package/src/lib/Property/PropertyValueField/DateValueField.tsx +0 -58
  206. package/src/lib/Property/PropertyValueField/JsonValueField.tsx +0 -65
  207. package/src/lib/Property/PropertyValueField/PropertyValueField.tsx +0 -49
  208. package/src/lib/Property/PropertyValueField/StringValueField.tsx +0 -50
  209. package/src/lib/Property/PropertyValueField/TimeValueField.tsx +0 -67
  210. package/src/lib/Property/PropertyWidget/PropertyWidget.tsx +0 -115
  211. package/src/lib/Property/UpsertProperty/CreatePropertiesList.tsx +0 -148
  212. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.tsx +0 -158
  213. package/src/lib/Property/UpsertProperty/CustomPropertyField.tsx +0 -40
  214. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.tsx +0 -41
  215. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.tsx +0 -27
  216. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.tsx +0 -133
  217. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.tsx +0 -46
  218. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.tsx +0 -52
  219. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.tsx +0 -103
  220. package/src/lib/Property/UpsertProperty/useCustomFields.ts +0 -22
  221. package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.tsx +0 -37
  222. package/src/lib/Property/ViewProperty/EntityPropertiesShortView.tsx +0 -40
  223. package/src/lib/Property/ViewProperty/EntityPropertiesView.tsx +0 -48
  224. package/src/lib/Property/ViewProperty/PropertyDataTable.tsx +0 -148
  225. package/src/lib/Property/ViewProperty/PropertyItem.tsx +0 -43
  226. package/src/lib/Property/ViewProperty/ViewProperty.tsx +0 -52
  227. package/src/lib/Sidebar/Sidebar.styled.tsx +0 -157
  228. package/src/lib/Sidebar/Sidebar.tsx +0 -27
  229. package/src/lib/Sidebar/SidebarContext.tsx +0 -37
  230. package/src/lib/Sidebar/SidebarDrawer.tsx +0 -50
  231. package/src/lib/Sidebar/SidebarLink/MenuIcon.tsx +0 -16
  232. package/src/lib/Sidebar/SidebarLink/SidebarLink.tsx +0 -54
  233. package/src/lib/Sidebar/SidebarLink/SidebarLinkItem.tsx +0 -54
  234. package/src/lib/Sidebar/SidebarLink/SidebarNestedItem.tsx +0 -62
  235. package/src/lib/Sidebar/index.ts +0 -2
  236. package/src/lib/Status/Status.tsx +0 -16
  237. package/src/lib/Status/styles.ts +0 -21
  238. package/src/lib/StepperView/StepperView.tsx +0 -73
  239. package/src/lib/Table/DataGrid/JsonTypeCell.tsx +0 -51
  240. package/src/lib/Table/DataGrid/Table.tsx +0 -117
  241. package/src/lib/Table/DataGrid/TableAction.tsx +0 -43
  242. package/src/lib/Table/DataGrid/TableColumnMenu.tsx +0 -12
  243. package/src/lib/Table/DataGrid/TablePagination.tsx +0 -42
  244. package/src/lib/Table/DataGrid/index.ts +0 -2
  245. package/src/lib/Table/DataGrid/styles.ts +0 -59
  246. package/src/lib/Table/DataGrid/usePagination.ts +0 -15
  247. package/src/lib/Table/DataGrid/useTableQueryPagination.ts +0 -47
  248. package/src/lib/Table/DataGrid/useTableQuerySorting.ts +0 -47
  249. package/src/lib/Table/SimpleTable/SimpleTable.tsx +0 -138
  250. package/src/lib/Table/SimpleTable/TableActionCell.tsx +0 -67
  251. package/src/lib/Table/SimpleTable/index.ts +0 -2
  252. package/src/lib/Table/SimpleTable/useTablePagination.ts +0 -54
  253. package/src/lib/Table/SimpleTable/useTableSorting.ts +0 -50
  254. package/src/lib/Table/index.ts +0 -2
  255. package/src/lib/Tabs/RouteTabs.tsx +0 -54
  256. package/src/lib/Tabs/TabPanel.tsx +0 -42
  257. package/src/theme/baseTheme.ts +0 -128
  258. package/src/theme/fonts.d.ts +0 -2
  259. package/src/theme/index.ts +0 -126
  260. package/src/theme/inputThemeOptions.ts +0 -126
  261. package/src/theme/stepperThemeOptions.ts +0 -20
  262. package/src/theme/tableThemeOptions.ts +0 -50
  263. package/src/theme/typographyThemeOptions.ts +0 -32
  264. package/src/utils/common.ts +0 -73
  265. package/src/utils/dem.ts +0 -431
  266. package/src/utils/hooks.ts +0 -41
  267. package/src/utils/ui-utils.tsx +0 -102
  268. package/src/utils/validators.ts +0 -14
  269. package/tsconfig.json +0 -25
  270. package/tsconfig.lib.json +0 -23
  271. package/tsconfig.spec.json +0 -20
@@ -1,117 +0,0 @@
1
- import React from 'react';
2
- import TablePagination from './TablePagination';
3
- import TableColumnMenu from './TableColumnMenu';
4
- import useTableQueryPagination from './useTableQueryPagination';
5
- import useTableQuerySorting from './useTableQuerySorting';
6
- import usePagination from './usePagination';
7
- import { DataGrid, GridCellParams, GridColumns, GridFeatureMode, GridRowsProp } from '@mui/x-data-grid';
8
- import useStyles from './styles';
9
- import Box from '@mui/material/Box';
10
-
11
- /**
12
- * This interface is referencing the [[Table]] component props.
13
- * @category Common UI components
14
- */
15
- export interface TableProps {
16
- /**
17
- * Data loading state
18
- */
19
- loading?: boolean;
20
- /**
21
- * Table columns
22
- */
23
- columns: GridColumns;
24
- /**
25
- * Table rows
26
- */
27
- rows: GridRowsProp;
28
- /**
29
- * Rows count to display
30
- */
31
- rowCount: number;
32
- disableMargin?: boolean;
33
- /**
34
- * Data display mode.
35
- * Values: `client` | `server`;
36
- * Default: `server`
37
- */
38
- mode?: GridFeatureMode;
39
- /**
40
- * Page size. Default `10`
41
- */
42
- initialPageSize?: number;
43
- /**
44
- * On cell click handler function
45
- * ```typescript
46
- * (params: GridCellParams, event: React.MouseEvent) => void;
47
- * ```
48
- */
49
- onCellClick?: (params: GridCellParams, event: React.MouseEvent) => void;
50
- pagination?: boolean;
51
- }
52
-
53
- /**
54
- * Main data display component. MUI DataGrid used
55
- * @category Common UI components
56
- */
57
- export const Table = ({
58
- columns,
59
- rows,
60
- rowCount,
61
- loading,
62
- disableMargin,
63
- mode = 'server',
64
- initialPageSize = 10,
65
- pagination = true,
66
- onCellClick,
67
- }: TableProps) => {
68
- const { classes } = useStyles();
69
-
70
- const { page, size, onPageChange, onSizeChange } = useTableQueryPagination({ mode });
71
- const { onColumnHeaderClick, getSortedColumns } = useTableQuerySorting();
72
-
73
- const { pageSize, handlePageSizeChange } = usePagination(initialPageSize);
74
-
75
- const tableProps = {
76
- sortingMode: mode,
77
- paginationMode: mode,
78
- pageSize: mode === 'server' ? size : pagination ? pageSize : rowCount,
79
- onPageSizeChange: mode === 'server' ? onSizeChange : handlePageSizeChange,
80
- components: {
81
- Pagination: TablePagination,
82
- },
83
- };
84
-
85
- if (mode === 'server') {
86
- tableProps['sortModel'] = [];
87
- tableProps['onColumnHeaderClick'] = onColumnHeaderClick;
88
- tableProps['page'] = page;
89
- tableProps['onPageChange'] = onPageChange;
90
- tableProps.components['ColumnMenu'] = TableColumnMenu;
91
- }
92
-
93
-
94
- return (
95
- <Box mt={disableMargin ? 0 : 2}>
96
- <DataGrid
97
- autoHeight
98
- hideFooterPagination={!pagination}
99
- hideFooter={!pagination}
100
- disableSelectionOnClick
101
- showColumnRightBorder
102
- showCellRightBorder
103
- className={classes.root}
104
- loading={loading}
105
- rows={rows}
106
- columns={getSortedColumns(columns)}
107
- rowCount={rowCount}
108
- rowsPerPageOptions={[10, 20, 50, 100]}
109
- onCellClick={onCellClick}
110
- {...tableProps}
111
- />
112
-
113
- </Box>
114
- );
115
- };
116
-
117
- export default Table;
@@ -1,43 +0,0 @@
1
- import Tooltip from '@mui/material/Tooltip';
2
- import { GridActionsCellItem } from '@mui/x-data-grid';
3
- import IconButton from '@mui/material/IconButton';
4
- import { Link } from 'react-router-dom';
5
- import React, { ReactElement } from 'react';
6
-
7
- type Props = {
8
- icon: ReactElement;
9
- onClick?: () => void;
10
- label: string;
11
- showInMenu?: boolean;
12
- location?: {
13
- pathname: string;
14
- state?: Record<string, unknown>;
15
- }
16
- };
17
-
18
- export const TableAction = ({ icon, label, showInMenu, onClick, location }: Props) => {
19
- if (location) {
20
- return (
21
- <IconButton component={Link} to={location} size="small">
22
- <Tooltip title={label} arrow>
23
- {React.cloneElement(icon, { fontSize: 'small' })}
24
- </Tooltip>
25
- </IconButton>
26
- )
27
- }
28
- return (
29
- <GridActionsCellItem
30
- nonce=""
31
- onResize={undefined}
32
- onResizeCapture={undefined}
33
- icon={
34
- <Tooltip title={label} arrow>
35
- {icon}
36
- </Tooltip>
37
- }
38
- onClick={onClick}
39
- label={label}
40
- showInMenu={showInMenu}
41
- />
42
- );
43
- };
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import { GridColumnMenuContainer, GridFilterMenuItem } from '@mui/x-data-grid';
3
-
4
- const TableColumnMenu = ({ hideMenu, currentColumn, onUnsort, ...rest }: any) => {
5
- return (
6
- <GridColumnMenuContainer hideMenu={hideMenu} currentColumn={currentColumn} {...rest}>
7
- <GridFilterMenuItem onClick={hideMenu} column={currentColumn} />
8
- </GridColumnMenuContainer>
9
- );
10
- };
11
-
12
- export default TableColumnMenu;
@@ -1,42 +0,0 @@
1
- import React from 'react';
2
- import Box from '@mui/material/Box';
3
- import Pagination from '@mui/material/Pagination';
4
- import MuiTablePagination from '@mui/material/TablePagination';
5
- import {
6
- gridPageCountSelector,
7
- gridPageSelector,
8
- gridRowCountSelector,
9
- gridPageSizeSelector,
10
- useGridApiContext,
11
- useGridSelector,
12
- } from '@mui/x-data-grid';
13
-
14
- const TablePagination = () => {
15
- const apiRef = useGridApiContext();
16
- const page = useGridSelector(apiRef, gridPageSelector);
17
- const pageCount = useGridSelector(apiRef, gridPageCountSelector);
18
- const rowCount = useGridSelector(apiRef, gridRowCountSelector);
19
- const pageSize = useGridSelector(apiRef, gridPageSizeSelector);
20
-
21
- const onPageChange = (value) => apiRef.current.setPage(value);
22
- const onRowsPerPageChange = (event: React.ChangeEvent<HTMLInputElement>) =>
23
- apiRef.current.setPageSize(parseInt(event.target.value, 10));
24
-
25
- return (
26
- <Box px={2} display="flex" alignItems="center">
27
- <MuiTablePagination
28
- component="div"
29
- page={page}
30
- count={rowCount}
31
- rowsPerPage={pageSize}
32
- rowsPerPageOptions={[10, 20, 50, 100]}
33
- onPageChange={(event, value) => onPageChange(value)}
34
- onRowsPerPageChange={onRowsPerPageChange}
35
- ActionsComponent={undefined}
36
- />
37
- <Pagination count={pageCount} page={page + 1} onChange={(event, value) => onPageChange(value - 1)} />
38
- </Box>
39
- );
40
- };
41
-
42
- export default TablePagination;
@@ -1,2 +0,0 @@
1
- export * from './Table';
2
- export * from './TableAction';
@@ -1,59 +0,0 @@
1
- import { makeStyles } from 'tss-react/mui';
2
-
3
- export default makeStyles()({
4
- root: {
5
- width: '100%',
6
-
7
- '& .MuiDataGrid-virtualScrollerContent': {
8
- height: 'auto !important',
9
- minHeight: '56px !important',
10
- },
11
-
12
- '& .MuiDataGrid-virtualScrollerRenderZone': {
13
- position: 'static',
14
- },
15
-
16
- '& .MuiDataGrid-renderingZone': {
17
- maxHeight: 'none !important',
18
- },
19
-
20
- '& .MuiDataGrid-cell': {
21
- maxHeight: 'none !important',
22
- lineHeight: 'unset !important',
23
- // whiteSpace: 'normal !important',
24
- textOverflow: 'ellipsis',
25
- wordBreak: 'break-all',
26
-
27
- '& .MuiDataGrid-actionsCell': {
28
- width: '100%',
29
- gridGap: '4px',
30
- flexWrap: 'wrap',
31
-
32
- '& > button[aria-label="more"]': {
33
- marginLeft: 'auto',
34
- },
35
- },
36
- },
37
-
38
- '& .MuiDataGrid-row': {
39
- maxHeight: 'none !important',
40
- },
41
-
42
- '& .Sorted': {
43
- '& .MuiDataGrid-iconButtonContainer': {
44
- visibility: 'visible',
45
- width: 'auto',
46
-
47
- '& svg': {
48
- opacity: '1 !important',
49
- },
50
- },
51
-
52
- '&.--desc': {
53
- '& svg': {
54
- transform: 'rotate(180deg)',
55
- },
56
- },
57
- },
58
- },
59
- });
@@ -1,15 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
-
3
- const usePagination = (initialPageSize?: number) => {
4
- const [pageSize, setPageSize] = useState(10);
5
-
6
- useEffect(() => {
7
- setPageSize(initialPageSize);
8
- }, [initialPageSize]);
9
-
10
- const handlePageSizeChange = (size) => setPageSize(size);
11
-
12
- return { pageSize, handlePageSizeChange };
13
- };
14
-
15
- export default usePagination;
@@ -1,47 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { useSearchParams } from 'react-router-dom';
3
- import { GridFeatureMode } from '@mui/x-data-grid';
4
-
5
- interface Props {
6
- mode: GridFeatureMode;
7
- }
8
-
9
- export const useTableQueryPagination = ({ mode }: Props) => {
10
- const [queryParams, setQueryParams] = useSearchParams();
11
-
12
- const page = +queryParams.get('page') || 0;
13
- const size = +queryParams.get('size') || 10;
14
-
15
- const onPageChange = (newPage: number) => {
16
- queryParams.set('page', `${newPage}`);
17
- setQueryParams(queryParams, { replace: true });
18
- };
19
-
20
- const onSizeChange = (count: number) => {
21
- queryParams.set('size', `${count}`);
22
- setQueryParams(queryParams, { replace: true });
23
- };
24
-
25
- useEffect(() => {
26
- if (mode === 'server') {
27
- if (!queryParams.has('page')) {
28
- queryParams.set('page', '0');
29
- }
30
-
31
- if (!queryParams.has('size')) {
32
- queryParams.set('size', `10`);
33
- }
34
-
35
- setQueryParams(queryParams, { replace: true });
36
- }
37
- }, [mode, queryParams, setQueryParams]);
38
-
39
- return {
40
- page,
41
- size,
42
- onPageChange,
43
- onSizeChange,
44
- };
45
- };
46
-
47
- export default useTableQueryPagination;
@@ -1,47 +0,0 @@
1
- import { useSearchParams } from 'react-router-dom';
2
- import { GridColumnHeaderParams, GridColumns } from '@mui/x-data-grid';
3
-
4
- export const useTableQuerySorting = () => {
5
- const [queryParams, setQueryParams] = useSearchParams();
6
- const sortParams = queryParams.getAll('sort').map((param) => param.split(','));
7
-
8
- const onColumnHeaderClick = ({ field }: GridColumnHeaderParams) => {
9
- let keyFound = false;
10
-
11
- const sortValues = queryParams.getAll('sort');
12
- queryParams.delete('sort');
13
-
14
- sortValues.forEach((sortValue) => {
15
- const [key, sort] = sortValue.split(',');
16
- if (key === field) {
17
- keyFound = true;
18
- if (sort === 'asc') {
19
- queryParams.append('sort', `${key},desc`);
20
- }
21
- } else {
22
- queryParams.append('sort', `${key},${sort}`);
23
- }
24
- });
25
-
26
- if (!keyFound) {
27
- queryParams.append('sort', `${field},asc`);
28
- }
29
- setQueryParams(queryParams, { replace: true });
30
- };
31
-
32
- const getSortedColumns = (columns: GridColumns): GridColumns => {
33
- return columns.map((column) => {
34
- const columnSort = sortParams.find((param) => param[0] === column.field);
35
- if (columnSort) {
36
- column.headerClassName = `Sorted --${columnSort[1]} `;
37
- } else {
38
- column.headerClassName = '';
39
- }
40
- return column;
41
- });
42
- };
43
-
44
- return { onColumnHeaderClick, getSortedColumns };
45
- };
46
-
47
- export default useTableQuerySorting;
@@ -1,138 +0,0 @@
1
- import { ReactNode, forwardRef, ForwardedRef } from 'react';
2
- import MuiTable from '@mui/material/Table';
3
- import TableBody from '@mui/material/TableBody';
4
- import TableCell from '@mui/material/TableCell';
5
- import TableContainer from '@mui/material/TableContainer';
6
- import TableHead from '@mui/material/TableHead';
7
- import TablePagination from '@mui/material/TablePagination';
8
- import TableRow from '@mui/material/TableRow';
9
- import TableSortLabel from '@mui/material/TableSortLabel';
10
- import TableFooter from '@mui/material/TableFooter';
11
-
12
- import { Column, Row } from '../../../interfaces';
13
- import { Loader } from '../../Loader';
14
- import Backdrop from '@mui/material/Backdrop';
15
- import useTablePagination from './useTablePagination';
16
- import useTableSorting from './useTableSorting';
17
-
18
- type SortDirection = "asc" | "desc";
19
-
20
- interface Props<T> {
21
- columns: Column<T>[];
22
- rows: Row<T>[];
23
- totalCount: number;
24
- loading?: boolean;
25
- pagination?: boolean;
26
- onRowClick?: (row: Row<T>) => void;
27
- children?: ReactNode;
28
- verticalAlign?: 'top' | 'middle' | 'bottom' | 'sub' | 'baseline';
29
- }
30
-
31
- function TableInner<T>({
32
- columns = [],
33
- rows = [],
34
- totalCount,
35
- children,
36
- pagination = true,
37
- loading = false,
38
- onRowClick,
39
- verticalAlign = 'middle'
40
- }: Props<T>, ref: ForwardedRef<HTMLTableElement>) {
41
- const { page, size, onPageChange, onSizeChange } = useTablePagination();
42
- const { onSortChanged, getColumnSorting } = useTableSorting();
43
-
44
- return (
45
- <TableContainer sx={{ position: 'relative', overflow: 'visible' }}>
46
- <Backdrop open={loading} sx={{ position: 'absolute', top: 0, left: 0 }}>
47
- <Loader />
48
- </Backdrop>
49
- <MuiTable ref={ref}>
50
- <TableHead>
51
- <TableRow>
52
- {columns.map((column, index) => {
53
- const sortDirection = column.sortKey
54
- ? getColumnSorting(column.sortKey)
55
- : false;
56
- return (
57
- <TableCell
58
- key={index}
59
- align={column.align ? column.align : 'left'}
60
- sortDirection={sortDirection as SortDirection}
61
- sx={{ width: column.width ? `${column.width}%` : 'unset' }}
62
- >
63
- <TableSortLabel
64
- active={!!sortDirection}
65
- hideSortIcon={!column.sortKey}
66
- direction={(sortDirection as SortDirection) || 'asc'}
67
- onClick={() =>
68
- column.sortKey ? onSortChanged(column.sortKey) : {}
69
- }
70
- >
71
- {column.label}
72
- </TableSortLabel>
73
- </TableCell>
74
- );
75
- })}
76
- </TableRow>
77
- </TableHead>
78
- <TableBody>
79
- {rows.map((row, index) => (
80
- <TableRow
81
- hover
82
- onClick={onRowClick ? () => onRowClick(row) : row.onClick}
83
- key={index}
84
- sx={{ verticalAlign }}
85
- >
86
- {columns.map((column, idx) => (
87
- <TableCell
88
- key={idx}
89
- align={column.align ? column.align : 'left'}
90
- sx={{ width: column.width ? `${column.width}%` : 'unset' }}
91
- >
92
- {column.renderCell
93
- ? column.renderCell(row, index)
94
- : ((row as any)[column.id] as string)}
95
- </TableCell>
96
- ))}
97
- </TableRow>
98
- ))}
99
- </TableBody>
100
- {(pagination || children) ? (
101
- <TableFooter>
102
- <TableRow>
103
- {
104
- children && (
105
- <TableCell
106
- colSpan={columns.length}
107
- sx={{ background: '#F0F0F7', px: 4, py: 3 }}
108
- >
109
- {children}
110
- </TableCell>
111
- )
112
- }
113
- {
114
- pagination && rows.length && (
115
- <TablePagination
116
- rowsPerPageOptions={[5, 10, 25]}
117
- count={totalCount}
118
- rowsPerPage={+size}
119
- page={+page}
120
- sx={{ borderBottom: 'none' }}
121
- onPageChange={(_, page) => onPageChange(page)}
122
- onRowsPerPageChange={(event) =>
123
- onSizeChange(+event.target.value)
124
- }
125
- />
126
- )
127
- }
128
- </TableRow>
129
- </TableFooter>
130
- ) : null}
131
- </MuiTable>
132
- </TableContainer>
133
- );
134
- }
135
- export const SimpleTable = forwardRef(TableInner) as <T>(
136
- props: Props<T> & { ref?: ForwardedRef<HTMLTableElement> }
137
- ) => ReturnType<typeof TableInner>;
138
- export default SimpleTable;
@@ -1,67 +0,0 @@
1
- import { useState, MouseEvent } from 'react';
2
- import IconButton from '@mui/material/IconButton';
3
- import Menu from '@mui/material/Menu';
4
- import MenuItem from '@mui/material/MenuItem';
5
- import MoreHorizIcon from '@mui/icons-material/MoreHoriz';
6
-
7
- type ActionItem = {
8
- title: string;
9
- onClick: (e?: MouseEvent<HTMLElement>) => void;
10
- }
11
-
12
- type Props = {
13
- actionsList: ActionItem[]
14
- }
15
-
16
- export const TableActionCell = ({ actionsList }: Props) => {
17
- const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
18
- const open = Boolean(anchorEl);
19
- const handleClick = (e: MouseEvent<HTMLElement>) => {
20
- e.stopPropagation();
21
- setAnchorEl(e.currentTarget);
22
- };
23
- const handleClose = () => {
24
- setAnchorEl(null);
25
- };
26
- return (
27
- <div>
28
- <IconButton
29
- aria-label="more"
30
- id="more-button"
31
- aria-controls={open ? 'more-menu' : undefined}
32
- aria-expanded={open ? 'true' : undefined}
33
- aria-haspopup="true"
34
- onClick={handleClick}
35
- >
36
- <MoreHorizIcon />
37
- </IconButton>
38
- <Menu
39
- id="more-menu"
40
- MenuListProps={{
41
- 'aria-labelledby': 'more-button',
42
- }}
43
- anchorEl={anchorEl}
44
- open={open}
45
- onClose={(e: MouseEvent<HTMLElement>) => {
46
- e.stopPropagation();
47
- handleClose();
48
- }}
49
- PaperProps={{
50
- style: {
51
- minWidth: '127px'
52
- }
53
- }}
54
- >
55
- {actionsList.map((option) => (
56
- <MenuItem key={option.title} onClick={(e: MouseEvent<HTMLElement>) => {
57
- e.stopPropagation();
58
- if (option.onClick) option.onClick();
59
- handleClose();
60
- }}>
61
- {option.title}
62
- </MenuItem>
63
- ))}
64
- </Menu>
65
- </div>
66
- )
67
- }
@@ -1,2 +0,0 @@
1
- export * from './SimpleTable';
2
- export * from './TableActionCell';
@@ -1,54 +0,0 @@
1
- import { useCallback, useEffect, useMemo } from 'react';
2
- import { useSearchParams } from 'react-router-dom';
3
-
4
- const useTablePagination = () => {
5
- const [searchParams, setSearchParams] = useSearchParams();
6
-
7
- const page = useMemo(
8
- () => searchParams.get('page') ?? 0,
9
- [searchParams]
10
- );
11
- const size = useMemo(
12
- () => searchParams.get('size') ?? 10,
13
- [searchParams]
14
- );
15
-
16
- const onPageChange = useCallback(
17
- (newPage: number) => {
18
- setSearchParams((params) => {
19
- params.set('page', `${newPage}`);
20
- return params;
21
- });
22
- },
23
- [setSearchParams]
24
- );
25
-
26
- const onSizeChange = useCallback(
27
- (newSize: number) => {
28
- setSearchParams((params) => {
29
- params.set('size', `${newSize}`);
30
- return params;
31
- });
32
- },
33
- [setSearchParams]
34
- );
35
-
36
- useEffect(() => {
37
- if (!searchParams.has('page')) {
38
- setSearchParams((params) => {
39
- params.set('page', '0');
40
- return params;
41
- });
42
- }
43
- if (!searchParams.has('size')) {
44
- setSearchParams((params) => {
45
- params.set('size', '10');
46
- return params;
47
- });
48
- }
49
- }, [searchParams, setSearchParams]);
50
-
51
- return { page, size, onPageChange, onSizeChange };
52
- };
53
-
54
- export default useTablePagination;