@dashadmin/dash-app-common 1.3.25 → 1.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/DashApp.js +176 -1
  2. package/dist/DashAppLoader.js +348 -3
  3. package/dist/DashDefaultResources.js +10 -1
  4. package/dist/components/DashDefaultPrivateApp.js +150 -1
  5. package/dist/components/DashDefaultPrivateResources.js +10 -1
  6. package/dist/components/DashDefaultPublicApp.js +20 -1
  7. package/dist/components/DashResourceLoader.js +245 -1
  8. package/dist/defaults/extensions/bootstrap/DashDefaultErrorBoundary.js +78 -1
  9. package/dist/defaults/extensions/bootstrap/dashDefaultInitializeApp.js +59 -1
  10. package/dist/defaults/extensions/bootstrap/index.js +24 -1
  11. package/dist/defaults/extensions/components/DashDefaultLoader.js +43 -2
  12. package/dist/defaults/extensions/components/dashDefaultAutoAdminComponents.js +67 -1
  13. package/dist/defaults/extensions/components/dashDefaultNotification.js +28 -1
  14. package/dist/defaults/extensions/components/dashDefaultStaticComponents.js +15 -1
  15. package/dist/defaults/extensions/components/index.js +13 -1
  16. package/dist/defaults/extensions/electron/dashDefaultIpcListeners.js +38 -1
  17. package/dist/defaults/extensions/electron/index.js +5 -1
  18. package/dist/defaults/extensions/hooks/index.js +12 -1
  19. package/dist/defaults/extensions/hooks/useDashDefaultLazyAutoAdminComponents.js +17 -1
  20. package/dist/defaults/extensions/hooks/useDashDefaultLazyI18nProvider.js +51 -1
  21. package/dist/defaults/extensions/hooks/useDashDefaultLazyResources.js +19 -1
  22. package/dist/defaults/extensions/hooks/useDashDefaultMountTracker.js +22 -1
  23. package/dist/defaults/extensions/hooks/useDashDefaultRoutePath.js +17 -1
  24. package/dist/defaults/extensions/i18n/dashDefaultI18nProvider.js +44 -1
  25. package/dist/defaults/extensions/i18n/dashDefaultTranslations.js +87 -1
  26. package/dist/defaults/extensions/i18n/index.js +24 -1
  27. package/dist/defaults/extensions/index.js +190 -1
  28. package/dist/defaults/extensions/layout/dashDefaultDomainAppLayout.js +58 -1
  29. package/dist/defaults/extensions/layout/index.js +12 -1
  30. package/dist/defaults/extensions/managers/DashDefaultWSMessagesManager.js +84 -1
  31. package/dist/defaults/extensions/managers/index.js +5 -1
  32. package/dist/defaults/extensions/providers/dashDefaultAuthProvider.js +220 -1
  33. package/dist/defaults/extensions/providers/dashDefaultDataProvider.js +395 -1
  34. package/dist/defaults/extensions/providers/index.js +24 -1
  35. package/dist/defaults/extensions/router/DashDefaultLanding.js +46 -1
  36. package/dist/defaults/extensions/router/dashDefaultPrivateRoutes.js +38 -1
  37. package/dist/defaults/extensions/router/dashDefaultPublicRoutes.js +65 -1
  38. package/dist/defaults/extensions/router/dashDefaultRouter.js +39 -1
  39. package/dist/defaults/extensions/router/dashDefaultSharedRoutes.js +40 -1
  40. package/dist/defaults/extensions/router/index.js +12 -1
  41. package/dist/defaults/extensions/state/dashDefaultAppCommon.js +57 -1
  42. package/dist/defaults/extensions/state/dashDefaultAppSettings.js +38 -1
  43. package/dist/defaults/extensions/state/dashDefaultInitialAppState.js +31 -1
  44. package/dist/defaults/extensions/state/dashDefaultLayoutSettings.js +48 -1
  45. package/dist/defaults/extensions/state/dashDefaultQueryClient.js +58 -1
  46. package/dist/defaults/extensions/state/dashDefaultResourcesIcons.js +24 -1
  47. package/dist/defaults/extensions/state/index.js +29 -1
  48. package/dist/defaults/extensions/styles/index.js +2 -1
  49. package/dist/defaults/extensions/theme/dashDefaultThemeOptions.js +74 -1
  50. package/dist/defaults/extensions/theme/index.js +6 -1
  51. package/dist/defaults/extensions/utils/IPCMessageBrokerContext.js +12 -1
  52. package/dist/defaults/extensions/utils/dashDefaultAuthProviderUtils.js +29 -1
  53. package/dist/defaults/extensions/utils/dashDefaultDataProviderUtils.js +37 -1
  54. package/dist/defaults/extensions/utils/dashDefaultNotificationsProcessor.js +149 -1
  55. package/dist/defaults/extensions/utils/index.js +44 -1
  56. package/dist/defaults/filters/demo/dashDefaultDemoFilters.js +36 -1
  57. package/dist/defaults/filters/demo/index.js +4 -1
  58. package/dist/defaults/filters/index.js +5 -1
  59. package/dist/defaults/index.js +14 -1
  60. package/dist/defaults/pages/Account/DashDefaultRegister.js +282 -1
  61. package/dist/defaults/pages/Account/DashDefaultSignUp.js +420 -1
  62. package/dist/defaults/pages/Account/DashDefaultSignUpSuccess.js +101 -1
  63. package/dist/defaults/pages/Account/index.js +8 -1
  64. package/dist/defaults/pages/DashDefaultLogin.js +218 -1
  65. package/dist/defaults/pages/Misc/DashDefaultNotFound.js +74 -1
  66. package/dist/defaults/pages/Misc/DashDefaultServerError.js +79 -1
  67. package/dist/defaults/pages/Misc/DashDefaultUnauthorized.js +90 -1
  68. package/dist/defaults/pages/Misc/index.js +8 -1
  69. package/dist/defaults/pages/Static/DashDefaultPrivacyPage.js +48 -1
  70. package/dist/defaults/pages/Static/DashDefaultStaticPage.js +55 -1
  71. package/dist/defaults/pages/Static/DashDefaultTermsPage.js +52 -1
  72. package/dist/defaults/pages/Static/index.js +8 -1
  73. package/dist/defaults/pages/index.js +25 -1
  74. package/dist/defaults/schemas/dashDefaultSchema.js +14 -1
  75. package/dist/defaults/schemas/demo/dashDefaultTodoSchema.js +24 -1
  76. package/dist/defaults/schemas/demo/index.js +4 -1
  77. package/dist/defaults/schemas/index.js +7 -1
  78. package/dist/filters/demo/todoFilters.js +36 -1
  79. package/dist/index.js +56 -5975
  80. package/dist/resources/demo/todoResource.js +58 -1
  81. package/dist/schemas/defaultSchema.js +14 -1
  82. package/dist/schemas/demo/todoSchema.js +24 -1
  83. package/package.json +132 -77
  84. package/src/DashApp.tsx +294 -0
  85. package/src/DashAppLoader.tsx +717 -0
  86. package/src/DashDefaultResources.tsx +10 -0
  87. package/src/components/DashDefaultPrivateApp.tsx +358 -0
  88. package/src/components/DashDefaultPrivateResources.tsx +10 -0
  89. package/src/components/DashDefaultPublicApp.tsx +40 -0
  90. package/src/components/DashResourceLoader.tsx +564 -0
  91. package/src/defaults/extensions/bootstrap/DashDefaultErrorBoundary.tsx +113 -0
  92. package/src/defaults/extensions/bootstrap/dashDefaultInitializeApp.ts +81 -0
  93. package/src/defaults/extensions/bootstrap/index.ts +32 -0
  94. package/src/defaults/extensions/components/DashDefaultLoader.tsx +59 -0
  95. package/src/defaults/extensions/components/dashDefaultAutoAdminComponents.tsx +49 -0
  96. package/src/defaults/extensions/components/dashDefaultNotification.tsx +37 -0
  97. package/src/defaults/extensions/components/dashDefaultStaticComponents.tsx +34 -0
  98. package/src/defaults/extensions/components/index.ts +17 -0
  99. package/src/defaults/extensions/electron/dashDefaultIpcListeners.ts +62 -0
  100. package/src/defaults/extensions/electron/index.ts +7 -0
  101. package/src/defaults/extensions/hooks/index.ts +11 -0
  102. package/src/defaults/extensions/hooks/useDashDefaultLazyAutoAdminComponents.ts +25 -0
  103. package/src/defaults/extensions/hooks/useDashDefaultLazyI18nProvider.ts +38 -0
  104. package/src/defaults/extensions/hooks/useDashDefaultLazyResources.ts +29 -0
  105. package/src/defaults/extensions/hooks/useDashDefaultMountTracker.ts +28 -0
  106. package/src/defaults/extensions/hooks/useDashDefaultRoutePath.ts +27 -0
  107. package/src/defaults/extensions/i18n/dashDefaultI18nProvider.ts +66 -0
  108. package/src/defaults/extensions/i18n/dashDefaultTranslations.ts +82 -0
  109. package/src/defaults/extensions/i18n/index.ts +22 -0
  110. package/src/defaults/extensions/index.ts +177 -0
  111. package/src/defaults/extensions/layout/dashDefaultDomainAppLayout.tsx +126 -0
  112. package/src/defaults/extensions/layout/index.ts +12 -0
  113. package/src/defaults/extensions/managers/DashDefaultWSMessagesManager.tsx +99 -0
  114. package/src/defaults/extensions/managers/index.ts +7 -0
  115. package/src/defaults/extensions/providers/dashDefaultAuthProvider.ts +256 -0
  116. package/src/defaults/extensions/providers/dashDefaultDataProvider.ts +513 -0
  117. package/src/defaults/extensions/providers/index.ts +25 -0
  118. package/src/defaults/extensions/router/DashDefaultLanding.tsx +51 -0
  119. package/src/defaults/extensions/router/dashDefaultPrivateRoutes.tsx +50 -0
  120. package/src/defaults/extensions/router/dashDefaultPublicRoutes.tsx +86 -0
  121. package/src/defaults/extensions/router/dashDefaultRouter.tsx +54 -0
  122. package/src/defaults/extensions/router/dashDefaultSharedRoutes.tsx +56 -0
  123. package/src/defaults/extensions/router/index.ts +13 -0
  124. package/src/defaults/extensions/state/dashDefaultAppCommon.ts +54 -0
  125. package/src/defaults/extensions/state/dashDefaultAppSettings.ts +29 -0
  126. package/src/defaults/extensions/state/dashDefaultInitialAppState.ts +75 -0
  127. package/src/defaults/extensions/state/dashDefaultLayoutSettings.ts +59 -0
  128. package/src/defaults/extensions/state/dashDefaultQueryClient.ts +59 -0
  129. package/src/defaults/extensions/state/dashDefaultResourcesIcons.tsx +23 -0
  130. package/src/defaults/extensions/state/index.ts +29 -0
  131. package/src/defaults/extensions/styles/index.ts +17 -0
  132. package/src/defaults/extensions/theme/dashDefaultThemeOptions.ts +89 -0
  133. package/src/defaults/extensions/theme/index.ts +7 -0
  134. package/src/defaults/extensions/utils/IPCMessageBrokerContext.tsx +22 -0
  135. package/src/defaults/extensions/utils/dashDefaultAuthProviderUtils.ts +36 -0
  136. package/src/defaults/extensions/utils/dashDefaultDataProviderUtils.ts +46 -0
  137. package/src/defaults/extensions/utils/dashDefaultNotificationsProcessor.tsx +208 -0
  138. package/src/defaults/extensions/utils/index.ts +42 -0
  139. package/src/defaults/filters/demo/dashDefaultDemoFilters.tsx +50 -0
  140. package/src/defaults/filters/demo/index.ts +6 -0
  141. package/src/defaults/filters/index.ts +11 -0
  142. package/src/defaults/index.ts +27 -0
  143. package/src/defaults/pages/Account/DashDefaultRegister.tsx +281 -0
  144. package/src/defaults/pages/Account/DashDefaultSignUp.tsx +492 -0
  145. package/src/defaults/pages/Account/DashDefaultSignUpSuccess.tsx +113 -0
  146. package/src/defaults/pages/Account/index.ts +8 -0
  147. package/src/defaults/pages/DashDefaultLogin.tsx +224 -0
  148. package/src/defaults/pages/Misc/DashDefaultNotFound.tsx +96 -0
  149. package/src/defaults/pages/Misc/DashDefaultServerError.tsx +102 -0
  150. package/src/defaults/pages/Misc/DashDefaultUnauthorized.tsx +116 -0
  151. package/src/defaults/pages/Misc/index.ts +8 -0
  152. package/src/defaults/pages/Static/DashDefaultPrivacyPage.tsx +85 -0
  153. package/src/defaults/pages/Static/DashDefaultStaticPage.tsx +75 -0
  154. package/src/defaults/pages/Static/DashDefaultTermsPage.tsx +69 -0
  155. package/src/defaults/pages/Static/index.ts +8 -0
  156. package/src/defaults/pages/index.ts +28 -0
  157. package/src/defaults/schemas/dashDefaultSchema.tsx +25 -0
  158. package/src/defaults/schemas/demo/dashDefaultTodoSchema.tsx +39 -0
  159. package/src/defaults/schemas/demo/index.ts +6 -0
  160. package/src/defaults/schemas/index.ts +14 -0
  161. package/src/filters/demo/todoFilters.tsx +39 -0
  162. package/src/index.ts +131 -0
  163. package/src/resources/demo/todoResource.tsx +68 -0
  164. package/src/schemas/defaultSchema.tsx +14 -0
  165. package/src/schemas/demo/todoSchema.tsx +27 -0
