@solidxai/core-ui 0.1.9-beta.16 → 0.1.9-beta.18

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 (126) hide show
  1. package/dist/components/auth/SolidLogin.js +2 -2
  2. package/dist/components/auth/SolidLogin.js.map +1 -1
  3. package/dist/components/auth/SolidLogin.tsx +2 -2
  4. package/dist/components/auth/SolidRegister.js +1 -1
  5. package/dist/components/auth/SolidRegister.js.map +1 -1
  6. package/dist/components/auth/SolidRegister.tsx +1 -1
  7. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  8. package/dist/components/common/SettingsComponent.js +3 -0
  9. package/dist/components/common/SettingsComponent.js.map +1 -1
  10. package/dist/components/common/SettingsComponent.tsx +3 -0
  11. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  12. package/dist/components/common/SocialMediaLogin.js +1 -1
  13. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  14. package/dist/components/common/SocialMediaLogin.tsx +4 -0
  15. package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
  16. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
  17. package/dist/components/common/SolidFaviconProvider.js +102 -0
  18. package/dist/components/common/SolidFaviconProvider.js.map +1 -0
  19. package/dist/components/common/SolidFaviconProvider.tsx +55 -0
  20. package/dist/components/core/card/SolidCardView.js +1 -1
  21. package/dist/components/core/card/SolidCardView.js.map +1 -1
  22. package/dist/components/core/card/SolidCardView.tsx +1 -1
  23. package/dist/components/core/chatter/SolidChatterMessageBox.js +1 -1
  24. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  25. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +1 -1
  26. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  27. package/dist/components/core/chatter/SolidMessageComposer.js +2 -1
  28. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  29. package/dist/components/core/chatter/SolidMessageComposer.tsx +2 -0
  30. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  31. package/dist/components/core/common/FilterComponent.js +4 -2
  32. package/dist/components/core/common/FilterComponent.js.map +1 -1
  33. package/dist/components/core/common/FilterComponent.tsx +5 -2
  34. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +1 -1
  35. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  36. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +2 -0
  37. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  38. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -0
  39. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  40. package/dist/components/core/common/SolidGlobalSearchElement.js +77 -42
  41. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  42. package/dist/components/core/common/SolidGlobalSearchElement.tsx +43 -5
  43. package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
  44. package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
  45. package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
  46. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
  47. package/dist/components/core/form/SolidFormView.js +1 -1
  48. package/dist/components/core/form/SolidFormView.js.map +1 -1
  49. package/dist/components/core/form/SolidFormView.tsx +1 -1
  50. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  51. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +12 -3
  52. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  53. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +21 -16
  54. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  55. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +15 -5
  56. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  57. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +21 -9
  58. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  59. package/dist/components/core/list/SolidListView.js +28 -19
  60. package/dist/components/core/list/SolidListView.js.map +1 -1
  61. package/dist/components/core/list/SolidListView.tsx +25 -15
  62. package/dist/components/core/list/SolidListViewColumn.d.ts +1 -0
  63. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  64. package/dist/components/core/list/SolidListViewColumn.js +27 -0
  65. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  66. package/dist/components/core/list/SolidListViewColumn.tsx +13 -0
  67. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  68. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  69. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  70. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  71. package/dist/components/core/list/SolidListViewHeaderButton.js +6 -3
  72. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  73. package/dist/components/core/list/SolidListViewHeaderButton.tsx +10 -7
  74. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  75. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +16 -7
  76. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  77. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +17 -6
  78. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
  79. package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
  80. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
  81. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
  82. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  83. package/dist/components/core/model/CreateModel.js +11 -24
  84. package/dist/components/core/model/CreateModel.js.map +1 -1
  85. package/dist/components/core/model/CreateModel.tsx +10 -22
  86. package/dist/components/core/model/FieldMetaDataForm.js +1 -1
  87. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  88. package/dist/components/core/model/FieldMetaDataForm.tsx +1 -1
  89. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  90. package/dist/components/core/model/ModelMetaData.js +6 -18
  91. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  92. package/dist/components/core/model/ModelMetaData.tsx +8 -21
  93. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  94. package/dist/components/layout/AdminTopHeader.js +1 -1
  95. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  96. package/dist/components/layout/AdminTopHeader.tsx +2 -1
  97. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  98. package/dist/components/shad-cn-ui/SolidAutocomplete.js +15 -0
  99. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  100. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +13 -0
  101. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  102. package/dist/components/shad-cn-ui/SolidButton.js +10 -2
  103. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  104. package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
  105. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
  106. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  107. package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
  108. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  109. package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
  110. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
  111. package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
  112. package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
  113. package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
  114. package/dist/helpers/buttonPresentation.d.ts +24 -0
  115. package/dist/helpers/buttonPresentation.d.ts.map +1 -0
  116. package/dist/helpers/buttonPresentation.js +28 -0
  117. package/dist/helpers/buttonPresentation.js.map +1 -0
  118. package/dist/helpers/buttonPresentation.ts +53 -0
  119. package/dist/index.d.ts +1 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +1 -0
  122. package/dist/index.js.map +1 -1
  123. package/dist/index.ts +1 -0
  124. package/dist/resources/globals.css +9 -7
  125. package/dist/resources/shadcn-base.css +24 -4
  126. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewHeaderContextMenuButton.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewHeaderContextMenuButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,MAAM,CAAC,IAAM,oCAAoC,GAAG,UAAC,EAAyF;;QAAvF,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA,EAAE,gBAAgB,sBAAA;IAE7H,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,IAAM,OAAO,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC;IAElI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,CACH,MAAC,qBAAqB,IAClB,SAAS,EAAC,4BAA4B,EACtC,QAAQ,EAAE;YACN,IAAM,KAAK,GAAG;gBACV,MAAM,QAAA;gBACN,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;aACpD,CAAC;YACF,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC7C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QACzB,CAAC,aAEA,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI;gBAChB,CAAC,CAAC,CAAC,cAAQ,IAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAAC,CAAC,CAAC,YAAG,SAAS,EAAE,UAAG,MAAM,CAAC,KAAK,CAAC,IAAI,qCAAkC,GAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC7O,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,iCAAiC,GAAG,EACzE,eAAM,SAAS,EAAC,kCAAkC,YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAQ,IAC1D,CAC3B,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SquarePen } from \"lucide-react\";\nimport { SolidDropdownMenuItem } from \"../../shad-cn-ui\";\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\nexport const SolidListViewHeaderContextMenuButton = ({ button, params, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n\n if (!hasRole) return null;\n\n return (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n const event = {\n params,\n solidListViewMetaData: solidListViewMetaData.data,\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n }}\n >\n {button?.attrs?.icon\n ? (() => { const m = parseSolidIconMeta(button.attrs.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-header-action-button-icon\" /> : <i className={`${button.attrs.icon} solid-header-action-button-icon`} />; })()\n : <SquarePen size={14} className=\"solid-header-action-button-icon\" />}\n <span className=\"solid-header-action-button-label\">{button.attrs.label}</span>\n </SolidDropdownMenuItem>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidListViewHeaderContextMenuButton.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewHeaderContextMenuButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { resolveButtonPresentation } from \"../../../helpers/buttonPresentation\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidDropdownMenuItem } from \"../../shad-cn-ui\";\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\nexport const SolidListViewHeaderContextMenuButton = ({ button, params, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n const presentation = resolveButtonPresentation(button?.attrs);\n const iconNode = presentation.showIcon\n ? (() => {\n const m = parseSolidIconMeta(presentation.icon);\n return m\n ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-header-action-button-icon\" />\n : <i className={`${presentation.icon} solid-header-action-button-icon`} />;\n })()\n : null;\n\n if (!hasRole) return null;\n if (!presentation.showIcon && !presentation.showLabel) return null;\n\n return (\n <SolidDropdownMenuItem\n className={`solid-header-dropdown-item ${presentation.buttonClassName ?? \"\"}`}\n onSelect={() => {\n const event = {\n params,\n solidListViewMetaData: solidListViewMetaData.data,\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n }}\n title={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n >\n {presentation.iconPos === \"left\" ? iconNode : null}\n {presentation.showLabel ? <span className=\"solid-header-action-button-label\">{presentation.label}</span> : null}\n {presentation.iconPos === \"right\" ? iconNode : null}\n </SolidDropdownMenuItem>\n );\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import { hasAnyRole } from "../../../helpers/rolesHelper";
2
+ import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
2
3
  import { useSession } from "../../../hooks/useSession";
3
- import { SquarePen } from "lucide-react";
4
4
  import { SolidDropdownMenuItem } from "../../shad-cn-ui";
5
5
  import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
6
6
 
