@dashadmin/dash-app-common 1.3.25 → 1.3.28

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 (166) hide show
  1. package/README.md +35 -0
  2. package/dist/DashApp.js +176 -1
  3. package/dist/DashAppLoader.js +348 -3
  4. package/dist/DashDefaultResources.js +10 -1
  5. package/dist/components/DashDefaultPrivateApp.js +150 -1
  6. package/dist/components/DashDefaultPrivateResources.js +10 -1
  7. package/dist/components/DashDefaultPublicApp.js +20 -1
  8. package/dist/components/DashResourceLoader.js +245 -1
  9. package/dist/defaults/extensions/bootstrap/DashDefaultErrorBoundary.js +78 -1
  10. package/dist/defaults/extensions/bootstrap/dashDefaultInitializeApp.js +59 -1
  11. package/dist/defaults/extensions/bootstrap/index.js +24 -1
  12. package/dist/defaults/extensions/components/DashDefaultLoader.js +43 -2
  13. package/dist/defaults/extensions/components/dashDefaultAutoAdminComponents.js +67 -1
  14. package/dist/defaults/extensions/components/dashDefaultNotification.js +28 -1
  15. package/dist/defaults/extensions/components/dashDefaultStaticComponents.js +15 -1
  16. package/dist/defaults/extensions/components/index.js +13 -1
  17. package/dist/defaults/extensions/electron/dashDefaultIpcListeners.js +38 -1
  18. package/dist/defaults/extensions/electron/index.js +5 -1
  19. package/dist/defaults/extensions/hooks/index.js +12 -1
  20. package/dist/defaults/extensions/hooks/useDashDefaultLazyAutoAdminComponents.js +17 -1
  21. package/dist/defaults/extensions/hooks/useDashDefaultLazyI18nProvider.js +51 -1
  22. package/dist/defaults/extensions/hooks/useDashDefaultLazyResources.js +19 -1
  23. package/dist/defaults/extensions/hooks/useDashDefaultMountTracker.js +22 -1
  24. package/dist/defaults/extensions/hooks/useDashDefaultRoutePath.js +17 -1
  25. package/dist/defaults/extensions/i18n/dashDefaultI18nProvider.js +44 -1
  26. package/dist/defaults/extensions/i18n/dashDefaultTranslations.js +87 -1
  27. package/dist/defaults/extensions/i18n/index.js +24 -1
  28. package/dist/defaults/extensions/index.js +190 -1
  29. package/dist/defaults/extensions/layout/dashDefaultDomainAppLayout.js +58 -1
  30. package/dist/defaults/extensions/layout/index.js +12 -1
  31. package/dist/defaults/extensions/managers/DashDefaultWSMessagesManager.js +84 -1
  32. package/dist/defaults/extensions/managers/index.js +5 -1
  33. package/dist/defaults/extensions/providers/dashDefaultAuthProvider.js +220 -1
  34. package/dist/defaults/extensions/providers/dashDefaultDataProvider.js +395 -1
  35. package/dist/defaults/extensions/providers/index.js +24 -1
  36. package/dist/defaults/extensions/router/DashDefaultLanding.js +46 -1
  37. package/dist/defaults/extensions/router/dashDefaultPrivateRoutes.js +38 -1
  38. package/dist/defaults/extensions/router/dashDefaultPublicRoutes.js +65 -1
  39. package/dist/defaults/extensions/router/dashDefaultRouter.js +39 -1
  40. package/dist/defaults/extensions/router/dashDefaultSharedRoutes.js +40 -1
  41. package/dist/defaults/extensions/router/index.js +12 -1
  42. package/dist/defaults/extensions/state/dashDefaultAppCommon.js +57 -1
  43. package/dist/defaults/extensions/state/dashDefaultAppSettings.js +38 -1
  44. package/dist/defaults/extensions/state/dashDefaultInitialAppState.js +31 -1
  45. package/dist/defaults/extensions/state/dashDefaultLayoutSettings.js +48 -1
  46. package/dist/defaults/extensions/state/dashDefaultQueryClient.js +58 -1
  47. package/dist/defaults/extensions/state/dashDefaultResourcesIcons.js +24 -1
  48. package/dist/defaults/extensions/state/index.js +29 -1
  49. package/dist/defaults/extensions/styles/index.js +2 -1
  50. package/dist/defaults/extensions/theme/dashDefaultThemeOptions.js +74 -1
  51. package/dist/defaults/extensions/theme/index.js +6 -1
  52. package/dist/defaults/extensions/utils/IPCMessageBrokerContext.js +12 -1
  53. package/dist/defaults/extensions/utils/dashDefaultAuthProviderUtils.js +29 -1
  54. package/dist/defaults/extensions/utils/dashDefaultDataProviderUtils.js +37 -1
  55. package/dist/defaults/extensions/utils/dashDefaultNotificationsProcessor.js +149 -1
  56. package/dist/defaults/extensions/utils/index.js +44 -1
  57. package/dist/defaults/filters/demo/dashDefaultDemoFilters.js +36 -1
  58. package/dist/defaults/filters/demo/index.js +4 -1
  59. package/dist/defaults/filters/index.js +5 -1
  60. package/dist/defaults/index.js +14 -1
  61. package/dist/defaults/pages/Account/DashDefaultRegister.js +282 -1
  62. package/dist/defaults/pages/Account/DashDefaultSignUp.js +420 -1
  63. package/dist/defaults/pages/Account/DashDefaultSignUpSuccess.js +101 -1
  64. package/dist/defaults/pages/Account/index.js +8 -1
  65. package/dist/defaults/pages/DashDefaultLogin.js +218 -1
  66. package/dist/defaults/pages/Misc/DashDefaultNotFound.js +74 -1
  67. package/dist/defaults/pages/Misc/DashDefaultServerError.js +79 -1
  68. package/dist/defaults/pages/Misc/DashDefaultUnauthorized.js +90 -1
  69. package/dist/defaults/pages/Misc/index.js +8 -1
  70. package/dist/defaults/pages/Static/DashDefaultPrivacyPage.js +48 -1
  71. package/dist/defaults/pages/Static/DashDefaultStaticPage.js +55 -1
  72. package/dist/defaults/pages/Static/DashDefaultTermsPage.js +52 -1
  73. package/dist/defaults/pages/Static/index.js +8 -1
  74. package/dist/defaults/pages/index.js +25 -1
  75. package/dist/defaults/schemas/dashDefaultSchema.js +14 -1
  76. package/dist/defaults/schemas/demo/dashDefaultTodoSchema.js +24 -1
  77. package/dist/defaults/schemas/demo/index.js +4 -1
  78. package/dist/defaults/schemas/index.js +7 -1
  79. package/dist/filters/demo/todoFilters.js +36 -1
  80. package/dist/index.js +56 -5975
  81. package/dist/resources/demo/todoResource.js +58 -1
  82. package/dist/schemas/defaultSchema.js +14 -1
  83. package/dist/schemas/demo/todoSchema.js +24 -1
  84. package/package.json +132 -77
  85. package/src/DashApp.tsx +294 -0
  86. package/src/DashAppLoader.tsx +717 -0
  87. package/src/DashDefaultResources.tsx +10 -0
  88. package/src/components/DashDefaultPrivateApp.tsx +358 -0
  89. package/src/components/DashDefaultPrivateResources.tsx +10 -0
  90. package/src/components/DashDefaultPublicApp.tsx +40 -0
  91. package/src/components/DashResourceLoader.tsx +564 -0
  92. package/src/defaults/extensions/bootstrap/DashDefaultErrorBoundary.tsx +113 -0
  93. package/src/defaults/extensions/bootstrap/dashDefaultInitializeApp.ts +81 -0
  94. package/src/defaults/extensions/bootstrap/index.ts +32 -0
  95. package/src/defaults/extensions/components/DashDefaultLoader.tsx +59 -0
  96. package/src/defaults/extensions/components/dashDefaultAutoAdminComponents.tsx +49 -0
  97. package/src/defaults/extensions/components/dashDefaultNotification.tsx +37 -0
  98. package/src/defaults/extensions/components/dashDefaultStaticComponents.tsx +34 -0
  99. package/src/defaults/extensions/components/index.ts +17 -0
  100. package/src/defaults/extensions/electron/dashDefaultIpcListeners.ts +62 -0
  101. package/src/defaults/extensions/electron/index.ts +7 -0
  102. package/src/defaults/extensions/hooks/index.ts +11 -0
  103. package/src/defaults/extensions/hooks/useDashDefaultLazyAutoAdminComponents.ts +25 -0
  104. package/src/defaults/extensions/hooks/useDashDefaultLazyI18nProvider.ts +38 -0
  105. package/src/defaults/extensions/hooks/useDashDefaultLazyResources.ts +29 -0
  106. package/src/defaults/extensions/hooks/useDashDefaultMountTracker.ts +28 -0
  107. package/src/defaults/extensions/hooks/useDashDefaultRoutePath.ts +27 -0
  108. package/src/defaults/extensions/i18n/dashDefaultI18nProvider.ts +66 -0
  109. package/src/defaults/extensions/i18n/dashDefaultTranslations.ts +82 -0
  110. package/src/defaults/extensions/i18n/index.ts +22 -0
  111. package/src/defaults/extensions/index.ts +177 -0
  112. package/src/defaults/extensions/layout/dashDefaultDomainAppLayout.tsx +126 -0
  113. package/src/defaults/extensions/layout/index.ts +12 -0
  114. package/src/defaults/extensions/managers/DashDefaultWSMessagesManager.tsx +99 -0
  115. package/src/defaults/extensions/managers/index.ts +7 -0
  116. package/src/defaults/extensions/providers/dashDefaultAuthProvider.ts +256 -0
  117. package/src/defaults/extensions/providers/dashDefaultDataProvider.ts +513 -0
  118. package/src/defaults/extensions/providers/index.ts +25 -0
  119. package/src/defaults/extensions/router/DashDefaultLanding.tsx +51 -0
  120. package/src/defaults/extensions/router/dashDefaultPrivateRoutes.tsx +50 -0
  121. package/src/defaults/extensions/router/dashDefaultPublicRoutes.tsx +86 -0
  122. package/src/defaults/extensions/router/dashDefaultRouter.tsx +54 -0
  123. package/src/defaults/extensions/router/dashDefaultSharedRoutes.tsx +56 -0
  124. package/src/defaults/extensions/router/index.ts +13 -0
  125. package/src/defaults/extensions/state/dashDefaultAppCommon.ts +54 -0
  126. package/src/defaults/extensions/state/dashDefaultAppSettings.ts +29 -0
  127. package/src/defaults/extensions/state/dashDefaultInitialAppState.ts +75 -0
  128. package/src/defaults/extensions/state/dashDefaultLayoutSettings.ts +59 -0
  129. package/src/defaults/extensions/state/dashDefaultQueryClient.ts +59 -0
  130. package/src/defaults/extensions/state/dashDefaultResourcesIcons.tsx +23 -0
  131. package/src/defaults/extensions/state/index.ts +29 -0
  132. package/src/defaults/extensions/styles/index.ts +17 -0
  133. package/src/defaults/extensions/theme/dashDefaultThemeOptions.ts +89 -0
  134. package/src/defaults/extensions/theme/index.ts +7 -0
  135. package/src/defaults/extensions/utils/IPCMessageBrokerContext.tsx +22 -0
  136. package/src/defaults/extensions/utils/dashDefaultAuthProviderUtils.ts +36 -0
  137. package/src/defaults/extensions/utils/dashDefaultDataProviderUtils.ts +46 -0
  138. package/src/defaults/extensions/utils/dashDefaultNotificationsProcessor.tsx +208 -0
  139. package/src/defaults/extensions/utils/index.ts +42 -0
  140. package/src/defaults/filters/demo/dashDefaultDemoFilters.tsx +50 -0
  141. package/src/defaults/filters/demo/index.ts +6 -0
  142. package/src/defaults/filters/index.ts +11 -0
  143. package/src/defaults/index.ts +27 -0
  144. package/src/defaults/pages/Account/DashDefaultRegister.tsx +281 -0
  145. package/src/defaults/pages/Account/DashDefaultSignUp.tsx +492 -0
  146. package/src/defaults/pages/Account/DashDefaultSignUpSuccess.tsx +113 -0
  147. package/src/defaults/pages/Account/index.ts +8 -0
  148. package/src/defaults/pages/DashDefaultLogin.tsx +224 -0
  149. package/src/defaults/pages/Misc/DashDefaultNotFound.tsx +96 -0
  150. package/src/defaults/pages/Misc/DashDefaultServerError.tsx +102 -0
  151. package/src/defaults/pages/Misc/DashDefaultUnauthorized.tsx +116 -0
  152. package/src/defaults/pages/Misc/index.ts +8 -0
  153. package/src/defaults/pages/Static/DashDefaultPrivacyPage.tsx +85 -0
  154. package/src/defaults/pages/Static/DashDefaultStaticPage.tsx +75 -0
  155. package/src/defaults/pages/Static/DashDefaultTermsPage.tsx +69 -0
  156. package/src/defaults/pages/Static/index.ts +8 -0
  157. package/src/defaults/pages/index.ts +28 -0
  158. package/src/defaults/schemas/dashDefaultSchema.tsx +25 -0
  159. package/src/defaults/schemas/demo/dashDefaultTodoSchema.tsx +39 -0
  160. package/src/defaults/schemas/demo/index.ts +6 -0
  161. package/src/defaults/schemas/index.ts +14 -0
  162. package/src/filters/demo/todoFilters.tsx +39 -0
  163. package/src/index.ts +131 -0
  164. package/src/resources/demo/todoResource.tsx +68 -0
  165. package/src/schemas/defaultSchema.tsx +14 -0
  166. package/src/schemas/demo/todoSchema.tsx +27 -0