package/dist/DashApp.js CHANGED
@@ -1 +1,176 @@
1
- import{jsx as e}from"react/jsx-runtime";import P,{useEffect as C,useState as T}from"react";import{useSelector as b,useDispatch as S}from"react-redux";import{BrowserRouter as D,HashRouter as N,Routes as v}from"react-router-dom";import{getEnv as h}from"@dashadmin/dash-utils";import{AuthPersistenceService as l,syncLocalStorageToDeviceStore as z}from"@dashadmin/dash-auth";import{dashStorage as H}from"@dashadmin/dash-utils";import L from"@dashadmin/dash-admin/src/contexts/auth/DASHAuthenticationService";import{DASH_REDUX_ACTIONS as I}from"@dashadmin/dash-admin-state";import{ACTION_UPDATE_AUTH as k}from"@dashadmin/dash-admin-state/src/redux/reducers/Auth";import F from"@dashadmin/dash-components/src/components/theme/AppLoadingFallback";import{dashDefaultPublicRoutes as U}from"./defaults/extensions/router/dashDefaultPublicRoutes";const E=P.lazy(()=>import("./components/DashDefaultPrivateApp")),O=()=>{const o=h("PLATFORM_TYPE"),t=h("PLATFORM");return o==="desktop"||t==="electron"},_=({publicRoutes:o,privateRoutes:t,isAuthenticated:r,LoadingComponent:i,privateAppProps:a={},PrivateApp:s})=>r?s?e(s,{...a}):t?e(v,{children:t()}):e(P.Suspense,{fallback:e(i,{message:"Loading admin..."}),children:e(E,{useOwnRouter:!1,...a})}):e(v,{children:o()}),w=({publicRoutes:o,privateRoutes:t,PrivateApp:r,privateAppProps:i={},LoadingComponent:a,debug:s=!1})=>{const[R,m]=T(!0),p=S(),d=b(u=>u.auth)?.authenticated??!1,n=(...u)=>{s&&console.log("\u{1F537} DashApp:",...u)};return C(()=>{(async()=>{n("Initializing authentication...");try{const c=l.getToken(),y=l.getUser(),g=JSON.parse(H.getItem("authenticated")||"false");if(n("Persisted data:",{hasToken:!!c,hasUser:!!y,isAuthenticated:g}),c&&g){const f=await L.initializeFromToken();f.success?(n("Session restored successfully"),p(I.updateAuth(k,{user:f.user,authenticated:!0,auth:f.auth||null})),await z()):(n("Session restore failed, clearing auth"),l.clearAuth())}else n("No valid session found")}catch(c){console.error("DashApp: Auth initialization error:",c),l.clearAuth()}finally{m(!1)}})()},[p,s]),R?e(a,{message:"Initializing..."}):(n("Rendering:",d?"Private App":"Public Routes"),e(_,{publicRoutes:o,privateRoutes:t,isAuthenticated:d,LoadingComponent:a,privateAppProps:i,PrivateApp:r}))},B=({publicRoutes:o=U,privateRoutes:t,PrivateApp:r,privateAppProps:i,LoadingComponent:a=F,useHashRouter:s,basename:R,debug:m=!1})=>{const p=s??O(),A=R??h("BASE_PATH")??"/";return e(p?N:D,{...p?{basename:""}:{basename:A},children:e(w,{publicRoutes:o,privateRoutes:t,PrivateApp:r,privateAppProps:i,LoadingComponent:a,debug:m})})};var ee=B;export{B as DashApp,ee 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 } from "react/jsx-runtime";
41
+ import React, { useEffect, useState } from "react";
42
+ import { useSelector, useDispatch } from "react-redux";
43
+ import { BrowserRouter, HashRouter, Routes } from "react-router-dom";
44
+ import { getEnv } from "dash-utils";
45
+ import { AuthPersistenceService, syncLocalStorageToDeviceStore } from "dash-auth";
46
+ import { dashStorage } from "dash-utils";
47
+ import DASHAuthenticationService from "dash-admin/src/contexts/auth/DASHAuthenticationService";
48
+ import { DASH_REDUX_ACTIONS } from "dash-admin-state";
49
+ import { ACTION_UPDATE_AUTH } from "dash-admin-state/src/redux/reducers/Auth";
50
+ import AppLoadingFallback from "dash-components/src/components/theme/AppLoadingFallback";
51
+ import { dashDefaultPublicRoutes } from "./defaults/extensions/router/dashDefaultPublicRoutes";
52
+ const DashDefaultPrivateApp = React.lazy(
53
+ () => import("./components/DashDefaultPrivateApp")
54
+ );
55
+ const shouldUseHashRouter = () => {
56
+ const platformType = getEnv("PLATFORM_TYPE");
57
+ const platform = getEnv("PLATFORM");
58
+ return platformType === "desktop" || platform === "electron";
59
+ };
60
+ const RoutesContent = ({
61
+ publicRoutes,
62
+ privateRoutes,
63
+ isAuthenticated,
64
+ LoadingComponent,
65
+ privateAppProps = {},
66
+ PrivateApp
67
+ }) => {
68
+ if (isAuthenticated) {
69
+ if (PrivateApp) {
70
+ return /* @__PURE__ */ jsx(PrivateApp, __spreadValues({}, privateAppProps));
71
+ }
72
+ if (privateRoutes) {
73
+ return /* @__PURE__ */ jsx(Routes, { children: privateRoutes() });
74
+ }
75
+ return /* @__PURE__ */ jsx(React.Suspense, { fallback: /* @__PURE__ */ jsx(LoadingComponent, { message: "Loading admin..." }), children: /* @__PURE__ */ jsx(DashDefaultPrivateApp, __spreadValues({ useOwnRouter: false }, privateAppProps)) });
76
+ }
77
+ return /* @__PURE__ */ jsx(Routes, { children: publicRoutes() });
78
+ };
79
+ const AppContent = ({
80
+ publicRoutes,
81
+ privateRoutes,
82
+ PrivateApp,
83
+ privateAppProps = {},
84
+ LoadingComponent,
85
+ debug = false
86
+ }) => {
87
+ var _a;
88
+ const [isInitializing, setIsInitializing] = useState(true);
89
+ const dispatch = useDispatch();
90
+ const auth = useSelector((state) => state.auth);
91
+ const isAuthenticated = (_a = auth == null ? void 0 : auth.authenticated) != null ? _a : false;
92
+ const log = (...args) => {
93
+ if (debug) console.log("\u{1F537} DashApp:", ...args);
94
+ };
95
+ useEffect(() => {
96
+ const initializeAuth = () => __async(null, null, function* () {
97
+ log("Initializing authentication...");
98
+ try {
99
+ const storedToken = AuthPersistenceService.getToken();
100
+ const storedUser = AuthPersistenceService.getUser();
101
+ const isAuthenticatedStored = JSON.parse(dashStorage.getItem("authenticated") || "false");
102
+ log("Persisted data:", { hasToken: !!storedToken, hasUser: !!storedUser, isAuthenticated: isAuthenticatedStored });
103
+ if (storedToken && isAuthenticatedStored) {
104
+ const result = yield DASHAuthenticationService.initializeFromToken();
105
+ if (result.success) {
106
+ log("Session restored successfully");
107
+ dispatch(DASH_REDUX_ACTIONS.updateAuth(ACTION_UPDATE_AUTH, {
108
+ user: result.user,
109
+ authenticated: true,
110
+ auth: result.auth || null
111
+ }));
112
+ yield syncLocalStorageToDeviceStore();
113
+ } else {
114
+ log("Session restore failed, clearing auth");
115
+ AuthPersistenceService.clearAuth();
116
+ }
117
+ } else {
118
+ log("No valid session found");
119
+ }
120
+ } catch (error) {
121
+ console.error("DashApp: Auth initialization error:", error);
122
+ AuthPersistenceService.clearAuth();
123
+ } finally {
124
+ setIsInitializing(false);
125
+ }
126
+ });
127
+ initializeAuth();
128
+ }, [dispatch, debug]);
129
+ if (isInitializing) {
130
+ return /* @__PURE__ */ jsx(LoadingComponent, { message: "Initializing..." });
131
+ }
132
+ log("Rendering:", isAuthenticated ? "Private App" : "Public Routes");
133
+ return /* @__PURE__ */ jsx(
134
+ RoutesContent,
135
+ {
136
+ publicRoutes,
137
+ privateRoutes,
138
+ isAuthenticated,
139
+ LoadingComponent,
140
+ privateAppProps,
141
+ PrivateApp
142
+ }
143
+ );
144
+ };
145
+ const DashApp = ({
146
+ publicRoutes = dashDefaultPublicRoutes,
147
+ privateRoutes,
148
+ PrivateApp,
149
+ privateAppProps,
150
+ LoadingComponent = AppLoadingFallback,
151
+ useHashRouter: forceHashRouter,
152
+ basename,
153
+ debug = false
154
+ }) => {
155
+ var _a;
156
+ const useHash = forceHashRouter != null ? forceHashRouter : shouldUseHashRouter();
157
+ const effectiveBasename = (_a = basename != null ? basename : getEnv("BASE_PATH")) != null ? _a : "/";
158
+ const Router = useHash ? HashRouter : BrowserRouter;
159
+ const routerProps = useHash ? { basename: "" } : { basename: effectiveBasename };
160
+ return /* @__PURE__ */ jsx(Router, __spreadProps(__spreadValues({}, routerProps), { children: /* @__PURE__ */ jsx(
161
+ AppContent,
162
+ {
163
+ publicRoutes,
164
+ privateRoutes,
165
+ PrivateApp,
166
+ privateAppProps,
167
+ LoadingComponent,
168
+ debug
169
+ }
170
+ ) }));
171
+ };
172
+ var DashApp_default = DashApp;
173
+ export {
174
+ DashApp,
175
+ DashApp_default as default
176
+ };
@@ -1,11 +1,356 @@
1
- import{jsx as e,jsxs as b}from"react/jsx-runtime";import{Suspense as j,useEffect as R,useState as C,useCallback as q,lazy as T,useMemo as z}from"react";import{useSelector as G,useDispatch as M}from"react-redux";import{useDeviceStorageSync as X}from"@dashadmin/dash-utils";import F from"@dashadmin/dash-admin/src/contexts/auth/DASHAuthenticationService";import{DASH_REDUX_ACTIONS as w}from"@dashadmin/dash-admin-state";import{ACTION_UPDATE_AUTH as E}from"@dashadmin/dash-admin-state/src/redux/reducers/Auth";import H from"@dashadmin/dash-components/src/components/theme/AppLoadingFallback";import U from"./components/DashDefaultPublicApp";import B from"./components/DashDefaultPrivateApp";const a=(o,...n)=>{o&&console.log(...n)},K=({message:o})=>b("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"100vh",width:"100%",backgroundColor:"var(--dash-background, #121212)",color:"var(--dash-text, #ffffff)"},children:[e("div",{style:{width:"40px",height:"40px",border:"3px solid rgba(255,255,255,0.3)",borderTop:"3px solid var(--dash-primary, #90caf9)",borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"16px"}}),e("p",{style:{margin:0,fontSize:"14px",opacity:.8},children:o||"Loading application..."}),e("style",{children:`
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ var __async = (__this, __arguments, generator) => {
18
+ return new Promise((resolve, reject) => {
19
+ var fulfilled = (value) => {
20
+ try {
21
+ step(generator.next(value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ };
26
+ var rejected = (value) => {
27
+ try {
28
+ step(generator.throw(value));
29
+ } catch (e) {
30
+ reject(e);
31
+ }
32
+ };
33
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
34
+ step((generator = generator.apply(__this, __arguments)).next());
35
+ });
36
+ };
37
+ import { jsx, jsxs } from "react/jsx-runtime";
38
+ import { Suspense, useEffect, useState, useCallback, lazy, useMemo } from "react";
39
+ import { useSelector, useDispatch } from "react-redux";
40
+ import { useDeviceStorageSync } from "dash-utils";
41
+ import DASHAuthenticationService from "dash-admin/src/contexts/auth/DASHAuthenticationService";
42
+ import { DASH_REDUX_ACTIONS } from "dash-admin-state";
43
+ import { ACTION_UPDATE_AUTH } from "dash-admin-state/src/redux/reducers/Auth";
44
+ import AppLoadingFallback from "dash-components/src/components/theme/AppLoadingFallback";
45
+ import DashDefaultPublicApp from "./components/DashDefaultPublicApp";
46
+ import DashDefaultPrivateApp from "./components/DashDefaultPrivateApp";
47
+ const log = (debug, ...args) => {
48
+ if (debug) {
49
+ console.log(...args);
50
+ }
51
+ };
52
+ const DefaultLoadingFallback = ({ message }) => /* @__PURE__ */ jsxs("div", { style: {
53
+ display: "flex",
54
+ flexDirection: "column",
55
+ justifyContent: "center",
56
+ alignItems: "center",
57
+ height: "100vh",
58
+ width: "100%",
59
+ backgroundColor: "var(--dash-background, #121212)",
60
+ color: "var(--dash-text, #ffffff)"
61
+ }, children: [
62
+ /* @__PURE__ */ jsx("div", { style: {
63
+ width: "40px",
64
+ height: "40px",
65
+ border: "3px solid rgba(255,255,255,0.3)",
66
+ borderTop: "3px solid var(--dash-primary, #90caf9)",
67
+ borderRadius: "50%",
68
+ animation: "spin 1s linear infinite",
69
+ marginBottom: "16px"
70
+ } }),
71
+ /* @__PURE__ */ jsx("p", { style: { margin: 0, fontSize: "14px", opacity: 0.8 }, children: message || "Loading application..." }),
72
+ /* @__PURE__ */ jsx("style", { children: `
2
73
  @keyframes spin {
3
74
  0% { transform: rotate(0deg); }
4
75
  100% { transform: rotate(360deg); }
5
76
  }
6
- `})]}),N=({error:o,onRetry:n})=>b("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"100vh",width:"100%",backgroundColor:"var(--dash-background, #121212)",color:"var(--dash-text, #ffffff)",padding:"20px"},children:[e("h2",{style:{color:"#f44336",marginBottom:"16px"},children:"Application Error"}),e("p",{style:{maxWidth:"500px",textAlign:"center",marginBottom:"24px",opacity:.8},children:o}),e("button",{onClick:n,style:{backgroundColor:"var(--dash-primary, #90caf9)",color:"#000",border:"none",padding:"12px 24px",borderRadius:"4px",cursor:"pointer",fontSize:"14px",fontWeight:500},children:"Retry"})]}),Q=({missingProps:o})=>b("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"100vh",width:"100%",backgroundColor:"#1a1a1a",color:"#ffffff",padding:"40px",boxSizing:"border-box"},children:[e("h2",{style:{color:"#f44336",marginBottom:"16px"},children:"DashAppLoader Configuration Error"}),e("p",{style:{marginBottom:"16px"},children:"The following required props are missing:"}),e("ul",{style:{textAlign:"left",marginBottom:"24px"},children:o.map(n=>e("li",{style:{color:"#ff9800"},children:n},n))}),b("div",{style:{backgroundColor:"#2d2d2d",padding:"16px",borderRadius:"8px",maxWidth:"600px",width:"100%"},children:[e("p",{style:{marginBottom:"8px",color:"#90caf9"},children:"Example usage:"}),e("pre",{style:{backgroundColor:"#1e1e1e",padding:"12px",borderRadius:"4px",overflow:"auto",fontSize:"12px"},children:`import { DashAppLoader } from '@dashadmin/dash-app-common';
77
+ ` })
78
+ ] });
79
+ const DefaultErrorFallback = ({
80
+ error,
81
+ onRetry
82
+ }) => /* @__PURE__ */ jsxs("div", { style: {
83
+ display: "flex",
84
+ flexDirection: "column",
85
+ justifyContent: "center",
86
+ alignItems: "center",
87
+ height: "100vh",
88
+ width: "100%",
89
+ backgroundColor: "var(--dash-background, #121212)",
90
+ color: "var(--dash-text, #ffffff)",
91
+ padding: "20px"
92
+ }, children: [
93
+ /* @__PURE__ */ jsx("h2", { style: { color: "#f44336", marginBottom: "16px" }, children: "Application Error" }),
94
+ /* @__PURE__ */ jsx("p", { style: {
95
+ maxWidth: "500px",
96
+ textAlign: "center",
97
+ marginBottom: "24px",
98
+ opacity: 0.8
99
+ }, children: error }),
100
+ /* @__PURE__ */ jsx(
101
+ "button",
102
+ {
103
+ onClick: onRetry,
104
+ style: {
105
+ backgroundColor: "var(--dash-primary, #90caf9)",
106
+ color: "#000",
107
+ border: "none",
108
+ padding: "12px 24px",
109
+ borderRadius: "4px",
110
+ cursor: "pointer",
111
+ fontSize: "14px",
112
+ fontWeight: 500
113
+ },
114
+ children: "Retry"
115
+ }
116
+ )
117
+ ] });
118
+ const ConfigurationError = ({ missingProps }) => /* @__PURE__ */ jsxs("div", { style: {
119
+ display: "flex",
120
+ flexDirection: "column",
121
+ justifyContent: "center",
122
+ alignItems: "center",
123
+ height: "100vh",
124
+ width: "100%",
125
+ backgroundColor: "#1a1a1a",
126
+ color: "#ffffff",
127
+ padding: "40px",
128
+ boxSizing: "border-box"
129
+ }, children: [
130
+ /* @__PURE__ */ jsx("h2", { style: { color: "#f44336", marginBottom: "16px" }, children: "DashAppLoader Configuration Error" }),
131
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "16px" }, children: "The following required props are missing:" }),
132
+ /* @__PURE__ */ jsx("ul", { style: { textAlign: "left", marginBottom: "24px" }, children: missingProps.map((prop) => /* @__PURE__ */ jsx("li", { style: { color: "#ff9800" }, children: prop }, prop)) }),
133
+ /* @__PURE__ */ jsxs("div", { style: {
134
+ backgroundColor: "#2d2d2d",
135
+ padding: "16px",
136
+ borderRadius: "8px",
137
+ maxWidth: "600px",
138
+ width: "100%"
139
+ }, children: [
140
+ /* @__PURE__ */ jsx("p", { style: { marginBottom: "8px", color: "#90caf9" }, children: "Example usage:" }),
141
+ /* @__PURE__ */ jsx("pre", { style: {
142
+ backgroundColor: "#1e1e1e",
143
+ padding: "12px",
144
+ borderRadius: "4px",
145
+ overflow: "auto",
146
+ fontSize: "12px"
147
+ }, children: `import { DashAppLoader } from 'dash-app-common';
7
148
 
8
149
  <DashAppLoader
9
150
  publicAppImport={() => import('./DASHPublicApp')}
10
151
  privateAppImport={() => import('./DASHLazyAdminApp')}
11
- />`})]})]}),V=()=>Promise.resolve({default:U}),Y=()=>Promise.resolve({default:B}),Z=({publicAppImport:o,privateAppImport:n,authService:p,reduxActions:I,updateAuthActionType:g,AdminHookComponent:v,LoadingFallback:m,ErrorFallback:k,privateAppProps:f,publicAppProps:h,debug:t})=>{const y=M(),i=G(s=>s.auth),[l,A]=C(!0),[P,S]=C(null),[d,L]=C(!1);X(),a(t,"\u{1F50D} DashAppLoader: Redux auth state:",{isLogged:i?.isLogged,hasUser:!!i?.user,hasToken:!!i?.token}),R(()=>{if(!d&&!i?.isLogged){a(t,"\u{1F50D} DashAppLoader: Checking for persisted auth data...");const s=localStorage.getItem("token"),D=localStorage.getItem("user"),r=localStorage.getItem("tenant");if(a(t,"\u{1F50D} DashAppLoader: Persisted data check:",{hasToken:!!s,hasUser:!!D,hasTenant:!!r}),s&&D&&!i?.isLogged){a(t,"\u{1F504} DashAppLoader: Restoring auth session to Redux from localStorage");let c=null;try{c=JSON.parse(D),typeof c=="string"&&(a(t,"\u{1F504} DashAppLoader: User was double-stringified, parsing again..."),c=JSON.parse(c))}catch{console.error("\u274C DashAppLoader: Cannot parse user from localStorage, clearing auth data"),localStorage.removeItem("token"),localStorage.removeItem("user"),localStorage.removeItem("tenant"),localStorage.removeItem("authenticated"),L(!0);return}let u=null;if(r)try{u=JSON.parse(r),typeof u=="string"&&(u=JSON.parse(u))}catch{a(t,"\u26A0\uFE0F DashAppLoader: Could not parse tenant, continuing without it")}y({type:g,payload:{isLogged:!0,token:s,user:c,tenant:u}}),a(t,"\u2705 DashAppLoader: Redux state restored from persisted data")}L(!0)}},[i?.isLogged,d,y,g,t]),R(()=>{let s=!0;return(async()=>{if(d)try{a(t,"\u{1F680} DashAppLoader: Starting app initialization...");let r;if(p.initializeApp)r=await p.initializeApp();else if(p.init)r=await p.init();else{a(t,"\u26A0\uFE0F DashAppLoader: No init method on authService, skipping initialization"),A(!1);return}if(!s)return;a(t,"\u{1F50D} DashAppLoader: Initialization result:",r),r.success&&r.user&&a(t,"\u2705 DashAppLoader: Auto-login successful"),A(!1)}catch(r){if(!s)return;console.error("\u274C DashAppLoader initialization error:",r),S(r instanceof Error?r.message:"Unknown error during initialization"),A(!1)}})(),()=>{s=!1}},[p,d,t]);const J=z(()=>T(o),[o]),_=z(()=>T(n),[n]),W=q(()=>{S(null),A(!0),L(!1)},[]);if(P)return e(k,{error:P,onRetry:W});if(l||!d)return e(m,{message:"Initializing application..."});const x=i?.isLogged===!0;return a(t,"\u{1F3AF} DashAppLoader: Rendering app:",{isAuthenticated:x,appType:x?"Private":"Public"}),e(j,{fallback:e(m,{message:x?"Loading admin...":"Loading..."}),children:x?e(_,{AdminHookComponent:v,...f}):e(J,{...h})})},O=({publicAppImport:o,privateAppImport:n,AdminHookComponent:p,LoadingFallback:I=H,ErrorFallback:g=N,privateAppProps:v={},publicAppProps:m={},debug:k=!1,authService:f=F,reduxActions:h=w,updateAuthActionType:t=E})=>{const y=o||V,i=n||Y,l=[];return f||l.push("authService"),h||l.push("reduxActions"),t||l.push("updateAuthActionType"),l.length>0?e(Q,{missingProps:l}):e(Z,{publicAppImport:y,privateAppImport:i,authService:f,reduxActions:h,updateAuthActionType:t,AdminHookComponent:p,LoadingFallback:I,ErrorFallback:g,privateAppProps:v,publicAppProps:m,debug:k})},ce=(o={})=>()=>e(O,{...o});import{dashDefaultPublicRoutes as fe}from"./defaults/extensions/router/dashDefaultPublicRoutes";import{dashDefaultPrivateRoutes as ye}from"./defaults/extensions/router/dashDefaultPrivateRoutes";var ue=O;export{E as ACTION_UPDATE_AUTH,H as AppLoadingFallback,F as DASHAuthenticationService,w as DASH_REDUX_ACTIONS,O as DashAppLoader,B as DashDefaultPrivateApp,U as DashDefaultPublicApp,N as DefaultErrorFallback,K as DefaultLoadingFallback,ce as createDashAppLoader,ye as dashDefaultPrivateRoutes,fe as dashDefaultPublicRoutes,ue as default};
152
+ />` })
153
+ ] })
154
+ ] });
155
+ const dashDefaultPublicAppImport = () => Promise.resolve({ default: DashDefaultPublicApp });
156
+ const dashDefaultPrivateAppImport = () => Promise.resolve({ default: DashDefaultPrivateApp });
157
+ const DashAppLoaderInner = ({
158
+ publicAppImport,
159
+ privateAppImport,
160
+ authService,
161
+ reduxActions,
162
+ updateAuthActionType,
163
+ AdminHookComponent,
164
+ LoadingFallback,
165
+ ErrorFallback,
166
+ privateAppProps,
167
+ publicAppProps,
168
+ debug
169
+ }) => {
170
+ const dispatch = useDispatch();
171
+ const auth = useSelector((state) => state.auth);
172
+ const [isInitializing, setIsInitializing] = useState(true);
173
+ const [initError, setInitError] = useState(null);
174
+ const [hasRestoredFromStorage, setHasRestoredFromStorage] = useState(false);
175
+ useDeviceStorageSync();
176
+ log(debug, "\u{1F50D} DashAppLoader: Redux auth state:", {
177
+ isLogged: auth == null ? void 0 : auth.isLogged,
178
+ hasUser: !!(auth == null ? void 0 : auth.user),
179
+ hasToken: !!(auth == null ? void 0 : auth.token)
180
+ });
181
+ useEffect(() => {
182
+ if (!hasRestoredFromStorage && !(auth == null ? void 0 : auth.isLogged)) {
183
+ log(debug, "\u{1F50D} DashAppLoader: Checking for persisted auth data...");
184
+ const storedToken = localStorage.getItem("token");
185
+ const storedUserRaw = localStorage.getItem("user");
186
+ const storedTenantRaw = localStorage.getItem("tenant");
187
+ log(debug, "\u{1F50D} DashAppLoader: Persisted data check:", {
188
+ hasToken: !!storedToken,
189
+ hasUser: !!storedUserRaw,
190
+ hasTenant: !!storedTenantRaw
191
+ });
192
+ if (storedToken && storedUserRaw && !(auth == null ? void 0 : auth.isLogged)) {
193
+ log(debug, "\u{1F504} DashAppLoader: Restoring auth session to Redux from localStorage");
194
+ let parsedUser = null;
195
+ try {
196
+ parsedUser = JSON.parse(storedUserRaw);
197
+ if (typeof parsedUser === "string") {
198
+ log(debug, "\u{1F504} DashAppLoader: User was double-stringified, parsing again...");
199
+ parsedUser = JSON.parse(parsedUser);
200
+ }
201
+ } catch (e) {
202
+ console.error("\u274C DashAppLoader: Cannot parse user from localStorage, clearing auth data");
203
+ localStorage.removeItem("token");
204
+ localStorage.removeItem("user");
205
+ localStorage.removeItem("tenant");
206
+ localStorage.removeItem("authenticated");
207
+ setHasRestoredFromStorage(true);
208
+ return;
209
+ }
210
+ let parsedTenant = null;
211
+ if (storedTenantRaw) {
212
+ try {
213
+ parsedTenant = JSON.parse(storedTenantRaw);
214
+ if (typeof parsedTenant === "string") {
215
+ parsedTenant = JSON.parse(parsedTenant);
216
+ }
217
+ } catch (e) {
218
+ log(debug, "\u26A0\uFE0F DashAppLoader: Could not parse tenant, continuing without it");
219
+ }
220
+ }
221
+ dispatch({
222
+ type: updateAuthActionType,
223
+ payload: {
224
+ isLogged: true,
225
+ token: storedToken,
226
+ user: parsedUser,
227
+ tenant: parsedTenant
228
+ }
229
+ });
230
+ log(debug, "\u2705 DashAppLoader: Redux state restored from persisted data");
231
+ }
232
+ setHasRestoredFromStorage(true);
233
+ }
234
+ }, [auth == null ? void 0 : auth.isLogged, hasRestoredFromStorage, dispatch, updateAuthActionType, debug]);
235
+ useEffect(() => {
236
+ let mounted = true;
237
+ const initializeAuth = () => __async(null, null, function* () {
238
+ if (!hasRestoredFromStorage) {
239
+ return;
240
+ }
241
+ try {
242
+ log(debug, "\u{1F680} DashAppLoader: Starting app initialization...");
243
+ let initResult;
244
+ if (authService.initializeApp) {
245
+ initResult = yield authService.initializeApp();
246
+ } else if (authService.init) {
247
+ initResult = yield authService.init();
248
+ } else {
249
+ log(debug, "\u26A0\uFE0F DashAppLoader: No init method on authService, skipping initialization");
250
+ setIsInitializing(false);
251
+ return;
252
+ }
253
+ if (!mounted) return;
254
+ log(debug, "\u{1F50D} DashAppLoader: Initialization result:", initResult);
255
+ if (initResult.success && initResult.user) {
256
+ log(debug, "\u2705 DashAppLoader: Auto-login successful");
257
+ }
258
+ setIsInitializing(false);
259
+ } catch (error) {
260
+ if (!mounted) return;
261
+ console.error("\u274C DashAppLoader initialization error:", error);
262
+ setInitError(error instanceof Error ? error.message : "Unknown error during initialization");
263
+ setIsInitializing(false);
264
+ }
265
+ });
266
+ initializeAuth();
267
+ return () => {
268
+ mounted = false;
269
+ };
270
+ }, [authService, hasRestoredFromStorage, debug]);
271
+ const PublicApp = useMemo(() => lazy(publicAppImport), [publicAppImport]);
272
+ const PrivateApp = useMemo(() => lazy(privateAppImport), [privateAppImport]);
273
+ const handleRetry = useCallback(() => {
274
+ setInitError(null);
275
+ setIsInitializing(true);
276
+ setHasRestoredFromStorage(false);
277
+ }, []);
278
+ if (initError) {
279
+ return /* @__PURE__ */ jsx(ErrorFallback, { error: initError, onRetry: handleRetry });
280
+ }
281
+ if (isInitializing || !hasRestoredFromStorage) {
282
+ return /* @__PURE__ */ jsx(LoadingFallback, { message: "Initializing application..." });
283
+ }
284
+ const isAuthenticated = (auth == null ? void 0 : auth.isLogged) === true;
285
+ log(debug, "\u{1F3AF} DashAppLoader: Rendering app:", {
286
+ isAuthenticated,
287
+ appType: isAuthenticated ? "Private" : "Public"
288
+ });
289
+ return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingFallback, { message: isAuthenticated ? "Loading admin..." : "Loading..." }), children: isAuthenticated ? /* @__PURE__ */ jsx(
290
+ PrivateApp,
291
+ __spreadValues({
292
+ AdminHookComponent
293
+ }, privateAppProps)
294
+ ) : /* @__PURE__ */ jsx(PublicApp, __spreadValues({}, publicAppProps)) });
295
+ };
296
+ const DashAppLoader = ({
297
+ publicAppImport,
298
+ privateAppImport,
299
+ AdminHookComponent,
300
+ LoadingFallback = AppLoadingFallback,
301
+ ErrorFallback = DefaultErrorFallback,
302
+ privateAppProps = {},
303
+ publicAppProps = {},
304
+ debug = false,
305
+ // Allow overrides but provide defaults
306
+ authService = DASHAuthenticationService,
307
+ reduxActions = DASH_REDUX_ACTIONS,
308
+ updateAuthActionType = ACTION_UPDATE_AUTH
309
+ }) => {
310
+ const resolvedPublicAppImport = publicAppImport || dashDefaultPublicAppImport;
311
+ const resolvedPrivateAppImport = privateAppImport || dashDefaultPrivateAppImport;
312
+ const missingProps = [];
313
+ if (!authService) missingProps.push("authService");
314
+ if (!reduxActions) missingProps.push("reduxActions");
315
+ if (!updateAuthActionType) missingProps.push("updateAuthActionType");
316
+ if (missingProps.length > 0) {
317
+ return /* @__PURE__ */ jsx(ConfigurationError, { missingProps });
318
+ }
319
+ return /* @__PURE__ */ jsx(
320
+ DashAppLoaderInner,
321
+ {
322
+ publicAppImport: resolvedPublicAppImport,
323
+ privateAppImport: resolvedPrivateAppImport,
324
+ authService,
325
+ reduxActions,
326
+ updateAuthActionType,
327
+ AdminHookComponent,
328
+ LoadingFallback,
329
+ ErrorFallback,
330
+ privateAppProps,
331
+ publicAppProps,
332
+ debug
333
+ }
334
+ );
335
+ };
336
+ const createDashAppLoader = (config = {}) => {
337
+ return () => /* @__PURE__ */ jsx(DashAppLoader, __spreadValues({}, config));
338
+ };
339
+ import { dashDefaultPublicRoutes } from "./defaults/extensions/router/dashDefaultPublicRoutes";
340
+ import { dashDefaultPrivateRoutes } from "./defaults/extensions/router/dashDefaultPrivateRoutes";
341
+ var DashAppLoader_default = DashAppLoader;
342
+ export {
343
+ ACTION_UPDATE_AUTH,
344
+ AppLoadingFallback,
345
+ DASHAuthenticationService,
346
+ DASH_REDUX_ACTIONS,
347
+ DashAppLoader,
348
+ DashDefaultPrivateApp,
349
+ DashDefaultPublicApp,
350
+ DefaultErrorFallback,
351
+ DefaultLoadingFallback,
352
+ createDashAppLoader,
353
+ dashDefaultPrivateRoutes,
354
+ dashDefaultPublicRoutes,
355
+ DashAppLoader_default as default
356
+ };
@@ -1 +1,10 @@
1
- import o from"./resources/demo/todoResource";import e from"@dashadmin/dash-admin/src/systemResources";const r=[...e,o];var f=r;export{f as default};
1
+ import todoResource from "./resources/demo/todoResource";
2
+ import systemResources from "dash-admin/src/systemResources";
3
+ const DASHDefaultResources = [
4
+ ...systemResources,
5
+ todoResource
6
+ ];
7
+ var DashDefaultResources_default = DASHDefaultResources;
8
+ export {
9
+ DashDefaultResources_default as default
10
+ };