@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
@@ -0,0 +1,176 @@
1
+ function getCssVarFromDom(key: string): string | undefined {
2
+ const value = getComputedStyle(document.documentElement).getPropertyValue(`--${key}`).trim();
3
+ return value || undefined;
4
+ }
5
+
6
+ function getAllCSSVariableNames(styleSheets: StyleSheetList = document.styleSheets): string[] {
7
+ const cssVars = new Set<string>();
8
+
9
+ for (let i = 0; i < styleSheets.length; i++) {
10
+ const sheet = styleSheets[i];
11
+ let rules: CSSRuleList | undefined;
12
+
13
+ try {
14
+ // Some stylesheets may be cross-origin and throw on access
15
+ rules = (sheet as CSSStyleSheet).cssRules;
16
+ } catch {
17
+ continue;
18
+ }
19
+
20
+ if (!rules) continue;
21
+
22
+ for (let j = 0; j < rules.length; j++) {
23
+ const rule = rules[j];
24
+ // Only process style rules (ignore @media, @font-face, etc.)
25
+ if ('style' in rule && rule.style) {
26
+ const style = rule.style as CSSStyleDeclaration;
27
+ for (let k = 0; k < style.length; k++) {
28
+ const name = style[k];
29
+ if (name.startsWith('--')) {
30
+ cssVars.add(name);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ return Array.from(cssVars);
38
+ }
39
+
40
+ /**
41
+ * Read CSS variables from all stylesheets EXCEPT the dynamic theme style element.
42
+ * This gives us the "static" compiled LESS/CSS defaults, unaffected by our own dynamic overrides.
43
+ */
44
+ function getStaticCssVariables(): Record<string, string> {
45
+ const result: Record<string, string> = {};
46
+ for (let i = 0; i < document.styleSheets.length; i++) {
47
+ const sheet = document.styleSheets[i];
48
+ const ownerNode = sheet.ownerNode as HTMLElement;
49
+ // Skip our dynamic theme style element to avoid reading back our own values
50
+ if (ownerNode?.id === 'dash-theme-variables') continue;
51
+ try {
52
+ const rules = (sheet as CSSStyleSheet).cssRules;
53
+ if (!rules) continue;
54
+ for (let j = 0; j < rules.length; j++) {
55
+ const rule = rules[j];
56
+ if ('selectorText' in rule && (rule as CSSStyleRule).selectorText === ':root') {
57
+ const style = (rule as CSSStyleRule).style;
58
+ for (let k = 0; k < style.length; k++) {
59
+ const name = style[k];
60
+ if (name.startsWith('--')) {
61
+ result[name] = style.getPropertyValue(name).trim();
62
+ }
63
+ }
64
+ }
65
+ }
66
+ } catch {
67
+ continue;
68
+ }
69
+ }
70
+ return result;
71
+ }
72
+
73
+ export const updateDomCssVariables = (
74
+ theme: string,
75
+ colors?: { [x: string]: string },
76
+ values?: { [x: string]: string }
77
+ ) => {
78
+ const debug = false;
79
+ const themeSuffix = `--${theme}`;
80
+ const logKeys = [
81
+ // "primary-color--light",
82
+ // "primary-color--dark",
83
+ "framed_layout-bg--light",
84
+ "framed_layout-bg--dark",
85
+ // "primary-color--light",
86
+ // "primary-contrast--light",
87
+ // "primary-contrast--dark",
88
+ // "secondary-color--light",
89
+ // "secondary-color--dark",
90
+ // "highlight-color--light",
91
+ // "highlight-color--dark",
92
+ //"framed_layout-bg--light",
93
+ //"framed_layout-bg--dark",
94
+ ];
95
+
96
+ // Find or create the style element
97
+ let themeStyleElement = document.getElementById('dash-theme-variables') as HTMLStyleElement | null;
98
+
99
+ if (!themeStyleElement) {
100
+ themeStyleElement = document.createElement('style');
101
+ themeStyleElement.id = 'dash-theme-variables';
102
+ }
103
+
104
+ // CRITICAL FIX: Always ensure the style element is at the END of <head>
105
+ // for highest CSS cascade priority. This ensures our dynamic tenant colors
106
+ // override the static compiled LESS/CSS defaults.
107
+ // appendChild on an already-attached element moves it to the new position.
108
+ document.head.appendChild(themeStyleElement);
109
+
110
+ let styleString = '';
111
+
112
+ values && Object.entries(values).forEach(([key, value]) => {
113
+ styleString += `--${key}: ${value}; `;
114
+ });
115
+
116
+ // When no colors provided, read from static stylesheets (excluding our dynamic style)
117
+ // to get compiled LESS defaults instead of reading back our own previous values.
118
+ const staticVars = colors ? undefined : getStaticCssVariables();
119
+
120
+ // Collect all keys to set (from colors or fallback to static stylesheets)
121
+ const allKeys = new Set<string>();
122
+ if (colors) {
123
+ Object.keys(colors).forEach(k => allKeys.add(k));
124
+ } else {
125
+ // Use static CSS variables (from compiled LESS, NOT our dynamic style)
126
+ Object.keys(staticVars!).forEach(name => {
127
+ allKeys.add(name.slice(2)); // remove leading '--'
128
+ });
129
+ }
130
+ logKeys.forEach(k => allKeys.add(k));
131
+
132
+ allKeys.forEach(key => {
133
+ // Get value: prefer colors param, then static vars, then computed DOM
134
+ let value = colors?.[key];
135
+ if (!value && staticVars) {
136
+ value = staticVars[`--${key}`];
137
+ }
138
+ if (!value) value = getCssVarFromDom(key);
139
+
140
+ if (value) {
141
+ // Only add the variable if it doesn't end with a theme suffix OR matches the current theme
142
+ // This prevents variables for other themes from being included
143
+ const isThemeVariable = key.includes('--');
144
+ const isCurrentTheme = key.endsWith(themeSuffix);
145
+
146
+ // Add all non-theme variables and only the ones for current theme
147
+ if (!isThemeVariable || isCurrentTheme) {
148
+ styleString += `--${key}: ${value}; `;
149
+ if (logKeys.includes(key)) {
150
+ debug && console.log(`%c ⬤ --${key}: ${value}; `, `color: ${value};`);
151
+ }
152
+ }
153
+ }
154
+
155
+ // Only set baseKey for the current theme
156
+ if (key.endsWith(themeSuffix)) {
157
+ const baseKey = key.slice(0, -themeSuffix.length);
158
+ let baseValue = colors?.[key];
159
+ if (!baseValue && staticVars) {
160
+ baseValue = staticVars[`--${key}`];
161
+ }
162
+ if (!baseValue) baseValue = getCssVarFromDom(key);
163
+ if (baseValue) {
164
+ styleString += `--${baseKey}: ${baseValue}; `;
165
+ if (logKeys.includes(`${baseKey}${themeSuffix}`)) {
166
+ debug && console.log(`%c ⬤ [DEFAULT][${themeSuffix}] --${baseKey}: ${baseValue}; `, `color: ${baseValue};`);
167
+ }
168
+ }
169
+ }
170
+ });
171
+ // Remove this log or set debug to false in production
172
+ debug && console.log("STYLES", styleString);
173
+ themeStyleElement.textContent = `:root { ${styleString} }`;
174
+ };
175
+
176
+ export default updateDomCssVariables;
@@ -0,0 +1,66 @@
1
+ import { getCookie } from '../utils/cookies';
2
+
3
+ /**
4
+ * Checks if the current user has the specified roles or permissions.
5
+ *
6
+ * @param permissions - An array of permission names to check.
7
+ * @param roles - An array of role names to check.
8
+ * @returns True if the user has the specified roles or permissions, false otherwise.
9
+ */
10
+
11
+ /**
12
+ * Checks if the current user has the specified roles or permissions.
13
+ *
14
+ * @param permissions - An array of permission names to check.
15
+ * @param roles - An array of role names to check.
16
+ * @returns True if the user has the specified roles or permissions, false otherwise.
17
+ */
18
+ const checkRole = (permissions, roles) => {
19
+ const debug = false;
20
+
21
+ if (debug) console.info('Check Roles', permissions, roles);
22
+
23
+ if ((Array.isArray(roles) && roles.map(r => r.toLowerCase()).includes('*'))) return true;
24
+
25
+ if (permissions.map(r => r.toLowerCase()).includes('system')) return true;
26
+ const cookie_tenant_id = getCookie('tenant_id');
27
+ if (roles.map(r => r.toLowerCase()).includes('has_admin_id') && !cookie_tenant_id) return false;
28
+
29
+ return roles.map(r => r.toLowerCase()).find((role) => permissions.map(r => r.toLowerCase()).includes(role));
30
+ };
31
+
32
+ export default checkRole;
33
+
34
+ // OLD CODE TO REVIEW: NEW LOGIC ONLY CHECK BY ROLE, NOT SPECIFIC PERMISSIONS.
35
+ /*const checkRole = (permissions, roles) => {
36
+ const debug = true;
37
+
38
+ if (debug) console.info('Check Roles', permissions, roles);
39
+
40
+ if ((Array.isArray(roles) && roles.includes('*'))) return true;
41
+
42
+ const userRoles = dashStorage.getItem('roles');
43
+ const userPermissions = dashStorage.getItem('permissions');
44
+
45
+
46
+ const processedPermissions = {
47
+ roles: Array.isArray(JSON.parse(userRoles)) ? JSON.parse(userRoles).map((item) => item.name) : [],
48
+ list: userPermissions ? JSON.parse(userPermissions) : {},
49
+ };
50
+
51
+ if (debug) console.info('Checking if processedPermissions exists', processedPermissions);
52
+ if (!processedPermissions) return false;
53
+
54
+ if (!Object.prototype.hasOwnProperty.call(processedPermissions, 'roles')) return false;
55
+
56
+ if (!roles) return true;
57
+
58
+
59
+ const cookie_tenant_id = getCookie('tenant_id');
60
+ if (roles.includes('HAS_ADMIN_ID') && !cookie_tenant_id) return false;
61
+
62
+
63
+ if (processedPermissions.roles.includes('SYSTEM_ADMIN')) return true;
64
+
65
+ return roles.find((role) => processedPermissions.roles.includes(role));
66
+ };*/
@@ -0,0 +1,41 @@
1
+ export const parseAxiosError = (error: any): string => {
2
+
3
+ // Handle array of validation errors
4
+ if (error?.originalError?.response?.data?.errors && typeof error?.originalError?.response?.data?.errors === 'object') {
5
+ const originalErrors = error.originalError.response.data.errors;
6
+ const errorMessages = []
7
+
8
+ for (const key in originalErrors) {
9
+ if (Array.isArray(originalErrors[key])) {
10
+ errorMessages.push(...originalErrors[key])
11
+ }
12
+ }
13
+
14
+ if (errorMessages.length > 0) {
15
+ return errorMessages.join('\n')
16
+ }
17
+ }
18
+
19
+ // First priority - response data message
20
+ if (error?.response?.data?.message) {
21
+ return error.response.data.message;
22
+ }
23
+
24
+ // Second priority - error code + name + message
25
+ if (error?.code || error?.message) {
26
+ return [error.code, error.name || '', error.message]
27
+ .filter(Boolean)
28
+ .join(' - ');
29
+ }
30
+
31
+
32
+ // Third priority - status + statusText
33
+ if (error?.response?.status || error?.response?.statusText) {
34
+ return [error.response.status, error.response.statusText]
35
+ .filter(Boolean)
36
+ .join(' - ');
37
+ }
38
+
39
+ // Fallback
40
+ return 'An unexpected error occurred';
41
+ };
@@ -0,0 +1,39 @@
1
+ import React, { useState, useEffect } from 'react';
2
+
3
+ /**
4
+ * Eexample.
5
+ * const Player = ({ url }) => {
6
+ * const [playing, toggle] = useAudio(url);
7
+ * return (
8
+ * <div>
9
+ * <button onClick={toggle}>{playing ? "Pause" : "Play"}</button>
10
+ * </div>
11
+ * );
12
+ * };
13
+ */
14
+
15
+ const useAudio = (url) => {
16
+ const [audio] = useState(new Audio(url));
17
+ const [playing, setPlaying] = useState(false);
18
+
19
+ const toggle = () => setPlaying(!playing);
20
+
21
+ useEffect(() => {
22
+ if (playing) {
23
+ audio.play();
24
+ } else {
25
+ audio.pause();
26
+ }
27
+ }, [playing]);
28
+
29
+ useEffect(() => {
30
+ audio.addEventListener('ended', () => setPlaying(false));
31
+ return () => {
32
+ audio.removeEventListener('ended', () => setPlaying(false));
33
+ };
34
+ }, []);
35
+
36
+ return [playing, toggle];
37
+ };
38
+
39
+ export default useAudio;
@@ -0,0 +1,62 @@
1
+ import axios from 'axios';
2
+ import constants from 'dash-constants/src/DASHAdminSystemConstants';
3
+ import { dashStorage } from 'dash-utils';
4
+
5
+ export const initAxios = () => {
6
+ let CSRFAuth = false;
7
+
8
+ let options = {
9
+ baseURL: constants.system.ADMIN_API_URL,
10
+ headers: {
11
+ 'Content-Type': 'application/json',
12
+ Accept: 'application/json',
13
+ },
14
+ };
15
+
16
+ const instance = axios.create(options);
17
+
18
+ if (CSRFAuth) {
19
+ instance.defaults.withCredentials = true;
20
+ instance.get('/csrf-cookie').then((response) => {
21
+ console.log('sanctum', response);
22
+ });
23
+ }
24
+
25
+ instance.interceptors.request.use(function (config) {
26
+ const token = dashStorage.getItem('token');
27
+ //console.log("axios Hook", axios, token);
28
+ if (token !== undefined && token !== 'undefined') {
29
+ config.headers.Authorization = 'Bearer ' + token;
30
+ }
31
+ return config;
32
+ });
33
+
34
+ instance.interceptors.response.use(
35
+ (response) => {
36
+ //console.log("Axios Success", response);
37
+ return response;
38
+ },
39
+ (error) => {
40
+ window.dispatchEvent(new MessageEvent('GlobalError', { data: {error:error} }));
41
+ if (error.response && error.response.status === 422) {
42
+ /**
43
+ * Error Handling This is important for the system to parse Form field errors within AutoAdmin.
44
+ * therefore, an extra handling for errors are implemented in dataProvider and authProvider
45
+ **/
46
+ return Promise.reject(error.response.data?.errors || error);
47
+ }
48
+ return Promise.reject(error);
49
+ },
50
+ );
51
+
52
+ return instance;
53
+ };
54
+
55
+ const useAxios = () => {
56
+ const axios = initAxios();
57
+ return {
58
+ axios,
59
+ };
60
+ };
61
+
62
+ export default useAxios;
@@ -0,0 +1,65 @@
1
+ import { useAxios } from 'dash-axios-hook';
2
+ import { useEffect, useState } from 'react';
3
+ import queryString from 'query-string';
4
+ import { useStore } from 'react-admin';
5
+
6
+ export interface IUseDashboardStats {
7
+ autoRefresh: boolean;
8
+ autoRefreshInterval?: number;
9
+ start?: string;
10
+ end?: string;
11
+ }
12
+
13
+ const useDashboardStats = (options: IUseDashboardStats) => {
14
+ const { autoRefresh } = options;
15
+ const axios = useAxios();
16
+ const [data, setData] = useStore('dashboard.stats.data', null);
17
+ const [error, setError] = useState(null);
18
+ const [loaded, setLoaded] = useState(false);
19
+
20
+ const loadDashboardStats = async (o:any) => {
21
+ const payload = queryString.stringify(
22
+ {
23
+ ...(o.start && { start: o.start }),
24
+ ...(o.end && { end: o.end }),
25
+ },
26
+ { arrayFormat: 'bracket' },
27
+ );
28
+
29
+ if (o.autoRefresh) {
30
+ try {
31
+ const response = await axios({
32
+ method: 'GET',
33
+ url: `/admin/dashboard?${payload}`,
34
+ });
35
+
36
+ if (response.status === 200) {
37
+ setData(response.data);
38
+ }
39
+ } catch (e) {
40
+ setError(e);
41
+ } finally {
42
+ setLoaded(true);
43
+ }
44
+ }
45
+ };
46
+
47
+ useEffect(() => {
48
+ loadDashboardStats({ ...options, autoRefresh: true });
49
+ const intervalId = setInterval(() => {
50
+ loadDashboardStats(options);
51
+ }, 10000);
52
+
53
+ return () => {
54
+ clearInterval(intervalId);
55
+ };
56
+ }, [autoRefresh]);
57
+
58
+ const refresh = () => {
59
+ loadDashboardStats({ ...options, autoRefresh: true });
60
+ };
61
+
62
+ return { data, error, loaded, refresh };
63
+ };
64
+
65
+ export default useDashboardStats;
@@ -0,0 +1,44 @@
1
+ import { useAxios } from 'dash-axios-hook';
2
+ import { useEffect, useState } from 'react';
3
+ export interface IDataPackagesByClients {
4
+ totalPackages: number;
5
+ totalCreatedPackages: number;
6
+ totalLabelPrintedPackages: number;
7
+ totalPreparedPackages: number;
8
+ totalInWarehousePackages: number;
9
+ }
10
+
11
+ const usePackageByClientsStats = (
12
+ start = null,
13
+ end = null,
14
+ ) => {
15
+ const axios = useAxios();
16
+
17
+ const [data, setData] = useState<IDataPackagesByClients>(null);
18
+ const [error, setError] = useState(null);
19
+ const [loaded, setLoaded] = useState(false);
20
+
21
+ useEffect(() => {
22
+ const loadDashboardStats = async () => {
23
+ try {
24
+ const response = await axios({
25
+ method: 'GET',
26
+ url: `/admin/dashboard/total-contadores-paquetes-por-cliente?start=${start}&end=${end}`,
27
+ });
28
+
29
+ if (response.status === 200) {
30
+ setData(response.data);
31
+ }
32
+ } catch (e) {
33
+ setError(e);
34
+ } finally {
35
+ setLoaded(true);
36
+ }
37
+ };
38
+ loadDashboardStats();
39
+ }, []);
40
+
41
+ return { data, error, loaded };
42
+ };
43
+
44
+ export default usePackageByClientsStats;
@@ -0,0 +1,44 @@
1
+ import { useAxios } from 'dash-axios-hook';
2
+ import { useEffect, useState } from 'react';
3
+ export interface IDataPackagesByCommunes {
4
+ totalPackages: number;
5
+ totalCreatedPackages: number;
6
+ totalLabelPrintedPackages: number;
7
+ totalPreparedPackages: number;
8
+ totalInWarehousePackages: number;
9
+ }
10
+
11
+ const usePackageByCommunesStats = (
12
+ start = null,
13
+ end = null,
14
+ ) => {
15
+ const axios = useAxios();
16
+
17
+ const [data, setData] = useState<IDataPackagesByCommunes>(null);
18
+ const [error, setError] = useState(null);
19
+ const [loaded, setLoaded] = useState(false);
20
+
21
+ useEffect(() => {
22
+ const loadDashboardStats = async () => {
23
+ try {
24
+ const response = await axios({
25
+ method: 'GET',
26
+ url: `/admin/dashboard/total-contadores-paquetes-por-comuna?start=${start}&end=${end}`,
27
+ });
28
+
29
+ if (response.status === 200) {
30
+ setData(response.data);
31
+ }
32
+ } catch (e) {
33
+ setError(e);
34
+ } finally {
35
+ setLoaded(true);
36
+ }
37
+ };
38
+ loadDashboardStats();
39
+ }, []);
40
+
41
+ return { data, error, loaded };
42
+ };
43
+
44
+ export default usePackageByCommunesStats;
@@ -0,0 +1,69 @@
1
+ import { useAxios } from 'dash-axios-hook';
2
+ import { useEffect, useState } from 'react';
3
+ import queryString from 'query-string';
4
+ import { useStore } from 'react-admin';
5
+
6
+ export interface IUsePackageStats {
7
+ autoRefresh: boolean;
8
+ autoRefreshInterval?: number;
9
+ start?: string;
10
+ end?: string;
11
+ }
12
+
13
+ const usePackageStats = (options: IUsePackageStats) => {
14
+ const { autoRefresh } = options;
15
+ const axios = useAxios();
16
+ const [data, setData] = useStore('dashboard.stats.data', null);
17
+ const [error, setError] = useState(null);
18
+ const [loaded, setLoaded] = useState(false);
19
+
20
+ const loadPackageStats = async (o:any) => {
21
+ const payload = queryString.stringify(
22
+ {
23
+ ...(o.start && { start: o.start }),
24
+ ...(o.end && { end: o.end }),
25
+ },
26
+ { arrayFormat: 'bracket' },
27
+ );
28
+
29
+ //console.log("loadDashboardStats",options.autoRefresh)
30
+ if (options.autoRefresh) {
31
+ try {
32
+ const response = await axios({
33
+ method: 'GET',
34
+ url: `/admin/dashboard?${payload}`,
35
+ });
36
+
37
+ if (response.status === 200) {
38
+ setData(response.data);
39
+ }
40
+ } catch (e) {
41
+ setError(e);
42
+ } finally {
43
+ setLoaded(true);
44
+ }
45
+ }
46
+ };
47
+
48
+ useEffect(() => {
49
+ //console.log("Firt Dashboard Stats Loads "+autoRefresh);
50
+ loadPackageStats({ ...options, autoRefresh: true });
51
+ const intervalId = setInterval(() => {
52
+ //console.log("Refreshing Dashboard Stats "+autoRefresh)
53
+ loadPackageStats(options);
54
+ }, 10000);
55
+
56
+ return () => {
57
+ //console.log("clearInterval");
58
+ clearInterval(intervalId);
59
+ };
60
+ }, [autoRefresh]);
61
+
62
+ const refresh = () => {
63
+ loadPackageStats({ ...options, autoRefresh: true });
64
+ };
65
+
66
+ return { data, error, loaded, refresh };
67
+ };
68
+
69
+ export default usePackageStats;
@@ -0,0 +1,61 @@
1
+ import { useAxios } from 'dash-axios-hook';
2
+ import { useState } from 'react';
3
+ import queryString from 'query-string';
4
+
5
+ export interface IUsePackageWithdrawDetails {
6
+ action_id?: number;
7
+ driver_id?: string | number;
8
+ }
9
+
10
+ export interface PackageWithdrawDetailOutput {
11
+ countwidthdrawsPackages: number;
12
+ packagesForClients: PackagesForClient[];
13
+ }
14
+
15
+ export interface PackagesForClient {
16
+ contador_without_info: number;
17
+ contador: number;
18
+ name: string;
19
+ packages_without_info?: PackagesWithoutInfo[];
20
+ }
21
+
22
+ export interface PackagesWithoutInfo {
23
+ id: number;
24
+ internal_id: string;
25
+ }
26
+
27
+ const usePackageWithdrawDetails = () => {
28
+ const axios = useAxios();
29
+ const [data, setData] = useState<PackageWithdrawDetailOutput>(null);
30
+ const [error, setError] = useState(null);
31
+ const [loaded, setLoaded] = useState(false);
32
+
33
+ const request = async (o) => {
34
+ const payload = queryString.stringify(
35
+ {
36
+ ...(o.action_id && { action_id: o.action_id }),
37
+ ...(o.driver_id && { driver_id: o.driver_id }),
38
+ },
39
+ { arrayFormat: 'bracket' },
40
+ );
41
+
42
+ try {
43
+ const response = await axios({
44
+ method: 'GET',
45
+ url: `/admin/package/withdrawn-today?${payload}`,
46
+ });
47
+
48
+ if (response.status === 200) {
49
+ setData(response.data[0]);
50
+ }
51
+ } catch (e) {
52
+ setError(e);
53
+ } finally {
54
+ setLoaded(true);
55
+ }
56
+ };
57
+
58
+ return { request, data, error, loaded };
59
+ };
60
+
61
+ export default usePackageWithdrawDetails;