@applica-software-guru/react-admin 1.0.41 → 1.0.43

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 (253) hide show
  1. package/bitbucket-pipelines.yml +2 -0
  2. package/dist/ApplicaAdmin.d.ts.map +1 -1
  3. package/dist/components/@extended/AnimateButton.d.ts +1 -1
  4. package/dist/components/@extended/AnimateButton.d.ts.map +1 -1
  5. package/dist/components/@extended/Avatar.d.ts.map +1 -1
  6. package/dist/components/@extended/Breadcrumbs.d.ts.map +1 -1
  7. package/dist/components/@extended/IconButton.d.ts.map +1 -1
  8. package/dist/components/@extended/LoadingButton.d.ts.map +1 -1
  9. package/dist/components/@extended/Tooltip.d.ts.map +1 -1
  10. package/dist/components/@extended/Transitions.d.ts.map +1 -1
  11. package/dist/components/@extended/progress/CircularWithLabel.d.ts.map +1 -1
  12. package/dist/components/@extended/progress/CircularWithPath.d.ts.map +1 -1
  13. package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.d.ts +1 -1
  14. package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.d.ts.map +1 -1
  15. package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavGroup.d.ts.map +1 -1
  16. package/dist/components/Layout/Drawer/DrawerContent/Navigation/NavItem.d.ts.map +1 -1
  17. package/dist/components/Layout/Drawer/DrawerHeader/DrawerHeaderStyled.d.ts.map +1 -1
  18. package/dist/components/Layout/Drawer/DrawerHeader/index.d.ts.map +1 -1
  19. package/dist/components/Layout/Drawer/MiniDrawerStyled.d.ts.map +1 -1
  20. package/dist/components/Layout/Drawer/index.d.ts.map +1 -1
  21. package/dist/components/Layout/Footer.d.ts.map +1 -1
  22. package/dist/components/Layout/Header/AppBarStyled.d.ts.map +1 -1
  23. package/dist/components/Layout/Header/HeaderContent/Notification.d.ts.map +1 -1
  24. package/dist/components/Layout/Header/HeaderContent/NotificationItem.d.ts.map +1 -1
  25. package/dist/components/Layout/Header/HeaderContent/Profile.d.ts.map +1 -1
  26. package/dist/components/Layout/Header/HeaderContent/index.d.ts.map +1 -1
  27. package/dist/components/Layout/Header/index.d.ts.map +1 -1
  28. package/dist/components/Layout/index.d.ts.map +1 -1
  29. package/dist/components/MenuPopover/styles.d.ts.map +1 -1
  30. package/dist/components/Notification.d.ts.map +1 -1
  31. package/dist/components/ScrollX.d.ts.map +1 -1
  32. package/dist/components/ra-buttons/EditInDialogButton.d.ts.map +1 -1
  33. package/dist/components/ra-fields/CoverField.d.ts.map +1 -1
  34. package/dist/components/ra-fields/DateAgoField.d.ts.map +1 -1
  35. package/dist/components/ra-fields/ReadonlyField.d.ts.map +1 -1
  36. package/dist/components/ra-forms/CardForm.d.ts.map +1 -1
  37. package/dist/components/ra-forms/LongForm/useFormRootPath.d.ts.map +1 -1
  38. package/dist/components/ra-forms/TabbedForm.d.ts.map +1 -1
  39. package/dist/components/ra-inputs/ReferenceManyInput.d.ts.map +1 -1
  40. package/dist/components/ra-lists/Empty.d.ts.map +1 -1
  41. package/dist/components/ra-lists/NotificationList/NotificationList.d.ts.map +1 -1
  42. package/dist/components/ra-lists/NotificationList/button/MarkAsReadedButton.d.ts.map +1 -1
  43. package/dist/components/ra-lists/NotificationList/field/NotificationField.d.ts.map +1 -1
  44. package/dist/contexts/MenuConfigContext.d.ts.map +1 -1
  45. package/dist/contexts/MenuPropTypes.d.ts.map +1 -1
  46. package/dist/dev/useCliErrorCatcher.d.ts +1 -1
  47. package/dist/hooks/useMenu.d.ts.map +1 -1
  48. package/dist/i18n/useI18nCatcher.d.ts +1 -1
  49. package/dist/i18n/useI18nLanguages.d.ts +1 -1
  50. package/dist/i18n/useI18nLanguages.d.ts.map +1 -1
  51. package/dist/i18n/useI18nProvider.d.ts.map +1 -1
  52. package/dist/react-admin.cjs.js +2 -1
  53. package/dist/react-admin.cjs.js.map +1 -0
  54. package/dist/react-admin.es.js +300 -784
  55. package/dist/react-admin.es.js.map +1 -0
  56. package/dist/react-admin.umd.js +2 -1
  57. package/dist/react-admin.umd.js.map +1 -0
  58. package/dist/themes/overrides/OutlinedInput.d.ts.map +1 -1
  59. package/dist/themes/palette.d.ts.map +1 -1
  60. package/dist/themes/theme/theme1.d.ts.map +1 -1
  61. package/dist/themes/theme/theme2.d.ts.map +1 -1
  62. package/dist/themes/theme/theme3.d.ts.map +1 -1
  63. package/dist/themes/theme/theme4.d.ts.map +1 -1
  64. package/dist/themes/theme/theme5.d.ts.map +1 -1
  65. package/dist/themes/theme/theme6.d.ts.map +1 -1
  66. package/dist/themes/theme/theme7.d.ts.map +1 -1
  67. package/dist/themes/theme/theme8.d.ts.map +1 -1
  68. package/dist/utils/index.d.ts +2 -2
  69. package/dist/utils/index.d.ts.map +1 -1
  70. package/dist/utils/lang.d.ts +1 -1
  71. package/dist/utils/lang.d.ts.map +1 -1
  72. package/dist/utils/time.d.ts +2 -1
  73. package/dist/utils/time.d.ts.map +1 -1
  74. package/package.json +2 -2
  75. package/src/Admin.jsx +8 -8
  76. package/src/AdminContext.jsx +9 -9
  77. package/src/ApplicaAdmin.jsx +30 -35
  78. package/src/components/@extended/AnimateButton.jsx +25 -33
  79. package/src/components/@extended/Avatar.jsx +35 -42
  80. package/src/components/@extended/Breadcrumbs.jsx +62 -96
  81. package/src/components/@extended/Dot.jsx +14 -14
  82. package/src/components/@extended/IconButton.jsx +55 -65
  83. package/src/components/@extended/LoadingButton.jsx +84 -86
  84. package/src/components/@extended/Tooltip.jsx +24 -27
  85. package/src/components/@extended/Transitions.jsx +98 -107
  86. package/src/components/@extended/index.jsx +10 -10
  87. package/src/components/@extended/progress/CircularWithLabel.jsx +7 -9
  88. package/src/components/@extended/progress/CircularWithPath.jsx +9 -18
  89. package/src/components/@extended/progress/LinearWithIcon.jsx +5 -5
  90. package/src/components/@extended/progress/LinearWithLabel.jsx +5 -5
  91. package/src/components/@extended/progress/index.jsx +5 -5
  92. package/src/components/Layout/Drawer/DrawerContent/Navigation/NavCollapse.jsx +112 -131
  93. package/src/components/Layout/Drawer/DrawerContent/Navigation/NavGroup.jsx +67 -88
  94. package/src/components/Layout/Drawer/DrawerContent/Navigation/NavItem.jsx +63 -79
  95. package/src/components/Layout/Drawer/DrawerContent/Navigation/index.jsx +28 -28
  96. package/src/components/Layout/Drawer/DrawerContent/index.jsx +7 -7
  97. package/src/components/Layout/Drawer/DrawerHeader/DrawerHeaderStyled.jsx +13 -15
  98. package/src/components/Layout/Drawer/DrawerHeader/index.jsx +17 -22
  99. package/src/components/Layout/Drawer/HorizontalBar.jsx +17 -17
  100. package/src/components/Layout/Drawer/MiniDrawerStyled.jsx +27 -29
  101. package/src/components/Layout/Drawer/index.jsx +21 -24
  102. package/src/components/Layout/Footer.jsx +7 -12
  103. package/src/components/Layout/Header/AppBarStyled.jsx +26 -28
  104. package/src/components/Layout/Header/HeaderContent/MobileSection.jsx +27 -27
  105. package/src/components/Layout/Header/HeaderContent/Notification.jsx +34 -55
  106. package/src/components/Layout/Header/HeaderContent/NotificationItem.jsx +24 -36
  107. package/src/components/Layout/Header/HeaderContent/Profile.jsx +48 -73
  108. package/src/components/Layout/Header/HeaderContent/index.jsx +16 -18
  109. package/src/components/Layout/Header/index.jsx +25 -43
  110. package/src/components/Layout/index.jsx +36 -52
  111. package/src/components/Loadable.jsx +4 -4
  112. package/src/components/Loader.jsx +7 -7
  113. package/src/components/Logo.jsx +14 -14
  114. package/src/components/MainIcon.jsx +6 -6
  115. package/src/components/MenuPopover/MenuPopover.jsx +15 -15
  116. package/src/components/MenuPopover/getPosition.jsx +40 -40
  117. package/src/components/MenuPopover/index.jsx +3 -3
  118. package/src/components/MenuPopover/styles.jsx +20 -20
  119. package/src/components/Notification.jsx +7 -7
  120. package/src/components/ScrollTop.jsx +13 -13
  121. package/src/components/ScrollX.jsx +4 -4
  122. package/src/components/SmallIcon.jsx +6 -6
  123. package/src/components/ra-buttons/EditInDialogButton.jsx +39 -45
  124. package/src/components/ra-buttons/ImpersonateUserButton.jsx +20 -20
  125. package/src/components/ra-buttons/index.jsx +4 -4
  126. package/src/components/ra-fields/ActionsField.jsx +12 -12
  127. package/src/components/ra-fields/CoverField.jsx +20 -26
  128. package/src/components/ra-fields/DateAgoField.jsx +17 -20
  129. package/src/components/ra-fields/DateField.jsx +14 -14
  130. package/src/components/ra-fields/EmailField.jsx +14 -14
  131. package/src/components/ra-fields/FileField.jsx +23 -23
  132. package/src/components/ra-fields/FunctionField.jsx +5 -5
  133. package/src/components/ra-fields/ImageField.jsx +11 -11
  134. package/src/components/ra-fields/ReadonlyField.jsx +40 -42
  135. package/src/components/ra-fields/ReferenceManyField.jsx +21 -21
  136. package/src/components/ra-fields/SizeField.jsx +15 -15
  137. package/src/components/ra-fields/TextField.jsx +14 -14
  138. package/src/components/ra-fields/index.jsx +15 -15
  139. package/src/components/ra-forms/CardForm.jsx +34 -40
  140. package/src/components/ra-forms/LongForm/useFormRootPath.ts +8 -13
  141. package/src/components/ra-forms/TabbedForm.jsx +10 -10
  142. package/src/components/ra-forms/Toolbar.jsx +15 -15
  143. package/src/components/ra-forms/index.jsx +9 -9
  144. package/src/components/ra-inputs/AutocompleteArrayInput.jsx +7 -7
  145. package/src/components/ra-inputs/AutocompleteInput.jsx +9 -9
  146. package/src/components/ra-inputs/BooleanInput.jsx +19 -19
  147. package/src/components/ra-inputs/DateInput.jsx +13 -13
  148. package/src/components/ra-inputs/FileInput.jsx +33 -33
  149. package/src/components/ra-inputs/ImageInput.jsx +19 -19
  150. package/src/components/ra-inputs/NumberInput.jsx +13 -13
  151. package/src/components/ra-inputs/RecordInput.jsx +39 -39
  152. package/src/components/ra-inputs/ReferenceArrayInput.jsx +10 -10
  153. package/src/components/ra-inputs/ReferenceInput.jsx +10 -10
  154. package/src/components/ra-inputs/ReferenceManyInput.jsx +13 -24
  155. package/src/components/ra-inputs/SearchInput.jsx +6 -6
  156. package/src/components/ra-inputs/SelectArrayInput.jsx +19 -19
  157. package/src/components/ra-inputs/TimeInput.jsx +21 -21
  158. package/src/components/ra-lists/Empty.jsx +32 -37
  159. package/src/components/ra-lists/List.jsx +9 -9
  160. package/src/components/ra-lists/NotificationList/NotificationList.jsx +14 -16
  161. package/src/components/ra-lists/NotificationList/button/MarkAsReadedButton.jsx +21 -25
  162. package/src/components/ra-lists/NotificationList/button/MarkAsUnreadedButton.jsx +19 -19
  163. package/src/components/ra-lists/NotificationList/button/index.jsx +2 -2
  164. package/src/components/ra-lists/NotificationList/field/NotificationField.jsx +20 -31
  165. package/src/components/ra-lists/NotificationList/field/index.jsx +1 -1
  166. package/src/components/ra-lists/NotificationList/index.jsx +2 -2
  167. package/src/components/ra-lists/index.jsx +5 -5
  168. package/src/components/third-party/SimpleBar.jsx +10 -10
  169. package/src/components/third-party/index.jsx +2 -2
  170. package/src/contexts/MenuConfigContext.jsx +35 -35
  171. package/src/contexts/MenuPropTypes.jsx +7 -7
  172. package/src/contexts/index.jsx +5 -5
  173. package/src/dev/index.jsx +2 -2
  174. package/src/dev/useCliErrorCatcher.jsx +32 -32
  175. package/src/hooks/index.jsx +8 -16
  176. package/src/hooks/useAppConfig.jsx +4 -4
  177. package/src/hooks/useBreadcrumbs.jsx +37 -37
  178. package/src/hooks/useLocalStorage.jsx +16 -16
  179. package/src/hooks/useMenu.jsx +83 -88
  180. package/src/hooks/useMenuConfig.jsx +4 -4
  181. package/src/hooks/useResourceTitle.jsx +13 -13
  182. package/src/hooks/useThemeConfig.jsx +4 -4
  183. package/src/i18n/createI18nProvider.jsx +7 -7
  184. package/src/i18n/index.jsx +4 -4
  185. package/src/i18n/useI18nCatcher.jsx +26 -26
  186. package/src/i18n/useI18nLanguages.jsx +12 -16
  187. package/src/i18n/useI18nProvider.jsx +3 -4
  188. package/src/themes/getColors.jsx +8 -8
  189. package/src/themes/getShadow.jsx +17 -17
  190. package/src/themes/index.jsx +29 -29
  191. package/src/themes/overrides/Accordion.jsx +9 -9
  192. package/src/themes/overrides/AccordionDetails.jsx +5 -5
  193. package/src/themes/overrides/AccordionSummary.jsx +11 -11
  194. package/src/themes/overrides/Alert.jsx +21 -21
  195. package/src/themes/overrides/AlertTitle.jsx +5 -5
  196. package/src/themes/overrides/Autocomplete.jsx +9 -9
  197. package/src/themes/overrides/Badge.jsx +12 -12
  198. package/src/themes/overrides/Button.jsx +62 -62
  199. package/src/themes/overrides/ButtonBase.jsx +4 -4
  200. package/src/themes/overrides/ButtonGroup.jsx +4 -4
  201. package/src/themes/overrides/CardContent.jsx +6 -6
  202. package/src/themes/overrides/Checkbox.jsx +31 -31
  203. package/src/themes/overrides/Chip.jsx +22 -22
  204. package/src/themes/overrides/Dialog.jsx +7 -7
  205. package/src/themes/overrides/DialogContentText.jsx +5 -5
  206. package/src/themes/overrides/DialogTitle.jsx +5 -5
  207. package/src/themes/overrides/Fab.jsx +21 -21
  208. package/src/themes/overrides/IconButton.jsx +8 -8
  209. package/src/themes/overrides/InputBase.jsx +3 -3
  210. package/src/themes/overrides/InputLabel.jsx +8 -8
  211. package/src/themes/overrides/LinearProgress.jsx +6 -6
  212. package/src/themes/overrides/Link.jsx +4 -4
  213. package/src/themes/overrides/ListItemButton.jsx +7 -7
  214. package/src/themes/overrides/ListItemIcon.jsx +5 -5
  215. package/src/themes/overrides/LoadingButton.jsx +6 -6
  216. package/src/themes/overrides/OutlinedInput.jsx +20 -21
  217. package/src/themes/overrides/Pagination.jsx +4 -4
  218. package/src/themes/overrides/PaginationItem.jsx +55 -55
  219. package/src/themes/overrides/Popover.jsx +5 -5
  220. package/src/themes/overrides/Radio.jsx +30 -30
  221. package/src/themes/overrides/Slider.jsx +20 -20
  222. package/src/themes/overrides/Switch.jsx +26 -26
  223. package/src/themes/overrides/Tab.jsx +7 -7
  224. package/src/themes/overrides/TableBody.jsx +11 -11
  225. package/src/themes/overrides/TableCell.jsx +12 -12
  226. package/src/themes/overrides/TableFooter.jsx +5 -5
  227. package/src/themes/overrides/TableHead.jsx +5 -5
  228. package/src/themes/overrides/TablePagination.jsx +6 -6
  229. package/src/themes/overrides/TableRow.jsx +10 -10
  230. package/src/themes/overrides/Tabs.jsx +5 -5
  231. package/src/themes/overrides/ToggleButton.jsx +7 -7
  232. package/src/themes/overrides/Tooltip.jsx +5 -5
  233. package/src/themes/overrides/TreeItem.jsx +7 -7
  234. package/src/themes/overrides/Typography.jsx +5 -5
  235. package/src/themes/overrides/index.jsx +47 -47
  236. package/src/themes/palette.jsx +22 -34
  237. package/src/themes/shadows.jsx +4 -4
  238. package/src/themes/theme/default.jsx +17 -17
  239. package/src/themes/theme/index.jsx +23 -23
  240. package/src/themes/theme/theme1.jsx +24 -46
  241. package/src/themes/theme/theme2.jsx +24 -46
  242. package/src/themes/theme/theme3.jsx +24 -46
  243. package/src/themes/theme/theme4.jsx +24 -46
  244. package/src/themes/theme/theme5.jsx +24 -46
  245. package/src/themes/theme/theme6.jsx +24 -46
  246. package/src/themes/theme/theme7.jsx +24 -46
  247. package/src/themes/theme/theme8.jsx +24 -46
  248. package/src/themes/typography.jsx +16 -16
  249. package/src/utils/{lang.js → lang.ts} +4 -4
  250. package/src/utils/time.ts +14 -0
  251. package/vite.config.js +11 -10
  252. package/src/utils/time.js +0 -13
  253. /package/src/utils/{index.js → index.ts} +0 -0