@@ -10,12 +10,22 @@ export const SolidListViewHeaderContextMenuButton = ({ button, params, solidList
10
10
  const user = session?.user;
11
11
 
12
12
  const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);
13
+ const presentation = resolveButtonPresentation(button?.attrs);
14
+ const iconNode = presentation.showIcon
15
+ ? (() => {
16
+ const m = parseSolidIconMeta(presentation.icon);
17
+ return m
18
+ ? <SolidIcon name={m.name} spin={m.spin} className="solid-header-action-button-icon" />
19
+ : <i className={`${presentation.icon} solid-header-action-button-icon`} />;
20
+ })()
21
+ : null;
13
22
 
14
23
  if (!hasRole) return null;
24
+ if (!presentation.showIcon && !presentation.showLabel) return null;
15
25
 
16
26
  return (
17
27
  <SolidDropdownMenuItem
18
- className="solid-header-dropdown-item"
28
+ className={`solid-header-dropdown-item ${presentation.buttonClassName ?? ""}`}
19
29
  onSelect={() => {
20
30
  const event = {
21
31
  params,
@@ -24,11 +34,12 @@ export const SolidListViewHeaderContextMenuButton = ({ button, params, solidList
24
34
  handleCustomButtonClick(button.attrs, event);
25
35
  onActionComplete?.();
26
36
  }}
37
+ title={presentation.tooltip}
38
+ aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
27
39
  >
28
- {button?.attrs?.icon
29
- ? (() => { const m = parseSolidIconMeta(button.attrs.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className="solid-header-action-button-icon" /> : <i className={`${button.attrs.icon} solid-header-action-button-icon`} />; })()
30
- : <SquarePen size={14} className="solid-header-action-button-icon" />}
31
- <span className="solid-header-action-button-label">{button.attrs.label}</span>
40
+ {presentation.iconPos === "left" ? iconNode : null}
41
+ {presentation.showLabel ? <span className="solid-header-action-button-label">{presentation.label}</span> : null}
42
+ {presentation.iconPos === "right" ? iconNode : null}
32
43
  </SolidDropdownMenuItem>
33
44
  );
34
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewRowActionMenuItem.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowActionMenuItem.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,8BAA8B,kGAAmG,GAAG,mDAqChJ,CAAC"}
1
+ {"version":3,"file":"SolidListViewRowActionMenuItem.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowActionMenuItem.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,8BAA8B,kGAAmG,GAAG,mDAgDhJ,CAAC"}
@@ -12,7 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { useSession } from "../../../hooks/useSession";
14
14
  import { hasAnyRole } from "../../../helpers/rolesHelper";
15
- import { SquarePen } from "lucide-react";
15
+ import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
16
16
  import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
17
17
  export var SolidListViewRowActionMenuItem = function (_a) {
18
18
  var _b, _c, _d, _e, _f, _g;
@@ -20,9 +20,20 @@ export var SolidListViewRowActionMenuItem = function (_a) {
20
20
  var _h = useSession(), session = _h.data, status = _h.status;
21
21
  var user = session === null || session === void 0 ? void 0 : session.user;
22
22
  var hasRole = !((_b = button === null || button === void 0 ? void 0 : button.attrs) === null || _b === void 0 ? void 0 : _b.roles) || ((_c = button === null || button === void 0 ? void 0 : button.attrs) === null || _c === void 0 ? void 0 : _c.roles.length) === 0 ? true : hasAnyRole(user === null || user === void 0 ? void 0 : user.roles, (_d = button === null || button === void 0 ? void 0 : button.attrs) === null || _d === void 0 ? void 0 : _d.roles);
23
+ var presentation = resolveButtonPresentation(button === null || button === void 0 ? void 0 : button.attrs);
24
+ var iconNode = presentation.showIcon
25
+ ? (function () {
26
+ var m = parseSolidIconMeta(presentation.icon);
27
+ return m
28
+ ? _jsx(SolidIcon, { name: m.name, spin: m.spin, className: "solid-row-action-button-icon" })
29
+ : _jsx("i", { className: "".concat(presentation.icon, " solid-row-action-button-icon") });
30
+ })()
31
+ : null;
23
32
  if (!hasRole)
24
33
  return null;
25
- return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(((_e = button === null || button === void 0 ? void 0 : button.attrs) === null || _e === void 0 ? void 0 : _e.className) ? (_f = button === null || button === void 0 ? void 0 : button.attrs) === null || _f === void 0 ? void 0 : _f.className : ''), onClick: function () {
34
+ if (!presentation.showIcon && !presentation.showLabel)
35
+ return null;
36
+ return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(presentation.buttonClassName ? presentation.buttonClassName : ''), title: presentation.tooltip, "aria-label": presentation.isIconOnly ? ((_g = (_e = presentation.tooltip) !== null && _e !== void 0 ? _e : (_f = button === null || button === void 0 ? void 0 : button.attrs) === null || _f === void 0 ? void 0 : _f.action) !== null && _g !== void 0 ? _g : "Action") : undefined, onClick: function () {
26
37
  var event = {
27
38
  params: params,
28
39
  rowData: rowData,
@@ -35,8 +46,6 @@ export var SolidListViewRowActionMenuItem = function (_a) {
35
46
  }
36
47
  handleCustomButtonClick(modifiedButtonAttrs, event);
37
48
  onActionComplete === null || onActionComplete === void 0 ? void 0 : onActionComplete();
38
- }, children: [((_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.icon)
39
- ? (function () { var m = parseSolidIconMeta(button.attrs.icon); return m ? _jsx(SolidIcon, { name: m.name, spin: m.spin, className: "solid-row-action-button-icon" }) : _jsx("i", { className: "".concat(button.attrs.icon, " solid-row-action-button-icon") }); })()
40
- : _jsx(SquarePen, { size: 14, className: "solid-row-action-button-icon" }), _jsx("span", { className: "solid-row-action-button-label", children: button.attrs.label })] }));
49
+ }, children: [presentation.iconPos === "left" ? iconNode : null, presentation.showLabel ? _jsx("span", { className: "solid-row-action-button-label", children: presentation.label }) : null, presentation.iconPos === "right" ? iconNode : null] }));
41
50
  };
42
51
  //# sourceMappingURL=SolidListViewRowActionMenuItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewRowActionMenuItem.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowActionMenuItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,MAAM,CAAC,IAAM,8BAA8B,GAAG,UAAC,EAAkG;;QAAhG,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA,EAAE,gBAAgB,sBAAA;IAEhI,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,IAAM,OAAO,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC;IAElI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,CACH,kBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,kCAA2B,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,EAChG,OAAO,EAAE;YACL,IAAM,KAAK,GAAG;gBACV,MAAM,QAAA;gBACN,OAAO,EAAE,OAAO;gBAChB,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;aACpD,CAAC;YAEF,IAAM,mBAAmB,gBAAQ,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC,gBAAgB;YAEjE,oDAAoD;YACpD,IAAI,mBAAmB,CAAC,MAAM,KAAK,4BAA4B,IAAI,mBAAmB,CAAC,MAAM,KAAK,6BAA6B,EAAE;gBAC7H,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;aAC3C;YAED,uBAAuB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACpD,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QACzB,CAAC,aAEA,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI;gBAChB,CAAC,CAAC,CAAC,cAAQ,IAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC,YAAG,SAAS,EAAE,UAAG,MAAM,CAAC,KAAK,CAAC,IAAI,kCAA+B,GAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvO,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,8BAA8B,GAAG,EACtE,eAAM,SAAS,EAAC,+BAA+B,YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAQ,IACtE,CACZ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SquarePen } from \"lucide-react\";\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\nexport const SolidListViewRowActionMenuItem = ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n\n if (!hasRole) return null;\n\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n onClick={() => {\n const event = {\n params,\n rowData: rowData,\n solidListViewMetaData: solidListViewMetaData.data,\n };\n\n const modifiedButtonAttrs = { ...button.attrs }; // Create a copy\n\n // Conditionally add popupWidth for specific actions\n if (modifiedButtonAttrs.action === 'GenerateModelCodeRowAction' || modifiedButtonAttrs.action === 'GenerateModuleCodeRowAction') {\n modifiedButtonAttrs.popupWidth = '30vw';\n }\n\n handleCustomButtonClick(modifiedButtonAttrs, event);\n onActionComplete?.();\n }}\n >\n {button?.attrs?.icon\n ? (() => { const m = parseSolidIconMeta(button.attrs.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-row-action-button-icon\" /> : <i className={`${button.attrs.icon} solid-row-action-button-icon`} />; })()\n : <SquarePen size={14} className=\"solid-row-action-button-icon\" />}\n <span className=\"solid-row-action-button-label\">{button.attrs.label}</span>\n </button>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidListViewRowActionMenuItem.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowActionMenuItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { resolveButtonPresentation } from \"../../../helpers/buttonPresentation\";\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\nexport const SolidListViewRowActionMenuItem = ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n const presentation = resolveButtonPresentation(button?.attrs);\n const iconNode = presentation.showIcon\n ? (() => {\n const m = parseSolidIconMeta(presentation.icon);\n return m\n ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-row-action-button-icon\" />\n : <i className={`${presentation.icon} solid-row-action-button-icon`} />;\n })()\n : null;\n\n if (!hasRole) return null;\n if (!presentation.showIcon && !presentation.showLabel) return null;\n\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}\n title={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n onClick={() => {\n const event = {\n params,\n rowData: rowData,\n solidListViewMetaData: solidListViewMetaData.data,\n };\n\n const modifiedButtonAttrs = { ...button.attrs }; // Create a copy\n\n // Conditionally add popupWidth for specific actions\n if (modifiedButtonAttrs.action === 'GenerateModelCodeRowAction' || modifiedButtonAttrs.action === 'GenerateModuleCodeRowAction') {\n modifiedButtonAttrs.popupWidth = '30vw';\n }\n\n handleCustomButtonClick(modifiedButtonAttrs, event);\n onActionComplete?.();\n }}\n >\n {presentation.iconPos === \"left\" ? iconNode : null}\n {presentation.showLabel ? <span className=\"solid-row-action-button-label\">{presentation.label}</span> : null}\n {presentation.iconPos === \"right\" ? iconNode : null}\n </button>\n );\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import { useSession } from "../../../hooks/useSession";
2
2
  import { hasAnyRole } from "../../../helpers/rolesHelper";
3
- import { SquarePen } from "lucide-react";
3
+ import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
4
4
  import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
5
5
 
6
6
  export const SolidListViewRowActionMenuItem = ({ button, params, rowData, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {
@@ -9,13 +9,25 @@ export const SolidListViewRowActionMenuItem = ({ button, params, rowData, solidL
9
9
  const user = session?.user;
10
10
 
11
11
  const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);
12
+ const presentation = resolveButtonPresentation(button?.attrs);
13
+ const iconNode = presentation.showIcon
14
+ ? (() => {
15
+ const m = parseSolidIconMeta(presentation.icon);
16
+ return m
17
+ ? <SolidIcon name={m.name} spin={m.spin} className="solid-row-action-button-icon" />
18
+ : <i className={`${presentation.icon} solid-row-action-button-icon`} />;
19
+ })()
20
+ : null;
12
21
 
13
22
  if (!hasRole) return null;
23
+ if (!presentation.showIcon && !presentation.showLabel) return null;
14
24
 
15
25
  return (
16
26
  <button
17
27
  type="button"
18
- className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}
28
+ className={`solid-row-action-button ${presentation.buttonClassName ? presentation.buttonClassName : ''}`}
29
+ title={presentation.tooltip}
30
+ aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
19
31
  onClick={() => {
20
32
  const event = {
21
33
  params,
@@ -34,10 +46,9 @@ export const SolidListViewRowActionMenuItem = ({ button, params, rowData, solidL
34
46
  onActionComplete?.();
35
47
  }}
36
48
  >
37
- {button?.attrs?.icon
38
- ? (() => { const m = parseSolidIconMeta(button.attrs.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className="solid-row-action-button-icon" /> : <i className={`${button.attrs.icon} solid-row-action-button-icon`} />; })()
39
- : <SquarePen size={14} className="solid-row-action-button-icon" />}
40
- <span className="solid-row-action-button-label">{button.attrs.label}</span>
49
+ {presentation.iconPos === "left" ? iconNode : null}
50
+ {presentation.showLabel ? <span className="solid-row-action-button-label">{presentation.label}</span> : null}
51
+ {presentation.iconPos === "right" ? iconNode : null}
41
52
  </button>
42
53
  );
43
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CreateModel.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"AAmCA,QAAA,MAAM,WAAW,qBAAsB,GAAG,4CA4bzC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"CreateModel.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"AAmCA,QAAA,MAAM,WAAW,qBAAsB,GAAG,4CAgbzC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -114,9 +114,9 @@ var CreateModel = function (_a) {
114
114
  useEffect(function () {
115
115
  var _a;
116
116
  if (data) {
117
- var isLegacyTable = data.isLegacyTableWithId || data.isLegacyTable;
118
- var isLegacyTableWithId = data.isLegacyTable;
119
- var modelData = __assign(__assign({}, data), { moduleId: (_a = data === null || data === void 0 ? void 0 : data.module) === null || _a === void 0 ? void 0 : _a.id, parentModelId: data === null || data === void 0 ? void 0 : data.parentModel, isLegacyTable: isLegacyTable, isLegacyTableWithId: isLegacyTableWithId });
117
+ var isLegacyTable = data.legacyTableType !== 'none';
118
+ var hasExistingId = data.legacyTableType === 'existing_id';
119
+ var modelData = __assign(__assign({}, data), { moduleId: (_a = data === null || data === void 0 ? void 0 : data.module) === null || _a === void 0 ? void 0 : _a.id, parentModelId: data === null || data === void 0 ? void 0 : data.parentModel, isLegacyTable: isLegacyTable, hasExistingId: hasExistingId });
120
120
  setIsLoadingData(false);
121
121
  setModelMetaData(modelData);
122
122
  var fieldData = data.fields.map(function (f) {
@@ -207,31 +207,18 @@ var CreateModel = function (_a) {
207
207
  });
208
208
  }); };
209
209
  var handleFormSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
210
- var legacyTableConfig, hasPrimaryKey, fieldData, module_1, parentModel, createdAt, updatedAt, id, deletedAt, modelData, updateData, fieldData, module_2, parentModel, modelData, data_1;
210
+ var legacyTableConfig, legacyTableType, hasPrimaryKey, fieldData, module_1, parentModel, createdAt, updatedAt, id, deletedAt, modelData, updateData, fieldData, module_2, parentModel, modelData, data_1;
211
211
  return __generator(this, function (_a) {
212
212
  legacyTableConfig = {};
213
- if ((modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTable) && (modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTableWithId)) {
214
- // UI: Both checked Backend: both true
215
- legacyTableConfig = {
216
- isLegacyTable: true,
217
- isLegacyTableWithId: false
218
- };
213
+ legacyTableType = 'none';
214
+ if ((modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTable) && (modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.hasExistingId)) {
215
+ legacyTableType = 'existing_id';
219
216
  }
220
- else if ((modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTable) && !(modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTableWithId)) {
221
- // UI: Only isLegacyTable checked → Backend: only isLegacyTableWithId true
222
- legacyTableConfig = {
223
- isLegacyTable: false,
224
- isLegacyTableWithId: true
225
- };
217
+ else if (modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTable) {
218
+ legacyTableType = 'generated_id';
226
219
  }
227
- else {
228
- // UI: Neither checked Backend: both false
229
- legacyTableConfig = {
230
- isLegacyTable: false,
231
- isLegacyTableWithId: false
232
- };
233
- }
234
- if ((modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTable) || (modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTableWithId)) {
220
+ legacyTableConfig = { legacyTableType: legacyTableType };
221
+ if (modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTable) {
235
222
  hasPrimaryKey = fieldMetaData.some(function (field) { return field.isPrimaryKey === true; });
236
223
  if (!hasPrimaryKey) {
237
224
  dispatch(showToast({ severity: "error", summary: "Primary Key Required", detail: "Legacy tables set at least one field marked as Primary Key. Please mark a field as Primary Key before proceeding.", life: 5000 }));
@@ -1 +1 @@
1
- {"version":3,"file":"CreateModel.js","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE5I,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjJ,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAQ1D,IAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AAG1C,IAAM,gBAAgB,GAAG,UAAC,GAAc,IAAgC,OAAA,CAAC;IACvE,KAAK,EAAE,GAAG,KAAK,OAAO;IACtB,MAAM,EAAE,GAAG,KAAK,QAAQ;CACzB,CAAC,EAHsE,CAGtE,CAAC;AAEH,IAAM,WAAW,GAAG,UAAC,EAAqB;QAAnB,IAAI,UAAA,EAAE,MAAM,YAAA;IAEjC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACzB,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAClD,IAAA,KAAoC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAhE,aAAa,QAAA,EAAE,gBAAgB,QAAiC,CAAC;IACxE,IAAM,sBAAsB,GAAG,MAAM,EAAO,CAAC;IAC7C,IAAM,uBAAuB,GAAG,MAAM,EAAE,CAAC;IAEnC,IAAA,KAAoC,QAAQ,EAAO,EAAlD,aAAa,QAAA,EAAE,gBAAgB,QAAmB,CAAC;IACpD,IAAA,KAAoC,QAAQ,CAAM,EAAE,CAAC,EAApD,aAAa,QAAA,EAAE,gBAAgB,QAAqB,CAAC;IAEtD,IAAA,KAA0C,+BAA+B,CAAC,IAAI,CAAC,EAAvE,oBAAoB,UAAA,EAAE,OAAO,aAA0C,CAAC;IAChF,IAAA,KAAsC,QAAQ,CAAC,EAAE,CAAC,EAAjD,cAAc,QAAA,EAAE,iBAAiB,QAAgB,CAAC;IAEnD,IAAA,KACJ,qBAAqB,EAAE,EADlB,gBAAgB,QAAA,EAAE,UAAwE,EAAhE,SAAS,UAAA,EAAa,iBAAiB,eAAA,EAAS,cAAc,WACtE,CAAC;IAGpB,IAAA,KAGF,sBAAsB,EAAE,EAF1B,WAAW,QAAA,EACX,UAA0I,EAA7H,oBAAoB,eAAA,EAAa,oBAAoB,eAAA,EAAW,kBAAkB,aAAA,EAAS,gBAAgB,WAAA,EAAQ,QAAQ,UAC9G,CAAC;IAEvB,IAAA,KAGF,sBAAsB,EAAE,EAF1B,WAAW,QAAA,EACX,UAAiJ,EAApI,sBAAsB,eAAA,EAAa,qBAAqB,eAAA,EAAW,kBAAkB,aAAA,EAAS,gBAAgB,WAAA,EAAQ,YAAY,UACrH,CAAC;IACvB,IAAA,KAGF,sBAAsB,EAAE,EAF1B,WAAW,QAAA,EACX,UAAwI,EAA3H,cAAc,eAAA,EAAa,oBAAoB,eAAA,EAAW,kBAAkB,aAAA,EAAS,gBAAgB,WAAA,EAAQ,YAAY,UAC5G,CAAC;IAEvB,IAAA,KAA4B,QAAQ,CAAW,OAAO,CAAC,EAAtD,SAAS,QAAA,EAAE,YAAY,QAA+B,CAAC;IACxD,IAAA,KAA4B,QAAQ,CAA4B,gBAAgB,EAAE,CAAC,EAAlF,SAAS,QAAA,EAAE,YAAY,QAA2D,CAAC;IACpF,IAAA,KAA8B,QAAQ,CAAyB,EAAE,CAAC,EAAjE,UAAU,QAAA,EAAE,aAAa,QAAwC,CAAC;IAEzE,IAAM,OAAO,GAAG;QACd,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAM,eAAe,GAAG,UAAC,SAAmB;;QAC1C,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,OAAO;SACR;QACD,IAAI,SAAS,KAAK,OAAO,EAAE;YACzB,MAAA,sBAAsB,CAAC,OAAO,0CAAE,YAAY,EAAE,CAAC;SAChD;QACD,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,SAAS,CAAC;;QACR,IAAI,IAAI,EAAE;YACR,IAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,aAAa,CAAA;YACpE,IAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/C,IAAM,SAAS,yBACV,IAAI,KAAE,QAAQ,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,EAAE,EAAE,aAAa,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,aAAa,eAAA,EAAE,mBAAmB,qBAAA,GAC1G,CAAA;YAED,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxB,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAM;gBACvC,IAAM,SAAS,gBAAQ,CAAC,CAAE,CAAC,CAAC,4CAA4C;gBACxE,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,8BAA8B;gBAC3D,IAAI,SAAS,CAAC,IAAI,IAAI,aAAa,IAAI,SAAS,CAAC,IAAI,IAAI,eAAe,EAAE;oBACxE,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,8BAA8B;iBAEnF;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAA;YACF,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,CAAM,EAAE,CAAM,IAAK,OAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAX,CAAW,CAAC,CAAC,CAAA;SAClE;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAGV,SAAS,CAAC;QACR,IAAM,SAAS,GAAG;YAChB,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,IAAM,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;YAC1C,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,SAAS,CAAC;QACR,IAAI,SAAS,EAAE;YACb,IAAI,IAAI,EAAE;gBACR,iBAAiB,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,MAAM,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAhB,CAAgB,EAAE,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,YAAY,EAAd,CAAc,CAAC,CAAC,CAAC;aAE5G;iBAAM;gBAEL,iBAAiB,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,YAAY,EAAd,CAAc,CAAC,CAAC,CAAC;aACvE;SACF;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAGtB,IAAM,YAAY,GAAG;;;;yBAEf,sBAAsB,CAAC,OAAO,EAA9B,wBAA8B;oBAChC,qBAAM,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAA;;oBAAjD,SAAiD,CAAC,CAAC,0DAA0D;oBAE7G,aAAa;oBACb,6DAA6D;oBAC7D,6EAA6E;oBAE7E,sCAAsC;oBACtC,4BAA4B;oBAC5B,eAAe;oBACf,iCAAiC;oBACjC,qBAAqB;oBACrB,mEAAmE;oBACnE,wDAAwD;oBACxD,iBAAiB;oBACjB,wDAAwD;oBACxD,mEAAmE;oBACnE,UAAU;oBACV,QAAQ;oBACR,MAAM;oBACN,MAAM;oBAEN,sBAAsB,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,UAAC,MAAW;wBAC7D,IAAI,aAAmC,CAAC;wBACxC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;4BAClC,aAAa,CAAC,MAAM,CAAC,CAAC;4BACtB,IAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;4BAC5C,aAAa,CAAC,OAAO,CAAC,UAAC,KAAK;gCAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;4BAChI,CAAC,CAAC,CAAC;4BAEH,aAAa,GAAG,OAAO,CAAC,CAAC,gCAAgC;yBAC1D;6BAAM;4BACL,aAAa,CAAC,EAAE,CAAC,CAAC;yBACnB;wBAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;4BAC3G,aAAa,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,QAAQ,CAAC,CAAC,sCAAsC;yBAClF;wBAED,IAAI,aAAa,KAAK,SAAS,EAAE;4BAC/B,YAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,gDAAgD;4BAC/F,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,kCAAkC;yBAChE;6BAAM;4BACL,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC;4BACjC,gBAAgB,EAAE,CAAC;yBACpB;oBACH,CAAC,CAAC,CAAC;;;;;SAEN,CAAC;IAGF,IAAM,gBAAgB,GAAG;;;YAEnB,iBAAiB,GAAG,EAAE,CAAC;YAE3B,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,MAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,mBAAmB,CAAA,EAAE;gBACtE,wCAAwC;gBACxC,iBAAiB,GAAG;oBAClB,aAAa,EAAE,IAAI;oBACnB,mBAAmB,EAAE,KAAK;iBAC3B,CAAC;aACH;iBAAM,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,KAAI,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,mBAAmB,CAAA,EAAE;gBAC9E,0EAA0E;gBAC1E,iBAAiB,GAAG;oBAClB,aAAa,EAAE,KAAK;oBACpB,mBAAmB,EAAE,IAAI;iBAC1B,CAAC;aACH;iBAAM;gBACL,4CAA4C;gBAC5C,iBAAiB,GAAG;oBAClB,aAAa,EAAE,KAAK;oBACpB,mBAAmB,EAAE,KAAK;iBAC3B,CAAC;aACH;YAED,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,MAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,mBAAmB,CAAA,EAAE;gBAChE,aAAa,GAAG,aAAa,CAAC,IAAI,CACtC,UAAC,KAAU,IAAK,OAAA,KAAK,CAAC,YAAY,KAAK,IAAI,EAA3B,CAA2B,CAC5C,CAAC;gBAEF,IAAI,CAAC,aAAa,EAAE;oBAClB,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,mHAAmH,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBACrN,sBAAO;iBACR;aACF;YAED,IAAI,IAAI,EAAE;gBACF,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,EAAmF;oBAAjF,IAAA,SAAS,eAAA,EAAE,SAAS,eAAA,EAAE,SAAS,eAAA,EAAE,oBAAoB,0BAAA,EAAE,UAAU,gBAAA,EAAK,IAAI,cAA5E,6EAA8E,CAAF;oBAC/G,IAAI,IAAI,CAAC,cAAc,EAAE;wBACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;qBAC3E;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,CAAC;gBACK,WAA2E,aAAa,OAAlF,EAAE,WAAW,GAAwD,aAAa,YAArE,EAAE,SAAS,GAA6C,aAAa,UAA1D,EAAE,SAAS,GAAkC,aAAa,UAA/C,EAAE,EAAE,GAA8B,aAAa,GAA3C,EAAE,SAAS,GAAmB,aAAa,UAAhC,EAAK,SAAS,UAAK,aAAa,EAA1F,sEAA0E,CAAF,CAAmB;gBAC3F,UAAU,kCAAQ,SAAS,KAAE,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,KAAK,iBAAiB,CAAE,CAAC;gBACxH,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;aAChD;iBACI;gBACH,IAAI,aAAa,EAAE;oBACX,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,EAAkD;wBAAhD,IAAA,oBAAoB,0BAAA,EAAE,UAAU,gBAAA,EAAK,IAAI,cAA3C,sCAA6C,CAAF;wBAC9E,IAAI,IAAI,CAAC,cAAc,EAAE;4BACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;yBAC3E;wBACD,OAAO,IAAI,CAAA;oBACb,CAAC,CAAC,CAAC;oBACK,WAAsC,aAAa,OAA7C,EAAE,WAAW,GAAmB,aAAa,YAAhC,EAAK,SAAS,UAAK,aAAa,EAArD,yBAAqC,CAAF,CAAmB;oBACtD,wCAAY,SAAS,KAAE,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,KAAK,iBAAiB,CAAE,CAAC;oBAClH,WAAW,CAAC,MAAI,CAAC,CAAC;oBAClB,IAAI,oBAAoB,EAAE;qBAEzB;iBACF;aACF;;;SACF,CAAC;IAEF,IAAM,mBAAmB,GAAG;;YAC1B,WAAW,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;;;SACvB,CAAA;IAED,SAAS,CAAC;QACR,IAAI,oBAAoB,IAAI,IAAI,IAAI,qBAAqB,IAAI,IAAI,IAAI,oBAAoB,IAAI,IAAI,EAAE;YACjG,+CAA+C;YAC/C,MAAM,CAAC,IAAI,EAAE,CAAC;SACf;IACH,CAAC,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAEvE,IAAM,SAAS,GAAG,UAAO,MAAW;;;YAC5B,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE5C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aAC3I;;;SACF,CAAC;IAEF,IAAM,sCAAsC,GAAG,UAAC,KAAU;QACxD,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;IAC1F,CAAC,CAAA;IAED,6CAA6C;IAC7C,mDAAmD;IAEnD,8DAA8D;IAC9D,8CAA8C;IAC9C,aAAa;IACb,+CAA+C;IAC/C,MAAM;IAEN,2BAA2B;IAC3B,yBAAyB;IACzB,wBAAwB;IACxB,4BAA4B;IAC5B,kBAAkB;IAClB,mBAAmB;IACnB,4BAA4B;IAC5B,kFAAkF;IAClF,2CAA2C;IAC3C,mDAAmD;IACnD,0EAA0E;IAC1E,6EAA6E;IAC7E,qBAAqB;IACrB,eAAe;IACf,gBAAgB;IAChB,4DAA4D;IAC5D,iFAAiF;IACjF,mBAAmB;IACnB,aAAa;IACb,eAAe;IACf,SAAS;IACT,QAAQ;IACR,KAAK;IAGL,iBAAiB;IACjB,6EAA6E;IAE7E,SAAS,CAAC;QACR,IAAM,MAAM,GAAG;YACb,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACxD,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACxD,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE;SACzD,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,mBAAmB;YACnB,MAAM,CAAC,OAAO,CAAC,UAAC,EAAkB;oBAAhB,OAAO,aAAA,EAAE,KAAK,WAAA;gBAC9B,IAAI,OAAO,IAAI,KAAK,EAAE;oBACpB,IAAM,YAAY,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,SAAS,IAAK,KAAa,CAAC,IAAI;wBAC5G,CAAC,CAAE,KAAa,CAAC,IAAI,CAAC,OAAO;wBAC7B,CAAC,CAAC,sBAAsB,CAAC;oBAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC,CAAC;iBACtE;YACH,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAC1D,IAAA,KAAgD,QAAQ,CAAC,KAAK,CAAC,EAA9D,mBAAmB,QAAA,EAAE,sBAAsB,QAAmB,CAAC;IACtE,IAAM,kBAAkB,GAAG,cAAM,OAAA,CAC/B,MAAC,YAAY,IAAC,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,sBAAsB,aAC3E,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,WAAW,IACV,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,mBAAmB,gBAClB,eAAe,YAE1B,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,GACM,EACtB,KAAC,mBAAmB,IAClB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,KAAK,EACX,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,eAAe,EAAE,EAAvB,CAAuB,YAE3C,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wDAAwD,EAClE,OAAO,EAAE;wBACP,sBAAsB,CAAC,KAAK,CAAC,CAAC;wBAC9B,eAAe,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC,aAED,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,8BAA8B,GAAG,EAC7D,eAAM,SAAS,EAAC,+BAA+B,uBAAc,IACtD,GACW,IACT,CAChB,EA/BgC,CA+BhC,CAAC;IAEI,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IAC9C,IAAM,YAAY,GAAG,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;IACzC,IAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC;IACrE,IAAM,WAAW,GAAG,UAAG,eAAe,SAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,EAAC,CAAC,CAAC,aAAM,aAAa,CAAC,WAAW,CAAE,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;IAC/G,IAAM,kBAAkB,GAAG,CAAC,YAAY,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAK,IAAI,CAAC;IACpE,IAAM,YAAY,GAAG,cAAM,OAAA,MAAM,CAAC,IAAI,EAAE,EAAb,CAAa,CAAC;IAGzC,OAAO,CACL,eAAK,SAAS,EAAC,oBAAoB,aACjC,eAAK,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,EAAE,aAC/H,0BACE,eAAK,SAAS,EAAC,mFAAmF,aAChG,cAAK,SAAS,EAAC,wBAAwB,GAGjC,EACN,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,WAAW,IACV,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,oBAAoB,uBAGlB,EACb,OAAO,IAAI,CACV,KAAC,WAAW,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAY,qBAE5C,CACf,EACA,kBAAkB,IAAI,kBAAkB,EAAE,IACvC,IACF,EAEN,cAAK,SAAS,EAAC,qCAAqC,YACpD,KAAC,aAAa,IACZ,SAAS,EAAC,UAAU,EACpB,cAAc,EAAC,MAAM,EACrB,IAAI,EAAE;wCACJ;4CACE,KAAK,EAAE,OAAO;4CACd,KAAK,EAAE,eAAM,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,sBAAc;4CAChF,OAAO,EAAE,CACP,KAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,OAAO,EAChB,sBAAsB,EAAE,sBAAsB,EAC9C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,GACP,CAClB;yCACF;wCACD;4CACE,KAAK,EAAE,QAAQ;4CACf,KAAK,EAAE,eAAM,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,uBAAe;4CAClF,OAAO,EAAE,CACP,KAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,OAAO,EAChB,uBAAuB,EAAE,uBAAuB,EAChD,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACP,CAClB;yCACF;qCACF,EACD,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,UAAC,KAAK;wCACnB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,KAAK,KAAK,EAAb,CAAa,CAAC,CAAC;wCAC/C,IAAI,IAAI,EAAE;4CACR,eAAe,CAAC,IAAI,CAAC,CAAC;yCACvB;oCACH,CAAC,GACD,GACI,IACF,EACN,KAAC,eAAe,IAAC,MAAM,EAAE,MAAM,GAAoB,IAE/C,EAEN,MAAC,WAAW,IAAC,MAAM,EAAC,cAAc,EAAC,eAAe,EAAC,MAAM,EAAC,SAAS,EAAC,sBAAsB,EAAC,gBAAgB,EAAC,WAAW,EAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAQ,IAAI,CAAC,YAAY;oBAAE,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAC3O,KAAC,YAAY,IAAC,SAAS,EAAC,KAAK,GAAG,EAChC,eAAK,SAAS,EAAC,KAAK,aAClB,YAAG,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,4DAE1D,EACJ,YAAG,SAAS,EAAC,EAAE,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY,GAAK,EAC5F,eAAK,SAAS,EAAC,oCAAoC,aACjD,KAAC,WAAW,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,mBAAmB,uBAErC,EACd,KAAC,WAAW,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,KAAK,CAAC,EAAtB,CAAsB,uBAEhE,IACV,IACF,IACM,IAEV,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["\n\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useCreatemodelMutation, useDeletemodelMutation, useLazyGetModelsQuery, useUpdatemodelMutation } from \"../../../redux/api/modelApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaData from \"./FieldMetaData\";\nimport ModelMetaData from \"./ModelMetaData\";\nimport { SolidFormStepper } from \"../../../components/common/SolidFormStepper\";\nimport { SolidBreadcrumb } from \"../../../components/common/SolidBreadcrumb\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { SolidButton, SolidDialog, SolidDivider, SolidPopover, SolidPopoverContent, SolidPopoverTrigger, SolidTabGroup } from \"../../shad-cn-ui\";\nimport { Settings, Trash2 } from \"lucide-react\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst TABS = [\"model\", \"fields\"] as const;\ntype TabValue = typeof TABS[number];\n\nconst getTabErrorState = (tab?: TabValue): Record<TabValue, boolean> => ({\n model: tab === \"model\",\n fields: tab === \"fields\",\n});\n\nconst CreateModel = ({ data, params }: any) => {\n\n const dispatch = useDispatch();\n const router = useRouter();\n const pathname = usePathname();\n const [deleteEntity, setDeleteEntity] = useState(false);\n const [isLoadingData, setIsLoadingData] = useState(data ? true : false);\n const formikModelMetadataRef = useRef<any>();\n const formikFieldsMetadataRef = useRef();\n\n const [modelMetaData, setModelMetaData] = useState<any>();\n const [fieldMetaData, setFieldMetaData] = useState<any>([]);\n\n const { data: fieldDefaultMetaData, refetch } = useGetFieldDefaultMetaDataQuery(null);\n const [allModelsNames, setAllModelsNames] = useState([]);\n\n const [triggerGetModels, { data: allmodels, isLoading: isAllModelsLoaded, error: allModelsError }] =\n useLazyGetModelsQuery();\n\n\n const [\n createModel,\n { isLoading: isCreateModelLoading, isSuccess: isCreateModelSuccess, isError: isCreateModelError, error: createModelError, data: newModel },\n ] = useCreatemodelMutation();\n\n const [\n updateModel,\n { isLoading: isUpdatedModelUpdating, isSuccess: isUpdatedModelSuceess, isError: isUpdateModelError, error: updateModelError, data: updatedModel },\n ] = useUpdatemodelMutation();\n const [\n deleteModel,\n { isLoading: isModelDeleted, isSuccess: isDeleteModelSuceess, isError: isDeleteModelError, error: deleteModelError, data: DeletedModel },\n ] = useDeletemodelMutation();\n\n const [activeTab, setActiveTab] = useState<TabValue>(\"model\");\n const [tabErrors, setTabErrors] = useState<Record<TabValue, boolean>>(getTabErrorState());\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n\n const nextTab = () => {\n const currentIndex = TABS.indexOf(activeTab);\n const nextValue = TABS[Math.min(currentIndex + 1, TABS.length - 1)];\n setActiveTab(nextValue);\n };\n\n const handleTabChange = (nextValue: TabValue) => {\n if (nextValue === activeTab) {\n return;\n }\n if (activeTab === \"model\") {\n formikModelMetadataRef.current?.handleSubmit();\n }\n setActiveTab(nextValue);\n };\n\n useEffect(() => {\n if (data) {\n const isLegacyTable = data.isLegacyTableWithId || data.isLegacyTable\n const isLegacyTableWithId = data.isLegacyTable;\n const modelData = {\n ...data, moduleId: data?.module?.id, parentModelId: data?.parentModel, isLegacyTable, isLegacyTableWithId\n }\n\n setIsLoadingData(false);\n setModelMetaData(modelData);\n const fieldData = data.fields.map((f: any) => {\n const fieldCopy = { ...f }; // Create a shallow copy of the field object\n fieldCopy.identifier = f.id; // Add the identifier property\n if (fieldCopy.type == \"mediaSingle\" || fieldCopy.type == \"mediaMultiple\") {\n fieldCopy.mediaMaxSizeKb = f.mediaMaxSizeKb / 1024; // Add the identifier property\n\n }\n return fieldCopy;\n })\n setFieldMetaData(fieldData.sort((a: any, b: any) => b.id - a.id))\n }\n }, [data])\n\n\n useEffect(() => {\n const queryData = {\n offset: 0,\n limit: 1000,\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n triggerGetModels(queryString);\n }, [isDeleteModelSuceess]);\n\n useEffect(() => {\n if (allmodels) {\n if (data) {\n setAllModelsNames(allmodels?.records.filter((i: any) => i.id !== data.id).map((e: any) => e.singularName));\n\n } else {\n\n setAllModelsNames(allmodels?.records.map((e: any) => e.singularName));\n }\n }\n }, [allmodels, data]);\n\n\n const handleSubmit = async () => {\n\n if (formikModelMetadataRef.current) {\n await formikModelMetadataRef.current.submitForm(); // Call the handleSubmit function from the formik instance\n\n // @ts-ignore\n // formikModelMetadataRef.current.validateForm().then(() => {\n // if (Object.keys(formikModelMetadataRef?.current?.errors).length === 0) {\n\n // if (fieldMetaData.length > 0) {\n // handleFormSubmit();\n // } else {\n // if (activeIndex === 0) {\n // nextTab();\n // // showError({ error: \"Please add Atleast one field\" });\n // handleError([\"Please add Atleast one field\"])\n // } else {\n // handleError([\"Please add Atleast one field\"])\n // // showError({ error: \"Please add Atleast one field\" });\n // }\n // }\n // }\n // });\n\n formikModelMetadataRef.current.validateForm().then((errors: any) => {\n let firstErrorTab: TabValue | undefined;\n if (Object.keys(errors).length > 0) {\n setFormErrors(errors);\n const errorMessages = Object.values(errors);\n errorMessages.forEach((error) => {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: Array.isArray(error) ? error.join(', ') : String(error) }));\n });\n\n firstErrorTab = \"model\"; // Model Metadata tab has errors\n } else {\n setFormErrors({});\n }\n\n if (fieldMetaData.length === 0) {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: ERROR_MESSAGES.ADD_ATLEAST_ONE_FIELD }));\n firstErrorTab = firstErrorTab ?? \"fields\"; // If no prior error, set to Field tab\n }\n\n if (firstErrorTab !== undefined) {\n setTabErrors(getTabErrorState(firstErrorTab)); // Set error only on the first tab with an issue\n setActiveTab(firstErrorTab); // Switch to the tab with an error\n } else {\n setTabErrors(getTabErrorState());\n handleFormSubmit();\n }\n });\n }\n };\n\n\n const handleFormSubmit = async () => {\n\n let legacyTableConfig = {};\n\n if (modelMetaData?.isLegacyTable && modelMetaData?.isLegacyTableWithId) {\n // UI: Both checked → Backend: both true\n legacyTableConfig = {\n isLegacyTable: true,\n isLegacyTableWithId: false\n };\n } else if (modelMetaData?.isLegacyTable && !modelMetaData?.isLegacyTableWithId) {\n // UI: Only isLegacyTable checked → Backend: only isLegacyTableWithId true\n legacyTableConfig = {\n isLegacyTable: false,\n isLegacyTableWithId: true\n };\n } else {\n // UI: Neither checked → Backend: both false\n legacyTableConfig = {\n isLegacyTable: false,\n isLegacyTableWithId: false\n };\n }\n\n if (modelMetaData?.isLegacyTable || modelMetaData?.isLegacyTableWithId) {\n const hasPrimaryKey = fieldMetaData.some(\n (field: any) => field.isPrimaryKey === true\n );\n\n if (!hasPrimaryKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Primary Key Required\", detail: \"Legacy tables set at least one field marked as Primary Key. Please mark a field as Primary Key before proceeding.\", life: 5000 }));\n return;\n }\n }\n\n if (data) {\n const fieldData = fieldMetaData.map(({ createdAt, updatedAt, deletedAt, mediaStorageProvider, identifier, ...rest }: any) => {\n if (rest.mediaMaxSizeKb) {\n rest.mediaMaxSizeKb = rest.mediaMaxSizeKb ? rest.mediaMaxSizeKb * 1024 : 0\n }\n return rest\n });\n const { module, parentModel, createdAt, updatedAt, id, deletedAt, ...modelData } = modelMetaData;\n const updateData = { ...modelData, displayName: modelData.displayName.trim(), fields: fieldData, ...legacyTableConfig };\n updateModel({ id: data.id, data: updateData });\n }\n else {\n if (modelMetaData) {\n const fieldData = fieldMetaData.map(({ mediaStorageProvider, identifier, ...rest }: any) => {\n if (rest.mediaMaxSizeKb) {\n rest.mediaMaxSizeKb = rest.mediaMaxSizeKb ? rest.mediaMaxSizeKb * 1024 : 0\n }\n return rest\n });\n const { module, parentModel, ...modelData } = modelMetaData;\n const data = { ...modelData, displayName: modelData.displayName.trim(), fields: fieldData, ...legacyTableConfig };\n createModel(data);\n if (isCreateModelSuccess) {\n\n }\n }\n }\n };\n\n const deleteModelFunction = async () => {\n deleteModel(data?.id);\n }\n\n useEffect(() => {\n if (isCreateModelSuccess == true || isUpdatedModelSuceess == true || isDeleteModelSuceess == true) {\n // router.push(`/admin/app-builder/model/all`);\n router.back();\n }\n }, [isCreateModelSuccess, isUpdatedModelSuceess, isDeleteModelSuceess])\n\n const showError = async (errors: any) => {\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.map(String).join(', '), life: 3000 }));\n }\n };\n\n const isFetchBaseQueryErrorWithErrorResponse = (error: any): error is FetchBaseQueryError & { data: ErrorResponseData } => {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n // const handleError = (errorToast: any) => {\n // let errorMessage: any = ['An error occurred'];\n\n // if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n // errorMessage = errorToast.data.message;\n // } else {\n // errorMessage = ['Something went wrong'];\n // }\n\n // toast?.current?.show({\n // severity: 'error',\n // summary: 'Error',\n // detail: errorMessage,\n // life: 3000,\n // //@ts-ignore\n // content: (props) => (\n // <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n // {Array.isArray(errorMessage) ? (\n // errorMessage.map((message, index) => (\n // <div className=\"flex align-items-center gap-2\" key={index}>\n // <span className=\"font-bold text-900\">{message.trim()}</span>\n // </div>\n // ))\n // ) : (\n // <div className=\"flex align-items-center gap-2\">\n // <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n // </div>\n // )}\n // </div>\n // ),\n // });\n // };\n\n\n // Error Handler \n // Added useEffect to remove active tab class border color if error is there.\n\n useEffect(() => {\n const errors = [\n { isError: isCreateModelError, error: createModelError },\n { isError: isDeleteModelError, error: deleteModelError },\n { isError: isUpdateModelError, error: updateModelError },\n ];\n if (errors.length > 0) {\n // Handle any error\n errors.forEach(({ isError, error }) => {\n if (isError && error) {\n const errorMessage = error && typeof error === 'object' && 'data' in error && 'message' in (error as any).data\n ? (error as any).data.message\n : 'Something went wrong';\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : String(errorMessage);\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n }\n });\n }\n\n }, [isCreateModelError, isDeleteModelError, isUpdateModelError])\n const [formActionsMenuOpen, setFormActionsMenuOpen] = useState(false);\n const formActionDropdown = () => (\n <SolidPopover open={formActionsMenuOpen} onOpenChange={setFormActionsMenuOpen}>\n <SolidPopoverTrigger asChild>\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n aria-label=\"Model actions\"\n >\n <Settings size={16} />\n </SolidButton>\n </SolidPopoverTrigger>\n <SolidPopoverContent\n side=\"bottom\"\n align=\"end\"\n className=\"solid-form-actions-popover\"\n onClick={(event) => event.stopPropagation()}\n >\n <button\n type=\"button\"\n className=\"solid-row-action-button solid-row-action-button-danger\"\n onClick={() => {\n setFormActionsMenuOpen(false);\n setDeleteEntity(true);\n }}\n >\n <Trash2 size={14} className=\"solid-row-action-button-icon\" />\n <span className=\"solid-row-action-button-label\">Delete</span>\n </button>\n </SolidPopoverContent>\n </SolidPopover>\n );\n\n const [isDirty, setIsDirty] = useState(false);\n const isCreateMode = params.id === \"new\";\n const headerTitleBase = isCreateMode ? \"Create Model\" : \"Edit Model\";\n const headerTitle = `${headerTitleBase}${modelMetaData?.displayName ? ` - ${modelMetaData.displayName}` : \"\"}`;\n const canShowActionsMenu = !isCreateMode && data?.isSystem !== true;\n const handleCancel = () => router.back();\n\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >\n <div>\n <div className=\"solid-form-header flex align-items-center justify-content-between gap-3 flex-wrap\">\n <div className=\"flex flex-column gap-1\">\n {/* <span className=\"text-sm text-color-secondary uppercase tracking-wider\">Model</span>\n <div className=\"form-wrapper-title solid-long-text-wrapper m-0\">{headerTitle}</div> */}\n </div>\n <div className=\"flex align-items-center gap-2\">\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n onClick={handleCancel}\n className=\"bg-primary-reverse\"\n >\n Cancel\n </SolidButton>\n {isDirty && (\n <SolidButton size=\"sm\" type=\"button\" onClick={handleSubmit}>\n Save\n </SolidButton>\n )}\n {canShowActionsMenu && formActionDropdown()}\n </div>\n </div>\n {/* <SolidFormHeader /> */}\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n <SolidTabGroup\n className=\"relative\"\n panelClassName=\"px-0\"\n tabs={[\n {\n value: \"model\",\n label: <span className={tabErrors.model ? \"tab-error-heading\" : \"\"}>Model</span>,\n content: (\n <ModelMetaData\n modelMetaData={modelMetaData}\n setModelMetaData={setModelMetaData}\n allModelsNames={allModelsNames}\n deleteModelFunction={deleteModelFunction}\n nextTab={nextTab}\n formikModelMetadataRef={formikModelMetadataRef}\n params={params}\n formErrors={formErrors}\n setIsDirty={setIsDirty}\n ></ModelMetaData>\n ),\n },\n {\n value: \"fields\",\n label: <span className={tabErrors.fields ? \"tab-error-heading\" : \"\"}>Fields</span>,\n content: (\n <FieldMetaData\n modelMetaData={modelMetaData}\n fieldMetaData={fieldMetaData}\n setFieldMetaData={setFieldMetaData}\n deleteModelFunction={deleteModelFunction}\n nextTab={nextTab}\n formikFieldsMetadataRef={formikFieldsMetadataRef}\n params={params}\n setIsDirty={setIsDirty}\n ></FieldMetaData>\n ),\n },\n ]}\n value={activeTab}\n onValueChange={(value) => {\n const next = TABS.find((tab) => tab === value);\n if (next) {\n handleTabChange(next);\n }\n }}\n />\n </div>\n </div>\n <SolidFormFooter params={params}></SolidFormFooter>\n\n </div>\n {/* <div style={{ width: '22.5%' }}></div> */}\n <SolidDialog header=\"Delete Model\" headerClassName=\"py-2\" className=\"solid-confirm-dialog\" contentClassName=\"px-0 pb-0\" visible={deleteEntity} style={{ width: '20vw' }} onHide={() => { if (!deleteEntity) return; setDeleteEntity(false); }}>\n <SolidDivider className=\"m-0\" />\n <div className=\"p-4\">\n <p className=\"m-0 solid-primary-title\" style={{ fontSize: 16 }}>\n Are you sure you want to delete this Model?\n </p>\n <p className=\"\" style={{ color: 'var{--solid-grey-500}' }}>{modelMetaData?.singularName}</p>\n <div className=\"flex align-items-center gap-2 mt-3\">\n <SolidButton size=\"sm\" onClick={deleteModelFunction}>\n Delete\n </SolidButton>\n <SolidButton size=\"sm\" variant=\"outline\" onClick={() => setDeleteEntity(false)}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </SolidDialog>\n\n </div>\n );\n};\n\nexport default CreateModel;\n"]}
1
+ {"version":3,"file":"CreateModel.js","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"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","sourcesContent":["\n\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useCreatemodelMutation, useDeletemodelMutation, useLazyGetModelsQuery, useUpdatemodelMutation } from \"../../../redux/api/modelApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaData from \"./FieldMetaData\";\nimport ModelMetaData from \"./ModelMetaData\";\nimport { SolidFormStepper } from \"../../../components/common/SolidFormStepper\";\nimport { SolidBreadcrumb } from \"../../../components/common/SolidBreadcrumb\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { SolidButton, SolidDialog, SolidDivider, SolidPopover, SolidPopoverContent, SolidPopoverTrigger, SolidTabGroup } from \"../../shad-cn-ui\";\nimport { Settings, Trash2 } from \"lucide-react\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst TABS = [\"model\", \"fields\"] as const;\ntype TabValue = typeof TABS[number];\n\nconst getTabErrorState = (tab?: TabValue): Record<TabValue, boolean> => ({\n model: tab === \"model\",\n fields: tab === \"fields\",\n});\n\nconst CreateModel = ({ data, params }: any) => {\n\n const dispatch = useDispatch();\n const router = useRouter();\n const pathname = usePathname();\n const [deleteEntity, setDeleteEntity] = useState(false);\n const [isLoadingData, setIsLoadingData] = useState(data ? true : false);\n const formikModelMetadataRef = useRef<any>();\n const formikFieldsMetadataRef = useRef();\n\n const [modelMetaData, setModelMetaData] = useState<any>();\n const [fieldMetaData, setFieldMetaData] = useState<any>([]);\n\n const { data: fieldDefaultMetaData, refetch } = useGetFieldDefaultMetaDataQuery(null);\n const [allModelsNames, setAllModelsNames] = useState([]);\n\n const [triggerGetModels, { data: allmodels, isLoading: isAllModelsLoaded, error: allModelsError }] =\n useLazyGetModelsQuery();\n\n\n const [\n createModel,\n { isLoading: isCreateModelLoading, isSuccess: isCreateModelSuccess, isError: isCreateModelError, error: createModelError, data: newModel },\n ] = useCreatemodelMutation();\n\n const [\n updateModel,\n { isLoading: isUpdatedModelUpdating, isSuccess: isUpdatedModelSuceess, isError: isUpdateModelError, error: updateModelError, data: updatedModel },\n ] = useUpdatemodelMutation();\n const [\n deleteModel,\n { isLoading: isModelDeleted, isSuccess: isDeleteModelSuceess, isError: isDeleteModelError, error: deleteModelError, data: DeletedModel },\n ] = useDeletemodelMutation();\n\n const [activeTab, setActiveTab] = useState<TabValue>(\"model\");\n const [tabErrors, setTabErrors] = useState<Record<TabValue, boolean>>(getTabErrorState());\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n\n const nextTab = () => {\n const currentIndex = TABS.indexOf(activeTab);\n const nextValue = TABS[Math.min(currentIndex + 1, TABS.length - 1)];\n setActiveTab(nextValue);\n };\n\n const handleTabChange = (nextValue: TabValue) => {\n if (nextValue === activeTab) {\n return;\n }\n if (activeTab === \"model\") {\n formikModelMetadataRef.current?.handleSubmit();\n }\n setActiveTab(nextValue);\n };\n\n useEffect(() => {\n if (data) {\n const isLegacyTable = data.legacyTableType !== 'none'\n const hasExistingId = data.legacyTableType === 'existing_id'\n const modelData = {\n ...data, moduleId: data?.module?.id, parentModelId: data?.parentModel, isLegacyTable, hasExistingId\n }\n\n setIsLoadingData(false);\n setModelMetaData(modelData);\n const fieldData = data.fields.map((f: any) => {\n const fieldCopy = { ...f }; // Create a shallow copy of the field object\n fieldCopy.identifier = f.id; // Add the identifier property\n if (fieldCopy.type == \"mediaSingle\" || fieldCopy.type == \"mediaMultiple\") {\n fieldCopy.mediaMaxSizeKb = f.mediaMaxSizeKb / 1024; // Add the identifier property\n\n }\n return fieldCopy;\n })\n setFieldMetaData(fieldData.sort((a: any, b: any) => b.id - a.id))\n }\n }, [data])\n\n\n useEffect(() => {\n const queryData = {\n offset: 0,\n limit: 1000,\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n triggerGetModels(queryString);\n }, [isDeleteModelSuceess]);\n\n useEffect(() => {\n if (allmodels) {\n if (data) {\n setAllModelsNames(allmodels?.records.filter((i: any) => i.id !== data.id).map((e: any) => e.singularName));\n\n } else {\n\n setAllModelsNames(allmodels?.records.map((e: any) => e.singularName));\n }\n }\n }, [allmodels, data]);\n\n\n const handleSubmit = async () => {\n\n if (formikModelMetadataRef.current) {\n await formikModelMetadataRef.current.submitForm(); // Call the handleSubmit function from the formik instance\n\n // @ts-ignore\n // formikModelMetadataRef.current.validateForm().then(() => {\n // if (Object.keys(formikModelMetadataRef?.current?.errors).length === 0) {\n\n // if (fieldMetaData.length > 0) {\n // handleFormSubmit();\n // } else {\n // if (activeIndex === 0) {\n // nextTab();\n // // showError({ error: \"Please add Atleast one field\" });\n // handleError([\"Please add Atleast one field\"])\n // } else {\n // handleError([\"Please add Atleast one field\"])\n // // showError({ error: \"Please add Atleast one field\" });\n // }\n // }\n // }\n // });\n\n formikModelMetadataRef.current.validateForm().then((errors: any) => {\n let firstErrorTab: TabValue | undefined;\n if (Object.keys(errors).length > 0) {\n setFormErrors(errors);\n const errorMessages = Object.values(errors);\n errorMessages.forEach((error) => {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: Array.isArray(error) ? error.join(', ') : String(error) }));\n });\n\n firstErrorTab = \"model\"; // Model Metadata tab has errors\n } else {\n setFormErrors({});\n }\n\n if (fieldMetaData.length === 0) {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: ERROR_MESSAGES.ADD_ATLEAST_ONE_FIELD }));\n firstErrorTab = firstErrorTab ?? \"fields\"; // If no prior error, set to Field tab\n }\n\n if (firstErrorTab !== undefined) {\n setTabErrors(getTabErrorState(firstErrorTab)); // Set error only on the first tab with an issue\n setActiveTab(firstErrorTab); // Switch to the tab with an error\n } else {\n setTabErrors(getTabErrorState());\n handleFormSubmit();\n }\n });\n }\n };\n\n\n const handleFormSubmit = async () => {\n\n let legacyTableConfig = {};\n\n let legacyTableType = 'none';\n if (modelMetaData?.isLegacyTable && modelMetaData?.hasExistingId) {\n legacyTableType = 'existing_id';\n } else if (modelMetaData?.isLegacyTable) {\n legacyTableType = 'generated_id';\n }\n legacyTableConfig = { legacyTableType };\n\n if (modelMetaData?.isLegacyTable) {\n const hasPrimaryKey = fieldMetaData.some(\n (field: any) => field.isPrimaryKey === true\n );\n\n if (!hasPrimaryKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Primary Key Required\", detail: \"Legacy tables set at least one field marked as Primary Key. Please mark a field as Primary Key before proceeding.\", life: 5000 }));\n return;\n }\n }\n\n if (data) {\n const fieldData = fieldMetaData.map(({ createdAt, updatedAt, deletedAt, mediaStorageProvider, identifier, ...rest }: any) => {\n if (rest.mediaMaxSizeKb) {\n rest.mediaMaxSizeKb = rest.mediaMaxSizeKb ? rest.mediaMaxSizeKb * 1024 : 0\n }\n return rest\n });\n const { module, parentModel, createdAt, updatedAt, id, deletedAt, ...modelData } = modelMetaData;\n const updateData = { ...modelData, displayName: modelData.displayName.trim(), fields: fieldData, ...legacyTableConfig };\n updateModel({ id: data.id, data: updateData });\n }\n else {\n if (modelMetaData) {\n const fieldData = fieldMetaData.map(({ mediaStorageProvider, identifier, ...rest }: any) => {\n if (rest.mediaMaxSizeKb) {\n rest.mediaMaxSizeKb = rest.mediaMaxSizeKb ? rest.mediaMaxSizeKb * 1024 : 0\n }\n return rest\n });\n const { module, parentModel, ...modelData } = modelMetaData;\n const data = { ...modelData, displayName: modelData.displayName.trim(), fields: fieldData, ...legacyTableConfig };\n createModel(data);\n if (isCreateModelSuccess) {\n\n }\n }\n }\n };\n\n const deleteModelFunction = async () => {\n deleteModel(data?.id);\n }\n\n useEffect(() => {\n if (isCreateModelSuccess == true || isUpdatedModelSuceess == true || isDeleteModelSuceess == true) {\n // router.push(`/admin/app-builder/model/all`);\n router.back();\n }\n }, [isCreateModelSuccess, isUpdatedModelSuceess, isDeleteModelSuceess])\n\n const showError = async (errors: any) => {\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.map(String).join(', '), life: 3000 }));\n }\n };\n\n const isFetchBaseQueryErrorWithErrorResponse = (error: any): error is FetchBaseQueryError & { data: ErrorResponseData } => {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n // const handleError = (errorToast: any) => {\n // let errorMessage: any = ['An error occurred'];\n\n // if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n // errorMessage = errorToast.data.message;\n // } else {\n // errorMessage = ['Something went wrong'];\n // }\n\n // toast?.current?.show({\n // severity: 'error',\n // summary: 'Error',\n // detail: errorMessage,\n // life: 3000,\n // //@ts-ignore\n // content: (props) => (\n // <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n // {Array.isArray(errorMessage) ? (\n // errorMessage.map((message, index) => (\n // <div className=\"flex align-items-center gap-2\" key={index}>\n // <span className=\"font-bold text-900\">{message.trim()}</span>\n // </div>\n // ))\n // ) : (\n // <div className=\"flex align-items-center gap-2\">\n // <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n // </div>\n // )}\n // </div>\n // ),\n // });\n // };\n\n\n // Error Handler \n // Added useEffect to remove active tab class border color if error is there.\n\n useEffect(() => {\n const errors = [\n { isError: isCreateModelError, error: createModelError },\n { isError: isDeleteModelError, error: deleteModelError },\n { isError: isUpdateModelError, error: updateModelError },\n ];\n if (errors.length > 0) {\n // Handle any error\n errors.forEach(({ isError, error }) => {\n if (isError && error) {\n const errorMessage = error && typeof error === 'object' && 'data' in error && 'message' in (error as any).data\n ? (error as any).data.message\n : 'Something went wrong';\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : String(errorMessage);\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n }\n });\n }\n\n }, [isCreateModelError, isDeleteModelError, isUpdateModelError])\n const [formActionsMenuOpen, setFormActionsMenuOpen] = useState(false);\n const formActionDropdown = () => (\n <SolidPopover open={formActionsMenuOpen} onOpenChange={setFormActionsMenuOpen}>\n <SolidPopoverTrigger asChild>\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n aria-label=\"Model actions\"\n >\n <Settings size={16} />\n </SolidButton>\n </SolidPopoverTrigger>\n <SolidPopoverContent\n side=\"bottom\"\n align=\"end\"\n className=\"solid-form-actions-popover\"\n onClick={(event) => event.stopPropagation()}\n >\n <button\n type=\"button\"\n className=\"solid-row-action-button solid-row-action-button-danger\"\n onClick={() => {\n setFormActionsMenuOpen(false);\n setDeleteEntity(true);\n }}\n >\n <Trash2 size={14} className=\"solid-row-action-button-icon\" />\n <span className=\"solid-row-action-button-label\">Delete</span>\n </button>\n </SolidPopoverContent>\n </SolidPopover>\n );\n\n const [isDirty, setIsDirty] = useState(false);\n const isCreateMode = params.id === \"new\";\n const headerTitleBase = isCreateMode ? \"Create Model\" : \"Edit Model\";\n const headerTitle = `${headerTitleBase}${modelMetaData?.displayName ? ` - ${modelMetaData.displayName}` : \"\"}`;\n const canShowActionsMenu = !isCreateMode && data?.isSystem !== true;\n const handleCancel = () => router.back();\n\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >\n <div>\n <div className=\"solid-form-header flex align-items-center justify-content-between gap-3 flex-wrap\">\n <div className=\"flex flex-column gap-1\">\n {/* <span className=\"text-sm text-color-secondary uppercase tracking-wider\">Model</span>\n <div className=\"form-wrapper-title solid-long-text-wrapper m-0\">{headerTitle}</div> */}\n </div>\n <div className=\"flex align-items-center gap-2\">\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n onClick={handleCancel}\n className=\"bg-primary-reverse\"\n >\n Cancel\n </SolidButton>\n {isDirty && (\n <SolidButton size=\"sm\" type=\"button\" onClick={handleSubmit}>\n Save\n </SolidButton>\n )}\n {canShowActionsMenu && formActionDropdown()}\n </div>\n </div>\n {/* <SolidFormHeader /> */}\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n <SolidTabGroup\n className=\"relative\"\n panelClassName=\"px-0\"\n tabs={[\n {\n value: \"model\",\n label: <span className={tabErrors.model ? \"tab-error-heading\" : \"\"}>Model</span>,\n content: (\n <ModelMetaData\n modelMetaData={modelMetaData}\n setModelMetaData={setModelMetaData}\n allModelsNames={allModelsNames}\n deleteModelFunction={deleteModelFunction}\n nextTab={nextTab}\n formikModelMetadataRef={formikModelMetadataRef}\n params={params}\n formErrors={formErrors}\n setIsDirty={setIsDirty}\n ></ModelMetaData>\n ),\n },\n {\n value: \"fields\",\n label: <span className={tabErrors.fields ? \"tab-error-heading\" : \"\"}>Fields</span>,\n content: (\n <FieldMetaData\n modelMetaData={modelMetaData}\n fieldMetaData={fieldMetaData}\n setFieldMetaData={setFieldMetaData}\n deleteModelFunction={deleteModelFunction}\n nextTab={nextTab}\n formikFieldsMetadataRef={formikFieldsMetadataRef}\n params={params}\n setIsDirty={setIsDirty}\n ></FieldMetaData>\n ),\n },\n ]}\n value={activeTab}\n onValueChange={(value) => {\n const next = TABS.find((tab) => tab === value);\n if (next) {\n handleTabChange(next);\n }\n }}\n />\n </div>\n </div>\n <SolidFormFooter params={params}></SolidFormFooter>\n\n </div>\n {/* <div style={{ width: '22.5%' }}></div> */}\n <SolidDialog header=\"Delete Model\" headerClassName=\"py-2\" className=\"solid-confirm-dialog\" contentClassName=\"px-0 pb-0\" visible={deleteEntity} style={{ width: '20vw' }} onHide={() => { if (!deleteEntity) return; setDeleteEntity(false); }}>\n <SolidDivider className=\"m-0\" />\n <div className=\"p-4\">\n <p className=\"m-0 solid-primary-title\" style={{ fontSize: 16 }}>\n Are you sure you want to delete this Model?\n </p>\n <p className=\"\" style={{ color: 'var{--solid-grey-500}' }}>{modelMetaData?.singularName}</p>\n <div className=\"flex align-items-center gap-2 mt-3\">\n <SolidButton size=\"sm\" onClick={deleteModelFunction}>\n Delete\n </SolidButton>\n <SolidButton size=\"sm\" variant=\"outline\" onClick={() => setDeleteEntity(false)}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </SolidDialog>\n\n </div>\n );\n};\n\nexport default CreateModel;\n"]}
@@ -89,10 +89,10 @@ const CreateModel = ({ data, params }: any) => {
89
89
 
90
90
  useEffect(() => {
91
91
  if (data) {
92
- const isLegacyTable = data.isLegacyTableWithId || data.isLegacyTable
93
- const isLegacyTableWithId = data.isLegacyTable;
92
+ const isLegacyTable = data.legacyTableType !== 'none'
93
+ const hasExistingId = data.legacyTableType === 'existing_id'
94
94
  const modelData = {
95
- ...data, moduleId: data?.module?.id, parentModelId: data?.parentModel, isLegacyTable, isLegacyTableWithId
95
+ ...data, moduleId: data?.module?.id, parentModelId: data?.parentModel, isLegacyTable, hasExistingId
96
96
  }
97
97
 
98
98
  setIsLoadingData(false);
@@ -194,27 +194,15 @@ const CreateModel = ({ data, params }: any) => {
194
194
 
195
195
  let legacyTableConfig = {};
196
196
 
197
- if (modelMetaData?.isLegacyTable && modelMetaData?.isLegacyTableWithId) {
198
- // UI: Both checked → Backend: both true
199
- legacyTableConfig = {
200
- isLegacyTable: true,
201
- isLegacyTableWithId: false
202
- };
203
- } else if (modelMetaData?.isLegacyTable && !modelMetaData?.isLegacyTableWithId) {
204
- // UI: Only isLegacyTable checked → Backend: only isLegacyTableWithId true
205
- legacyTableConfig = {
206
- isLegacyTable: false,
207
- isLegacyTableWithId: true
208
- };
209
- } else {
210
- // UI: Neither checked → Backend: both false
211
- legacyTableConfig = {
212
- isLegacyTable: false,
213
- isLegacyTableWithId: false
214
- };
197
+ let legacyTableType = 'none';
198
+ if (modelMetaData?.isLegacyTable && modelMetaData?.hasExistingId) {
199
+ legacyTableType = 'existing_id';
200
+ } else if (modelMetaData?.isLegacyTable) {
201
+ legacyTableType = 'generated_id';
215
202
  }
203
+ legacyTableConfig = { legacyTableType };
216
204
 
217
- if (modelMetaData?.isLegacyTable || modelMetaData?.isLegacyTableWithId) {
205
+ if (modelMetaData?.isLegacyTable) {
218
206
  const hasPrimaryKey = fieldMetaData.some(
219
207
  (field: any) => field.isPrimaryKey === true
220
208
  );
@@ -1622,7 +1622,7 @@ var FieldMetaDataForm = function (_a) {
1622
1622
  formik.setFieldValue("enableAuditTracking", event.currentTarget.checked);
1623
1623
  }, checked: formik.values.enableAuditTracking }), _jsx("label", { htmlFor: "enableAuditTracking", className: classNames("form-field-label", styles.fieldLabel), children: "Enable Audit Tracking" })] }), _jsx("p", { className: "fieldSubTitle", children: "By selecting this option, you are setting audit trail for this field." }), isFormFieldValid(formik, "enableAuditTracking") && (_jsx("p", { className: styles.fieldError, children: (_74 = (_73 = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _73 === void 0 ? void 0 : _73.enableAuditTracking) === null || _74 === void 0 ? void 0 : _74.toString() }))] })), currentFields.includes("isUserKey") && formik.values.unique && (_jsxs("div", { className: "field col-6 flex-flex-column gap-2 mt-2", children: [_jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(SolidCheckbox, { id: "isUserKey", name: "isUserKey", onChange: function (event) {
1624
1624
  formik.setFieldValue("isUserKey", event.currentTarget.checked);
1625
- }, checked: formik.values.isUserKey }), _jsx("label", { htmlFor: "isUserKey", className: classNames("form-field-label", styles.fieldLabel), children: "Is Userkey" })] }), _jsx("p", { className: "fieldSubTitle", children: "By selecting this option, you are setting this field as the model's user key. Any existing user key configuration will be overwritten" }), isFormFieldValid(formik, "isUserKey") && (_jsx("p", { className: styles.fieldError, children: (_76 = (_75 = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _75 === void 0 ? void 0 : _75.isUserKey) === null || _76 === void 0 ? void 0 : _76.toString() }))] })), currentFields.includes("isPrimaryKey") && ((modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTable) || (modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTableWithId)) && (_jsxs("div", { className: "field col-6 flex-flex-column gap-2 mt-2", children: [_jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(SolidCheckbox, { id: "isPrimaryKey", name: "isPrimaryKey", onChange: function (event) {
1625
+ }, checked: formik.values.isUserKey }), _jsx("label", { htmlFor: "isUserKey", className: classNames("form-field-label", styles.fieldLabel), children: "Is Userkey" })] }), _jsx("p", { className: "fieldSubTitle", children: "By selecting this option, you are setting this field as the model's user key. Any existing user key configuration will be overwritten" }), isFormFieldValid(formik, "isUserKey") && (_jsx("p", { className: styles.fieldError, children: (_76 = (_75 = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _75 === void 0 ? void 0 : _75.isUserKey) === null || _76 === void 0 ? void 0 : _76.toString() }))] })), currentFields.includes("isPrimaryKey") && (modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.isLegacyTable) && (_jsxs("div", { className: "field col-6 flex-flex-column gap-2 mt-2", children: [_jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(SolidCheckbox, { id: "isPrimaryKey", name: "isPrimaryKey", onChange: function (event) {
1626
1626
  var checked = event.currentTarget.checked;
1627
1627
  formik.setFieldValue("isPrimaryKey", checked);
1628
1628
  // Auto-set required and unique when isPrimaryKey is checked