@dashadmin/dash-admin 1.3.24 → 1.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/dist/AppAsyncWrapper.js +30 -1
  2. package/dist/AppWrapper.js +35 -1
  3. package/dist/DASHAdmin.js +312 -1
  4. package/dist/RoutingWrapper.js +76 -1
  5. package/dist/classes/DASHStorageClass.js +15 -1
  6. package/dist/components/Input/RichTextField.js +26 -1
  7. package/dist/components/Redirect.js +56 -1
  8. package/dist/components/avatar/Avatar.js +72 -1
  9. package/dist/components/avatar/SingleImageUploader.js +46 -1
  10. package/dist/components/currency/Format.js +71 -1
  11. package/dist/components/custom/Redirect.js +20 -1
  12. package/dist/components/error/Error.js +161 -1
  13. package/dist/components/geocoding/GeocodingField.js +133 -1
  14. package/dist/components/i18n/BridgedLocalesMenuButton.js +126 -1
  15. package/dist/components/i18n/LangSwitcher.js +196 -1
  16. package/dist/components/loader/GlobalLoader.js +71 -1
  17. package/dist/components/logs/LogFile.js +99 -1
  18. package/dist/components/logs/LogFileById.js +75 -1
  19. package/dist/components/logs/LogViewer.js +33 -1
  20. package/dist/components/menu/AppMenu.js +11 -1
  21. package/dist/components/menu/CustomMenuItemLink.js +77 -1
  22. package/dist/components/menu/DarkToggleMode.js +47 -1
  23. package/dist/components/menu/LanguageToggleMode.js +99 -1
  24. package/dist/components/misc/CustomImageInput.js +54 -1
  25. package/dist/components/misc/DASHGlobalErrorHandler.js +159 -1
  26. package/dist/components/misc/DarkModeSwitcher.js +40 -1
  27. package/dist/components/misc/LanguageSwitcher.js +193 -1
  28. package/dist/components/misc/MUIHtmlToolTip.js +50 -1
  29. package/dist/components/misc/MuiSimpleJsonTable.js +178 -1
  30. package/dist/components/misc/MultiLevelTable.js +124 -1
  31. package/dist/components/misc/NoResults.js +17 -1
  32. package/dist/components/misc/PDFViewer.js +86 -1
  33. package/dist/components/navigation/Breadcrumbs.js +178 -1
  34. package/dist/components/navigation/BreadcrumbsManager.js +194 -1
  35. package/dist/components/navigation/index.js +8 -1
  36. package/dist/components/panel/Error.js +161 -1
  37. package/dist/components/permission/AvailablePermissionsContext.js +157 -1
  38. package/dist/components/permission/PermissionsSelector.js +719 -1
  39. package/dist/components/permission/PermissionsSelectorList.js +400 -1
  40. package/dist/components/racustombuttons/CustomRAButton.js +94 -1
  41. package/dist/components/racustombuttons/QuickButton.js +109 -1
  42. package/dist/components/racustombuttons/QuickEditButton.js +114 -1
  43. package/dist/components/racustombuttons/QuickIconButton.js +119 -1
  44. package/dist/components/scrollbar/Scrollbar.js +52 -1
  45. package/dist/components/selects/MultiSelect.js +42 -1
  46. package/dist/components/selects/RASearchableSelect.js +207 -1
  47. package/dist/components/selects/RASearchableSelectChips.js +225 -1
  48. package/dist/components/selects/SearchableSelect.js +128 -1
  49. package/dist/components/subscription/BillingCycleSelectInput.js +50 -1
  50. package/dist/components/subscription/PlanAddonsSettings.js +396 -1
  51. package/dist/components/subscription/PlanAuditLog.js +345 -1
  52. package/dist/components/subscription/PlanFeaturesSettings.js +151 -1
  53. package/dist/components/subscription/PlanLimitsSettings.js +168 -1
  54. package/dist/components/subscription/PlanMetadataSettings.js +219 -1
  55. package/dist/components/subscription/PlanPricesSettings.js +222 -1
  56. package/dist/components/subscription/index.js +12 -1
  57. package/dist/components/svgelements/SvgLoading.js +330 -1
  58. package/dist/components/svgelements/SvgLogo.js +70 -1
  59. package/dist/components/svgelements/SvgLogoMin.js +76 -1
  60. package/dist/components/svgelements/SvgShipping.js +1001 -1
  61. package/dist/components/tenant/TenantAttributes.js +107 -1
  62. package/dist/components/tenant/TenantAttributesContext.js +150 -1
  63. package/dist/components/tenant/TenantSelector.js +160 -1
  64. package/dist/components/tenant/TenantSettings.js +107 -1
  65. package/dist/components/tenant/TenantSettingsContext.js +152 -1
  66. package/dist/components/tenant/TenantTheme.js +112 -1
  67. package/dist/components/user/AvatarComponent.js +270 -1
  68. package/dist/components/user/TenantAvatarComponent.js +83 -1
  69. package/dist/components/user/UserPreferences.js +422 -1
  70. package/dist/config/ACTIONS.js +25 -1
  71. package/dist/config/ConstantsService.js +25 -1
  72. package/dist/config/DASHAdminSystemConstants.js +137 -1
  73. package/dist/config/PARSERS.js +9 -1
  74. package/dist/contexts/DashQueryClientContext.js +78 -1
  75. package/dist/contexts/DashResourceContext.js +21 -1
  76. package/dist/contexts/I18nBridgeContext.js +123 -1
  77. package/dist/contexts/I18nBridgeSetter.js +29 -1
  78. package/dist/contexts/I18nReduxSync.js +16 -1
  79. package/dist/contexts/SubscriptionPlanFormatsProvider.js +175 -1
  80. package/dist/contexts/SystemRequestsCache.js +194 -1
  81. package/dist/contexts/auth/AuthContext.js +396 -1
  82. package/dist/contexts/auth/AuthContextLocalStorage.js +118 -1
  83. package/dist/contexts/auth/DASHAuthenticationService.js +679 -1
  84. package/dist/contexts/auth/WindowContext.js +10 -1
  85. package/dist/contexts/auth/index.js +2 -1
  86. package/dist/contexts/com/FCMContext.js +378 -1
  87. package/dist/contexts/com/LaravelEchoContext.js +45 -1
  88. package/dist/contexts/com/LaravelEchoMgr.js +121 -1
  89. package/dist/contexts/com/components/DefaultNotificationComponent.js +31 -1
  90. package/dist/contexts/com/components/NotificationAttributesTable.js +28 -1
  91. package/dist/contexts/com/components/NotificationRenderer.js +36 -1
  92. package/dist/contexts/com/components/NotificationsWidget.js +142 -1
  93. package/dist/contexts/com/components/notificationFormats.js +15 -1
  94. package/dist/contexts/com/useLaravelEcho.js +340 -1
  95. package/dist/contexts/dictionary/DictionaryContext.js +43 -1
  96. package/dist/default-theme/DASHAppProviders.js +86 -1
  97. package/dist/default-theme/DashThemeContext.js +146 -1
  98. package/dist/default-theme/DashThemeHelperProvider.js +54 -1
  99. package/dist/default-theme/DomainAppLayout.js +126 -1
  100. package/dist/default-theme/DomainHeader.js +114 -1
  101. package/dist/default-theme/DomainTheme.js +60 -1
  102. package/dist/default-theme/FullLayoutMarkup.js +55 -1
  103. package/dist/default-theme/StaticLayout.js +36 -1
  104. package/dist/default-theme/index.js +19 -1
  105. package/dist/default-theme/menu/AppMaterialMenu.js +364 -1
  106. package/dist/default-theme/menu/AppMenuComponents/SubmenuPortal.js +33 -1
  107. package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.js +239 -1
  108. package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.js +22 -1
  109. package/dist/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.js +209 -1
  110. package/dist/default-theme/menu/AppMenuComponents/expanded/SidebarItem.js +71 -1
  111. package/dist/default-theme/menu/AppMenuComponents/getItem.js +7 -1
  112. package/dist/default-theme/menu/AppMenuComponents/submenuConstants.js +78 -1
  113. package/dist/default-theme/menu/AppSidebarMaterial.js +232 -1
  114. package/dist/default-theme/menu/SidebarActions.js +75 -1
  115. package/dist/default-theme/updateDomCssVariables.js +134 -1
  116. package/dist/helpers/checkRole.js +14 -1
  117. package/dist/helpers/parseAxiosError.js +28 -2
  118. package/dist/hooks/audio/useAudio.js +24 -1
  119. package/dist/hooks/axios.js +52 -1
  120. package/dist/hooks/data/useDashboardStats.js +88 -1
  121. package/dist/hooks/data/usePackageByClientsStats.js +51 -1
  122. package/dist/hooks/data/usePackageByCommunesStats.js +51 -1
  123. package/dist/hooks/data/usePackageStats.js +88 -1
  124. package/dist/hooks/data/usePackageWithdrawDetails.js +69 -1
  125. package/dist/hooks/data/useStats.js +94 -1
  126. package/dist/hooks/isCurrentPath.js +18 -1
  127. package/dist/hooks/notifications/WSMessagesManager.js +128 -1
  128. package/dist/hooks/notifications/WSPusherManager.js +70 -1
  129. package/dist/hooks/useBreadcrumbs.js +208 -1
  130. package/dist/hooks/useClickOutside.js +18 -1
  131. package/dist/hooks/useFormPersistance.js +129 -1
  132. package/dist/hooks/useGlobalErrorMediator.js +37 -1
  133. package/dist/hooks/useGlobalLoaderMgr.js +20 -1
  134. package/dist/hooks/useHash.js +24 -1
  135. package/dist/hooks/useLocalStorage.js +68 -1
  136. package/dist/hooks/usePolyglotTranslation.js +57 -1
  137. package/dist/hooks/usePrevious.js +12 -1
  138. package/dist/hooks/usePrintSelected.js +30 -1
  139. package/dist/hooks/useVirtualHash.js +28 -1
  140. package/dist/hooks/window/useWindowSize.js +23 -1
  141. package/dist/index.js +120 -97
  142. package/dist/interfaces.js +6 -1
  143. package/dist/layout/AppLayout.js +36 -1
  144. package/dist/layout/ApplicationLayout.js +110 -1
  145. package/dist/layout/MotionWrapper.js +182 -1
  146. package/dist/layout/MotionWrapper.original.js +182 -1
  147. package/dist/layout/ResourceMenu.js +87 -1
  148. package/dist/layout/ResoureLayout.js +47 -1
  149. package/dist/layout/TransitionWrapper.js +83 -2
  150. package/dist/pages/ChangePassword.js +198 -1
  151. package/dist/pages/DASHLanding.js +9 -1
  152. package/dist/pages/DASHLightWeightLogin.js +495 -1
  153. package/dist/pages/DASHSimpleLogin.js +231 -1
  154. package/dist/pages/Login.js +113 -1
  155. package/dist/pages/Profile.js +347 -1
  156. package/dist/pages/RecoverPassword.js +175 -1
  157. package/dist/pages/SingleImageUploader.js +40 -1
  158. package/dist/pages/VerifyAccount.js +129 -1
  159. package/dist/providers/authProvider.js +186 -1
  160. package/dist/providers/dataProvider.js +468 -1
  161. package/dist/providers/i18n/en.js +514 -1
  162. package/dist/providers/i18n/es.js +520 -1
  163. package/dist/providers/i18n/languages.js +8 -1
  164. package/dist/providers/i18nProvider.js +23 -1
  165. package/dist/react-admin-dash/RADashComponent.js +210 -1
  166. package/dist/react-admin-dash/Resource.js +62 -1
  167. package/dist/resources/Brand/BrandResource.js +106 -1
  168. package/dist/resources/DASHResourceLoader.js +104 -1
  169. package/dist/resources/Log/LogResource.js +59 -1
  170. package/dist/resources/Tenant/ImpersonateTenantResource.js +113 -1
  171. package/dist/resources/Trash/TrashTemplate.js +195 -1
  172. package/dist/resources.js +259 -1
  173. package/dist/schemas/log.js +45 -1
  174. package/dist/schemas/notification.js +39 -1
  175. package/dist/schemas/permissions.js +44 -1
  176. package/dist/schemas/roles.js +48 -1
  177. package/dist/schemas/rolesDataGrid.js +48 -1
  178. package/dist/schemas/subscription/components/SubscriptionActions.js +172 -1
  179. package/dist/schemas/subscription/components/SubscriptionPaymentHistory.js +101 -1
  180. package/dist/schemas/subscription/components/SubscriptionPlanFeatures.js +115 -1
  181. package/dist/schemas/subscription/components/SubscriptionPlanPreview.js +92 -1
  182. package/dist/schemas/subscription/components/SubscriptionPlanStats.js +181 -1
  183. package/dist/schemas/subscription/components/SubscriptionStatusIndicator.js +70 -1
  184. package/dist/schemas/subscription/subscriptionPlanSchema.js +184 -1
  185. package/dist/schemas/subscription/subscriptionSchema.js +147 -1
  186. package/dist/schemas/subscriptionPlan.js +397 -1
  187. package/dist/schemas/tenant.js +122 -1
  188. package/dist/schemas/tenantUser.js +94 -1
  189. package/dist/schemas/tenant_superadmin.js +118 -1
  190. package/dist/schemas/user.js +26 -1
  191. package/dist/systemResources.js +1039 -1
  192. package/dist/systemResources.old.js +668 -1
  193. package/dist/templates/ResourceTemplate.js +196 -1
  194. package/dist/templates/ResourceTemplateCreate.js +144 -1
  195. package/dist/templates/ResourceTemplateEdit.js +147 -1
  196. package/dist/templates/ResourceTemplateFull.js +518 -1
  197. package/dist/templates/ResourceTemplateList.js +295 -1
  198. package/dist/templates/ResourceTemplateShow.js +45 -1
  199. package/dist/templates/TrashTemplate.js +175 -1
  200. package/dist/tenantResources.js +206 -1
  201. package/dist/test_portal_bubbles.js +37 -1
  202. package/dist/theme/AppHeader.js +60 -1
  203. package/dist/theme/AppLayoutSetting.js +34 -1
  204. package/dist/theme/AppLogo.js +7 -1
  205. package/dist/theme/AppSidebar.js +30 -1
  206. package/dist/theme/AppSidebarContent.js +84 -1
  207. package/dist/theme/AppSidebarLogo.js +42 -1
  208. package/dist/theme/components/PageTitle.js +61 -1
  209. package/dist/utils/cache/CacheInvalidatorContext.js +100 -1
  210. package/dist/utils/cache/CacheInvalidatorListenerComponent.js +10 -1
  211. package/dist/utils/cache/useCacheInvalidatorListener.js +17 -1
  212. package/dist/utils/convertFileToBase64.js +10 -1
  213. package/dist/utils/convertToFile.js +12 -1
  214. package/dist/utils/cookies.js +45 -1
  215. package/dist/utils/dashDefaultQueryClient.js +15 -1
  216. package/dist/utils/dataUrlToBlob.js +23 -1
  217. package/dist/utils/deepReplace.js +17 -1
  218. package/dist/utils/getProfileMenu.js +31 -1
  219. package/dist/utils/getTenantSettings.js +9 -1
  220. package/dist/utils/getType.js +10 -1
  221. package/dist/utils/getUserSettings.js +9 -1
  222. package/dist/utils/hasCode.js +14 -1
  223. package/dist/utils/index.js +19 -1
  224. package/dist/utils/injectTenantStyles.js +19 -1
  225. package/dist/utils/isComponent.js +23 -1
  226. package/dist/utils/navEvents.js +75 -1
  227. package/dist/utils/prototypes.js +5 -1
  228. package/dist/utils/regexp.js +7 -1
  229. package/dist/utils/resolveObjectPath.js +5 -1
  230. package/dist/utils/setNativeValue.js +17 -1
  231. package/dist/utils/slugify.js +7 -1
  232. package/dist/utils/validators/emailValidator.js +8 -1
  233. package/dist/utils/validators/requiredValidator.js +7 -1
  234. package/dist/utils/validators/rutValidator.js +25 -1
  235. package/dist/utils/validators.js +57 -1
  236. package/package.json +153 -69
  237. package/src/AppAsyncWrapper.tsx +42 -0
  238. package/src/AppWrapper.tsx +45 -0
  239. package/src/DASHAdmin.tsx +501 -0
  240. package/src/RoutingWrapper.tsx +139 -0
  241. package/src/classes/DASHStorageClass.tsx +8 -0
  242. package/src/components/Input/RichTextField.tsx +27 -0
  243. package/src/components/Redirect.tsx +46 -0
  244. package/src/components/avatar/Avatar.tsx +67 -0
  245. package/src/components/avatar/SingleImageUploader.tsx +53 -0
  246. package/src/components/currency/Format.tsx +77 -0
  247. package/src/components/custom/Redirect.tsx +23 -0
  248. package/src/components/error/Error.tsx +168 -0
  249. package/src/components/geocoding/GeocodingField.tsx +167 -0
  250. package/src/components/i18n/BridgedLocalesMenuButton.tsx +159 -0
  251. package/src/components/i18n/LangSwitcher.tsx +204 -0
  252. package/src/components/loader/GlobalLoader.tsx +56 -0
  253. package/src/components/logs/LogFile.tsx +88 -0
  254. package/src/components/logs/LogFileById.tsx +68 -0
  255. package/src/components/logs/LogViewer.tsx +43 -0
  256. package/src/components/menu/AppMenu.tsx +22 -0
  257. package/src/components/menu/CustomMenuItemLink.tsx +61 -0
  258. package/src/components/menu/DarkToggleMode.tsx +65 -0
  259. package/src/components/menu/LanguageToggleMode.tsx +120 -0
  260. package/src/components/misc/CustomImageInput.tsx +62 -0
  261. package/src/components/misc/DASHGlobalErrorHandler.tsx +194 -0
  262. package/src/components/misc/DarkModeSwitcher.tsx +112 -0
  263. package/src/components/misc/LanguageSwitcher.tsx +199 -0
  264. package/src/components/misc/MUIHtmlToolTip.tsx +15 -0
  265. package/src/components/misc/MuiSimpleJsonTable.tsx +279 -0
  266. package/src/components/misc/MultiLevelTable.tsx +229 -0
  267. package/src/components/misc/NoResults.tsx +25 -0
  268. package/src/components/misc/PDFViewer.tsx +85 -0
  269. package/src/components/navigation/Breadcrumbs.tsx +220 -0
  270. package/src/components/navigation/BreadcrumbsManager.tsx +310 -0
  271. package/src/components/navigation/index.tsx +5 -0
  272. package/src/components/panel/Error.tsx +168 -0
  273. package/src/components/permission/AvailablePermissionsContext.tsx +173 -0
  274. package/src/components/permission/PermissionsSelector.tsx +819 -0
  275. package/src/components/permission/PermissionsSelectorList.tsx +468 -0
  276. package/src/components/permission/tsx +0 -0
  277. package/src/components/racustombuttons/CustomRAButton.tsx +87 -0
  278. package/src/components/racustombuttons/QuickButton.tsx +117 -0
  279. package/src/components/racustombuttons/QuickEditButton.tsx +115 -0
  280. package/src/components/racustombuttons/QuickIconButton.tsx +122 -0
  281. package/src/components/scrollbar/Scrollbar.tsx +31 -0
  282. package/src/components/selects/MultiSelect.tsx +53 -0
  283. package/src/components/selects/RASearchableSelect.tsx +279 -0
  284. package/src/components/selects/RASearchableSelectChips.tsx +304 -0
  285. package/src/components/selects/SearchableSelect.tsx +135 -0
  286. package/src/components/subscription/BillingCycleSelectInput.tsx +68 -0
  287. package/src/components/subscription/PlanAddonsSettings.tsx +522 -0
  288. package/src/components/subscription/PlanAuditLog.tsx +439 -0
  289. package/src/components/subscription/PlanFeaturesSettings.tsx +223 -0
  290. package/src/components/subscription/PlanLimitsSettings.tsx +230 -0
  291. package/src/components/subscription/PlanMetadataSettings.tsx +284 -0
  292. package/src/components/subscription/PlanPricesSettings.tsx +295 -0
  293. package/src/components/subscription/index.ts +7 -0
  294. package/src/components/svgelements/SvgLoading.tsx +229 -0
  295. package/src/components/svgelements/SvgLogo.tsx +53 -0
  296. package/src/components/svgelements/SvgLogoMin.tsx +64 -0
  297. package/src/components/svgelements/SvgShipping.tsx +673 -0
  298. package/src/components/tenant/AvailablePermissionsContext.tsx +0 -0
  299. package/src/components/tenant/TenantAttributes.tsx +153 -0
  300. package/src/components/tenant/TenantAttributesContext.tsx +163 -0
  301. package/src/components/tenant/TenantSelector.tsx +139 -0
  302. package/src/components/tenant/TenantSettings.tsx +172 -0
  303. package/src/components/tenant/TenantSettingsContext.tsx +165 -0
  304. package/src/components/tenant/TenantTheme.tsx +172 -0
  305. package/src/components/user/AvatarComponent.tsx +301 -0
  306. package/src/components/user/TenantAvatarComponent.tsx +99 -0
  307. package/src/components/user/UserPreferences.tsx +642 -0
  308. package/src/config/ACTIONS.tsx +26 -0
  309. package/src/config/ConstantsService.tsx +44 -0
  310. package/src/config/DASHAdminSystemConstants.tsx +182 -0
  311. package/src/config/PARSERS.tsx +9 -0
  312. package/src/contexts/DashQueryClientContext.tsx +113 -0
  313. package/src/contexts/DashResourceContext.tsx +34 -0
  314. package/src/contexts/I18nBridgeContext.tsx +156 -0
  315. package/src/contexts/I18nBridgeSetter.tsx +39 -0
  316. package/src/contexts/I18nReduxSync.tsx +27 -0
  317. package/src/contexts/SubscriptionPlanFormatsProvider.tsx +217 -0
  318. package/src/contexts/SystemRequestsCache.tsx +215 -0
  319. package/src/contexts/auth/AuthContext.tsx +553 -0
  320. package/src/contexts/auth/AuthContextLocalStorage.tsx +140 -0
  321. package/src/contexts/auth/DASHAuthenticationService.tsx +917 -0
  322. package/src/contexts/auth/WindowContext.tsx +15 -0
  323. package/src/contexts/auth/index.tsx +3 -0
  324. package/src/contexts/com/FCMContext.tsx +415 -0
  325. package/src/contexts/com/LaravelEchoContext.tsx +41 -0
  326. package/src/contexts/com/LaravelEchoMgr.tsx +155 -0
  327. package/src/contexts/com/components/DefaultNotificationComponent.tsx +20 -0
  328. package/src/contexts/com/components/NotificationAttributesTable.tsx +54 -0
  329. package/src/contexts/com/components/NotificationRenderer.tsx +42 -0
  330. package/src/contexts/com/components/NotificationsWidget.tsx +182 -0
  331. package/src/contexts/com/components/notificationFormats.tsx +50 -0
  332. package/src/contexts/com/useLaravelEcho.tsx +432 -0
  333. package/src/contexts/dictionary/DictionaryContext.tsx +94 -0
  334. package/src/default-theme/DASHAppProviders.tsx +117 -0
  335. package/src/default-theme/DashThemeContext.tsx +218 -0
  336. package/src/default-theme/DashThemeHelperProvider.tsx +98 -0
  337. package/src/default-theme/DomainAppLayout.tsx +166 -0
  338. package/src/default-theme/DomainHeader.tsx +162 -0
  339. package/src/default-theme/DomainTheme.tsx +59 -0
  340. package/src/default-theme/FullLayoutMarkup.tsx +250 -0
  341. package/src/default-theme/StaticLayout.tsx +47 -0
  342. package/src/default-theme/index.tsx +11 -0
  343. package/src/default-theme/menu/AppMaterialMenu.tsx +545 -0
  344. package/src/default-theme/menu/AppMenuComponents/SubmenuPortal.tsx +56 -0
  345. package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.tsx +254 -0
  346. package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.tsx +31 -0
  347. package/src/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.tsx +276 -0
  348. package/src/default-theme/menu/AppMenuComponents/expanded/SidebarItem.tsx +91 -0
  349. package/src/default-theme/menu/AppMenuComponents/getItem.tsx +17 -0
  350. package/src/default-theme/menu/AppMenuComponents/interfaces.tsx +41 -0
  351. package/src/default-theme/menu/AppMenuComponents/submenuConstants.ts +85 -0
  352. package/src/default-theme/menu/AppSidebarMaterial.tsx +339 -0
  353. package/src/default-theme/menu/SidebarActions.tsx +84 -0
  354. package/src/default-theme/updateDomCssVariables.tsx +176 -0
  355. package/src/helpers/checkRole.tsx +66 -0
  356. package/src/helpers/parseAxiosError.tsx +41 -0
  357. package/src/hooks/audio/useAudio.tsx +39 -0
  358. package/src/hooks/axios.tsx +62 -0
  359. package/src/hooks/data/useDashboardStats.tsx +65 -0
  360. package/src/hooks/data/usePackageByClientsStats.tsx +44 -0
  361. package/src/hooks/data/usePackageByCommunesStats.tsx +44 -0
  362. package/src/hooks/data/usePackageStats.tsx +69 -0
  363. package/src/hooks/data/usePackageWithdrawDetails.tsx +61 -0
  364. package/src/hooks/data/useStats.tsx +86 -0
  365. package/src/hooks/isCurrentPath.tsx +22 -0
  366. package/src/hooks/notifications/WSMessagesManager.tsx +152 -0
  367. package/src/hooks/notifications/WSPusherManager.tsx +92 -0
  368. package/src/hooks/useBreadcrumbs.tsx +329 -0
  369. package/src/hooks/useClickOutside.tsx +17 -0
  370. package/src/hooks/useFormPersistance.tsx +150 -0
  371. package/src/hooks/useGlobalErrorMediator.tsx +43 -0
  372. package/src/hooks/useGlobalLoaderMgr.tsx +21 -0
  373. package/src/hooks/useHash.tsx +27 -0
  374. package/src/hooks/useLocalStorage.tsx +196 -0
  375. package/src/hooks/usePolyglotTranslation.tsx +62 -0
  376. package/src/hooks/usePrevious.tsx +9 -0
  377. package/src/hooks/usePrintSelected.tsx +37 -0
  378. package/src/hooks/useVirtualHash.tsx +33 -0
  379. package/src/hooks/window/useWindowSize.tsx +36 -0
  380. package/src/index.tsx +110 -0
  381. package/src/interfaces/IAppResourceConfig.tsx +20 -0
  382. package/src/interfaces/Log.tsx +16 -0
  383. package/src/interfaces/Tenant.tsx +25 -0
  384. package/src/interfaces/communication/IActions.tsx +5 -0
  385. package/src/interfaces/communication/INotification.tsx +21 -0
  386. package/src/interfaces/communication/IPayload.tsx +3 -0
  387. package/src/interfaces/communication/IRequestAction.tsx +10 -0
  388. package/src/interfaces/communication/IRequestPayload.tsx +7 -0
  389. package/src/interfaces/communication/IResponseAction.tsx +7 -0
  390. package/src/interfaces/misc/IAny.tsx +3 -0
  391. package/src/interfaces/misc/IFlashMessage.tsx +10 -0
  392. package/src/interfaces/navigation/IAppMenu.ts +14 -0
  393. package/src/interfaces/navigation/ICollapsableSidebarMenu.ts +12 -0
  394. package/src/interfaces/navigation/IMenuItem.ts +16 -0
  395. package/src/interfaces/notifications/IModel.tsx +6 -0
  396. package/src/interfaces/notifications/IModelField.tsx +8 -0
  397. package/src/interfaces/notifications/IUserNotification.tsx +12 -0
  398. package/src/interfaces/notifications/IUserNotificationData.tsx +13 -0
  399. package/src/interfaces/notifications/IUserNotificationPayload.tsx +8 -0
  400. package/src/interfaces/user/IGetAuth.tsx +92 -0
  401. package/src/interfaces/user/ITenantSettings.tsx +3 -0
  402. package/src/interfaces/user/IUser.tsx +60 -0
  403. package/src/interfaces/user/IUserSettings.tsx +43 -0
  404. package/src/interfaces.tsx +6 -0
  405. package/src/layout/AppLayout.tsx +112 -0
  406. package/src/layout/ApplicationLayout.tsx +197 -0
  407. package/src/layout/MotionWrapper.original.tsx +236 -0
  408. package/src/layout/MotionWrapper.tsx +236 -0
  409. package/src/layout/ResourceMenu.tsx +164 -0
  410. package/src/layout/ResoureLayout.tsx +105 -0
  411. package/src/layout/TransitionWrapper.tsx +125 -0
  412. package/src/pages/ChangePassword.tsx +179 -0
  413. package/src/pages/DASHLanding.tsx +22 -0
  414. package/src/pages/DASHLightWeightLogin.tsx +610 -0
  415. package/src/pages/DASHSimpleLogin.tsx +260 -0
  416. package/src/pages/Login.tsx +111 -0
  417. package/src/pages/Profile.tsx +394 -0
  418. package/src/pages/RecoverPassword.tsx +166 -0
  419. package/src/pages/SingleImageUploader.tsx +55 -0
  420. package/src/pages/VerifyAccount.tsx +128 -0
  421. package/src/providers/authProvider.tsx +210 -0
  422. package/src/providers/dataProvider.tsx +672 -0
  423. package/src/providers/i18n/en.ts +533 -0
  424. package/src/providers/i18n/es.ts +539 -0
  425. package/src/providers/i18n/languages.tsx +5 -0
  426. package/src/providers/i18nProvider.tsx +23 -0
  427. package/src/react-admin-dash/RADashComponent.tsx +240 -0
  428. package/src/react-admin-dash/Resource.tsx +77 -0
  429. package/src/resources/Brand/BrandResource.tsx +130 -0
  430. package/src/resources/DASHResourceLoader.ts +180 -0
  431. package/src/resources/Log/LogResource.tsx +73 -0
  432. package/src/resources/Tenant/ImpersonateTenantResource.tsx +113 -0
  433. package/src/resources/Trash/TrashTemplate.tsx +180 -0
  434. package/src/resources.tsx +280 -0
  435. package/src/schemas/log.tsx +45 -0
  436. package/src/schemas/notification.tsx +42 -0
  437. package/src/schemas/permissions.tsx +44 -0
  438. package/src/schemas/roles.tsx +48 -0
  439. package/src/schemas/rolesDataGrid.tsx +48 -0
  440. package/src/schemas/subscription/components/SubscriptionActions.tsx +153 -0
  441. package/src/schemas/subscription/components/SubscriptionPaymentHistory.tsx +120 -0
  442. package/src/schemas/subscription/components/SubscriptionPlanFeatures.tsx +155 -0
  443. package/src/schemas/subscription/components/SubscriptionPlanPreview.tsx +128 -0
  444. package/src/schemas/subscription/components/SubscriptionPlanStats.tsx +268 -0
  445. package/src/schemas/subscription/components/SubscriptionStatusIndicator.tsx +72 -0
  446. package/src/schemas/subscription/subscriptionPlanSchema.tsx +185 -0
  447. package/src/schemas/subscription/subscriptionSchema.tsx +152 -0
  448. package/src/schemas/subscriptionPlan.ts +422 -0
  449. package/src/schemas/tenant.tsx +129 -0
  450. package/src/schemas/tenantUser.tsx +96 -0
  451. package/src/schemas/tenant_superadmin.tsx +119 -0
  452. package/src/schemas/user.tsx +26 -0
  453. package/src/systemResources.old.tsx +928 -0
  454. package/src/systemResources.tsx +1135 -0
  455. package/src/templates/ResourceTemplate.tsx +240 -0
  456. package/src/templates/ResourceTemplateCreate.tsx +167 -0
  457. package/src/templates/ResourceTemplateEdit.tsx +176 -0
  458. package/src/templates/ResourceTemplateFull.tsx +581 -0
  459. package/src/templates/ResourceTemplateList.tsx +340 -0
  460. package/src/templates/ResourceTemplateShow.tsx +88 -0
  461. package/src/templates/TrashTemplate.tsx +179 -0
  462. package/src/tenantResources.tsx +223 -0
  463. package/src/test_portal_bubbles.tsx +40 -0
  464. package/src/theme/AppHeader.tsx +52 -0
  465. package/src/theme/AppLayoutSetting.tsx +33 -0
  466. package/src/theme/AppLogo.tsx +13 -0
  467. package/src/theme/AppSidebar.tsx +12 -0
  468. package/src/theme/AppSidebarContent.tsx +105 -0
  469. package/src/theme/AppSidebarLogo.tsx +48 -0
  470. package/src/theme/components/PageTitle.tsx +37 -0
  471. package/src/utils/cache/CacheInvalidatorContext.tsx +125 -0
  472. package/src/utils/cache/CacheInvalidatorListenerComponent.tsx +10 -0
  473. package/src/utils/cache/useCacheInvalidatorListener.tsx +27 -0
  474. package/src/utils/convertFileToBase64.tsx +9 -0
  475. package/src/utils/convertToFile.tsx +14 -0
  476. package/src/utils/cookies.tsx +33 -0
  477. package/src/utils/dashDefaultQueryClient.tsx +34 -0
  478. package/src/utils/dataUrlToBlob.tsx +30 -0
  479. package/src/utils/deepReplace.tsx +19 -0
  480. package/src/utils/getProfileMenu.tsx +41 -0
  481. package/src/utils/getTenantSettings.tsx +9 -0
  482. package/src/utils/getType.tsx +8 -0
  483. package/src/utils/getUserSettings.tsx +8 -0
  484. package/src/utils/hasCode.tsx +14 -0
  485. package/src/utils/index.ts +19 -0
  486. package/src/utils/injectTenantStyles.ts +28 -0
  487. package/src/utils/isComponent.tsx +45 -0
  488. package/src/utils/navEvents.tsx +91 -0
  489. package/src/utils/prototypes.tsx +5 -0
  490. package/src/utils/regexp.tsx +4 -0
  491. package/src/utils/resolveObjectPath.tsx +4 -0
  492. package/src/utils/setNativeValue.tsx +24 -0
  493. package/src/utils/slugify.tsx +11 -0
  494. package/src/utils/validators/emailValidator.tsx +6 -0
  495. package/src/utils/validators/requiredValidator.tsx +5 -0
  496. package/src/utils/validators/rutValidator.tsx +31 -0
  497. package/src/utils/validators.tsx +96 -0
  498. package/dist/ChangePassword-DmWAQAX_.js +0 -152
  499. package/dist/Login-t41HMhVT.js +0 -101
  500. package/dist/Profile-By-gdPUd.js +0 -294
  501. package/dist/RecoverPassword-DzPdbkg2.js +0 -149
  502. package/dist/VerifyAccount-Bofaxe5w.js +0 -99
  503. package/dist/index-gfebuoyf.js +0 -21614
  504. /package/dist/{components/permission/tsx → declarations.d.js} +0 -0
  505. /package/{dist → src}/DASHAdmin.tsx.old +0 -0
  506. /package/{dist → src}/declarations.d.ts +0 -0
  507. /package/{dist → src}/default-theme/DashThemeContext.tsx.fast +0 -0
  508. /package/{dist → src}/default-theme/DashThemeContext.tsx.old +0 -0
  509. /package/{dist → src}/templates/ResourceTemplate.tsx.memoized_experiment +0 -0
  510. /package/{dist → src}/templates/ResourceTemplate.tsx.original +0 -0
  511. /package/{dist → src}/templates/ResourceTemplateOld.tsx.bkup +0 -0