@@ -1,7 +1,7 @@
1
- import PropTypes from 'prop-types'
1
+ import PropTypes from 'prop-types';
2
2
 
3
3
  // material-ui
4
- import { Box, CircularProgress, Typography } from '@mui/material'
4
+ import { Box, CircularProgress, Typography } from '@mui/material';
5
5
 
6
6
  // ==============================|| PROGRESS - CIRCULAR LABEL ||============================== //
7
7
 
@@ -18,17 +18,15 @@ export default function CircularWithLabel({ value, ...others }) {
18
18
  position: 'absolute',
19
19
  display: 'flex',
20
20
  alignItems: 'center',
21
- justifyContent: 'center',
21
+ justifyContent: 'center'
22
22
  }}
23
23
  >
24
- <Typography variant="caption" component="div" color="text.secondary">{`${Math.round(
25
- value,
26
- )}%`}</Typography>
24
+ <Typography variant="caption" component="div" color="text.secondary">{`${Math.round(value)}%`}</Typography>
27
25
  </Box>
28
26
  </Box>
29
- )
27
+ );
30
28
  }
31
29
 
32
30
  CircularWithLabel.propTypes = {
33
- value: PropTypes.number,
34
- }
31
+ value: PropTypes.number
32
+ };
@@ -1,20 +1,11 @@
1
- import PropTypes from 'prop-types'
1
+ import PropTypes from 'prop-types';
2
2
 