@@ -1 +1,44 @@
1
- import{dashDefaultLogoutFromStorage as s,dashDefaultIsAuthenticated as t,dashDefaultGetCurrentUser as o,dashDefaultGetToken as r}from"./dashDefaultAuthProviderUtils";import{dashDefaultGetResourceConfig as u,dashDefaultSetResourceConfigs as f,dashDefaultProcessPostData as h,dashDefaultProcessFormData as i,dashDefaultBuildQueryString as l,dashDefaultIsFormDataResource as d}from"./dashDefaultDataProviderUtils";import{DashIPCMessageBrokerContext as n,DashIPCMessageBrokerProvider as p,useDashIPCMessageBroker as c}from"./IPCMessageBrokerContext";import{processDashDefaultNotification as P,playDashDefaultNotificationSound as m,playDashDefaultDigitalWatchAlarm as y,requestDashDefaultNotificationPermission as I}from"./dashDefaultNotificationsProcessor";export{n as DashIPCMessageBrokerContext,p as DashIPCMessageBrokerProvider,l as dashDefaultBuildQueryString,o as dashDefaultGetCurrentUser,u as dashDefaultGetResourceConfig,r as dashDefaultGetToken,t as dashDefaultIsAuthenticated,d as dashDefaultIsFormDataResource,s as dashDefaultLogoutFromStorage,i as dashDefaultProcessFormData,h as dashDefaultProcessPostData,f as dashDefaultSetResourceConfigs,y as playDashDefaultDigitalWatchAlarm,m as playDashDefaultNotificationSound,P as processDashDefaultNotification,I as requestDashDefaultNotificationPermission,c as useDashIPCMessageBroker};
1
+ import {
2
+ dashDefaultLogoutFromStorage,
3
+ dashDefaultIsAuthenticated,
4
+ dashDefaultGetCurrentUser,
5
+ dashDefaultGetToken
6
+ } from "./dashDefaultAuthProviderUtils";
7
+ import {
8
+ dashDefaultGetResourceConfig,
9
+ dashDefaultSetResourceConfigs,
10
+ dashDefaultProcessPostData,
11
+ dashDefaultProcessFormData,
12
+ dashDefaultBuildQueryString,
13
+ dashDefaultIsFormDataResource
14
+ } from "./dashDefaultDataProviderUtils";
15
+ import {
16
+ DashIPCMessageBrokerContext,
17
+ DashIPCMessageBrokerProvider,
18
+ useDashIPCMessageBroker
19
+ } from "./IPCMessageBrokerContext";
20
+ import {
21
+ processDashDefaultNotification,
22
+ playDashDefaultNotificationSound,
23
+ playDashDefaultDigitalWatchAlarm,
24
+ requestDashDefaultNotificationPermission
25
+ } from "./dashDefaultNotificationsProcessor";
26
+ export {
27
+ DashIPCMessageBrokerContext,
28
+ DashIPCMessageBrokerProvider,
29
+ dashDefaultBuildQueryString,
30
+ dashDefaultGetCurrentUser,
31
+ dashDefaultGetResourceConfig,
32
+ dashDefaultGetToken,
33
+ dashDefaultIsAuthenticated,
34
+ dashDefaultIsFormDataResource,
35
+ dashDefaultLogoutFromStorage,
36
+ dashDefaultProcessFormData,
37
+ dashDefaultProcessPostData,
38
+ dashDefaultSetResourceConfigs,
39
+ playDashDefaultDigitalWatchAlarm,
40
+ playDashDefaultNotificationSound,
41
+ processDashDefaultNotification,
42
+ requestDashDefaultNotificationPermission,
43
+ useDashIPCMessageBroker
44
+ };
@@ -1 +1,36 @@
1
- import{SelectInput as e}from"react-admin";const t=[{id:"name",label:"Name",source:"name",alwaysOn:!0,reference:null,optionText:null},{id:"description",label:"Description",source:"description",alwaysOn:!0,reference:null,optionText:null},{id:"status",label:"Status",source:"status",reference:[{id:"active",name:"Active"},{id:"inactive",name:"Inactive"},{id:"pending",name:"Pending"}],optionText:"status",alwaysOn:!0,referenceComponent:e}];var o=t;export{o as default};
1
+ import { SelectInput } from "react-admin";
2
+ const dashDefaultDemoFilters = [
3
+ {
4
+ id: "name",
5
+ label: "Name",
6
+ source: "name",
7
+ alwaysOn: true,
8
+ reference: null,
9
+ optionText: null
10
+ },
11
+ {
12
+ id: "description",
13
+ label: "Description",
14
+ source: "description",
15
+ alwaysOn: true,
16
+ reference: null,
17
+ optionText: null
18
+ },
19
+ {
20
+ id: "status",
21
+ label: "Status",
22
+ source: "status",
23
+ reference: [
24
+ { id: "active", name: "Active" },
25
+ { id: "inactive", name: "Inactive" },
26
+ { id: "pending", name: "Pending" }
27
+ ],
28
+ optionText: "status",
29
+ alwaysOn: true,
30
+ referenceComponent: SelectInput
31
+ }
32
+ ];
33
+ var dashDefaultDemoFilters_default = dashDefaultDemoFilters;
34
+ export {
35
+ dashDefaultDemoFilters_default as default
36
+ };
@@ -1 +1,4 @@
1
- import{default as t}from"./dashDefaultDemoFilters";export{t as dashDefaultDemoFilters};
1
+ import { default as default2 } from "./dashDefaultDemoFilters";
2
+ export {
3
+ default2 as dashDefaultDemoFilters
4
+ };
@@ -1 +1,5 @@
1
- export*from"./demo";import{default as t}from"./demo/dashDefaultDemoFilters";export{t as dashDefaultDemoFilters};
1
+ export * from "./demo";
2
+ import { default as default2 } from "./demo/dashDefaultDemoFilters";
3
+ export {
4
+ default2 as dashDefaultDemoFilters
5
+ };
@@ -1 +1,14 @@
1
- import{dashDefaultPublicRoutes as o}from"./extensions/router/dashDefaultPublicRoutes";import{dashDefaultPrivateRoutes as r}from"./extensions/router/dashDefaultPrivateRoutes";import{default as u}from"../components/DashDefaultPublicApp";import{default as s}from"../components/DashDefaultPrivateApp";export*from"./extensions";export*from"./pages";export*from"./filters";export*from"./schemas";export{s as DashDefaultPrivateApp,u as DashDefaultPublicApp,r as defaultPrivateRoutes,o as defaultPublicRoutes};
1
+ import { dashDefaultPublicRoutes } from "./extensions/router/dashDefaultPublicRoutes";
2
+ import { dashDefaultPrivateRoutes } from "./extensions/router/dashDefaultPrivateRoutes";
3
+ import { default as default2 } from "../components/DashDefaultPublicApp";
4
+ import { default as default3 } from "../components/DashDefaultPrivateApp";
5
+ export * from "./extensions";
6
+ export * from "./pages";
7
+ export * from "./filters";
8
+ export * from "./schemas";
9
+ export {
10
+ default3 as DashDefaultPrivateApp,
11
+ default2 as DashDefaultPublicApp,
12
+ dashDefaultPrivateRoutes as defaultPrivateRoutes,
13
+ dashDefaultPublicRoutes as defaultPublicRoutes
14
+ };
@@ -1 +1,282 @@
1
- import{jsx as e,jsxs as u}from"react/jsx-runtime";import D,{createRef as q,useEffect as S,useState as d}from"react";import{useDispatch as k}from"react-redux";import{useForm as H}from"react-hook-form";import{Button as E,TextField as i,IconButton as I,Alert as L,Box as U}from"@mui/material";import V from"@mui/icons-material/Home";import{useNavigate as M}from"react-router-dom";import{useNotify as O}from"react-admin";import W from"react-google-recaptcha";import{DASH_REDUX_ACTIONS as G}from"@dashadmin/dash-admin-state";import K from"@dashadmin/dash-admin/src/contexts/dictionary/DictionaryContext";import{useAxios as X}from"@dashadmin/dash-axios-hook";import{useDialog as z}from"@dashadmin/dash-dialog";import{DASHAppConstants as F}from"@dashadmin/dash-constants";import{RutValidator as J}from"@dashadmin/dash-admin/src/utils/validators";import Q from"@dashadmin/dash-admin/src/default-theme/FullLayoutMarkup";const t=n=>n?.message,Y=({showRutField:n=!0,customFields:R})=>{const p=F.system.RECAPTCHA_ENABLED,l=q(),[f,x]=d(null),[h,g]=d(null),[N,v]=d(!1),A=k(),Z=z(),y=D.useContext(K),c=M(),{register:s,handleSubmit:T,setError:C,clearErrors:b,formState:{errors:r}}=H(),P=X(),w=O(),_=a=>{b("g-recaptcha-response"),x(a)};S(()=>{A(G.updatePage({title:null}))},[]);async function B(a){if(v(!0),g(null),a.clientname){const o="client[name]";a[o]=a.clientname,delete a.clientname}if(p){const o=l.current&&l.current.getValue?l.current.getValue():f;a={...a,"g-recaptcha-response":o}}try{(await P.post("/auth/user/register",a,{headers:{"Content-Type":"multipart/form-data"}})).status>=200?(w("User has been registered",{type:"success"}),c("/")):g("An error occurred, please try again")}catch(o){for(const m in o)m==="client.name"&&C("clientname",{type:"custom",message:y.get(o[m],!0)}),C(m,{type:"custom",message:y.get(o[m],!0)})}finally{v(!1)}}return e(Q,{children:u("form",{onSubmit:T(B),className:"dash-app-login-form",autoComplete:"on",children:[u(U,{sx:{display:"flex",alignItems:"center",gap:2,mb:2},children:[e(I,{color:"primary",onClick:()=>c("/"),children:e(V,{})}),e("h1",{className:"dash-app-login-form-title",children:"Create Account"})]}),h&&e(L,{severity:"error",sx:{mb:2},children:h}),e("div",{className:"dash-app-form-item",children:e(i,{label:"Email",placeholder:"Email",required:!0,...s("email"),type:"email",className:"dash-app-form-item-input",error:!!r.email,helperText:t(r.email)})}),e("div",{className:"dash-app-form-item",children:e(i,{label:"Business Name",placeholder:"Business Name",required:!0,...s("clientname"),className:"dash-app-form-item-input",error:!!r.clientname,helperText:t(r.clientname)})}),n&&e("div",{className:"dash-app-form-item",children:e(i,{label:"RUT",placeholder:"11.111.111-1",required:!0,...s("public_id",{validate:J}),className:"dash-app-form-item-input",error:!!r.public_id,helperText:t(r.public_id)||r.public_id&&"Invalid RUT"})}),e("div",{className:"dash-app-form-item",children:e(i,{label:"First Name",placeholder:"First Name",required:!0,...s("name"),className:"dash-app-form-item-input",error:!!r.name,helperText:t(r.name)})}),e("div",{className:"dash-app-form-item",children:e(i,{label:"Last Name",placeholder:"Last Name",required:!0,...s("lastname"),className:"dash-app-form-item-input",error:!!r.lastname,helperText:t(r.lastname)})}),e("div",{className:"dash-app-form-item",children:e(i,{label:"Password",placeholder:"Password",type:"password",required:!0,...s("password"),className:"dash-app-form-item-input",error:!!r.password,helperText:t(r.password)})}),e("div",{className:"dash-app-form-item",children:e(i,{label:"Confirm Password",placeholder:"Confirm Password",type:"password",required:!0,...s("confirm_password"),className:"dash-app-form-item-input",error:!!r.confirm_password,helperText:t(r.confirm_password)})}),e("div",{className:"dash-app-form-item",children:e(i,{label:"Contact Phone",placeholder:"+1 234 567 8900",required:!0,...s("phone"),className:"dash-app-form-item-input",error:!!r.phone,helperText:t(r.phone)})}),R,p&&u("div",{className:"dash-app-form-item",children:[e(W,{ref:l,sitekey:F.system.RECAPTCHA_TOKEN,onChange:_}),r["g-recaptcha-response"]&&e("span",{style:{color:"red"},children:t(r["g-recaptcha-response"])})]}),e("div",{className:"dash-app-form-item mt-1",children:e(E,{type:"submit",variant:"contained",fullWidth:!0,disabled:N||!f&&p,sx:{mb:2},children:N?"Creating Account...":"Create Account"})}),e("div",{className:"dash-app-form-item",children:e(E,{variant:"text",fullWidth:!0,onClick:()=>{b(),c("/")},children:"Cancel"})})]})})};var he=Y;export{he as default};
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import { jsx, jsxs } from "react/jsx-runtime";
41
+ import React, { createRef, useEffect, useState } from "react";
42
+ import { useDispatch } from "react-redux";
43
+ import { useForm } from "react-hook-form";
44
+ import { Button, TextField, IconButton, Alert, Box } from "@mui/material";
45
+ import HomeIcon from "@mui/icons-material/Home";
46
+ import { useNavigate } from "react-router-dom";
47
+ import { useNotify } from "react-admin";
48
+ import ReCAPTCHA from "react-google-recaptcha";
49
+ import { DASH_REDUX_ACTIONS } from "dash-admin-state";
50
+ import DictionaryContext from "dash-admin/src/contexts/dictionary/DictionaryContext";
51
+ import { useAxios } from "dash-axios-hook";
52
+ import { useDialog } from "dash-dialog";
53
+ import { DASHAppConstants } from "dash-constants";
54
+ import { RutValidator } from "dash-admin/src/utils/validators";
55
+ import FullLayoutMarkup from "dash-admin/src/default-theme/FullLayoutMarkup";
56
+ const getErrorMessage = (error) => {
57
+ return error == null ? void 0 : error.message;
58
+ };
59
+ const DefaultRegisterPage = ({
60
+ showRutField = true,
61
+ customFields
62
+ }) => {
63
+ const enableRecaptcha = DASHAppConstants.system.RECAPTCHA_ENABLED;
64
+ const recaptchaRef = createRef();
65
+ const [recpatcha, setRecaptcha] = useState(null);
66
+ const [error, setError] = useState(null);
67
+ const [isLoading, setIsLoading] = useState(false);
68
+ const dispatch = useDispatch();
69
+ const dialog = useDialog();
70
+ const dict = React.useContext(DictionaryContext);
71
+ const navigate = useNavigate();
72
+ const {
73
+ register,
74
+ handleSubmit,
75
+ setError: setFormError,
76
+ clearErrors,
77
+ formState: { errors }
78
+ } = useForm();
79
+ const axios = useAxios();
80
+ const notify = useNotify();
81
+ const onChangeRecaptcha = (value) => {
82
+ clearErrors("g-recaptcha-response");
83
+ setRecaptcha(value);
84
+ };
85
+ useEffect(() => {
86
+ dispatch(
87
+ DASH_REDUX_ACTIONS.updatePage({
88
+ title: null
89
+ })
90
+ );
91
+ }, []);
92
+ function onSubmit(data) {
93
+ return __async(this, null, function* () {
94
+ setIsLoading(true);
95
+ setError(null);
96
+ if (data.clientname) {
97
+ const bracketed_name = "client[name]";
98
+ data[bracketed_name] = data.clientname;
99
+ delete data.clientname;
100
+ }
101
+ if (enableRecaptcha) {
102
+ const recaptchaValue = recaptchaRef.current && recaptchaRef.current.getValue ? recaptchaRef.current.getValue() : recpatcha;
103
+ data = __spreadProps(__spreadValues({}, data), { "g-recaptcha-response": recaptchaValue });
104
+ }
105
+ try {
106
+ const response = yield axios.post("/auth/user/register", data, {
107
+ headers: { "Content-Type": "multipart/form-data" }
108
+ });
109
+ if (response.status >= 200) {
110
+ notify("User has been registered", { type: "success" });
111
+ navigate("/");
112
+ } else {
113
+ setError("An error occurred, please try again");
114
+ }
115
+ } catch (error2) {
116
+ for (const key in error2) {
117
+ if (key === "client.name") {
118
+ setFormError("clientname", {
119
+ type: "custom",
120
+ message: dict.get(error2[key], true)
121
+ });
122
+ }
123
+ setFormError(key, { type: "custom", message: dict.get(error2[key], true) });
124
+ }
125
+ } finally {
126
+ setIsLoading(false);
127
+ }
128
+ });
129
+ }
130
+ return /* @__PURE__ */ jsx(FullLayoutMarkup, { children: /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit(onSubmit), className: "dash-app-login-form", autoComplete: "on", children: [
131
+ /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", alignItems: "center", gap: 2, mb: 2 }, children: [
132
+ /* @__PURE__ */ jsx(
133
+ IconButton,
134
+ {
135
+ color: "primary",
136
+ onClick: () => navigate("/"),
137
+ children: /* @__PURE__ */ jsx(HomeIcon, {})
138
+ }
139
+ ),
140
+ /* @__PURE__ */ jsx("h1", { className: "dash-app-login-form-title", children: "Create Account" })
141
+ ] }),
142
+ error && /* @__PURE__ */ jsx(Alert, { severity: "error", sx: { mb: 2 }, children: error }),
143
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
144
+ TextField,
145
+ __spreadProps(__spreadValues({
146
+ label: "Email",
147
+ placeholder: "Email",
148
+ required: true
149
+ }, register("email")), {
150
+ type: "email",
151
+ className: "dash-app-form-item-input",
152
+ error: !!errors.email,
153
+ helperText: getErrorMessage(errors.email)
154
+ })
155
+ ) }),
156
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
157
+ TextField,
158
+ __spreadProps(__spreadValues({
159
+ label: "Business Name",
160
+ placeholder: "Business Name",
161
+ required: true
162
+ }, register("clientname")), {
163
+ className: "dash-app-form-item-input",
164
+ error: !!errors.clientname,
165
+ helperText: getErrorMessage(errors.clientname)
166
+ })
167
+ ) }),
168
+ showRutField && /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
169
+ TextField,
170
+ __spreadProps(__spreadValues({
171
+ label: "RUT",
172
+ placeholder: "11.111.111-1",
173
+ required: true
174
+ }, register("public_id", { validate: RutValidator })), {
175
+ className: "dash-app-form-item-input",
176
+ error: !!errors.public_id,
177
+ helperText: getErrorMessage(errors.public_id) || errors.public_id && "Invalid RUT"
178
+ })
179
+ ) }),
180
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
181
+ TextField,
182
+ __spreadProps(__spreadValues({
183
+ label: "First Name",
184
+ placeholder: "First Name",
185
+ required: true
186
+ }, register("name")), {
187
+ className: "dash-app-form-item-input",
188
+ error: !!errors.name,
189
+ helperText: getErrorMessage(errors.name)
190
+ })
191
+ ) }),
192
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
193
+ TextField,
194
+ __spreadProps(__spreadValues({
195
+ label: "Last Name",
196
+ placeholder: "Last Name",
197
+ required: true
198
+ }, register("lastname")), {
199
+ className: "dash-app-form-item-input",
200
+ error: !!errors.lastname,
201
+ helperText: getErrorMessage(errors.lastname)
202
+ })
203
+ ) }),
204
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
205
+ TextField,
206
+ __spreadProps(__spreadValues({
207
+ label: "Password",
208
+ placeholder: "Password",
209
+ type: "password",
210
+ required: true
211
+ }, register("password")), {
212
+ className: "dash-app-form-item-input",
213
+ error: !!errors.password,
214
+ helperText: getErrorMessage(errors.password)
215
+ })
216
+ ) }),
217
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
218
+ TextField,
219
+ __spreadProps(__spreadValues({
220
+ label: "Confirm Password",
221
+ placeholder: "Confirm Password",
222
+ type: "password",
223
+ required: true
224
+ }, register("confirm_password")), {
225
+ className: "dash-app-form-item-input",
226
+ error: !!errors.confirm_password,
227
+ helperText: getErrorMessage(errors.confirm_password)
228
+ })
229
+ ) }),
230
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
231
+ TextField,
232
+ __spreadProps(__spreadValues({
233
+ label: "Contact Phone",
234
+ placeholder: "+1 234 567 8900",
235
+ required: true
236
+ }, register("phone")), {
237
+ className: "dash-app-form-item-input",
238
+ error: !!errors.phone,
239
+ helperText: getErrorMessage(errors.phone)
240
+ })
241
+ ) }),
242
+ customFields,
243
+ enableRecaptcha && /* @__PURE__ */ jsxs("div", { className: "dash-app-form-item", children: [
244
+ /* @__PURE__ */ jsx(
245
+ ReCAPTCHA,
246
+ {
247
+ ref: recaptchaRef,
248
+ sitekey: DASHAppConstants.system.RECAPTCHA_TOKEN,
249
+ onChange: onChangeRecaptcha
250
+ }
251
+ ),
252
+ errors["g-recaptcha-response"] && /* @__PURE__ */ jsx("span", { style: { color: "red" }, children: getErrorMessage(errors["g-recaptcha-response"]) })
253
+ ] }),
254
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item mt-1", children: /* @__PURE__ */ jsx(
255
+ Button,
256
+ {
257
+ type: "submit",
258
+ variant: "contained",
259
+ fullWidth: true,
260
+ disabled: isLoading || !recpatcha && enableRecaptcha,
261
+ sx: { mb: 2 },
262
+ children: isLoading ? "Creating Account..." : "Create Account"
263
+ }
264
+ ) }),
265
+ /* @__PURE__ */ jsx("div", { className: "dash-app-form-item", children: /* @__PURE__ */ jsx(
266
+ Button,
267
+ {
268
+ variant: "text",
269
+ fullWidth: true,
270
+ onClick: () => {
271
+ clearErrors();
272
+ navigate("/");
273
+ },
274
+ children: "Cancel"
275
+ }
276
+ ) })
277
+ ] }) });
278
+ };
279
+ var DashDefaultRegister_default = DefaultRegisterPage;
280
+ export {
281
+ DashDefaultRegister_default as default
282
+ };