@dashadmin/dash-admin 1.3.73 → 1.3.74-srcfree.2

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 (553) hide show
  1. package/dist/AppAsyncWrapper.d.ts +3 -0
  2. package/dist/AppWrapper.d.ts +3 -0
  3. package/dist/DASHAdmin.d.ts +38 -0
  4. package/dist/RoutingWrapper.d.ts +10 -0
  5. package/dist/classes/DASHStorageClass.d.ts +5 -0
  6. package/dist/components/Input/RichTextField.d.ts +4 -0
  7. package/dist/components/Redirect.d.ts +9 -0
  8. package/dist/components/avatar/Avatar.d.ts +7 -0
  9. package/dist/components/avatar/SingleImageUploader.d.ts +9 -0
  10. package/dist/components/currency/Format.d.ts +4 -0
  11. package/dist/components/custom/Redirect.d.ts +7 -0
  12. package/dist/components/error/Error.d.ts +31 -0
  13. package/dist/components/geocoding/GeocodingField.d.ts +4 -0
  14. package/dist/components/i18n/BridgedLocalesMenuButton.d.ts +7 -0
  15. package/dist/components/i18n/LangSwitcher.d.ts +10 -0
  16. package/dist/components/loader/GlobalLoader.d.ts +6 -0
  17. package/dist/components/logs/LogFile.d.ts +6 -0
  18. package/dist/components/logs/LogFileById.d.ts +6 -0
  19. package/dist/components/logs/LogViewer.d.ts +8 -0
  20. package/dist/components/menu/AppMenu.d.ts +7 -0
  21. package/dist/components/menu/CustomMenuItemLink.d.ts +12 -0
  22. package/dist/components/menu/DarkToggleMode.d.ts +3 -0
  23. package/dist/components/menu/LanguageToggleMode.d.ts +3 -0
  24. package/dist/components/misc/CustomImageInput.d.ts +4 -0
  25. package/dist/components/misc/DASHGlobalErrorHandler.d.ts +10 -0
  26. package/dist/components/misc/DarkModeSwitcher.d.ts +3 -0
  27. package/dist/components/misc/HorizontalScroller.d.ts +14 -0
  28. package/dist/components/misc/LanguageSwitcher.d.ts +10 -0
  29. package/dist/components/misc/MuiSimpleJsonTable.d.ts +16 -0
  30. package/dist/components/misc/MultiLevelTable.d.ts +18 -0
  31. package/dist/components/misc/NoResults.d.ts +6 -0
  32. package/dist/components/misc/PDFViewer.d.ts +4 -0
  33. package/dist/components/navigation/Breadcrumbs.d.ts +14 -0
  34. package/dist/components/navigation/BreadcrumbsManager.d.ts +14 -0
  35. package/{src/components/navigation/index.tsx → dist/components/navigation/index.d.ts} +0 -1
  36. package/dist/components/panel/Error.d.ts +31 -0
  37. package/dist/components/permission/AvailablePermissionsContext.d.ts +11 -0
  38. package/dist/components/permission/PermissionsSelector.d.ts +4 -0
  39. package/dist/components/permission/PermissionsSelectorList.d.ts +4 -0
  40. package/dist/components/racustombuttons/CustomRAButton.d.ts +23 -0
  41. package/dist/components/racustombuttons/QuickButton.d.ts +15 -0
  42. package/dist/components/racustombuttons/QuickEditButton.d.ts +28 -0
  43. package/dist/components/racustombuttons/QuickIconButton.d.ts +27 -0
  44. package/dist/components/scrollbar/Scrollbar.d.ts +7 -0
  45. package/dist/components/selects/MultiSelect.d.ts +4 -0
  46. package/dist/components/selects/RASearchableSelect.d.ts +25 -0
  47. package/dist/components/selects/RASearchableSelectChips.d.ts +29 -0
  48. package/dist/components/selects/SearchableSelect.d.ts +3 -0
  49. package/dist/components/serviceAccount/ApiKeyRevealDialog.d.ts +7 -0
  50. package/dist/components/serviceAccount/ServiceAccountStatusSwitch.d.ts +4 -0
  51. package/dist/components/subscription/BillingCycleSelectInput.d.ts +3 -0
  52. package/dist/components/subscription/PlanAddonsSettings.d.ts +4 -0
  53. package/dist/components/subscription/PlanAuditLog.d.ts +4 -0
  54. package/dist/components/subscription/PlanFeaturesSettings.d.ts +4 -0
  55. package/dist/components/subscription/PlanLimitsSettings.d.ts +4 -0
  56. package/dist/components/subscription/PlanMetadataSettings.d.ts +4 -0
  57. package/dist/components/subscription/PlanPricesSettings.d.ts +4 -0
  58. package/{src/components/subscription/index.ts → dist/components/subscription/index.d.ts} +0 -2
  59. package/dist/components/svgelements/SvgLoading.d.ts +3 -0
  60. package/dist/components/svgelements/SvgLogo.d.ts +3 -0
  61. package/dist/components/svgelements/SvgLogoMin.d.ts +3 -0
  62. package/dist/components/svgelements/SvgShipping.d.ts +3 -0
  63. package/dist/components/tenancy/GlobalTenantWrapper.d.ts +6 -0
  64. package/dist/components/tenancy/TenantSwitcher.d.ts +16 -0
  65. package/dist/components/tenant/SettingsSections.d.ts +11 -0
  66. package/dist/components/tenant/TenancyPlan.d.ts +4 -0
  67. package/dist/components/tenant/TenancyPlan.js +307 -0
  68. package/dist/components/tenant/TenancySettings.d.ts +4 -0
  69. package/dist/components/tenant/TenantAttributes.d.ts +4 -0
  70. package/dist/components/tenant/TenantAttributesContext.d.ts +10 -0
  71. package/dist/components/tenant/TenantSelector.d.ts +11 -0
  72. package/dist/components/tenant/TenantSettings.d.ts +4 -0
  73. package/dist/components/tenant/TenantSettingsContext.d.ts +11 -0
  74. package/dist/components/tenant/TenantTheme.d.ts +4 -0
  75. package/dist/components/user/AvatarComponent.d.ts +6 -0
  76. package/dist/components/user/TenantAvatarComponent.d.ts +15 -0
  77. package/dist/components/user/UserPreferences.d.ts +3 -0
  78. package/dist/config/ACTIONS.d.ts +3 -0
  79. package/dist/config/ConstantsService.d.ts +14 -0
  80. package/dist/config/DASHAdminSystemConstants.d.ts +120 -0
  81. package/dist/config/PARSERS.d.ts +5 -0
  82. package/dist/contexts/DashQueryClientContext.d.ts +19 -0
  83. package/dist/contexts/DashResourceContext.d.ts +11 -0
  84. package/dist/contexts/I18nBridgeContext.d.ts +18 -0
  85. package/dist/contexts/I18nBridgeSetter.d.ts +3 -0
  86. package/dist/contexts/I18nReduxSync.d.ts +6 -0
  87. package/dist/contexts/SubscriptionPlanFormatsProvider.d.ts +13 -0
  88. package/dist/contexts/SystemRequestsCache.d.ts +16 -0
  89. package/dist/contexts/auth/AuthContext.d.ts +40 -0
  90. package/dist/contexts/auth/AuthContextLocalStorage.d.ts +27 -0
  91. package/dist/contexts/auth/DASHAuthenticationService.d.ts +46 -0
  92. package/dist/contexts/auth/WindowContext.d.ts +8 -0
  93. package/{src/contexts/auth/index.tsx → dist/contexts/auth/index.d.ts} +0 -1
  94. package/dist/contexts/com/FCMContext.d.ts +62 -0
  95. package/dist/contexts/com/LaravelEchoContext.d.ts +18 -0
  96. package/dist/contexts/com/LaravelEchoMgr.d.ts +8 -0
  97. package/dist/contexts/com/components/DefaultNotificationComponent.d.ts +6 -0
  98. package/dist/contexts/com/components/EchoNotificationsCenter.d.ts +3 -0
  99. package/dist/contexts/com/components/NotificationAttributesTable.d.ts +8 -0
  100. package/dist/contexts/com/components/NotificationRenderer.d.ts +8 -0
  101. package/dist/contexts/com/components/NotificationsWidget.d.ts +17 -0
  102. package/dist/contexts/com/components/notificationFormats.d.ts +38 -0
  103. package/dist/contexts/com/useLaravelEcho.d.ts +37 -0
  104. package/dist/contexts/dictionary/DictionaryContext.d.ts +21 -0
  105. package/dist/default-theme/DASHAppProviders.d.ts +21 -0
  106. package/dist/default-theme/DashThemeContext.d.ts +17 -0
  107. package/dist/default-theme/DashThemeHelperProvider.d.ts +10 -0
  108. package/dist/default-theme/DomainAppLayout.d.ts +13 -0
  109. package/dist/default-theme/DomainHeader.d.ts +6 -0
  110. package/dist/default-theme/DomainTheme.d.ts +8 -0
  111. package/dist/default-theme/FullLayoutMarkup.d.ts +9 -0
  112. package/dist/default-theme/StaticLayout.d.ts +5 -0
  113. package/{src/default-theme/index.tsx → dist/default-theme/index.d.ts} +0 -3
  114. package/dist/default-theme/menu/AppDashboardGrid.d.ts +24 -0
  115. package/dist/default-theme/menu/AppMaterialMenu.d.ts +11 -0
  116. package/dist/default-theme/menu/AppMenuComponents/SubmenuPortal.d.ts +15 -0
  117. package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.d.ts +22 -0
  118. package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.d.ts +11 -0
  119. package/dist/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.d.ts +4 -0
  120. package/dist/default-theme/menu/AppMenuComponents/expanded/SidebarItem.d.ts +3 -0
  121. package/dist/default-theme/menu/AppMenuComponents/getItem.d.ts +3 -0
  122. package/dist/default-theme/menu/AppMenuComponents/interfaces.d.ts +36 -0
  123. package/dist/default-theme/menu/AppMenuComponents/submenuConstants.d.ts +7 -0
  124. package/dist/default-theme/menu/AppSidebarMaterial.d.ts +8 -0
  125. package/dist/default-theme/menu/SidebarActions.d.ts +8 -0
  126. package/dist/default-theme/updateDomCssVariables.d.ts +6 -0
  127. package/dist/helpers/checkRole.d.ts +2 -0
  128. package/dist/helpers/parseAxiosError.d.ts +1 -0
  129. package/dist/hooks/audio/useAudio.d.ts +2 -0
  130. package/dist/hooks/axios.d.ts +5 -0
  131. package/dist/hooks/data/useDashboardStats.d.ts +13 -0
  132. package/dist/hooks/data/usePackageByClientsStats.d.ts +13 -0
  133. package/dist/hooks/data/usePackageByCommunesStats.d.ts +13 -0
  134. package/dist/hooks/data/usePackageStats.d.ts +13 -0
  135. package/dist/hooks/data/usePackageWithdrawDetails.d.ts +25 -0
  136. package/dist/hooks/data/useStats.d.ts +9 -0
  137. package/dist/hooks/isCurrentPath.d.ts +3 -0
  138. package/dist/hooks/notifications/WSMessagesManager.d.ts +4 -0
  139. package/dist/hooks/notifications/WSPusherManager.d.ts +3 -0
  140. package/dist/hooks/useBreadcrumbs.d.ts +21 -0
  141. package/dist/hooks/useClickOutside.d.ts +2 -0
  142. package/dist/hooks/useFormPersistance.d.ts +13 -0
  143. package/dist/hooks/useGlobalErrorMediator.d.ts +5 -0
  144. package/dist/hooks/useGlobalLoaderMgr.d.ts +3 -0
  145. package/dist/hooks/useHash.d.ts +2 -0
  146. package/dist/hooks/useLocalStorage.d.ts +2 -0
  147. package/dist/hooks/usePolyglotTranslation.d.ts +11 -0
  148. package/dist/hooks/usePrevious.d.ts +2 -0
  149. package/dist/hooks/usePrintSelected.d.ts +12 -0
  150. package/dist/hooks/useVirtualHash.d.ts +5 -0
  151. package/dist/hooks/window/useWindowSize.d.ts +6 -0
  152. package/{src/index.tsx → dist/index.d.ts} +22 -91
  153. package/dist/interfaces/IAppResourceConfig.d.ts +10 -0
  154. package/dist/interfaces/Log.d.ts +15 -0
  155. package/dist/interfaces/Tenant.d.ts +25 -0
  156. package/{src/interfaces/communication/IActions.tsx → dist/interfaces/communication/IActions.d.ts} +1 -2
  157. package/{src/interfaces/communication/INotification.tsx → dist/interfaces/communication/INotification.d.ts} +5 -7
  158. package/{src/interfaces/communication/IPayload.tsx → dist/interfaces/communication/IPayload.d.ts} +1 -1
  159. package/dist/interfaces/communication/IRequestAction.d.ts +10 -0
  160. package/dist/interfaces/communication/IRequestPayload.d.ts +7 -0
  161. package/dist/interfaces/communication/IResponseAction.d.ts +7 -0
  162. package/{src/interfaces/misc/IAny.tsx → dist/interfaces/misc/IAny.d.ts} +1 -1
  163. package/dist/interfaces/misc/IFlashMessage.d.ts +10 -0
  164. package/dist/interfaces/navigation/IAppMenu.d.ts +11 -0
  165. package/dist/interfaces/navigation/ICollapsableSidebarMenu.d.ts +10 -0
  166. package/dist/interfaces/navigation/IMenuItem.d.ts +14 -0
  167. package/{src/interfaces/notifications/IModel.tsx → dist/interfaces/notifications/IModel.d.ts} +1 -2
  168. package/dist/interfaces/notifications/IModelField.d.ts +10 -0
  169. package/dist/interfaces/notifications/IUserNotification.d.ts +11 -0
  170. package/{src/interfaces/notifications/IUserNotificationData.tsx → dist/interfaces/notifications/IUserNotificationData.d.ts} +6 -7
  171. package/dist/interfaces/notifications/IUserNotificationPayload.d.ts +10 -0
  172. package/dist/interfaces/user/IGetAuth.d.ts +75 -0
  173. package/dist/interfaces/user/ITenantSettings.d.ts +3 -0
  174. package/dist/interfaces/user/IUser.d.ts +60 -0
  175. package/dist/interfaces/user/IUserSettings.d.ts +36 -0
  176. package/{src/interfaces.tsx → dist/interfaces.d.ts} +5 -6
  177. package/dist/layout/AppLayout.d.ts +5 -0
  178. package/dist/layout/ApplicationLayout.d.ts +22 -0
  179. package/dist/layout/MotionWrapper.d.ts +22 -0
  180. package/dist/layout/MotionWrapper.original.d.ts +22 -0
  181. package/dist/layout/ResourceMenu.d.ts +7 -0
  182. package/dist/layout/ResoureLayout.d.ts +8 -0
  183. package/dist/layout/TransitionWrapper.d.ts +8 -0
  184. package/dist/pages/ChangePassword.d.ts +6 -0
  185. package/dist/pages/DASHLanding.d.ts +5 -0
  186. package/dist/pages/DASHLightWeightLogin.d.ts +6 -0
  187. package/dist/pages/DASHSimpleLogin.d.ts +6 -0
  188. package/dist/pages/Login.d.ts +3 -0
  189. package/dist/pages/Profile.d.ts +3 -0
  190. package/dist/pages/RecoverPassword.d.ts +3 -0
  191. package/dist/pages/SingleImageUploader.d.ts +8 -0
  192. package/dist/pages/VerifyAccount.d.ts +5 -0
  193. package/dist/providers/authProvider.d.ts +15 -0
  194. package/dist/providers/dataProvider.d.ts +31 -0
  195. package/dist/providers/i18n/en.d.ts +569 -0
  196. package/dist/providers/i18n/es.d.ts +2 -0
  197. package/dist/providers/i18n/languages.d.ts +571 -0
  198. package/dist/providers/i18n/mergeTranslations.d.ts +3 -0
  199. package/dist/providers/i18nProvider.d.ts +2 -0
  200. package/dist/react-admin-dash/RADashComponent.d.ts +7 -0
  201. package/dist/react-admin-dash/Resource.d.ts +16 -0
  202. package/dist/resources/Brand/BrandResource.d.ts +3 -0
  203. package/dist/resources/DASHResourceLoader.d.ts +17 -0
  204. package/dist/resources/Log/LogResource.d.ts +3 -0
  205. package/dist/resources/Tenant/ImpersonateTenantResource.d.ts +5 -0
  206. package/dist/resources/Trash/TrashTemplate.d.ts +3 -0
  207. package/dist/resources/User/components/AvatarUploadField.d.ts +6 -0
  208. package/dist/resources/User/components/PasswordFields.d.ts +8 -0
  209. package/dist/resources/User/getProfileMenu.d.ts +4 -0
  210. package/dist/resources/User/profileResource.d.ts +3 -0
  211. package/dist/resources/User/userLayout.d.ts +2 -0
  212. package/dist/resources/User/userResource.d.ts +3 -0
  213. package/dist/resources/User/userSchema.d.ts +3 -0
  214. package/dist/resources/User/usersFilters.d.ts +3 -0
  215. package/dist/resources.d.ts +11 -0
  216. package/dist/schemas/log.d.ts +3 -0
  217. package/dist/schemas/notification.d.ts +3 -0
  218. package/dist/schemas/permissions.d.ts +3 -0
  219. package/dist/schemas/roles.d.ts +3 -0
  220. package/dist/schemas/rolesDataGrid.d.ts +3 -0
  221. package/dist/schemas/subscription/components/SubscriptionActions.d.ts +4 -0
  222. package/dist/schemas/subscription/components/SubscriptionPaymentHistory.d.ts +4 -0
  223. package/dist/schemas/subscription/components/SubscriptionPlanFeatures.d.ts +4 -0
  224. package/dist/schemas/subscription/components/SubscriptionPlanPreview.d.ts +4 -0
  225. package/dist/schemas/subscription/components/SubscriptionPlanStats.d.ts +4 -0
  226. package/dist/schemas/subscription/components/SubscriptionStatusIndicator.d.ts +4 -0
  227. package/dist/schemas/subscription/subscriptionPlanSchema.d.ts +3 -0
  228. package/dist/schemas/subscription/subscriptionSchema.d.ts +3 -0
  229. package/dist/schemas/subscriptionPlan.d.ts +3 -0
  230. package/dist/schemas/tenant.d.ts +3 -0
  231. package/dist/schemas/tenantUser.d.ts +3 -0
  232. package/dist/schemas/tenant_superadmin.d.ts +3 -0
  233. package/dist/schemas/user.d.ts +3 -0
  234. package/dist/systemResources.d.ts +3 -0
  235. package/dist/systemResources.js +18 -2
  236. package/dist/systemResources.old.d.ts +3 -0
  237. package/dist/templates/ResourceTemplate.d.ts +10 -0
  238. package/dist/templates/ResourceTemplateCreate.d.ts +3 -0
  239. package/dist/templates/ResourceTemplateEdit.d.ts +3 -0
  240. package/dist/templates/ResourceTemplateFull.d.ts +7 -0
  241. package/dist/templates/ResourceTemplateList.d.ts +8 -0
  242. package/dist/templates/ResourceTemplateShow.d.ts +3 -0
  243. package/dist/templates/TrashTemplate.d.ts +3 -0
  244. package/dist/tenantResources.d.ts +3 -0
  245. package/dist/test_portal_bubbles.d.ts +2 -0
  246. package/dist/theme/AppHeader.d.ts +6 -0
  247. package/dist/theme/AppLayoutSetting.d.ts +28 -0
  248. package/dist/theme/AppLogo.d.ts +8 -0
  249. package/dist/theme/AppSidebar.d.ts +7 -0
  250. package/dist/theme/AppSidebarContent.d.ts +12 -0
  251. package/dist/theme/AppSidebarLogo.d.ts +9 -0
  252. package/dist/theme/components/PageTitle.d.ts +10 -0
  253. package/dist/utils/cache/CacheInvalidatorContext.d.ts +25 -0
  254. package/dist/utils/cache/CacheInvalidatorListenerComponent.d.ts +3 -0
  255. package/dist/utils/cache/useCacheInvalidatorListener.d.ts +4 -0
  256. package/dist/utils/convertFileToBase64.d.ts +2 -0
  257. package/dist/utils/convertToFile.d.ts +2 -0
  258. package/dist/utils/cookies.d.ts +5 -0
  259. package/dist/utils/dashDefaultQueryClient.d.ts +3 -0
  260. package/dist/utils/dataUrlToBlob.d.ts +2 -0
  261. package/dist/utils/deepReplace.d.ts +2 -0
  262. package/dist/utils/getProfileMenu.d.ts +3 -0
  263. package/dist/utils/getTenantSettings.d.ts +3 -0
  264. package/dist/utils/getType.d.ts +2 -0
  265. package/dist/utils/getUserSettings.d.ts +3 -0
  266. package/dist/utils/hasCode.d.ts +2 -0
  267. package/dist/utils/index.d.ts +19 -0
  268. package/dist/utils/injectTenantStyles.d.ts +2 -0
  269. package/dist/utils/isComponent.d.ts +2 -0
  270. package/dist/utils/navEvents.d.ts +28 -0
  271. package/dist/utils/regexp.d.ts +1 -0
  272. package/dist/utils/resolveObjectPath.d.ts +2 -0
  273. package/dist/utils/setNativeValue.d.ts +2 -0
  274. package/dist/utils/slugify.d.ts +1 -0
  275. package/dist/utils/validators/emailValidator.d.ts +2 -0
  276. package/dist/utils/validators/requiredValidator.d.ts +2 -0
  277. package/dist/utils/validators/rutValidator.d.ts +2 -0
  278. package/dist/utils/validators.d.ts +3 -0
  279. package/package.json +25 -22
  280. package/src/AppAsyncWrapper.tsx +0 -42
  281. package/src/AppWrapper.tsx +0 -45
  282. package/src/DASHAdmin.tsx +0 -502
  283. package/src/DASHAdmin.tsx.old +0 -456
  284. package/src/RoutingWrapper.tsx +0 -143
  285. package/src/classes/DASHStorageClass.tsx +0 -8
  286. package/src/components/Input/RichTextField.tsx +0 -27
  287. package/src/components/Redirect.tsx +0 -46
  288. package/src/components/avatar/Avatar.tsx +0 -71
  289. package/src/components/avatar/SingleImageUploader.tsx +0 -107
  290. package/src/components/currency/Format.tsx +0 -79
  291. package/src/components/custom/Redirect.tsx +0 -23
  292. package/src/components/error/Error.tsx +0 -168
  293. package/src/components/geocoding/GeocodingField.tsx +0 -167
  294. package/src/components/i18n/BridgedLocalesMenuButton.tsx +0 -160
  295. package/src/components/i18n/LangSwitcher.tsx +0 -204
  296. package/src/components/loader/GlobalLoader.tsx +0 -49
  297. package/src/components/logs/LogFile.tsx +0 -88
  298. package/src/components/logs/LogFileById.tsx +0 -68
  299. package/src/components/logs/LogViewer.tsx +0 -43
  300. package/src/components/menu/AppMenu.tsx +0 -22
  301. package/src/components/menu/CustomMenuItemLink.tsx +0 -61
  302. package/src/components/menu/DarkToggleMode.tsx +0 -65
  303. package/src/components/menu/LanguageToggleMode.tsx +0 -120
  304. package/src/components/misc/CustomImageInput.tsx +0 -62
  305. package/src/components/misc/DASHGlobalErrorHandler.tsx +0 -194
  306. package/src/components/misc/DarkModeSwitcher.tsx +0 -112
  307. package/src/components/misc/HorizontalScroller.tsx +0 -225
  308. package/src/components/misc/LanguageSwitcher.tsx +0 -199
  309. package/src/components/misc/MUIHtmlToolTip.tsx +0 -15
  310. package/src/components/misc/MuiSimpleJsonTable.tsx +0 -279
  311. package/src/components/misc/MultiLevelTable.tsx +0 -229
  312. package/src/components/misc/NoResults.tsx +0 -28
  313. package/src/components/misc/PDFViewer.tsx +0 -85
  314. package/src/components/navigation/Breadcrumbs.tsx +0 -220
  315. package/src/components/navigation/BreadcrumbsManager.tsx +0 -310
  316. package/src/components/panel/Error.tsx +0 -168
  317. package/src/components/permission/AvailablePermissionsContext.tsx +0 -173
  318. package/src/components/permission/PermissionsSelector.tsx +0 -834
  319. package/src/components/permission/PermissionsSelectorList.tsx +0 -473
  320. package/src/components/racustombuttons/CustomRAButton.tsx +0 -87
  321. package/src/components/racustombuttons/QuickButton.tsx +0 -117
  322. package/src/components/racustombuttons/QuickEditButton.tsx +0 -115
  323. package/src/components/racustombuttons/QuickIconButton.tsx +0 -122
  324. package/src/components/scrollbar/Scrollbar.tsx +0 -31
  325. package/src/components/selects/MultiSelect.tsx +0 -53
  326. package/src/components/selects/RASearchableSelect.tsx +0 -282
  327. package/src/components/selects/RASearchableSelectChips.tsx +0 -308
  328. package/src/components/selects/SearchableSelect.tsx +0 -139
  329. package/src/components/serviceAccount/ApiKeyRevealDialog.tsx +0 -129
  330. package/src/components/serviceAccount/ServiceAccountStatusSwitch.tsx +0 -99
  331. package/src/components/subscription/BillingCycleSelectInput.tsx +0 -68
  332. package/src/components/subscription/PlanAddonsSettings.tsx +0 -563
  333. package/src/components/subscription/PlanAuditLog.tsx +0 -453
  334. package/src/components/subscription/PlanFeaturesSettings.tsx +0 -243
  335. package/src/components/subscription/PlanLimitsSettings.tsx +0 -230
  336. package/src/components/subscription/PlanMetadataSettings.tsx +0 -306
  337. package/src/components/subscription/PlanPricesSettings.tsx +0 -307
  338. package/src/components/svgelements/SvgLoading.tsx +0 -229
  339. package/src/components/svgelements/SvgLogo.tsx +0 -53
  340. package/src/components/svgelements/SvgLogoMin.tsx +0 -64
  341. package/src/components/svgelements/SvgShipping.tsx +0 -673
  342. package/src/components/tenancy/GlobalTenantWrapper.tsx +0 -84
  343. package/src/components/tenancy/TenantSwitcher.tsx +0 -514
  344. package/src/components/tenant/SettingsSections.tsx +0 -151
  345. package/src/components/tenant/TenancySettings.tsx +0 -122
  346. package/src/components/tenant/TenantAttributes.tsx +0 -153
  347. package/src/components/tenant/TenantAttributesContext.tsx +0 -163
  348. package/src/components/tenant/TenantSelector.tsx +0 -142
  349. package/src/components/tenant/TenantSettings.tsx +0 -184
  350. package/src/components/tenant/TenantSettingsContext.tsx +0 -165
  351. package/src/components/tenant/TenantTheme.tsx +0 -172
  352. package/src/components/user/AvatarComponent.tsx +0 -317
  353. package/src/components/user/TenantAvatarComponent.tsx +0 -99
  354. package/src/components/user/UserPreferences.tsx +0 -677
  355. package/src/config/ACTIONS.tsx +0 -26
  356. package/src/config/ConstantsService.tsx +0 -44
  357. package/src/config/DASHAdminSystemConstants.tsx +0 -183
  358. package/src/config/PARSERS.tsx +0 -9
  359. package/src/contexts/DashQueryClientContext.tsx +0 -113
  360. package/src/contexts/DashResourceContext.tsx +0 -34
  361. package/src/contexts/I18nBridgeContext.tsx +0 -156
  362. package/src/contexts/I18nBridgeSetter.tsx +0 -39
  363. package/src/contexts/I18nReduxSync.tsx +0 -27
  364. package/src/contexts/SubscriptionPlanFormatsProvider.tsx +0 -217
  365. package/src/contexts/SystemRequestsCache.tsx +0 -215
  366. package/src/contexts/auth/AuthContext.tsx +0 -567
  367. package/src/contexts/auth/AuthContextLocalStorage.tsx +0 -140
  368. package/src/contexts/auth/DASHAuthenticationService.tsx +0 -915
  369. package/src/contexts/auth/WindowContext.tsx +0 -15
  370. package/src/contexts/com/FCMContext.tsx +0 -415
  371. package/src/contexts/com/LaravelEchoContext.tsx +0 -41
  372. package/src/contexts/com/LaravelEchoMgr.tsx +0 -155
  373. package/src/contexts/com/components/DefaultNotificationComponent.tsx +0 -20
  374. package/src/contexts/com/components/EchoNotificationsCenter.tsx +0 -65
  375. package/src/contexts/com/components/NotificationAttributesTable.tsx +0 -54
  376. package/src/contexts/com/components/NotificationRenderer.tsx +0 -42
  377. package/src/contexts/com/components/NotificationsWidget.tsx +0 -182
  378. package/src/contexts/com/components/notificationFormats.tsx +0 -50
  379. package/src/contexts/com/useLaravelEcho.tsx +0 -432
  380. package/src/contexts/dictionary/DictionaryContext.tsx +0 -94
  381. package/src/declarations.d.ts +0 -17
  382. package/src/default-theme/DASHAppProviders.tsx +0 -117
  383. package/src/default-theme/DashThemeContext.tsx +0 -209
  384. package/src/default-theme/DashThemeContext.tsx.fast +0 -143
  385. package/src/default-theme/DashThemeContext.tsx.old +0 -306
  386. package/src/default-theme/DashThemeHelperProvider.tsx +0 -98
  387. package/src/default-theme/DomainAppLayout.tsx +0 -166
  388. package/src/default-theme/DomainHeader.tsx +0 -162
  389. package/src/default-theme/DomainTheme.tsx +0 -59
  390. package/src/default-theme/FullLayoutMarkup.tsx +0 -231
  391. package/src/default-theme/StaticLayout.tsx +0 -47
  392. package/src/default-theme/menu/AppDashboardGrid.tsx +0 -279
  393. package/src/default-theme/menu/AppMaterialMenu.tsx +0 -546
  394. package/src/default-theme/menu/AppMenuComponents/SubmenuPortal.tsx +0 -61
  395. package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.tsx +0 -264
  396. package/src/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.tsx +0 -31
  397. package/src/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.tsx +0 -293
  398. package/src/default-theme/menu/AppMenuComponents/expanded/SidebarItem.tsx +0 -92
  399. package/src/default-theme/menu/AppMenuComponents/getItem.tsx +0 -17
  400. package/src/default-theme/menu/AppMenuComponents/interfaces.tsx +0 -41
  401. package/src/default-theme/menu/AppMenuComponents/submenuConstants.ts +0 -90
  402. package/src/default-theme/menu/AppSidebarMaterial.tsx +0 -339
  403. package/src/default-theme/menu/SidebarActions.tsx +0 -84
  404. package/src/default-theme/updateDomCssVariables.tsx +0 -176
  405. package/src/helpers/checkRole.tsx +0 -66
  406. package/src/helpers/parseAxiosError.tsx +0 -41
  407. package/src/hooks/audio/useAudio.tsx +0 -39
  408. package/src/hooks/axios.tsx +0 -165
  409. package/src/hooks/data/useDashboardStats.tsx +0 -65
  410. package/src/hooks/data/usePackageByClientsStats.tsx +0 -44
  411. package/src/hooks/data/usePackageByCommunesStats.tsx +0 -44
  412. package/src/hooks/data/usePackageStats.tsx +0 -69
  413. package/src/hooks/data/usePackageWithdrawDetails.tsx +0 -61
  414. package/src/hooks/data/useStats.tsx +0 -86
  415. package/src/hooks/isCurrentPath.tsx +0 -22
  416. package/src/hooks/notifications/WSMessagesManager.tsx +0 -152
  417. package/src/hooks/notifications/WSPusherManager.tsx +0 -92
  418. package/src/hooks/useBreadcrumbs.tsx +0 -329
  419. package/src/hooks/useClickOutside.tsx +0 -57
  420. package/src/hooks/useFormPersistance.tsx +0 -150
  421. package/src/hooks/useGlobalErrorMediator.tsx +0 -43
  422. package/src/hooks/useGlobalLoaderMgr.tsx +0 -21
  423. package/src/hooks/useHash.tsx +0 -27
  424. package/src/hooks/useLocalStorage.tsx +0 -196
  425. package/src/hooks/usePolyglotTranslation.tsx +0 -62
  426. package/src/hooks/usePrevious.tsx +0 -9
  427. package/src/hooks/usePrintSelected.tsx +0 -37
  428. package/src/hooks/useVirtualHash.tsx +0 -33
  429. package/src/hooks/window/useWindowSize.tsx +0 -36
  430. package/src/interfaces/IAppResourceConfig.tsx +0 -20
  431. package/src/interfaces/Log.tsx +0 -16
  432. package/src/interfaces/Tenant.tsx +0 -25
  433. package/src/interfaces/communication/IRequestAction.tsx +0 -10
  434. package/src/interfaces/communication/IRequestPayload.tsx +0 -7
  435. package/src/interfaces/communication/IResponseAction.tsx +0 -7
  436. package/src/interfaces/misc/IFlashMessage.tsx +0 -10
  437. package/src/interfaces/navigation/IAppMenu.ts +0 -14
  438. package/src/interfaces/navigation/ICollapsableSidebarMenu.ts +0 -12
  439. package/src/interfaces/navigation/IMenuItem.ts +0 -16
  440. package/src/interfaces/notifications/IModelField.tsx +0 -8
  441. package/src/interfaces/notifications/IUserNotification.tsx +0 -12
  442. package/src/interfaces/notifications/IUserNotificationPayload.tsx +0 -8
  443. package/src/interfaces/user/IGetAuth.tsx +0 -92
  444. package/src/interfaces/user/ITenantSettings.tsx +0 -3
  445. package/src/interfaces/user/IUser.tsx +0 -60
  446. package/src/interfaces/user/IUserSettings.tsx +0 -43
  447. package/src/layout/AppLayout.tsx +0 -112
  448. package/src/layout/ApplicationLayout.tsx +0 -197
  449. package/src/layout/MotionWrapper.original.tsx +0 -236
  450. package/src/layout/MotionWrapper.tsx +0 -236
  451. package/src/layout/ResourceMenu.tsx +0 -164
  452. package/src/layout/ResoureLayout.tsx +0 -105
  453. package/src/layout/TransitionWrapper.tsx +0 -125
  454. package/src/pages/ChangePassword.tsx +0 -179
  455. package/src/pages/DASHLanding.tsx +0 -22
  456. package/src/pages/DASHLightWeightLogin.tsx +0 -611
  457. package/src/pages/DASHSimpleLogin.tsx +0 -260
  458. package/src/pages/Login.tsx +0 -111
  459. package/src/pages/Profile.tsx +0 -357
  460. package/src/pages/RecoverPassword.tsx +0 -175
  461. package/src/pages/SingleImageUploader.tsx +0 -55
  462. package/src/pages/VerifyAccount.tsx +0 -128
  463. package/src/providers/authProvider.tsx +0 -217
  464. package/src/providers/dataProvider.tsx +0 -672
  465. package/src/providers/i18n/en.ts +0 -646
  466. package/src/providers/i18n/es.ts +0 -652
  467. package/src/providers/i18n/languages.tsx +0 -8
  468. package/src/providers/i18n/mergeTranslations.ts +0 -53
  469. package/src/providers/i18nProvider.tsx +0 -23
  470. package/src/react-admin-dash/RADashComponent.tsx +0 -240
  471. package/src/react-admin-dash/Resource.tsx +0 -77
  472. package/src/resources/Brand/BrandResource.tsx +0 -130
  473. package/src/resources/DASHResourceLoader.ts +0 -180
  474. package/src/resources/Log/LogResource.tsx +0 -73
  475. package/src/resources/Tenant/ImpersonateTenantResource.tsx +0 -113
  476. package/src/resources/Trash/TrashTemplate.tsx +0 -180
  477. package/src/resources/User/components/AvatarUploadField.tsx +0 -57
  478. package/src/resources/User/components/PasswordFields.tsx +0 -73
  479. package/src/resources/User/getProfileMenu.ts +0 -57
  480. package/src/resources/User/profileResource.tsx +0 -51
  481. package/src/resources/User/userLayout.tsx +0 -62
  482. package/src/resources/User/userResource.tsx +0 -111
  483. package/src/resources/User/userSchema.tsx +0 -213
  484. package/src/resources/User/usersFilters.tsx +0 -21
  485. package/src/resources.tsx +0 -280
  486. package/src/schemas/log.tsx +0 -45
  487. package/src/schemas/notification.tsx +0 -42
  488. package/src/schemas/permissions.tsx +0 -44
  489. package/src/schemas/roles.tsx +0 -48
  490. package/src/schemas/rolesDataGrid.tsx +0 -48
  491. package/src/schemas/subscription/components/SubscriptionActions.tsx +0 -153
  492. package/src/schemas/subscription/components/SubscriptionPaymentHistory.tsx +0 -127
  493. package/src/schemas/subscription/components/SubscriptionPlanFeatures.tsx +0 -162
  494. package/src/schemas/subscription/components/SubscriptionPlanPreview.tsx +0 -141
  495. package/src/schemas/subscription/components/SubscriptionPlanStats.tsx +0 -318
  496. package/src/schemas/subscription/components/SubscriptionStatusIndicator.tsx +0 -72
  497. package/src/schemas/subscription/subscriptionPlanSchema.tsx +0 -185
  498. package/src/schemas/subscription/subscriptionSchema.tsx +0 -152
  499. package/src/schemas/subscriptionPlan.ts +0 -422
  500. package/src/schemas/tenant.tsx +0 -129
  501. package/src/schemas/tenantUser.tsx +0 -96
  502. package/src/schemas/tenant_superadmin.tsx +0 -119
  503. package/src/schemas/user.tsx +0 -26
  504. package/src/systemResources.old.tsx +0 -928
  505. package/src/systemResources.tsx +0 -1369
  506. package/src/templates/ResourceTemplate.tsx +0 -240
  507. package/src/templates/ResourceTemplate.tsx.memoized_experiment +0 -350
  508. package/src/templates/ResourceTemplate.tsx.original +0 -396
  509. package/src/templates/ResourceTemplateCreate.tsx +0 -182
  510. package/src/templates/ResourceTemplateEdit.tsx +0 -176
  511. package/src/templates/ResourceTemplateFull.tsx +0 -581
  512. package/src/templates/ResourceTemplateList.tsx +0 -340
  513. package/src/templates/ResourceTemplateOld.tsx.bkup +0 -567
  514. package/src/templates/ResourceTemplateShow.tsx +0 -88
  515. package/src/templates/TrashTemplate.tsx +0 -179
  516. package/src/tenantResources.tsx +0 -223
  517. package/src/test_portal_bubbles.tsx +0 -40
  518. package/src/theme/AppHeader.tsx +0 -52
  519. package/src/theme/AppLayoutSetting.tsx +0 -33
  520. package/src/theme/AppLogo.tsx +0 -13
  521. package/src/theme/AppSidebar.tsx +0 -12
  522. package/src/theme/AppSidebarContent.tsx +0 -105
  523. package/src/theme/AppSidebarLogo.tsx +0 -48
  524. package/src/theme/components/PageTitle.tsx +0 -37
  525. package/src/utils/cache/CacheInvalidatorContext.tsx +0 -125
  526. package/src/utils/cache/CacheInvalidatorListenerComponent.tsx +0 -10
  527. package/src/utils/cache/useCacheInvalidatorListener.tsx +0 -27
  528. package/src/utils/convertFileToBase64.tsx +0 -9
  529. package/src/utils/convertToFile.tsx +0 -14
  530. package/src/utils/cookies.tsx +0 -33
  531. package/src/utils/dashDefaultQueryClient.tsx +0 -34
  532. package/src/utils/dataUrlToBlob.tsx +0 -30
  533. package/src/utils/deepReplace.tsx +0 -19
  534. package/src/utils/getProfileMenu.tsx +0 -41
  535. package/src/utils/getTenantSettings.tsx +0 -9
  536. package/src/utils/getType.tsx +0 -8
  537. package/src/utils/getUserSettings.tsx +0 -8
  538. package/src/utils/hasCode.tsx +0 -14
  539. package/src/utils/index.ts +0 -19
  540. package/src/utils/injectTenantStyles.ts +0 -28
  541. package/src/utils/isComponent.tsx +0 -45
  542. package/src/utils/navEvents.tsx +0 -91
  543. package/src/utils/prototypes.tsx +0 -5
  544. package/src/utils/regexp.tsx +0 -4
  545. package/src/utils/resolveObjectPath.tsx +0 -4
  546. package/src/utils/setNativeValue.tsx +0 -24
  547. package/src/utils/slugify.tsx +0 -11
  548. package/src/utils/validators/emailValidator.tsx +0 -6
  549. package/src/utils/validators/requiredValidator.tsx +0 -5
  550. package/src/utils/validators/rutValidator.tsx +0 -31
  551. package/src/utils/validators.tsx +0 -96
  552. /package/{src/components/permission/tsx → dist/components/tenant/AvailablePermissionsContext.d.ts} +0 -0
  553. /package/{src/components/tenant/AvailablePermissionsContext.tsx → dist/utils/prototypes.d.ts} +0 -0
