robobyte-front-builder 1.0.0

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 (614) hide show
  1. package/jsconfig.json +28 -0
  2. package/next.config.js +75 -0
  3. package/package.json +163 -0
  4. package/public/fonts/NotoSansArabic-VariableFont_wdth,wght.ttf +0 -0
  5. package/public/fonts/font.js +2 -0
  6. package/public/fonts/logo.js +2 -0
  7. package/public/images/appicon.png +0 -0
  8. package/public/images/appicon1.png +0 -0
  9. package/public/images/asiacell.png +0 -0
  10. package/public/images/avatars/1.png +0 -0
  11. package/public/images/avatars/3.png +0 -0
  12. package/public/images/avatars/4.png +0 -0
  13. package/public/images/avatars/5.png +0 -0
  14. package/public/images/cards/trophy.png +0 -0
  15. package/public/images/favicon.png +0 -0
  16. package/public/images/favicon1.png +0 -0
  17. package/public/images/icons/bag.png +0 -0
  18. package/public/images/icons/briefcase.png +0 -0
  19. package/public/images/icons/calendar.png +0 -0
  20. package/public/images/icons/dashboard.png +0 -0
  21. package/public/images/icons/dollar.png +0 -0
  22. package/public/images/icons/person.png +0 -0
  23. package/public/images/icons/profit.png +0 -0
  24. package/public/images/icons/setting.png +0 -0
  25. package/public/images/misc/chart.png +0 -0
  26. package/public/images/misc/paypal.png +0 -0
  27. package/public/images/pages/401.png +0 -0
  28. package/public/images/pages/404.png +0 -0
  29. package/public/images/pages/500.png +0 -0
  30. package/public/images/pages/auth-v2-forgot-password-illustration-bordered-dark.png +0 -0
  31. package/public/images/pages/auth-v2-forgot-password-illustration-bordered-light.png +0 -0
  32. package/public/images/pages/auth-v2-forgot-password-illustration-dark.png +0 -0
  33. package/public/images/pages/auth-v2-forgot-password-illustration-light.png +0 -0
  34. package/public/images/pages/auth-v2-forgot-password-mask-dark.png +0 -0
  35. package/public/images/pages/auth-v2-forgot-password-mask-light.png +0 -0
  36. package/public/images/pages/auth-v2-login-illustration-bordered-dark.png +0 -0
  37. package/public/images/pages/auth-v2-login-illustration-bordered-light.png +0 -0
  38. package/public/images/pages/auth-v2-login-illustration-dark.png +0 -0
  39. package/public/images/pages/auth-v2-login-illustration-light.png +0 -0
  40. package/public/images/pages/auth-v2-login-mask-dark.png +0 -0
  41. package/public/images/pages/auth-v2-login-mask-light.png +0 -0
  42. package/public/images/pages/auth-v2-register-illustration-bordered-dark.png +0 -0
  43. package/public/images/pages/auth-v2-register-illustration-bordered-light.png +0 -0
  44. package/public/images/pages/auth-v2-register-illustration-dark.png +0 -0
  45. package/public/images/pages/auth-v2-register-illustration-light.png +0 -0
  46. package/public/images/pages/auth-v2-register-mask-dark.png +0 -0
  47. package/public/images/pages/auth-v2-register-mask-light.png +0 -0
  48. package/public/images/pages/misc-401-object.png +0 -0
  49. package/public/images/pages/misc-404-object.png +0 -0
  50. package/public/images/pages/misc-500-object.png +0 -0
  51. package/public/images/pages/misc-coming-soon-object.png +0 -0
  52. package/public/images/pages/misc-mask-dark.png +0 -0
  53. package/public/images/pages/misc-mask-light.png +0 -0
  54. package/public/images/white.jpg +0 -0
  55. package/public/images/zain.png +0 -0
  56. package/public/locales/ar.json +35 -0
  57. package/public/navigationTest/Navigation.json +13 -0
  58. package/public/vercel.svg +4 -0
  59. package/src/@core/components/auth/AclGuard.js +55 -0
  60. package/src/@core/components/auth/AuthGuard.js +40 -0
  61. package/src/@core/components/auth/GuestGuard.js +30 -0
  62. package/src/@core/components/custom-inputs/Horizontal.jsx +143 -0
  63. package/src/@core/components/custom-inputs/Image.jsx +78 -0
  64. package/src/@core/components/custom-inputs/Vertical.jsx +113 -0
  65. package/src/@core/components/customizer/index.jsx +470 -0
  66. package/src/@core/components/customizer/styles.module.css +169 -0
  67. package/src/@core/components/mui/Avatar.jsx +41 -0
  68. package/src/@core/components/mui/Badge.jsx +20 -0
  69. package/src/@core/components/mui/IconButton.jsx +74 -0
  70. package/src/@core/components/mui/TabList.jsx +60 -0
  71. package/src/@core/components/option-menu/index.jsx +137 -0
  72. package/src/@core/components/scroll-to-top/index.jsx +43 -0
  73. package/src/@core/components/spinner/index.js +26 -0
  74. package/src/@core/components/window-wrapper/index.js +27 -0
  75. package/src/@core/contexts/settingsContext.jsx +98 -0
  76. package/src/@core/hooks/useBgColor.js +63 -0
  77. package/src/@core/hooks/useImageVariant.js +27 -0
  78. package/src/@core/hooks/useLayoutInit.js +37 -0
  79. package/src/@core/hooks/useObjectCookie.js +18 -0
  80. package/src/@core/hooks/useSettings.jsx +15 -0
  81. package/src/@core/layouts/BlankLayout.js +37 -0
  82. package/src/@core/layouts/BlankLayoutWithAppBar.js +51 -0
  83. package/src/@core/layouts/HorizontalLayout.jsx +151 -0
  84. package/src/@core/layouts/Layout.js +39 -0
  85. package/src/@core/layouts/VerticalLayout.jsx +124 -0
  86. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +115 -0
  87. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +67 -0
  88. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +352 -0
  89. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +21 -0
  90. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +195 -0
  91. package/src/@core/layouts/components/horizontal/navigation/index.js +31 -0
  92. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +96 -0
  93. package/src/@core/layouts/components/shared-components/ModeToggler.js +32 -0
  94. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +226 -0
  95. package/src/@core/layouts/components/shared-components/UserDropdown.js +177 -0
  96. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +46 -0
  97. package/src/@core/layouts/components/shared-components/footer/index.js +61 -0
  98. package/src/@core/layouts/components/vertical/appBar/index.js +74 -0
  99. package/src/@core/layouts/components/vertical/navigation/Drawer.js +122 -0
  100. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +435 -0
  101. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +180 -0
  102. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +26 -0
  103. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +258 -0
  104. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +102 -0
  105. package/src/@core/layouts/components/vertical/navigation/index.js +169 -0
  106. package/src/@core/layouts/utils.js +69 -0
  107. package/src/@core/styles/Table.module.css +93 -0
  108. package/src/@core/styles/horizontal/menuItemStyles.js +100 -0
  109. package/src/@core/styles/horizontal/menuRootStyles.js +19 -0
  110. package/src/@core/styles/libs/fullcalendar/index.js +461 -0
  111. package/src/@core/styles/libs/keen-slider/index.js +111 -0
  112. package/src/@core/styles/libs/react-apexcharts/index.js +107 -0
  113. package/src/@core/styles/libs/react-cleave/index.js +33 -0
  114. package/src/@core/styles/libs/react-credit-cards/index.js +11 -0
  115. package/src/@core/styles/libs/react-datepicker/index.js +388 -0
  116. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +144 -0
  117. package/src/@core/styles/libs/react-dropzone/index.js +76 -0
  118. package/src/@core/styles/libs/react-hot-toast/index.js +37 -0
  119. package/src/@core/styles/libs/recharts/index.js +47 -0
  120. package/src/@core/styles/stepper.js +103 -0
  121. package/src/@core/styles/vertical/menuItemStyles.js +138 -0
  122. package/src/@core/styles/vertical/menuSectionStyles.js +54 -0
  123. package/src/@core/styles/vertical/navigationCustomStyles.js +62 -0
  124. package/src/@core/svg/ContentCompact.jsx +17 -0
  125. package/src/@core/svg/ContentWide.jsx +17 -0
  126. package/src/@core/svg/DirectionLtr.jsx +93 -0
  127. package/src/@core/svg/DirectionRtl.jsx +93 -0
  128. package/src/@core/svg/LayoutCollapsed.jsx +59 -0
  129. package/src/@core/svg/LayoutHorizontal.jsx +42 -0
  130. package/src/@core/svg/LayoutVertical.jsx +59 -0
  131. package/src/@core/svg/Logo.jsx +76 -0
  132. package/src/@core/svg/SkinBordered.jsx +54 -0
  133. package/src/@core/svg/SkinDefault.jsx +59 -0
  134. package/src/@core/tailwind/plugin.js +78 -0
  135. package/src/@core/theme/ThemeComponent.js +63 -0
  136. package/src/@core/theme/ThemeOptions.js +71 -0
  137. package/src/@core/theme/breakpoints/index.js +11 -0
  138. package/src/@core/theme/colorSchemes.js +326 -0
  139. package/src/@core/theme/customShadows.js +11 -0
  140. package/src/@core/theme/globalStyles.js +81 -0
  141. package/src/@core/theme/index.js +42 -0
  142. package/src/@core/theme/overrides/accordion.js +51 -0
  143. package/src/@core/theme/overrides/accordion.jsx +85 -0
  144. package/src/@core/theme/overrides/alerts.js +110 -0
  145. package/src/@core/theme/overrides/alerts.jsx +180 -0
  146. package/src/@core/theme/overrides/autocomplete.js +14 -0
  147. package/src/@core/theme/overrides/autocomplete.jsx +68 -0
  148. package/src/@core/theme/overrides/avatar.js +38 -0
  149. package/src/@core/theme/overrides/avatars.js +27 -0
  150. package/src/@core/theme/overrides/backdrop.js +22 -0
  151. package/src/@core/theme/overrides/badges.js +16 -0
  152. package/src/@core/theme/overrides/breadcrumbs.js +11 -0
  153. package/src/@core/theme/overrides/button-group.js +84 -0
  154. package/src/@core/theme/overrides/button.js +93 -0
  155. package/src/@core/theme/overrides/buttonGroup.js +9 -0
  156. package/src/@core/theme/overrides/card.js +83 -0
  157. package/src/@core/theme/overrides/checkbox.jsx +95 -0
  158. package/src/@core/theme/overrides/chip.js +72 -0
  159. package/src/@core/theme/overrides/dataGrid.js +114 -0
  160. package/src/@core/theme/overrides/dateTimePicker.js +65 -0
  161. package/src/@core/theme/overrides/dialog.js +120 -0
  162. package/src/@core/theme/overrides/divider.js +13 -0
  163. package/src/@core/theme/overrides/drawer.js +20 -0
  164. package/src/@core/theme/overrides/fab.js +13 -0
  165. package/src/@core/theme/overrides/form-control-label.js +19 -0
  166. package/src/@core/theme/overrides/icon-button.js +145 -0
  167. package/src/@core/theme/overrides/index.js +103 -0
  168. package/src/@core/theme/overrides/input.js +72 -0
  169. package/src/@core/theme/overrides/link.js +9 -0
  170. package/src/@core/theme/overrides/list.js +44 -0
  171. package/src/@core/theme/overrides/menu.js +25 -0
  172. package/src/@core/theme/overrides/pagination.js +41 -0
  173. package/src/@core/theme/overrides/paper.js +9 -0
  174. package/src/@core/theme/overrides/popover.js +16 -0
  175. package/src/@core/theme/overrides/progress.js +38 -0
  176. package/src/@core/theme/overrides/radio.jsx +80 -0
  177. package/src/@core/theme/overrides/rating.js +16 -0
  178. package/src/@core/theme/overrides/rating.jsx +32 -0
  179. package/src/@core/theme/overrides/select.js +19 -0
  180. package/src/@core/theme/overrides/select.jsx +52 -0
  181. package/src/@core/theme/overrides/slider.js +97 -0
  182. package/src/@core/theme/overrides/snackbar.js +19 -0
  183. package/src/@core/theme/overrides/switch.js +73 -0
  184. package/src/@core/theme/overrides/switches.js +25 -0
  185. package/src/@core/theme/overrides/table-pagination.js +39 -0
  186. package/src/@core/theme/overrides/table.js +81 -0
  187. package/src/@core/theme/overrides/tabs.js +30 -0
  188. package/src/@core/theme/overrides/timeline.js +80 -0
  189. package/src/@core/theme/overrides/toggle-button.js +33 -0
  190. package/src/@core/theme/overrides/toggleButton.js +16 -0
  191. package/src/@core/theme/overrides/tooltip.js +21 -0
  192. package/src/@core/theme/overrides/typography.js +13 -0
  193. package/src/@core/theme/palette/index.js +107 -0
  194. package/src/@core/theme/shadows/index.js +61 -0
  195. package/src/@core/theme/shadows.js +12 -0
  196. package/src/@core/theme/spacing/index.js +3 -0
  197. package/src/@core/theme/spacing.js +5 -0
  198. package/src/@core/theme/typography/index.js +65 -0
  199. package/src/@core/theme/typography.js +84 -0
  200. package/src/@core/utils/create-emotion-cache.js +5 -0
  201. package/src/@core/utils/hex-to-rgba.js +11 -0
  202. package/src/@core/utils/serverHelpers.js +45 -0
  203. package/src/@menu/components/RouterLink.jsx +18 -0
  204. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +88 -0
  205. package/src/@menu/components/horizontal-menu/Menu.jsx +83 -0
  206. package/src/@menu/components/horizontal-menu/MenuButton.jsx +100 -0
  207. package/src/@menu/components/horizontal-menu/MenuItem.jsx +183 -0
  208. package/src/@menu/components/horizontal-menu/SubMenu.jsx +418 -0
  209. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +41 -0
  210. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +20 -0
  211. package/src/@menu/components/vertical-menu/Menu.jsx +161 -0
  212. package/src/@menu/components/vertical-menu/MenuButton.jsx +95 -0
  213. package/src/@menu/components/vertical-menu/MenuItem.jsx +180 -0
  214. package/src/@menu/components/vertical-menu/MenuSection.jsx +124 -0
  215. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +70 -0
  216. package/src/@menu/components/vertical-menu/NavHeader.jsx +39 -0
  217. package/src/@menu/components/vertical-menu/SubMenu.jsx +420 -0
  218. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +101 -0
  219. package/src/@menu/components/vertical-menu/VerticalNav.jsx +216 -0
  220. package/src/@menu/contexts/horizontalNavContext.jsx +29 -0
  221. package/src/@menu/contexts/verticalNavContext.jsx +65 -0
  222. package/src/@menu/defaultConfigs.js +12 -0
  223. package/src/@menu/hooks/useHorizontalMenu.jsx +19 -0
  224. package/src/@menu/hooks/useHorizontalNav.jsx +19 -0
  225. package/src/@menu/hooks/useMediaQuery.jsx +29 -0
  226. package/src/@menu/hooks/useVerticalMenu.jsx +19 -0
  227. package/src/@menu/hooks/useVerticalNav.jsx +19 -0
  228. package/src/@menu/horizontal-menu/index.jsx +8 -0
  229. package/src/@menu/styles/StyledBackdrop.jsx +15 -0
  230. package/src/@menu/styles/StyledMenuIcon.jsx +12 -0
  231. package/src/@menu/styles/StyledMenuLabel.jsx +16 -0
  232. package/src/@menu/styles/StyledMenuPrefix.jsx +10 -0
  233. package/src/@menu/styles/StyledMenuSectionLabel.jsx +21 -0
  234. package/src/@menu/styles/StyledMenuSuffix.jsx +10 -0
  235. package/src/@menu/styles/StyledSubMenuContent.jsx +43 -0
  236. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +13 -0
  237. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +26 -0
  238. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +11 -0
  239. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +33 -0
  240. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +18 -0
  241. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +10 -0
  242. package/src/@menu/styles/horizontal/horizontalUl.module.css +15 -0
  243. package/src/@menu/styles/styles.module.css +5 -0
  244. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +16 -0
  245. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +28 -0
  246. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +23 -0
  247. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +67 -0
  248. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +15 -0
  249. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +23 -0
  250. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +25 -0
  251. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +10 -0
  252. package/src/@menu/svg/ChevronRight.jsx +9 -0
  253. package/src/@menu/svg/Close.jsx +12 -0
  254. package/src/@menu/svg/RadioCircle.jsx +12 -0
  255. package/src/@menu/svg/RadioCircleMarked.jsx +13 -0
  256. package/src/@menu/utils/menuClasses.js +44 -0
  257. package/src/@menu/utils/menuUtils.jsx +145 -0
  258. package/src/@menu/vertical-menu/index.jsx +11 -0
  259. package/src/configs/Permissions/PermissionsActions.json +6 -0
  260. package/src/configs/Permissions/PermissionsSubjects.json +107 -0
  261. package/src/configs/acl.js +115 -0
  262. package/src/configs/auth.js +5 -0
  263. package/src/configs/aws-exports.js +30 -0
  264. package/src/configs/firebase.js +25 -0
  265. package/src/configs/i18n.js +34 -0
  266. package/src/configs/izColors.json +11 -0
  267. package/src/configs/primaryColorConfig.js +35 -0
  268. package/src/configs/themeConfig.js +44 -0
  269. package/src/context/AuthContext.js +179 -0
  270. package/src/context/BuilderContext.jsx +209 -0
  271. package/src/context/SystemContext.js +99 -0
  272. package/src/hooks/useAuth.js +4 -0
  273. package/src/layouts/UserLayout.js +94 -0
  274. package/src/layouts/UserThemeOptions.js +191 -0
  275. package/src/layouts/components/Direction.js +30 -0
  276. package/src/layouts/components/HtmlTooltip.js +15 -0
  277. package/src/layouts/components/Translations.js +11 -0
  278. package/src/layouts/components/UserDropdown.js +217 -0
  279. package/src/layouts/components/UserIcon.js +40 -0
  280. package/src/layouts/components/acl/Can.js +6 -0
  281. package/src/layouts/components/acl/CanViewNavGroup.js +36 -0
  282. package/src/layouts/components/acl/CanViewNavLink.js +17 -0
  283. package/src/layouts/components/acl/CanViewNavSectionTitle.js +17 -0
  284. package/src/layouts/components/horizontal/AppBarContent.js +39 -0
  285. package/src/layouts/components/horizontal/ServerSideNavItems.js +44 -0
  286. package/src/layouts/components/mui/StepperComps.js +55 -0
  287. package/src/layouts/components/vertical/AppBarContent.js +35 -0
  288. package/src/layouts/components/vertical/ServerSideNavItems.js +44 -0
  289. package/src/lib/index.js +75 -0
  290. package/src/lib/navigation/NavigationExtensionContext.jsx +81 -0
  291. package/src/lib/navigation/mergeNavExtensions.js +66 -0
  292. package/src/lib/navigation/useNavExtension.js +54 -0
  293. package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +57 -0
  294. package/src/libs/ApexCharts.jsx +5 -0
  295. package/src/libs/ReactPlayer.jsx +5 -0
  296. package/src/libs/Recharts.jsx +4 -0
  297. package/src/libs/auth.js +124 -0
  298. package/src/libs/styles/AppFullCalendar.js +505 -0
  299. package/src/libs/styles/AppKeenSlider.js +116 -0
  300. package/src/libs/styles/AppReactApexCharts.jsx +110 -0
  301. package/src/libs/styles/AppReactDatepicker.jsx +470 -0
  302. package/src/libs/styles/AppReactDropzone.js +76 -0
  303. package/src/libs/styles/AppReactToastify.jsx +108 -0
  304. package/src/libs/styles/AppRecharts.js +55 -0
  305. package/src/libs/styles/inputOtp.module.css +39 -0
  306. package/src/libs/styles/tiptapEditor.css +72 -0
  307. package/src/navigation/horizontal/index.js +246 -0
  308. package/src/navigation/vertical/index.js +253 -0
  309. package/src/pages/401.js +70 -0
  310. package/src/pages/404.js +67 -0
  311. package/src/pages/500.js +68 -0
  312. package/src/pages/[slug].js +115 -0
  313. package/src/pages/_app.js +148 -0
  314. package/src/pages/_document.js +72 -0
  315. package/src/pages/api/navigation/regenerate-registry.js +116 -0
  316. package/src/pages/api/navigation/save.js +218 -0
  317. package/src/pages/authModule/acl/index.js +48 -0
  318. package/src/pages/authModule/forgot-password/index.js +228 -0
  319. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +392 -0
  320. package/src/pages/authModule/permissions/rolePermissions/index.js +343 -0
  321. package/src/pages/authModule/permissions/systemPermissions/index.js +354 -0
  322. package/src/pages/authModule/privacy/index.js +721 -0
  323. package/src/pages/authModule/users/index.js +210 -0
  324. package/src/pages/index.js +44 -0
  325. package/src/pages/login/index.js +328 -0
  326. package/src/pages/mainHome/index.js +181 -0
  327. package/src/pages/navigatorBuilder/index.jsx +2070 -0
  328. package/src/pages/reportModule/reportBuilder/index.js +1361 -0
  329. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +187 -0
  330. package/src/pages/reportModule/reportBuilder/reports/index.js +198 -0
  331. package/src/pages/viewBuilder/index.jsx +94 -0
  332. package/src/pages/viewBuilder/viewPage/index.jsx +46 -0
  333. package/src/pages/viewBuilder/views/index.js +146 -0
  334. package/src/pages/viewer/[id]/index.js +88 -0
  335. package/src/services/ContentTypes.js +10 -0
  336. package/src/services/DeleteService.js +77 -0
  337. package/src/services/Endpoints/BunnyEndpoints.js +26 -0
  338. package/src/services/Endpoints/CaseEndpoints.js +29 -0
  339. package/src/services/Endpoints/CaseTypeEndpoints.js +29 -0
  340. package/src/services/Endpoints/ContactsEndpoints.js +81 -0
  341. package/src/services/Endpoints/CourtEndpoints.js +29 -0
  342. package/src/services/Endpoints/FilterEndpoints.js +31 -0
  343. package/src/services/Endpoints/NavigatorEndpoints.js +21 -0
  344. package/src/services/Endpoints/ReportBuilderEndpoints.js +45 -0
  345. package/src/services/Endpoints/UiBuilderEndpoints.js +37 -0
  346. package/src/services/Endpoints/UserTableTemplateEndpoints.js +26 -0
  347. package/src/services/Endpoints/UsersEndpoints.js +142 -0
  348. package/src/services/Endpoints/ViewEndpoints.js +28 -0
  349. package/src/services/Endpoints/ViewPermissionEndpoints.js +37 -0
  350. package/src/services/Endpoints/ViewPermissionRoleEndpoints.js +39 -0
  351. package/src/services/Endpoints/ViewPermissionRoleItemsEndpoints.js +32 -0
  352. package/src/services/Endpoints/ViewPermissionRoleUsersEndpoints.js +28 -0
  353. package/src/services/Endpoints/WidgetEndpoints.js +28 -0
  354. package/src/services/Endpoints.js +49 -0
  355. package/src/services/External/BunnyCdn/BunnyUploadFile.js +168 -0
  356. package/src/services/GetService.js +67 -0
  357. package/src/services/MetaDataTemplate/index.js +5 -0
  358. package/src/services/PatchService.js +83 -0
  359. package/src/services/PostService.js +81 -0
  360. package/src/services/StreamService.js +82 -0
  361. package/src/services/UpdateService.js +82 -0
  362. package/src/services/auth/AuthService.js +47 -0
  363. package/src/services/auth/GetUsersService.js +38 -0
  364. package/src/services/auth/PostRegisterUser.js +29 -0
  365. package/src/services/auth/PostResetPasswordService.js +28 -0
  366. package/src/services/auth/PutAccountService.js +29 -0
  367. package/src/services/auth/PutRefreshToken.js +69 -0
  368. package/src/services/auth/RefreshToken.js +0 -0
  369. package/src/services/builderHelper/actionExecutor.js +73 -0
  370. package/src/services/builderHelper/builderHelper.js +99 -0
  371. package/src/services/builderHelper/index.js +2 -0
  372. package/src/services/builderHelper/jsExecutor.js +115 -0
  373. package/src/services/builderHelper/layoutHelpers.js +231 -0
  374. package/src/services/builderHelper/nodeFactory.js +44 -0
  375. package/src/services/builderHelper/resolveProps.js +34 -0
  376. package/src/services/builderHelper/tree.js +131 -0
  377. package/src/services/components/UniversalNestedAutocomplete.js +331 -0
  378. package/src/services/components/agGridAutoComplete.js +172 -0
  379. package/src/services/components/universalAutoComplete.js +207 -0
  380. package/src/services/enums/ReportBuilderTypeEnum.js +18 -0
  381. package/src/services/helper/FilterFormat.js +70 -0
  382. package/src/services/helper/FormatCurrencyIQD.js +11 -0
  383. package/src/services/helper/datagridEditComponents.js +38 -0
  384. package/src/services/helper/dateFormat.js +30 -0
  385. package/src/services/helper/formData.js +21 -0
  386. package/src/services/helper/getFieldByType.js +0 -0
  387. package/src/services/helper/getPropByString.js +18 -0
  388. package/src/services/helper/handleChange.js +26 -0
  389. package/src/services/helper/helper.js +105 -0
  390. package/src/services/helper/multiSelectEditor.js +226 -0
  391. package/src/services/helper/translateOrderReturnStatus.js +12 -0
  392. package/src/services/helper/translateRole.js +24 -0
  393. package/src/services/helper/translateStatus.js +12 -0
  394. package/src/services/helper/translateTransferReceiptType.js +67 -0
  395. package/src/services/helper/translsateStoreProductTransfer.js +40 -0
  396. package/src/services/helper/translsateStoreType.js +25 -0
  397. package/src/services/helper/useInterval.js +21 -0
  398. package/src/services/helper/yupCutomization.js +15 -0
  399. package/src/services/reportData/fetchReportData.js +210 -0
  400. package/src/views/ConfirmDialog.js +178 -0
  401. package/src/views/builder/JSEditor.js +226 -0
  402. package/src/views/builder/inspector/Inspector.jsx +63 -0
  403. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +117 -0
  404. package/src/views/builder/inspector/Tabs/MainTab.jsx +95 -0
  405. package/src/views/builder/inspector/Tabs/RulesTab.jsx +79 -0
  406. package/src/views/builder/inspector/Tabs/StyleTab.jsx +79 -0
  407. package/src/views/builder/inspector/definitions/autocomplete/main.js +25 -0
  408. package/src/views/builder/inspector/definitions/breadcrumb/main.js +9 -0
  409. package/src/views/builder/inspector/definitions/button/actions.js +12 -0
  410. package/src/views/builder/inspector/definitions/button/main.js +14 -0
  411. package/src/views/builder/inspector/definitions/button/rules.js +5 -0
  412. package/src/views/builder/inspector/definitions/button/style.js +32 -0
  413. package/src/views/builder/inspector/definitions/button.actions.js +12 -0
  414. package/src/views/builder/inspector/definitions/card/main.js +11 -0
  415. package/src/views/builder/inspector/definitions/cell/main.js +4 -0
  416. package/src/views/builder/inspector/definitions/checkbox/actions.js +1 -0
  417. package/src/views/builder/inspector/definitions/checkbox/main.js +13 -0
  418. package/src/views/builder/inspector/definitions/checkbox/rules.js +8 -0
  419. package/src/views/builder/inspector/definitions/checkbox/style.js +38 -0
  420. package/src/views/builder/inspector/definitions/checkboxFields.js +0 -0
  421. package/src/views/builder/inspector/definitions/column/main.js +9 -0
  422. package/src/views/builder/inspector/definitions/column-group/main.js +18 -0
  423. package/src/views/builder/inspector/definitions/common/actions.js +1 -0
  424. package/src/views/builder/inspector/definitions/common/main.js +14 -0
  425. package/src/views/builder/inspector/definitions/common/rules.js +8 -0
  426. package/src/views/builder/inspector/definitions/common/style.js +39 -0
  427. package/src/views/builder/inspector/definitions/common.advanced.js +8 -0
  428. package/src/views/builder/inspector/definitions/common.main.js +14 -0
  429. package/src/views/builder/inspector/definitions/common.style.js +33 -0
  430. package/src/views/builder/inspector/definitions/commonMainFields.js +18 -0
  431. package/src/views/builder/inspector/definitions/container/actions.js +1 -0
  432. package/src/views/builder/inspector/definitions/container/main.js +4 -0
  433. package/src/views/builder/inspector/definitions/container/rules.js +4 -0
  434. package/src/views/builder/inspector/definitions/container/style.js +32 -0
  435. package/src/views/builder/inspector/definitions/datepicker/actions.js +1 -0
  436. package/src/views/builder/inspector/definitions/datepicker/main.js +28 -0
  437. package/src/views/builder/inspector/definitions/datepicker/rules.js +8 -0
  438. package/src/views/builder/inspector/definitions/datepicker/style.js +38 -0
  439. package/src/views/builder/inspector/definitions/datepicker.main.js +28 -0
  440. package/src/views/builder/inspector/definitions/divider/actions.js +1 -0
  441. package/src/views/builder/inspector/definitions/divider/main.js +23 -0
  442. package/src/views/builder/inspector/definitions/divider/rules.js +4 -0
  443. package/src/views/builder/inspector/definitions/divider/style.js +9 -0
  444. package/src/views/builder/inspector/definitions/dropdown/actions.js +10 -0
  445. package/src/views/builder/inspector/definitions/dropdown/main.js +19 -0
  446. package/src/views/builder/inspector/definitions/dropdown/rules.js +8 -0
  447. package/src/views/builder/inspector/definitions/dropdown/style.js +38 -0
  448. package/src/views/builder/inspector/definitions/header/actions.js +1 -0
  449. package/src/views/builder/inspector/definitions/header/main.js +29 -0
  450. package/src/views/builder/inspector/definitions/header/rules.js +4 -0
  451. package/src/views/builder/inspector/definitions/header/style.js +12 -0
  452. package/src/views/builder/inspector/definitions/header-cell/main.js +5 -0
  453. package/src/views/builder/inspector/definitions/image/actions.js +1 -0
  454. package/src/views/builder/inspector/definitions/image/main.js +13 -0
  455. package/src/views/builder/inspector/definitions/image/rules.js +4 -0
  456. package/src/views/builder/inspector/definitions/image/style.js +12 -0
  457. package/src/views/builder/inspector/definitions/index.js +407 -0
  458. package/src/views/builder/inspector/definitions/input/actions.js +1 -0
  459. package/src/views/builder/inspector/definitions/input/main.js +14 -0
  460. package/src/views/builder/inspector/definitions/input/rules.js +8 -0
  461. package/src/views/builder/inspector/definitions/input/style.js +32 -0
  462. package/src/views/builder/inspector/definitions/label/actions.js +1 -0
  463. package/src/views/builder/inspector/definitions/label/main.js +24 -0
  464. package/src/views/builder/inspector/definitions/label/rules.js +4 -0
  465. package/src/views/builder/inspector/definitions/label/style.js +12 -0
  466. package/src/views/builder/inspector/definitions/layout/actions.js +1 -0
  467. package/src/views/builder/inspector/definitions/layout/main.js +6 -0
  468. package/src/views/builder/inspector/definitions/layout/rules.js +3 -0
  469. package/src/views/builder/inspector/definitions/layout/style.js +7 -0
  470. package/src/views/builder/inspector/definitions/layout-cell/actions.js +1 -0
  471. package/src/views/builder/inspector/definitions/layout-cell/main.js +7 -0
  472. package/src/views/builder/inspector/definitions/layout-cell/rules.js +3 -0
  473. package/src/views/builder/inspector/definitions/layout-cell/style.js +44 -0
  474. package/src/views/builder/inspector/definitions/link/actions.js +1 -0
  475. package/src/views/builder/inspector/definitions/link/main.js +29 -0
  476. package/src/views/builder/inspector/definitions/link/rules.js +4 -0
  477. package/src/views/builder/inspector/definitions/link/style.js +11 -0
  478. package/src/views/builder/inspector/definitions/menu/actions.js +3 -0
  479. package/src/views/builder/inspector/definitions/menu/main.js +16 -0
  480. package/src/views/builder/inspector/definitions/menu/rules.js +4 -0
  481. package/src/views/builder/inspector/definitions/menu/style.js +33 -0
  482. package/src/views/builder/inspector/definitions/number/actions.js +10 -0
  483. package/src/views/builder/inspector/definitions/number/main.js +29 -0
  484. package/src/views/builder/inspector/definitions/number/rules.js +8 -0
  485. package/src/views/builder/inspector/definitions/number/style.js +32 -0
  486. package/src/views/builder/inspector/definitions/progress-circle/actions.js +1 -0
  487. package/src/views/builder/inspector/definitions/progress-circle/main.js +18 -0
  488. package/src/views/builder/inspector/definitions/progress-circle/rules.js +4 -0
  489. package/src/views/builder/inspector/definitions/progress-circle/style.js +5 -0
  490. package/src/views/builder/inspector/definitions/progress-line/actions.js +1 -0
  491. package/src/views/builder/inspector/definitions/progress-line/main.js +16 -0
  492. package/src/views/builder/inspector/definitions/progress-line/rules.js +4 -0
  493. package/src/views/builder/inspector/definitions/progress-line/style.js +6 -0
  494. package/src/views/builder/inspector/definitions/radio/actions.js +10 -0
  495. package/src/views/builder/inspector/definitions/radio/main.js +16 -0
  496. package/src/views/builder/inspector/definitions/radio/rules.js +8 -0
  497. package/src/views/builder/inspector/definitions/radio/style.js +32 -0
  498. package/src/views/builder/inspector/definitions/reportViewer/main.js +12 -0
  499. package/src/views/builder/inspector/definitions/richtext/actions.js +10 -0
  500. package/src/views/builder/inspector/definitions/richtext/main.js +21 -0
  501. package/src/views/builder/inspector/definitions/richtext/rules.js +8 -0
  502. package/src/views/builder/inspector/definitions/richtext/style.js +32 -0
  503. package/src/views/builder/inspector/definitions/signature/actions.js +1 -0
  504. package/src/views/builder/inspector/definitions/signature/main.js +13 -0
  505. package/src/views/builder/inspector/definitions/signature/rules.js +8 -0
  506. package/src/views/builder/inspector/definitions/signature/style.js +26 -0
  507. package/src/views/builder/inspector/definitions/table/main.js +9 -0
  508. package/src/views/builder/inspector/definitions/tag/actions.js +10 -0
  509. package/src/views/builder/inspector/definitions/tag/main.js +17 -0
  510. package/src/views/builder/inspector/definitions/tag/rules.js +8 -0
  511. package/src/views/builder/inspector/definitions/tag/style.js +32 -0
  512. package/src/views/builder/inspector/definitions/textarea/actions.js +1 -0
  513. package/src/views/builder/inspector/definitions/textarea/main.js +16 -0
  514. package/src/views/builder/inspector/definitions/textarea/rules.js +8 -0
  515. package/src/views/builder/inspector/definitions/textarea/style.js +32 -0
  516. package/src/views/builder/inspector/definitions/time/actions.js +10 -0
  517. package/src/views/builder/inspector/definitions/time/main.js +18 -0
  518. package/src/views/builder/inspector/definitions/time/rules.js +8 -0
  519. package/src/views/builder/inspector/definitions/time/style.js +32 -0
  520. package/src/views/builder/inspector/definitions/toggle/actions.js +10 -0
  521. package/src/views/builder/inspector/definitions/toggle/main.js +26 -0
  522. package/src/views/builder/inspector/definitions/toggle/rules.js +8 -0
  523. package/src/views/builder/inspector/definitions/toggle/style.js +32 -0
  524. package/src/views/builder/inspector/fields/BooleanEditor.jsx +30 -0
  525. package/src/views/builder/inspector/fields/ExpressionEditor.jsx +35 -0
  526. package/src/views/builder/inspector/fields/FieldWrapper.jsx +15 -0
  527. package/src/views/builder/inspector/fields/ItemsEditor.jsx +118 -0
  528. package/src/views/builder/inspector/fields/OptionsEditor.jsx +118 -0
  529. package/src/views/builder/inspector/fields/SelectEditor.jsx +32 -0
  530. package/src/views/builder/inspector/fields/TabsEditor.jsx +128 -0
  531. package/src/views/builder/inspector/fields/TextEditor.jsx +28 -0
  532. package/src/views/builder/inspector/fields/TextFieldEditor.jsx +0 -0
  533. package/src/views/builder/sidebar/Sidebar.jsx +20 -0
  534. package/src/views/builder/sidebar/SidebarTabs.jsx +50 -0
  535. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +94 -0
  536. package/src/views/builder/sidebar/tabs/Components/ComponentItem.jsx +69 -0
  537. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +89 -0
  538. package/src/views/builder/sidebar/tabs/Components/GroupLevelAutocomplete.jsx +269 -0
  539. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +69 -0
  540. package/src/views/builder/sidebar/tabs/TreeTab.jsx +205 -0
  541. package/src/views/builder/sidebar/tabs/ViewTab.jsx +121 -0
  542. package/src/views/builder/viewer/Canvas.jsx +7 -0
  543. package/src/views/builder/viewer/ComponentRenderer.jsx +166 -0
  544. package/src/views/builder/viewer/DropZone.jsx +60 -0
  545. package/src/views/builder/viewer/ProductionViewer.jsx +155 -0
  546. package/src/views/builder/viewer/SaveViewDialog.jsx +60 -0
  547. package/src/views/builder/viewer/SaveWidgetDialog.jsx +142 -0
  548. package/src/views/builder/viewer/Viewer.jsx +83 -0
  549. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +238 -0
  550. package/src/views/builder/viewer/ViewerToolbar.jsx +89 -0
  551. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +57 -0
  552. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +32 -0
  553. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +55 -0
  554. package/src/views/builder/viewer/renderers/CardRenderer.jsx +76 -0
  555. package/src/views/builder/viewer/renderers/CellRenderer.jsx +71 -0
  556. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +27 -0
  557. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +96 -0
  558. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +71 -0
  559. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +111 -0
  560. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +49 -0
  561. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +22 -0
  562. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +63 -0
  563. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +78 -0
  564. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +23 -0
  565. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +26 -0
  566. package/src/views/builder/viewer/renderers/InputRenderer.jsx +34 -0
  567. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +23 -0
  568. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +162 -0
  569. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +173 -0
  570. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +51 -0
  571. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +24 -0
  572. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +291 -0
  573. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +80 -0
  574. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +47 -0
  575. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +36 -0
  576. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +57 -0
  577. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +94 -0
  578. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +15 -0
  579. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +76 -0
  580. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +89 -0
  581. package/src/views/builder/viewer/renderers/TabRenderer.jsx +82 -0
  582. package/src/views/builder/viewer/renderers/TableRenderer.jsx +92 -0
  583. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +67 -0
  584. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +37 -0
  585. package/src/views/builder/viewer/renderers/TextRenderer.jsx +9 -0
  586. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +49 -0
  587. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +46 -0
  588. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +88 -0
  589. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +72 -0
  590. package/src/views/customFilter/CustomFilterDialog.js +1142 -0
  591. package/src/views/genericTable/BuilderExpressionParams.js +193 -0
  592. package/src/views/genericTable/FixedFilterDialog.js +447 -0
  593. package/src/views/genericTable/GenericForm.js +301 -0
  594. package/src/views/genericTable/QueryEditor.js +99 -0
  595. package/src/views/genericTable/RegexTextEditor.js +182 -0
  596. package/src/views/genericTable/ReportBuilderSaveDialog.js +153 -0
  597. package/src/views/genericTable/RoutingSettingDialog.js +189 -0
  598. package/src/views/genericTable/SGrid.js +2168 -0
  599. package/src/views/genericTable/SearchFilterDialog.js +247 -0
  600. package/src/views/genericTable/TAGGrid.js +1046 -0
  601. package/src/views/genericTable/cellEditors/autocompleteEditor.js +229 -0
  602. package/src/views/genericTable/cellRenderers/imageRenderer.js +14 -0
  603. package/src/views/genericTable/statusBar/rowCountStatusBar.js +37 -0
  604. package/src/views/genericTable/template/addTemplate.js +187 -0
  605. package/src/views/genericTable/toolPanels/CustomColumnsToolPanel.js +43 -0
  606. package/src/views/pages/auth/FooterIllustrationsV2.js +40 -0
  607. package/src/views/pages/misc/FooterIllustrations.js +47 -0
  608. package/src/views/pages/misc/muiTable/CustomPagination.js +34 -0
  609. package/src/views/pages/users/UserManageDialog.js +283 -0
  610. package/src/views/pages/users/UserViewPage.js +199 -0
  611. package/src/views/users/AddUserNameDialog.js +162 -0
  612. package/src/views/users/ContactManage.js +449 -0
  613. package/src/views/users/ResetPasswordDialog.js +242 -0
  614. package/styles/globals.css +71 -0