3
3
  // material-ui
4
- import { Box, CircularProgress, Typography, circularProgressClasses } from '@mui/material'
4
+ import { Box, CircularProgress, Typography, circularProgressClasses } from '@mui/material';
5
5
 
6
6
  // ==============================|| PROGRESS - CIRCULAR PATH ||============================== //
7
7
 
8
- export default function CircularWithPath({
9
- value,
10
- size,
11
- variant,
12
- thickness,
13
- showLabel,
14
- pathColor,
15
- sx,
16
- ...others
17
- }) {
8
+ export default function CircularWithPath({ value, size, variant, thickness, showLabel, pathColor, sx, ...others }) {
18
9
  return (
19
10
  <Box sx={{ position: 'relative', display: 'inline-flex' }}>
20
11
  <CircularProgress
@@ -35,7 +26,7 @@ export default function CircularWithPath({
35
26
  position: 'absolute',
36
27
  display: 'flex',
37
28
  alignItems: 'center',
38
- justifyContent: 'center',
29
+ justifyContent: 'center'
39
30
  }}
40
31
  >
41
32
  <Typography variant="caption" component="div" color="text.secondary">
@@ -50,8 +41,8 @@ export default function CircularWithPath({
50
41
  position: 'absolute',
51
42
  left: 0,
52
43
  [`& .${circularProgressClasses.circle}`]: {
53
- strokeLinecap: 'round',
54
- },
44
+ strokeLinecap: 'round'
45
+ }
55
46
  }}
56
47
  size={size}
57
48
  thickness={thickness}
@@ -59,7 +50,7 @@ export default function CircularWithPath({
59
50
  {...others}
60
51
  />
61
52
  </Box>
62
- )
53
+ );
63
54
  }
64
55
 
65
56
  CircularWithPath.propTypes = {
@@ -70,5 +61,5 @@ CircularWithPath.propTypes = {
70
61
  showLabel: PropTypes.bool,
71
62
  pathColor: PropTypes.string,
72
63
  sx: PropTypes.array,
73
- others: PropTypes.array,
74
- }
64
+ others: PropTypes.array
65
+ };
@@ -1,7 +1,7 @@
1
- import PropTypes from 'prop-types'
1
+ import PropTypes from 'prop-types';
2
2
 
3
3
  // material-ui
4
- import { Box, LinearProgress } from '@mui/material'
4
+ import { Box, LinearProgress } from '@mui/material';
5
5
 
6
6
  // ==============================|| PROGRESS - LINEAR ICON ||============================== //
7
7
 
@@ -13,10 +13,10 @@ export default function LinearWithIcon({ icon, value, ...others }) {
13
13
  </Box>
14
14
  <Box sx={{ minWidth: 35 }}>{icon}</Box>
15
15
  </Box>
16
- )
16
+ );
17
17
  }
