@applica-software-guru/react-admin 1.0.32 → 1.0.34

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