@dashadmin/dash-admin 1.3.25 → 1.3.26

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 (511) hide show
  1. package/dist/AppAsyncWrapper.js +30 -1
  2. package/dist/AppWrapper.js +35 -1
  3. package/dist/DASHAdmin.js +312 -1
  4. package/dist/RoutingWrapper.js +76 -1
  5. package/dist/classes/DASHStorageClass.js +15 -1
  6. package/dist/components/Input/RichTextField.js +26 -1
  7. package/dist/components/Redirect.js +56 -1
  8. package/dist/components/avatar/Avatar.js +72 -1
  9. package/dist/components/avatar/SingleImageUploader.js +46 -1
  10. package/dist/components/currency/Format.js +71 -1
  11. package/dist/components/custom/Redirect.js +20 -1
  12. package/dist/components/error/Error.js +161 -1
  13. package/dist/components/geocoding/GeocodingField.js +133 -1
  14. package/dist/components/i18n/BridgedLocalesMenuButton.js +126 -1
  15. package/dist/components/i18n/LangSwitcher.js +196 -1
  16. package/dist/components/loader/GlobalLoader.js +71 -1
  17. package/dist/components/logs/LogFile.js +99 -1
  18. package/dist/components/logs/LogFileById.js +75 -1
  19. package/dist/components/logs/LogViewer.js +33 -1
  20. package/dist/components/menu/AppMenu.js +11 -1
  21. package/dist/components/menu/CustomMenuItemLink.js +77 -1
  22. package/dist/components/menu/DarkToggleMode.js +47 -1
  23. package/dist/components/menu/LanguageToggleMode.js +99 -1
  24. package/dist/components/misc/CustomImageInput.js +54 -1
  25. package/dist/components/misc/DASHGlobalErrorHandler.js +159 -1
  26. package/dist/components/misc/DarkModeSwitcher.js +40 -1
  27. package/dist/components/misc/LanguageSwitcher.js +193 -1
  28. package/dist/components/misc/MUIHtmlToolTip.js +50 -1
  29. package/dist/components/misc/MuiSimpleJsonTable.js +178 -1
  30. package/dist/components/misc/MultiLevelTable.js +124 -1
  31. package/dist/components/misc/NoResults.js +17 -1
  32. package/dist/components/misc/PDFViewer.js +86 -1
  33. package/dist/components/navigation/Breadcrumbs.js +178 -1
  34. package/dist/components/navigation/BreadcrumbsManager.js +194 -1
  35. package/dist/components/navigation/index.js +8 -1
  36. package/dist/components/panel/Error.js +161 -1
  37. package/dist/components/permission/AvailablePermissionsContext.js +157 -1
  38. package/dist/components/permission/PermissionsSelector.js +719 -1
  39. package/dist/components/permission/PermissionsSelectorList.js +400 -1
  40. package/dist/components/racustombuttons/CustomRAButton.js +94 -1
  41. package/dist/components/racustombuttons/QuickButton.js +109 -1
  42. package/dist/components/racustombuttons/QuickEditButton.js +114 -1
  43. package/dist/components/racustombuttons/QuickIconButton.js +119 -1
  44. package/dist/components/scrollbar/Scrollbar.js +52 -1
  45. package/dist/components/selects/MultiSelect.js +42 -1
  46. package/dist/components/selects/RASearchableSelect.js +207 -1
  47. package/dist/components/selects/RASearchableSelectChips.js +225 -1
  48. package/dist/components/selects/SearchableSelect.js +128 -1
  49. package/dist/components/subscription/BillingCycleSelectInput.js +50 -1
  50. package/dist/components/subscription/PlanAddonsSettings.js +396 -1
  51. package/dist/components/subscription/PlanAuditLog.js +345 -1
  52. package/dist/components/subscription/PlanFeaturesSettings.js +151 -1
  53. package/dist/components/subscription/PlanLimitsSettings.js +168 -1
  54. package/dist/components/subscription/PlanMetadataSettings.js +219 -1
  55. package/dist/components/subscription/PlanPricesSettings.js +222 -1
  56. package/dist/components/subscription/index.js +12 -1
  57. package/dist/components/svgelements/SvgLoading.js +330 -1
  58. package/dist/components/svgelements/SvgLogo.js +70 -1
  59. package/dist/components/svgelements/SvgLogoMin.js +76 -1
  60. package/dist/components/svgelements/SvgShipping.js +1001 -1
  61. package/dist/components/tenant/TenantAttributes.js +107 -1
  62. package/dist/components/tenant/TenantAttributesContext.js +150 -1
  63. package/dist/components/tenant/TenantSelector.js +160 -1
  64. package/dist/components/tenant/TenantSettings.js +107 -1
  65. package/dist/components/tenant/TenantSettingsContext.js +152 -1
  66. package/dist/components/tenant/TenantTheme.js +112 -1
  67. package/dist/components/user/AvatarComponent.js +270 -1
  68. package/dist/components/user/TenantAvatarComponent.js +83 -1
  69. package/dist/components/user/UserPreferences.js +422 -1
  70. package/dist/config/ACTIONS.js +25 -1
  71. package/dist/config/ConstantsService.js +25 -1
  72. package/dist/config/DASHAdminSystemConstants.js +137 -1
  73. package/dist/config/PARSERS.js +9 -1
  74. package/dist/contexts/DashQueryClientContext.js +78 -1
  75. package/dist/contexts/DashResourceContext.js +21 -1
  76. package/dist/contexts/I18nBridgeContext.js +123 -1
  77. package/dist/contexts/I18nBridgeSetter.js +29 -1
  78. package/dist/contexts/I18nReduxSync.js +16 -1
  79. package/dist/contexts/SubscriptionPlanFormatsProvider.js +175 -1
  80. package/dist/contexts/SystemRequestsCache.js +194 -1
  81. package/dist/contexts/auth/AuthContext.js +396 -1
  82. package/dist/contexts/auth/AuthContextLocalStorage.js +118 -1
  83. package/dist/contexts/auth/DASHAuthenticationService.js +679 -1
  84. package/dist/contexts/auth/WindowContext.js +10 -1
  85. package/dist/contexts/auth/index.js +2 -1
  86. package/dist/contexts/com/FCMContext.js +378 -1
  87. package/dist/contexts/com/LaravelEchoContext.js +45 -1
  88. package/dist/contexts/com/LaravelEchoMgr.js +121 -1
  89. package/dist/contexts/com/components/DefaultNotificationComponent.js +31 -1
  90. package/dist/contexts/com/components/NotificationAttributesTable.js +28 -1
  91. package/dist/contexts/com/components/NotificationRenderer.js +36 -1
  92. package/dist/contexts/com/components/NotificationsWidget.js +142 -1
  93. package/dist/contexts/com/components/notificationFormats.js +15 -1
  94. package/dist/contexts/com/useLaravelEcho.js +340 -1
  95. package/dist/contexts/dictionary/DictionaryContext.js +43 -1
  96. package/dist/default-theme/DASHAppProviders.js +86 -1
  97. package/dist/default-theme/DashThemeContext.js +146 -1
  98. package/dist/default-theme/DashThemeHelperProvider.js +54 -1
  99. package/dist/default-theme/DomainAppLayout.js +126 -1
  100. package/dist/default-theme/DomainHeader.js +114 -1
  101. package/dist/default-theme/DomainTheme.js +60 -1
  102. package/dist/default-theme/FullLayoutMarkup.js +55 -1
  103. package/dist/default-theme/StaticLayout.js +36 -1
  104. package/dist/default-theme/index.js +19 -1
  105. package/dist/default-theme/menu/AppMaterialMenu.js +364 -1
  106. package/dist/default-theme/menu/AppMenuComponents/SubmenuPortal.js +33 -1
  107. package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.js +239 -1
  108. package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.js +22 -1
  109. package/dist/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.js +209 -1
  110. package/dist/default-theme/menu/AppMenuComponents/expanded/SidebarItem.js +71 -1
  111. package/dist/default-theme/menu/AppMenuComponents/getItem.js +7 -1
  112. package/dist/default-theme/menu/AppMenuComponents/submenuConstants.js +78 -1
  113. package/dist/default-theme/menu/AppSidebarMaterial.js +232 -1
  114. package/dist/default-theme/menu/SidebarActions.js +75 -1
  115. package/dist/default-theme/updateDomCssVariables.js +134 -1
  116. package/dist/helpers/checkRole.js +14 -1
  117. package/dist/helpers/parseAxiosError.js +28 -2
  118. package/dist/hooks/audio/useAudio.js +24 -1
  119. package/dist/hooks/axios.js +52 -1
  120. package/dist/hooks/data/useDashboardStats.js +88 -1
  121. package/dist/hooks/data/usePackageByClientsStats.js +51 -1
  122. package/dist/hooks/data/usePackageByCommunesStats.js +51 -1
  123. package/dist/hooks/data/usePackageStats.js +88 -1
  124. package/dist/hooks/data/usePackageWithdrawDetails.js +69 -1
  125. package/dist/hooks/data/useStats.js +94 -1
  126. package/dist/hooks/isCurrentPath.js +18 -1
  127. package/dist/hooks/notifications/WSMessagesManager.js +128 -1
  128. package/dist/hooks/notifications/WSPusherManager.js +70 -1
  129. package/dist/hooks/useBreadcrumbs.js +208 -1
  130. package/dist/hooks/useClickOutside.js +18 -1
  131. package/dist/hooks/useFormPersistance.js +129 -1
  132. package/dist/hooks/useGlobalErrorMediator.js +37 -1
  133. package/dist/hooks/useGlobalLoaderMgr.js +20 -1
  134. package/dist/hooks/useHash.js +24 -1
  135. package/dist/hooks/useLocalStorage.js +68 -1
  136. package/dist/hooks/usePolyglotTranslation.js +57 -1
  137. package/dist/hooks/usePrevious.js +12 -1
  138. package/dist/hooks/usePrintSelected.js +30 -1
  139. package/dist/hooks/useVirtualHash.js +28 -1
  140. package/dist/hooks/window/useWindowSize.js +23 -1
  141. package/dist/index.js +120 -97
  142. package/dist/interfaces.js +6 -1
  143. package/dist/layout/AppLayout.js +36 -1
  144. package/dist/layout/ApplicationLayout.js +110 -1
  145. package/dist/layout/MotionWrapper.js +182 -1
  146. package/dist/layout/MotionWrapper.original.js +182 -1
  147. package/dist/layout/ResourceMenu.js +87 -1
  148. package/dist/layout/ResoureLayout.js +47 -1
  149. package/dist/layout/TransitionWrapper.js +83 -2
  150. package/dist/pages/ChangePassword.js +198 -1
  151. package/dist/pages/DASHLanding.js +9 -1
  152. package/dist/pages/DASHLightWeightLogin.js +495 -1
  153. package/dist/pages/DASHSimpleLogin.js +231 -1
  154. package/dist/pages/Login.js +113 -1
  155. package/dist/pages/Profile.js +347 -1
  156. package/dist/pages/RecoverPassword.js +175 -1
  157. package/dist/pages/SingleImageUploader.js +40 -1
  158. package/dist/pages/VerifyAccount.js +129 -1
  159. package/dist/providers/authProvider.js +186 -1
  160. package/dist/providers/dataProvider.js +468 -1
  161. package/dist/providers/i18n/en.js +514 -1
  162. package/dist/providers/i18n/es.js +520 -1
  163. package/dist/providers/i18n/languages.js +8 -1
  164. package/dist/providers/i18nProvider.js +23 -1
  165. package/dist/react-admin-dash/RADashComponent.js +210 -1
  166. package/dist/react-admin-dash/Resource.js +62 -1
  167. package/dist/resources/Brand/BrandResource.js +106 -1
  168. package/dist/resources/DASHResourceLoader.js +104 -1
  169. package/dist/resources/Log/LogResource.js +59 -1
  170. package/dist/resources/Tenant/ImpersonateTenantResource.js +113 -1
  171. package/dist/resources/Trash/TrashTemplate.js +195 -1
  172. package/dist/resources.js +259 -1
  173. package/dist/schemas/log.js +45 -1
  174. package/dist/schemas/notification.js +39 -1
  175. package/dist/schemas/permissions.js +44 -1
  176. package/dist/schemas/roles.js +48 -1
  177. package/dist/schemas/rolesDataGrid.js +48 -1
  178. package/dist/schemas/subscription/components/SubscriptionActions.js +172 -1
  179. package/dist/schemas/subscription/components/SubscriptionPaymentHistory.js +101 -1
  180. package/dist/schemas/subscription/components/SubscriptionPlanFeatures.js +115 -1
  181. package/dist/schemas/subscription/components/SubscriptionPlanPreview.js +92 -1
  182. package/dist/schemas/subscription/components/SubscriptionPlanStats.js +181 -1
  183. package/dist/schemas/subscription/components/SubscriptionStatusIndicator.js +70 -1
  184. package/dist/schemas/subscription/subscriptionPlanSchema.js +184 -1
  185. package/dist/schemas/subscription/subscriptionSchema.js +147 -1
  186. package/dist/schemas/subscriptionPlan.js +397 -1
  187. package/dist/schemas/tenant.js +122 -1
  188. package/dist/schemas/tenantUser.js +94 -1
  189. package/dist/schemas/tenant_superadmin.js +118 -1
  190. package/dist/schemas/user.js +26 -1
  191. package/dist/systemResources.js +1039 -1
  192. package/dist/systemResources.old.js +668 -1
  193. package/dist/templates/ResourceTemplate.js +196 -1
  194. package/dist/templates/ResourceTemplateCreate.js +144 -1
  195. package/dist/templates/ResourceTemplateEdit.js +147 -1
  196. package/dist/templates/ResourceTemplateFull.js +518 -1
  197. package/dist/templates/ResourceTemplateList.js +295 -1
  198. package/dist/templates/ResourceTemplateShow.js +45 -1
  199. package/dist/templates/TrashTemplate.js +175 -1
  200. package/dist/tenantResources.js +206 -1
  201. package/dist/test_portal_bubbles.js +37 -1
  202. package/dist/theme/AppHeader.js +60 -1
  203. package/dist/theme/AppLayoutSetting.js +34 -1
  204. package/dist/theme/AppLogo.js +7 -1
  205. package/dist/theme/AppSidebar.js +30 -1
  206. package/dist/theme/AppSidebarContent.js +84 -1
  207. package/dist/theme/AppSidebarLogo.js +42 -1
  208. package/dist/theme/components/PageTitle.js +61 -1
  209. package/dist/utils/cache/CacheInvalidatorContext.js +100 -1
  210. package/dist/utils/cache/CacheInvalidatorListenerComponent.js +10 -1
  211. package/dist/utils/cache/useCacheInvalidatorListener.js +17 -1
  212. package/dist/utils/convertFileToBase64.js +10 -1
  213. package/dist/utils/convertToFile.js +12 -1
  214. package/dist/utils/cookies.js +45 -1
  215. package/dist/utils/dashDefaultQueryClient.js +15 -1
  216. package/dist/utils/dataUrlToBlob.js +23 -1
  217. package/dist/utils/deepReplace.js +17 -1
  218. package/dist/utils/getProfileMenu.js +31 -1
  219. package/dist/utils/getTenantSettings.js +9 -1
  220. package/dist/utils/getType.js +10 -1
  221. package/dist/utils/getUserSettings.js +9 -1
  222. package/dist/utils/hasCode.js +14 -1
  223. package/dist/utils/index.js +19 -1
  224. package/dist/utils/injectTenantStyles.js +19 -1
  225. package/dist/utils/isComponent.js +23 -1
  226. package/dist/utils/navEvents.js +75 -1
  227. package/dist/utils/prototypes.js +5 -1
  228. package/dist/utils/regexp.js +7 -1
  229. package/dist/utils/resolveObjectPath.js +5 -1
  230. package/dist/utils/setNativeValue.js +17 -1
  231. package/dist/utils/slugify.js +7 -1
  232. package/dist/utils/validators/emailValidator.js +8 -1
  233. package/dist/utils/validators/requiredValidator.js +7 -1
  234. package/dist/utils/validators/rutValidator.js +25 -1
  235. package/dist/utils/validators.js +57 -1
  236. package/package.json +153 -69
  237. package/src/AppAsyncWrapper.tsx +42 -0
  238. package/src/AppWrapper.tsx +45 -0
  239. package/src/DASHAdmin.tsx +501 -0
  240. package/src/RoutingWrapper.tsx +139 -0
  241. package/src/classes/DASHStorageClass.tsx +8 -0
  242. package/src/components/Input/RichTextField.tsx +27 -0
  243. package/src/components/Redirect.tsx +46 -0
  244. package/src/components/avatar/Avatar.tsx +67 -0
  245. package/src/components/avatar/SingleImageUploader.tsx +53 -0
  246. package/src/components/currency/Format.tsx +77 -0
  247. package/src/components/custom/Redirect.tsx +23 -0
  248. package/src/components/error/Error.tsx +168 -0
  249. package/src/components/geocoding/GeocodingField.tsx +167 -0
  250. package/src/components/i18n/BridgedLocalesMenuButton.tsx +159 -0
  251. package/src/components/i18n/LangSwitcher.tsx +204 -0
  252. package/src/components/loader/GlobalLoader.tsx +56 -0
  253. package/src/components/logs/LogFile.tsx +88 -0
  254. package/src/components/logs/LogFileById.tsx +68 -0
  255. package/src/components/logs/LogViewer.tsx +43 -0
  256. package/src/components/menu/AppMenu.tsx +22 -0
  257. package/src/components/menu/CustomMenuItemLink.tsx +61 -0
  258. package/src/components/menu/DarkToggleMode.tsx +65 -0
  259. package/src/components/menu/LanguageToggleMode.tsx +120 -0
  260. package/src/components/misc/CustomImageInput.tsx +62 -0
  261. package/src/components/misc/DASHGlobalErrorHandler.tsx +194 -0
  262. package/src/components/misc/DarkModeSwitcher.tsx +112 -0
  263. package/src/components/misc/LanguageSwitcher.tsx +199 -0
  264. package/src/components/misc/MUIHtmlToolTip.tsx +15 -0
  265. package/src/components/misc/MuiSimpleJsonTable.tsx +279 -0
  266. package/src/components/misc/MultiLevelTable.tsx +229 -0
  267. package/src/components/misc/NoResults.tsx +25 -0
  268. package/src/components/misc/PDFViewer.tsx +85 -0
  269. package/src/components/navigation/Breadcrumbs.tsx +220 -0
  270. package/src/components/navigation/BreadcrumbsManager.tsx +310 -0
  271. package/src/components/navigation/index.tsx +5 -0
  272. package/src/components/panel/Error.tsx +168 -0
  273. package/src/components/permission/AvailablePermissionsContext.tsx +173 -0
  274. package/src/components/permission/PermissionsSelector.tsx +819 -0
  275. package/src/components/permission/PermissionsSelectorList.tsx +468 -0
  276. package/src/components/permission/tsx +0 -0
  277. package/src/components/racustombuttons/CustomRAButton.tsx +87 -0
  278. package/src/components/racustombuttons/QuickButton.tsx +117 -0
  279. package/src/components/racustombuttons/QuickEditButton.tsx +115 -0
  280. package/src/components/racustombuttons/QuickIconButton.tsx +122 -0
  281. package/src/components/scrollbar/Scrollbar.tsx +31 -0
  282. package/src/components/selects/MultiSelect.tsx +53 -0
  283. package/src/components/selects/RASearchableSelect.tsx +279 -0
  284. package/src/components/selects/RASearchableSelectChips.tsx +304 -0
  285. package/src/components/selects/SearchableSelect.tsx +135 -0
  286. package/src/components/subscription/BillingCycleSelectInput.tsx +68 -0
  287. package/src/components/subscription/PlanAddonsSettings.tsx +522 -0
  288. package/src/components/subscription/PlanAuditLog.tsx +439 -0
  289. package/src/components/subscription/PlanFeaturesSettings.tsx +223 -0
  290. package/src/components/subscription/PlanLimitsSettings.tsx +230 -0
  291. package/src/components/subscription/PlanMetadataSettings.tsx +284 -0
  292. package/src/components/subscription/PlanPricesSettings.tsx +295 -0
  293. package/src/components/subscription/index.ts +7 -0
  294. package/src/components/svgelements/SvgLoading.tsx +229 -0
  295. package/src/components/svgelements/SvgLogo.tsx +53 -0
  296. package/src/components/svgelements/SvgLogoMin.tsx +64 -0
  297. package/src/components/svgelements/SvgShipping.tsx +673 -0
  298. package/src/components/tenant/AvailablePermissionsContext.tsx +0 -0
  299. package/src/components/tenant/TenantAttributes.tsx +153 -0
  300. package/src/components/tenant/TenantAttributesContext.tsx +163 -0
  301. package/src/components/tenant/TenantSelector.tsx +139 -0
  302. package/src/components/tenant/TenantSettings.tsx +172 -0
  303. package/src/components/tenant/TenantSettingsContext.tsx +165 -0
  304. package/src/components/tenant/TenantTheme.tsx +172 -0
  305. package/src/components/user/AvatarComponent.tsx +301 -0
  306. package/src/components/user/TenantAvatarComponent.tsx +99 -0
  307. package/src/components/user/UserPreferences.tsx +642 -0
  308. package/src/config/ACTIONS.tsx +26 -0
  309. package/src/config/ConstantsService.tsx +44 -0
  310. package/src/config/DASHAdminSystemConstants.tsx +182 -0
  311. package/src/config/PARSERS.tsx +9 -0
  312. package/src/contexts/DashQueryClientContext.tsx +113 -0
  313. package/src/contexts/DashResourceContext.tsx +34 -0
  314. package/src/contexts/I18nBridgeContext.tsx +156 -0
  315. package/src/contexts/I18nBridgeSetter.tsx +39 -0
  316. package/src/contexts/I18nReduxSync.tsx +27 -0
  317. package/src/contexts/SubscriptionPlanFormatsProvider.tsx +217 -0
  318. package/src/contexts/SystemRequestsCache.tsx +215 -0
  319. package/src/contexts/auth/AuthContext.tsx +553 -0
  320. package/src/contexts/auth/AuthContextLocalStorage.tsx +140 -0
  321. package/src/contexts/auth/DASHAuthenticationService.tsx +917 -0
  322. package/src/contexts/auth/WindowContext.tsx +15 -0
  323. package/src/contexts/auth/index.tsx +3 -0
  324. package/src/contexts/com/FCMContext.tsx +415 -0
  325. package/src/contexts/com/LaravelEchoContext.tsx +41 -0
  326. package/src/contexts/com/LaravelEchoMgr.tsx +155 -0
  327. package/src/contexts/com/components/DefaultNotificationComponent.tsx +20 -0
  328. package/src/contexts/com/components/NotificationAttributesTable.tsx +54 -0
  329. package/src/contexts/com/components/NotificationRenderer.tsx +42 -0
  330. package/src/contexts/com/components/NotificationsWidget.tsx +182 -0
  331. package/src/contexts/com/components/notificationFormats.tsx +50 -0
  332. package/src/contexts/com/useLaravelEcho.tsx +432 -0
  333. package/src/contexts/dictionary/DictionaryContext.tsx +94 -0
  334. package/src/default-theme/DASHAppProviders.tsx +117 -0
  335. package/src/default-theme/DashThemeContext.tsx +218 -0
  336. package/src/default-theme/DashThemeHelperProvider.tsx +98 -0
  337. package/src/default-theme/DomainAppLayout.tsx +166 -0
  338. package/src/default-theme/DomainHeader.tsx +162 -0
  339. package/src/default-theme/DomainTheme.tsx +59 -0
  340. package/src/default-theme/FullLayoutMarkup.tsx +250 -0
  341. package/src/default-theme/StaticLayout.tsx +47 -0
  342. package/src/default-theme/index.tsx +11 -0
  343. package/src/default-theme/menu/AppMaterialMenu.tsx +545 -0
  344. package/src/default-theme/menu/AppMenuComponents/SubmenuPortal.tsx +56 -0
  345. package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.tsx +254 -0
  346. package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.tsx +31 -0
  347. package/src/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.tsx +276 -0
  348. package/src/default-theme/menu/AppMenuComponents/expanded/SidebarItem.tsx +91 -0
  349. package/src/default-theme/menu/AppMenuComponents/getItem.tsx +17 -0
  350. package/src/default-theme/menu/AppMenuComponents/interfaces.tsx +41 -0
  351. package/src/default-theme/menu/AppMenuComponents/submenuConstants.ts +85 -0
  352. package/src/default-theme/menu/AppSidebarMaterial.tsx +339 -0
  353. package/src/default-theme/menu/SidebarActions.tsx +84 -0
  354. package/src/default-theme/updateDomCssVariables.tsx +176 -0
  355. package/src/helpers/checkRole.tsx +66 -0
  356. package/src/helpers/parseAxiosError.tsx +41 -0
  357. package/src/hooks/audio/useAudio.tsx +39 -0
  358. package/src/hooks/axios.tsx +62 -0
  359. package/src/hooks/data/useDashboardStats.tsx +65 -0
  360. package/src/hooks/data/usePackageByClientsStats.tsx +44 -0
  361. package/src/hooks/data/usePackageByCommunesStats.tsx +44 -0
  362. package/src/hooks/data/usePackageStats.tsx +69 -0
  363. package/src/hooks/data/usePackageWithdrawDetails.tsx +61 -0
  364. package/src/hooks/data/useStats.tsx +86 -0
  365. package/src/hooks/isCurrentPath.tsx +22 -0
  366. package/src/hooks/notifications/WSMessagesManager.tsx +152 -0
  367. package/src/hooks/notifications/WSPusherManager.tsx +92 -0
  368. package/src/hooks/useBreadcrumbs.tsx +329 -0
  369. package/src/hooks/useClickOutside.tsx +17 -0
  370. package/src/hooks/useFormPersistance.tsx +150 -0
  371. package/src/hooks/useGlobalErrorMediator.tsx +43 -0
  372. package/src/hooks/useGlobalLoaderMgr.tsx +21 -0
  373. package/src/hooks/useHash.tsx +27 -0
  374. package/src/hooks/useLocalStorage.tsx +196 -0
  375. package/src/hooks/usePolyglotTranslation.tsx +62 -0
  376. package/src/hooks/usePrevious.tsx +9 -0
  377. package/src/hooks/usePrintSelected.tsx +37 -0
  378. package/src/hooks/useVirtualHash.tsx +33 -0
  379. package/src/hooks/window/useWindowSize.tsx +36 -0
  380. package/src/index.tsx +110 -0
  381. package/src/interfaces/IAppResourceConfig.tsx +20 -0
  382. package/src/interfaces/Log.tsx +16 -0
  383. package/src/interfaces/Tenant.tsx +25 -0
  384. package/src/interfaces/communication/IActions.tsx +5 -0
  385. package/src/interfaces/communication/INotification.tsx +21 -0
  386. package/src/interfaces/communication/IPayload.tsx +3 -0
  387. package/src/interfaces/communication/IRequestAction.tsx +10 -0
  388. package/src/interfaces/communication/IRequestPayload.tsx +7 -0
  389. package/src/interfaces/communication/IResponseAction.tsx +7 -0
  390. package/src/interfaces/misc/IAny.tsx +3 -0
  391. package/src/interfaces/misc/IFlashMessage.tsx +10 -0
  392. package/src/interfaces/navigation/IAppMenu.ts +14 -0
  393. package/src/interfaces/navigation/ICollapsableSidebarMenu.ts +12 -0
  394. package/src/interfaces/navigation/IMenuItem.ts +16 -0
  395. package/src/interfaces/notifications/IModel.tsx +6 -0
  396. package/src/interfaces/notifications/IModelField.tsx +8 -0
  397. package/src/interfaces/notifications/IUserNotification.tsx +12 -0
  398. package/src/interfaces/notifications/IUserNotificationData.tsx +13 -0
  399. package/src/interfaces/notifications/IUserNotificationPayload.tsx +8 -0
  400. package/src/interfaces/user/IGetAuth.tsx +92 -0
  401. package/src/interfaces/user/ITenantSettings.tsx +3 -0
  402. package/src/interfaces/user/IUser.tsx +60 -0
  403. package/src/interfaces/user/IUserSettings.tsx +43 -0
  404. package/src/interfaces.tsx +6 -0
  405. package/src/layout/AppLayout.tsx +112 -0
  406. package/src/layout/ApplicationLayout.tsx +197 -0
  407. package/src/layout/MotionWrapper.original.tsx +236 -0
  408. package/src/layout/MotionWrapper.tsx +236 -0
  409. package/src/layout/ResourceMenu.tsx +164 -0
  410. package/src/layout/ResoureLayout.tsx +105 -0
  411. package/src/layout/TransitionWrapper.tsx +125 -0
  412. package/src/pages/ChangePassword.tsx +179 -0
  413. package/src/pages/DASHLanding.tsx +22 -0
  414. package/src/pages/DASHLightWeightLogin.tsx +610 -0
  415. package/src/pages/DASHSimpleLogin.tsx +260 -0
  416. package/src/pages/Login.tsx +111 -0
  417. package/src/pages/Profile.tsx +394 -0
  418. package/src/pages/RecoverPassword.tsx +166 -0
  419. package/src/pages/SingleImageUploader.tsx +55 -0
  420. package/src/pages/VerifyAccount.tsx +128 -0
  421. package/src/providers/authProvider.tsx +210 -0
  422. package/src/providers/dataProvider.tsx +672 -0
  423. package/src/providers/i18n/en.ts +533 -0
  424. package/src/providers/i18n/es.ts +539 -0
  425. package/src/providers/i18n/languages.tsx +5 -0
  426. package/src/providers/i18nProvider.tsx +23 -0
  427. package/src/react-admin-dash/RADashComponent.tsx +240 -0
  428. package/src/react-admin-dash/Resource.tsx +77 -0
  429. package/src/resources/Brand/BrandResource.tsx +130 -0
  430. package/src/resources/DASHResourceLoader.ts +180 -0
  431. package/src/resources/Log/LogResource.tsx +73 -0
  432. package/src/resources/Tenant/ImpersonateTenantResource.tsx +113 -0
  433. package/src/resources/Trash/TrashTemplate.tsx +180 -0
  434. package/src/resources.tsx +280 -0
  435. package/src/schemas/log.tsx +45 -0
  436. package/src/schemas/notification.tsx +42 -0
  437. package/src/schemas/permissions.tsx +44 -0
  438. package/src/schemas/roles.tsx +48 -0
  439. package/src/schemas/rolesDataGrid.tsx +48 -0
  440. package/src/schemas/subscription/components/SubscriptionActions.tsx +153 -0
  441. package/src/schemas/subscription/components/SubscriptionPaymentHistory.tsx +120 -0
  442. package/src/schemas/subscription/components/SubscriptionPlanFeatures.tsx +155 -0
  443. package/src/schemas/subscription/components/SubscriptionPlanPreview.tsx +128 -0
  444. package/src/schemas/subscription/components/SubscriptionPlanStats.tsx +268 -0
  445. package/src/schemas/subscription/components/SubscriptionStatusIndicator.tsx +72 -0
  446. package/src/schemas/subscription/subscriptionPlanSchema.tsx +185 -0
  447. package/src/schemas/subscription/subscriptionSchema.tsx +152 -0
  448. package/src/schemas/subscriptionPlan.ts +422 -0
  449. package/src/schemas/tenant.tsx +129 -0
  450. package/src/schemas/tenantUser.tsx +96 -0
  451. package/src/schemas/tenant_superadmin.tsx +119 -0
  452. package/src/schemas/user.tsx +26 -0
  453. package/src/systemResources.old.tsx +928 -0
  454. package/src/systemResources.tsx +1135 -0
  455. package/src/templates/ResourceTemplate.tsx +240 -0
  456. package/src/templates/ResourceTemplateCreate.tsx +167 -0
  457. package/src/templates/ResourceTemplateEdit.tsx +176 -0
  458. package/src/templates/ResourceTemplateFull.tsx +581 -0
  459. package/src/templates/ResourceTemplateList.tsx +340 -0
  460. package/src/templates/ResourceTemplateShow.tsx +88 -0
  461. package/src/templates/TrashTemplate.tsx +179 -0
  462. package/src/tenantResources.tsx +223 -0
  463. package/src/test_portal_bubbles.tsx +40 -0
  464. package/src/theme/AppHeader.tsx +52 -0
  465. package/src/theme/AppLayoutSetting.tsx +33 -0
  466. package/src/theme/AppLogo.tsx +13 -0
  467. package/src/theme/AppSidebar.tsx +12 -0
  468. package/src/theme/AppSidebarContent.tsx +105 -0
  469. package/src/theme/AppSidebarLogo.tsx +48 -0
  470. package/src/theme/components/PageTitle.tsx +37 -0
  471. package/src/utils/cache/CacheInvalidatorContext.tsx +125 -0
  472. package/src/utils/cache/CacheInvalidatorListenerComponent.tsx +10 -0
  473. package/src/utils/cache/useCacheInvalidatorListener.tsx +27 -0
  474. package/src/utils/convertFileToBase64.tsx +9 -0
  475. package/src/utils/convertToFile.tsx +14 -0
  476. package/src/utils/cookies.tsx +33 -0
  477. package/src/utils/dashDefaultQueryClient.tsx +34 -0
  478. package/src/utils/dataUrlToBlob.tsx +30 -0
  479. package/src/utils/deepReplace.tsx +19 -0
  480. package/src/utils/getProfileMenu.tsx +41 -0
  481. package/src/utils/getTenantSettings.tsx +9 -0
  482. package/src/utils/getType.tsx +8 -0
  483. package/src/utils/getUserSettings.tsx +8 -0
  484. package/src/utils/hasCode.tsx +14 -0
  485. package/src/utils/index.ts +19 -0
  486. package/src/utils/injectTenantStyles.ts +28 -0
  487. package/src/utils/isComponent.tsx +45 -0
  488. package/src/utils/navEvents.tsx +91 -0
  489. package/src/utils/prototypes.tsx +5 -0
  490. package/src/utils/regexp.tsx +4 -0
  491. package/src/utils/resolveObjectPath.tsx +4 -0
  492. package/src/utils/setNativeValue.tsx +24 -0
  493. package/src/utils/slugify.tsx +11 -0
  494. package/src/utils/validators/emailValidator.tsx +6 -0
  495. package/src/utils/validators/requiredValidator.tsx +5 -0
  496. package/src/utils/validators/rutValidator.tsx +31 -0
  497. package/src/utils/validators.tsx +96 -0
  498. package/dist/ChangePassword-DmWAQAX_.js +0 -152
  499. package/dist/Login-t41HMhVT.js +0 -101
  500. package/dist/Profile-By-gdPUd.js +0 -294
  501. package/dist/RecoverPassword-DzPdbkg2.js +0 -149
  502. package/dist/VerifyAccount-Bofaxe5w.js +0 -99
  503. package/dist/index-gfebuoyf.js +0 -21614
  504. /package/dist/{components/permission/tsx → declarations.d.js} +0 -0
  505. /package/{dist → src}/DASHAdmin.tsx.old +0 -0
  506. /package/{dist → src}/declarations.d.ts +0 -0
  507. /package/{dist → src}/default-theme/DashThemeContext.tsx.fast +0 -0
  508. /package/{dist → src}/default-theme/DashThemeContext.tsx.old +0 -0
  509. /package/{dist → src}/templates/ResourceTemplate.tsx.memoized_experiment +0 -0
  510. /package/{dist → src}/templates/ResourceTemplate.tsx.original +0 -0
  511. /package/{dist → src}/templates/ResourceTemplateOld.tsx.bkup +0 -0