18
18
 
19
19
  LinearWithIcon.propTypes = {
20
20
  icon: PropTypes.node,
21
- value: PropTypes.number,
22
- }
21
+ value: PropTypes.number
22
+ };
@@ -1,7 +1,7 @@
1
- import PropTypes from 'prop-types'
1
+ import PropTypes from 'prop-types';
2
2
 
3
3
  // material-ui
4
- import { Box, LinearProgress, Typography } from '@mui/material'
4
+ import { Box, LinearProgress, Typography } from '@mui/material';
5
5
 
6
6
  // ==============================|| PROGRESS - LINEAR WITH LABEL ||============================== //
7
7
 
@@ -15,9 +15,9 @@ export default function LinearWithLabel({ value, ...others }) {
15
15
  <Typography variant="body2" color="text.secondary">{`${Math.round(value)}%`}</Typography>
16
16
  </Box>
17
17
  </Box>
18
- )
18
+ );
19
19
  }
20
20
 
21
21
  LinearWithLabel.propTypes = {
22
- value: PropTypes.number,
23
- }
22
+ value: PropTypes.number
23
+ };
@@ -1,6 +1,6 @@
1
- import CircularWithLabel from './CircularWithLabel'
2
- import CircularWithPath from './CircularWithPath'
3
- import LinearWithIcon from './LinearWithIcon'
4
- import LinearWithLabel from './LinearWithLabel'
1
+ import CircularWithLabel from './CircularWithLabel';
2
+ import CircularWithPath from './CircularWithPath';
3
+ import LinearWithIcon from './LinearWithIcon';
4
+ import LinearWithLabel from './LinearWithLabel';
5
5
 
