@dashadmin/dash-auto-admin 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 (176) hide show
  1. package/dist/DashAutoAdminComponentRegistry.js +64 -1
  2. package/dist/DashAutoAdminForm.js +137 -1
  3. package/dist/DashAutoAdminResizableDrawer.js +63 -1
  4. package/dist/DashAutoAdminSaveButton.js +57 -1
  5. package/dist/DashAutoCreate.js +102 -1
  6. package/dist/DashAutoDrawer.js +256 -1
  7. package/dist/DashAutoEdit.js +99 -1
  8. package/dist/DashAutoFiltersGenerator.js +193 -1
  9. package/dist/DashAutoFormGroups.js +118 -1
  10. package/dist/DashAutoFormLayout.js +68 -1
  11. package/dist/DashAutoFormMuiTabs.js +291 -1
  12. package/dist/DashAutoFormTabs.js +132 -1
  13. package/dist/DashAutoGroup.js +27 -1
  14. package/dist/DashAutoLayout.js +31 -1
  15. package/dist/DashAutoList.js +218 -1
  16. package/dist/DashAutoPostFilterForm.js +47 -1
  17. package/dist/DashAutoReferenceTab.js +10 -1
  18. package/dist/DashAutoResource.js +77 -1
  19. package/dist/DashAutoResourceLayout.js +16 -1
  20. package/dist/DashAutoShow.js +195 -1
  21. package/dist/DashAutoTabbedForm.js +244 -1
  22. package/dist/DashAutoTabbedForm.review.js +221 -1
  23. package/dist/DashAutoTabs.js +11 -1
  24. package/dist/DashFilterWrapper.js +62 -1
  25. package/dist/DashRedirect.js +56 -1
  26. package/dist/TabbedLayout.js +38 -1
  27. package/dist/common/DashAutoTitle.js +33 -1
  28. package/dist/common/components/FabButton.js +59 -1
  29. package/dist/common/components/TranslatedLabel.js +60 -1
  30. package/dist/common/settings/Settings.js +196 -1
  31. package/dist/common/settings/SettingsBarIcons.js +61 -1
  32. package/dist/context/DashAutoAdminFormContext.js +15 -1
  33. package/dist/hooks/useAutoAdminLoadingStateMediator.js +36 -1
  34. package/dist/hooks/useAutoAdminTranslate.js +61 -1
  35. package/dist/hooks/useHash.js +24 -1
  36. package/dist/hooks/useLogger.js +20 -1
  37. package/dist/hooks/useRoutePathPattern.js +20 -1
  38. package/dist/hooks/useVirtualHash.js +28 -1
  39. package/dist/index.js +77 -3406
  40. package/dist/list/DashAutoListActions.js +57 -1
  41. package/dist/list/DashAutoListDatagridWrapper.js +68 -1
  42. package/dist/list/DashAutoListDefaultActionsWrapper.js +14 -1
  43. package/dist/list/DashAutoListFilterFormWithButton.js +80 -1
  44. package/dist/list/DashAutoListTopToolbar.js +180 -1
  45. package/dist/mui/AttributeToField.js +576 -1
  46. package/dist/mui/AttributeToInput.js +630 -1
  47. package/dist/mui/AutoAdminResizableDrawer.js +63 -1
  48. package/dist/mui/AutoDataGrid.js +120 -1
  49. package/dist/mui/AutoReferenceFormTab.js +53 -1
  50. package/dist/mui/AutoReferenceTab.js +46 -1
  51. package/dist/mui/AutoTabs.js +19 -1
  52. package/dist/mui/components/ExtendedPagination.js +34 -1
  53. package/dist/mui/components/ListStringField.js +25 -1
  54. package/dist/providers/DashAuthProvider.js +215 -1
  55. package/dist/providers/DashDataProvider.js +310 -1
  56. package/dist/providers/index.js +10 -1
  57. package/dist/react-admin.d.js +0 -0
  58. package/dist/toolbar/buttons/BottomToolbarButtons.js +65 -1
  59. package/dist/toolbar/buttons/DashResourceButton.js +181 -1
  60. package/dist/toolbar/buttons/ListButtons.js +80 -1
  61. package/dist/toolbar/buttons/ToolbarButtons.js +135 -1
  62. package/dist/types/ActionCallback.d.js +0 -0
  63. package/dist/utils/SimpleLogger.js +52 -1
  64. package/dist/utils/enumToChoices.js +5 -1
  65. package/dist/utils/evalActionPermission.js +11 -1
  66. package/dist/utils/groupByTabs.js +21 -1
  67. package/dist/utils/hashedGroupByTabs.js +12 -1
  68. package/dist/utils/invertMap.js +12 -1
  69. package/dist/utils/isClassComponent.js +7 -1
  70. package/dist/utils/isComponent.js +29 -1
  71. package/dist/utils/isEnum.js +5 -1
  72. package/dist/utils/isFC.js +8 -1
  73. package/dist/utils/replaceParams.js +9 -1
  74. package/dist/utils/validate.js +19 -1
  75. package/dist/wrappers/UserAction.js +60 -1
  76. package/dist/wrappers/index.js +4 -1
  77. package/package.json +135 -120
  78. package/src/DashAutoAdminComponentRegistry.tsx +75 -0
  79. package/src/DashAutoAdminForm.tsx +155 -0
  80. package/src/DashAutoAdminResizableDrawer.tsx +69 -0
  81. package/src/DashAutoAdminSaveButton.tsx +116 -0
  82. package/src/DashAutoCreate.tsx +118 -0
  83. package/src/DashAutoDrawer.tsx +288 -0
  84. package/src/DashAutoEdit.tsx +109 -0
  85. package/src/DashAutoFiltersGenerator.tsx +208 -0
  86. package/src/DashAutoFormGroups.tsx +146 -0
  87. package/src/DashAutoFormLayout.tsx.review +113 -0
  88. package/src/DashAutoFormMuiTabs.tsx +368 -0
  89. package/src/DashAutoFormTabs.tsx +177 -0
  90. package/src/DashAutoGroup.tsx +42 -0
  91. package/src/DashAutoLayout.tsx +57 -0
  92. package/src/DashAutoList.tsx +237 -0
  93. package/src/DashAutoPostFilterForm.tsx +35 -0
  94. package/src/DashAutoReferenceTab.tsx +9 -0
  95. package/src/DashAutoResource.tsx +85 -0
  96. package/src/DashAutoResourceLayout.tsx +50 -0
  97. package/src/DashAutoShow.tsx +200 -0
  98. package/src/DashAutoTabbedForm.review.tsx +262 -0
  99. package/src/DashAutoTabbedForm.tsx +324 -0
  100. package/src/DashAutoTabs.tsx +19 -0
  101. package/src/DashFilterWrapper.tsx +43 -0
  102. package/src/DashRedirect.tsx +46 -0
  103. package/src/TabbedLayout.tsx +29 -0
  104. package/src/common/DashAutoTitle.tsx +24 -0
  105. package/src/common/components/FabButton.tsx +40 -0
  106. package/src/common/components/TranslatedLabel.tsx +81 -0
  107. package/src/common/settings/Settings.tsx +236 -0
  108. package/src/common/settings/SettingsBarIcons.tsx +72 -0
  109. package/src/context/DashAutoAdminFormContext.tsx +31 -0
  110. package/src/hooks/useAutoAdminLoadingStateMediator.tsx +42 -0
  111. package/src/hooks/useAutoAdminTranslate.tsx +106 -0
  112. package/src/hooks/useHash.tsx +27 -0
  113. package/src/hooks/useLogger.tsx +23 -0
  114. package/src/hooks/useRoutePathPattern.tsx +24 -0
  115. package/src/hooks/useVirtualHash.tsx +34 -0
  116. package/src/index.ts +85 -0
  117. package/src/interfaces/ICustomResourceSubComponent.ts +11 -0
  118. package/src/interfaces/IDashApplicationLayoutMainAction.ts +37 -0
  119. package/src/interfaces/IDashApplicationLayoutMenuItem.ts +24 -0
  120. package/src/interfaces/IDashAutoAdminAttribute.ts +104 -0
  121. package/src/interfaces/IDashAutoAdminCustomFieldComponent.ts +18 -0
  122. package/src/interfaces/IDashAutoAdminFormOptions.ts +22 -0
  123. package/src/interfaces/IDashAutoAdminListActions.ts +13 -0
  124. package/src/interfaces/IDashAutoAdminReference.ts +16 -0
  125. package/src/interfaces/IDashAutoAdminResourceConfig.ts +360 -0
  126. package/src/interfaces/IDashAutoForm.ts +24 -0
  127. package/src/interfaces/IDashAutoGridButton.ts +35 -0
  128. package/src/interfaces/IDashAutoShow.ts +12 -0
  129. package/src/interfaces/IGroupExtraData.ts +8 -0
  130. package/src/interfaces/IRecord.ts +7 -0
  131. package/src/interfaces/IReferenceFilter.ts +55 -0
  132. package/src/interfaces/IResourceComponent.ts +8 -0
  133. package/src/interfaces/IToolbarButton.ts +11 -0
  134. package/src/list/DashAutoListActions.tsx +88 -0
  135. package/src/list/DashAutoListDatagridWrapper.tsx +74 -0
  136. package/src/list/DashAutoListDefaultActionsWrapper.tsx +31 -0
  137. package/src/list/DashAutoListFilterFormWithButton.tsx +93 -0
  138. package/src/list/DashAutoListTopToolbar.tsx +240 -0
  139. package/src/mui/AttributeToField.tsx +657 -0
  140. package/src/mui/AttributeToInput.tsx +728 -0
  141. package/src/mui/AutoAdminResizableDrawer.tsx +69 -0
  142. package/src/mui/AutoDataGrid.tsx +127 -0
  143. package/src/mui/AutoReferenceFormTab.tsx +51 -0
  144. package/src/mui/AutoReferenceTab.tsx +45 -0
  145. package/src/mui/AutoTabs.tsx +32 -0
  146. package/src/mui/components/ExtendedPagination.tsx +23 -0
  147. package/src/mui/components/ListStringField.tsx +32 -0
  148. package/src/providers/DashAuthProvider.ts +341 -0
  149. package/src/providers/DashDataProvider.ts +466 -0
  150. package/src/providers/index.ts +17 -0
  151. package/src/toolbar/buttons/BottomToolbarButtons.tsx +59 -0
  152. package/src/toolbar/buttons/DashResourceButton.tsx +223 -0
  153. package/src/toolbar/buttons/ListButtons.tsx +137 -0
  154. package/src/toolbar/buttons/ToolbarButtons.tsx +186 -0
  155. package/src/utils/SimpleLogger.tsx +46 -0
  156. package/src/utils/enumToChoices.tsx +3 -0
  157. package/src/utils/evalActionPermission.tsx +14 -0
  158. package/src/utils/groupByTabs.tsx +23 -0
  159. package/src/utils/hashedGroupByTabs.tsx +16 -0
  160. package/src/utils/invertMap.tsx +10 -0
  161. package/src/utils/isClassComponent.tsx +9 -0
  162. package/src/utils/isComponent.tsx +45 -0
  163. package/src/utils/isEnum.tsx +3 -0
  164. package/src/utils/isFC.tsx +6 -0
  165. package/src/utils/replaceParams.tsx +6 -0
  166. package/src/utils/validate.tsx +24 -0
  167. package/src/wrappers/UserAction.tsx +67 -0
  168. package/src/wrappers/index.tsx +1 -0
  169. /package/{dist → src}/DashAutoAdminSaveButton.tsx.bkup +0 -0
  170. /package/{dist/DashAutoFormLayout.tsx.review → src/DashAutoFormLayout.tsx} +0 -0
  171. /package/{dist → src}/DashAutoFormTabs.review +0 -0
  172. /package/{dist → src}/DashAutoFormTabs.tsx.formcontext.wip +0 -0
  173. /package/{dist → src}/mui/AttributeToField.tsx.review +0 -0
  174. /package/{dist → src}/mui/AttributeToInput.tsx.review +0 -0
  175. /package/{dist → src}/react-admin.d.ts +0 -0
  176. /package/{dist → src}/types/ActionCallback.d.ts +0 -0