@@ -1 +1,1039 @@
1
- import{jsx as r}from"react/jsx-runtime";import{SelectInput as d,FunctionField as p}from"react-admin";import n from"./templates/ResourceTemplate";import{TenantImpersonateResource as y}from"./resources/Tenant/ImpersonateTenantResource";import g from"./schemas/tenant_superadmin";import S from"./schemas/subscriptionPlan";import{RutValidator as h}from"./utils/validators";import{DASHAppConstants as s}from"@dashadmin/dash-constants";import _ from"./components/avatar/Avatar";import w from"@mui/icons-material/SystemUpdateAlt";import u from"@mui/icons-material/Person";import C from"@mui/icons-material/CardMembership";import{lazy as E}from"react";import A from"@mui/icons-material/Business";import b from"@mui/material/Chip";import f from"./contexts/SystemRequestsCache";import{SubscriptionPlanFormatsProvider as L}from"./contexts/SubscriptionPlanFormatsProvider";import P from"./schemas/rolesDataGrid";import T from"./components/currency/Format";const c=E(()=>import("@mui/material/TableContainer")),o={drawer:!0,drawerOptions:{view:!0,edit:!1,create:!1},listViewButton:{props:{buttonProps:{variant:"text",size:"small"},label:""}},listEditButton:{props:{buttonProps:{variant:"text",size:"small"},label:""}},listDeleteButton:{confirm:!0,props:{buttonProps:{variant:"text",size:"small"},label:""}}},x=[{roles:[s.system.SYSTEM_ROLE],trash:!0,component:n,model:"system/tenancy",group:"Accounts",schema:[{tab:"Account",label:"Public Name",attribute:"public_name",type:String,inList:!0,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"Legal Name",attribute:"legal_name",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"Public ID",attribute:"public_id",type:String,inList:!0,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"Account Status",attribute:"account_status_label",type:String,custom:!0,inList:!0,inEdit:!1,inShow:!0,inCreate:!1,component:()=>r(p,{label:"Account Status",render:e=>{const t=e?.account_status_label||e?.account_status||"-";return r(b,{label:t,color:{Active:"success",Suspended:"warning",Canceled:"error",Expired:"default","Pending Deletion":"error"}[t]||"default",size:"small"})}})},{tab:"Account",label:"Email",attribute:"email",type:String,inList:!0,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"URL",attribute:"url",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"Slug",attribute:"slug",type:String,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Account",label:"Currency",attribute:"settings.currency",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,fieldProps:{helperText:"Default currency code (e.g., USD, EUR)"}},{tab:"Account",label:"Timezone",attribute:"settings.timezone",type:String,inList:!1,inShow:!0,inEdit:!1,inCreate:!1},{tab:"Account",label:"Timezone",attribute:"settings.timezone",type:String,custom:!0,inList:!1,inShow:!1,inEdit:!0,inCreate:!0,component:d,componentProps:{source:"settings.timezone",choices:[{id:"America/Santiago",name:"America/Santiago"},{id:"UTC",name:"UTC"},{id:"America/New_York",name:"America/New_York"},{id:"Europe/London",name:"Europe/London"}],defaultValue:"UTC"}},{tab:"Subscription",label:"Subscription Status",attribute:"subscription_status",type:String,custom:!0,inList:!0,inEdit:!1,inShow:!0,inCreate:!1,component:()=>r(p,{label:"Subscription Status",render:e=>{const t=e?.subscription_status||"none";return r(b,{label:t,color:{active:"success",canceled:"error",past_due:"warning",trialing:"info",none:"default"}[t]||"default",size:"small"})}})},{tab:"Subscription",label:"Plan",attribute:"subscription_plan_name",type:String,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Subscription",label:"Subscription State",attribute:"subscription_state",type:String,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Subscription",label:"Gateway",attribute:"gateway_type",type:String,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Subscription",label:"Canceled At",attribute:"canceled_at",type:Date,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Subscription",label:"Expires At",attribute:"expires_at",type:Date,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Usage",label:"Tenants",attribute:"tenants_count",type:Number,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Usage",label:"Users",attribute:"users_count",type:Number,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Trial",label:"Trial Ends At",attribute:"trial_ends_at",type:Date,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Trial",label:"Is On Trial",attribute:"is_on_trial",type:Boolean,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Trial",label:"Trial Days Remaining",attribute:"trial_days_remaining",type:Number,inList:!1,inEdit:!1,inShow:!0,inCreate:!1}],label:"Accounts",icon:r(A,{}),create:!1,menu:[{title:"Accounts",redirect:"/system/tenancy"},{title:"\u{1F5D1}",redirect:"/system/tenancy/trash"}],referenceFilters:[{id:"PublicName",label:"Name",source:"public_name",reference:null,optionText:null,alwaysOn:!0},{id:"AccountStatus",label:"Account Status",source:"account_status",reference:[{id:"active",name:"Active"},{id:"canceled",name:"Canceled"},{id:"expired",name:"Expired"},{id:"suspended",name:"Suspended"},{id:"soft_deleted",name:"Pending Deletion"}],optionText:"name",alwaysOn:!0}],mutationMode:"pessimistic",redirectAfterUpdate:!1,...o},{roles:[s.system.SYSTEM_ROLE],component:n,customRoutes:e=>y(e),contextComponent:({resourceConfig:e,mode:t,children:i})=>(console.log("TenantFormatsProvider",e,t),t==="list"?i:r(f,{cacheKey:"tenant_formats_cache",apiUrl:"system/tenant/systemSettingFormats",cacheSeconds:300,children:i})),model:"system/tenant",label:"Laboratories",trash:!0,schema:g,icon:r(u,{}),group:"Accounts",menu:[{title:"resource.system.tenants.menu_list",redirect:"/system/tenant"},{title:"\u{1F5D1}",redirect:"/system/tenant/trash"},{title:"Impersonar",redirect:"/system/tenant/impersonate"}],refreshAfter:!0,toolbarCreateButton:{enabled:!0},referenceFilters:[{id:"Nombre",label:"resource.system.tenants.filter_name",source:"name",reference:null,optionText:null,alwaysOn:!0}],mainAction:{title:"resource.system.tenants.main_action",fn:"redirect",mode:"create",redirect:"create"},search:!1,exporter:!1,postFormatter:e=>(e.systemMarketplaces&&(e.system_marketplace_ids=e.systemMarketplaces.map(t=>t.id)),e),redirectAfterUpdate:!1,mutationMode:"pessimistic",editProps:{queryOptions:{meta:{forceFetch:!0}},undoable:!1,emptyWhileLoading:!0},dataGridProps:{stickyHeader:!0,rowClick:!1},dataGridWrapper:e=>r(c,{sx:{maxHeight:800},children:e.children}),...o,redirectAfterCreate:!0},{roles:[s.system.SYSTEM_ROLE],component:n,model:"system/role-permissions-bulk",label:"resource.system.roles.label",icon:r(w,{}),group:"System",menu:[{title:"resource.system.roles.menu_list",redirect:"/system/role-permissions-bulk"}],contextComponent:({resourceConfig:e,mode:t,children:i})=>(console.log("TenantSettingsFormatsProvider",e,t),t==="list"?i:r(f,{cacheKey:"system_available_permissions_cache",apiUrl:"system/permission/availablePermissions",cacheSeconds:300,children:i})),referenceFilters:[{id:"Nombre",label:"resource.system.roles.filter_name",source:"name",reference:null,optionText:null,alwaysOn:!0}],toolbarCreateButton:{enabled:!0},mainAction:{title:"resource.system.roles.main_action",fn:"redirect",mode:"create",redirect:"create"},view:!1,schema:P,dataGridProps:{stickyHeader:!0},listEditButton:{enabled:!0},listViewButton:{enabled:!1},toolbarDeleteButton:{enabled:!1},toolbarListButton:{enabled:!1},toolbarSaveButton:{enabled:!0},toolbarExportButton:{enabled:!1},toolbarEditButton:{enabled:!1},formGroupMode:"groups",mutationMode:"pessimistic",editProps:{queryOptions:{meta:{forceFetch:!0}},undoable:!1,emptyWhileLoading:!0},saveButtonAlwaysEnabled:!0,refreshAfter:!0,dataGridWrapper:e=>r(c,{sx:{maxHeight:800},children:e.children}),postFormatter:(e,t)=>(delete e.permissions,e),...o},{roles:[s.system.SYSTEM_ROLE],component:n,trash:!0,isFormData:!0,model:"system/user",group:"Accounts",label:"resource.system.users.label",refreshAfter:!0,referenceFilters:[{id:"search",label:"resource.system.users.filter_search",source:"q",reference:null,optionText:"",alwaysOn:!0}],schema:[{tab:"Datos Usuario",attribute:"avatar",listAttribute:"image_path",label:"Im\xE1gen Usuario",type:String,sortable:!0,inEdit:!0,inCreate:!0,inShow:!0,inList:!1,custom:!0,component:_,processor:"File"},{label:"Nombre",attribute:"name",type:String,tab:"Datos Usuario"},{label:"Apellido",attribute:"lastname",type:String,tab:"Datos Usuario"},{tab:"Datos Usuario",attribute:"public_id",label:"Rut",type:String,fieldProps:{required:!0,showDiv:!0},slotProps:{input:{fullWidth:!0,autoComplete:"off"}},sortable:!0,inEdit:!0,inCreate:!0,inShow:!0,inList:!1,validate:e=>{if(!e)throw Error("El campo es requerido");if(!h(e))throw Error("El Rut es inv\xE1lido")}},{label:"Email",attribute:"email",type:String,tab:"Datos Usuario",slotProps:{input:{fullWidth:!0,"data-testid":"email-input"}}},{label:"Contrase\xF1a",attribute:"password",type:String,isPassword:!0,slotProps:{input:{fullWidth:!0,autoComplete:"new-password"}},inList:!1,tab:"Contrase\xF1a",validate:e=>{if(e&&e.length<6&&e.length>1)throw Error("Min 6 caracteres")}},{label:"Confirmar Contrase\xF1a",attribute:"password_confirmation",type:String,isPassword:!0,slotProps:{input:{fullWidth:!0,autoComplete:"new-password"}},inList:!1,tab:"Contrase\xF1a",validate:(e,t)=>{if(t.password!==""&&t.password!==e)throw Error("Contrase\xF1as no coinciden.")}},{label:"Genear Contrase\xF1a Aleatorea Autom\xE1ticamente",attribute:"generate_password",type:Boolean,inList:!1,tab:"Contrase\xF1a"},{tab:"Datos Usuario",label:"Roles",attribute:"roles",listAttribute:"role_ids",type:"system/role.name",multiple:!0,inList:!1,inShow:!1},{tab:"Datos Usuario",label:"Roles",attribute:"roles",listAttribute:"role_ids",type:"system/role.name",multiple:!0,inEdit:!1,inCreate:!1},{tab:"Datos Usuario",label:"Cliente",attribute:"tenant_id",type:"system/tenant.name",pagination:!1,multiple:!1,component:d,fieldProps:{allowEmpty:!0,emptyText:"Sin cliente"},componentProps:{parse:e=>{if(console.log("Parsing tenant_id value:",e),e===""||e===void 0||e==="null")return console.log("Converting to null"),null;if(typeof e=="string"&&!isNaN(Number(e))){const t=Number(e);return console.log("Converting to number:",t),t}return console.log("Returning original value:",e),e},format:e=>(console.log("Formatting tenant_id value:",e),e??"")},processor:"Null"},{attribute:"active",type:Boolean,inList:!0,label:"Activo",tab:"Datos Usuario",processor:"Boolean"}],icon:r(u,{}),redirectAfterUpdate:!1,showDialogAfterSubmit:!0,showNotifyAfterSubmit:!0,menu:[{title:"resource.system.users.menu_list",redirect:"/system/user"},{title:"\u{1F5D1}",redirect:"/system/user/trash"}],mainAction:{title:"resource.system.users.main_action",redirect:"/system/user/create"},mutationMode:"pessimistic",dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>r(c,{sx:{maxHeight:800},children:e.children}),formPostFormatter:(e,t)=>t,...o},{roles:[s.system.SYSTEM_ROLE],component:n,model:"system/subscription-plan",label:"Subscription Plans",group:"System",icon:r(C,{}),trash:!0,contextComponent:({resourceConfig:e,mode:t,children:i})=>(console.log("SubscriptionPlanFormatsProvider",e,t),t==="list"?i:r(L,{cacheSeconds:300,children:i})),schema:S,menu:[{title:"All Plans",redirect:"/system/subscription-plan"}],mainAction:{title:"Create Plan",fn:"redirect",mode:"create",redirect:"create"},referenceFilters:[{id:"name",label:"Plan Name",source:"name",reference:null,optionText:null,alwaysOn:!0},{id:"is_active",label:"Active",source:"is_active",reference:null,optionText:null,alwaysOn:!1}],create:!0,view:!0,refreshAfter:!0,toolbarCreateButton:{enabled:!0},mutationMode:"pessimistic",editProps:{queryOptions:{meta:{forceFetch:!0}},undoable:!1,emptyWhileLoading:!0},dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>r(c,{sx:{maxHeight:800},children:e.children}),listEditButton:{enabled:!0},listViewButton:{enabled:!0},postFormatter:(e,t)=>{if(e.limits&&typeof e.limits=="object"){const i={};Object.entries(e.limits).forEach(([l,a])=>{a===""||a===void 0?i[l]=null:i[l]=a}),e.limits=i}if(e.prices&&typeof e.prices=="object"){const i={};Object.entries(e.prices).forEach(([l,a])=>{if(a!==""&&a!==void 0&&a!==null){const m=parseInt(String(a),10);isNaN(m)||(i[l]=m)}}),e.prices=i}return e.billing_cycle||(e.billing_cycle="monthly"),(e.trial_days===void 0||e.trial_days===null)&&(e.trial_days=0),(e.tier===void 0||e.tier===null)&&(e.tier=1),e},redirectAfterUpdate:!1,redirectAfterCreate:!0,...o},{roles:[s.system.SYSTEM_ROLE],component:n,trash:!0,model:"ecommerce/currency",label:"resource.ecommerce.currencies.label",schema:[{label:"C\xF3digo",attribute:"code",type:String,fieldOptions:{helperText:"E.g: CLP | USD ..."}},{label:"Formato",attribute:"format",type:String,fieldOptions:{helperText:"E.g: 0.00 | 0,0.00 | 0"}},{label:"S\xEDmbolo",attribute:"symbol",type:String},{label:"Enabled",attribute:"is_enabled",type:Boolean},{label:"N\xFAmero formateado",attribute:"formateado",type:Number,custom:!0,inList:!1,component:T}],icon:r(u,{}),group:"System",menu:[{title:"resource.ecommerce.currencies.menu_list",redirect:"/ecommerce/currency"},{title:"\u{1F5D1}",redirect:"/ecommerce/currency/trash"}],mainAction:{title:"resource.ecommerce.currencies.main_action",mode:"create",fn:"virtualhash",redirect:"inline/create"},drawer:!0,drawerOptions:{create:!0,edit:!0,view:!1},mutationMode:"pessimistic",saveButtonAlwaysEnabled:!0,listProps:{storeKey:!1,filterDefaultValues:{show_disabled:!0}},resetSelectedIdsOnLoad:!0},{roles:[s.system.SYSTEM_ROLE],component:n,trash:!0,model:"common/language",label:"resource.common.languages.label",schema:[{label:"Code",attribute:"code",type:String,fieldOptions:{helperText:"ISO 639-1 code (e.g., en, es, pt)"}},{label:"Name",attribute:"name",type:String,fieldOptions:{helperText:"Language name in English"}},{label:"Native Name",attribute:"native_name",type:String,fieldOptions:{helperText:"Language name in native language (e.g., Espa\xF1ol)"}},{label:"Active",attribute:"is_active",type:Boolean},{label:"Translations",attribute:"translations",type:Object,inList:!1,inShow:!0,inEdit:!0,inCreate:!0,fieldOptions:{helperText:"JSON key-value pairs for translations"}}],icon:r(u,{}),group:"System",menu:[{title:"resource.common.languages.menu_list",redirect:"/common/language"},{title:"\u{1F5D1}",redirect:"/common/language/trash"}],mainAction:{title:"resource.common.languages.main_action",mode:"create",fn:"virtualhash",redirect:"inline/create"},drawer:!0,drawerOptions:{create:!0,edit:!0,view:!1},mutationMode:"pessimistic",saveButtonAlwaysEnabled:!0,listProps:{storeKey:!1},resetSelectedIdsOnLoad:!0}];var J=x;export{J as default};
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { jsx } from "react/jsx-runtime";
21
+ import { SelectInput, FunctionField } from "react-admin";
22
+ import ResourceTemplate from "./templates/ResourceTemplate";
23
+ import { TenantImpersonateResource } from "./resources/Tenant/ImpersonateTenantResource";
24
+ import tenantSystemAdminSchema from "./schemas/tenant_superadmin";
25
+ import subscriptionPlanSchema from "./schemas/subscriptionPlan";
26
+ import { RutValidator } from "./utils/validators";
27
+ import { DASHAppConstants } from "dash-constants";
28
+ import Avatar from "./components/avatar/Avatar";
29
+ import SystemUpdateAlt from "@mui/icons-material/SystemUpdateAlt";
30
+ import Person from "@mui/icons-material/Person";
31
+ import CardMembershipIcon from "@mui/icons-material/CardMembership";
32
+ import { lazy } from "react";
33
+ import BusinessIcon from "@mui/icons-material/Business";
34
+ import Chip from "@mui/material/Chip";
35
+ import SystemRequestsCache from "./contexts/SystemRequestsCache";
36
+ import { SubscriptionPlanFormatsProvider } from "./contexts/SubscriptionPlanFormatsProvider";
37
+ import roleSchemaDataGrid from "./schemas/rolesDataGrid";
38
+ import FormatCurrency from "./components/currency/Format";
39
+ const TableContainer = lazy(() => import("@mui/material/TableContainer"));
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
+ const systemResources = [
52
+ __spreadValues({
53
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
54
+ trash: true,
55
+ component: ResourceTemplate,
56
+ model: "system/tenancy",
57
+ //group: "resource.groups.system_resources",
58
+ group: "Accounts",
59
+ //path: "/tenancy/account",
60
+ schema: [
61
+ {
62
+ tab: "Account",
63
+ label: "Public Name",
64
+ attribute: "public_name",
65
+ type: String,
66
+ inList: true,
67
+ inEdit: true,
68
+ inShow: true,
69
+ inCreate: false
70
+ },
71
+ {
72
+ tab: "Account",
73
+ label: "Legal Name",
74
+ attribute: "legal_name",
75
+ type: String,
76
+ inList: false,
77
+ inEdit: true,
78
+ inShow: true,
79
+ inCreate: false
80
+ },
81
+ {
82
+ tab: "Account",
83
+ label: "Public ID",
84
+ attribute: "public_id",
85
+ type: String,
86
+ inList: true,
87
+ inEdit: true,
88
+ inShow: true,
89
+ inCreate: false
90
+ },
91
+ {
92
+ tab: "Account",
93
+ label: "Account Status",
94
+ attribute: "account_status_label",
95
+ type: String,
96
+ custom: true,
97
+ inList: true,
98
+ inEdit: false,
99
+ inShow: true,
100
+ inCreate: false,
101
+ component: () => /* @__PURE__ */ jsx(
102
+ FunctionField,
103
+ {
104
+ label: "Account Status",
105
+ render: (record) => {
106
+ const status = (record == null ? void 0 : record.account_status_label) || (record == null ? void 0 : record.account_status) || "-";
107
+ const colorMap = {
108
+ "Active": "success",
109
+ "Suspended": "warning",
110
+ "Canceled": "error",
111
+ "Expired": "default",
112
+ "Pending Deletion": "error"
113
+ };
114
+ return /* @__PURE__ */ jsx(Chip, { label: status, color: colorMap[status] || "default", size: "small" });
115
+ }
116
+ }
117
+ )
118
+ },
119
+ {
120
+ tab: "Account",
121
+ label: "Email",
122
+ attribute: "email",
123
+ type: String,
124
+ inList: true,
125
+ inEdit: true,
126
+ inShow: true,
127
+ inCreate: false
128
+ },
129
+ {
130
+ tab: "Account",
131
+ label: "URL",
132
+ attribute: "url",
133
+ type: String,
134
+ inList: false,
135
+ inEdit: true,
136
+ inShow: true,
137
+ inCreate: false
138
+ },
139
+ /*{
140
+ tab: 'Account',
141
+ label: 'Slug',
142
+ attribute: 'slug',
143
+ type: String,
144
+ inList: true,
145
+ inEdit: false,
146
+ inShow: true,
147
+ inCreate: false,
148
+ },*/
149
+ {
150
+ tab: "Account",
151
+ label: "Slug (URL)",
152
+ attribute: "slug",
153
+ type: String,
154
+ inList: false,
155
+ validate: (value) => {
156
+ if (!value) throw new Error("El slug es requerido");
157
+ if (!/^[a-z0-9-]+$/.test(value)) throw new Error("Solo letras min\xFAsculas, n\xFAmeros y guiones");
158
+ if (value.length > 50) throw new Error("M\xE1ximo 50 caracteres");
159
+ }
160
+ },
161
+ {
162
+ tab: "Account",
163
+ label: "Currency",
164
+ attribute: "settings.currency",
165
+ type: String,
166
+ inList: false,
167
+ inEdit: true,
168
+ inShow: true,
169
+ inCreate: true,
170
+ fieldProps: {
171
+ helperText: "Default currency code (e.g., USD, EUR)"
172
+ }
173
+ },
174
+ {
175
+ tab: "Account",
176
+ label: "Timezone",
177
+ attribute: "settings.timezone",
178
+ type: String,
179
+ inList: false,
180
+ inShow: true,
181
+ inEdit: false,
182
+ inCreate: false
183
+ },
184
+ {
185
+ tab: "Account",
186
+ label: "Timezone",
187
+ attribute: "settings.timezone",
188
+ type: String,
189
+ custom: true,
190
+ inList: false,
191
+ inShow: false,
192
+ inEdit: true,
193
+ inCreate: true,
194
+ component: SelectInput,
195
+ componentProps: {
196
+ source: "settings.timezone",
197
+ choices: [
198
+ { id: "America/Santiago", name: "America/Santiago" },
199
+ { id: "UTC", name: "UTC" },
200
+ { id: "America/New_York", name: "America/New_York" },
201
+ { id: "Europe/London", name: "Europe/London" }
202
+ ],
203
+ defaultValue: "UTC"
204
+ }
205
+ },
206
+ {
207
+ tab: "Subscription",
208
+ label: "Subscription Status",
209
+ attribute: "subscription_status",
210
+ type: String,
211
+ custom: true,
212
+ inList: true,
213
+ inEdit: false,
214
+ inShow: true,
215
+ inCreate: false,
216
+ component: () => /* @__PURE__ */ jsx(
217
+ FunctionField,
218
+ {
219
+ label: "Subscription Status",
220
+ render: (record) => {
221
+ const status = (record == null ? void 0 : record.subscription_status) || "none";
222
+ const colorMap = {
223
+ "active": "success",
224
+ "canceled": "error",
225
+ "past_due": "warning",
226
+ "trialing": "info",
227
+ "none": "default"
228
+ };
229
+ return /* @__PURE__ */ jsx(Chip, { label: status, color: colorMap[status] || "default", size: "small" });
230
+ }
231
+ }
232
+ )
233
+ },
234
+ {
235
+ tab: "Subscription",
236
+ label: "Plan",
237
+ attribute: "subscription_plan_name",
238
+ type: String,
239
+ inList: false,
240
+ inEdit: false,
241
+ inShow: true,
242
+ inCreate: false
243
+ },
244
+ {
245
+ tab: "Subscription",
246
+ label: "Subscription State",
247
+ attribute: "subscription_state",
248
+ type: String,
249
+ inList: false,
250
+ inEdit: false,
251
+ inShow: true,
252
+ inCreate: false
253
+ },
254
+ {
255
+ tab: "Subscription",
256
+ label: "Gateway",
257
+ attribute: "gateway_type",
258
+ type: String,
259
+ inList: false,
260
+ inEdit: false,
261
+ inShow: true,
262
+ inCreate: false
263
+ },
264
+ {
265
+ tab: "Subscription",
266
+ label: "Canceled At",
267
+ attribute: "canceled_at",
268
+ type: Date,
269
+ inList: false,
270
+ inEdit: false,
271
+ inShow: true,
272
+ inCreate: false
273
+ },
274
+ {
275
+ tab: "Subscription",
276
+ label: "Expires At",
277
+ attribute: "expires_at",
278
+ type: Date,
279
+ inList: false,
280
+ inEdit: false,
281
+ inShow: true,
282
+ inCreate: false
283
+ },
284
+ {
285
+ tab: "Usage",
286
+ label: "Tenants",
287
+ attribute: "tenants_count",
288
+ type: Number,
289
+ inList: true,
290
+ inEdit: false,
291
+ inShow: true,
292
+ inCreate: false
293
+ },
294
+ {
295
+ tab: "Usage",
296
+ label: "Users",
297
+ attribute: "users_count",
298
+ type: Number,
299
+ inList: true,
300
+ inEdit: false,
301
+ inShow: true,
302
+ inCreate: false
303
+ },
304
+ {
305
+ tab: "Trial",
306
+ label: "Trial Ends At",
307
+ attribute: "trial_ends_at",
308
+ type: Date,
309
+ inList: false,
310
+ inEdit: false,
311
+ inShow: true,
312
+ inCreate: false
313
+ },
314
+ {
315
+ tab: "Trial",
316
+ label: "Is On Trial",
317
+ attribute: "is_on_trial",
318
+ type: Boolean,
319
+ inList: true,
320
+ inEdit: false,
321
+ inShow: true,
322
+ inCreate: false
323
+ },
324
+ {
325
+ tab: "Trial",
326
+ label: "Trial Days Remaining",
327
+ attribute: "trial_days_remaining",
328
+ type: Number,
329
+ inList: false,
330
+ inEdit: false,
331
+ inShow: true,
332
+ inCreate: false
333
+ }
334
+ ],
335
+ label: "Accounts",
336
+ icon: /* @__PURE__ */ jsx(BusinessIcon, {}),
337
+ create: false,
338
+ menu: [
339
+ {
340
+ title: "Accounts",
341
+ redirect: "/system/tenancy"
342
+ },
343
+ {
344
+ title: "\u{1F5D1}",
345
+ redirect: "/system/tenancy/trash"
346
+ }
347
+ ],
348
+ referenceFilters: [
349
+ {
350
+ id: "PublicName",
351
+ label: "Name",
352
+ source: "public_name",
353
+ reference: null,
354
+ optionText: null,
355
+ alwaysOn: true
356
+ },
357
+ {
358
+ id: "AccountStatus",
359
+ label: "Account Status",
360
+ source: "account_status",
361
+ reference: [
362
+ { id: "active", name: "Active" },
363
+ { id: "canceled", name: "Canceled" },
364
+ { id: "expired", name: "Expired" },
365
+ { id: "suspended", name: "Suspended" },
366
+ { id: "soft_deleted", name: "Pending Deletion" }
367
+ ],
368
+ optionText: "name",
369
+ alwaysOn: true
370
+ }
371
+ ],
372
+ mutationMode: "pessimistic",
373
+ redirectAfterUpdate: false
374
+ }, drawerSettings),
375
+ __spreadProps(__spreadValues({
376
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
377
+ component: ResourceTemplate,
378
+ customRoutes: (resourceConfig) => TenantImpersonateResource(resourceConfig),
379
+ contextComponent: ({ resourceConfig, mode, children }) => {
380
+ console.log("TenantFormatsProvider", resourceConfig, mode);
381
+ return mode === "list" ? children : /* @__PURE__ */ jsx(
382
+ SystemRequestsCache,
383
+ {
384
+ cacheKey: "tenant_formats_cache",
385
+ apiUrl: "system/tenant/systemSettingFormats",
386
+ cacheSeconds: 300,
387
+ children
388
+ }
389
+ );
390
+ },
391
+ model: "system/tenant",
392
+ label: "resource.system.tenants.menu_list",
393
+ trash: true,
394
+ schema: tenantSystemAdminSchema,
395
+ //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
396
+ //references: [{ reference: 'roles', target: 'gitid', schema: roleSchema }],
397
+ icon: /* @__PURE__ */ jsx(Person, {}),
398
+ //group: 'resource.groups.system_resources',
399
+ group: "Accounts",
400
+ menu: [
401
+ {
402
+ title: "resource.system.tenants.menu_list",
403
+ redirect: "/system/tenant"
404
+ },
405
+ {
406
+ title: "\u{1F5D1}",
407
+ redirect: "/system/tenant/trash"
408
+ },
409
+ {
410
+ title: "Impersonar",
411
+ redirect: "/system/tenant/impersonate"
412
+ }
413
+ ],
414
+ //create: true,
415
+ refreshAfter: true,
416
+ toolbarCreateButton: { enabled: true },
417
+ referenceFilters: [
418
+ {
419
+ id: "Nombre",
420
+ label: "resource.system.tenants.filter_name",
421
+ source: "name",
422
+ // id field
423
+ reference: null,
424
+ optionText: null,
425
+ alwaysOn: true
426
+ }
427
+ ],
428
+ mainAction: {
429
+ title: "resource.system.tenants.main_action",
430
+ fn: "redirect",
431
+ // type: "ghost",
432
+ mode: "create",
433
+ redirect: "create"
434
+ },
435
+ search: false,
436
+ exporter: false,
437
+ postFormatter: (params) => {
438
+ if (params.systemMarketplaces) {
439
+ params.system_marketplace_ids = params.systemMarketplaces.map((item) => item.id);
440
+ }
441
+ return params;
442
+ },
443
+ redirectAfterUpdate: false,
444
+ mutationMode: "pessimistic",
445
+ editProps: {
446
+ queryOptions: { meta: { forceFetch: true } },
447
+ undoable: false,
448
+ emptyWhileLoading: true
449
+ },
450
+ dataGridProps: { stickyHeader: true, rowClick: false },
451
+ dataGridWrapper: (props) => /* @__PURE__ */ jsx(TableContainer, { sx: { maxHeight: 800 }, children: props.children })
452
+ }, drawerSettings), {
453
+ redirectAfterCreate: true
454
+ //toolbarCreateButton: { enabled: true },
455
+ //listEditButton: { enabled: true, component: QuickEditButton, props: { icon: <Bolt />, label: "", resource: "tenant/inline", navigation:"virtualhash", navigate: (id) => id, size: "small", color: "secondary" }},
456
+ }),
457
+ __spreadValues({
458
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
459
+ component: ResourceTemplate,
460
+ model: "system/role-permissions-bulk",
461
+ label: "resource.system.roles.label",
462
+ icon: /* @__PURE__ */ jsx(SystemUpdateAlt, {}),
463
+ //group: 'resource.groups.system_resources',
464
+ group: "System",
465
+ menu: [
466
+ {
467
+ title: "resource.system.roles.menu_list",
468
+ redirect: "/system/role-permissions-bulk"
469
+ }
470
+ ],
471
+ contextComponent: ({ resourceConfig, mode, children }) => {
472
+ console.log("TenantSettingsFormatsProvider", resourceConfig, mode);
473
+ return mode === "list" ? children : /* @__PURE__ */ jsx(
474
+ SystemRequestsCache,
475
+ {
476
+ cacheKey: "system_available_permissions_cache",
477
+ apiUrl: "system/permission/availablePermissions",
478
+ cacheSeconds: 300,
479
+ children
480
+ }
481
+ );
482
+ },
483
+ referenceFilters: [
484
+ {
485
+ id: "Nombre",
486
+ label: "resource.system.roles.filter_name",
487
+ source: "name",
488
+ // id field
489
+ reference: null,
490
+ optionText: null,
491
+ alwaysOn: true
492
+ }
493
+ ],
494
+ toolbarCreateButton: { enabled: true },
495
+ mainAction: {
496
+ title: "resource.system.roles.main_action",
497
+ fn: "redirect",
498
+ // type: "ghost",
499
+ mode: "create",
500
+ redirect: "create"
501
+ },
502
+ view: false,
503
+ schema: roleSchemaDataGrid,
504
+ dataGridProps: { stickyHeader: true },
505
+ listEditButton: { enabled: true },
506
+ listViewButton: { enabled: false },
507
+ toolbarDeleteButton: { enabled: false },
508
+ toolbarListButton: { enabled: false },
509
+ toolbarSaveButton: { enabled: true },
510
+ toolbarExportButton: { enabled: false },
511
+ toolbarEditButton: { enabled: false },
512
+ formGroupMode: "groups",
513
+ mutationMode: "pessimistic",
514
+ editProps: {
515
+ queryOptions: { meta: { forceFetch: true } },
516
+ undoable: false,
517
+ emptyWhileLoading: true
518
+ },
519
+ saveButtonAlwaysEnabled: true,
520
+ refreshAfter: true,
521
+ //redirect: "list",
522
+ //redirectAfterCreate: true,
523
+ //redirectAfterUpdate: true,
524
+ dataGridWrapper: (props) => /* @__PURE__ */ jsx(TableContainer, { sx: { maxHeight: 800 }, children: props.children }),
525
+ /* references: [
526
+ { reference: 'permission', tab: 'Permisos', target: 'role_id', schema: permissionSchema, type: "ReferenceManyField" },
527
+ ],*/
528
+ postFormatter: (params, _) => {
529
+ delete params.permissions;
530
+ return params;
531
+ }
532
+ }, drawerSettings),
533
+ __spreadValues({
534
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
535
+ component: ResourceTemplate,
536
+ trash: true,
537
+ isFormData: true,
538
+ model: "system/user",
539
+ //group: 'resource.groups.system_resources',
540
+ group: "Accounts",
541
+ label: "resource.system.users.label",
542
+ refreshAfter: true,
543
+ referenceFilters: [
544
+ // TODO: Cuando se cambia el cliente se debn mostrar sólo los CP de este filtro
545
+ {
546
+ id: "search",
547
+ label: "resource.system.users.filter_search",
548
+ source: "q",
549
+ reference: null,
550
+ optionText: "",
551
+ // field from the model
552
+ alwaysOn: true
553
+ }
554
+ ],
555
+ schema: [
556
+ {
557
+ tab: "Datos Usuario",
558
+ attribute: "avatar",
559
+ listAttribute: "image_path",
560
+ label: "Im\xE1gen Usuario",
561
+ type: String,
562
+ sortable: true,
563
+ inEdit: true,
564
+ inCreate: true,
565
+ inShow: true,
566
+ inList: false,
567
+ custom: true,
568
+ component: Avatar,
569
+ processor: "File"
570
+ },
571
+ {
572
+ label: "Nombre",
573
+ attribute: "name",
574
+ type: String,
575
+ tab: "Datos Usuario"
576
+ //validate: (name: string) => (name && name.length >= 3 ? undefined : <div>Name is too short</div>)
577
+ },
578
+ {
579
+ label: "Apellido",
580
+ attribute: "lastname",
581
+ type: String,
582
+ tab: "Datos Usuario"
583
+ //validate: (name: string) => (name && name.length >= 3 ? undefined : <div>Name is too short</div>)
584
+ },
585
+ {
586
+ tab: "Datos Usuario",
587
+ attribute: "public_id",
588
+ label: "Rut",
589
+ type: String,
590
+ fieldProps: { required: true, showDiv: true },
591
+ slotProps: { input: { fullWidth: true, autoComplete: "off" } },
592
+ sortable: true,
593
+ inEdit: true,
594
+ inCreate: true,
595
+ inShow: true,
596
+ inList: false,
597
+ validate: (value) => {
598
+ if (!value) throw Error("El campo es requerido");
599
+ if (!RutValidator(value)) {
600
+ throw Error("El Rut es inv\xE1lido");
601
+ }
602
+ }
603
+ },
604
+ {
605
+ label: "Email",
606
+ attribute: "email",
607
+ type: String,
608
+ tab: "Datos Usuario",
609
+ slotProps: { input: { fullWidth: true, "data-testid": "email-input" } }
610
+ //validate: (email: string) => (email && email.indexOf('@') > 0 ? undefined : 'Invalid email')
611
+ },
612
+ {
613
+ label: "Contrase\xF1a",
614
+ attribute: "password",
615
+ type: String,
616
+ isPassword: true,
617
+ slotProps: { input: { fullWidth: true, autoComplete: "new-password" } },
618
+ inList: false,
619
+ tab: "Contrase\xF1a",
620
+ validate: (password) => {
621
+ if (password && password.length < 6 && password.length > 1) {
622
+ throw Error("Min 6 caracteres");
623
+ }
624
+ }
625
+ },
626
+ {
627
+ label: "Confirmar Contrase\xF1a",
628
+ attribute: "password_confirmation",
629
+ type: String,
630
+ isPassword: true,
631
+ slotProps: { input: { fullWidth: true, autoComplete: "new-password" } },
632
+ inList: false,
633
+ tab: "Contrase\xF1a",
634
+ validate: (password, values) => {
635
+ if (values.password !== "" && values.password !== password) {
636
+ throw Error("Contrase\xF1as no coinciden.");
637
+ }
638
+ }
639
+ },
640
+ {
641
+ // @TODO Solo mostrar cuando se está creando:
642
+ label: "Genear Contrase\xF1a Aleatorea Autom\xE1ticamente",
643
+ attribute: "generate_password",
644
+ type: Boolean,
645
+ inList: false,
646
+ tab: "Contrase\xF1a"
647
+ },
648
+ {
649
+ tab: "Datos Usuario",
650
+ label: "Roles",
651
+ attribute: "roles",
652
+ listAttribute: "role_ids",
653
+ type: "system/role.name",
654
+ //type: Object,
655
+ // TODO Agregar un filtro, solo para traer los roles de cliente.
656
+ //pagination: false,
657
+ multiple: true,
658
+ inList: false,
659
+ inShow: false
660
+ //custom: true,
661
+ //componentProps:{ options: {fullwidth: true} },
662
+ //component: SelectArrayInput,
663
+ //searchField: "subdomain"
664
+ },
665
+ {
666
+ tab: "Datos Usuario",
667
+ label: "Roles",
668
+ attribute: "roles",
669
+ listAttribute: "role_ids",
670
+ type: "system/role.name",
671
+ //type: Object,
672
+ // TODO Agregar un filtro, solo para traer los roles de cliente.
673
+ //pagination: false,
674
+ multiple: true,
675
+ inEdit: false,
676
+ inCreate: false
677
+ //custom: true,
678
+ //componentProps:{ options: {fullwidth: true} },
679
+ //component: ReferenceArrayField,
680
+ //searchField: "subdomain"
681
+ },
682
+ {
683
+ tab: "Datos Usuario",
684
+ label: "Cliente",
685
+ attribute: "tenant_id",
686
+ //listAttribute: 'name',
687
+ type: "system/tenant.name",
688
+ //type: Object,
689
+ // TODO Agregar un filtro, solo para traer los roles de cliente.
690
+ pagination: false,
691
+ multiple: false,
692
+ //custom: true,
693
+ //componentProps: {multiple:false},
694
+ //componentProps: { options: {fullwidth: true} },
695
+ component: SelectInput,
696
+ fieldProps: {
697
+ allowEmpty: true,
698
+ // Allow empty selection
699
+ emptyText: "Sin cliente"
700
+ // Text for empty option
701
+ },
702
+ componentProps: {
703
+ parse: (value) => {
704
+ console.log("Parsing tenant_id value:", value);
705
+ if (value === "" || value === void 0 || value === "null") {
706
+ console.log("Converting to null");
707
+ return null;
708
+ }
709
+ if (typeof value === "string" && !isNaN(Number(value))) {
710
+ const numValue = Number(value);
711
+ console.log("Converting to number:", numValue);
712
+ return numValue;
713
+ }
714
+ console.log("Returning original value:", value);
715
+ return value;
716
+ },
717
+ format: (value) => {
718
+ console.log("Formatting tenant_id value:", value);
719
+ if (value === null || value === void 0) {
720
+ return "";
721
+ }
722
+ return value;
723
+ }
724
+ },
725
+ processor: "Null"
726
+ },
727
+ {
728
+ attribute: "active",
729
+ type: Boolean,
730
+ inList: true,
731
+ label: "Activo",
732
+ tab: "Datos Usuario",
733
+ processor: "Boolean"
734
+ }
735
+ /*{
736
+ attribute: 'avatar',
737
+ listAttribute: 'system/userclients.avatar',
738
+ type: ImageInput, // TODO: el componente no muestra la imágen
739
+ inList: false,
740
+ label: 'Imágen',
741
+ tab: 'Datos Usuario',
742
+ processor: 'RawFile',
743
+ //validate: (password: string) => (password && password.length >= 6 ? undefined : <div>Password is too short</div>)
744
+ },*/
745
+ ],
746
+ //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
747
+ //references: [{ reference: 'roles', target: 'id', schema: roleSchema }],
748
+ icon: /* @__PURE__ */ jsx(Person, {}),
749
+ redirectAfterUpdate: false,
750
+ showDialogAfterSubmit: true,
751
+ showNotifyAfterSubmit: true,
752
+ menu: [
753
+ {
754
+ title: "resource.system.users.menu_list",
755
+ redirect: "/system/user"
756
+ },
757
+ {
758
+ title: "\u{1F5D1}",
759
+ redirect: "/system/user/trash"
760
+ }
761
+ ],
762
+ //{
763
+ // title: "🗑",
764
+ // redirect: "/trash/admin/user",
765
+ //}],
766
+ mainAction: {
767
+ title: "resource.system.users.main_action",
768
+ // type: "ghost",
769
+ redirect: "/system/user/create"
770
+ },
771
+ mutationMode: "pessimistic",
772
+ // isFormData: true,
773
+ dataGridProps: { stickyHeader: true },
774
+ dataGridWrapper: (props) => /* @__PURE__ */ jsx(TableContainer, { sx: { maxHeight: 800 }, children: props.children }),
775
+ formPostFormatter: (params, form) => {
776
+ return form;
777
+ }
778
+ }, drawerSettings),
779
+ // ============ Subscription Plans Management ============
780
+ __spreadValues({
781
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
782
+ component: ResourceTemplate,
783
+ model: "system/subscription-plan",
784
+ label: "Subscription Plans",
785
+ //group: 'resource.groups.system_resources',
786
+ group: "System",
787
+ icon: /* @__PURE__ */ jsx(CardMembershipIcon, {}),
788
+ trash: true,
789
+ // Context wrapper for fetching limit formats and addon formats from backend
790
+ contextComponent: ({ resourceConfig, mode, children }) => {
791
+ console.log("SubscriptionPlanFormatsProvider", resourceConfig, mode);
792
+ return mode === "list" ? children : /* @__PURE__ */ jsx(SubscriptionPlanFormatsProvider, { cacheSeconds: 300, children });
793
+ },
794
+ schema: subscriptionPlanSchema,
795
+ menu: [
796
+ {
797
+ title: "All Plans",
798
+ redirect: "/system/subscription-plan"
799
+ }
800
+ ],
801
+ mainAction: {
802
+ title: "Create Plan",
803
+ fn: "redirect",
804
+ mode: "create",
805
+ redirect: "create"
806
+ },
807
+ referenceFilters: [
808
+ {
809
+ id: "name",
810
+ label: "Plan Name",
811
+ source: "name",
812
+ reference: null,
813
+ optionText: null,
814
+ alwaysOn: true
815
+ },
816
+ {
817
+ id: "is_active",
818
+ label: "Active",
819
+ source: "is_active",
820
+ reference: null,
821
+ optionText: null,
822
+ alwaysOn: false
823
+ }
824
+ ],
825
+ // Enable all CRUD operations
826
+ create: true,
827
+ view: true,
828
+ refreshAfter: true,
829
+ toolbarCreateButton: { enabled: true },
830
+ // Form configuration
831
+ mutationMode: "pessimistic",
832
+ editProps: {
833
+ queryOptions: { meta: { forceFetch: true } },
834
+ undoable: false,
835
+ emptyWhileLoading: true
836
+ },
837
+ // Data grid configuration
838
+ dataGridProps: { stickyHeader: true },
839
+ dataGridWrapper: (props) => /* @__PURE__ */ jsx(TableContainer, { sx: { maxHeight: 800 }, children: props.children }),
840
+ listEditButton: { enabled: true },
841
+ listViewButton: { enabled: true },
842
+ // Post-processing for form data
843
+ postFormatter: (params, method) => {
844
+ if (params.limits && typeof params.limits === "object") {
845
+ const cleanedLimits = {};
846
+ Object.entries(params.limits).forEach(([key, value]) => {
847
+ if (value === "" || value === void 0) {
848
+ cleanedLimits[key] = null;
849
+ } else {
850
+ cleanedLimits[key] = value;
851
+ }
852
+ });
853
+ params.limits = cleanedLimits;
854
+ }
855
+ if (params.prices && typeof params.prices === "object") {
856
+ const cleanedPrices = {};
857
+ Object.entries(params.prices).forEach(([currencyCode, value]) => {
858
+ if (value !== "" && value !== void 0 && value !== null) {
859
+ const numValue = parseInt(String(value), 10);
860
+ if (!isNaN(numValue)) {
861
+ cleanedPrices[currencyCode] = numValue;
862
+ }
863
+ }
864
+ });
865
+ params.prices = cleanedPrices;
866
+ }
867
+ if (!params.billing_cycle) {
868
+ params.billing_cycle = "monthly";
869
+ }
870
+ if (params.trial_days === void 0 || params.trial_days === null) {
871
+ params.trial_days = 0;
872
+ }
873
+ if (params.tier === void 0 || params.tier === null) {
874
+ params.tier = 1;
875
+ }
876
+ return params;
877
+ },
878
+ redirectAfterUpdate: false,
879
+ redirectAfterCreate: true
880
+ }, drawerSettings),
881
+ {
882
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
883
+ component: ResourceTemplate,
884
+ trash: true,
885
+ model: "ecommerce/currency",
886
+ label: "resource.ecommerce.currencies.label",
887
+ schema: [
888
+ {
889
+ label: "C\xF3digo",
890
+ attribute: "code",
891
+ type: String,
892
+ fieldOptions: {
893
+ helperText: "E.g: CLP | USD ..."
894
+ }
895
+ },
896
+ {
897
+ label: "Formato",
898
+ attribute: "format",
899
+ type: String,
900
+ fieldOptions: {
901
+ helperText: "E.g: 0.00 | 0,0.00 | 0"
902
+ }
903
+ },
904
+ {
905
+ label: "S\xEDmbolo",
906
+ attribute: "symbol",
907
+ type: String
908
+ },
909
+ {
910
+ label: "Enabled",
911
+ attribute: "is_enabled",
912
+ type: Boolean
913
+ },
914
+ {
915
+ label: "N\xFAmero formateado",
916
+ attribute: "formateado",
917
+ type: Number,
918
+ custom: true,
919
+ inList: false,
920
+ component: FormatCurrency
921
+ }
922
+ ],
923
+ //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
924
+ //references: [{ reference: 'roles', target: 'id', schema: roleSchema }],
925
+ icon: /* @__PURE__ */ jsx(Person, {}),
926
+ // group: "resource.groups.system_resources",
927
+ group: "System",
928
+ menu: [
929
+ {
930
+ title: "resource.ecommerce.currencies.menu_list",
931
+ redirect: "/ecommerce/currency"
932
+ },
933
+ {
934
+ title: "\u{1F5D1}",
935
+ redirect: "/ecommerce/currency/trash"
936
+ }
937
+ ],
938
+ mainAction: {
939
+ title: "resource.ecommerce.currencies.main_action",
940
+ mode: "create",
941
+ fn: "virtualhash",
942
+ redirect: "inline/create"
943
+ },
944
+ drawer: true,
945
+ drawerOptions: {
946
+ create: true,
947
+ edit: true,
948
+ view: false
949
+ },
950
+ mutationMode: "pessimistic",
951
+ saveButtonAlwaysEnabled: true,
952
+ listProps: { storeKey: false, filterDefaultValues: { show_disabled: true } },
953
+ // deshabilita persistencia deel estado, cache de los valores seleccionados sort, page, etc.
954
+ resetSelectedIdsOnLoad: true
955
+ },
956
+ // ============ Language Management ============
957
+ {
958
+ roles: [DASHAppConstants.system.SYSTEM_ROLE],
959
+ component: ResourceTemplate,
960
+ trash: true,
961
+ model: "common/language",
962
+ label: "resource.common.languages.label",
963
+ schema: [
964
+ {
965
+ label: "Code",
966
+ attribute: "code",
967
+ type: String,
968
+ fieldOptions: {
969
+ helperText: "ISO 639-1 code (e.g., en, es, pt)"
970
+ }
971
+ },
972
+ {
973
+ label: "Name",
974
+ attribute: "name",
975
+ type: String,
976
+ fieldOptions: {
977
+ helperText: "Language name in English"
978
+ }
979
+ },
980
+ {
981
+ label: "Native Name",
982
+ attribute: "native_name",
983
+ type: String,
984
+ fieldOptions: {
985
+ helperText: "Language name in native language (e.g., Espa\xF1ol)"
986
+ }
987
+ },
988
+ {
989
+ label: "Active",
990
+ attribute: "is_active",
991
+ type: Boolean
992
+ },
993
+ {
994
+ label: "Translations",
995
+ attribute: "translations",
996
+ type: Object,
997
+ inList: false,
998
+ inShow: true,
999
+ inEdit: true,
1000
+ inCreate: true,
1001
+ fieldOptions: {
1002
+ helperText: "JSON key-value pairs for translations"
1003
+ }
1004
+ }
1005
+ ],
1006
+ icon: /* @__PURE__ */ jsx(Person, {}),
1007
+ group: "System",
1008
+ menu: [
1009
+ {
1010
+ title: "resource.common.languages.menu_list",
1011
+ redirect: "/common/language"
1012
+ },
1013
+ {
1014
+ title: "\u{1F5D1}",
1015
+ redirect: "/common/language/trash"
1016
+ }
1017
+ ],
1018
+ mainAction: {
1019
+ title: "resource.common.languages.main_action",
1020
+ mode: "create",
1021
+ fn: "virtualhash",
1022
+ redirect: "inline/create"
1023
+ },
1024
+ drawer: true,
1025
+ drawerOptions: {
1026
+ create: true,
1027
+ edit: true,
1028
+ view: false
1029
+ },
1030
+ mutationMode: "pessimistic",
1031
+ saveButtonAlwaysEnabled: true,
1032
+ listProps: { storeKey: false },
1033
+ resetSelectedIdsOnLoad: true
1034
+ }
1035
+ ];
1036
+ var systemResources_default = systemResources;
1037
+ export {
1038
+ systemResources_default as default
1039
+ };