6
- export { CircularWithLabel, CircularWithPath, LinearWithIcon, LinearWithLabel }
6
+ export { CircularWithLabel, CircularWithPath, LinearWithIcon, LinearWithLabel };
@@ -1,4 +1,4 @@
1
- import { BorderOutlined, DownOutlined, RightOutlined, UpOutlined } from '@ant-design/icons'
1
+ import { BorderOutlined, DownOutlined, RightOutlined, UpOutlined } from '@ant-design/icons';
2
2
  import {
3
3
  Box,
4
4
  ClickAwayListener,
@@ -10,16 +10,16 @@ import {
10
10
  Paper,
11
11
  Popper,
12
12
  Typography,
13
- useMediaQuery,
14
- } from '@mui/material'
15
- import { Dot, Transitions } from '../../../../@extended'
16
- import React, { useEffect, useMemo, useState } from 'react'
17
- import { styled, useTheme } from '@mui/material/styles'
18
- import { useLocation, useNavigate } from 'react-router-dom'
19
- import { useMenuConfig, useThemeConfig } from '../../../../../hooks'
13
+ useMediaQuery
14
+ } from '@mui/material';
15
+ import { Dot, Transitions } from '../../../../@extended';
16
+ import React, { useEffect, useMemo, useState } from 'react';
17
+ import { styled, useTheme } from '@mui/material/styles';
18
+ import { useLocation, useNavigate } from 'react-router-dom';
19
+ import { useMenuConfig, useThemeConfig } from '../../../../../hooks';
20
20
 
21
- import NavItem from './NavItem'
22
- import PropTypes from 'prop-types'
21
+ import NavItem from './NavItem';
22
+ import PropTypes from 'prop-types';
23
23
 