@@ -1 +1,68 @@
1
- import{Fragment as A,jsx as b}from"react/jsx-runtime";import{DashAutoFormTabs as i}from".";import{default as s}from"./mui/AttributeToInput";import p from"./utils/hashedGroupByTabs";const c=({schema:n,resourceConfig:t,options:o})=>{const a=p(n||[]),m=r=>(a[r]?a[r]:[]).filter(e=>e?.inEdit!==!1).map((e,u)=>s("edit",t,e,u,o)),d=r=>(a[r]?a[r]:[]).filter(e=>e?.inCreate!==!1).map((e,u)=>s("create",t,e,u,o));switch(o.mode){case"create":return!t?.createLayout||typeof t.createLayout!="function"?(console.warn("\u26A0\uFE0F createLayout must be present and be a function in the resource definition when using formGroupMode layout, fallback to tabs"),i({schema:n,resourceConfig:t,options:o})):t.createLayout(d);case"edit":return!t?.editLayout||typeof t.editLayout!="function"?(console.warn("\u26A0\uFE0F createLayout must be present and be a function in the resource definition when using formGroupMode layout, fallback to tabs"),i({schema:n,resourceConfig:t,options:o})):t.editLayout(m);default:return b(A,{children:"mode not allowed"})}};var E=c;export{E as default};
1
+ import { Fragment, jsx } from "react/jsx-runtime";
2
+ import { DashAutoFormTabs } from ".";
3
+ import { default as AttributeToInput } from "./mui/AttributeToInput";
4
+ import hashedGroupByTabs from "./utils/hashedGroupByTabs";
5
+ const DashAutoFormLayout = ({
6
+ schema,
7
+ resourceConfig,
8
+ options
9
+ }) => {
10
+ const groupedTabs = hashedGroupByTabs(schema || []);
11
+ const renderEdit = (tab) => {
12
+ const groupedAttributesByTab = groupedTabs[tab] ? groupedTabs[tab] : [];
13
+ return groupedAttributesByTab.filter((attribute) => (attribute == null ? void 0 : attribute.inEdit) !== false).map(
14
+ (attribute, idx) => AttributeToInput("edit", resourceConfig, attribute, idx, options)
15
+ );
16
+ };
17
+ const renderCreate = (tab) => {
18
+ const groupedAttributesByTab = groupedTabs[tab] ? groupedTabs[tab] : [];
19
+ return groupedAttributesByTab.filter((attribute) => (attribute == null ? void 0 : attribute.inCreate) !== false).map(
20
+ (attribute, idx) => AttributeToInput("create", resourceConfig, attribute, idx, options)
21
+ );
22
+ };
23
+ switch (options.mode) {
24
+ case "create":
25
+ if (!(resourceConfig == null ? void 0 : resourceConfig.createLayout) || typeof resourceConfig.createLayout !== "function") {
26
+ console.warn(
27
+ "\u26A0\uFE0F createLayout must be present and be a function in the resource definition when using formGroupMode layout, fallback to tabs"
28
+ );
29
+ return DashAutoFormTabs({
30
+ schema,
31
+ resourceConfig,
32
+ options
33
+ });
34
+ }
35
+ return resourceConfig.createLayout(renderCreate);
36
+ case "edit":
37
+ if (!(resourceConfig == null ? void 0 : resourceConfig.editLayout) || typeof resourceConfig.editLayout !== "function") {
38
+ console.warn(
39
+ "\u26A0\uFE0F createLayout must be present and be a function in the resource definition when using formGroupMode layout, fallback to tabs"
40
+ );
41
+ return DashAutoFormTabs({
42
+ schema,
43
+ resourceConfig,
44
+ options
45
+ });
46
+ }
47
+ return resourceConfig.editLayout(renderEdit);
48
+ /*case "view":
49
+ case "list":
50
+ if (!resource.showLayout || typeof resource.showLayout !== "function") {
51
+ console.error("showLayout must be present and be a function in the resource definition when using formGroupMode layout, fallback to tabs");
52
+ return AutoFormTabs({
53
+ schema: schema,
54
+ resource: resource,
55
+ options: { mode: options.mode },
56
+ })
57
+ }
58
+
59
+ return resource.createLayout(renderShow)
60
+ */
61
+ default:
62
+ return /* @__PURE__ */ jsx(Fragment, { children: "mode not allowed" });
63
+ }
64
+ };
65
+ var DashAutoFormLayout_default = DashAutoFormLayout;
66
+ export {
67
+ DashAutoFormLayout_default as default
68
+ };
@@ -1 +1,291 @@
1
- import{jsx as o,jsxs as w}from"react/jsx-runtime";import{FormTab as g}from"react-admin";import{Tab as y,Tabs as A,Box as h}from"@mui/material";import p from"./utils/groupByTabs";import f from"./mui/AttributeToInput";import{useDispatch as T}from"react-redux";import{useEffect as D,useState as F}from"react";const x=({schema:i,resourceConfig:d,options:s,isDrawer:b})=>{const m=T(),[n,v]=F(0),c=a=>{const{name:r,value:t,type:e}=a.target;let l;switch(e){case"checkbox":l=a.target.checked;break;case"select":l=t;break;case"text":case"number":case"email":l=t;break;default:l=t;break}console.log("DashAutoFormMuiTabs: dispatch method deprecated")},k=(a,r)=>{v(r)};D(()=>()=>{console.log("DashAutoFormMuiTabs: dispatch method deprecated")},[m]);const u=p(i);return s?.meta?.tabs==="mui"?w(h,{sx:{width:"100%"},children:[o(h,{sx:{borderBottom:1,borderColor:"divider"},children:o(A,{value:n,onChange:k,children:u.map((a,r)=>o(y,{label:a[0].tab||s?.label||""},`tab-${a[0].tab||r}`))})}),u.map((a,r)=>{let t=a.filter(e=>e?.inCreate!==!1);return b&&(t=t.filter(e=>e?.inDrawer!==!1)),o("div",{role:"tabpanel",hidden:n!==r,style:{padding:"20px 0"},children:t.map((e,l)=>o("div",{children:f("create",d,e,l,{...s,handleChange:c})},`input-${l}`))},`panel-${r}`)})]}):p(i).map((a,r)=>{let t=a.filter(e=>e?.inCreate!==!1);return b&&(t=t.filter(e=>e?.inDrawer!==!1)),t.length&&o(g,{value:r,label:a[0].tab||s?.label||"",children:t.map((e,l)=>o("div",{children:f("create",d,e,l,{...s,handleChange:c})},`input-${l}`))},`tab-${a[0].tab||r}`)})},C=({schema:i,resourceConfig:d,options:s,isDrawer:b})=>{const m=T(),[n,v]=F(0),c=a=>{const{name:r,value:t,type:e}=a.target;let l;switch(e){case"checkbox":l=a.target.checked;break;case"select":l=t;break;case"text":case"number":case"email":l=t;break;default:l=t;break}console.log("DashAutoFormMuiTabs: dispatch method deprecated")},k=(a,r)=>{v(r)};D(()=>()=>{console.log("DashAutoFormMuiTabs: dispatch method deprecated")},[m]);const u=p(i);return s?.meta?.tabs==="mui"?w(h,{sx:{width:"100%"},children:[o(h,{sx:{borderBottom:1,borderColor:"divider"},children:o(A,{value:n,onChange:k,children:u.map((a,r)=>o(y,{label:a[0].tab||s?.label||""},`tab-${a[0].tab||r}`))})}),u.map((a,r)=>{let t=a.filter(e=>e?.inEdit!==!1);return b&&(t=t.filter(e=>e?.inDrawer!==!1)),o("div",{role:"tabpanel",hidden:n!==r,style:{padding:"20px 0"},children:t.map((e,l)=>o("div",{children:f("edit",d,e,l,{...s,handleChange:c})},`input-${l}`))},`panel-${r}`)})]}):p(i).map((a,r)=>{let t=a.filter(e=>e?.inEdit!==!1);return b&&(t=t.filter(e=>e?.inDrawer!==!1)),t.length&&o(g,{value:r,label:a[0].tab||s?.label||"",children:t.map((e,l)=>o("div",{children:f("edit",d,e,l,{...s,handleChange:c})},`input-${l}`))},`tab-${a[0].tab||r}`)})},$=({schema:i,resourceConfig:d,options:s,isDrawer:b})=>{const m=T(),[n,v]=F(0),c=a=>{const{name:r,value:t,type:e}=a.target;let l;switch(e){case"checkbox":l=a.target.checked;break;case"select":l=t;break;case"text":case"number":case"email":l=t;break;default:l=t;break}console.log("DashAutoFormMuiTabs: dispatch method deprecated")},k=(a,r)=>{v(r)};D(()=>()=>{console.log("DashAutoFormMuiTabs: dispatch method deprecated")},[m]);const u=p(i);return s?.meta?.tabs==="mui"?w(h,{sx:{width:"100%"},children:[o(h,{sx:{borderBottom:1,borderColor:"divider"},children:o(A,{value:n,onChange:k,children:u.map((a,r)=>o(y,{label:a[0].tab||s?.label||""},`tab-${a[0].tab||r}`))})}),u.map((a,r)=>{let t=a.filter(e=>e?.inShow!==!1);return b&&(t=t.filter(e=>e?.inDrawer!==!1)),o("div",{role:"tabpanel",hidden:n!==r,style:{padding:"20px 0"},children:t.map((e,l)=>o("div",{children:f("view",d,e,l,{...s,handleChange:c})},`input-${l}`))},`panel-${r}`)})]}):p(i).map((a,r)=>{let t=a.filter(e=>e?.inShow!==!1);return b&&(t=t.filter(e=>e?.inDrawer!==!1)),t.length&&o(g,{value:r,label:a[0].tab||s?.label||"",children:t.map((e,l)=>o("div",{children:f("view",d,e,l,{...s,handleChange:c})},`input-${l}`))},`tab-${a[0].tab||r}`)})},B=({schema:i,resourceConfig:d,options:s})=>{const b=s.isDrawer===!0,m=s?.meta||{},n={schema:i,resourceConfig:d,options:s,isDrawer:b};switch(s.mode){case"create":return o(x,{...n});case"edit":return o(C,{...n});case"view":return o($,{...n});default:return null}};var Q=B;export{Q as default};
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { jsx, jsxs } from "react/jsx-runtime";
21
+ import { FormTab } from "react-admin";
22
+ import { Tab, Tabs, Box } from "@mui/material";
23
+ import groupByTabs from "./utils/groupByTabs";
24
+ import AttributeToInput from "./mui/AttributeToInput";
25
+ import { useDispatch } from "react-redux";
26
+ import { useEffect, useState } from "react";
27
+ const CreateFormTabs = ({ schema, resourceConfig, options, isDrawer }) => {
28
+ var _a;
29
+ const dispatch = useDispatch();
30
+ const [value, setValue] = useState(0);
31
+ const handleChange = (event) => {
32
+ const { name, value: value2, type } = event.target;
33
+ let payloadValue;
34
+ switch (type) {
35
+ case "checkbox":
36
+ payloadValue = event.target.checked;
37
+ break;
38
+ case "select":
39
+ payloadValue = value2;
40
+ break;
41
+ case "text":
42
+ case "number":
43
+ case "email":
44
+ payloadValue = value2;
45
+ break;
46
+ default:
47
+ payloadValue = value2;
48
+ break;
49
+ }
50
+ console.log("DashAutoFormMuiTabs: dispatch method deprecated");
51
+ };
52
+ const handleTabChange = (event, newValue) => {
53
+ setValue(newValue);
54
+ };
55
+ useEffect(() => {
56
+ return () => {
57
+ console.log("DashAutoFormMuiTabs: dispatch method deprecated");
58
+ };
59
+ }, [dispatch]);
60
+ const tabGroups = groupByTabs(schema);
61
+ if (((_a = options == null ? void 0 : options.meta) == null ? void 0 : _a.tabs) === "mui") {
62
+ return /* @__PURE__ */ jsxs(Box, { sx: { width: "100%" }, children: [
63
+ /* @__PURE__ */ jsx(Box, { sx: { borderBottom: 1, borderColor: "divider" }, children: /* @__PURE__ */ jsx(Tabs, { value, onChange: handleTabChange, children: tabGroups.map((group, idx) => /* @__PURE__ */ jsx(Tab, { label: group[0].tab || (options == null ? void 0 : options.label) || "" }, `tab-${group[0].tab || idx}`)) }) }),
64
+ tabGroups.map((groupOfAttributes, idx) => {
65
+ let grouppedAttributes = groupOfAttributes.filter(
66
+ (attribute) => (attribute == null ? void 0 : attribute.inCreate) !== false
67
+ );
68
+ if (isDrawer) {
69
+ grouppedAttributes = grouppedAttributes.filter(
70
+ (attribute) => (attribute == null ? void 0 : attribute.inDrawer) !== false
71
+ );
72
+ }
73
+ return /* @__PURE__ */ jsx(
74
+ "div",
75
+ {
76
+ role: "tabpanel",
77
+ hidden: value !== idx,
78
+ style: { padding: "20px 0" },
79
+ children: grouppedAttributes.map((attribute, i) => /* @__PURE__ */ jsx("div", { children: AttributeToInput("create", resourceConfig, attribute, i, __spreadProps(__spreadValues({}, options), { handleChange })) }, `input-${i}`))
80
+ },
81
+ `panel-${idx}`
82
+ );
83
+ })
84
+ ] });
85
+ }
86
+ return groupByTabs(schema).map((groupOfAttributes, idx) => {
87
+ let grouppedAttributes = groupOfAttributes.filter(
88
+ (attribute) => (attribute == null ? void 0 : attribute.inCreate) !== false
89
+ );
90
+ if (isDrawer) {
91
+ grouppedAttributes = grouppedAttributes.filter(
92
+ (attribute) => (attribute == null ? void 0 : attribute.inDrawer) !== false
93
+ );
94
+ }
95
+ return grouppedAttributes.length && /* @__PURE__ */ jsx(
96
+ FormTab,
97
+ {
98
+ value: idx,
99
+ label: groupOfAttributes[0].tab || (options == null ? void 0 : options.label) || "",
100
+ children: grouppedAttributes.map((attribute, i) => /* @__PURE__ */ jsx("div", { children: AttributeToInput("create", resourceConfig, attribute, i, __spreadProps(__spreadValues({}, options), { handleChange })) }, `input-${i}`))
101
+ },
102
+ `tab-${groupOfAttributes[0].tab || idx}`
103
+ );
104
+ });
105
+ };
106
+ const EditFormTabs = ({ schema, resourceConfig, options, isDrawer }) => {
107
+ var _a;
108
+ const dispatch = useDispatch();
109
+ const [value, setValue] = useState(0);
110
+ const handleChange = (event) => {
111
+ const { name, value: value2, type } = event.target;
112
+ let payloadValue;
113
+ switch (type) {
114
+ case "checkbox":
115
+ payloadValue = event.target.checked;
116
+ break;
117
+ case "select":
118
+ payloadValue = value2;
119
+ break;
120
+ case "text":
121
+ case "number":
122
+ case "email":
123
+ payloadValue = value2;
124
+ break;
125
+ default:
126
+ payloadValue = value2;
127
+ break;
128
+ }
129
+ console.log("DashAutoFormMuiTabs: dispatch method deprecated");
130
+ };
131
+ const handleTabChange = (event, newValue) => {
132
+ setValue(newValue);
133
+ };
134
+ useEffect(() => {
135
+ return () => {
136
+ console.log("DashAutoFormMuiTabs: dispatch method deprecated");
137
+ };
138
+ }, [dispatch]);
139
+ const tabGroups = groupByTabs(schema);
140
+ if (((_a = options == null ? void 0 : options.meta) == null ? void 0 : _a.tabs) === "mui") {
141
+ return /* @__PURE__ */ jsxs(Box, { sx: { width: "100%" }, children: [
142
+ /* @__PURE__ */ jsx(Box, { sx: { borderBottom: 1, borderColor: "divider" }, children: /* @__PURE__ */ jsx(Tabs, { value, onChange: handleTabChange, children: tabGroups.map((group, idx) => /* @__PURE__ */ jsx(Tab, { label: group[0].tab || (options == null ? void 0 : options.label) || "" }, `tab-${group[0].tab || idx}`)) }) }),
143
+ tabGroups.map((groupOfAttributes, idx) => {
144
+ let grouppedAttributes = groupOfAttributes.filter(
145
+ (attribute) => (attribute == null ? void 0 : attribute.inEdit) !== false
146
+ );
147
+ if (isDrawer) {
148
+ grouppedAttributes = grouppedAttributes.filter(
149
+ (attribute) => (attribute == null ? void 0 : attribute.inDrawer) !== false
150
+ );
151
+ }
152
+ return /* @__PURE__ */ jsx(
153
+ "div",
154
+ {
155
+ role: "tabpanel",
156
+ hidden: value !== idx,
157
+ style: { padding: "20px 0" },
158
+ children: grouppedAttributes.map((attribute, i) => /* @__PURE__ */ jsx("div", { children: AttributeToInput("edit", resourceConfig, attribute, i, __spreadProps(__spreadValues({}, options), { handleChange })) }, `input-${i}`))
159
+ },
160
+ `panel-${idx}`
161
+ );
162
+ })
163
+ ] });
164
+ }
165
+ return groupByTabs(schema).map((groupOfAttributes, idx) => {
166
+ let grouppedAttributes = groupOfAttributes.filter(
167
+ (attribute) => (attribute == null ? void 0 : attribute.inEdit) !== false
168
+ );
169
+ if (isDrawer) {
170
+ grouppedAttributes = grouppedAttributes.filter(
171
+ (attribute) => (attribute == null ? void 0 : attribute.inDrawer) !== false
172
+ );
173
+ }
174
+ return grouppedAttributes.length && /* @__PURE__ */ jsx(
175
+ FormTab,
176
+ {
177
+ value: idx,
178
+ label: groupOfAttributes[0].tab || (options == null ? void 0 : options.label) || "",
179
+ children: grouppedAttributes.map((attribute, i) => /* @__PURE__ */ jsx("div", { children: AttributeToInput("edit", resourceConfig, attribute, i, __spreadProps(__spreadValues({}, options), { handleChange })) }, `input-${i}`))
180
+ },
181
+ `tab-${groupOfAttributes[0].tab || idx}`
182
+ );
183
+ });
184
+ };
185
+ const ViewFormTabs = ({ schema, resourceConfig, options, isDrawer }) => {
186
+ var _a;
187
+ const dispatch = useDispatch();
188
+ const [value, setValue] = useState(0);
189
+ const handleChange = (event) => {
190
+ const { name, value: value2, type } = event.target;
191
+ let payloadValue;
192
+ switch (type) {
193
+ case "checkbox":
194
+ payloadValue = event.target.checked;
195
+ break;
196
+ case "select":
197
+ payloadValue = value2;
198
+ break;
199
+ case "text":
200
+ case "number":
201
+ case "email":
202
+ payloadValue = value2;
203
+ break;
204
+ default:
205
+ payloadValue = value2;
206
+ break;
207
+ }
208
+ console.log("DashAutoFormMuiTabs: dispatch method deprecated");
209
+ };
210
+ const handleTabChange = (event, newValue) => {
211
+ setValue(newValue);
212
+ };
213
+ useEffect(() => {
214
+ return () => {
215
+ console.log("DashAutoFormMuiTabs: dispatch method deprecated");
216
+ };
217
+ }, [dispatch]);
218
+ const tabGroups = groupByTabs(schema);
219
+ if (((_a = options == null ? void 0 : options.meta) == null ? void 0 : _a.tabs) === "mui") {
220
+ return /* @__PURE__ */ jsxs(Box, { sx: { width: "100%" }, children: [
221
+ /* @__PURE__ */ jsx(Box, { sx: { borderBottom: 1, borderColor: "divider" }, children: /* @__PURE__ */ jsx(Tabs, { value, onChange: handleTabChange, children: tabGroups.map((group, idx) => /* @__PURE__ */ jsx(Tab, { label: group[0].tab || (options == null ? void 0 : options.label) || "" }, `tab-${group[0].tab || idx}`)) }) }),
222
+ tabGroups.map((groupOfAttributes, idx) => {
223
+ let grouppedAttributes = groupOfAttributes.filter(
224
+ (attribute) => (attribute == null ? void 0 : attribute.inShow) !== false
225
+ );
226
+ if (isDrawer) {
227
+ grouppedAttributes = grouppedAttributes.filter(
228
+ (attribute) => (attribute == null ? void 0 : attribute.inDrawer) !== false
229
+ );
230
+ }
231
+ return /* @__PURE__ */ jsx(
232
+ "div",
233
+ {
234
+ role: "tabpanel",
235
+ hidden: value !== idx,
236
+ style: { padding: "20px 0" },
237
+ children: grouppedAttributes.map((attribute, i) => /* @__PURE__ */ jsx("div", { children: AttributeToInput("view", resourceConfig, attribute, i, __spreadProps(__spreadValues({}, options), { handleChange })) }, `input-${i}`))
238
+ },
239
+ `panel-${idx}`
240
+ );
241
+ })
242
+ ] });
243
+ }
244
+ return groupByTabs(schema).map((groupOfAttributes, idx) => {
245
+ let grouppedAttributes = groupOfAttributes.filter(
246
+ (attribute) => (attribute == null ? void 0 : attribute.inShow) !== false
247
+ );
248
+ if (isDrawer) {
249
+ grouppedAttributes = grouppedAttributes.filter(
250
+ (attribute) => (attribute == null ? void 0 : attribute.inDrawer) !== false
251
+ );
252
+ }
253
+ return grouppedAttributes.length && /* @__PURE__ */ jsx(
254
+ FormTab,
255
+ {
256
+ value: idx,
257
+ label: groupOfAttributes[0].tab || (options == null ? void 0 : options.label) || "",
258
+ children: grouppedAttributes.map((attribute, i) => /* @__PURE__ */ jsx("div", { children: AttributeToInput("view", resourceConfig, attribute, i, __spreadProps(__spreadValues({}, options), { handleChange })) }, `input-${i}`))
259
+ },
260
+ `tab-${groupOfAttributes[0].tab || idx}`
261
+ );
262
+ });
263
+ };
264
+ const DashAutoFormMuiTabs = ({
265
+ schema,
266
+ resourceConfig,
267
+ options
268
+ }) => {
269
+ const isDrawer = options.isDrawer === true ? true : false;
270
+ const meta = (options == null ? void 0 : options.meta) || {};
271
+ const commonProps = {
272
+ schema,
273
+ resourceConfig,
274
+ options,
275
+ isDrawer
276
+ };
277
+ switch (options.mode) {
278
+ case "create":
279
+ return /* @__PURE__ */ jsx(CreateFormTabs, __spreadValues({}, commonProps));
280
+ case "edit":
281
+ return /* @__PURE__ */ jsx(EditFormTabs, __spreadValues({}, commonProps));
282
+ case "view":
283
+ return /* @__PURE__ */ jsx(ViewFormTabs, __spreadValues({}, commonProps));
284
+ default:
285
+ return null;
286
+ }
287
+ };
288
+ var DashAutoFormMuiTabs_default = DashAutoFormMuiTabs;
289
+ export {
290
+ DashAutoFormMuiTabs_default as default
291
+ };
@@ -1 +1,132 @@
1
- import{Fragment as c,jsx as l}from"react/jsx-runtime";import{FormTab as d}from"react-admin";import w from"./utils/groupByTabs";import v from"./mui/AttributeToInput";const m=({schema:b,resourceConfig:s,options:i})=>{const f=i.isDrawer===!0;i={...i,handleChange:t=>{const{name:e,value:r,type:a}=t.target;let o;switch(a){case"checkbox":o=t.target.checked;break;case"select":o=r;break;case"text":case"number":case"email":o=r;break;default:o=r;break}}};const n=(t,e)=>e.map((r,a)=>l("div",{children:v(t,s,r,a,i)},`input-${a}`)),h=(t,e)=>{let r=t.filter(a=>{switch(e){case"create":return a?.inCreate!==!1;case"edit":return a?.inEdit!==!1;case"view":return a?.inShow!==!1;default:return!0}});return f&&(r=r.filter(a=>a?.inDrawer!==!1)),r},A=w(b),u=t=>A.map(e=>({original:e,filtered:h(e,t)})).filter(e=>e.filtered.length>0);switch(i.mode){case"create":{const t=u("create");return t.length===1?l(c,{children:n("create",t[0].filtered)}):t.map((e,r)=>l(d,{value:r,label:e.original[0].tab||i?.label||s?.label,children:n("create",e.filtered)},`tab-${e.original[0].tab||r}`))}case"edit":{const t=u("edit");return t.length===1?l(c,{children:n("edit",t[0].filtered)}):t.map((e,r)=>l(d,{value:r,label:e.original[0].tab||i?.label||s?.label,children:n("edit",e.filtered)},`tab-${e.original[0].tab||r}`))}case"view":{const t=u("view");return t.length===1?l(c,{children:n("view",t[0].filtered)}):t.map((e,r)=>l(d,{value:r,label:e.original[0].tab||i?.label||s?.label,children:n("view",e.filtered)},`tab-${e.original[0].tab||r}`))}}};m.whyDidYouRender=!0;var C=m;export{C as default};
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { Fragment, jsx } from "react/jsx-runtime";
21
+ import { FormTab } from "react-admin";
22
+ import groupByTabs from "./utils/groupByTabs";
23
+ import AttributeToInput from "./mui/AttributeToInput";
24
+ const DashAutoFormTabs = ({
25
+ schema,
26
+ resourceConfig,
27
+ options
28
+ }) => {
29
+ const isDrawer = options.isDrawer === true ? true : false;
30
+ const handleChange = (event) => {
31
+ const { name, value, type } = event.target;
32
+ let payloadValue;
33
+ switch (type) {
34
+ case "checkbox":
35
+ payloadValue = event.target.checked;
36
+ break;
37
+ case "select":
38
+ payloadValue = value;
39
+ break;
40
+ case "text":
41
+ case "number":
42
+ case "email":
43
+ payloadValue = value;
44
+ break;
45
+ // Add cases for other input types as needed
46
+ default:
47
+ payloadValue = value;
48
+ break;
49
+ }
50
+ };
51
+ options = __spreadProps(__spreadValues({}, options), { handleChange });
52
+ const renderInputs = (mode, grouppedAttributes) => {
53
+ return grouppedAttributes.map((attribute, i) => /* @__PURE__ */ jsx("div", { children: AttributeToInput(mode, resourceConfig, attribute, i, options) }, `input-${i}`));
54
+ };
55
+ const filterAttributes = (groupOfAttributes, mode) => {
56
+ let filtered = groupOfAttributes.filter((attribute) => {
57
+ switch (mode) {
58
+ case "create":
59
+ return (attribute == null ? void 0 : attribute.inCreate) !== false;
60
+ case "edit":
61
+ return (attribute == null ? void 0 : attribute.inEdit) !== false;
62
+ case "view":
63
+ return (attribute == null ? void 0 : attribute.inShow) !== false;
64
+ default:
65
+ return true;
66
+ }
67
+ });
68
+ if (isDrawer) {
69
+ filtered = filtered.filter((attribute) => (attribute == null ? void 0 : attribute.inDrawer) !== false);
70
+ }
71
+ return filtered;
72
+ };
73
+ const tabGroups = groupByTabs(schema);
74
+ const getFilteredTabGroups = (mode) => {
75
+ return tabGroups.map((group) => ({
76
+ original: group,
77
+ filtered: filterAttributes(group, mode)
78
+ })).filter((g) => g.filtered.length > 0);
79
+ };
80
+ switch (options.mode) {
81
+ case "create": {
82
+ const filteredGroups = getFilteredTabGroups("create");
83
+ if (filteredGroups.length === 1) {
84
+ return /* @__PURE__ */ jsx(Fragment, { children: renderInputs("create", filteredGroups[0].filtered) });
85
+ }
86
+ return filteredGroups.map((group, idx) => /* @__PURE__ */ jsx(
87
+ FormTab,
88
+ {
89
+ value: idx,
90
+ label: group.original[0].tab || (options == null ? void 0 : options.label) || (resourceConfig == null ? void 0 : resourceConfig.label),
91
+ children: renderInputs("create", group.filtered)
92
+ },
93
+ `tab-${group.original[0].tab || idx}`
94
+ ));
95
+ }
96
+ case "edit": {
97
+ const filteredGroups = getFilteredTabGroups("edit");
98
+ if (filteredGroups.length === 1) {
99
+ return /* @__PURE__ */ jsx(Fragment, { children: renderInputs("edit", filteredGroups[0].filtered) });
100
+ }
101
+ return filteredGroups.map((group, idx) => /* @__PURE__ */ jsx(
102
+ FormTab,
103
+ {
104
+ value: idx,
105
+ label: group.original[0].tab || (options == null ? void 0 : options.label) || (resourceConfig == null ? void 0 : resourceConfig.label),
106
+ children: renderInputs("edit", group.filtered)
107
+ },
108
+ `tab-${group.original[0].tab || idx}`
109
+ ));
110
+ }
111
+ case "view": {
112
+ const filteredGroups = getFilteredTabGroups("view");
113
+ if (filteredGroups.length === 1) {
114
+ return /* @__PURE__ */ jsx(Fragment, { children: renderInputs("view", filteredGroups[0].filtered) });
115
+ }
116
+ return filteredGroups.map((group, idx) => /* @__PURE__ */ jsx(
117
+ FormTab,
118
+ {
119
+ value: idx,
120
+ label: group.original[0].tab || (options == null ? void 0 : options.label) || (resourceConfig == null ? void 0 : resourceConfig.label),
121
+ children: renderInputs("view", group.filtered)
122
+ },
123
+ `tab-${group.original[0].tab || idx}`
124
+ ));
125
+ }
126
+ }
127
+ };
128
+ DashAutoFormTabs.whyDidYouRender = true;
129
+ var DashAutoFormTabs_default = DashAutoFormTabs;
130
+ export {
131
+ DashAutoFormTabs_default as default
132
+ };
@@ -1 +1,27 @@
1
- import{Fragment as h,jsx as e,jsxs as d}from"react/jsx-runtime";import{SimpleShowLayout as l}from"react-admin";import{AttributeToField as s}from"./mui/AttributeToField";import f from"./utils/groupByTabs";import{AutoAdminSettings as p}from".";const u=(i,m)=>e(l,{children:f(i.schema).map((t,n)=>{const r=t[0].tab||p.defaultTabName;return t.filter(o=>o?.inShow!==!1).length?d("fieldset",{children:[e("legend",{children:r}),t.filter(o=>o?.inShow!==!1).map((o,a)=>s("view",i,o,a,m))]},"fieldset-group-"+n):e(h,{})})});var F=u;export{F as default};
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { SimpleShowLayout } from "react-admin";
3
+ import { AttributeToField } from "./mui/AttributeToField";
4
+ import groupByTabs from "./utils/groupByTabs";
5
+ import { AutoAdminSettings } from ".";
6
+ const DashAutoGroup = (resourceConfig, options) => {
7
+ return /* @__PURE__ */ jsx(SimpleShowLayout, { children: groupByTabs(resourceConfig.schema).map((groupOfAttributes, idx) => {
8
+ const label = groupOfAttributes[0].tab || AutoAdminSettings.defaultTabName;
9
+ const count = groupOfAttributes.filter((attribute) => (attribute == null ? void 0 : attribute.inShow) !== false).length;
10
+ return count ? /* @__PURE__ */ jsxs("fieldset", { children: [
11
+ /* @__PURE__ */ jsx("legend", { children: label }),
12
+ groupOfAttributes.filter((attribute) => (attribute == null ? void 0 : attribute.inShow) !== false).map(
13
+ (attribute, i) => AttributeToField(
14
+ "view",
15
+ resourceConfig,
16
+ attribute,
17
+ i,
18
+ options
19
+ )
20
+ )
21
+ ] }, "fieldset-group-" + idx) : /* @__PURE__ */ jsx(Fragment, {});
22
+ }) });
23
+ };
24
+ var DashAutoGroup_default = DashAutoGroup;
25
+ export {
26
+ DashAutoGroup_default as default
27
+ };
@@ -1 +1,31 @@
1
- import{jsx as A}from"react/jsx-runtime";import{SimpleShowLayout as s}from"react-admin";import m from"./DashAutoTabs";import{AttributeToField as p}from"./mui/AttributeToField";import h from"./utils/hashedGroupByTabs";const d=(o,f)=>{const i=(e,n,u)=>{const r=h(o.schema);return(r[e]?r[e]:[]).filter(t=>t?.inShow!==!1).map((t,a)=>p(u||"view",o,t,a,n))};return!o.showLayout||typeof o.showLayout!="function"?(console.error("showLayout must be present and be a function in the resource definition when using formGroupMode layout, fallback to tabs"),m(o)):A(s,{children:o.showLayout(i)})};var R=d;export{R as default};
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { SimpleShowLayout } from "react-admin";
3
+ import AutoTabs from "./DashAutoTabs";
4
+ import { AttributeToField } from "./mui/AttributeToField";
5
+ import hashedGroupByTabs from "./utils/hashedGroupByTabs";
6
+ const DashAutoLayout = (resourceConfig, options) => {
7
+ const renderShow = (tab, options2, forceAttributeToFieldMethod) => {
8
+ const groupedTabs = hashedGroupByTabs(resourceConfig.schema);
9
+ const groupedAttributesByTab = groupedTabs[tab] ? groupedTabs[tab] : [];
10
+ return groupedAttributesByTab.filter((attribute) => (attribute == null ? void 0 : attribute.inShow) !== false).map(
11
+ (attribute, idx) => AttributeToField(
12
+ forceAttributeToFieldMethod || "view",
13
+ resourceConfig,
14
+ attribute,
15
+ idx,
16
+ options2
17
+ )
18
+ );
19
+ };
20
+ if (!resourceConfig.showLayout || typeof resourceConfig.showLayout !== "function") {
21
+ console.error(
22
+ "showLayout must be present and be a function in the resource definition when using formGroupMode layout, fallback to tabs"
23
+ );
24
+ return AutoTabs(resourceConfig);
25
+ }
26
+ return /* @__PURE__ */ jsx(SimpleShowLayout, { children: resourceConfig.showLayout(renderShow) });
27
+ };
28
+ var DashAutoLayout_default = DashAutoLayout;
29
+ export {
30
+ DashAutoLayout_default as default
31
+ };