@@ -0,0 +1,40 @@
1
+ const UserIcon = props => {
2
+ // ** Props
3
+ const { icon, iconProps, componentType } = props;
4
+
5
+ // Return null if no valid componentType
6
+ if (!componentType) return null;
7
+
8
+ const IconTag = icon;
9
+
10
+ // Return null if no valid icon provided
11
+ if (!IconTag) return null;
12
+
13
+ let styles;
14
+ if (componentType === 'search') {
15
+ // Conditional Props based on component type
16
+ /* styles = {
17
+ color: 'blue',
18
+ fontSize: '2rem'
19
+ } */
20
+ } else if (componentType === 'vertical-menu') {
21
+ // Conditional Props based on component type
22
+ /* styles = {
23
+ color: 'red',
24
+ fontSize: '1.5rem'
25
+ } */
26
+ } else if (componentType === 'horizontal-menu') {
27
+ // Conditional Props based on component type
28
+ /* styles = {
29
+ color: 'green',
30
+ fontSize: '1rem'
31
+ } */
32
+ } else {
33
+ return null;
34
+ }
35
+
36
+ // @ts-ignore
37
+ return <IconTag {...iconProps} style={{ ...styles }} />;
38
+ };
39
+
40
+ export default UserIcon;
@@ -0,0 +1,6 @@
1
+ import { createContext } from 'react'
2
+ import { createContextualCan } from '@casl/react'
3
+
4
+ export const AbilityContext = createContext(undefined)
5
+
6
+ export default createContextualCan(AbilityContext.Consumer)
@@ -0,0 +1,36 @@
1
+ // ** React Imports
2
+ import { useContext } from 'react'
3
+
4
+ // ** Component Imports
5
+ import { AbilityContext } from 'src/layouts/components/acl/Can'
6
+
7
+ const CanViewNavGroup = props => {
8
+ // ** Props
9
+ const { children, navGroup } = props
10
+
11
+ // ** Hook
12
+ const ability = useContext(AbilityContext)
13
+
14
+ const checkForVisibleChild = arr => {
15
+ return arr.some(i => {
16
+ if (i.children) {
17
+ return checkForVisibleChild(i.children)
18
+ } else {
19
+ return ability?.can(i.action, i.subject)
20
+ }
21
+ })
22
+ }
23
+
24
+ const canViewMenuGroup = item => {
25
+ const hasAnyVisibleChild = item.children && checkForVisibleChild(item.children)
26
+ if (!(item.action && item.subject)) {
27
+ return hasAnyVisibleChild
28
+ }
29
+
30
+ return ability && ability.can(item.action, item.subject) && hasAnyVisibleChild
31
+ }
32
+
33
+ return navGroup && canViewMenuGroup(navGroup) ? <>{children}</> : null
34
+ }
35
+
36
+ export default CanViewNavGroup
@@ -0,0 +1,17 @@
1
+ // ** React Imports
2
+ import { useContext } from 'react'
3
+
4
+ // ** Component Imports
5
+ import { AbilityContext } from 'src/layouts/components/acl/Can'
6
+
7
+ const CanViewNavLink = props => {
8
+ // ** Props
9
+ const { children, navLink } = props
10
+
11
+ // ** Hook
12
+ const ability = useContext(AbilityContext)
13
+
14
+ return ability && ability.can(navLink?.action, navLink?.subject) ? <>{children}</> : null
15
+ }
16
+
17
+ export default CanViewNavLink
@@ -0,0 +1,17 @@
1
+ // ** React Imports
2
+ import { useContext } from 'react'
3
+
4
+ // ** Component Imports
5
+ import { AbilityContext } from 'src/layouts/components/acl/Can'
6
+
7
+ const CanViewNavSectionTitle = props => {
8
+ // ** Props
9
+ const { children, navTitle } = props
10
+
11
+ // ** Hook
12
+ const ability = useContext(AbilityContext)
13
+
14
+ return ability && ability.can(navTitle?.action, navTitle?.subject) ? <>{children}</> : null
15
+ }
16
+
17
+ export default CanViewNavSectionTitle
@@ -0,0 +1,39 @@
1
+ // ** MUI Imports
2
+ import Box from '@mui/material/Box'
3
+
4
+ // ** Components
5
+ import ModeToggler from 'src/@core/layouts/components/shared-components/ModeToggler'
6
+ import UserDropdown from 'src/layouts/components/UserDropdown'
7
+ import Navigation from "src/@core/layouts/components/horizontal/navigation";
8
+ import Toolbar from "@mui/material/Toolbar";
9
+
10
+ const AppBarContent = props => {
11
+ // ** Props
12
+ const { hidden,
13
+ children,
14
+ settings,
15
+ scrollToTop,
16
+ saveSettings,
17
+ horizontalNavMenuContent: userHorizontalNavMenuContent } = props
18
+ const { skin, appBar, navHidden, appBarBlur, contentWidth } = settings
19
+ return (
20
+ <Box sx={{ display: 'flex', alignItems: 'center' }}>
21
+ {/*<ModeToggler settings={settings} saveSettings={saveSettings} />*/}
22
+ <Box className='layout-horizontal-nav' sx={{ width: '100%' }}>
23
+ <Toolbar
24
+ className='horizontal-nav-content-container'
25
+ sx={{
26
+ mx: 'auto',
27
+ ...(contentWidth === 'boxed' && { '@media (min-width:1440px)': { maxWidth: 1440 } }),
28
+ minHeight: theme => `${theme.mixins.toolbar.minHeight - (skin === 'bordered' ? 1 : 0)}px !important`
29
+ }}
30
+ >
31
+ {(userHorizontalNavMenuContent && userHorizontalNavMenuContent(props)) || <Navigation {...props} />}
32
+ </Toolbar>
33
+ </Box>
34
+ <UserDropdown settings={settings} />
35
+ </Box>
36
+ )
37
+ }
38
+
39
+ export default AppBarContent
@@ -0,0 +1,44 @@
1
+ // ** React Imports
2
+ import { useEffect, useState } from 'react'
3
+
4
+ // ** Import All Icons
5
+ import * as Icons from 'mdi-material-ui'
6
+
7
+ // ** Axios Import
8
+ import axios from 'axios'
9
+
10
+ const ServerSideNavItems = () => {
11
+ // ** State
12
+ const [menuItems, setMenuItems] = useState([])
13
+ useEffect(() => {
14
+ axios.get('/api/horizontal-nav/data').then(response => {
15
+ const menuArray = response.data
16
+
17
+ /**
18
+ * Replace the icon string with the component
19
+ * If you don't want to import the whole icon library
20
+ * you can create a static object and replace the icons using that object
21
+ */
22
+ const finalMenuArray = items => {
23
+ return items.map(item => {
24
+ if (item.icon) {
25
+ // @ts-ignore
26
+ item.icon = Icons[item.icon]
27
+ if (item.children) {
28
+ finalMenuArray(item.children)
29
+ }
30
+
31
+ return item
32
+ }
33
+
34
+ return item
35
+ })
36
+ }
37
+ setMenuItems(finalMenuArray(menuArray))
38
+ })
39
+ }, [])
40
+
41
+ return menuItems
42
+ }
43
+
44
+ export default ServerSideNavItems
@@ -0,0 +1,55 @@
1
+ import { Icon, StepConnector, stepConnectorClasses, styled } from '@mui/material'
2
+
3
+ export const ColorlibConnector = styled(StepConnector)(({ theme }) => ({
4
+ [`&.${stepConnectorClasses.alternativeLabel}`]: {
5
+ top: 14
6
+ },
7
+ [`&.${stepConnectorClasses.active}`]: {
8
+ [`& .${stepConnectorClasses.line}`]: {
9
+ backgroundImage: 'linear-gradient( 95deg,rgb(242,113,33) 0%,rgb(233,64,87) 50%,rgb(138,35,135) 100%)'
10
+ }
11
+ },
12
+ [`&.${stepConnectorClasses.completed}`]: {
13
+ [`& .${stepConnectorClasses.line}`]: {
14
+ backgroundImage: 'linear-gradient( 95deg,rgb(242,113,33) 0%,rgb(233,64,87) 50%,rgb(138,35,135) 100%)'
15
+ }
16
+ },
17
+ [`& .${stepConnectorClasses.line}`]: {
18
+ height: 3,
19
+ border: 0,
20
+ backgroundColor: theme.palette.mode === 'dark' ? theme.palette.grey[800] : '#eaeaf0',
21
+ borderRadius: 1
22
+ }
23
+ }))
24
+
25
+ export const ColorlibStepIconRoot = styled('div')(({ theme, ownerState, borderColor }) => ({
26
+ backgroundColor: theme.palette.mode === 'dark' ? theme.palette.grey[700] : '#ccc',
27
+ zIndex: 1,
28
+ color: '#fff',
29
+ width: 30,
30
+ height: 30,
31
+ display: 'flex',
32
+ borderRadius: '50%',
33
+ justifyContent: 'center',
34
+ alignItems: 'center',
35
+ ...(ownerState.active && {
36
+ backgroundImage: 'linear-gradient( 136deg, rgb(242,113,33) 0%, rgb(233,64,87) 50%, rgb(138,35,135) 100%)',
37
+ boxShadow: '0 4px 10px 0 rgba(0,0,0,.25)',
38
+ border: 'solid 4px',
39
+ borderColor: borderColor
40
+ }),
41
+ ...(ownerState.completed && {
42
+ backgroundImage: 'linear-gradient( 136deg, rgb(242,113,33) 0%, rgb(233,64,87) 50%, rgb(138,35,135) 100%)'
43
+ })
44
+ }))
45
+
46
+ export function ColorlibStepIcon(props, icon, borderColor) {
47
+ const { active, completed, className } = props
48
+ const icons = <Icon sx={{ fontSize: '16px !important' }}>{icon}</Icon>
49
+
50
+ return (
51
+ <ColorlibStepIconRoot ownerState={{ completed, active }} className={className} borderColor={borderColor}>
52
+ {icons}
53
+ </ColorlibStepIconRoot>
54
+ )
55
+ }
@@ -0,0 +1,35 @@
1
+ // ** MUI Imports
2
+ import Box from '@mui/material/Box'
3
+ import IconButton from '@mui/material/IconButton'
4
+
5
+ // ** Icons Imports
6
+ import MenuIcon from 'mdi-material-ui/Menu'
7
+
8
+ // ** Components
9
+ import ModeToggler from 'src/@core/layouts/components/shared-components/ModeToggler'
10
+ import UserDropdown from 'src/layouts/components/UserDropdown'
11
+
12
+ const AppBarContent = props => {
13
+ // ** Props
14
+ const { hidden, settings, saveSettings, toggleNavVisibility } = props
15
+
16
+ return (
17
+ <Box sx={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
18
+ <Box className='actions-left' sx={{ mr: 2, display: 'flex', alignItems: 'center' }}>
19
+ {hidden ? (
20
+ <IconButton color='inherit' sx={{ ml: -2.75 }} onClick={toggleNavVisibility}>
21
+ <MenuIcon />
22
+ </IconButton>
23
+ ) : null}
24
+
25
+ <ModeToggler settings={settings} saveSettings={saveSettings} />
26
+ {/* <UserLanguageDropdown settings={settings} saveSettings={saveSettings} /> */}
27
+ </Box>
28
+ <Box className='actions-right' sx={{ display: 'flex', alignItems: 'center' }}>
29
+ <UserDropdown settings={settings} />
30
+ </Box>
31
+ </Box>
32
+ )
33
+ }
34
+
35
+ export default AppBarContent
@@ -0,0 +1,44 @@
1
+ // ** React Imports
2
+ import { useEffect, useState } from 'react'
3
+
4
+ // ** Import All Icons
5
+ import * as Icons from 'mdi-material-ui'
6
+
7
+ // ** Axios Import
8
+ import axios from 'axios'
9
+
10
+ const ServerSideNavItems = () => {
11
+ // ** State
12
+ const [menuItems, setMenuItems] = useState([])
13
+ useEffect(() => {
14
+ axios.get('/api/vertical-nav/data').then(response => {
15
+ const menuArray = response.data
16
+
17
+ /**
18
+ * Replace the icon string with the component
19
+ * If you don't want to import the whole icon library
20
+ * you can create a static object and replace the icons using that object
21
+ */
22
+ const finalMenuArray = items => {
23
+ return items.map(item => {
24
+ if (item.icon) {
25
+ // @ts-ignore
26
+ item.icon = Icons[item.icon]
27
+ if (item.children) {
28
+ finalMenuArray(item.children)
29
+ }
30
+
31
+ return item
32
+ }
33
+
34
+ return item
35
+ })
36
+ }
37
+ setMenuItems(finalMenuArray(menuArray))
38
+ })
39
+ }, [])
40
+
41
+ return menuItems
42
+ }
43
+
44
+ export default ServerSideNavItems
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @robobyte/front-builder — Public Package API
3
+ *
4
+ * This file is the single entry point for the package.
5
+ * Host Next.js apps import from here.
6
+ *
7
+ * ─────────────────────────────────────────────────────────────────────────────
8
+ * QUICK START
9
+ * ─────────────────────────────────────────────────────────────────────────────
10
+ *
11
+ * 1. Install (private npm registry):
12
+ * npm install @robobyte/front-builder
13
+ *
14
+ * 2. In the host app's next.config.js, add transpilePackages so Next.js
15
+ * can compile this source-first package:
16
+ *
17
+ * const nextConfig = {
18
+ * transpilePackages: ['@robobyte/front-builder'],
19
+ * }
20
+ *
21
+ * 3. In the host app's _app.js, wrap the tree with RoboByteFrontBuilderProvider:
22
+ *
23
+ * import { RoboByteFrontBuilderProvider } from '@robobyte/front-builder'
24
+ *
25
+ * export default function App({ Component, pageProps }) {
26
+ * return (
27
+ * <RoboByteFrontBuilderProvider navExtensions={[...]}>
28
+ * <Component {...pageProps} />
29
+ * </RoboByteFrontBuilderProvider>
30
+ * )
31
+ * }
32
+ *
33
+ * 4. Add builder pages to your Next.js app (e.g. pages/ui-builder/[id].js):
34
+ *
35
+ * export { default } from '@robobyte/front-builder/UIBuilderPage'
36
+ * // or:
37
+ * import { UIBuilderPage } from '@robobyte/front-builder'
38
+ * export default UIBuilderPage
39
+ *
40
+ * ─────────────────────────────────────────────────────────────────────────────
41
+ */
42
+
43
+ // ── Navigation Extension API ──────────────────────────────────────────────────
44
+ // NavigationExtensionProvider : Wrap your app to enable nav injection
45
+ // useNavigationExtensionContext: Internal context accessor (used by the nav renderer)
46
+ // useNavExtension : Hook to register nav items from any component
47
+ export {
48
+ NavigationExtensionProvider,
49
+ useNavigationExtensionContext
50
+ } from './navigation/NavigationExtensionContext'
51
+
52
+ export { default as useNavExtension } from './navigation/useNavExtension'
53
+
54
+ // ── Convenience Root Provider ─────────────────────────────────────────────────
55
+ // Combines NavigationExtensionProvider with any future package-level providers.
56
+ // Prefer this over using NavigationExtensionProvider directly.
57
+ export { default as RoboByteFrontBuilderProvider } from './providers/RoboByteFrontBuilderProvider'
58
+
59
+ // ── Page Components ───────────────────────────────────────────────────────────
60
+ // These are full Next.js page components.
61
+ // To embed them in your app, create a page file that re-exports the component:
62
+ //
63
+ // // pages/ui-builder/[id].js (in the HOST app)
64
+ // export { default } from '@robobyte/front-builder'
65
+ // // then override via named export if needed:
66
+ // import { UIBuilderPage } from '@robobyte/front-builder'
67
+ //
68
+ export { default as UIBuilderPage } from '../pages/viewBuilder/index'
69
+ export { default as ReportBuilderPage } from '../pages/reportModule/reportBuilder/index'
70
+
71
+ // ── Core Contexts & Hooks (advanced use) ─────────────────────────────────────
72
+ // Useful when you need to read or drive builder state from the host app.
73
+ export { BuilderProvider, useBuilder } from '../context/BuilderContext'
74
+ export { SystemContext, SystemProvider } from '../context/SystemContext'
75
+ export { AuthContext, AuthProvider } from '../context/AuthContext'
@@ -0,0 +1,81 @@
1
+ /**
2
+ * NavigationExtensionContext
3
+ *
4
+ * Allows host Next.js applications to inject additional navigation items
5
+ * into the RoboByteFrontBuilder sidebar at runtime — without modifying
6
+ * the server-stored navigation config.
7
+ *
8
+ * USAGE in host app's _app.js:
9
+ *
10
+ * import { NavigationExtensionProvider } from '@robobyte/front-builder'
11
+ *
12
+ * <NavigationExtensionProvider items={[
13
+ * {
14
+ * id: 'host-analytics',
15
+ * title: 'Analytics',
16
+ * icon: 'ChartBar', // mdi-material-ui icon name
17
+ * type: 'static',
18
+ * path: '/analytics',
19
+ * insertAt: 'end', // 'start' | 'end' | number | { afterId } | { beforeId }
20
+ * }
21
+ * ]}>
22
+ * <App />
23
+ * </NavigationExtensionProvider>
24
+ *
25
+ * Or dynamically from any component using the hook:
26
+ *
27
+ * import { useNavExtension } from '@robobyte/front-builder'
28
+ *
29
+ * useNavExtension([
30
+ * { id: 'my-item', title: 'My Page', type: 'static', path: '/my-page', icon: 'Cog' }
31
+ * ], 'my-plugin')
32
+ */
33
+
34
+ import { createContext, useCallback, useContext, useState } from 'react'
35
+
36
+ const NavigationExtensionContext = createContext({
37
+ extensionItems: [],
38
+ registerItems: () => {},
39
+ unregisterItems: () => {}
40
+ })
41
+
42
+ /**
43
+ * Provider that makes extension items available to the navigation system.
44
+ * Wrap your app (or just the pages that need extended navigation) with this.
45
+ *
46
+ * @param {Object[]} items - Static extension items declared on the provider
47
+ * @param {ReactNode} children
48
+ */
49
+ export const NavigationExtensionProvider = ({ children, items = [] }) => {
50
+ // Dynamic items registered at runtime via useNavExtension()
51
+ const [dynamicGroups, setDynamicGroups] = useState({})
52
+
53
+ const registerItems = useCallback((pluginId, pluginItems) => {
54
+ setDynamicGroups(prev => ({ ...prev, [pluginId]: pluginItems }))
55
+ }, [])
56
+
57
+ const unregisterItems = useCallback(pluginId => {
58
+ setDynamicGroups(prev => {
59
+ const next = { ...prev }
60
+ delete next[pluginId]
61
+ return next
62
+ })
63
+ }, [])
64
+
65
+ // Merge static (prop) items + all dynamic groups into one flat list
66
+ const extensionItems = [
67
+ ...items,
68
+ ...Object.values(dynamicGroups).flat()
69
+ ]
70
+
71
+ return (
72
+ <NavigationExtensionContext.Provider value={{ extensionItems, registerItems, unregisterItems }}>
73
+ {children}
74
+ </NavigationExtensionContext.Provider>
75
+ )
76
+ }
77
+
78
+ /** Internal hook — used by the navigation renderer to read extension items */
79
+ export const useNavigationExtensionContext = () => useContext(NavigationExtensionContext)
80
+
81
+ export default NavigationExtensionContext
@@ -0,0 +1,66 @@
1
+ /**
2
+ * mergeNavExtensions
3
+ *
4
+ * Merges host-app extension items into the server-fetched navigation data array.
5
+ * Each extension item may specify an `insertAt` field to control placement:
6
+ *
7
+ * insertAt: 'end' → append (default)
8
+ * insertAt: 'start' → prepend
9
+ * insertAt: 2 → insert at index 2
10
+ * insertAt: { afterId: 'xyz' } → insert after the item whose id === 'xyz'
11
+ * insertAt: { beforeId: 'xyz' }→ insert before the item whose id === 'xyz'
12
+ *
13
+ * The `insertAt` key is stripped before the item is added to the tree so that
14
+ * the nav renderer never sees it.
15
+ */
16
+
17
+ const mergeNavExtensions = (navData, extensionItems) => {
18
+ if (!extensionItems || extensionItems.length === 0) return navData
19
+
20
+ let result = [...navData]
21
+
22
+ for (const extItem of extensionItems) {
23
+ // Strip internal fields before inserting into the tree
24
+ const { insertAt = 'end', _pluginId, ...navItem } = extItem
25
+
26
+ // Don't add duplicates (match by id)
27
+ if (navItem.id && result.some(existing => existing.id === navItem.id)) {
28
+ // Update in place if already present
29
+ result = result.map(existing => (existing.id === navItem.id ? navItem : existing))
30
+ continue
31
+ }
32
+
33
+ if (insertAt === 'start') {
34
+ result = [navItem, ...result]
35
+ } else if (insertAt === 'end') {
36
+ result = [...result, navItem]
37
+ } else if (typeof insertAt === 'number') {
38
+ const idx = Math.max(0, Math.min(insertAt, result.length))
39
+ result = [...result.slice(0, idx), navItem, ...result.slice(idx)]
40
+ } else if (insertAt && typeof insertAt === 'object') {
41
+ if (insertAt.afterId) {
42
+ const idx = result.findIndex(i => i.id === insertAt.afterId)
43
+ if (idx !== -1) {
44
+ result = [...result.slice(0, idx + 1), navItem, ...result.slice(idx + 1)]
45
+ } else {
46
+ result = [...result, navItem]
47
+ }
48
+ } else if (insertAt.beforeId) {
49
+ const idx = result.findIndex(i => i.id === insertAt.beforeId)
50
+ if (idx !== -1) {
51
+ result = [...result.slice(0, idx), navItem, ...result.slice(idx)]
52
+ } else {
53
+ result = [...result, navItem]
54
+ }
55
+ } else {
56
+ result = [...result, navItem]
57
+ }
58
+ } else {
59
+ result = [...result, navItem]
60
+ }
61
+ }
62
+
63
+ return result
64
+ }
65
+
66
+ export default mergeNavExtensions
@@ -0,0 +1,54 @@
1
+ /**
2
+ * useNavExtension
3
+ *
4
+ * Hook for dynamically registering navigation items from anywhere inside the
5
+ * host application. Items are automatically cleaned up on unmount.
6
+ *
7
+ * USAGE:
8
+ *
9
+ * import { useNavExtension } from '@robobyte/front-builder'
10
+ *
11
+ * function MyFeaturePlugin() {
12
+ * useNavExtension(
13
+ * [
14
+ * {
15
+ * id: 'my-reports',
16
+ * title: 'My Reports',
17
+ * icon: 'FileChartOutline', // any mdi-material-ui icon name
18
+ * type: 'static',
19
+ * path: '/my-reports',
20
+ * insertAt: 'end', // optional, defaults to 'end'
21
+ * }
22
+ * ],
23
+ * 'my-feature-plugin' // stable plugin ID — use a unique string per feature
24
+ * )
25
+ * return null
26
+ * }
27
+ *
28
+ * @param {Object[]} items - Nav item descriptors (see NavigationExtensionContext for shape)
29
+ * @param {string} pluginId - Stable unique ID for this set of items (prevents duplicates)
30
+ */
31
+
32
+ import { useEffect, useRef } from 'react'
33
+ import { useNavigationExtensionContext } from './NavigationExtensionContext'
34
+
35
+ let _counter = 0
36
+
37
+ const useNavExtension = (items, pluginId) => {
38
+ const { registerItems, unregisterItems } = useNavigationExtensionContext()
39
+
40
+ // Generate a stable ID once per hook call when none is provided
41
+ const stableId = useRef(pluginId || `nav-ext-${++_counter}`).current
42
+
43
+ // Serialize items to detect changes without referential equality issues
44
+ const itemsKey = JSON.stringify(items)
45
+
46
+ useEffect(() => {
47
+ if (!items || items.length === 0) return
48
+ registerItems(stableId, items)
49
+ return () => unregisterItems(stableId)
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ }, [stableId, itemsKey])
52
+ }
53
+
54
+ export default useNavExtension
@@ -0,0 +1,57 @@
1
+ /**
2
+ * RoboByteFrontBuilderProvider
3
+ *
4
+ * Root provider for the @robobyte/front-builder package.
5
+ * Wrap your host app's _app.js with this component.
6
+ *
7
+ * It currently wires up the NavigationExtensionProvider so that
8
+ * nav items you pass via `navExtensions` (or register via useNavExtension)
9
+ * are merged into the sidebar automatically.
10
+ *
11
+ * EXAMPLE (_app.js in the host Next.js app):
12
+ *
13
+ * import { RoboByteFrontBuilderProvider } from '@robobyte/front-builder'
14
+ *
15
+ * export default function App({ Component, pageProps }) {
16
+ * return (
17
+ * <RoboByteFrontBuilderProvider
18
+ * navExtensions={[
19
+ * {
20
+ * id: 'host-settings',
21
+ * title: 'Settings',
22
+ * icon: 'CogOutline', // any mdi-material-ui icon name
23
+ * type: 'static',
24
+ * path: '/settings',
25
+ * insertAt: 'end', // 'start' | 'end' | number | { afterId } | { beforeId }
26
+ * },
27
+ * {
28
+ * id: 'host-analytics',
29
+ * title: 'Analytics',
30
+ * icon: 'ChartBar',
31
+ * type: 'static',
32
+ * path: '/analytics',
33
+ * insertAt: { afterId: 'host-settings' },
34
+ * }
35
+ * ]}
36
+ * >
37
+ * <Component {...pageProps} />
38
+ * </RoboByteFrontBuilderProvider>
39
+ * )
40
+ * }
41
+ */
42
+
43
+ import { NavigationExtensionProvider } from '../navigation/NavigationExtensionContext'
44
+
45
+ /**
46
+ * @param {Object[]} navExtensions - Static nav items to inject into the sidebar
47
+ * @param {ReactNode} children
48
+ */
49
+ const RoboByteFrontBuilderProvider = ({ children, navExtensions = [] }) => {
50
+ return (
51
+ <NavigationExtensionProvider items={navExtensions}>
52
+ {children}
53
+ </NavigationExtensionProvider>
54
+ )
55
+ }
56
+
57
+ export default RoboByteFrontBuilderProvider