24
24
  const PopperStyled = styled(Popper)(({ theme }) => ({
25
25
  overflow: 'visible',
@@ -37,116 +37,108 @@ const PopperStyled = styled(Popper)(({ theme }) => ({
37
37
  transform: 'translateY(-50%) rotate(45deg)',
38
38
  zIndex: 120,
39
39
  borderLeft: `1px solid ${theme.palette.grey.A800}`,
40
- borderBottom: `1px solid ${theme.palette.grey.A800}`,
41
- },
42
- }))
40
+ borderBottom: `1px solid ${theme.palette.grey.A800}`
41
+ }
42
+ }));
43
43
 
44
- const NavCollapse = ({
45
- menu,
46
- level,
47
- parentId,
48
- setSelectedItems,
49
- selectedItems,
50
- setSelectedLevel,
51
- selectedLevel,
52
- }) => {
53
- const theme = useTheme()
54
- const { activeItem } = useMenuConfig()
55
- const downLG = useMediaQuery(theme.breakpoints.down('lg'))
56
- const { drawerOpen } = useMenuConfig()
57
- const { menuOrientation, isVerticalLayout } = useThemeConfig()
58
- const Navigation = useNavigate()
44
+ const NavCollapse = ({ menu, level, parentId, setSelectedItems, selectedItems, setSelectedLevel, selectedLevel }) => {
45
+ const theme = useTheme();
46
+ const { activeItem } = useMenuConfig();
47
+ const downLG = useMediaQuery(theme.breakpoints.down('lg'));
48
+ const { drawerOpen } = useMenuConfig();
49
+ const { menuOrientation, isVerticalLayout } = useThemeConfig();
50
+ const Navigation = useNavigate();
59
51
 
60
- const [open, setOpen] = useState(false)
61
- const [selected, setSelected] = useState(null)
52
+ const [open, setOpen] = useState(false);
53
+ const [selected, setSelected] = useState(null);
62
54
 
63
- const [anchorEl, setAnchorEl] = useState(null)
55
+ const [anchorEl, setAnchorEl] = useState(null);
64
56
 
65
57
  const handleClick = (event) => {
66
- setAnchorEl(null)
67
- setSelectedLevel(level)
58
+ setAnchorEl(null);
59
+ setSelectedLevel(level);
68
60
  if (drawerOpen) {
69
- setOpen(!open)
70
- setSelected(!selected ? menu.id : null)
71
- setSelectedItems(!selected ? menu.id : '')
72
- if (menu.url) Navigation(`${menu.url}`)
61
+ setOpen(!open);
62
+ setSelected(!selected ? menu.id : null);
63
+ setSelectedItems(!selected ? menu.id : '');
64
+ if (menu.url) Navigation(`${menu.url}`);
73
65
  } else {
74
- setAnchorEl(event?.currentTarget)
66
+ setAnchorEl(event?.currentTarget);
75
67
  }
76
- }
68
+ };
77
69
 
78
70
  const handlerIconLink = () => {
79
71
  if (!drawerOpen) {
80
- if (menu.url) Navigation(`${menu.url}`)
72
+ if (menu.url) Navigation(`${menu.url}`);
81
73
  }
82
- }
74
+ };
83
75
 
84
76
  const handleHover = (event) => {
85
- setAnchorEl(event?.currentTarget)
86
- }
77
+ setAnchorEl(event?.currentTarget);
78
+ };
87
79
 
88
80
  const handleClose = () => {
89
- setOpen(false)
90
- setSelected(null)
91
- setAnchorEl(null)
92
- }
81
+ setOpen(false);
82
+ setSelected(null);
83
+ setAnchorEl(null);
84
+ };
93
85
 
94
86
  useMemo(() => {
95
87
  if (selected === selectedItems) {
96
88
  if (level === 1) {
97
- setOpen(true)
89
+ setOpen(true);
98
90
  }
99
91
  } else {
100
92
  if (level === selectedLevel) {
101
- setOpen(false)
102
- setSelected(null)
93
+ setOpen(false);
94
+ setSelected(null);
103
95
  }
104
96
  }
105
- }, [selectedItems, level, selected, selectedLevel])
97
+ }, [selectedItems, level, selected, selectedLevel]);
106
98
 
107
- const { pathname } = useLocation()
108
- const openMini = Boolean(anchorEl)
99
+ const { pathname } = useLocation();
100
+ const openMini = Boolean(anchorEl);
109
101
 
110
102
  const checkOpenForParent = (child, id) => {
111
103
  child.forEach((item) => {
112
104
  if (item.url === pathname) {
113
- setOpen(true)
114
- setSelected(id)
105
+ setOpen(true);
106
+ setSelected(id);
115
107
  }
116
- })
117
- }
108
+ });
109
+ };
118
110
 
119
111
  useEffect(() => {
120
- setOpen(false)
121
- setSelected(null)
122
- if (openMini) setAnchorEl(null)
112
+ setOpen(false);
113
+ setSelected(null);
114
+ if (openMini) setAnchorEl(null);
123
115
  if (menu.children) {
124
116
  menu.children.forEach((item) => {
125
117
  if (item.children?.length) {
126
- checkOpenForParent(item.children, menu.id)
118
+ checkOpenForParent(item.children, menu.id);
127
119
  }
128
120
  if (item.url === pathname) {
129
- setSelected(menu.id)
130
- setOpen(true)
121
+ setSelected(menu.id);
122
+ setOpen(true);
131
123
  }
132
124
  if (pathname.includes(item.url)) {
133
- setSelected(menu.id)
134
- setOpen(true)
125
+ setSelected(menu.id);
126
+ setOpen(true);
135
127
  }
136
- })
128
+ });
137
129
  }
