@dashadmin/dash-admin 1.3.25 → 1.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/dist/AppAsyncWrapper.js +30 -1
  2. package/dist/AppWrapper.js +35 -1
  3. package/dist/DASHAdmin.js +312 -1
  4. package/dist/RoutingWrapper.js +76 -1
  5. package/dist/classes/DASHStorageClass.js +15 -1
  6. package/dist/components/Input/RichTextField.js +26 -1
  7. package/dist/components/Redirect.js +56 -1
  8. package/dist/components/avatar/Avatar.js +72 -1
  9. package/dist/components/avatar/SingleImageUploader.js +46 -1
  10. package/dist/components/currency/Format.js +71 -1
  11. package/dist/components/custom/Redirect.js +20 -1
  12. package/dist/components/error/Error.js +161 -1
  13. package/dist/components/geocoding/GeocodingField.js +133 -1
  14. package/dist/components/i18n/BridgedLocalesMenuButton.js +126 -1
  15. package/dist/components/i18n/LangSwitcher.js +196 -1
  16. package/dist/components/loader/GlobalLoader.js +71 -1
  17. package/dist/components/logs/LogFile.js +99 -1
  18. package/dist/components/logs/LogFileById.js +75 -1
  19. package/dist/components/logs/LogViewer.js +33 -1
  20. package/dist/components/menu/AppMenu.js +11 -1
  21. package/dist/components/menu/CustomMenuItemLink.js +77 -1
  22. package/dist/components/menu/DarkToggleMode.js +47 -1
  23. package/dist/components/menu/LanguageToggleMode.js +99 -1
  24. package/dist/components/misc/CustomImageInput.js +54 -1
  25. package/dist/components/misc/DASHGlobalErrorHandler.js +159 -1
  26. package/dist/components/misc/DarkModeSwitcher.js +40 -1
  27. package/dist/components/misc/LanguageSwitcher.js +193 -1
  28. package/dist/components/misc/MUIHtmlToolTip.js +50 -1
  29. package/dist/components/misc/MuiSimpleJsonTable.js +178 -1
  30. package/dist/components/misc/MultiLevelTable.js +124 -1
  31. package/dist/components/misc/NoResults.js +17 -1
  32. package/dist/components/misc/PDFViewer.js +86 -1
  33. package/dist/components/navigation/Breadcrumbs.js +178 -1
  34. package/dist/components/navigation/BreadcrumbsManager.js +194 -1
  35. package/dist/components/navigation/index.js +8 -1
  36. package/dist/components/panel/Error.js +161 -1
  37. package/dist/components/permission/AvailablePermissionsContext.js +157 -1
  38. package/dist/components/permission/PermissionsSelector.js +719 -1
  39. package/dist/components/permission/PermissionsSelectorList.js +400 -1
  40. package/dist/components/racustombuttons/CustomRAButton.js +94 -1
  41. package/dist/components/racustombuttons/QuickButton.js +109 -1
  42. package/dist/components/racustombuttons/QuickEditButton.js +114 -1
  43. package/dist/components/racustombuttons/QuickIconButton.js +119 -1
  44. package/dist/components/scrollbar/Scrollbar.js +52 -1
  45. package/dist/components/selects/MultiSelect.js +42 -1
  46. package/dist/components/selects/RASearchableSelect.js +207 -1
  47. package/dist/components/selects/RASearchableSelectChips.js +225 -1
  48. package/dist/components/selects/SearchableSelect.js +128 -1
  49. package/dist/components/subscription/BillingCycleSelectInput.js +50 -1
  50. package/dist/components/subscription/PlanAddonsSettings.js +396 -1
  51. package/dist/components/subscription/PlanAuditLog.js +345 -1
  52. package/dist/components/subscription/PlanFeaturesSettings.js +151 -1
  53. package/dist/components/subscription/PlanLimitsSettings.js +168 -1
  54. package/dist/components/subscription/PlanMetadataSettings.js +219 -1
  55. package/dist/components/subscription/PlanPricesSettings.js +222 -1
  56. package/dist/components/subscription/index.js +12 -1
  57. package/dist/components/svgelements/SvgLoading.js +330 -1
  58. package/dist/components/svgelements/SvgLogo.js +70 -1
  59. package/dist/components/svgelements/SvgLogoMin.js +76 -1
  60. package/dist/components/svgelements/SvgShipping.js +1001 -1
  61. package/dist/components/tenant/TenantAttributes.js +107 -1
  62. package/dist/components/tenant/TenantAttributesContext.js +150 -1
  63. package/dist/components/tenant/TenantSelector.js +160 -1
  64. package/dist/components/tenant/TenantSettings.js +107 -1
  65. package/dist/components/tenant/TenantSettingsContext.js +152 -1
  66. package/dist/components/tenant/TenantTheme.js +112 -1
  67. package/dist/components/user/AvatarComponent.js +270 -1
  68. package/dist/components/user/TenantAvatarComponent.js +83 -1
  69. package/dist/components/user/UserPreferences.js +422 -1
  70. package/dist/config/ACTIONS.js +25 -1
  71. package/dist/config/ConstantsService.js +25 -1
  72. package/dist/config/DASHAdminSystemConstants.js +137 -1
  73. package/dist/config/PARSERS.js +9 -1
  74. package/dist/contexts/DashQueryClientContext.js +78 -1
  75. package/dist/contexts/DashResourceContext.js +21 -1
  76. package/dist/contexts/I18nBridgeContext.js +123 -1
  77. package/dist/contexts/I18nBridgeSetter.js +29 -1
  78. package/dist/contexts/I18nReduxSync.js +16 -1
  79. package/dist/contexts/SubscriptionPlanFormatsProvider.js +175 -1
  80. package/dist/contexts/SystemRequestsCache.js +194 -1
  81. package/dist/contexts/auth/AuthContext.js +396 -1
  82. package/dist/contexts/auth/AuthContextLocalStorage.js +118 -1
  83. package/dist/contexts/auth/DASHAuthenticationService.js +679 -1
  84. package/dist/contexts/auth/WindowContext.js +10 -1
  85. package/dist/contexts/auth/index.js +2 -1
  86. package/dist/contexts/com/FCMContext.js +378 -1
  87. package/dist/contexts/com/LaravelEchoContext.js +45 -1
  88. package/dist/contexts/com/LaravelEchoMgr.js +121 -1
  89. package/dist/contexts/com/components/DefaultNotificationComponent.js +31 -1
  90. package/dist/contexts/com/components/NotificationAttributesTable.js +28 -1
  91. package/dist/contexts/com/components/NotificationRenderer.js +36 -1
  92. package/dist/contexts/com/components/NotificationsWidget.js +142 -1
  93. package/dist/contexts/com/components/notificationFormats.js +15 -1
  94. package/dist/contexts/com/useLaravelEcho.js +340 -1
  95. package/dist/contexts/dictionary/DictionaryContext.js +43 -1
  96. package/dist/default-theme/DASHAppProviders.js +86 -1
  97. package/dist/default-theme/DashThemeContext.js +146 -1
  98. package/dist/default-theme/DashThemeHelperProvider.js +54 -1
  99. package/dist/default-theme/DomainAppLayout.js +126 -1
  100. package/dist/default-theme/DomainHeader.js +114 -1
  101. package/dist/default-theme/DomainTheme.js +60 -1
  102. package/dist/default-theme/FullLayoutMarkup.js +55 -1
  103. package/dist/default-theme/StaticLayout.js +36 -1
  104. package/dist/default-theme/index.js +19 -1
  105. package/dist/default-theme/menu/AppMaterialMenu.js +364 -1
  106. package/dist/default-theme/menu/AppMenuComponents/SubmenuPortal.js +33 -1
  107. package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.js +239 -1
  108. package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.js +22 -1
  109. package/dist/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.js +209 -1
  110. package/dist/default-theme/menu/AppMenuComponents/expanded/SidebarItem.js +71 -1
  111. package/dist/default-theme/menu/AppMenuComponents/getItem.js +7 -1
  112. package/dist/default-theme/menu/AppMenuComponents/submenuConstants.js +78 -1
  113. package/dist/default-theme/menu/AppSidebarMaterial.js +232 -1
  114. package/dist/default-theme/menu/SidebarActions.js +75 -1
  115. package/dist/default-theme/updateDomCssVariables.js +134 -1
  116. package/dist/helpers/checkRole.js +14 -1
  117. package/dist/helpers/parseAxiosError.js +28 -2
  118. package/dist/hooks/audio/useAudio.js +24 -1
  119. package/dist/hooks/axios.js +52 -1
  120. package/dist/hooks/data/useDashboardStats.js +88 -1
  121. package/dist/hooks/data/usePackageByClientsStats.js +51 -1
  122. package/dist/hooks/data/usePackageByCommunesStats.js +51 -1
  123. package/dist/hooks/data/usePackageStats.js +88 -1
  124. package/dist/hooks/data/usePackageWithdrawDetails.js +69 -1
  125. package/dist/hooks/data/useStats.js +94 -1
  126. package/dist/hooks/isCurrentPath.js +18 -1
  127. package/dist/hooks/notifications/WSMessagesManager.js +128 -1
  128. package/dist/hooks/notifications/WSPusherManager.js +70 -1
  129. package/dist/hooks/useBreadcrumbs.js +208 -1
  130. package/dist/hooks/useClickOutside.js +18 -1
  131. package/dist/hooks/useFormPersistance.js +129 -1
  132. package/dist/hooks/useGlobalErrorMediator.js +37 -1
  133. package/dist/hooks/useGlobalLoaderMgr.js +20 -1
  134. package/dist/hooks/useHash.js +24 -1
  135. package/dist/hooks/useLocalStorage.js +68 -1
  136. package/dist/hooks/usePolyglotTranslation.js +57 -1
  137. package/dist/hooks/usePrevious.js +12 -1
  138. package/dist/hooks/usePrintSelected.js +30 -1
  139. package/dist/hooks/useVirtualHash.js +28 -1
  140. package/dist/hooks/window/useWindowSize.js +23 -1
  141. package/dist/index.js +120 -97
  142. package/dist/interfaces.js +6 -1
  143. package/dist/layout/AppLayout.js +36 -1
  144. package/dist/layout/ApplicationLayout.js +110 -1
  145. package/dist/layout/MotionWrapper.js +182 -1
  146. package/dist/layout/MotionWrapper.original.js +182 -1
  147. package/dist/layout/ResourceMenu.js +87 -1
  148. package/dist/layout/ResoureLayout.js +47 -1
  149. package/dist/layout/TransitionWrapper.js +83 -2
  150. package/dist/pages/ChangePassword.js +198 -1
  151. package/dist/pages/DASHLanding.js +9 -1
  152. package/dist/pages/DASHLightWeightLogin.js +495 -1
  153. package/dist/pages/DASHSimpleLogin.js +231 -1
  154. package/dist/pages/Login.js +113 -1
  155. package/dist/pages/Profile.js +347 -1
  156. package/dist/pages/RecoverPassword.js +175 -1
  157. package/dist/pages/SingleImageUploader.js +40 -1
  158. package/dist/pages/VerifyAccount.js +129 -1
  159. package/dist/providers/authProvider.js +186 -1
  160. package/dist/providers/dataProvider.js +468 -1
  161. package/dist/providers/i18n/en.js +514 -1
  162. package/dist/providers/i18n/es.js +520 -1
  163. package/dist/providers/i18n/languages.js +8 -1
  164. package/dist/providers/i18nProvider.js +23 -1
  165. package/dist/react-admin-dash/RADashComponent.js +210 -1
  166. package/dist/react-admin-dash/Resource.js +62 -1
  167. package/dist/resources/Brand/BrandResource.js +106 -1
  168. package/dist/resources/DASHResourceLoader.js +104 -1
  169. package/dist/resources/Log/LogResource.js +59 -1
  170. package/dist/resources/Tenant/ImpersonateTenantResource.js +113 -1
  171. package/dist/resources/Trash/TrashTemplate.js +195 -1
  172. package/dist/resources.js +259 -1
  173. package/dist/schemas/log.js +45 -1
  174. package/dist/schemas/notification.js +39 -1
  175. package/dist/schemas/permissions.js +44 -1
  176. package/dist/schemas/roles.js +48 -1
  177. package/dist/schemas/rolesDataGrid.js +48 -1
  178. package/dist/schemas/subscription/components/SubscriptionActions.js +172 -1
  179. package/dist/schemas/subscription/components/SubscriptionPaymentHistory.js +101 -1
  180. package/dist/schemas/subscription/components/SubscriptionPlanFeatures.js +115 -1
  181. package/dist/schemas/subscription/components/SubscriptionPlanPreview.js +92 -1
  182. package/dist/schemas/subscription/components/SubscriptionPlanStats.js +181 -1
  183. package/dist/schemas/subscription/components/SubscriptionStatusIndicator.js +70 -1
  184. package/dist/schemas/subscription/subscriptionPlanSchema.js +184 -1
  185. package/dist/schemas/subscription/subscriptionSchema.js +147 -1
  186. package/dist/schemas/subscriptionPlan.js +397 -1
  187. package/dist/schemas/tenant.js +122 -1
  188. package/dist/schemas/tenantUser.js +94 -1
  189. package/dist/schemas/tenant_superadmin.js +118 -1
  190. package/dist/schemas/user.js +26 -1
  191. package/dist/systemResources.js +1039 -1
  192. package/dist/systemResources.old.js +668 -1
  193. package/dist/templates/ResourceTemplate.js +196 -1
  194. package/dist/templates/ResourceTemplateCreate.js +144 -1
  195. package/dist/templates/ResourceTemplateEdit.js +147 -1
  196. package/dist/templates/ResourceTemplateFull.js +518 -1
  197. package/dist/templates/ResourceTemplateList.js +295 -1
  198. package/dist/templates/ResourceTemplateShow.js +45 -1
  199. package/dist/templates/TrashTemplate.js +175 -1
  200. package/dist/tenantResources.js +206 -1
  201. package/dist/test_portal_bubbles.js +37 -1
  202. package/dist/theme/AppHeader.js +60 -1
  203. package/dist/theme/AppLayoutSetting.js +34 -1
  204. package/dist/theme/AppLogo.js +7 -1
  205. package/dist/theme/AppSidebar.js +30 -1
  206. package/dist/theme/AppSidebarContent.js +84 -1
  207. package/dist/theme/AppSidebarLogo.js +42 -1
  208. package/dist/theme/components/PageTitle.js +61 -1
  209. package/dist/utils/cache/CacheInvalidatorContext.js +100 -1
  210. package/dist/utils/cache/CacheInvalidatorListenerComponent.js +10 -1
  211. package/dist/utils/cache/useCacheInvalidatorListener.js +17 -1
  212. package/dist/utils/convertFileToBase64.js +10 -1
  213. package/dist/utils/convertToFile.js +12 -1
  214. package/dist/utils/cookies.js +45 -1
  215. package/dist/utils/dashDefaultQueryClient.js +15 -1
  216. package/dist/utils/dataUrlToBlob.js +23 -1
  217. package/dist/utils/deepReplace.js +17 -1
  218. package/dist/utils/getProfileMenu.js +31 -1
  219. package/dist/utils/getTenantSettings.js +9 -1
  220. package/dist/utils/getType.js +10 -1
  221. package/dist/utils/getUserSettings.js +9 -1
  222. package/dist/utils/hasCode.js +14 -1
  223. package/dist/utils/index.js +19 -1
  224. package/dist/utils/injectTenantStyles.js +19 -1
  225. package/dist/utils/isComponent.js +23 -1
  226. package/dist/utils/navEvents.js +75 -1
  227. package/dist/utils/prototypes.js +5 -1
  228. package/dist/utils/regexp.js +7 -1
  229. package/dist/utils/resolveObjectPath.js +5 -1
  230. package/dist/utils/setNativeValue.js +17 -1
  231. package/dist/utils/slugify.js +7 -1
  232. package/dist/utils/validators/emailValidator.js +8 -1
  233. package/dist/utils/validators/requiredValidator.js +7 -1
  234. package/dist/utils/validators/rutValidator.js +25 -1
  235. package/dist/utils/validators.js +57 -1
  236. package/package.json +153 -69
  237. package/src/AppAsyncWrapper.tsx +42 -0
  238. package/src/AppWrapper.tsx +45 -0
  239. package/src/DASHAdmin.tsx +501 -0
  240. package/src/RoutingWrapper.tsx +139 -0
  241. package/src/classes/DASHStorageClass.tsx +8 -0
  242. package/src/components/Input/RichTextField.tsx +27 -0
  243. package/src/components/Redirect.tsx +46 -0
  244. package/src/components/avatar/Avatar.tsx +67 -0
  245. package/src/components/avatar/SingleImageUploader.tsx +53 -0
  246. package/src/components/currency/Format.tsx +77 -0
  247. package/src/components/custom/Redirect.tsx +23 -0
  248. package/src/components/error/Error.tsx +168 -0
  249. package/src/components/geocoding/GeocodingField.tsx +167 -0
  250. package/src/components/i18n/BridgedLocalesMenuButton.tsx +159 -0
  251. package/src/components/i18n/LangSwitcher.tsx +204 -0
  252. package/src/components/loader/GlobalLoader.tsx +56 -0
  253. package/src/components/logs/LogFile.tsx +88 -0
  254. package/src/components/logs/LogFileById.tsx +68 -0
  255. package/src/components/logs/LogViewer.tsx +43 -0
  256. package/src/components/menu/AppMenu.tsx +22 -0
  257. package/src/components/menu/CustomMenuItemLink.tsx +61 -0
  258. package/src/components/menu/DarkToggleMode.tsx +65 -0
  259. package/src/components/menu/LanguageToggleMode.tsx +120 -0
  260. package/src/components/misc/CustomImageInput.tsx +62 -0
  261. package/src/components/misc/DASHGlobalErrorHandler.tsx +194 -0
  262. package/src/components/misc/DarkModeSwitcher.tsx +112 -0
  263. package/src/components/misc/LanguageSwitcher.tsx +199 -0
  264. package/src/components/misc/MUIHtmlToolTip.tsx +15 -0
  265. package/src/components/misc/MuiSimpleJsonTable.tsx +279 -0
  266. package/src/components/misc/MultiLevelTable.tsx +229 -0
  267. package/src/components/misc/NoResults.tsx +25 -0
  268. package/src/components/misc/PDFViewer.tsx +85 -0
  269. package/src/components/navigation/Breadcrumbs.tsx +220 -0
  270. package/src/components/navigation/BreadcrumbsManager.tsx +310 -0
  271. package/src/components/navigation/index.tsx +5 -0
  272. package/src/components/panel/Error.tsx +168 -0
  273. package/src/components/permission/AvailablePermissionsContext.tsx +173 -0
  274. package/src/components/permission/PermissionsSelector.tsx +819 -0
  275. package/src/components/permission/PermissionsSelectorList.tsx +468 -0
  276. package/src/components/permission/tsx +0 -0
  277. package/src/components/racustombuttons/CustomRAButton.tsx +87 -0
  278. package/src/components/racustombuttons/QuickButton.tsx +117 -0
  279. package/src/components/racustombuttons/QuickEditButton.tsx +115 -0
  280. package/src/components/racustombuttons/QuickIconButton.tsx +122 -0
  281. package/src/components/scrollbar/Scrollbar.tsx +31 -0
  282. package/src/components/selects/MultiSelect.tsx +53 -0
  283. package/src/components/selects/RASearchableSelect.tsx +279 -0
  284. package/src/components/selects/RASearchableSelectChips.tsx +304 -0
  285. package/src/components/selects/SearchableSelect.tsx +135 -0
  286. package/src/components/subscription/BillingCycleSelectInput.tsx +68 -0
  287. package/src/components/subscription/PlanAddonsSettings.tsx +522 -0
  288. package/src/components/subscription/PlanAuditLog.tsx +439 -0
  289. package/src/components/subscription/PlanFeaturesSettings.tsx +223 -0
  290. package/src/components/subscription/PlanLimitsSettings.tsx +230 -0
  291. package/src/components/subscription/PlanMetadataSettings.tsx +284 -0
  292. package/src/components/subscription/PlanPricesSettings.tsx +295 -0
  293. package/src/components/subscription/index.ts +7 -0
  294. package/src/components/svgelements/SvgLoading.tsx +229 -0
  295. package/src/components/svgelements/SvgLogo.tsx +53 -0
  296. package/src/components/svgelements/SvgLogoMin.tsx +64 -0
  297. package/src/components/svgelements/SvgShipping.tsx +673 -0
  298. package/src/components/tenant/AvailablePermissionsContext.tsx +0 -0
  299. package/src/components/tenant/TenantAttributes.tsx +153 -0
  300. package/src/components/tenant/TenantAttributesContext.tsx +163 -0
  301. package/src/components/tenant/TenantSelector.tsx +139 -0
  302. package/src/components/tenant/TenantSettings.tsx +172 -0
  303. package/src/components/tenant/TenantSettingsContext.tsx +165 -0
  304. package/src/components/tenant/TenantTheme.tsx +172 -0
  305. package/src/components/user/AvatarComponent.tsx +301 -0
  306. package/src/components/user/TenantAvatarComponent.tsx +99 -0
  307. package/src/components/user/UserPreferences.tsx +642 -0
  308. package/src/config/ACTIONS.tsx +26 -0
  309. package/src/config/ConstantsService.tsx +44 -0
  310. package/src/config/DASHAdminSystemConstants.tsx +182 -0
  311. package/src/config/PARSERS.tsx +9 -0
  312. package/src/contexts/DashQueryClientContext.tsx +113 -0
  313. package/src/contexts/DashResourceContext.tsx +34 -0
  314. package/src/contexts/I18nBridgeContext.tsx +156 -0
  315. package/src/contexts/I18nBridgeSetter.tsx +39 -0
  316. package/src/contexts/I18nReduxSync.tsx +27 -0
  317. package/src/contexts/SubscriptionPlanFormatsProvider.tsx +217 -0
  318. package/src/contexts/SystemRequestsCache.tsx +215 -0
  319. package/src/contexts/auth/AuthContext.tsx +553 -0
  320. package/src/contexts/auth/AuthContextLocalStorage.tsx +140 -0
  321. package/src/contexts/auth/DASHAuthenticationService.tsx +917 -0
  322. package/src/contexts/auth/WindowContext.tsx +15 -0
  323. package/src/contexts/auth/index.tsx +3 -0
  324. package/src/contexts/com/FCMContext.tsx +415 -0
  325. package/src/contexts/com/LaravelEchoContext.tsx +41 -0
  326. package/src/contexts/com/LaravelEchoMgr.tsx +155 -0
  327. package/src/contexts/com/components/DefaultNotificationComponent.tsx +20 -0
  328. package/src/contexts/com/components/NotificationAttributesTable.tsx +54 -0
  329. package/src/contexts/com/components/NotificationRenderer.tsx +42 -0
  330. package/src/contexts/com/components/NotificationsWidget.tsx +182 -0
  331. package/src/contexts/com/components/notificationFormats.tsx +50 -0
  332. package/src/contexts/com/useLaravelEcho.tsx +432 -0
  333. package/src/contexts/dictionary/DictionaryContext.tsx +94 -0
  334. package/src/default-theme/DASHAppProviders.tsx +117 -0
  335. package/src/default-theme/DashThemeContext.tsx +218 -0
  336. package/src/default-theme/DashThemeHelperProvider.tsx +98 -0
  337. package/src/default-theme/DomainAppLayout.tsx +166 -0
  338. package/src/default-theme/DomainHeader.tsx +162 -0
  339. package/src/default-theme/DomainTheme.tsx +59 -0
  340. package/src/default-theme/FullLayoutMarkup.tsx +250 -0
  341. package/src/default-theme/StaticLayout.tsx +47 -0
  342. package/src/default-theme/index.tsx +11 -0
  343. package/src/default-theme/menu/AppMaterialMenu.tsx +545 -0
  344. package/src/default-theme/menu/AppMenuComponents/SubmenuPortal.tsx +56 -0
  345. package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.tsx +254 -0
  346. package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.tsx +31 -0
  347. package/src/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.tsx +276 -0
  348. package/src/default-theme/menu/AppMenuComponents/expanded/SidebarItem.tsx +91 -0
  349. package/src/default-theme/menu/AppMenuComponents/getItem.tsx +17 -0
  350. package/src/default-theme/menu/AppMenuComponents/interfaces.tsx +41 -0
  351. package/src/default-theme/menu/AppMenuComponents/submenuConstants.ts +85 -0
  352. package/src/default-theme/menu/AppSidebarMaterial.tsx +339 -0
  353. package/src/default-theme/menu/SidebarActions.tsx +84 -0
  354. package/src/default-theme/updateDomCssVariables.tsx +176 -0
  355. package/src/helpers/checkRole.tsx +66 -0
  356. package/src/helpers/parseAxiosError.tsx +41 -0
  357. package/src/hooks/audio/useAudio.tsx +39 -0
  358. package/src/hooks/axios.tsx +62 -0
  359. package/src/hooks/data/useDashboardStats.tsx +65 -0
  360. package/src/hooks/data/usePackageByClientsStats.tsx +44 -0
  361. package/src/hooks/data/usePackageByCommunesStats.tsx +44 -0
  362. package/src/hooks/data/usePackageStats.tsx +69 -0
  363. package/src/hooks/data/usePackageWithdrawDetails.tsx +61 -0
  364. package/src/hooks/data/useStats.tsx +86 -0
  365. package/src/hooks/isCurrentPath.tsx +22 -0
  366. package/src/hooks/notifications/WSMessagesManager.tsx +152 -0
  367. package/src/hooks/notifications/WSPusherManager.tsx +92 -0
  368. package/src/hooks/useBreadcrumbs.tsx +329 -0
  369. package/src/hooks/useClickOutside.tsx +17 -0
  370. package/src/hooks/useFormPersistance.tsx +150 -0
  371. package/src/hooks/useGlobalErrorMediator.tsx +43 -0
  372. package/src/hooks/useGlobalLoaderMgr.tsx +21 -0
  373. package/src/hooks/useHash.tsx +27 -0
  374. package/src/hooks/useLocalStorage.tsx +196 -0
  375. package/src/hooks/usePolyglotTranslation.tsx +62 -0
  376. package/src/hooks/usePrevious.tsx +9 -0
  377. package/src/hooks/usePrintSelected.tsx +37 -0
  378. package/src/hooks/useVirtualHash.tsx +33 -0
  379. package/src/hooks/window/useWindowSize.tsx +36 -0
  380. package/src/index.tsx +110 -0
  381. package/src/interfaces/IAppResourceConfig.tsx +20 -0
  382. package/src/interfaces/Log.tsx +16 -0
  383. package/src/interfaces/Tenant.tsx +25 -0
  384. package/src/interfaces/communication/IActions.tsx +5 -0
  385. package/src/interfaces/communication/INotification.tsx +21 -0
  386. package/src/interfaces/communication/IPayload.tsx +3 -0
  387. package/src/interfaces/communication/IRequestAction.tsx +10 -0
  388. package/src/interfaces/communication/IRequestPayload.tsx +7 -0
  389. package/src/interfaces/communication/IResponseAction.tsx +7 -0
  390. package/src/interfaces/misc/IAny.tsx +3 -0
  391. package/src/interfaces/misc/IFlashMessage.tsx +10 -0
  392. package/src/interfaces/navigation/IAppMenu.ts +14 -0
  393. package/src/interfaces/navigation/ICollapsableSidebarMenu.ts +12 -0
  394. package/src/interfaces/navigation/IMenuItem.ts +16 -0
  395. package/src/interfaces/notifications/IModel.tsx +6 -0
  396. package/src/interfaces/notifications/IModelField.tsx +8 -0
  397. package/src/interfaces/notifications/IUserNotification.tsx +12 -0
  398. package/src/interfaces/notifications/IUserNotificationData.tsx +13 -0
  399. package/src/interfaces/notifications/IUserNotificationPayload.tsx +8 -0
  400. package/src/interfaces/user/IGetAuth.tsx +92 -0
  401. package/src/interfaces/user/ITenantSettings.tsx +3 -0
  402. package/src/interfaces/user/IUser.tsx +60 -0
  403. package/src/interfaces/user/IUserSettings.tsx +43 -0
  404. package/src/interfaces.tsx +6 -0
  405. package/src/layout/AppLayout.tsx +112 -0
  406. package/src/layout/ApplicationLayout.tsx +197 -0
  407. package/src/layout/MotionWrapper.original.tsx +236 -0
  408. package/src/layout/MotionWrapper.tsx +236 -0
  409. package/src/layout/ResourceMenu.tsx +164 -0
  410. package/src/layout/ResoureLayout.tsx +105 -0
  411. package/src/layout/TransitionWrapper.tsx +125 -0
  412. package/src/pages/ChangePassword.tsx +179 -0
  413. package/src/pages/DASHLanding.tsx +22 -0
  414. package/src/pages/DASHLightWeightLogin.tsx +610 -0
  415. package/src/pages/DASHSimpleLogin.tsx +260 -0
  416. package/src/pages/Login.tsx +111 -0
  417. package/src/pages/Profile.tsx +394 -0
  418. package/src/pages/RecoverPassword.tsx +166 -0
  419. package/src/pages/SingleImageUploader.tsx +55 -0
  420. package/src/pages/VerifyAccount.tsx +128 -0
  421. package/src/providers/authProvider.tsx +210 -0
  422. package/src/providers/dataProvider.tsx +672 -0
  423. package/src/providers/i18n/en.ts +533 -0
  424. package/src/providers/i18n/es.ts +539 -0
  425. package/src/providers/i18n/languages.tsx +5 -0
  426. package/src/providers/i18nProvider.tsx +23 -0
  427. package/src/react-admin-dash/RADashComponent.tsx +240 -0
  428. package/src/react-admin-dash/Resource.tsx +77 -0
  429. package/src/resources/Brand/BrandResource.tsx +130 -0
  430. package/src/resources/DASHResourceLoader.ts +180 -0
  431. package/src/resources/Log/LogResource.tsx +73 -0
  432. package/src/resources/Tenant/ImpersonateTenantResource.tsx +113 -0
  433. package/src/resources/Trash/TrashTemplate.tsx +180 -0
  434. package/src/resources.tsx +280 -0
  435. package/src/schemas/log.tsx +45 -0
  436. package/src/schemas/notification.tsx +42 -0
  437. package/src/schemas/permissions.tsx +44 -0
  438. package/src/schemas/roles.tsx +48 -0
  439. package/src/schemas/rolesDataGrid.tsx +48 -0
  440. package/src/schemas/subscription/components/SubscriptionActions.tsx +153 -0
  441. package/src/schemas/subscription/components/SubscriptionPaymentHistory.tsx +120 -0
  442. package/src/schemas/subscription/components/SubscriptionPlanFeatures.tsx +155 -0
  443. package/src/schemas/subscription/components/SubscriptionPlanPreview.tsx +128 -0
  444. package/src/schemas/subscription/components/SubscriptionPlanStats.tsx +268 -0
  445. package/src/schemas/subscription/components/SubscriptionStatusIndicator.tsx +72 -0
  446. package/src/schemas/subscription/subscriptionPlanSchema.tsx +185 -0
  447. package/src/schemas/subscription/subscriptionSchema.tsx +152 -0
  448. package/src/schemas/subscriptionPlan.ts +422 -0
  449. package/src/schemas/tenant.tsx +129 -0
  450. package/src/schemas/tenantUser.tsx +96 -0
  451. package/src/schemas/tenant_superadmin.tsx +119 -0
  452. package/src/schemas/user.tsx +26 -0
  453. package/src/systemResources.old.tsx +928 -0
  454. package/src/systemResources.tsx +1135 -0
  455. package/src/templates/ResourceTemplate.tsx +240 -0
  456. package/src/templates/ResourceTemplateCreate.tsx +167 -0
  457. package/src/templates/ResourceTemplateEdit.tsx +176 -0
  458. package/src/templates/ResourceTemplateFull.tsx +581 -0
  459. package/src/templates/ResourceTemplateList.tsx +340 -0
  460. package/src/templates/ResourceTemplateShow.tsx +88 -0
  461. package/src/templates/TrashTemplate.tsx +179 -0
  462. package/src/tenantResources.tsx +223 -0
  463. package/src/test_portal_bubbles.tsx +40 -0
  464. package/src/theme/AppHeader.tsx +52 -0
  465. package/src/theme/AppLayoutSetting.tsx +33 -0
  466. package/src/theme/AppLogo.tsx +13 -0
  467. package/src/theme/AppSidebar.tsx +12 -0
  468. package/src/theme/AppSidebarContent.tsx +105 -0
  469. package/src/theme/AppSidebarLogo.tsx +48 -0
  470. package/src/theme/components/PageTitle.tsx +37 -0
  471. package/src/utils/cache/CacheInvalidatorContext.tsx +125 -0
  472. package/src/utils/cache/CacheInvalidatorListenerComponent.tsx +10 -0
  473. package/src/utils/cache/useCacheInvalidatorListener.tsx +27 -0
  474. package/src/utils/convertFileToBase64.tsx +9 -0
  475. package/src/utils/convertToFile.tsx +14 -0
  476. package/src/utils/cookies.tsx +33 -0
  477. package/src/utils/dashDefaultQueryClient.tsx +34 -0
  478. package/src/utils/dataUrlToBlob.tsx +30 -0
  479. package/src/utils/deepReplace.tsx +19 -0
  480. package/src/utils/getProfileMenu.tsx +41 -0
  481. package/src/utils/getTenantSettings.tsx +9 -0
  482. package/src/utils/getType.tsx +8 -0
  483. package/src/utils/getUserSettings.tsx +8 -0
  484. package/src/utils/hasCode.tsx +14 -0
  485. package/src/utils/index.ts +19 -0
  486. package/src/utils/injectTenantStyles.ts +28 -0
  487. package/src/utils/isComponent.tsx +45 -0
  488. package/src/utils/navEvents.tsx +91 -0
  489. package/src/utils/prototypes.tsx +5 -0
  490. package/src/utils/regexp.tsx +4 -0
  491. package/src/utils/resolveObjectPath.tsx +4 -0
  492. package/src/utils/setNativeValue.tsx +24 -0
  493. package/src/utils/slugify.tsx +11 -0
  494. package/src/utils/validators/emailValidator.tsx +6 -0
  495. package/src/utils/validators/requiredValidator.tsx +5 -0
  496. package/src/utils/validators/rutValidator.tsx +31 -0
  497. package/src/utils/validators.tsx +96 -0
  498. package/dist/ChangePassword-DmWAQAX_.js +0 -152
  499. package/dist/Login-t41HMhVT.js +0 -101
  500. package/dist/Profile-By-gdPUd.js +0 -294
  501. package/dist/RecoverPassword-DzPdbkg2.js +0 -149
  502. package/dist/VerifyAccount-Bofaxe5w.js +0 -99
  503. package/dist/index-gfebuoyf.js +0 -21614
  504. /package/dist/{components/permission/tsx → declarations.d.js} +0 -0
  505. /package/{dist → src}/DASHAdmin.tsx.old +0 -0
  506. /package/{dist → src}/declarations.d.ts +0 -0
  507. /package/{dist → src}/default-theme/DashThemeContext.tsx.fast +0 -0
  508. /package/{dist → src}/default-theme/DashThemeContext.tsx.old +0 -0
  509. /package/{dist → src}/templates/ResourceTemplate.tsx.memoized_experiment +0 -0
  510. /package/{dist → src}/templates/ResourceTemplate.tsx.original +0 -0
  511. /package/{dist → src}/templates/ResourceTemplateOld.tsx.bkup +0 -0