@@ -1,1369 +0,0 @@
1
-
2
- import { SelectInput, FunctionField } from 'react-admin';
3
- import ResourceTemplate from './templates/ResourceTemplate';
4
- import IAppResourceConfig from './interfaces/IAppResourceConfig';
5
- import { TenantImpersonateResource } from './resources/Tenant/ImpersonateTenantResource';
6
- import tenantSystemAdminSchema from './schemas/tenant_superadmin';
7
- import TenancySettings from './components/tenant/TenancySettings';
8
- import subscriptionPlanSchema from './schemas/subscriptionPlan';
9
- import { RutValidator } from './utils/validators';
10
- import { DASHAppConstants } from 'dash-constants';
11
- import Avatar from './components/avatar/Avatar';
12
- import SystemUpdateAlt from '@mui/icons-material/SystemUpdateAlt';
13
- import Person from '@mui/icons-material/Person';
14
- import CardMembershipIcon from '@mui/icons-material/CardMembership';
15
- import PaidIcon from '@mui/icons-material/Paid';
16
- import TranslateIcon from '@mui/icons-material/Translate';
17
- import { lazy } from 'react';
18
- import BusinessIcon from "@mui/icons-material/Business";
19
- import Chip from "@mui/material/Chip";
20
-
21
- import SystemRequestsCache from './contexts/SystemRequestsCache';
22
- import { SubscriptionPlanFormatsProvider } from './contexts/SubscriptionPlanFormatsProvider';
23
- import roleSchemaDataGrid from './schemas/rolesDataGrid';
24
- import FormatCurrency from './components/currency/Format';
25
-
26
- const TableContainer = lazy(() => import('@mui/material/TableContainer'));
27
-
28
-
29
- const drawerSettings = {
30
- drawer: true,
31
- drawerOptions: {
32
- view: true,
33
- edit: false,
34
- create: false,
35
- },
36
- listViewButton: { props: { buttonProps: { variant: 'text', size: 'small' }, label: '' } },
37
- listEditButton: { props: { buttonProps: { variant: 'text', size: 'small' }, label: '' } },
38
- listDeleteButton: { confirm: true, props: { buttonProps: { variant: 'text', size: 'small' }, label: '' } },
39
- };
40
-
41
- const systemResources: IAppResourceConfig[] = [
42
-
43
- {
44
- roles: [DASHAppConstants.system.SYSTEM_ROLE],
45
- trash: true,
46
- component: ResourceTemplate,
47
- // Same F21 dynamic-tab pattern the sibling system/tenant resource
48
- // already uses below — fetches config('tenancies.setting_formats')
49
- // (core + whatever domain merges onto it, e.g. the AI Providers
50
- // governance tab) once per edit/view, cached client-side.
51
- contextComponent: ({ resourceConfig, mode, children }) => {
52
- return mode === "list" ? children : (
53
- <SystemRequestsCache
54
- cacheKey="tenancy_formats_cache"
55
- apiUrl="system/tenancy/systemSettingFormats"
56
- cacheSeconds={300}
57
- >
58
- {children}
59
- </SystemRequestsCache>
60
- )
61
- },
62
- model: "system/tenancy",
63
- //group: "resource.groups.system_resources",
64
- group: "Accounts",
65
- //path: "/tenancy/account",
66
- schema: [
67
- {
68
- tab: 'Account',
69
- label: 'Public Name',
70
- attribute: 'public_name',
71
- type: String,
72
- inList: true,
73
- inEdit: true,
74
- inShow: true,
75
- inCreate: false,
76
- },
77
- {
78
- tab: 'Account',
79
- label: 'Legal Name',
80
- attribute: 'legal_name',
81
- type: String,
82
- inList: false,
83
- inEdit: true,
84
- inShow: true,
85
- inCreate: false,
86
- },
87
- {
88
- tab: 'Account',
89
- label: 'Public ID',
90
- attribute: 'public_id',
91
- type: String,
92
- inList: true,
93
- inEdit: true,
94
- inShow: true,
95
- inCreate: false,
96
- },
97
- {
98
- tab: 'Account',
99
- label: 'Account Status',
100
- attribute: 'account_status_label',
101
- type: String,
102
- custom: true,
103
- inList: true,
104
- inEdit: false,
105
- inShow: true,
106
- inCreate: false,
107
- component: () => (
108
- <FunctionField
109
- label="Account Status"
110
- render={(record: any) => {
111
- const status = record?.account_status_label || record?.account_status || '-';
112
- const colorMap: Record<string, 'success' | 'warning' | 'error' | 'default'> = {
113
- 'Active': 'success',
114
- 'Suspended': 'warning',
115
- 'Canceled': 'error',
116
- 'Expired': 'default',
117
- 'Pending Deletion': 'error',
118
- };
119
- return <Chip label={status} color={colorMap[status] || 'default'} size="small" />;
120
- }}
121
- />
122
- ),
123
- },
124
- {
125
- tab: 'Account',
126
- label: 'Email',
127
- attribute: 'email',
128
- type: String,
129
- inList: true,
130
- inEdit: true,
131
- inShow: true,
132
- inCreate: false,
133
- },
134
- {
135
- tab: 'Account',
136
- label: 'URL',
137
- attribute: 'url',
138
- type: String,
139
- inList: false,
140
- inEdit: true,
141
- inShow: true,
142
- inCreate: false,
143
- },
144
- /*{
145
- tab: 'Account',
146
- label: 'Slug',
147
- attribute: 'slug',
148
- type: String,
149
- inList: true,
150
- inEdit: false,
151
- inShow: true,
152
- inCreate: false,
153
- },*/
154
- {
155
- tab: 'Account',
156
- label: 'Slug (URL)',
157
- attribute: 'slug',
158
- type: String,
159
- inList: false,
160
- validate: (value: string) => {
161
- if (!value) throw new Error('El slug es requerido');
162
- if (!/^[a-z0-9-]+$/.test(value)) throw new Error('Solo letras minúsculas, números y guiones');
163
- if (value.length > 50) throw new Error('Máximo 50 caracteres');
164
- },
165
- },
166
- {
167
- tab: 'Account',
168
- label: 'Currency',
169
- attribute: 'settings.currency',
170
- type: String,
171
- inList: false,
172
- inEdit: true,
173
- inShow: true,
174
- inCreate: true,
175
- fieldProps: {
176
- helperText: "Default currency code (e.g., USD, EUR)"
177
- }
178
- },
179
- {
180
- tab: 'Account',
181
- label: 'Timezone',
182
- attribute: 'settings.timezone',
183
- type: String,
184
- inList: false,
185
- inShow: true,
186
- inEdit: false,
187
- inCreate: false,
188
- },
189
- {
190
- tab: 'Account',
191
- label: 'Timezone',
192
- attribute: 'settings.timezone',
193
- type: String,
194
- custom: true,
195
- inList: false,
196
- inShow: false,
197
- inEdit: true,
198
- inCreate: true,
199
- component: SelectInput,
200
- componentProps: {
201
- source: 'settings.timezone',
202
- choices: [
203
- { id: 'America/Santiago', name: 'America/Santiago' },
204
- { id: 'UTC', name: 'UTC' },
205
- { id: 'America/New_York', name: 'America/New_York' },
206
- { id: 'Europe/London', name: 'Europe/London' },
207
- ],
208
- defaultValue: 'UTC'
209
- }
210
- },
211
- {
212
- tab: 'Subscription',
213
- label: 'Subscription Status',
214
- attribute: 'subscription_status',
215
- type: String,
216
- custom: true,
217
- inList: true,
218
- inEdit: false,
219
- inShow: true,
220
- inCreate: false,
221
- component: () => (
222
- <FunctionField
223
- label="Subscription Status"
224
- render={(record: any) => {
225
- const status = record?.subscription_status || 'none';
226
- const colorMap: Record<string, 'success' | 'warning' | 'error' | 'info' | 'default'> = {
227
- 'active': 'success',
228
- 'canceled': 'error',
229
- 'past_due': 'warning',
230
- 'trialing': 'info',
231
- 'none': 'default',
232
- };
233
- return <Chip label={status} color={colorMap[status] || 'default'} size="small" />;
234
- }}
235
- />
236
- ),
237
- },
238
- {
239
- tab: 'Subscription',
240
- label: 'Plan',
241
- attribute: 'subscription_plan_name',
242
- type: String,
243
- inList: false,
244
- inEdit: false,
245
- inShow: true,
246
- inCreate: false,
247
- },
248
- {
249
- tab: 'Subscription',
250
- label: 'Subscription State',
251
- attribute: 'subscription_state',
252
- type: String,
253
- inList: false,
254
- inEdit: false,
255
- inShow: true,
256
- inCreate: false,
257
- },
258
- {
259
- tab: 'Subscription',
260
- label: 'Gateway',
261
- attribute: 'gateway_type',
262
- type: String,
263
- inList: false,
264
- inEdit: false,
265
- inShow: true,
266
- inCreate: false,
267
- },
268
- {
269
- tab: 'Subscription',
270
- label: 'Canceled At',
271
- attribute: 'canceled_at',
272
- type: Date,
273
- inList: false,
274
- inEdit: false,
275
- inShow: true,
276
- inCreate: false,
277
- },
278
- {
279
- tab: 'Subscription',
280
- label: 'Expires At',
281
- attribute: 'expires_at',
282
- type: Date,
283
- inList: false,
284
- inEdit: false,
285
- inShow: true,
286
- inCreate: false,
287
- },
288
- {
289
- tab: 'Usage',
290
- label: 'Tenants',
291
- attribute: 'tenants_count',
292
- type: Number,
293
- inList: true,
294
- inEdit: false,
295
- inShow: true,
296
- inCreate: false,
297
- },
298
- {
299
- tab: 'Usage',
300
- label: 'Users',
301
- attribute: 'users_count',
302
- type: Number,
303
- inList: true,
304
- inEdit: false,
305
- inShow: true,
306
- inCreate: false,
307
- },
308
- {
309
- tab: 'Trial',
310
- label: 'Trial Ends At',
311
- attribute: 'trial_ends_at',
312
- type: Date,
313
- inList: false,
314
- inEdit: false,
315
- inShow: true,
316
- inCreate: false,
317
- },
318
- {
319
- tab: 'Trial',
320
- label: 'Is On Trial',
321
- attribute: 'is_on_trial',
322
- type: Boolean,
323
- inList: true,
324
- inEdit: false,
325
- inShow: true,
326
- inCreate: false,
327
- },
328
- {
329
- tab: 'Trial',
330
- label: 'Trial Days Remaining',
331
- attribute: 'trial_days_remaining',
332
- type: Number,
333
- inList: false,
334
- inEdit: false,
335
- inShow: true,
336
- inCreate: false,
337
- },
338
- {
339
- tab: 'AI Providers',
340
- label: 'AI Providers',
341
- attribute: 'settings', // custom component owns rendering; 'attribute' is required by the interface, not used directly
342
- type: Object,
343
- custom: true,
344
- inList: false,
345
- component: TenancySettings,
346
- inCreate: false,
347
- inShow: false,
348
- },
349
- ],
350
- label: "Accounts",
351
- icon: <BusinessIcon />,
352
-
353
- create: false,
354
-
355
- menu: [
356
- {
357
- title: 'Accounts',
358
- redirect: '/system/tenancy',
359
- },
360
- {
361
- title: '🗑',
362
- redirect: '/system/tenancy/trash',
363
- },
364
- ],
365
-
366
- referenceFilters: [
367
- {
368
- id: "PublicName",
369
- label: "Name",
370
- source: "public_name",
371
- reference: null,
372
- optionText: null,
373
- alwaysOn: true,
374
- },
375
- {
376
- id: "AccountStatus",
377
- label: "Account Status",
378
- source: "account_status",
379
- reference: [
380
- { id: 'active', name: 'Active' },
381
- { id: 'canceled', name: 'Canceled' },
382
- { id: 'expired', name: 'Expired' },
383
- { id: 'suspended', name: 'Suspended' },
384
- { id: 'soft_deleted', name: 'Pending Deletion' },
385
- ],
386
- optionText: "name",
387
- alwaysOn: true,
388
- },
389
- ],
390
-
391
- mutationMode: "pessimistic",
392
- redirectAfterUpdate: false,
393
-
394
- // Defensive normalization, same pattern already proven in
395
- // kt-ecommerce's tenant/tenant resource's own postFormatter: if
396
- // 'settings' ever ends up as a JS Array (react-hook-form keeps it
397
- // array-shaped once seeded that way, even after nested dot-path
398
- // fields like 'settings.bionic_mode' are set on it), JSON.stringify
399
- // silently drops the non-index keys on submit — the AI Providers tab
400
- // then looks saved in the UI but nothing persists. The backend now
401
- // always seeds 'settings' as an object on load (SystemTenancyResource
402
- // + TenancyController::_postGetOne), which should prevent this at
403
- // the source, but this stays as a second line of defense — cheap,
404
- // and it's exactly what already shipped for the sibling resource.
405
- postFormatter: (params) => {
406
- if (Array.isArray(params.settings)) {
407
- params.settings = Object.fromEntries(Object.entries(params.settings));
408
- }
409
- if (Array.isArray(params.metadata)) {
410
- params.metadata = Object.fromEntries(Object.entries(params.metadata));
411
- }
412
- return params;
413
- },
414
-
415
- ...drawerSettings,
416
- },
417
-
418
- {
419
- roles: [DASHAppConstants.system.SYSTEM_ROLE],
420
- component: ResourceTemplate,
421
- customRoutes: (resourceConfig) => TenantImpersonateResource(resourceConfig),
422
- contextComponent: ({ resourceConfig, mode, children }) => {
423
- console.log("TenantFormatsProvider", resourceConfig, mode);
424
- return mode === "list" ? children : (
425
- <SystemRequestsCache
426
- cacheKey="tenant_formats_cache"
427
- apiUrl="system/tenant/systemSettingFormats"
428
- cacheSeconds={300}
429
- >
430
- {children}
431
- </SystemRequestsCache>
432
- )
433
- },
434
- model: 'system/tenant',
435
- label: 'resource.system.tenants.menu_list',
436
- trash: true,
437
- schema: tenantSystemAdminSchema,
438
- //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
439
- //references: [{ reference: 'roles', target: 'gitid', schema: roleSchema }],
440
- icon: <Person />,
441
- //group: 'resource.groups.system_resources',
442
- group: "Accounts",
443
- menu: [{
444
- title: 'resource.system.tenants.menu_list',
445
- redirect: '/system/tenant',
446
- },
447
-
448
- {
449
- title: "🗑",
450
- redirect: "/system/tenant/trash",
451
- },
452
- {
453
- title: 'Impersonar',
454
- redirect: '/system/tenant/impersonate',
455
- },
456
-
457
- ],
458
- //create: true,
459
- refreshAfter: true,
460
- toolbarCreateButton: { enabled: true },
461
-
462
- referenceFilters: [
463
- {
464
- id: "Nombre",
465
- label: "resource.system.tenants.filter_name",
466
- source: "name", // id field
467
- reference: null,
468
- optionText: null,
469
- alwaysOn: true,
470
- },
471
- ],
472
-
473
- mainAction: {
474
- title: 'resource.system.tenants.main_action',
475
- fn: "redirect",
476
- // type: "ghost",
477
- mode: "create",
478
- redirect: "create",
479
- },
480
-
481
- search: false,
482
- exporter: false,
483
- postFormatter: (params) => {
484
-
485
- // Same array-vs-object defense as system/tenancy's own
486
- // postFormatter above — see that one's comment for why.
487
- if (Array.isArray(params.settings)) {
488
- params.settings = Object.fromEntries(Object.entries(params.settings));
489
- }
490
- if (Array.isArray(params.attributes)) {
491
- params.attributes = Object.fromEntries(Object.entries(params.attributes));
492
- }
493
-
494
- if (params.systemMarketplaces) {
495
- params.system_marketplace_ids = params.systemMarketplaces.map((item) => item.id);
496
- }
497
-
498
- return params;
499
- },
500
- redirectAfterUpdate: false,
501
-
502
- mutationMode: 'pessimistic',
503
- editProps: {
504
- queryOptions: { meta: { forceFetch: true } },
505
- undoable: false,
506
- emptyWhileLoading: true
507
- },
508
- dataGridProps: { stickyHeader: true, rowClick: false },
509
- dataGridWrapper: (props: any) => <TableContainer sx={{ maxHeight: 800 }} >{props.children}</TableContainer>,
510
- //listEditButton: { enabled: true },
511
-
512
- ...drawerSettings,
513
- redirectAfterCreate: true,
514
-
515
- //toolbarCreateButton: { enabled: true },
516
- //listEditButton: { enabled: true, component: QuickEditButton, props: { icon: <Bolt />, label: "", resource: "tenant/inline", navigation:"virtualhash", navigate: (id) => id, size: "small", color: "secondary" }},
517
-
518
-
519
- },
520
-
521
-
522
- {
523
- // Platform-wide AI provider credentials (bionic/ollama/deepinfra/
524
- // aws_bedrock) — see backend App\AiAgentCore\Models\SystemAiProviderKey.
525
- // The 4 rows are seeded by migration and never created/deleted here;
526
- // an admin only ever edits an existing row's credentials/flags.
527
- // Credential VALUES are never returned by the API once saved
528
- // (SystemAiProviderKeyResource only exposes has_api_key/
529
- // has_access_key_id/has_secret_access_key) — the fields below are
530
- // write-only by design, same convention as any masked secret field.
531
- roles: [DASHAppConstants.system.SYSTEM_ROLE],
532
- component: ResourceTemplate,
533
- model: "system/system_ai_provider_key",
534
- group: "Accounts",
535
- label: "AI Providers",
536
- icon: <SystemUpdateAlt />,
537
- create: false,
538
-
539
- schema: [
540
- {
541
- tab: 'General',
542
- label: 'Provider',
543
- attribute: 'provider',
544
- type: String,
545
- inList: true,
546
- inEdit: false,
547
- inShow: true,
548
- inCreate: false,
549
- },
550
- {
551
- tab: 'General',
552
- label: 'Active',
553
- attribute: 'is_active',
554
- type: Boolean,
555
- inList: true,
556
- inEdit: true,
557
- inShow: true,
558
- inCreate: false,
559
- },
560
- {
561
- tab: 'General',
562
- label: 'Platform Default Provider',
563
- attribute: 'is_default',
564
- type: Boolean,
565
- inList: true,
566
- inEdit: true,
567
- inShow: true,
568
- inCreate: false,
569
- fieldProps: {
570
- helperText: 'The fallback provider used platform-wide, and for any Tenancy that disables a provider without setting its own default.',
571
- },
572
- },
573
- {
574
- tab: 'General',
575
- label: 'API Key',
576
- attribute: 'credentials.api_key',
577
- type: String,
578
- inList: false,
579
- inEdit: true,
580
- inShow: false,
581
- inCreate: false,
582
- fieldProps: {
583
- helperText: 'Bionic / Ollama / DeepInfra only. Write-only — leave blank to keep the current value.',
584
- },
585
- },
586
- {
587
- tab: 'General',
588
- label: 'AWS Access Key ID',
589
- attribute: 'credentials.access_key_id',
590
- type: String,
591
- inList: false,
592
- inEdit: true,
593
- inShow: false,
594
- inCreate: false,
595
- fieldProps: {
596
- helperText: 'AWS Bedrock only. Write-only — leave blank to keep the current value.',
597
- },
598
- },
599
- {
600
- tab: 'General',
601
- label: 'AWS Secret Access Key',
602
- attribute: 'credentials.secret_access_key',
603
- type: String,
604
- inList: false,
605
- inEdit: true,
606
- inShow: false,
607
- inCreate: false,
608
- fieldProps: {
609
- helperText: 'AWS Bedrock only. Write-only — leave blank to keep the current value.',
610
- },
611
- },
612
- {
613
- // The platform-wide floor of SystemAiProviderKey::resolveServiceTier()'s
614
- // 3-level cascade (System -> Tenancy -> Lab) — see
615
- // vanexa-backend-domain/docs/CASCADING_AI_SETTINGS_KEY_PERMISSIONS.md.
616
- // Reaches for the SAME static-choices 'select'/'multiselect' types the
617
- // Tenancy-level "AI Providers" tab already uses (dash-auto-admin's
618
- // AttributeToInput/AttributeToField) — a hand-written schema like this
619
- // one is a normal consumer of those types too, not just the dynamic
620
- // setting_formats pipeline.
621
- tab: 'General',
622
- label: 'DeepInfra Service Tier (Platform Default)',
623
- attribute: 'settings.service_tier',
624
- type: 'select',
625
- inList: false,
626
- inEdit: true,
627
- inShow: true,
628
- inCreate: false,
629
- options: [
630
- { id: 'flex', name: 'Flex (0.8x — best-effort, may wait or be rejected)' },
631
- { id: 'standard', name: 'Standard (1.0x)' },
632
- { id: 'priority', name: 'Priority (1.5x — skips queues)' },
633
- ],
634
- fieldProps: {
635
- helperText: 'DeepInfra only. Used whenever a Tenancy has not set its own default.',
636
- // Matches resolveServiceTier()'s OWN eventual fallback
637
- // (SystemAiProviderKey::SERVICE_TIER_DEFAULT) — a fresh
638
- // row with no settings yet shows what would actually be
639
- // used, not a misleadingly blank field.
640
- defaultValue: 'standard',
641
- },
642
- },
643
- {
644
- tab: 'General',
645
- label: 'DeepInfra Tiers Any Tenancy May Ever Use',
646
- attribute: 'settings.service_tier_allowed',
647
- type: 'multiselect',
648
- inList: false,
649
- inEdit: true,
650
- inShow: true,
651
- inCreate: false,
652
- options: [
653
- { id: 'flex', name: 'Flex (0.8x — best-effort, may wait or be rejected)' },
654
- { id: 'standard', name: 'Standard (1.0x)' },
655
- { id: 'priority', name: 'Priority (1.5x — skips queues)' },
656
- ],
657
- fieldProps: {
658
- helperText: 'DeepInfra only. The HARD CEILING — a Tenancy\'s own allow-list can only narrow this, never exceed it. Leave all three selected unless a tier should be forbidden platform-wide.',
659
- // Matches resolveServiceTier()'s own default when this
660
- // key has never been saved (SystemAiProviderKey::
661
- // providerSetting()'s $default param, called with
662
- // SERVICE_TIERS) — an unrestricted ceiling, shown as such
663
- // rather than as an empty, seemingly-forbid-everything list.
664
- defaultValue: ['flex', 'standard', 'priority'],
665
- },
666
- },
667
- ],
668
-
669
- menu: [
670
- {
671
- title: 'AI Providers',
672
- redirect: '/system/system_ai_provider_key',
673
- },
674
- ],
675
-
676
- mutationMode: "pessimistic",
677
- redirectAfterUpdate: false,
678
-
679
- drawer: true,
680
- drawerOptions: {
681
- view: false,
682
- edit: true,
683
- create: false,
684
- },
685
- listEditButton: { props: { buttonProps: { variant: 'text', size: 'small' }, label: '' } },
686
- },
687
-
688
-
689
-
690
-
691
-
692
- {
693
- roles: [DASHAppConstants.system.SYSTEM_ROLE],
694
- component: ResourceTemplate,
695
- model: 'system/role-permissions-bulk',
696
- label: 'resource.system.roles.label',
697
- icon: <SystemUpdateAlt />,
698
- //group: 'resource.groups.system_resources',
699
- group: "System",
700
- menu: [
701
- {
702
- title: 'resource.system.roles.menu_list',
703
- redirect: '/system/role-permissions-bulk',
704
- },
705
- ],
706
-
707
- contextComponent: ({ resourceConfig, mode, children }) => {
708
- console.log("TenantSettingsFormatsProvider", resourceConfig, mode);
709
-
710
- return mode === "list" ? children : <SystemRequestsCache
711
- cacheKey="system_available_permissions_cache"
712
- apiUrl="system/permission/availablePermissions"
713
- cacheSeconds={300}
714
- >{children}</SystemRequestsCache>
715
- },
716
-
717
- referenceFilters: [
718
- {
719
- id: "Nombre",
720
- label: "resource.system.roles.filter_name",
721
- source: "name", // id field
722
- reference: null,
723
- optionText: null,
724
- alwaysOn: true,
725
- },
726
- ],
727
- toolbarCreateButton: { enabled: true },
728
-
729
- mainAction: {
730
- title: 'resource.system.roles.main_action',
731
- fn: "redirect",
732
- // type: "ghost",
733
- mode: "create",
734
- redirect: "create",
735
- },
736
-
737
- view: false,
738
- schema: roleSchemaDataGrid,
739
-
740
-
741
-
742
- dataGridProps: { stickyHeader: true },
743
- listEditButton: { enabled: true },
744
- listViewButton: { enabled: false },
745
-
746
- toolbarDeleteButton: { enabled: false },
747
- toolbarListButton: { enabled: false },
748
- toolbarSaveButton: { enabled: true },
749
- toolbarExportButton: { enabled: false },
750
- toolbarEditButton: { enabled: false },
751
-
752
-
753
- formGroupMode: 'groups',
754
-
755
- mutationMode: 'pessimistic',
756
- editProps: {
757
- queryOptions: { meta: { forceFetch: true } },
758
- undoable: false,
759
- emptyWhileLoading: true
760
- },
761
-
762
- saveButtonAlwaysEnabled: true,
763
- refreshAfter: true,
764
- //redirect: "list",
765
- //redirectAfterCreate: true,
766
- //redirectAfterUpdate: true,
767
-
768
- dataGridWrapper: (props: any) => (
769
- <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
770
- ),
771
- /* references: [
772
- { reference: 'permission', tab: 'Permisos', target: 'role_id', schema: permissionSchema, type: "ReferenceManyField" },
773
- ],*/
774
- postFormatter: (params, _) => {
775
- /*if(method === "update") {
776
- params._method = "PUT";
777
- }*/
778
- delete params.permissions
779
- return params
780
- },
781
- ...drawerSettings,
782
- },
783
-
784
-
785
- {
786
- roles: [DASHAppConstants.system.SYSTEM_ROLE],
787
- component: ResourceTemplate,
788
- trash: true,
789
- isFormData: true,
790
- model: 'system/user',
791
- //group: 'resource.groups.system_resources',
792
- group: "Accounts",
793
- label: 'resource.system.users.label',
794
- refreshAfter: true,
795
- referenceFilters: [
796
- // TODO: Cuando se cambia el cliente se debn mostrar sólo los CP de este filtro
797
- {
798
- id: 'search',
799
- label: 'resource.system.users.filter_search',
800
- source: 'q',
801
- reference: null,
802
- optionText: '', // field from the model
803
- alwaysOn: true,
804
- },
805
- ],
806
- schema: [
807
- {
808
- tab: 'Datos Usuario',
809
- attribute: 'avatar',
810
- listAttribute: 'image_path',
811
- label: 'Imágen Usuario',
812
- type: String,
813
- sortable: true,
814
- inEdit: true,
815
- inCreate: true,
816
- inShow: true,
817
- inList: false,
818
- custom: true,
819
- component: Avatar,
820
- processor: 'File',
821
- },
822
- {
823
- label: 'Nombre',
824
- attribute: 'name',
825
- type: String,
826
- tab: 'Datos Usuario',
827
- //validate: (name: string) => (name && name.length >= 3 ? undefined : <div>Name is too short</div>)
828
- },
829
- {
830
- label: "Apellido",
831
- attribute: "lastname",
832
- type: String,
833
- tab: "Datos Usuario",
834
- //validate: (name: string) => (name && name.length >= 3 ? undefined : <div>Name is too short</div>)
835
- },
836
- {
837
- tab: 'Datos Usuario',
838
- attribute: 'public_id',
839
- label: 'Rut',
840
- type: String,
841
- fieldProps: { required: true/*, validate: [required()],*/, showDiv: true },
842
- slotProps: { input: { fullWidth: true, autoComplete: "off" } },
843
- sortable: true,
844
- inEdit: true,
845
- inCreate: true,
846
- inShow: true,
847
- inList: false,
848
- validate: (value) => {
849
-
850
- if (!value) throw Error('El campo es requerido');
851
-
852
- if (!RutValidator(value)) {
853
- throw Error('El Rut es inválido');
854
- }
855
- }
856
- },
857
- {
858
- label: 'Email',
859
- attribute: 'email',
860
- type: String,
861
- tab: 'Datos Usuario',
862
- slotProps: { input: { fullWidth: true, "data-testid": "email-input" } },
863
- //validate: (email: string) => (email && email.indexOf('@') > 0 ? undefined : 'Invalid email')
864
- },
865
- {
866
- label: 'Contraseña',
867
- attribute: 'password',
868
- type: String,
869
- isPassword: true,
870
- slotProps: { input: { fullWidth: true, autoComplete: "new-password" } },
871
- inList: false,
872
- tab: 'Contraseña',
873
- validate: (password: string) => {
874
- if (password && password.length < 6 && password.length > 1) {
875
- throw Error('Min 6 caracteres');
876
- }
877
- },
878
- },
879
- {
880
- label: 'Confirmar Contraseña',
881
- attribute: 'password_confirmation',
882
- type: String,
883
- isPassword: true,
884
- slotProps: { input: { fullWidth: true, autoComplete: "new-password" } },
885
- inList: false,
886
- tab: 'Contraseña',
887
- validate: (password: string, values: any) => {
888
-
889
- if (values.password !== "" && (values.password !== password)) {
890
- throw Error('Contraseñas no coinciden.');
891
- }
892
- },
893
- },
894
- {
895
- // @TODO Solo mostrar cuando se está creando:
896
- label: 'Genear Contraseña Aleatorea Automáticamente',
897
- attribute: 'generate_password',
898
- type: Boolean,
899
- inList: false,
900
- tab: 'Contraseña',
901
- },
902
- {
903
- tab: 'Datos Usuario',
904
- label: 'Roles',
905
- attribute: 'roles',
906
- listAttribute: 'role_ids',
907
- type: 'system/role.name',
908
- //type: Object,
909
- // TODO Agregar un filtro, solo para traer los roles de cliente.
910
- //pagination: false,
911
- multiple: true,
912
- inList: false,
913
- inShow: false,
914
- //custom: true,
915
- //componentProps:{ options: {fullwidth: true} },
916
- //component: SelectArrayInput,
917
- //searchField: "subdomain"
918
- },
919
- {
920
- tab: 'Datos Usuario',
921
- label: 'Roles',
922
- attribute: 'roles',
923
- listAttribute: 'role_ids',
924
- type: 'system/role.name',
925
- //type: Object,
926
- // TODO Agregar un filtro, solo para traer los roles de cliente.
927
- //pagination: false,
928
- multiple: true,
929
- inEdit: false,
930
- inCreate: false,
931
-
932
- //custom: true,
933
- //componentProps:{ options: {fullwidth: true} },
934
- //component: ReferenceArrayField,
935
- //searchField: "subdomain"
936
- },
937
- {
938
- tab: 'Datos Usuario',
939
- label: 'Cliente',
940
- attribute: 'tenant_id',
941
- //listAttribute: 'name',
942
- type: 'system/tenant.name',
943
- //type: Object,
944
- // TODO Agregar un filtro, solo para traer los roles de cliente.
945
- pagination: false,
946
- multiple: false,
947
- //custom: true,
948
- //componentProps: {multiple:false},
949
- //componentProps: { options: {fullwidth: true} },
950
- component: SelectInput,
951
- fieldProps: {
952
- allowEmpty: true, // Allow empty selection
953
- emptyText: 'Sin cliente', // Text for empty option
954
- },
955
- componentProps: {
956
- parse: (value: any) => {
957
- console.log('Parsing tenant_id value:', value); // Debug log
958
- // Convert empty string or falsy values to null
959
- if (value === '' || value === undefined || value === 'null') {
960
- console.log('Converting to null');
961
- return null;
962
- }
963
- // Convert string numbers to actual numbers
964
- if (typeof value === 'string' && !isNaN(Number(value))) {
965
- const numValue = Number(value);
966
- console.log('Converting to number:', numValue);
967
- return numValue;
968
- }
969
- console.log('Returning original value:', value);
970
- return value;
971
- },
972
- format: (value: any) => {
973
- console.log('Formatting tenant_id value:', value); // Debug log
974
- // Format null/undefined as empty string for display
975
- if (value === null || value === undefined) {
976
- return '';
977
- }
978
- return value;
979
- }
980
- },
981
- processor: 'Null',
982
-
983
- },
984
- {
985
- attribute: 'active',
986
- type: Boolean,
987
- inList: true,
988
- label: 'Activo',
989
- tab: 'Datos Usuario',
990
- processor: 'Boolean',
991
- },
992
- /*{
993
- attribute: 'avatar',
994
- listAttribute: 'system/userclients.avatar',
995
- type: ImageInput, // TODO: el componente no muestra la imágen
996
- inList: false,
997
- label: 'Imágen',
998
- tab: 'Datos Usuario',
999
- processor: 'RawFile',
1000
- //validate: (password: string) => (password && password.length >= 6 ? undefined : <div>Password is too short</div>)
1001
- },*/
1002
- ],
1003
- //references: [{ reference: 'roles', target: 'role', schema: rolesSchema }]
1004
- //references: [{ reference: 'roles', target: 'id', schema: roleSchema }],
1005
- icon: <Person />,
1006
- redirectAfterUpdate: false,
1007
- showDialogAfterSubmit: true,
1008
- showNotifyAfterSubmit: true,
1009
- menu: [
1010
- {
1011
- title: 'resource.system.users.menu_list',
1012
- redirect: '/system/user',
1013
- },
1014
- {
1015
- title: "🗑",
1016
- redirect: "/system/user/trash",
1017
- }
1018
- ],
1019
- //{
1020
- // title: "🗑",
1021
- // redirect: "/trash/admin/user",
1022
- //}],
1023
- mainAction: {
1024
- title: 'resource.system.users.main_action',
1025
- // type: "ghost",
1026
- redirect: '/system/user/create',
1027
- },
1028
- mutationMode: 'pessimistic',
1029
- // isFormData: true,
1030
- dataGridProps: { stickyHeader: true },
1031
- dataGridWrapper: (props: any) => (
1032
- <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
1033
- ),
1034
- formPostFormatter: (params, form) => {
1035
- return form;
1036
- },
1037
- /*postFormatter: (params, method) => {
1038
-
1039
- if (method === 'update') {
1040
- params._method = 'PUT';
1041
- }
1042
- params.role_id = params.role_ids ? params.role_ids[0] : null;
1043
-
1044
- // Handle tenant_id properly - ensure it's null when not selected
1045
- if (params.tenant_id === '' || params.tenant_id === undefined || params.tenant_id === 'null') {
1046
- params.tenant_id = null;
1047
- } else if (params.tenant_id && typeof params.tenant_id === 'string') {
1048
- // Convert string to number if it's a valid number
1049
- const numValue = Number(params.tenant_id);
1050
- if (!isNaN(numValue)) {
1051
- params.tenant_id = numValue;
1052
- }
1053
- }
1054
-
1055
- console.log('Processed params:', params); // Debug log
1056
-
1057
- return params;
1058
- },*/
1059
- ...drawerSettings,
1060
- },
1061
-
1062
- // ============ Subscription Plans Management ============
1063
- {
1064
- roles: [DASHAppConstants.system.SYSTEM_ROLE],
1065
- component: ResourceTemplate,
1066
- model: 'system/subscription-plan',
1067
- label: 'Subscription Plans',
1068
- //group: 'resource.groups.system_resources',
1069
- group: "System",
1070
- icon: <CardMembershipIcon />,
1071
- trash: true,
1072
-
1073
- // Context wrapper for fetching limit formats and addon formats from backend
1074
- contextComponent: ({ resourceConfig, mode, children }) => {
1075
- console.log("SubscriptionPlanFormatsProvider", resourceConfig, mode);
1076
- return mode === "list" ? children : (
1077
- <SubscriptionPlanFormatsProvider cacheSeconds={300}>
1078
- {children}
1079
- </SubscriptionPlanFormatsProvider>
1080
- );
1081
- },
1082
-
1083
- schema: subscriptionPlanSchema,
1084
-
1085
- menu: [
1086
- {
1087
- title: 'All Plans',
1088
- redirect: '/system/subscription-plan',
1089
- },
1090
- ],
1091
-
1092
- mainAction: {
1093
- title: 'Create Plan',
1094
- fn: "redirect",
1095
- mode: "create",
1096
- redirect: "create",
1097
- },
1098
-
1099
- referenceFilters: [
1100
- {
1101
- id: "name",
1102
- label: "Plan Name",
1103
- source: "name",
1104
- reference: null,
1105
- optionText: null,
1106
- alwaysOn: true,
1107
- },
1108
- {
1109
- id: "is_active",
1110
- label: "Active",
1111
- source: "is_active",
1112
- reference: null,
1113
- optionText: null,
1114
- alwaysOn: false,
1115
- },
1116
- ],
1117
-
1118
- // Enable all CRUD operations
1119
- create: true,
1120
- view: true,
1121
- refreshAfter: true,
1122
- toolbarCreateButton: { enabled: true },
1123
-
1124
- // Form configuration
1125
- mutationMode: 'pessimistic',
1126
- editProps: {
1127
- queryOptions: { meta: { forceFetch: true } },
1128
- undoable: false,
1129
- emptyWhileLoading: true,
1130
- },
1131
-
1132
- // Data grid configuration
1133
- dataGridProps: { stickyHeader: true },
1134
- dataGridWrapper: (props: any) => (
1135
- <TableContainer sx={{ maxHeight: 800 }}>{props.children}</TableContainer>
1136
- ),
1137
- listEditButton: { enabled: true },
1138
- listViewButton: { enabled: true },
1139
-
1140
- // Post-processing for form data
1141
- postFormatter: (params, method) => {
1142
- // Ensure limits is properly formatted as an object
1143
- if (params.limits && typeof params.limits === 'object') {
1144
- // Clean up null/undefined values
1145
- const cleanedLimits: Record<string, any> = {};
1146
- Object.entries(params.limits).forEach(([key, value]) => {
1147
- // Convert empty strings to null for integer fields
1148
- if (value === '' || value === undefined) {
1149
- cleanedLimits[key] = null;
1150
- } else {
1151
- cleanedLimits[key] = value;
1152
- }
1153
- });
1154
- params.limits = cleanedLimits;
1155
- }
1156
-
1157
- // Ensure prices is properly formatted as an object
1158
- if (params.prices && typeof params.prices === 'object') {
1159
- // Clean up null/undefined/empty values and ensure integer values
1160
- const cleanedPrices: Record<string, number> = {};
1161
- Object.entries(params.prices).forEach(([currencyCode, value]) => {
1162
- // Only include valid numeric values
1163
- if (value !== '' && value !== undefined && value !== null) {
1164
- const numValue = parseInt(String(value), 10);
1165
- if (!isNaN(numValue)) {
1166
- cleanedPrices[currencyCode] = numValue;
1167
- }
1168
- }
1169
- });
1170
- params.prices = cleanedPrices;
1171
- }
1172
-
1173
- // Ensure billing_cycle has a default value (required field)
1174
- if (!params.billing_cycle) {
1175
- params.billing_cycle = 'monthly';
1176
- }
1177
-
1178
- // Ensure trial_days has a default value
1179
- if (params.trial_days === undefined || params.trial_days === null) {
1180
- params.trial_days = 0;
1181
- }
1182
-
1183
- // Ensure tier has a default value
1184
- if (params.tier === undefined || params.tier === null) {
1185
- params.tier = 1;
1186
- }
1187
-
1188
- return params;
1189
- },
1190
-
1191
- redirectAfterUpdate: false,
1192
- redirectAfterCreate: true,
1193
- ...drawerSettings,
1194
- },
1195
-
1196
-
1197
- // ============ Currency Management (core shared master data) ============
1198
- // Backed by dash-backend core's system/currency route (App\Http\Controllers\
1199
- // API\System\CurrencyController). Previously pointed at the domain's
1200
- // ecommerce/currency route — currencies moved to core as "shared master
1201
- // data" (see CLAUDE.md's core/domain split), so every app using this
1202
- // shared systemResources manifest (kitchntabs-*, vanexa-*) now gets a
1203
- // working Currencies page with no domain layer required.
1204
- {
1205
- roles: [DASHAppConstants.system.SYSTEM_ROLE],
1206
- component: ResourceTemplate,
1207
- trash: true,
1208
- model: "system/currency",
1209
- label: "resource.system.currencies.label",
1210
- schema: [
1211
- {
1212
- label: 'Código',
1213
- attribute: 'code',
1214
- type: String,
1215
- fieldOptions: {
1216
- helperText: 'E.g: CLP | USD ...'
1217
- }
1218
- },
1219
- {
1220
- label: 'Formato',
1221
- attribute: 'format',
1222
- type: String,
1223
- fieldOptions: {
1224
- helperText: 'E.g: 0.00 | 0,0.00 | 0'
1225
- }
1226
- },
1227
- {
1228
- label: 'Símbolo',
1229
- attribute: 'symbol',
1230
- type: String
1231
- },
1232
- {
1233
- label: 'Enabled',
1234
- attribute: 'is_enabled',
1235
- type: Boolean
1236
- },
1237
- {
1238
- label: 'Número formateado',
1239
- attribute: 'formateado',
1240
- type: Number,
1241
- custom: true,
1242
- inList: false,
1243
- component: FormatCurrency
1244
- },
1245
- ],
1246
- icon: <PaidIcon />,
1247
- group: "System",
1248
- menu: [
1249
- {
1250
- title: "resource.system.currencies.menu_list",
1251
- redirect: "/system/currency",
1252
- },
1253
- {
1254
- title: "🗑",
1255
- redirect: "/system/currency/trash",
1256
- },
1257
- ],
1258
-
1259
- mainAction: {
1260
- title: "resource.system.currencies.main_action",
1261
- mode: "create",
1262
- fn: "virtualhash",
1263
- redirect: "inline/create",
1264
- },
1265
- drawer: true,
1266
- drawerOptions: {
1267
- create: true,
1268
- edit: true,
1269
- view: false
1270
- },
1271
-
1272
- mutationMode: "pessimistic",
1273
- saveButtonAlwaysEnabled: true,
1274
- listProps: { storeKey: false, filterDefaultValues: { show_disabled: true } },
1275
- resetSelectedIdsOnLoad: true,
1276
- },
1277
-
1278
- // ============ Language Management (core shared master data) ============
1279
- // Backed by dash-backend core's system/language route (App\Http\Controllers\
1280
- // API\System\LanguageController). Previously pointed at the domain's
1281
- // common/language route — languages moved to core as "shared master data"
1282
- // (see CLAUDE.md's core/domain split), so every app using this shared
1283
- // systemResources manifest (kitchntabs-*, vanexa-*) now gets a working
1284
- // Languages page with no domain layer required.
1285
- {
1286
- roles: [DASHAppConstants.system.SYSTEM_ROLE],
1287
- component: ResourceTemplate,
1288
- trash: true,
1289
- model: "system/language",
1290
- label: "resource.system.languages.label",
1291
- schema: [
1292
- {
1293
- label: 'Code',
1294
- attribute: 'code',
1295
- type: String,
1296
- fieldOptions: {
1297
- helperText: 'ISO 639-1 code (e.g., en, es, pt)'
1298
- }
1299
- },
1300
- {
1301
- label: 'Name',
1302
- attribute: 'name',
1303
- type: String,
1304
- fieldOptions: {
1305
- helperText: 'Language name in English'
1306
- }
1307
- },
1308
- {
1309
- label: 'Native Name',
1310
- attribute: 'native_name',
1311
- type: String,
1312
- fieldOptions: {
1313
- helperText: 'Language name in native language (e.g., Español)'
1314
- }
1315
- },
1316
- {
1317
- label: 'Active',
1318
- attribute: 'is_active',
1319
- type: Boolean
1320
- },
1321
- {
1322
- label: 'Translations',
1323
- attribute: 'translations',
1324
- type: Object,
1325
- inList: false,
1326
- inShow: true,
1327
- inEdit: true,
1328
- inCreate: true,
1329
- fieldOptions: {
1330
- helperText: 'JSON key-value pairs for translations'
1331
- }
1332
- },
1333
- ],
1334
- icon: <TranslateIcon />,
1335
- group: "System",
1336
- menu: [
1337
- {
1338
- title: "resource.system.languages.menu_list",
1339
- redirect: "/system/language",
1340
- },
1341
- {
1342
- title: "🗑",
1343
- redirect: "/system/language/trash",
1344
- },
1345
- ],
1346
-
1347
- mainAction: {
1348
- title: "resource.system.languages.main_action",
1349
- mode: "create",
1350
- fn: "virtualhash",
1351
- redirect: "inline/create",
1352
- },
1353
- drawer: true,
1354
- drawerOptions: {
1355
- create: true,
1356
- edit: true,
1357
- view: false
1358
- },
1359
-
1360
- mutationMode: "pessimistic",
1361
- saveButtonAlwaysEnabled: true,
1362
- listProps: { storeKey: false },
1363
- resetSelectedIdsOnLoad: true,
1364
- }
1365
-
1366
- ];
1367
-
1368
-
1369
- export default systemResources;