138
130
 
139
131
  // eslint-disable-next-line react-hooks/exhaustive-deps
140
- }, [pathname, menu.children])
132
+ }, [pathname, menu.children]);
141
133
 
142
134
  useEffect(() => {
143
135
  if (menu.url === pathname && selected !== menu.id) {
144
- activeItem([menu.id])
145
- setSelected(menu.id)
146
- setAnchorEl(null)
147
- setOpen(true)
136
+ activeItem([menu.id]);
137
+ setSelected(menu.id);
138
+ setAnchorEl(null);
139
+ setOpen(true);
148
140
  }
149
- }, [pathname, menu, selected, activeItem])
141
+ }, [pathname, menu, selected, activeItem]);
150
142
 
151
143
  const navCollapse = menu.children?.map((item) => {
152
144
  switch (item.type) {
@@ -162,38 +154,31 @@ const NavCollapse = ({
162
154
  level={level + 1}
163
155
  parentId={parentId}
164
156
  />
165
- )
157
+ );
166
158
  case 'item':
167
- return <NavItem key={item.id} item={item} level={level + 1} />
159
+ return <NavItem key={item.id} item={item} level={level + 1} />;
168
160
  default:
169
161
  return (
170
162
  <Typography key={item.id} variant="h6" color="error" align="center">
171
163
  Fix - Collapse or Item
172
164
  </Typography>
173
- )
165
+ );
174
166
  }
175
- })
167
+ });
176
168
 
177
- const isSelected = selected === menu.id
178
- const borderIcon = level === 1 ? <BorderOutlined style={{ fontSize: '1rem' }} /> : false
179
- const Icon = menu.icon
180
- const menuIcon = menu.icon ? (
181
- <Icon style={{ fontSize: drawerOpen ? '1rem' : '1.25rem' }} />
182
- ) : (
183
- borderIcon
184
- )
185
- const textColor = theme.palette.mode === 'dark' ? 'grey.400' : 'text.primary'
186
- const iconSelectedColor =
187
- theme.palette.mode === 'dark' && drawerOpen
188
- ? theme.palette.text.primary
189
- : theme.palette.primary.main
190
- const popperId = openMini ? `collapse-pop-${menu.id}` : undefined
169
+ const isSelected = selected === menu.id;
170
+ const borderIcon = level === 1 ? <BorderOutlined style={{ fontSize: '1rem' }} /> : false;
171
+ const Icon = menu.icon;
172
+ const menuIcon = menu.icon ? <Icon style={{ fontSize: drawerOpen ? '1rem' : '1.25rem' }} /> : borderIcon;
173
+ const textColor = theme.palette.mode === 'dark' ? 'grey.400' : 'text.primary';
174
+ const iconSelectedColor = theme.palette.mode === 'dark' && drawerOpen ? theme.palette.text.primary : theme.palette.primary.main;
175
+ const popperId = openMini ? `collapse-pop-${menu.id}` : undefined;
191
176
  const FlexBox = {
192
177
  display: 'flex',
193
178
  justifyContent: 'space-between',
194
179
  alignItems: 'center',
195
- width: '100%',
196
- }
180
+ width: '100%'
181
+ };
197
182
 
198
183
  return (
199
184
  <>
@@ -209,28 +194,28 @@ const NavCollapse = ({
209
194
  py: !drawerOpen && level === 1 ? 1.25 : 1,
210
195
  ...(drawerOpen && {
211
196
  '&:hover': {
212
- bgcolor: theme.palette.mode === 'dark' ? 'divider' : 'primary.lighter',
197
+ bgcolor: theme.palette.mode === 'dark' ? 'divider' : 'primary.lighter'
213
198
  },
214
199
  '&.Mui-selected': {
215
200
  bgcolor: 'transparent',
216
201
  color: iconSelectedColor,
217
202
  '&:hover': {
218
203
  color: iconSelectedColor,
219
- bgcolor: theme.palette.mode === 'dark' ? 'divider' : 'transparent',
220
- },
221
- },
204
+ bgcolor: theme.palette.mode === 'dark' ? 'divider' : 'transparent'
205
+ }
206
+ }
222
207
  }),
223
208
  ...(!drawerOpen && {
224
209
  '&:hover': {
225
- bgcolor: 'transparent',
210
+ bgcolor: 'transparent'
226
211
  },
227
212
  '&.Mui-selected': {
228
213
  '&:hover': {
229
- bgcolor: 'transparent',
214
+ bgcolor: 'transparent'
230
215
  },
231
- bgcolor: 'transparent',
232
- },
233
- }),
216
+ bgcolor: 'transparent'
217
+ }
218
+ })
234
219
  }}
235
220
  >