@@ -1 +1,182 @@
1
- import{Fragment as k,jsx as e,jsxs as h}from"react/jsx-runtime";import{motion as y}from"framer-motion";import{Outlet as P}from"react-router";import{useEffect as v,useState as s}from"react";import{createPortal as S}from"react-dom";const C=({transitionDuration:n,show:o})=>h(y.div,{layout:!0,className:`${o?"slide-in":"slide-out"} lds-ring`,initial:{scaleY:1,scaleX:1},animate:{scaleY:0,scaleX:0},exit:{scaleY:1,scaleX:1},transition:{duration:n,ease:[.33,1,.33,1]},variants:{initial:{opacity:1,transition:{duration:n}},in:{opacity:0,transition:{duration:n}},out:{opacity:1,transition:{duration:n}}},style:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:1e4,pointerEvents:"none"},children:[e("div",{}),e("div",{}),e("div",{}),e("div",{})]}),H=({transitionDuration:n,show:o})=>e(y.div,{layout:!0,className:"motion-wrapper-bg",initial:{scaleY:1,scaleX:1},animate:{scaleY:0,scaleX:0},exit:{scaleY:1,scaleX:1},transition:{duration:n,ease:[.33,1,.33,1]},variants:{initial:{opacity:1,transition:{duration:n}},in:{opacity:0,transition:{duration:n}},out:{opacity:1,transition:{duration:n}}},style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:9999,pointerEvents:"none"}}),L=n=>{const{pageTransition:o=!0,loadingSpinner:w=!0,transitionDuration:i=.5,maxTimeOut:p=1e3,initialShow:l=!1,usePortalForBackground:u=!1,usePortalForSpinner:c=!1,portalTarget:r="body",spinnerPortalTarget:a="body"}=n,[d,m]=s(l),[f,g]=s(!1),[T,M]=s(null),[b,x]=s(null);v(()=>{if(u){let t;typeof r=="string"?(t=document.querySelector(r),t||(t=document.body)):t=r,M(t)}if(c){let t;typeof a=="string"?(t=document.querySelector(a),t||(t=document.body)):t=a,x(t)}},[u,c,r,a]),v(()=>{if(l&&!f){g(!0),m(!0);const t=setTimeout(()=>{m(!1),setTimeout(()=>{g(!1)},i*1e3)},p);return()=>{clearTimeout(t)}}},[l,p,i,f]);const E=()=>{if(!o)return null;const t=e(H,{transitionDuration:i,show:d});return u&&T?S(t,T):t};return h(k,{children:[(()=>{if(!w)return null;const t=e(C,{transitionDuration:i,show:d});return c&&b?S(t,b):t})(),E(),e(P,{})]})};var W=L;export{H as MotionWrapperBackground,C as SpinnerComponent,W as default};
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { motion } from "framer-motion";
3
+ import { Outlet } from "react-router";
4
+ import { useEffect, useState } from "react";
5
+ import { createPortal } from "react-dom";
6
+ const SpinnerComponent = ({ transitionDuration, show }) => {
7
+ return /* @__PURE__ */ jsxs(
8
+ motion.div,
9
+ {
10
+ layout: true,
11
+ className: `${show ? "slide-in" : "slide-out"} lds-ring`,
12
+ initial: { scaleY: 1, scaleX: 1 },
13
+ animate: { scaleY: 0, scaleX: 0 },
14
+ exit: { scaleY: 1, scaleX: 1 },
15
+ transition: { duration: transitionDuration, ease: [0.33, 1, 0.33, 1] },
16
+ variants: {
17
+ initial: {
18
+ opacity: 1,
19
+ transition: { duration: transitionDuration }
20
+ },
21
+ in: {
22
+ opacity: 0,
23
+ transition: { duration: transitionDuration }
24
+ },
25
+ out: {
26
+ opacity: 1,
27
+ transition: { duration: transitionDuration }
28
+ }
29
+ },
30
+ style: {
31
+ position: "fixed",
32
+ top: "50%",
33
+ left: "50%",
34
+ transform: "translate(-50%, -50%)",
35
+ zIndex: 1e4,
36
+ // Higher than background
37
+ pointerEvents: "none"
38
+ },
39
+ children: [
40
+ /* @__PURE__ */ jsx("div", {}),
41
+ /* @__PURE__ */ jsx("div", {}),
42
+ /* @__PURE__ */ jsx("div", {}),
43
+ /* @__PURE__ */ jsx("div", {})
44
+ ]
45
+ }
46
+ );
47
+ };
48
+ const MotionWrapperBackground = ({ transitionDuration, show }) => {
49
+ return /* @__PURE__ */ jsx(
50
+ motion.div,
51
+ {
52
+ layout: true,
53
+ className: "motion-wrapper-bg",
54
+ initial: { scaleY: 1, scaleX: 1 },
55
+ animate: { scaleY: 0, scaleX: 0 },
56
+ exit: { scaleY: 1, scaleX: 1 },
57
+ transition: { duration: transitionDuration, ease: [0.33, 1, 0.33, 1] },
58
+ variants: {
59
+ initial: {
60
+ opacity: 1,
61
+ transition: { duration: transitionDuration }
62
+ },
63
+ in: {
64
+ opacity: 0,
65
+ transition: { duration: transitionDuration }
66
+ },
67
+ out: {
68
+ opacity: 1,
69
+ transition: { duration: transitionDuration }
70
+ }
71
+ },
72
+ style: {
73
+ position: "fixed",
74
+ top: 0,
75
+ left: 0,
76
+ width: "100vw",
77
+ height: "100vh",
78
+ zIndex: 9999,
79
+ // High z-index for portal usage
80
+ pointerEvents: "none"
81
+ // Allow clicks to pass through
82
+ }
83
+ }
84
+ );
85
+ };
86
+ const MotionWrapper = (props) => {
87
+ const {
88
+ pageTransition = true,
89
+ loadingSpinner = true,
90
+ transitionDuration = 0.5,
91
+ maxTimeOut = 1e3,
92
+ initialShow = false,
93
+ usePortalForBackground = false,
94
+ usePortalForSpinner = false,
95
+ portalTarget = "body",
96
+ spinnerPortalTarget = "body"
97
+ } = props;
98
+ const [show, setShow] = useState(initialShow);
99
+ const [isAnimating, setIsAnimating] = useState(false);
100
+ const [backgroundPortalContainer, setBackgroundPortalContainer] = useState(null);
101
+ const [spinnerPortalContainer, setSpinnerPortalContainer] = useState(null);
102
+ useEffect(() => {
103
+ if (usePortalForBackground) {
104
+ let container;
105
+ if (typeof portalTarget === "string") {
106
+ container = document.querySelector(portalTarget);
107
+ if (!container) {
108
+ container = document.body;
109
+ }
110
+ } else {
111
+ container = portalTarget;
112
+ }
113
+ setBackgroundPortalContainer(container);
114
+ }
115
+ if (usePortalForSpinner) {
116
+ let container;
117
+ if (typeof spinnerPortalTarget === "string") {
118
+ container = document.querySelector(spinnerPortalTarget);
119
+ if (!container) {
120
+ container = document.body;
121
+ }
122
+ } else {
123
+ container = spinnerPortalTarget;
124
+ }
125
+ setSpinnerPortalContainer(container);
126
+ }
127
+ }, [usePortalForBackground, usePortalForSpinner, portalTarget, spinnerPortalTarget]);
128
+ useEffect(() => {
129
+ if (initialShow && !isAnimating) {
130
+ setIsAnimating(true);
131
+ setShow(true);
132
+ const timer = setTimeout(() => {
133
+ setShow(false);
134
+ setTimeout(() => {
135
+ setIsAnimating(false);
136
+ }, transitionDuration * 1e3);
137
+ }, maxTimeOut);
138
+ return () => {
139
+ clearTimeout(timer);
140
+ };
141
+ }
142
+ }, [initialShow, maxTimeOut, transitionDuration, isAnimating]);
143
+ const renderBackground = () => {
144
+ if (!pageTransition) return null;
145
+ const backgroundComponent = /* @__PURE__ */ jsx(
146
+ MotionWrapperBackground,
147
+ {
148
+ transitionDuration,
149
+ show
150
+ }
151
+ );
152
+ if (usePortalForBackground && backgroundPortalContainer) {
153
+ return createPortal(backgroundComponent, backgroundPortalContainer);
154
+ }
155
+ return backgroundComponent;
156
+ };
157
+ const renderSpinner = () => {
158
+ if (!loadingSpinner) return null;
159
+ const spinnerComponent = /* @__PURE__ */ jsx(
160
+ SpinnerComponent,
161
+ {
162
+ transitionDuration,
163
+ show
164
+ }
165
+ );
166
+ if (usePortalForSpinner && spinnerPortalContainer) {
167
+ return createPortal(spinnerComponent, spinnerPortalContainer);
168
+ }
169
+ return spinnerComponent;
170
+ };
171
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
172
+ renderSpinner(),
173
+ renderBackground(),
174
+ /* @__PURE__ */ jsx(Outlet, {})
175
+ ] });
176
+ };
177
+ var MotionWrapper_original_default = MotionWrapper;
178
+ export {
179
+ MotionWrapperBackground,
180
+ SpinnerComponent,
181
+ MotionWrapper_original_default as default
182
+ };
@@ -1 +1,87 @@
1
- import{jsx as r,jsxs as i}from"react/jsx-runtime";import{useEffect as p,useState as M}from"react";import{useRedirect as N,useTranslate as S}from"react-admin";import{useDispatch as P}from"react-redux";import{useLocation as f}from"react-router";import{DASH_REDUX_ACTIONS as k}from"@dashadmin/dash-admin-state";import D from"../hooks/useVirtualHash";import _ from"@dashadmin/dash-auto-admin/src/toolbar/buttons/DashResourceButton";const $=o=>!o||typeof o!="string"?!1:o.includes(".")&&o===o.toLowerCase(),B=o=>{const{resourceConfig:t,locale:c}=o,{resourceMenuDisabled:H=!1,resourceMenuPosition:u="top"}=t,h=N(),g=S(),{hash:L,setVirtualHash:T}=D(),l=f(),s=e=>{if(!e)return"";if($(e)){const n=g(e,{_:e});return n===e?e:n}return e},A=P(),R=e=>{const n={title:s(e?.title)};A(k.updatePage(n))},C=(e,n)=>{R(e);let a=e.redirect?.startsWith("/")?e.redirect:`/${e.redirect}`.replace(/\/+/g,"/");e.redirect?h(a):e?.onClick()},[d,m]=M(null),v=f();return p(()=>{const e=Array.isArray(t.menu)?t.menu:typeof t.menu=="function"?t.menu():null;m(e)},[t.menu,c]),p(()=>{const e=Array.isArray(t.menu)?t.menu:typeof t.menu=="function"?t.menu():null;m(e)},[v,t.menu,c]),i("div",{className:`dash-module-${u}`,children:[t.mainAction&&i("div",{className:"dash-module-action",children:[t.create!==!1&&!l.pathname.endsWith("/create")&&r(_,{size:"small",resourceConfig:t,label:s(t.mainAction.title),mode:t.mainAction?.mode||"create"}),t.navActions&&t.navActions.map(e=>e)]}),r("div",{className:`dash-module-${u}-content`,children:r("ul",{className:"dash-module-horizontal-nav",children:d&&d.map((e,n)=>{let a=l.pathname===e?.redirect;return r("li",{onClick:y=>C(e,y),className:a?"active":null,children:i("span",{className:"dash-link",children:[r("i",{className:`icon icon-${e?.icon}`}),r("span",{children:s(e.title)})]})},n)})})})]})};var Y=B;export{Y as default};
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { useRedirect, useTranslate } from "react-admin";
4
+ import { useDispatch } from "react-redux";
5
+ import { useLocation } from "react-router";
6
+ import { DASH_REDUX_ACTIONS } from "dash-admin-state";
7
+ import useVirtualHash from "../hooks/useVirtualHash";
8
+ import DashResourceButton from "dash-auto-admin/src/toolbar/buttons/DashResourceButton";
9
+ const isTranslationKey = (value) => {
10
+ if (!value || typeof value !== "string") return false;
11
+ return value.includes(".") && value === value.toLowerCase();
12
+ };
13
+ const ResourceMenu = (props) => {
14
+ var _a;
15
+ const { resourceConfig, locale } = props;
16
+ const { resourceMenuDisabled = false, resourceMenuPosition = "top" } = resourceConfig;
17
+ const redirect = useRedirect();
18
+ const translate = useTranslate();
19
+ const { hash, setVirtualHash } = useVirtualHash();
20
+ const location = useLocation();
21
+ const translateLabel = (label) => {
22
+ if (!label) return "";
23
+ if (isTranslationKey(label)) {
24
+ const translated = translate(label, { _: label });
25
+ return translated === label ? label : translated;
26
+ }
27
+ return label;
28
+ };
29
+ const dispatch = useDispatch();
30
+ const updatePageState = (menuItem) => {
31
+ const newPageState = {
32
+ title: translateLabel(menuItem == null ? void 0 : menuItem.title)
33
+ //icon: item?.icon,
34
+ //subTitle: item?.group,
35
+ };
36
+ dispatch(DASH_REDUX_ACTIONS.updatePage(newPageState));
37
+ };
38
+ const handleMenuClick = (menuItem, e) => {
39
+ var _a2;
40
+ updatePageState(menuItem);
41
+ let _redirect = ((_a2 = menuItem.redirect) == null ? void 0 : _a2.startsWith("/")) ? menuItem.redirect : `/${menuItem.redirect}`.replace(/\/+/g, "/");
42
+ menuItem.redirect ? redirect(_redirect) : menuItem == null ? void 0 : menuItem.onClick();
43
+ };
44
+ const [resourceMenu, setResourceMenu] = useState(null);
45
+ const loc = useLocation();
46
+ useEffect(() => {
47
+ const val = Array.isArray(resourceConfig.menu) ? resourceConfig.menu : typeof resourceConfig.menu === "function" ? resourceConfig.menu() : null;
48
+ setResourceMenu(val);
49
+ }, [resourceConfig.menu, locale]);
50
+ useEffect(() => {
51
+ const val = Array.isArray(resourceConfig.menu) ? resourceConfig.menu : typeof resourceConfig.menu === "function" ? resourceConfig.menu() : null;
52
+ setResourceMenu(val);
53
+ }, [loc, resourceConfig.menu, locale]);
54
+ return /* @__PURE__ */ jsxs("div", { className: `dash-module-${resourceMenuPosition}`, children: [
55
+ resourceConfig.mainAction && /* @__PURE__ */ jsxs("div", { className: "dash-module-action", children: [
56
+ resourceConfig.create !== false && !location.pathname.endsWith("/create") && /* @__PURE__ */ jsx(
57
+ DashResourceButton,
58
+ {
59
+ size: "small",
60
+ resourceConfig,
61
+ label: translateLabel(resourceConfig.mainAction.title),
62
+ mode: ((_a = resourceConfig.mainAction) == null ? void 0 : _a.mode) || "create"
63
+ }
64
+ ),
65
+ resourceConfig.navActions && resourceConfig.navActions.map((action) => action)
66
+ ] }),
67
+ /* @__PURE__ */ jsx("div", { className: `dash-module-${resourceMenuPosition}-content`, children: /* @__PURE__ */ jsx("ul", { className: "dash-module-horizontal-nav", children: resourceMenu && resourceMenu.map((menuItem, index) => {
68
+ let active = location.pathname === (menuItem == null ? void 0 : menuItem.redirect);
69
+ return /* @__PURE__ */ jsx(
70
+ "li",
71
+ {
72
+ onClick: (e) => handleMenuClick(menuItem, e),
73
+ className: active ? "active" : null,
74
+ children: /* @__PURE__ */ jsxs("span", { className: "dash-link", children: [
75
+ /* @__PURE__ */ jsx("i", { className: `icon icon-${menuItem == null ? void 0 : menuItem.icon}` }),
76
+ /* @__PURE__ */ jsx("span", { children: translateLabel(menuItem.title) })
77
+ ] })
78
+ },
79
+ index
80
+ );
81
+ }) }) })
82
+ ] });
83
+ };
84
+ var ResourceMenu_default = ResourceMenu;
85
+ export {
86
+ ResourceMenu_default as default
87
+ };
@@ -1 +1,47 @@
1
- import{jsx as r,jsxs as f}from"react/jsx-runtime";import i,{useMemo as s}from"react";import d from"./ResourceMenu";const t=i.memo(({resourceConfig:o,locale:e})=>r(d,{resourceConfig:o,locale:e}),(o,e)=>o.resourceConfig===e.resourceConfig&&o.locale===e.locale),m=o=>{const{resourceConfig:e,children:n,locale:l}=o,{resourceMenuDisabled:u,resourceMenuPosition:g}=s(()=>({resourceMenuDisabled:e.resourceMenuDisabled??!1,resourceMenuPosition:e.resourceMenuPosition??"top"}),[e.resourceMenuDisabled,e.resourceMenuPosition]),c=s(()=>(e.mainAction||e.menu&&e.menu.length>0)&&!u,[e.mainAction,e.menu,u]),a=s(()=>c?r("div",{className:"dash-module-box-header",children:r("div",{className:"dash-module-sidenav dash-d-none dash-d-lg-flex",children:r(t,{resourceConfig:e,locale:l})})}):null,[c,e]);return r("div",{className:"dash-app-module",children:f("div",{className:"dash-module-horizontal-box",style:{maxWidth:"100%"},children:[a,r("div",{className:"dash-module-box-content",children:n})]})})};var A=i.memo(m,(o,e)=>{const n=o.resourceConfig===e.resourceConfig&&o.locale===e.locale;return n||console.log("ResourceLayout re-rendering:",{resourceConfigChanged:o.resourceConfig!==e.resourceConfig,localeChanged:o.locale!==e.locale}),n});export{A as default};
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import React, { useMemo } from "react";
3
+ import ResourceMenu from "./ResourceMenu";
4
+ const MemoizedResourceMenu = React.memo(({
5
+ resourceConfig,
6
+ locale
7
+ }) => /* @__PURE__ */ jsx(ResourceMenu, { resourceConfig, locale }), (prevProps, nextProps) => {
8
+ return prevProps.resourceConfig === nextProps.resourceConfig && prevProps.locale === nextProps.locale;
9
+ });
10
+ const ResourceLayout = (props) => {
11
+ const { resourceConfig, children, locale } = props;
12
+ const { resourceMenuDisabled, resourceMenuPosition } = useMemo(() => {
13
+ var _a, _b;
14
+ return {
15
+ resourceMenuDisabled: (_a = resourceConfig.resourceMenuDisabled) != null ? _a : false,
16
+ resourceMenuPosition: (_b = resourceConfig.resourceMenuPosition) != null ? _b : "top"
17
+ };
18
+ }, [resourceConfig.resourceMenuDisabled, resourceConfig.resourceMenuPosition]);
19
+ const shouldShowMenu = useMemo(() => {
20
+ return (resourceConfig.mainAction || resourceConfig.menu && resourceConfig.menu.length > 0) && !resourceMenuDisabled;
21
+ }, [
22
+ resourceConfig.mainAction,
23
+ resourceConfig.menu,
24
+ resourceMenuDisabled
25
+ ]);
26
+ const headerContent = useMemo(() => {
27
+ if (!shouldShowMenu) return null;
28
+ return /* @__PURE__ */ jsx("div", { className: "dash-module-box-header", children: /* @__PURE__ */ jsx("div", { className: "dash-module-sidenav dash-d-none dash-d-lg-flex", children: /* @__PURE__ */ jsx(MemoizedResourceMenu, { resourceConfig, locale }) }) });
29
+ }, [shouldShowMenu, resourceConfig]);
30
+ return /* @__PURE__ */ jsx("div", { className: "dash-app-module", children: /* @__PURE__ */ jsxs("div", { className: "dash-module-horizontal-box", style: { maxWidth: "100%" }, children: [
31
+ headerContent,
32
+ /* @__PURE__ */ jsx("div", { className: "dash-module-box-content", children })
33
+ ] }) });
34
+ };
35
+ var ResoureLayout_default = React.memo(ResourceLayout, (prevProps, nextProps) => {
36
+ const propsEqual = prevProps.resourceConfig === nextProps.resourceConfig && prevProps.locale === nextProps.locale;
37
+ if (!propsEqual) {
38
+ console.log("ResourceLayout re-rendering:", {
39
+ resourceConfigChanged: prevProps.resourceConfig !== nextProps.resourceConfig,
40
+ localeChanged: prevProps.locale !== nextProps.locale
41
+ });
42
+ }
43
+ return propsEqual;
44
+ });
45
+ export {
46
+ ResoureLayout_default as default
47
+ };
@@ -1,4 +1,77 @@
1
- import{jsx as t,jsxs as w}from"react/jsx-runtime";import{useState as a,useEffect as y}from"react";import{Outlet as b,useLocation as g}from"react-router-dom";const h=l=>{const{pageTransition:r=!0,loadingSpinner:d=!0,transitionDuration:i=500}=l,n=g(),[o,m]=a(n),[u,s]=a(!1),[f,p]=a(0),[v,c]=a(!0);return y(()=>{if(!r||n.pathname===o.pathname)return;(async()=>(c(!1),s(!0),await new Promise(e=>requestAnimationFrame(e)),p(1),await new Promise(e=>setTimeout(e,i)),m(n),await new Promise(e=>setTimeout(e,100)),p(0),await new Promise(e=>setTimeout(e,i)),s(!1),c(!0)))()},[n,o,r,i]),w("div",{className:"transition-container",style:{position:"relative",height:"100%"},children:[t("div",{children:t(b,{},o.pathname)}),d&&u&&t("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(255, 255, 255, 0.8)",display:"flex",justifyContent:"center",alignItems:"center",zIndex:1e3,opacity:f,transition:`opacity ${i}ms ease-in-out`},children:t("div",{className:"spinner",children:t("style",{children:`
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import { jsx, jsxs } from "react/jsx-runtime";
22
+ import { useState, useEffect } from "react";
23
+ import { Outlet, useLocation } from "react-router-dom";
24
+ const TransitionWrapper = (props) => {
25
+ const {
26
+ pageTransition = true,
27
+ loadingSpinner = true,
28
+ transitionDuration = 500
29
+ // in ms
30
+ } = props;
31
+ const location = useLocation();
32
+ const [displayLocation, setDisplayLocation] = useState(location);
33
+ const [showSpinner, setShowSpinner] = useState(false);
34
+ const [spinnerOpacity, setSpinnerOpacity] = useState(0);
35
+ const [isReady, setIsReady] = useState(true);
36
+ useEffect(() => {
37
+ if (!pageTransition || location.pathname === displayLocation.pathname) {
38
+ return;
39
+ }
40
+ const sequence = () => __async(null, null, function* () {
41
+ setIsReady(false);
42
+ setShowSpinner(true);
43
+ yield new Promise((resolve) => requestAnimationFrame(resolve));
44
+ setSpinnerOpacity(1);
45
+ yield new Promise((resolve) => setTimeout(resolve, transitionDuration));
46
+ setDisplayLocation(location);
47
+ yield new Promise((resolve) => setTimeout(resolve, 100));
48
+ setSpinnerOpacity(0);
49
+ yield new Promise((resolve) => setTimeout(resolve, transitionDuration));
50
+ setShowSpinner(false);
51
+ setIsReady(true);
52
+ });
53
+ sequence();
54
+ }, [location, displayLocation, pageTransition, transitionDuration]);
55
+ return /* @__PURE__ */ jsxs("div", { className: "transition-container", style: { position: "relative", height: "100%" }, children: [
56
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Outlet, {}, displayLocation.pathname) }),
57
+ loadingSpinner && showSpinner && /* @__PURE__ */ jsx(
58
+ "div",
59
+ {
60
+ style: {
61
+ position: "fixed",
62
+ top: 0,
63
+ left: 0,
64
+ right: 0,
65
+ bottom: 0,
66
+ backgroundColor: "rgba(255, 255, 255, 0.8)",
67
+ display: "flex",
68
+ justifyContent: "center",
69
+ alignItems: "center",
70
+ zIndex: 1e3,
71
+ opacity: spinnerOpacity,
72
+ transition: `opacity ${transitionDuration}ms ease-in-out`
73
+ },
74
+ children: /* @__PURE__ */ jsx("div", { className: "spinner", children: /* @__PURE__ */ jsx("style", { children: `
2
75
  .spinner {
3
76
  display: inline-block;
4
77
  position: relative;
@@ -21,4 +94,12 @@ import{jsx as t,jsxs as w}from"react/jsx-runtime";import{useState as a,useEffect
21
94
  0% { transform: rotate(0); }
22
95
  100% { transform: rotate(360deg); }
23
96
  }
24
- `})})})]})};var I=h;export{I as default};
97
+ ` }) })
98
+ }
99
+ )
100
+ ] });
101
+ };
102
+ var TransitionWrapper_default = TransitionWrapper;
103
+ export {
104
+ TransitionWrapper_default as default
105
+ };
@@ -1 +1,198 @@
1
- import{jsx as e,jsxs as C}from"react/jsx-runtime";import{Alert as g,Box as k,Button as b,TextField as y}from"@mui/material";import{useEffect as R,useState as l}from"react";import{useNavigate as L,useSearchParams as S}from"react-router-dom";import A from"../hooks/axios";import{FullLayoutMarkup as B}from"../../src/default-theme";const I=m=>{let s={};for(const a of m){const[p,r]=a;s={...s,[p]:r}}return Object.keys(s).length>0?s:null},E=({})=>{const m=L();let[s]=S();const a=I(s.entries()),p=a?.email?decodeURIComponent(a.email).replace(/[)\]\s]+$/,""):"",[r,v]=l(""),[u,w]=l(""),[c,f]=l(!1),[h,o]=l(""),[x,P]=l(!1),{axios:N}=A();return R(()=>{(!a?.token||!a?.email)&&m("/login")},[]),e(B,{children:x?C(k,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",boxShadow:3,borderRadius:2,p:4,minWidth:320,minHeight:200,bgcolor:"background.paper",mt:8,mx:"auto"},children:[e("h1",{className:"dash-app-login-form-title",style:{margin:0},children:"Contrase\xF1a cambiada"}),e(g,{severity:"success",sx:{mt:2,mb:2},children:"Tu contrase\xF1a ha sido cambiada correctamente."}),e(b,{variant:"contained",color:"primary",onClick:()=>m("/login"),sx:{mt:2},children:"Ir al Login"})]}):C("form",{onSubmit:async n=>{if(n.preventDefault(),r===u){o(""),f(!0);try{const{data:i}=await N.post("password/reset",{password:r,password_confirmation:u,token:a?.token,email:p});P(!0)}catch(i){let d="Error al cambiar contrase\xF1a";if(i?.response?.data){const t=i.response.data;t.errors&&t.errors.email&&t.errors.email.length>0?d=t.errors.email[0]:t.message&&(d=t.message)}else i?.message&&(d=i.message);o(d)}finally{f(!1)}}else o("Las contrase\xF1as no coinciden")},className:"dash-app-login-form",autoComplete:"on",method:"post",children:[e("h1",{className:"dash-app-login-form-title",children:"Cambiar Contrase\xF1a"}),h&&e(g,{severity:"error",sx:{mb:2},children:h}),e("div",{className:"dash-app-form-item",children:e(y,{fullWidth:!0,label:"Contrase\xF1a",placeholder:"Contrase\xF1a",required:!0,type:"password",value:r,onChange:n=>{o(""),v(n.target.value)},className:"dash-app-form-item-input",disabled:c})}),e("div",{className:"dash-app-form-item",children:e(y,{fullWidth:!0,label:"Repetir Contrase\xF1a",placeholder:"Repetir Contrase\xF1a",required:!0,type:"password",value:u,onChange:n=>{o(""),w(n.target.value)},className:"dash-app-form-item-input",disabled:c})}),e("div",{className:"dash-app-form-item mt-1",children:e(b,{type:"submit",variant:"contained",className:"submit",disabled:c,sx:{mb:2,width:"100%"},children:c?"Cargando...":"Cambiar Contrase\xF1a"})})]})})};var Q=E;export{Q as default};
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import { jsx, jsxs } from "react/jsx-runtime";
41
+ import { Alert, Box, Button, TextField } from "@mui/material";
42
+ import { useEffect, useState } from "react";
43
+ import { useNavigate, useSearchParams } from "react-router-dom";
44
+ import useAxios from "../hooks/axios";
45
+ import { FullLayoutMarkup } from "../default-theme";
46
+ const getUrlParamsObject = (searchParams) => {
47
+ let params = {};
48
+ for (const entry of searchParams) {
49
+ const [param, value] = entry;
50
+ params = __spreadProps(__spreadValues({}, params), { [param]: value });
51
+ }
52
+ return Object.keys(params).length > 0 ? params : null;
53
+ };
54
+ const ChangePassword = ({}) => {
55
+ const navigate = useNavigate();
56
+ let [searchParams] = useSearchParams();
57
+ const urlQuery = getUrlParamsObject(searchParams.entries());
58
+ const cleanEmail = (urlQuery == null ? void 0 : urlQuery.email) ? decodeURIComponent(urlQuery.email).replace(/[)\]\s]+$/, "") : "";
59
+ const [password, setPassword] = useState("");
60
+ const [rePassword, setRePassword] = useState("");
61
+ const [loading, setLoading] = useState(false);
62
+ const [error, setError] = useState("");
63
+ const [success, setSuccess] = useState(false);
64
+ const { axios } = useAxios();
65
+ useEffect(() => {
66
+ if (!(urlQuery == null ? void 0 : urlQuery.token) || !(urlQuery == null ? void 0 : urlQuery.email)) {
67
+ navigate("/login");
68
+ }
69
+ }, []);
70
+ const handleSubmit = (e) => __async(null, null, function* () {
71
+ var _a;
72
+ e.preventDefault();
73
+ if (password === rePassword) {
74
+ setError("");
75
+ setLoading(true);
76
+ try {
77
+ const { data } = yield axios.post(`password/reset`, {
78
+ password,
79
+ password_confirmation: rePassword,
80
+ token: urlQuery == null ? void 0 : urlQuery.token,
81
+ email: cleanEmail
82
+ });
83
+ setSuccess(true);
84
+ } catch (error2) {
85
+ let errorMsg = "Error al cambiar contrase\xF1a";
86
+ if ((_a = error2 == null ? void 0 : error2.response) == null ? void 0 : _a.data) {
87
+ const resp = error2.response.data;
88
+ if (resp.errors && resp.errors.email && resp.errors.email.length > 0) {
89
+ errorMsg = resp.errors.email[0];
90
+ } else if (resp.message) {
91
+ errorMsg = resp.message;
92
+ }
93
+ } else if (error2 == null ? void 0 : error2.message) {
94
+ errorMsg = error2.message;
95
+ }
96
+ setError(errorMsg);
97
+ } finally {
98
+ setLoading(false);
99
+ }
100
+ } else {
101
+ setError("Las contrase\xF1as no coinciden");
102
+ }
103
+ });
104
+ return /* @__PURE__ */ jsx(FullLayoutMarkup, { children: success ? /* @__PURE__ */ jsxs(
105
+ Box,
106
+ {
107
+ sx: {
108
+ display: "flex",
109
+ flexDirection: "column",
110
+ alignItems: "center",
111
+ justifyContent: "center",
112
+ boxShadow: 3,
113
+ borderRadius: 2,
114
+ p: 4,
115
+ minWidth: 320,
116
+ minHeight: 200,
117
+ bgcolor: "background.paper",
118
+ mt: 8,
119
+ mx: "auto"
120
+ },
121
+ children: [
122
+ /* @__PURE__ */ jsx("h1", { className: "dash-app-login-form-title", style: { margin: 0 }, children: "Contrase\xF1a cambiada" }),
123
+ /* @__PURE__ */ jsx(Alert, { severity: "success", sx: { mt: 2, mb: 2 }, children: "Tu contrase\xF1a ha sido cambiada correctamente." }),
124
+ /* @__PURE__ */ jsx(
125
+ Button,
126
+ {
127
+ variant: "contained",
128
+ color: "primary",
129
+ onClick: () => navigate("/login"),
130
+ sx: { mt: 2 },
131
+ children: "Ir al Login"
132
+ }
133
+ )
134
+ ]
135
+ }
136
+ ) : /* @__PURE__ */ jsxs(
137
+ "form",
138
+ {
139
+ onSubmit: handleSubmit,
140
+ className: "dash-app-login-form",
141
+ autoComplete: "on",
142
+ method: "post",
143
+ children: [
144
+ /* @__PURE__ */ jsx("h1", { className: "dash-app-login-form-title", children: "Cambiar Contrase\xF1a" }),
145
+ error && /* @__PURE__ */ jsx(Alert, { severity: "error", sx: { mb: 2 }, children: error }),
146
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
147
+ TextField,
148
+ {
149
+ fullWidth: true,
150
+ label: "Contrase\xF1a",
151
+ placeholder: "Contrase\xF1a",
152
+ required: true,
153
+ type: "password",
154
+ value: password,
155
+ onChange: (e) => {
156
+ setError("");
157
+ setPassword(e.target.value);
158
+ },
159
+ className: "dash-app-form-item-input",
160
+ disabled: loading
161
+ }
162
+ ) }),
163
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
164
+ TextField,
165
+ {
166
+ fullWidth: true,
167
+ label: "Repetir Contrase\xF1a",
168
+ placeholder: "Repetir Contrase\xF1a",
169
+ required: true,
170
+ type: "password",
171
+ value: rePassword,
172
+ onChange: (e) => {
173
+ setError("");
174
+ setRePassword(e.target.value);
175
+ },
176
+ className: "dash-app-form-item-input",
177
+ disabled: loading
178
+ }
179
+ ) }),
180
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item mt-1", children: /* @__PURE__ */ jsx(
181
+ Button,
182
+ {
183
+ type: "submit",
184
+ variant: "contained",
185
+ className: "submit",
186
+ disabled: loading,
187
+ sx: { mb: 2, width: "100%" },
188
+ children: loading ? "Cargando..." : "Cambiar Contrase\xF1a"
189
+ }
190
+ ) })
191
+ ]
192
+ }
193
+ ) });
194
+ };
195
+ var ChangePassword_default = ChangePassword;
196
+ export {
197
+ ChangePassword_default as default
198
+ };
@@ -1 +1,9 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Box as t,Typography as r}from"@mui/material";const p=()=>o(t,{sx:{p:4},children:o(r,{variant:"h4",gutterBottom:!0,children:"Welcome to DASH"})});var s=p;export{s as default};
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Box, Typography } from "@mui/material";
3
+ const DashLanding = () => {
4
+ return /* @__PURE__ */ jsx(Box, { sx: { p: 4 }, children: /* @__PURE__ */ jsx(Typography, { variant: "h4", gutterBottom: true, children: "Welcome to DASH" }) });
5
+ };
6
+ var DASHLanding_default = DashLanding;
7
+ export {
8
+ DASHLanding_default as default
9
+ };