@@ -0,0 +1,928 @@
1
+
2
+ import { SelectInput } from 'react-admin';
3
+ //import { SelectArrayInput } from 'react-admin';
4
+ import ResourceTemplate from './templates/ResourceTemplate';
5
+ import IAppResourceConfig from './interfaces/IAppResourceConfig';
6
+ //import permissionSchema from './schemas/permissions';
7
+ //import roleSchema from './schemas/roles';
8
+ import { TenantImpersonateResource } from './resources/Tenant/ImpersonateTenantResource';
9
+ import tenantSystemAdminSchema from './schemas/tenant_superadmin';
10
+ import { RutValidator } from './utils/validators';
11
+ import { DASHAppConstants } from 'dash-constants';
12
+ import Avatar from './components/avatar/Avatar';
13
+
14
+ // Replace the current imports with these optimized direct imports
15
+ //import Https from '@mui/icons-material/Https';
16
+ import SystemUpdateAlt from '@mui/icons-material/SystemUpdateAlt';
17
+ import Person from '@mui/icons-material/Person';
18
+ import { lazy } from 'react';
19
+ //import subscriptionPlanSchema from './schemas/subscription/subscriptionPlanSchema';
20
+ //import subscriptionSchema from './schemas/subscription/subscriptionSchema';
21
+ //import TenantSettingsFormatsProvider from './components/tenant/TenantSettingsContext';
22
+ //import { AvailablePermissionsContext } from './components/permission/AvailablePermissionsContext';
23
+ import SystemRequestsCache from './contexts/SystemRequestsCache';
24
+ //import RolePermissionBulkManager from './components/permission/RolePermissionBulkManager';
25
+ //import rolePermissionBulkSchema from './schemas/rolePermissionBulk';
26
+ import roleSchemaDataGrid from './schemas/rolesDataGrid';
27
+
28
+ const TableContainer = lazy(() => import('@mui/material/TableContainer'));
29
+
30
+ // Icons from commented code (include these if you plan to uncomment that code)
31
+
32
+ /**
33
+ * Configures the system resources for the DASH Admin application.
34
+ * This includes resources such as permissions, roles, users, and tenant impersonation.
35
+ * The configuration is defined as an array of `IAppResourceConfig` objects, which specify
36
+ * the details of each resource, including its component, model, label, schema, icon, and menu.
37
+ * The configuration also includes settings for the data grid, such as sticky headers and maximum height.
38
+ */
39
+
40
+ const drawerSettings = {
41
+ drawer: true,
42
+ drawerOptions: {
43
+ view: true,
44
+ edit: false,
45
+ create: false,
46
+ },
47
+ listViewButton: { props: { buttonProps: { variant: 'text', size: 'small' }, label: '' } },
48
+ listEditButton: { props: { buttonProps: { variant: 'text', size: 'small' }, label: '' } },
49
+ listDeleteButton: { confirm: true, props: { buttonProps: { variant: 'text', size: 'small' }, label: '' } },
50
+ };
51
+
52
+ const systemResources: IAppResourceConfig[] = [
53
+ {
54
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
55
+ component: ResourceTemplate,
56
+ customRoutes: (resourceConfig) => TenantImpersonateResource(resourceConfig),
57
+ contextComponent: ({ resourceConfig, mode, children }) => {
58
+ console.log("TenantFormatsProvider", resourceConfig, mode);
59
+ return mode === "list" ? children : (
60
+ <SystemRequestsCache
61
+ cacheKey="tenant_formats_cache"
62
+ apiUrl="system/tenant/systemSettingFormats"
63
+ cacheSeconds={300}
64
+ >
65
+ {children}
66
+ </SystemRequestsCache>
67
+ )
68
+ },
69
+ model: 'system/tenant',
70
+ label: 'resource.system.tenants.label',
71
+
72
+ schema: tenantSystemAdminSchema,
73
+ //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
74
+ //references: [{ reference: 'roles', target: 'gitid', schema: roleSchema }],
75
+ icon: <Person />,
76
+ group: 'resource.groups.system_resources',
77
+ menu: [{
78
+ title: 'resource.system.tenants.menu_list',
79
+ redirect: '/system/tenant',
80
+ },
81
+
82
+ {
83
+ title: "🗑",
84
+ redirect: "/system/tenant/trash",
85
+ },
86
+ {
87
+ title: 'Impersonar',
88
+ redirect: '/system/tenant/impersonate',
89
+ },
90
+
91
+ ],
92
+ //create: true,
93
+ refreshAfter: true,
94
+ toolbarCreateButton: { enabled: true },
95
+
96
+ referenceFilters: [
97
+ {
98
+ id: "Nombre",
99
+ label: "resource.system.tenants.filter_name",
100
+ source: "name", // id field
101
+ reference: null,
102
+ optionText: null,
103
+ alwaysOn: true,
104
+ },
105
+ ],
106
+
107
+ mainAction: {
108
+ title: 'resource.system.tenants.main_action',
109
+ fn: "redirect",
110
+ // type: "ghost",
111
+ mode: "create",
112
+ redirect: "create",
113
+ },
114
+
115
+ search: false,
116
+ exporter: false,
117
+ postFormatter: (params) => {
118
+
119
+
120
+ if (params.systemMarketplaces) {
121
+ params.system_marketplace_ids = params.systemMarketplaces.map((item) => item.id);
122
+ }
123
+
124
+ return params;
125
+ },
126
+ redirectAfterUpdate: false,
127
+
128
+ mutationMode: 'pessimistic',
129
+ editProps: {
130
+ queryOptions: { meta: { forceFetch: true } },
131
+ undoable: false,
132
+ emptyWhileLoading: true
133
+ },
134
+ dataGridProps: { stickyHeader: true, rowClick:false },
135
+ dataGridWrapper: (props: any) => <TableContainer sx={{ maxHeight: 800 }} >{props.children}</TableContainer>,
136
+ //listEditButton: { enabled: true },
137
+
138
+ ...drawerSettings,
139
+ redirectAfterCreate: true,
140
+
141
+ //toolbarCreateButton: { enabled: true },
142
+ //listEditButton: { enabled: true, component: QuickEditButton, props: { icon: <Bolt />, label: "", resource: "tenant/inline", navigation:"virtualhash", navigate: (id) => id, size: "small", color: "secondary" }},
143
+
144
+
145
+ },
146
+ /*{
147
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
148
+ component: ResourceTemplate,
149
+ model: 'system/permissions',
150
+ label: 'Permisos',
151
+ schema: permissionSchema,
152
+ icon: <Https />,
153
+ group: 'Recursos de sistema',
154
+
155
+ menu: [
156
+ {
157
+ title: 'Permisos',
158
+ redirect: '/system/permissions',
159
+ },
160
+ ],
161
+ //mainAction: {
162
+ // title: 'Crear permiso',
163
+ // // type: "ghost",
164
+ // redirect: '/system/permission/create',
165
+ //},
166
+ search: true,
167
+ mutationMode: 'pessimistic',
168
+ dataGridProps: { stickyHeader: true },
169
+ dataGridWrapper: (props: any) => (
170
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
171
+ ),
172
+ postFormatter: (params, _) => {
173
+ return params;
174
+ },
175
+ ...drawerSettings,
176
+ edit: false,
177
+ listEditButton: { enabled: false },
178
+ delete: false,
179
+ listDeleteButton: { enabled: false },
180
+ },*/
181
+
182
+ /* Old permission selector experiment */
183
+ /* {
184
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
185
+ component: ResourceTemplate,
186
+ model: 'system/role',
187
+ label: 'roles',
188
+ icon: <SystemUpdateAlt />,
189
+ group: 'Recursos de sistema',
190
+ menu: [
191
+ {
192
+ title: 'Roles',
193
+ redirect: '/system/role',
194
+ },
195
+ ],
196
+
197
+ contextComponent: ({ resourceConfig, mode, children }) => {
198
+ console.log("TenantSettingsFormatsProvider", resourceConfig, mode);
199
+
200
+ return mode === "list" ? children : <SystemRequestsCache
201
+ cacheKey="system_available_permissions_cache"
202
+ apiUrl="system/permission/availablePermissions"
203
+ cacheSeconds={300}
204
+ >{children}</SystemRequestsCache>
205
+ },
206
+
207
+ referenceFilters: [
208
+ {
209
+ id: "Nombre",
210
+ label: "Nombre", // filter label'
211
+ source: "name", // id field
212
+ reference: null,
213
+ optionText: null,
214
+ alwaysOn: true,
215
+ },
216
+ ],
217
+ toolbarCreateButton: { enabled: true },
218
+
219
+ mainAction: {
220
+ title: 'Agregar Rol',
221
+ fn: "redirect",
222
+ // type: "ghost",
223
+ mode: "create",
224
+ redirect: "create",
225
+ },
226
+
227
+ view: false,
228
+ schema: roleSchema,
229
+
230
+
231
+
232
+ dataGridProps: { stickyHeader: true },
233
+ listEditButton: { enabled: true },
234
+ listViewButton: { enabled: false },
235
+
236
+ toolbarDeleteButton: { enabled: false },
237
+ toolbarListButton: { enabled: false },
238
+ toolbarSaveButton: { enabled: true },
239
+ toolbarExportButton: { enabled: false },
240
+ toolbarEditButton: { enabled: false },
241
+
242
+
243
+ formGroupMode: 'groups',
244
+
245
+ mutationMode: 'pessimistic',
246
+ editProps: {
247
+ queryOptions: { meta: { forceFetch: true } },
248
+ undoable: false,
249
+ emptyWhileLoading: true
250
+ },
251
+
252
+ saveButtonAlwaysEnabled: true,
253
+ refreshAfter: true,
254
+ //redirect: "list",
255
+ //redirectAfterCreate: true,
256
+ //redirectAfterUpdate: true,
257
+
258
+ dataGridWrapper: (props: any) => (
259
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
260
+ ),
261
+ // references: [
262
+ // { reference: 'permission', tab: 'Permisos', target: 'role_id', schema: permissionSchema, type: "ReferenceManyField" },
263
+ // ],
264
+ // postFormatter: (params, _) => {
265
+ // //if(method === "update") {
266
+ // // params._method = "PUT";
267
+ // //}
268
+ // delete params.permissions
269
+ // return params
270
+ // },
271
+ ...drawerSettings,
272
+ },
273
+ */
274
+
275
+
276
+
277
+ {
278
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
279
+ component: ResourceTemplate,
280
+ model: 'system/role-permissions-bulk',
281
+ label: 'resource.system.roles.label',
282
+ icon: <SystemUpdateAlt />,
283
+ group: 'resource.groups.system_resources',
284
+ menu: [
285
+ {
286
+ title: 'resource.system.roles.menu_list',
287
+ redirect: '/system/role-permissions-bulk',
288
+ },
289
+ ],
290
+
291
+ contextComponent: ({ resourceConfig, mode, children }) => {
292
+ console.log("TenantSettingsFormatsProvider", resourceConfig, mode);
293
+
294
+ return mode === "list" ? children : <SystemRequestsCache
295
+ cacheKey="system_available_permissions_cache"
296
+ apiUrl="system/permission/availablePermissions"
297
+ cacheSeconds={300}
298
+ >{children}</SystemRequestsCache>
299
+ },
300
+
301
+ referenceFilters: [
302
+ {
303
+ id: "Nombre",
304
+ label: "resource.system.roles.filter_name",
305
+ source: "name", // id field
306
+ reference: null,
307
+ optionText: null,
308
+ alwaysOn: true,
309
+ },
310
+ ],
311
+ toolbarCreateButton: { enabled: true },
312
+
313
+ mainAction: {
314
+ title: 'resource.system.roles.main_action',
315
+ fn: "redirect",
316
+ // type: "ghost",
317
+ mode: "create",
318
+ redirect: "create",
319
+ },
320
+
321
+ view: false,
322
+ schema: roleSchemaDataGrid,
323
+
324
+
325
+
326
+ dataGridProps: { stickyHeader: true },
327
+ listEditButton: { enabled: true },
328
+ listViewButton: { enabled: false },
329
+
330
+ toolbarDeleteButton: { enabled: false },
331
+ toolbarListButton: { enabled: false },
332
+ toolbarSaveButton: { enabled: true },
333
+ toolbarExportButton: { enabled: false },
334
+ toolbarEditButton: { enabled: false },
335
+
336
+
337
+ formGroupMode: 'groups',
338
+
339
+ mutationMode: 'pessimistic',
340
+ editProps: {
341
+ queryOptions: { meta: { forceFetch: true } },
342
+ undoable: false,
343
+ emptyWhileLoading: true
344
+ },
345
+
346
+ saveButtonAlwaysEnabled: true,
347
+ refreshAfter: true,
348
+ //redirect: "list",
349
+ //redirectAfterCreate: true,
350
+ //redirectAfterUpdate: true,
351
+
352
+ dataGridWrapper: (props: any) => (
353
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
354
+ ),
355
+ /* references: [
356
+ { reference: 'permission', tab: 'Permisos', target: 'role_id', schema: permissionSchema, type: "ReferenceManyField" },
357
+ ],*/
358
+ postFormatter: (params, _) => {
359
+ /*if(method === "update") {
360
+ params._method = "PUT";
361
+ }*/
362
+ delete params.permissions
363
+ return params
364
+ },
365
+ ...drawerSettings,
366
+ },
367
+
368
+
369
+
370
+
371
+ /*
372
+ {
373
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
374
+ component: ResourceTemplate,
375
+ model: 'system/subscription-plan',
376
+ label: 'planes',
377
+ icon: <SystemUpdateAlt />,
378
+ group: 'Recursos de sistema',
379
+ menu: [
380
+ {
381
+ title: 'Planes',
382
+ redirect: '/system/subscription-plan',
383
+ },
384
+ ],
385
+ mainAction: {
386
+ title: 'Agregar',
387
+ // type: "ghost",
388
+ redirect: '/system/subscription-plan/create',
389
+ },
390
+ schema: subscriptionPlanSchema,
391
+ mutationMode: 'pessimistic',
392
+ redirectAfterUpdate: false,
393
+
394
+ dataGridProps: { stickyHeader: true },
395
+ listEditButton: { enabled: true },
396
+ toolbarCreateButton: { enabled: false },
397
+ toolbarDeleteButton: { enabled: false },
398
+ toolbarListButton: { enabled: false },
399
+ toolbarSaveButton: { enabled: true },
400
+ toolbarExportButton: { enabled: false },
401
+ toolbarEditButton: { enabled: false },
402
+
403
+ formGroupMode: 'groups',
404
+
405
+ dataGridWrapper: (props: any) => (
406
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
407
+ ),
408
+
409
+ postFormatter: (params, _) => {
410
+
411
+ return params
412
+ },
413
+ ...drawerSettings,
414
+ },
415
+
416
+
417
+ {
418
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
419
+ component: ResourceTemplate,
420
+ model: 'system/subscription',
421
+ label: 'suscripciones',
422
+ icon: <SystemUpdateAlt />,
423
+ group: 'Recursos de sistema',
424
+ menu: [
425
+ {
426
+ title: 'Subscripciones',
427
+ redirect: '/system/subscription',
428
+ },
429
+ ],
430
+ mainAction: {
431
+ title: 'Agregar',
432
+ // type: "ghost",
433
+ redirect: '/system/subscription-plan/create',
434
+ },
435
+ schema: subscriptionSchema,
436
+ mutationMode: 'pessimistic',
437
+ redirectAfterUpdate: false,
438
+
439
+ dataGridProps: { stickyHeader: true },
440
+ listEditButton: { enabled: true },
441
+ listViewButton: { enabled: false },
442
+ toolbarCreateButton: { enabled: false },
443
+ toolbarDeleteButton: { enabled: false },
444
+ toolbarListButton: { enabled: false },
445
+ toolbarSaveButton: { enabled: true },
446
+ toolbarExportButton: { enabled: false },
447
+ toolbarEditButton: { enabled: false },
448
+
449
+ formGroupMode: 'groups',
450
+
451
+ dataGridWrapper: (props: any) => (
452
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
453
+ ),
454
+
455
+ postFormatter: (params, _) => {
456
+
457
+ return params
458
+ },
459
+ ...drawerSettings,
460
+ },
461
+ */
462
+ {
463
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
464
+ component: ResourceTemplate,
465
+ trash: true,
466
+ isFormData: true,
467
+ model: 'system/user',
468
+ group: 'resource.groups.system_resources',
469
+ label: 'resource.system.users.label',
470
+ refreshAfter: true,
471
+ referenceFilters: [
472
+ // TODO: Cuando se cambia el cliente se debn mostrar sólo los CP de este filtro
473
+ {
474
+ id: 'search',
475
+ label: 'resource.system.users.filter_search',
476
+ source: 'q',
477
+ reference: null,
478
+ optionText: '', // field from the model
479
+ alwaysOn: true,
480
+ },
481
+ ],
482
+ schema: [
483
+ {
484
+ tab: 'Datos Usuario',
485
+ attribute: 'avatar',
486
+ listAttribute: 'image_path',
487
+ label: 'Imágen Usuario',
488
+ type: String,
489
+ sortable: true,
490
+ inEdit: true,
491
+ inCreate: true,
492
+ inShow: true,
493
+ inList: false,
494
+ custom: true,
495
+ component: Avatar,
496
+ processor: 'File',
497
+ },
498
+ {
499
+ label: 'Nombre',
500
+ attribute: 'name',
501
+ type: String,
502
+ tab: 'Datos Usuario',
503
+ //validate: (name: string) => (name && name.length >= 3 ? undefined : <div>Name is too short</div>)
504
+ },
505
+ {
506
+ label: "Apellido",
507
+ attribute: "lastname",
508
+ type: String,
509
+ tab: "Datos Usuario",
510
+ //validate: (name: string) => (name && name.length >= 3 ? undefined : <div>Name is too short</div>)
511
+ },
512
+ {
513
+ tab: 'Datos Usuario',
514
+ attribute: 'public_id',
515
+ label: 'Rut',
516
+ type: String,
517
+ fieldProps: { required: true/*, validate: [required()],*/, showDiv: true },
518
+ slotProps: { input: { fullWidth: true, autoComplete: "off" } },
519
+ sortable: true,
520
+ inEdit: true,
521
+ inCreate: true,
522
+ inShow: true,
523
+ inList: false,
524
+ validate: (value) => {
525
+
526
+ if (!value) throw Error('El campo es requerido');
527
+
528
+ if (!RutValidator(value)) {
529
+ throw Error('El Rut es inválido');
530
+ }
531
+ }
532
+ },
533
+ {
534
+ label: 'Email',
535
+ attribute: 'email',
536
+ type: String,
537
+ tab: 'Datos Usuario',
538
+ slotProps: { input: { fullWidth: true, "data-testid": "email-input" } },
539
+ //validate: (email: string) => (email && email.indexOf('@') > 0 ? undefined : 'Invalid email')
540
+ },
541
+ {
542
+ label: 'Contraseña',
543
+ attribute: 'password',
544
+ type: String,
545
+ isPassword: true,
546
+ slotProps: { input: { fullWidth: true, autoComplete: "new-password" } },
547
+ inList: false,
548
+ tab: 'Contraseña',
549
+ validate: (password: string) => {
550
+ if (password && password.length < 6 && password.length > 1) {
551
+ throw Error('Min 6 caracteres');
552
+ }
553
+ },
554
+ },
555
+ {
556
+ label: 'Confirmar Contraseña',
557
+ attribute: 'password_confirmation',
558
+ type: String,
559
+ isPassword: true,
560
+ slotProps: { input: { fullWidth: true, autoComplete: "new-password" } },
561
+ inList: false,
562
+ tab: 'Contraseña',
563
+ validate: (password: string, values: any) => {
564
+
565
+ if (values.password !== "" && (values.password !== password)) {
566
+ throw Error('Contraseñas no coinciden.');
567
+ }
568
+ },
569
+ },
570
+ {
571
+ // @TODO Solo mostrar cuando se está creando:
572
+ label: 'Genear Contraseña Aleatorea Automáticamente',
573
+ attribute: 'generate_password',
574
+ type: Boolean,
575
+ inList: false,
576
+ tab: 'Contraseña',
577
+ },
578
+ {
579
+ tab: 'Datos Usuario',
580
+ label: 'Roles',
581
+ attribute: 'roles',
582
+ listAttribute: 'role_ids',
583
+ type: 'system/role.name',
584
+ //type: Object,
585
+ // TODO Agregar un filtro, solo para traer los roles de cliente.
586
+ //pagination: false,
587
+ multiple: true,
588
+ inList: false,
589
+ inShow: false,
590
+ //custom: true,
591
+ //componentProps:{ options: {fullwidth: true} },
592
+ //component: SelectArrayInput,
593
+ //searchField: "subdomain"
594
+ },
595
+ {
596
+ tab: 'Datos Usuario',
597
+ label: 'Roles',
598
+ attribute: 'roles',
599
+ listAttribute: 'role_ids',
600
+ type: 'system/role.name',
601
+ //type: Object,
602
+ // TODO Agregar un filtro, solo para traer los roles de cliente.
603
+ //pagination: false,
604
+ multiple: true,
605
+ inEdit: false,
606
+ inCreate: false,
607
+
608
+ //custom: true,
609
+ //componentProps:{ options: {fullwidth: true} },
610
+ //component: ReferenceArrayField,
611
+ //searchField: "subdomain"
612
+ },
613
+ {
614
+ tab: 'Datos Usuario',
615
+ label: 'Cliente',
616
+ attribute: 'tenant_id',
617
+ //listAttribute: 'name',
618
+ type: 'system/tenant.name',
619
+ //type: Object,
620
+ // TODO Agregar un filtro, solo para traer los roles de cliente.
621
+ pagination: false,
622
+ multiple: false,
623
+ //custom: true,
624
+ //componentProps: {multiple:false},
625
+ //componentProps: { options: {fullwidth: true} },
626
+ component: SelectInput,
627
+ fieldProps: {
628
+ allowEmpty: true, // Allow empty selection
629
+ emptyText: 'Sin cliente', // Text for empty option
630
+ },
631
+ componentProps: {
632
+ parse: (value: any) => {
633
+ console.log('Parsing tenant_id value:', value); // Debug log
634
+ // Convert empty string or falsy values to null
635
+ if (value === '' || value === undefined || value === 'null') {
636
+ console.log('Converting to null');
637
+ return null;
638
+ }
639
+ // Convert string numbers to actual numbers
640
+ if (typeof value === 'string' && !isNaN(Number(value))) {
641
+ const numValue = Number(value);
642
+ console.log('Converting to number:', numValue);
643
+ return numValue;
644
+ }
645
+ console.log('Returning original value:', value);
646
+ return value;
647
+ },
648
+ format: (value: any) => {
649
+ console.log('Formatting tenant_id value:', value); // Debug log
650
+ // Format null/undefined as empty string for display
651
+ if (value === null || value === undefined) {
652
+ return '';
653
+ }
654
+ return value;
655
+ }
656
+ },
657
+ processor: 'Null',
658
+
659
+ },
660
+ {
661
+ attribute: 'active',
662
+ type: Boolean,
663
+ inList: true,
664
+ label: 'Activo',
665
+ tab: 'Datos Usuario',
666
+ processor: 'Boolean',
667
+ },
668
+ /*{
669
+ attribute: 'avatar',
670
+ listAttribute: 'system/userclients.avatar',
671
+ type: ImageInput, // TODO: el componente no muestra la imágen
672
+ inList: false,
673
+ label: 'Imágen',
674
+ tab: 'Datos Usuario',
675
+ processor: 'RawFile',
676
+ //validate: (password: string) => (password && password.length >= 6 ? undefined : <div>Password is too short</div>)
677
+ },*/
678
+ ],
679
+ //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
680
+ //references: [{ reference: 'roles', target: 'id', schema: roleSchema }],
681
+ icon: <Person />,
682
+ redirectAfterUpdate: false,
683
+ showDialogAfterSubmit: true,
684
+ showNotifyAfterSubmit: true,
685
+ menu: [
686
+ {
687
+ title: 'resource.system.users.menu_list',
688
+ redirect: '/system/user',
689
+ },
690
+ {
691
+ title: "🗑",
692
+ redirect: "/system/user/trash",
693
+ }
694
+ ],
695
+ //{
696
+ // title: "🗑",
697
+ // redirect: "/trash/admin/user",
698
+ //}],
699
+ mainAction: {
700
+ title: 'resource.system.users.main_action',
701
+ // type: "ghost",
702
+ redirect: '/system/user/create',
703
+ },
704
+ mutationMode: 'pessimistic',
705
+ // isFormData: true,
706
+ dataGridProps: { stickyHeader: true },
707
+ dataGridWrapper: (props: any) => (
708
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
709
+ ),
710
+ formPostFormatter: (params, form) => {
711
+ return form;
712
+ },
713
+ /*postFormatter: (params, method) => {
714
+
715
+ if (method === 'update') {
716
+ params._method = 'PUT';
717
+ }
718
+ params.role_id = params.role_ids ? params.role_ids[0] : null;
719
+
720
+ // Handle tenant_id properly - ensure it's null when not selected
721
+ if (params.tenant_id === '' || params.tenant_id === undefined || params.tenant_id === 'null') {
722
+ params.tenant_id = null;
723
+ } else if (params.tenant_id && typeof params.tenant_id === 'string') {
724
+ // Convert string to number if it's a valid number
725
+ const numValue = Number(params.tenant_id);
726
+ if (!isNaN(numValue)) {
727
+ params.tenant_id = numValue;
728
+ }
729
+ }
730
+
731
+ console.log('Processed params:', params); // Debug log
732
+
733
+ return params;
734
+ },*/
735
+ ...drawerSettings,
736
+ },
737
+
738
+ ];
739
+
740
+
741
+ /*
742
+ if (JSON.parse(constants.system.ENABLE_TENANT_IMPERSONATION)) {
743
+ systemResources.unshift({
744
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
745
+ component: ImpersonateTenantResource,
746
+ model: 'system/settings',
747
+ group: 'Administración',
748
+ label: 'Impersonar cliente',
749
+ schema: [],
750
+ icon: <AdminPanelSettings />,
751
+ menu: [],
752
+ mainAction: null,
753
+ });
754
+ }
755
+
756
+ if (JSON.parse(constants.system.ENABLE_TENANT_IMPERSONATION)) {
757
+ systemResources.unshift({
758
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
759
+ component: ResourceTemplate,
760
+ trash: true,
761
+ model: 'system/tenant',
762
+ label: 'Cliente',
763
+ schema: tenantSystemAdminSchema,
764
+ drawer: false,
765
+ edit: true,
766
+
767
+ //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
768
+ //references: [{ reference: 'roles', target: 'gitid', schema: roleSchema }],
769
+ icon: <Person />,
770
+ group: 'Cliente',
771
+ menu: [
772
+ {
773
+ title: 'Cliente',
774
+ redirect: '/system/tenant',
775
+ },
776
+ {
777
+ title: "🗑",
778
+ redirect: "/trash/system/tenant",
779
+ }
780
+ ],
781
+ mainAction: {
782
+ title: 'Crear cliente',
783
+ // type: "ghost",
784
+ redirect: '/system/tenant/create',
785
+ },
786
+ postFormatter: (params) => {
787
+ return params;
788
+ },
789
+ mutationMode: 'pessimistic',
790
+ dataGridProps: { stickyHeader: true },
791
+ dataGridWrapper: (props: any) => (
792
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
793
+ ),
794
+ });
795
+ }
796
+
797
+ if (JSON.parse(constants.system.ENABLE_TENANT_IMPERSONATION)) {
798
+ systemResources.unshift({
799
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
800
+ component: ImpersonateTenantResource,
801
+ model: 'system/settings',
802
+ group: 'Administración',
803
+ label: 'Impersonar cliente',
804
+ schema: [],
805
+ icon: <AdminPanelSettings />,
806
+ menu: [],
807
+ mainAction: null,
808
+ });
809
+ }
810
+ if (JSON.parse(constants.system.ENABLE_TENANT_IMPERSONATION)) {
811
+ systemResources.unshift({
812
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
813
+ component: ResourceTemplate,
814
+ trash: true,
815
+ model: 'system/tenant',
816
+ label: 'Cliente',
817
+ schema: tenantSystemAdminSchema,
818
+ drawer: false,
819
+ edit: true,
820
+ //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
821
+ //references: [{ reference: 'roles', target: 'gitid', schema: roleSchema }],
822
+ icon: <Person />,
823
+ group: 'Cliente',
824
+ menu: [
825
+ {
826
+ title: 'Cliente',
827
+ redirect: '/system/tenant',
828
+ },
829
+ {
830
+ title: "🗑",
831
+ redirect: "/trash/system/tenant",
832
+ }
833
+ ],
834
+ mainAction: {
835
+ title: 'Crear cliente',
836
+ // type: "ghost",
837
+ redirect: '/system/tenant/create',
838
+ },
839
+
840
+ postFormatter: (params, _) => {
841
+ if (params.systemMarketplaces)
842
+ params.system_marketplace_ids = params.systemMarketplaces.map(
843
+ (item) => item.id,
844
+ );
845
+ if (params.systemPointOfSales)
846
+ params.system_point_of_sale_ids = params.systemPointOfSales.map(
847
+ (item) => item.id,
848
+ );
849
+ return params;
850
+ },
851
+ mutationMode: 'pessimistic',
852
+ dataGridProps: { stickyHeader: true },
853
+ dataGridWrapper: (props: any) => (
854
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
855
+ ),
856
+
857
+ });
858
+ }
859
+
860
+ if (JSON.parse(constants.system.ENABLE_LOGS_AND_NOTIFICATIONS)) {
861
+ systemResources.unshift({
862
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
863
+ component: ResourceTemplate,
864
+ model: 'system/notification',
865
+ label: 'Notifications',
866
+ schema: notificationSchema,
867
+ //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
868
+ //references: [{ reference: 'roles', target: 'id', schema: roleSchema }],
869
+ icon: <NotificationImportant />,
870
+ group: 'Logs y Notificaciones',
871
+ menu: [
872
+ {
873
+ title: 'Notificaciones',
874
+ redirect: '/system/notification',
875
+ },
876
+ ],
877
+ create: false,
878
+ edit: false,
879
+
880
+ listViewButton: { enabled: true },
881
+ listEditButton: { enabled: false },
882
+ listDeleteButton: { enabled: false },
883
+
884
+ formGroupMode: 'groups', // groups or tabs
885
+ mutationMode: 'pessimistic',
886
+ search: true,
887
+ dataGridProps: { stickyHeader: true },
888
+ dataGridWrapper: (props: any) => (
889
+ <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
890
+ ),
891
+ });
892
+ }
893
+ if (JSON.parse(constants.system.ENABLE_LOGS_AND_NOTIFICATIONS)) {
894
+ systemResources.unshift({
895
+ roles: [
896
+ constants.system
897
+ .DASH_SYSTEM_ROLE,
898
+ ],
899
+ component: LogResource,
900
+ model: 'system/log',
901
+ label: 'Logs',
902
+ schema: logSchema,
903
+ icon: <LockClock />,
904
+ group: 'Logs y Notificaciones',
905
+
906
+ menu: [
907
+ {
908
+ title: 'Logs',
909
+ redirect: '/system/log',
910
+ },
911
+ ],
912
+ create: false,
913
+ edit: false,
914
+ search: true,
915
+ referenceFilters: [
916
+ {
917
+ label: 'Tipo', // filter label'
918
+ source: 'loggeable_type', // id field
919
+ reference: 'log',
920
+ optionText: 'loggeable_type' // field from the model
921
+ },
922
+ ],
923
+ });
924
+
925
+ }
926
+
927
+ */
928
+ export default systemResources;