236
221
  {menuIcon && (
@@ -246,18 +231,16 @@ const NavCollapse = ({
246
231
  alignItems: 'center',
247
232
  justifyContent: 'center',
248
233
  '&:hover': {
249
- bgcolor:
250
- theme.palette.mode === 'dark' ? 'secondary.light' : 'secondary.lighter',
251
- },
234
+ bgcolor: theme.palette.mode === 'dark' ? 'secondary.light' : 'secondary.lighter'
235
+ }
252
236
  }),
253
237
  ...(!drawerOpen &&
254
238
  selected === menu.id && {
255
239
  bgcolor: theme.palette.mode === 'dark' ? 'primary.900' : 'primary.lighter',
256
240
  '&:hover': {
257
- bgcolor:
258
- theme.palette.mode === 'dark' ? 'primary.darker' : 'primary.lighter',
259
- },
260
- }),
241
+ bgcolor: theme.palette.mode === 'dark' ? 'primary.darker' : 'primary.lighter'
242
+ }
243
+ })
261
244
  }}
262
245
  >
263
246
  {menuIcon}
@@ -281,9 +264,7 @@ const NavCollapse = ({
281
264
  )}
282
265
  {(drawerOpen || (!drawerOpen && level !== 1)) &&
283
266
  (openMini || open ? (
284
- <UpOutlined
285
- style={{ fontSize: '0.625rem', marginLeft: 1, color: theme.palette.primary.main }}
286
- />
267
+ <UpOutlined style={{ fontSize: '0.625rem', marginLeft: 1, color: theme.palette.primary.main }} />
287
268
  ) : (
288
269
  <DownOutlined style={{ fontSize: '0.625rem', marginLeft: 1 }} />
289
270
  ))}
@@ -294,17 +275,17 @@ const NavCollapse = ({
294
275
  anchorEl={anchorEl}
295
276
  placement="right-start"
296
277
  style={{
297
- zIndex: 2001,
278
+ zIndex: 2001
298
279
  }}
299
280
  popperOptions={{
300
281
  modifiers: [
301
282
  {
302
283
  name: 'offset',
303
284
  options: {
304
- offset: [-12, 1],
305
- },
306
- },
307
- ],
285
+ offset: [-12, 1]
286
+ }
287
+ }
288
+ ]
308
289
  }}
309
290
  >
310
291
  {({ TransitionProps }) => (
@@ -315,7 +296,7 @@ const NavCollapse = ({
315
296
  mt: 1.5,
316
297
  boxShadow: theme.customShadows.z1,
317
298
  backgroundImage: 'none',
318
- border: `1px solid ${theme.palette.divider}`,
299
+ border: `1px solid ${theme.palette.divider}`
319
300
  }}
320
301
  >
321
302
  <ClickAwayListener onClickAway={handleClose}>
@@ -345,8 +326,8 @@ const NavCollapse = ({
345
326
  aria-describedby={popperId}
346
327
  sx={{
347
328
  '&.Mui-selected': {
348
- bgcolor: 'transparent',
349
- },
329
+ bgcolor: 'transparent'
330
+ }
350
331
  }}
351
332
  >
352
333
  <Box onClick={handlerIconLink} sx={FlexBox}>
@@ -355,7 +336,7 @@ const NavCollapse = ({
355
336
  sx={{
356
337
  my: 'auto',
357
338
  minWidth: !menu.icon ? 18 : 36,
358
- color: theme.palette.secondary.dark,
339
+ color: theme.palette.secondary.dark
359
340
  }}
360
341
  >
361
342
  {menuIcon}
@@ -367,7 +348,7 @@ const NavCollapse = ({
367
348
  my: 'auto',
368
349
  minWidth: !menu.icon ? 18 : 36,
369
350
  bgcolor: 'transparent',
370
- '&:hover': { bgcolor: 'transparent' },
351
+ '&:hover': { bgcolor: 'transparent' }
371
352
  }}
372
353
  >
373
354
  <Dot size={4} color={isSelected ? 'primary' : 'secondary'} />
@@ -390,15 +371,15 @@ const NavCollapse = ({
390
371
  anchorEl={anchorEl}
391
372
  placement="right-start"
392
373
  style={{
393
- zIndex: 2001,
374
+ zIndex: 2001
394
375
  }}
395
376
  modifiers={[
396
377
  {
397
378
  name: 'offset',
398
379
  options: {
399
- offset: [-10, 0],
400
- },
401
- },
380
+ offset: [-10, 0]
381
+ }
382
+ }
402
383
  ]}
403
384
  >
404
385
  {({ TransitionProps }) => (
@@ -409,7 +390,7 @@ const NavCollapse = ({
409
390
  mt: 1.5,
410
391
  py: 0.5,
411
392
  boxShadow: theme.shadows[8],
412
- backgroundImage: 'none',
393
+ backgroundImage: 'none'
413
394
  }}
414
395
  >
415
396
  <ClickAwayListener onClickAway={handleClose}>
@@ -424,8 +405,8 @@ const NavCollapse = ({
424
405
  </>
425
406
  )}
426
407
  </>
427
- )
428
- }
408
+ );
409
+ };
429
410
 
430
411
  NavCollapse.propTypes = {
431
412
  menu: PropTypes.object,
@@ -434,7 +415,7 @@ NavCollapse.propTypes = {
434
415
  setSelectedItems: PropTypes.func,
435
416
  selectedItems: PropTypes.string,
436
417
  setSelectedLevel: PropTypes.func,
437
- selectedLevel: PropTypes.number,
438
- }
418
+ selectedLevel: PropTypes.number
419
+ };
439
420
 
440
- export default NavCollapse
421
+ export default NavCollapse;