@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
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Default Static Page
3
+ *
4
+ * Generic static page component that can be used for terms, privacy policy, etc.
5
+ */
6
+ import React from 'react';
7
+ import { useNavigate } from 'react-router-dom';
8
+ import {
9
+ Box,
10
+ Typography,
11
+ Button,
12
+ Container,
13
+ Paper
14
+ } from '@mui/material';
15
+ import ArrowBackIcon from '@mui/icons-material/ArrowBack';
16
+
17
+ interface DefaultStaticPageProps {
18
+ title?: string;
19
+ content?: string | React.ReactNode;
20
+ showBackButton?: boolean;
21
+ maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
22
+ }
23
+
24
+ const DefaultStaticPage: React.FC<DefaultStaticPageProps> = ({
25
+ title = 'Static Page',
26
+ content,
27
+ showBackButton = true,
28
+ maxWidth = 'md',
29
+ }) => {
30
+ const navigate = useNavigate();
31
+
32
+ const handleGoBack = () => {
33
+ navigate(-1);
34
+ };
35
+
36
+ return (
37
+ <Container maxWidth={maxWidth}>
38
+ <Paper
39
+ elevation={0}
40
+ sx={{
41
+ p: 4,
42
+ my: 4
43
+ }}
44
+ >
45
+ {showBackButton && (
46
+ <Box sx={{ mb: 3 }}>
47
+ <Button
48
+ variant="text"
49
+ startIcon={<ArrowBackIcon />}
50
+ onClick={handleGoBack}
51
+ >
52
+ Back
53
+ </Button>
54
+ </Box>
55
+ )}
56
+
57
+ <Typography variant="h4" component="h1" gutterBottom>
58
+ {title}
59
+ </Typography>
60
+
61
+ {typeof content === 'string' ? (
62
+ <Typography
63
+ variant="body1"
64
+ component="div"
65
+ dangerouslySetInnerHTML={{ __html: content }}
66
+ />
67
+ ) : (
68
+ content
69
+ )}
70
+ </Paper>
71
+ </Container>
72
+ );
73
+ };
74
+
75
+ export default DefaultStaticPage;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Default Terms Page
3
+ *
4
+ * Terms of service page template.
5
+ */
6
+ import React from 'react';
7
+ import DashDefaultStaticPage from './DashDefaultStaticPage';
8
+
9
+
10
+ interface DefaultTermsPageProps {
11
+ companyName?: string;
12
+ effectiveDate?: string;
13
+ content?: string | React.ReactNode;
14
+ }
15
+
16
+ const DefaultTermsPage: React.FC<DefaultTermsPageProps> = ({
17
+ companyName = 'Our Company',
18
+ effectiveDate = new Date().toLocaleDateString(),
19
+ content,
20
+ }) => {
21
+ const defaultContent = (
22
+ <div>
23
+ <p><strong>Effective Date:</strong> {effectiveDate}</p>
24
+
25
+ <h2>1. Acceptance of Terms</h2>
26
+ <p>
27
+ By accessing and using this service, you accept and agree to be bound by the terms
28
+ and provision of this agreement.
29
+ </p>
30
+
31
+ <h2>2. Use License</h2>
32
+ <p>
33
+ Permission is granted to temporarily access the materials (information or software)
34
+ on {companyName}'s website for personal, non-commercial transitory viewing only.
35
+ </p>
36
+
37
+ <h2>3. Disclaimer</h2>
38
+ <p>
39
+ The materials on {companyName}'s website are provided on an 'as is' basis.
40
+ {companyName} makes no warranties, expressed or implied, and hereby disclaims and
41
+ negates all other warranties including, without limitation, implied warranties or
42
+ conditions of merchantability, fitness for a particular purpose, or non-infringement
43
+ of intellectual property or other violation of rights.
44
+ </p>
45
+
46
+ <h2>4. Limitations</h2>
47
+ <p>
48
+ In no event shall {companyName} or its suppliers be liable for any damages
49
+ (including, without limitation, damages for loss of data or profit, or due to
50
+ business interruption) arising out of the use or inability to use the materials
51
+ on {companyName}'s website.
52
+ </p>
53
+
54
+ <h2>5. Contact Information</h2>
55
+ <p>
56
+ If you have any questions about these Terms, please contact us.
57
+ </p>
58
+ </div>
59
+ );
60
+
61
+ return (
62
+ <DashDefaultStaticPage
63
+ title="Terms of Service"
64
+ content={content || defaultContent}
65
+ />
66
+ );
67
+ };
68
+
69
+ export default DefaultTermsPage;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Static Pages Module
3
+ *
4
+ * Exports all default static pages.
5
+ */
6
+ export { default as DashDefaultStaticPage } from './DashDefaultStaticPage';
7
+ export { default as DashDefaultTermsPage } from './DashDefaultTermsPage';
8
+ export { default as DashDefaultPrivacyPage } from './DashDefaultPrivacyPage';
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Default Pages Index
3
+ *
4
+ * Default page components for common application pages.
5
+ */
6
+
7
+ // Auth pages (standalone - no react-admin dependency)
8
+ export { default as DashDefaultLogin } from './DashDefaultLogin';
9
+
10
+ // Account pages
11
+ export { default as DashDefaultRegisterPage } from './Account/DashDefaultRegister';
12
+ export { default as DashDefaultSignUpPage } from './Account/DashDefaultSignUp';
13
+ export { default as DashDefaultSignUpSuccessPage } from './Account/DashDefaultSignUpSuccess';
14
+
15
+ // Misc pages (Error pages)
16
+ export { default as DashDefaultNotFoundPage } from './Misc/DashDefaultNotFound';
17
+ export { default as DashDefaultUnauthorizedPage } from './Misc/DashDefaultUnauthorized';
18
+ export { default as DashDefaultServerErrorPage } from './Misc/DashDefaultServerError';
19
+
20
+ // Static pages
21
+ export { default as DashDefaultStaticPage } from './Static/DashDefaultStaticPage';
22
+ export { default as DashDefaultTermsPage } from './Static/DashDefaultTermsPage';
23
+ export { default as DashDefaultPrivacyPage } from './Static/DashDefaultPrivacyPage';
24
+
25
+ // Re-export modules
26
+ export * from './Account';
27
+ export * from './Misc';
28
+ export * from './Static';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Dash Default Base Schema
3
+ *
4
+ * Base schema configuration with common attributes.
5
+ * This schema can be extended or merged with resource-specific schemas.
6
+ */
7
+ import { IDashAutoAdminAttribute } from 'dash-auto-admin';
8
+
9
+ /**
10
+ * Dash default schema with basic ID field
11
+ * Most resources will need an ID field, so this provides
12
+ * a sensible default configuration.
13
+ */
14
+ const dashDefaultSchema: IDashAutoAdminAttribute[] = [
15
+ {
16
+ attribute: 'id',
17
+ label: 'ID',
18
+ type: String,
19
+ sortable: true,
20
+ inEdit: false,
21
+ inCreate: false,
22
+ },
23
+ ];
24
+
25
+ export default dashDefaultSchema;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Dash Default Demo Schema (Todo)
3
+ *
4
+ * Example schema configuration for a Todo resource.
5
+ * Demonstrates common field types and configurations.
6
+ */
7
+ import { IDashAutoAdminAttribute } from "dash-auto-admin";
8
+
9
+ /**
10
+ * Dash default demo Todo schema
11
+ *
12
+ * Demonstrates:
13
+ * - String fields (name)
14
+ * - Textarea fields (description)
15
+ * - Boolean fields (completed)
16
+ * - Tab grouping
17
+ */
18
+ const dashDefaultTodoSchema: IDashAutoAdminAttribute[] = [
19
+ {
20
+ tab: 'Details',
21
+ attribute: 'name',
22
+ label: 'Name',
23
+ type: String,
24
+ },
25
+ {
26
+ tab: 'Details',
27
+ attribute: 'description',
28
+ label: 'Description',
29
+ type: 'textarea',
30
+ },
31
+ {
32
+ tab: 'Status',
33
+ attribute: 'completed',
34
+ label: 'Completed',
35
+ type: Boolean,
36
+ }
37
+ ];
38
+
39
+ export default dashDefaultTodoSchema;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Demo Schemas Module
3
+ *
4
+ * Exports demo schema configurations.
5
+ */
6
+ export { default as dashDefaultTodoSchema } from './dashDefaultTodoSchema';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Default Schemas Index
3
+ *
4
+ * Default schema configurations for resources.
5
+ * These schemas provide common field configurations that can be
6
+ * customized or extended for specific resources.
7
+ */
8
+
9
+ // Base schema
10
+ export { default as dashDefaultSchema } from './dashDefaultSchema';
11
+
12
+ // Demo schemas
13
+ export * from './demo';
14
+ export { default as dashDefaultTodoSchema } from './demo/dashDefaultTodoSchema';
@@ -0,0 +1,39 @@
1
+ import Dot from "@mui/icons-material/FiberManualRecord";
2
+ import React from "react";
3
+ import IReferenceFilter from "dash-auto-admin/src/interfaces/IReferenceFilter";
4
+ import { SelectInput } from "react-admin";
5
+
6
+ const demoFilters: IReferenceFilter[] = [
7
+ {
8
+ id: 'name',
9
+ label: 'Nombre',
10
+ source: 'name',
11
+ alwaysOn: true,
12
+ reference: null,
13
+ optionText: null,
14
+ },
15
+
16
+ {
17
+ id: 'description',
18
+ label: 'Descripción',
19
+ source: 'description',
20
+ alwaysOn: true,
21
+ reference: null,
22
+ optionText: null,
23
+ },
24
+
25
+ {
26
+ id: 'completed',
27
+ label: 'Status',
28
+ source: 'completed',
29
+ reference: [
30
+ { id: '1', name: 'Completado' },
31
+ { id: '0', name: 'Incompleto' },
32
+ ],
33
+ optionText: 'completed', // field from the model
34
+ alwaysOn: true,
35
+ referenceComponent: SelectInput,
36
+ }
37
+ ];
38
+
39
+ export default demoFilters;
package/src/index.ts ADDED
@@ -0,0 +1,131 @@
1
+ /**
2
+ * dash-app-common
3
+ *
4
+ * This package provides a simplified application shell for Dash applications.
5
+ *
6
+ * Main Components:
7
+ * - DashApp: Simple app shell that handles Router + Auth + Public/Private rendering
8
+ * - DashAppLoader: Legacy/advanced loader (wraps DashBootstrap for complex scenarios)
9
+ *
10
+ * Recommended Usage (Simple):
11
+ * ```tsx
12
+ * import { DashApp } from 'dash-app-common';
13
+ *
14
+ * // Zero-config (uses default routes)
15
+ * <DashApp />
16
+ *
17
+ * // With custom private app
18
+ * <DashApp PrivateApp={MyAdminApp} />
19
+ *
20
+ * // With custom routes
21
+ * <DashApp
22
+ * publicRoutes={myPublicRoutes}
23
+ * privateRoutes={myPrivateRoutes}
24
+ * />
25
+ * ```
26
+ *
27
+ * Legacy Usage (DashAppLoader):
28
+ * ```tsx
29
+ * import DashAppLoader from 'dash-app-common';
30
+ *
31
+ * <DashAppLoader
32
+ * publicAppImport={() => import('./PublicApp')}
33
+ * privateAppImport={() => import('./PrivateApp')}
34
+ * />
35
+ * ```
36
+ *
37
+ * @packageDocumentation
38
+ */
39
+
40
+ // ============================================================================
41
+ // NEW SIMPLIFIED API
42
+ // ============================================================================
43
+
44
+ // Main simplified component
45
+ export { DashApp, default as DashAppSimple } from './DashApp';
46
+
47
+ // ============================================================================
48
+ // LEGACY/ADVANCED API (DashAppLoader)
49
+ // ============================================================================
50
+
51
+ // Re-export base DashAppLoader for backward compatibility
52
+ export {
53
+ DashAppLoader,
54
+ createDashAppLoader,
55
+ type DashAppLoaderProps,
56
+ type DashAppLoaderConfig,
57
+ type IDashAuthState,
58
+ type IDashAppState,
59
+ type IDashAuthService,
60
+ type IDashReduxActions,
61
+ // Default fallback components
62
+ DefaultLoadingFallback,
63
+ DefaultErrorFallback,
64
+ } from './DashAppLoader';
65
+
66
+ // Re-export framework services for advanced customization
67
+ export {
68
+ DASHAuthenticationService,
69
+ DASH_REDUX_ACTIONS,
70
+ ACTION_UPDATE_AUTH,
71
+ AppLoadingFallback,
72
+ } from './DashAppLoader';
73
+
74
+ // Re-export default apps and routes for customization
75
+ export {
76
+ DashDefaultPublicApp,
77
+ DashDefaultPrivateApp,
78
+ } from './DashAppLoader';
79
+
80
+ // ============================================================================
81
+ // RESOURCE MANIFEST LOADING
82
+ // ============================================================================
83
+
84
+ // Resource loader for manifest-based dynamic resource loading
85
+ export {
86
+ DashPrivateAppWithManifest,
87
+ DashPrivateApp,
88
+ useDashResourceManifest,
89
+ loadResourcesFromManifest,
90
+ clearResourceCache,
91
+ isResourceManifest,
92
+ isResourceArray,
93
+ type ResourceImportFn,
94
+ type ResourceManifest,
95
+ type UseDashResourceManifestResult,
96
+ type DashPrivateAppWithManifestProps,
97
+ type DashPrivateAppProps,
98
+ } from './components/DashResourceLoader';
99
+
100
+ // ============================================================================
101
+ // DEFAULT ROUTES
102
+ // ============================================================================
103
+
104
+ export { dashDefaultPublicRoutes } from './defaults/extensions/router/dashDefaultPublicRoutes';
105
+ export { dashDefaultPrivateRoutes } from './defaults/extensions/router/dashDefaultPrivateRoutes';
106
+
107
+ // ============================================================================
108
+ // DEFAULTS (extensions, pages, filters, schemas)
109
+ // ============================================================================
110
+
111
+ // Re-export all defaults
112
+ export * from './defaults';
113
+
114
+ // Re-export default extensions by category
115
+ export * from './defaults/extensions';
116
+
117
+ // Re-export default pages
118
+ export * from './defaults/pages';
119
+
120
+ // Re-export default filters
121
+ export * from './defaults/filters';
122
+
123
+ // Re-export default schemas
124
+ export * from './defaults/schemas';
125
+
126
+ // ============================================================================
127
+ // DEFAULT EXPORT
128
+ // ============================================================================
129
+
130
+ // Default export is the legacy DashAppLoader for backward compatibility
131
+ export { default } from './DashAppLoader';
@@ -0,0 +1,68 @@
1
+ import ResourceTemplate from 'dash-admin/src/templates/ResourceTemplate';
2
+ import { IDashAutoAdminResourceConfig } from 'dash-auto-admin';
3
+ import Dot from "@mui/icons-material/FiberManualRecord";
4
+ import React from "react";
5
+ import {DASHAppConstants} from "dash-constants";
6
+ import todoSchema from '../../schemas/demo/todoSchema';
7
+ import todoFilters from '../../filters/demo/todoFilters';
8
+
9
+ const Icon = Dot as unknown as React.FC;
10
+
11
+ const enableTrash = true;
12
+ const TodoResource: IDashAutoAdminResourceConfig =
13
+ {
14
+ roles:[DASHAppConstants.system.SYSTEM_ROLE],
15
+ component: ResourceTemplate,
16
+ //trash: true,
17
+ model: "example/todo",
18
+ label: "Todo",
19
+ schema: todoSchema,
20
+ icon: <Icon />,
21
+ group: "Example",
22
+ trash: enableTrash,
23
+ menu: [
24
+ {
25
+ title: "List",
26
+ redirect: "/example/todo",
27
+ },
28
+ ...(enableTrash ? [{
29
+ title: "Trash",
30
+ redirect: "/example/todo/trash",
31
+ }] : []),
32
+ ],
33
+
34
+ referenceFilters: todoFilters,
35
+
36
+ mainAction: {
37
+ title: "Crear Todo",
38
+ mode: "create",
39
+ fn:"virtualhash",
40
+ redirect: "inline/create",
41
+ },
42
+
43
+ view: true,
44
+ create: true,
45
+ edit: true,
46
+
47
+ drawer: true,
48
+ drawerOptions: {
49
+ create: true,
50
+ edit: true,
51
+ view: true
52
+ },
53
+
54
+ isFormData: true,
55
+ formGroupMode: "tabs",
56
+
57
+ postFormatter: (params) => {
58
+ return params;
59
+ },
60
+
61
+ mutationMode: "pessimistic",
62
+ saveButtonAlwaysEnabled: true,
63
+ listProps: {storeKey: false},
64
+ resetSelectedIdsOnLoad: true,
65
+
66
+ };
67
+
68
+ export default TodoResource;
@@ -0,0 +1,14 @@
1
+ import { IDashAutoAdminAttribute } from 'dash-auto-admin';
2
+
3
+ const defaultSchema: IDashAutoAdminAttribute[] = [
4
+ {
5
+ attribute: 'id',
6
+ label: 'Id',
7
+ type: String,
8
+ sortable: true,
9
+ inEdit: false,
10
+ inCreate: false,
11
+ },
12
+ ];
13
+
14
+ export default defaultSchema;
@@ -0,0 +1,27 @@
1
+
2
+ import { IDashAutoAdminAttribute } from "dash-auto-admin";
3
+
4
+ const todoSchema: IDashAutoAdminAttribute[] = [
5
+ {
6
+ tab: 'Todo',
7
+ attribute: 'name',
8
+ label: 'Nombre',
9
+ type: String,
10
+ },
11
+ {
12
+ tab: 'Todo',
13
+ attribute: 'description',
14
+ label: 'Description',
15
+ type: 'textarea',
16
+ },
17
+ {
18
+ tab: 'Todo',
19
+ attribute: 'completed',
20
+ label: 'Completed',
21
+ type: Boolean,
22
+ }
23
+
24
+ ];
25
+
26
+
27
+ export default todoSchema;