@dashadmin/dash-admin 1.3.24 → 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,30 @@
1
- import{Fragment as u,jsx as o,jsxs as c}from"react/jsx-runtime";import e,{Suspense as a}from"react";import t from"./components/loader/GlobalLoader";import{Loading as r}from"react-admin";import{ErrorBoundary as s}from"react-error-boundary";const p=n=>n?typeof n=="string"?n:typeof n=="object"&&n!==null&&"message"in n?String(n.message||"Unknown error"):"Unknown error":"Unknown error",l=({error:n})=>o(r,{loadingPrimary:"Error",loadingSecondary:p(n)}),i=e.lazy(()=>new Promise(n=>setTimeout(n,1*1e3)).then(()=>import("@app/DASHApp"))),m=()=>c(u,{children:[o(s,{FallbackComponent:l,children:o(a,{fallback:o(r,{loadingPrimary:"",loadingSecondary:""}),children:o(i,{})})}),o(t,{children:"..."})]});var b=m;export{b as default};
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import React, { Suspense } from "react";
3
+ import GlobalLoader from "./components/loader/GlobalLoader";
4
+ import { Loading } from "react-admin";
5
+ import { ErrorBoundary } from "react-error-boundary";
6
+ const ErrorFallback = ({ error, resetErrorBoundary }) => {
7
+ return /* @__PURE__ */ jsx(Loading, { loadingPrimary: "Error", loadingSecondary: error.message });
8
+ };
9
+ const AppComponent = React.lazy(() => {
10
+ return new Promise((resolve) => setTimeout(resolve, 1 * 1e3)).then(
11
+ // @ts-ignore
12
+ () => import("@app/DASHApp")
13
+ );
14
+ });
15
+ const AppAsyncWrapper = () => {
16
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
17
+ /* @__PURE__ */ jsx(
18
+ ErrorBoundary,
19
+ {
20
+ FallbackComponent: ErrorFallback,
21
+ children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Loading, { loadingPrimary: "", loadingSecondary: "" }), children: /* @__PURE__ */ jsx(AppComponent, {}) })
22
+ }
23
+ ),
24
+ /* @__PURE__ */ jsx(GlobalLoader, { children: "..." })
25
+ ] });
26
+ };
27
+ var AppAsyncWrapper_default = AppAsyncWrapper;
28
+ export {
29
+ AppAsyncWrapper_default as default
30
+ };
@@ -1 +1,35 @@
1
- import{Fragment as h,jsx as r,jsxs as y}from"react/jsx-runtime";import l,{Suspense as d,useState as p,useTransition as c}from"react";import u from"./components/loader/GlobalLoader";import{Loading as o}from"react-admin";import{ErrorBoundary as f}from"react-error-boundary";const g=n=>n?typeof n=="string"?n:typeof n=="object"&&n!==null&&"message"in n?String(n.message||"Unknown error"):"Unknown error":"Unknown error",m=({error:n,resetErrorBoundary:e})=>r(o,{loadingPrimary:"Error",loadingSecondary:g(n)}),k=n=>{const{children:e}=n,[a,s]=c(),[t,i]=p(!0);return l.useEffect(()=>{s(()=>{i(!1)})},[]),y(h,{children:[r(f,{FallbackComponent:m,onReset:()=>{},children:r(d,{fallback:r(o,{loadingPrimary:"",loadingSecondary:""}),children:e})}),r(u,{children:"..."}),r("div",{className:!a&&!t?"dash-splash fade-out":"dash-splash"})]})};var w=k;export{w as default};
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import React, { Suspense, useState, useTransition } from "react";
3
+ import GlobalLoader from "./components/loader/GlobalLoader";
4
+ import { Loading } from "react-admin";
5
+ import { ErrorBoundary } from "react-error-boundary";
6
+ const ErrorFallback = ({ error, resetErrorBoundary }) => {
7
+ return /* @__PURE__ */ jsx(Loading, { loadingPrimary: "Error", loadingSecondary: (error == null ? void 0 : error.message) || "Unknown error" });
8
+ };
9
+ const AppWrapper = (props) => {
10
+ const { children } = props;
11
+ const [isPending, startTransition] = useTransition();
12
+ const [isInitialRender, setIsInitialRender] = useState(true);
13
+ React.useEffect(() => {
14
+ startTransition(() => {
15
+ setIsInitialRender(false);
16
+ });
17
+ }, []);
18
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
19
+ /* @__PURE__ */ jsx(
20
+ ErrorBoundary,
21
+ {
22
+ FallbackComponent: ErrorFallback,
23
+ onReset: () => {
24
+ },
25
+ children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Loading, { loadingPrimary: "", loadingSecondary: "" }), children })
26
+ }
27
+ ),
28
+ /* @__PURE__ */ jsx(GlobalLoader, { children: "..." }),
29
+ /* @__PURE__ */ jsx("div", { className: !isPending && !isInitialRender ? "dash-splash fade-out" : "dash-splash" })
30
+ ] });
31
+ };
32
+ var AppWrapper_default = AppWrapper;
33
+ export {
34
+ AppWrapper_default as default
35
+ };
package/dist/DASHAdmin.js CHANGED
@@ -1 +1,312 @@
1
- import{jsx as a,jsxs as C}from"react/jsx-runtime";import*as i from"react";import{useNavigate as $}from"react-router-dom";const ct=i.lazy(()=>import("./pages/Login")),bt=i.lazy(()=>import("./pages/Profile"));import{useDispatch as at,useSelector as q}from"react-redux";import{setCookie as B}from"./utils/cookies";import{useAuthContext as M}from"./contexts/auth";import{Error as O}from"./components/error/Error";import W from"./resources";import{dashStorage as x}from"@dashadmin/dash-utils";import{CustomRoutes as G,AdminUI as K,AdminContext as Y}from"react-admin";import Z from"./contexts/I18nBridgeSetter";import j from"./contexts/I18nReduxSync";import tt from"./contexts/auth/DASHAuthenticationService";import ut from"./providers/authProvider";import it from"./providers/dataProvider";import mt from"./providers/i18nProvider";import lt from"./classes/DASHStorageClass";import dt from"./helpers/checkRole";import Rt,{ConstantsContext as yt}from"./config/ConstantsService";import At from"./layout/AppLayout";const ee=i.lazy(()=>import("./pages/VerifyAccount")),oe=i.lazy(()=>import("./pages/RecoverPassword")),se=i.lazy(()=>import("./pages/ChangePassword"));import{setResources as ht}from"@dashadmin/dash-admin-state/src/redux/actions/Resources";import{DictionaryProvider as et}from"./contexts/dictionary/DictionaryContext";import ft from"./templates/ResourceTemplate";import{useMemo as f,useCallback as S}from"react";import{useDashThemeContext as gt}from"../src/default-theme/DashThemeContext";import{DASHAdminSystemConstants as pt}from"@dashadmin/dash-constants";const Ct=e=>e.settings.locale,St=e=>e.resources.items,Dt=i.memo(e=>{const{resources:t,locale:r,customAuthRoutes:s=[],customRoutes:l=[],...g}=e,{authenticated:m}=M(),D=f(()=>t.map(o=>{const{component:n,...E}=o;return(n||ft)({...E,locale:r})}),[t,r]),c=S(()=>s,[s]),d=S(()=>l,[l]),p=(o,n)=>i.cloneElement(o,{key:n}),H=f(()=>C(G,{children:[m?c().filter(o=>!o.props?.["data-layout"]?.toString().includes("no-layout")).map((o,n)=>p(o,o.key||`auth-route-${n}`)):null,d().filter(o=>m&&c().some(n=>n.props?.path===o.props?.path)?!1:!o.props?.["data-layout"]?.toString().includes("no-layout")).map((o,n)=>p(o,o.key||`custom-route-${n}`))]}),[m,c,d]),k=f(()=>C(G,{noLayout:!0,children:[m?c().filter(o=>o.props?.["data-layout"]?.toString().includes("no-layout")).map((o,n)=>p(o,o.key||`auth-no-layout-${n}`)):null,d().filter(o=>m&&c().some(n=>n.props?.path===o.props?.path)?!1:o.props?.["data-layout"]?.toString().includes("no-layout")).map((o,n)=>p(o,o.key||`custom-no-layout-${n}`))]}),[m,c,d]);return C(K,{...g,children:[D,H,k]})},(e,t)=>{const r=e.resources||[],s=t.resources||[];return r.length===s.length&&r.every((g,m)=>g===s[m])&&e.locale===t.locale&&e.layout===t.layout&&e.loginPage===t.loginPage&&e.notification===t.notification&&e.catchAll===t.catchAll&&e.error===t.error&&e.customAuthRoutes===t.customAuthRoutes&&e.customRoutes===t.customRoutes}),ot=()=>{const e=$();return i.useEffect(()=>{const t=tt.getPendingRedirect();if(t){console.log("\u{1F504} PrivateRedirectListener: Found persisted pending redirect:",t),tt.clearPendingRedirect();const r=t.startsWith("#")?t.substring(1):t;e(r)}},[e]),i.useEffect(()=>{const t=r=>{const{to:s}=r.detail;if(s){console.log("\u{1F504} PrivateRedirectListener: Navigating to",s);const l=s.startsWith("#")?s.substring(1):s;e(l)}};return window.addEventListener("auth:redirect",t),()=>window.removeEventListener("auth:redirect",t)},[e]),null},st=i.memo(e=>{const{customLoginPage:t=ct,customLayout:r=At,customNotification:s,customErrorPage:l,customDataProvider:g,customAuthProvider:m,customI18nProvider:D,customResources:c,useCoreResources:d=!0,customRecoverPassword:p,customChangePassword:H,customVerifyAccount:k,customThemeConfig:o,customAuthRoutes:n,customRoutes:E,customQueryClient:I,customDict:L,customReplacements:v,history:b,basePath:_,AdminHook:U=u=>u.children,children:R,dashboard:z}=e,P=q(Ct),y=q(St),X=at(),It=$(),Lt=S((u,w)=>dt(u,w),[]),{authenticated:J,user:A}=M(),T=S(()=>{const u=R?[]:c?c&&d===!1?c:[...W,...c]:W;console.log("\u{1F4CA} DASHAdmin.calculateResources:",{count:u.length,useCoreResources:d,hasChildren:!!R,hasCustomResources:!!c,customResourcesCount:Array.isArray(c)?c.length:0,models:u.map(w=>w.model).filter(Boolean)}),u&&u.length>0?(console.log("\u{1F4E4} DASHAdmin: Dispatching",u.length,"resources to Redux"),X(ht(u))):console.warn("\u26A0\uFE0F DASHAdmin.calculateResources: No resources to dispatch!")},[R,c,d,X]);i.useEffect(()=>{console.log("\u{1F504} DASHAdmin: calculateResources effect triggered (deps: [calculateResources])"),T()},[T]),i.useEffect(()=>{console.log("\u{1F4CA} DASHAdmin: Redux resources updated -",y?.length,"items, models:",y?.map(u=>u.model).filter(Boolean)),lt.resources=y},[y]),i.useEffect(()=>{if(J&&y&&!R)try{A?.tenant_id&&(x.setItem("tenant_id",A.tenant_id.toString()),B("tenant_id",A.tenant_id.toString()),x.setItem("user_id",A.id.toString()),B("user_id",A.id.toString()))}catch(u){console.error(u)}},[J,A,y,R]);const h=i.useContext(yt),F=f(()=>L?{...h.systemConstants.dict,...L}:h.systemConstants.dict,[L,h.systemConstants.dict]),N=f(()=>v?{...h.systemConstants.replacements,...v}:h.systemConstants.replacements,[v,h.systemConstants.replacements]),{themeOptions:nt}=gt(),{colorSchemes:vt,cssVariables:Pt,defaultColorScheme:wt,...rt}=nt,Q={dataProvider:g||it,i18nProvider:D||mt,...m!==null&&{authProvider:m||ut},...o?{theme:o}:{theme:rt},...I&&{queryClient:I},...b&&{history:b},..._?{basename:_}:{basename:pt.system.URL_PREFIX}},V=f(()=>({...s&&{notification:s},layout:r,loginPage:t,...l&&{catchAll:l},...O&&{error:O},dashboard:z}),[s,r,t,l,z]);return R?a(et,{dictionary:F,replacements:N,children:C(Y,{...Q,children:[a(j,{locale:P}),a(Z,{}),a(U,{}),a(ot,{}),a(K,{...V,children:R})]})}):a(et,{dictionary:F,replacements:N,children:C(Y,{...Q,children:[a(j,{locale:P}),a(Z,{}),a(U,{}),a(ot,{}),a(Dt,{...V,resources:y,locale:P,customAuthRoutes:n,customRoutes:E})]})})},(e,t)=>e.customResources===t.customResources&&e.useCoreResources===t.useCoreResources&&e.children===t.children&&e.customLoginPage===t.customLoginPage&&e.customLayout===t.customLayout&&e.customDataProvider===t.customDataProvider&&e.customAuthProvider===t.customAuthProvider&&e.dashboard===t.dashboard&&e.customAuthRoutes===t.customAuthRoutes&&e.customRoutes===t.customRoutes),Et=e=>{const{initialAppConstants:t,children:r,...s}=e;return a(Rt,{initialAppConstants:t,children:r?a(st,{...s,children:r}):a(st,{...s})})};var Re=Et;export{Re 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 __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { jsx, jsxs } from "react/jsx-runtime";
33
+ import * as React from "react";
34
+ import { useNavigate } from "react-router-dom";
35
+ const MyLoginPage = React.lazy(() => import("./pages/Login"));
36
+ const Profile = React.lazy(() => import("./pages/Profile"));
37
+ import { useDispatch, useSelector } from "react-redux";
38
+ import { setCookie } from "./utils/cookies";
39
+ import { useAuthContext } from "./contexts/auth";
40
+ import { Error as Error2 } from "./components/error/Error";
41
+ import coreResources from "./resources";
42
+ import { dashStorage } from "dash-utils";
43
+ import { CustomRoutes, AdminUI, AdminContext } from "react-admin";
44
+ import I18nBridgeSetter from "./contexts/I18nBridgeSetter";
45
+ import I18nReduxSync from "./contexts/I18nReduxSync";
46
+ import DASHAuthenticationService from "./contexts/auth/DASHAuthenticationService";
47
+ import authProvider from "./providers/authProvider";
48
+ import dataProvider from "./providers/dataProvider";
49
+ import i18nProvider from "./providers/i18nProvider";
50
+ import DASHStorageClass from "./classes/DASHStorageClass";
51
+ import checkRole from "./helpers/checkRole";
52
+ import ConstantsProvider, { ConstantsContext } from "./config/ConstantsService";
53
+ import AppLayout from "./layout/AppLayout";
54
+ const VerifyAccount = React.lazy(() => import("./pages/VerifyAccount"));
55
+ const RecoverPassword = React.lazy(() => import("./pages/RecoverPassword"));
56
+ const ChangePassword = React.lazy(() => import("./pages/ChangePassword"));
57
+ import { setResources } from "dash-admin-state/src/redux/actions/Resources";
58
+ import {
59
+ DictionaryProvider
60
+ } from "./contexts/dictionary/DictionaryContext";
61
+ import ResourceTemplate from "./templates/ResourceTemplate";
62
+ import { useMemo, useCallback } from "react";
63
+ import { useDashThemeContext } from "./default-theme/DashThemeContext";
64
+ import { DASHAdminSystemConstants } from "dash-constants";
65
+ const selectLocale = (state) => state.settings.locale;
66
+ const selectResources = (state) => state.resources.items;
67
+ const AsyncResources = React.memo((props) => {
68
+ const _a = props, {
69
+ resources: res,
70
+ locale,
71
+ customAuthRoutes: customAuthRoutes = [],
72
+ customRoutes = []
73
+ } = _a, rest = __objRest(_a, [
74
+ "resources",
75
+ "locale",
76
+ //customProfilePage,
77
+ "customAuthRoutes",
78
+ "customRoutes"
79
+ ]);
80
+ const { authenticated } = useAuthContext();
81
+ const processedResources = useMemo(() => {
82
+ return res.map((originalResource) => {
83
+ const _a2 = originalResource, { component: InputResourceTemplate } = _a2, restProps = __objRest(_a2, ["component"]);
84
+ const ResourceComponent = InputResourceTemplate || ResourceTemplate;
85
+ return ResourceComponent(__spreadProps(__spreadValues({}, restProps), { locale }));
86
+ });
87
+ }, [res, locale]);
88
+ const getCustomAuthRoutes = useCallback(() => customAuthRoutes, [customAuthRoutes]);
89
+ const getCustomRoutes = useCallback(() => customRoutes, [customRoutes]);
90
+ const createRouteFromProps = (routeElement, key) => {
91
+ return React.cloneElement(routeElement, { key });
92
+ };
93
+ const memoizedCustomRoutes = useMemo(() => /* @__PURE__ */ jsxs(CustomRoutes, { children: [
94
+ authenticated ? getCustomAuthRoutes().filter((route) => {
95
+ var _a2, _b;
96
+ return !((_b = (_a2 = route.props) == null ? void 0 : _a2["data-layout"]) == null ? void 0 : _b.toString().includes("no-layout"));
97
+ }).map((route, index) => createRouteFromProps(route, route.key || `auth-route-${index}`)) : null,
98
+ getCustomRoutes().filter((route) => {
99
+ var _a2, _b;
100
+ if (authenticated && getCustomAuthRoutes().some((authRoute) => {
101
+ var _a3, _b2;
102
+ return ((_a3 = authRoute.props) == null ? void 0 : _a3.path) === ((_b2 = route.props) == null ? void 0 : _b2.path);
103
+ })) {
104
+ return false;
105
+ }
106
+ return !((_b = (_a2 = route.props) == null ? void 0 : _a2["data-layout"]) == null ? void 0 : _b.toString().includes("no-layout"));
107
+ }).map((route, index) => createRouteFromProps(route, route.key || `custom-route-${index}`))
108
+ ] }), [
109
+ authenticated,
110
+ /*customProfilePage,*/
111
+ getCustomAuthRoutes,
112
+ getCustomRoutes
113
+ ]);
114
+ const memoizedNoLayoutRoutes = useMemo(() => /* @__PURE__ */ jsxs(CustomRoutes, { noLayout: true, children: [
115
+ authenticated ? getCustomAuthRoutes().filter((route) => {
116
+ var _a2, _b;
117
+ return (_b = (_a2 = route.props) == null ? void 0 : _a2["data-layout"]) == null ? void 0 : _b.toString().includes("no-layout");
118
+ }).map((route, index) => createRouteFromProps(route, route.key || `auth-no-layout-${index}`)) : null,
119
+ getCustomRoutes().filter((route) => {
120
+ var _a2, _b;
121
+ if (authenticated && getCustomAuthRoutes().some((authRoute) => {
122
+ var _a3, _b2;
123
+ return ((_a3 = authRoute.props) == null ? void 0 : _a3.path) === ((_b2 = route.props) == null ? void 0 : _b2.path);
124
+ })) {
125
+ return false;
126
+ }
127
+ return (_b = (_a2 = route.props) == null ? void 0 : _a2["data-layout"]) == null ? void 0 : _b.toString().includes("no-layout");
128
+ }).map((route, index) => createRouteFromProps(route, route.key || `custom-no-layout-${index}`))
129
+ ] }), [authenticated, getCustomAuthRoutes, getCustomRoutes]);
130
+ return /* @__PURE__ */ jsxs(AdminUI, __spreadProps(__spreadValues({}, rest), { children: [
131
+ processedResources,
132
+ memoizedCustomRoutes,
133
+ memoizedNoLayoutRoutes
134
+ ] }));
135
+ }, (prevProps, nextProps) => {
136
+ const prevRes = prevProps.resources || [];
137
+ const nextRes = nextProps.resources || [];
138
+ const resourcesEqual = prevRes.length === nextRes.length && prevRes.every(
139
+ (resource, index) => resource === nextRes[index]
140
+ );
141
+ return resourcesEqual && prevProps.locale === nextProps.locale && prevProps.layout === nextProps.layout && prevProps.loginPage === nextProps.loginPage && prevProps.notification === nextProps.notification && prevProps.catchAll === nextProps.catchAll && prevProps.error === nextProps.error && //prevProps.customProfilePage === nextProps.customProfilePage &&
142
+ prevProps.customAuthRoutes === nextProps.customAuthRoutes && prevProps.customRoutes === nextProps.customRoutes;
143
+ });
144
+ const RedirectListener = () => {
145
+ const navigate = useNavigate();
146
+ React.useEffect(() => {
147
+ const pendingRedirect = DASHAuthenticationService.getPendingRedirect();
148
+ if (pendingRedirect) {
149
+ console.log("\u{1F504} PrivateRedirectListener: Found persisted pending redirect:", pendingRedirect);
150
+ DASHAuthenticationService.clearPendingRedirect();
151
+ const cleanRedirect = pendingRedirect.startsWith("#") ? pendingRedirect.substring(1) : pendingRedirect;
152
+ navigate(cleanRedirect);
153
+ }
154
+ }, [navigate]);
155
+ React.useEffect(() => {
156
+ const handleRedirect = (event) => {
157
+ const { to } = event.detail;
158
+ if (to) {
159
+ console.log("\u{1F504} PrivateRedirectListener: Navigating to", to);
160
+ const path = to.startsWith("#") ? to.substring(1) : to;
161
+ navigate(path);
162
+ }
163
+ };
164
+ window.addEventListener("auth:redirect", handleRedirect);
165
+ return () => window.removeEventListener("auth:redirect", handleRedirect);
166
+ }, [navigate]);
167
+ return null;
168
+ };
169
+ const DASHAdminApp = React.memo((props) => {
170
+ const {
171
+ customLoginPage = MyLoginPage,
172
+ customLayout = AppLayout,
173
+ customNotification,
174
+ customErrorPage,
175
+ customDataProvider,
176
+ customAuthProvider,
177
+ customI18nProvider,
178
+ customResources,
179
+ useCoreResources = true,
180
+ //customProfilePage = Profile,
181
+ customRecoverPassword,
182
+ customChangePassword,
183
+ customVerifyAccount,
184
+ customThemeConfig,
185
+ customAuthRoutes,
186
+ customRoutes,
187
+ customQueryClient,
188
+ customDict,
189
+ customReplacements,
190
+ history,
191
+ basePath,
192
+ AdminHook = (props2) => props2.children,
193
+ children,
194
+ dashboard
195
+ } = props;
196
+ const ReactLocale = useSelector(selectLocale);
197
+ const resources = useSelector(selectResources);
198
+ const dispatch = useDispatch();
199
+ const navigate = useNavigate();
200
+ const _checkRole = useCallback((permissions, roles) => {
201
+ return checkRole(permissions, roles);
202
+ }, []);
203
+ const { authenticated, user } = useAuthContext();
204
+ const calculateResources = useCallback(() => {
205
+ const _resources = !children ? customResources ? customResources && useCoreResources === false ? customResources : [...coreResources, ...customResources] : coreResources : [];
206
+ console.log("\u{1F4CA} DASHAdmin.calculateResources:", {
207
+ count: _resources.length,
208
+ useCoreResources,
209
+ hasChildren: !!children,
210
+ hasCustomResources: !!customResources,
211
+ customResourcesCount: Array.isArray(customResources) ? customResources.length : 0,
212
+ models: _resources.map((r) => r.model).filter(Boolean)
213
+ });
214
+ if (_resources && _resources.length > 0) {
215
+ console.log("\u{1F4E4} DASHAdmin: Dispatching", _resources.length, "resources to Redux");
216
+ dispatch(setResources(_resources));
217
+ } else {
218
+ console.warn("\u26A0\uFE0F DASHAdmin.calculateResources: No resources to dispatch!");
219
+ }
220
+ }, [children, customResources, useCoreResources, dispatch]);
221
+ React.useEffect(() => {
222
+ console.log("\u{1F504} DASHAdmin: calculateResources effect triggered (deps: [calculateResources])");
223
+ calculateResources();
224
+ }, [calculateResources]);
225
+ React.useEffect(() => {
226
+ console.log("\u{1F4CA} DASHAdmin: Redux resources updated -", resources == null ? void 0 : resources.length, "items, models:", resources == null ? void 0 : resources.map((r) => r.model).filter(Boolean));
227
+ DASHStorageClass.resources = resources;
228
+ }, [resources]);
229
+ React.useEffect(() => {
230
+ if (authenticated && resources) {
231
+ if (!children) {
232
+ try {
233
+ if (user == null ? void 0 : user.tenant_id) {
234
+ dashStorage.setItem("tenant_id", user.tenant_id.toString());
235
+ setCookie("tenant_id", user.tenant_id.toString());
236
+ dashStorage.setItem("user_id", user.id.toString());
237
+ setCookie("user_id", user.id.toString());
238
+ }
239
+ } catch (e) {
240
+ console.error(e);
241
+ }
242
+ }
243
+ }
244
+ }, [authenticated, user, resources, children]);
245
+ const constants = React.useContext(ConstantsContext);
246
+ const memoizedDictionary = useMemo(
247
+ () => customDict ? __spreadValues(__spreadValues({}, constants.systemConstants.dict), customDict) : constants.systemConstants.dict,
248
+ [customDict, constants.systemConstants.dict]
249
+ );
250
+ const memoizedReplacements = useMemo(
251
+ () => customReplacements ? __spreadValues(__spreadValues({}, constants.systemConstants.replacements), customReplacements) : constants.systemConstants.replacements,
252
+ [customReplacements, constants.systemConstants.replacements]
253
+ );
254
+ const { themeOptions } = useDashThemeContext();
255
+ const _a = themeOptions, { colorSchemes: _cs, cssVariables: _cv, defaultColorScheme: _dcs } = _a, safeAdminThemeOptions = __objRest(_a, ["colorSchemes", "cssVariables", "defaultColorScheme"]);
256
+ const adminContextProps = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({
257
+ dataProvider: customDataProvider || dataProvider,
258
+ i18nProvider: customI18nProvider || i18nProvider
259
+ }, customAuthProvider !== null && { authProvider: customAuthProvider || authProvider }), customThemeConfig ? { theme: customThemeConfig } : { theme: safeAdminThemeOptions }), customQueryClient && { queryClient: customQueryClient }), history && { history }), basePath ? { basename: basePath } : { basename: DASHAdminSystemConstants.system.URL_PREFIX });
260
+ const adminUIProps = useMemo(() => __spreadProps(__spreadValues(__spreadValues(__spreadProps(__spreadValues({}, customNotification && { notification: customNotification }), {
261
+ layout: customLayout,
262
+ loginPage: customLoginPage
263
+ }), customErrorPage && { catchAll: customErrorPage }), Error2 && { error: Error2 }), {
264
+ dashboard
265
+ }), [customNotification, customLayout, customLoginPage, customErrorPage, dashboard]);
266
+ return children ? /* @__PURE__ */ jsx(
267
+ DictionaryProvider,
268
+ {
269
+ dictionary: memoizedDictionary,
270
+ replacements: memoizedReplacements,
271
+ children: /* @__PURE__ */ jsxs(AdminContext, __spreadProps(__spreadValues({}, adminContextProps), { children: [
272
+ /* @__PURE__ */ jsx(I18nReduxSync, { locale: ReactLocale }),
273
+ /* @__PURE__ */ jsx(I18nBridgeSetter, {}),
274
+ /* @__PURE__ */ jsx(AdminHook, {}),
275
+ /* @__PURE__ */ jsx(RedirectListener, {}),
276
+ /* @__PURE__ */ jsx(AdminUI, __spreadProps(__spreadValues({}, adminUIProps), { children }))
277
+ ] }))
278
+ }
279
+ ) : /* @__PURE__ */ jsx(
280
+ DictionaryProvider,
281
+ {
282
+ dictionary: memoizedDictionary,
283
+ replacements: memoizedReplacements,
284
+ children: /* @__PURE__ */ jsxs(AdminContext, __spreadProps(__spreadValues({}, adminContextProps), { children: [
285
+ /* @__PURE__ */ jsx(I18nReduxSync, { locale: ReactLocale }),
286
+ /* @__PURE__ */ jsx(I18nBridgeSetter, {}),
287
+ /* @__PURE__ */ jsx(AdminHook, {}),
288
+ /* @__PURE__ */ jsx(RedirectListener, {}),
289
+ /* @__PURE__ */ jsx(
290
+ AsyncResources,
291
+ __spreadProps(__spreadValues({}, adminUIProps), {
292
+ resources,
293
+ locale: ReactLocale,
294
+ customAuthRoutes,
295
+ customRoutes
296
+ })
297
+ )
298
+ ] }))
299
+ }
300
+ );
301
+ }, (prevProps, nextProps) => {
302
+ return prevProps.customResources === nextProps.customResources && prevProps.useCoreResources === nextProps.useCoreResources && prevProps.children === nextProps.children && prevProps.customLoginPage === nextProps.customLoginPage && prevProps.customLayout === nextProps.customLayout && prevProps.customDataProvider === nextProps.customDataProvider && prevProps.customAuthProvider === nextProps.customAuthProvider && prevProps.dashboard === nextProps.dashboard && // prevProps.customProfilePage === nextProps.customProfilePage &&
303
+ prevProps.customAuthRoutes === nextProps.customAuthRoutes && prevProps.customRoutes === nextProps.customRoutes;
304
+ });
305
+ const DASHAdmin = (props) => {
306
+ const _a = props, { initialAppConstants, children } = _a, rest = __objRest(_a, ["initialAppConstants", "children"]);
307
+ return /* @__PURE__ */ jsx(ConstantsProvider, { initialAppConstants, children: children ? /* @__PURE__ */ jsx(DASHAdminApp, __spreadProps(__spreadValues({}, rest), { children })) : /* @__PURE__ */ jsx(DASHAdminApp, __spreadValues({}, rest)) });
308
+ };
309
+ var DASHAdmin_default = DASHAdmin;
310
+ export {
311
+ DASHAdmin_default as default
312
+ };
@@ -1 +1,76 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useEffect as u,useState as c,useRef as f}from"react";import{BrowserRouter as R,Route as h,Routes as p,useLocation as y}from"react-router-dom";import{AnimatePresence as d}from"framer-motion";import C from"./layout/MotionWrapper";const P=({Wrapper:o,BrowserRouterComponent:e,LayoutComponent:r,children:n})=>{const a=e||R;return r?t(a,{children:t(r,{children:o?t(o,{children:n}):n})}):t(a,{children:o?t(o,{children:n}):n})},x=({children:o})=>{const e=y();let r="wait",n=!1;const a=e.pathname.split("/"),m=a[a.length-1],[l,s]=c(!0),i=f(!0);return isNaN(parseInt(m))||(r="sync"),u(()=>{i.current&&s(!0)},[e.pathname]),u(()=>(i.current=!0,()=>{i.current=!1}),[]),n?t(d,{mode:r,onExitComplete:()=>{i.current&&s(!1)},children:t(p,{location:e,children:t(h,{element:t(C,{pageTransition:!0,loadingSpinner:!0,transitionDuration:.5,initialShow:l,maxTimeOut:8e3,usePortalForBackground:!0,portalTarget:".dash-app-layout-content",usePortalForSpinner:!0,spinnerPortalTarget:"body"}),children:o})},e.pathname)}):t(p,{location:e,children:o},e.pathname)};var A=P;export{x as AnimatedRoutesWrapper,A as default};
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState, useRef } from "react";
3
+ import { BrowserRouter, Route, Routes, useLocation } from "react-router-dom";
4
+ import { AnimatePresence } from "framer-motion";
5
+ import MotionWrapper from "./layout/MotionWrapper";
6
+ const RoutingWrapper = ({
7
+ Wrapper,
8
+ BrowserRouterComponent,
9
+ LayoutComponent,
10
+ children
11
+ }) => {
12
+ const RouterComponent = BrowserRouterComponent ? BrowserRouterComponent : BrowserRouter;
13
+ if (LayoutComponent) {
14
+ return /* @__PURE__ */ jsx(RouterComponent, { children: /* @__PURE__ */ jsx(LayoutComponent, { children: Wrapper ? /* @__PURE__ */ jsx(Wrapper, { children }) : children }) });
15
+ }
16
+ return /* @__PURE__ */ jsx(RouterComponent, { children: Wrapper ? /* @__PURE__ */ jsx(Wrapper, { children }) : children });
17
+ };
18
+ const AnimatedRoutesWrapper = ({ children }) => {
19
+ const location = useLocation();
20
+ let method = "wait";
21
+ let transitionEnabled = true;
22
+ const pathParts = location.pathname.split("/");
23
+ const lastPart = pathParts[pathParts.length - 1];
24
+ const [show, setShow] = useState(true);
25
+ const isMountedRef = useRef(true);
26
+ if (!isNaN(parseInt(lastPart))) {
27
+ method = "sync";
28
+ }
29
+ useEffect(() => {
30
+ if (isMountedRef.current) {
31
+ setShow(true);
32
+ }
33
+ }, [location.pathname]);
34
+ useEffect(() => {
35
+ isMountedRef.current = true;
36
+ return () => {
37
+ isMountedRef.current = false;
38
+ };
39
+ }, []);
40
+ return transitionEnabled ? /* @__PURE__ */ jsx(
41
+ AnimatePresence,
42
+ {
43
+ mode: method,
44
+ onExitComplete: () => {
45
+ if (isMountedRef.current) {
46
+ setShow(false);
47
+ }
48
+ },
49
+ children: /* @__PURE__ */ jsx(Routes, { location, children: /* @__PURE__ */ jsx(
50
+ Route,
51
+ {
52
+ element: /* @__PURE__ */ jsx(
53
+ MotionWrapper,
54
+ {
55
+ pageTransition: true,
56
+ loadingSpinner: true,
57
+ transitionDuration: 0.5,
58
+ initialShow: show,
59
+ maxTimeOut: 8e3,
60
+ usePortalForBackground: true,
61
+ portalTarget: ".dash-app-layout-content",
62
+ usePortalForSpinner: true,
63
+ spinnerPortalTarget: "body"
64
+ }
65
+ ),
66
+ children
67
+ }
68
+ ) }, location.pathname)
69
+ }
70
+ ) : /* @__PURE__ */ jsx(Routes, { location, children }, location.pathname);
71
+ };
72
+ var RoutingWrapper_default = RoutingWrapper;
73
+ export {
74
+ AnimatedRoutesWrapper,
75
+ RoutingWrapper_default as default
76
+ };
@@ -1 +1,15 @@
1
- var e=Object.defineProperty;var i=(s,t,a)=>t in s?e(s,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):s[t]=a;var c=(s,t,a)=>i(s,typeof t!="symbol"?t+"":t,a);class n{}c(n,"resources",[]),c(n,"constants");var r=n;export{r as default};
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ class DASHStorageClass {
5
+ // It should be IAppConstants
6
+ }
7
+ __publicField(DASHStorageClass, "resources", []);
8
+ //static headerComponents:any[] = [];
9
+ //static panelSettings:any = {};
10
+ //static setResources(resources) { DASHStorageClass.resources = resources }
11
+ __publicField(DASHStorageClass, "constants");
12
+ var DASHStorageClass_default = DASHStorageClass;
13
+ export {
14
+ DASHStorageClass_default as default
15
+ };
@@ -1 +1,26 @@
1
- import{jsx as o}from"react/jsx-runtime";import{RichTextInput as r}from"ra-input-rich-text";import{RichTextField as m}from"react-admin";const c=({method:t,attribute:e})=>o(r,{label:e.label,source:e.attribute}),n=({method:t,attribute:e,resourceConfig:i})=>{switch(t){case"edit":case"create":return o(c,{attribute:e,method:t,resourceConfig:i});case"view":return o(m,{source:e.attribute})}};var h=n;export{h as default};
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { RichTextInput } from "ra-input-rich-text";
3
+ import { RichTextField } from "react-admin";
4
+ const RichTextFieldEdit = ({
5
+ method,
6
+ attribute
7
+ }) => {
8
+ return /* @__PURE__ */ jsx(RichTextInput, { label: attribute.label, source: attribute.attribute });
9
+ };
10
+ const RichTextFieldWrapper = ({
11
+ method,
12
+ attribute,
13
+ resourceConfig
14
+ }) => {
15
+ switch (method) {
16
+ case "edit":
17
+ case "create":
18
+ return /* @__PURE__ */ jsx(RichTextFieldEdit, { attribute, method, resourceConfig });
19
+ case "view":
20
+ return /* @__PURE__ */ jsx(RichTextField, { source: attribute.attribute });
21
+ }
22
+ };
23
+ var RichTextField_default = RichTextFieldWrapper;
24
+ export {
25
+ RichTextField_default as default
26
+ };
@@ -1 +1,56 @@
1
- import{jsx as h}from"react/jsx-runtime";import{useEffect as m}from"react";import{useRedirect as c,Loading as n}from"react-admin";import{useParams as f}from"react-router";import{DASHAdminSystemConstants as l}from"@dashadmin/dash-constants";const p=l.system.URL_PREFIX,R=({method:t,resourceConfig:r,stateHashPattern:a=p,drawerMethod:i="edit",...u})=>{const o=f(),d=c(),s=r?.idParamName||"id";return m(()=>{let e=a.replace(`:${s}`,o[s]);e=e.replace(":method",i),d(t,r.model,t==="edit"?o.id:null,null,{hash:e})},[]),h(n,{})};var w=R;export{w as default};
1
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
2
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
4
+ var __objRest = (source, exclude) => {
5
+ var target = {};
6
+ for (var prop in source)
7
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
8
+ target[prop] = source[prop];
9
+ if (source != null && __getOwnPropSymbols)
10
+ for (var prop of __getOwnPropSymbols(source)) {
11
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
12
+ target[prop] = source[prop];
13
+ }
14
+ return target;
15
+ };
16
+ import { jsx } from "react/jsx-runtime";
17
+ import { useEffect } from "react";
18
+ import { useRedirect, Loading } from "react-admin";
19
+ import { useParams } from "react-router";
20
+ import { DASHAdminSystemConstants } from "dash-constants";
21
+ const URL_PREFIX = DASHAdminSystemConstants.system.URL_PREFIX;
22
+ const Redirect = (_a) => {
23
+ var _b = _a, {
24
+ method,
25
+ resourceConfig,
26
+ stateHashPattern = URL_PREFIX,
27
+ drawerMethod = "edit"
28
+ } = _b, _props = __objRest(_b, [
29
+ "method",
30
+ "resourceConfig",
31
+ "stateHashPattern",
32
+ "drawerMethod"
33
+ ]);
34
+ const params = useParams();
35
+ const redirect = useRedirect();
36
+ const idParamName = (resourceConfig == null ? void 0 : resourceConfig.idParamName) || "id";
37
+ useEffect(() => {
38
+ let _stateHash = stateHashPattern.replace(
39
+ `:${idParamName}`,
40
+ params[idParamName]
41
+ );
42
+ _stateHash = _stateHash.replace(":method", drawerMethod);
43
+ redirect(
44
+ method,
45
+ resourceConfig.model,
46
+ method === "edit" ? params.id : null,
47
+ null,
48
+ { hash: _stateHash }
49
+ );
50
+ }, []);
51
+ return /* @__PURE__ */ jsx(Loading, {});
52
+ };
53
+ var Redirect_default = Redirect;
54
+ export {
55
+ Redirect_default as default
56
+ };
@@ -1 +1,72 @@
1
- import{Fragment as h,jsx as o,jsxs as F}from"react/jsx-runtime";import{useRecordContext as s}from"react-admin";import{Box as l}from"@mui/material";import p from"./SingleImageUploader";import{useFormContext as d}from"react-hook-form";import C from"@mui/material/Avatar";const A=e=>{const{method:r,attribute:t}=e,a=s(),i=t.listAttribute||t.attribute,{setValue:m,formState:{errors:n}}=d(),u=c=>{m(t.attribute,c,{shouldDirty:!0})};return F(h,{children:[o(p,{classNamePrefix:"dash-profile",...r==="edit"&&a&&a[i]?{currentUrl:a[i]}:{},onChange:u}),n[t.attribute]&&o("span",{style:{color:"red"},children:n[t.attribute]?.message?.toString()||"Error"})]})},f=e=>{const{attribute:r}=e,t=s(),a=r.listAttribute||r.attribute,i=t?.[a];return o(l,{display:"flex",alignItems:"center",children:o(C,{src:i,alt:"avatar"})})},b=({method:e,attribute:r,resourceConfig:t})=>{switch(e){case"edit":case"create":return o(A,{attribute:r,method:e,resourceConfig:t});case"view":case"list":return o(f,{attribute:r,method:e,resourceConfig:t})}};var _=b;export{f as AvatarDisplay,A as AvatarHandler,_ 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
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
21
+ import { useRecordContext } from "react-admin";
22
+ import { Box } from "@mui/material";
23
+ import SingleImageUploader from "./SingleImageUploader";
24
+ import { useFormContext } from "react-hook-form";
25
+ import AvatarMui from "@mui/material/Avatar";
26
+ const AvatarHandler = (props) => {
27
+ var _a, _b;
28
+ const { method, attribute } = props;
29
+ const record = useRecordContext();
30
+ const _attributeName = attribute.listAttribute || attribute.attribute;
31
+ const {
32
+ setValue,
33
+ formState: { errors }
34
+ } = useFormContext();
35
+ const onChange = (file) => {
36
+ setValue(attribute.attribute, file, { shouldDirty: true });
37
+ };
38
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
39
+ /* @__PURE__ */ jsx(
40
+ SingleImageUploader,
41
+ __spreadProps(__spreadValues({
42
+ classNamePrefix: "dash-profile"
43
+ }, method === "edit" && record && record[_attributeName] ? { currentUrl: record[_attributeName] } : {}), {
44
+ onChange
45
+ })
46
+ ),
47
+ errors[attribute.attribute] && /* @__PURE__ */ jsx("span", { style: { color: "red" }, children: ((_b = (_a = errors[attribute.attribute]) == null ? void 0 : _a.message) == null ? void 0 : _b.toString()) || "Error" })
48
+ ] });
49
+ };
50
+ const AvatarDisplay = (props) => {
51
+ const { attribute } = props;
52
+ const record = useRecordContext();
53
+ const _attributeName = attribute.listAttribute || attribute.attribute;
54
+ const imageUrl = record == null ? void 0 : record[_attributeName];
55
+ return /* @__PURE__ */ jsx(Box, { display: "flex", alignItems: "center", children: /* @__PURE__ */ jsx(AvatarMui, { src: imageUrl, alt: "avatar" }) });
56
+ };
57
+ const Avatar = ({ method, attribute, resourceConfig }) => {
58
+ switch (method) {
59
+ case "edit":
60
+ case "create":
61
+ return /* @__PURE__ */ jsx(AvatarHandler, { attribute, method, resourceConfig });
62
+ case "view":
63
+ case "list":
64
+ return /* @__PURE__ */ jsx(AvatarDisplay, { attribute, method, resourceConfig });
65
+ }
66
+ };
67
+ var Avatar_default = Avatar;
68
+ export {
69
+ AvatarDisplay,
70
+ AvatarHandler,
71
+ Avatar_default as default
72
+ };