@solidxai/core-ui 0.1.12-beta.1 → 0.1.12-beta.3

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 (157) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +15 -19
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +26 -20
  5. package/dist/components/common/BackButton.js +1 -1
  6. package/dist/components/common/BackButton.js.map +1 -1
  7. package/dist/components/common/BackButton.tsx +1 -1
  8. package/dist/components/common/CancelButton.js +1 -1
  9. package/dist/components/common/CancelButton.js.map +1 -1
  10. package/dist/components/common/CancelButton.tsx +1 -1
  11. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  12. package/dist/components/common/GeneralSettings.js +6 -33
  13. package/dist/components/common/GeneralSettings.js.map +1 -1
  14. package/dist/components/common/GeneralSettings.tsx +20 -57
  15. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  16. package/dist/components/common/SettingsComponent.js +1 -9
  17. package/dist/components/common/SettingsComponent.js.map +1 -1
  18. package/dist/components/common/SettingsComponent.tsx +1 -8
  19. package/dist/components/common/SolidBreadcrumb.js +1 -1
  20. package/dist/components/common/SolidBreadcrumb.js.map +1 -1
  21. package/dist/components/common/SolidBreadcrumb.tsx +2 -2
  22. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -1
  23. package/dist/components/common/SolidFaviconProvider.js +1 -8
  24. package/dist/components/common/SolidFaviconProvider.js.map +1 -1
  25. package/dist/components/common/SolidFaviconProvider.tsx +1 -7
  26. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  27. package/dist/components/core/card/CardItem.js +3 -4
  28. package/dist/components/core/card/CardItem.js.map +1 -1
  29. package/dist/components/core/card/CardItem.tsx +3 -4
  30. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  31. package/dist/components/core/card/SolidCardView.js +6 -1
  32. package/dist/components/core/card/SolidCardView.js.map +1 -1
  33. package/dist/components/core/card/SolidCardView.tsx +6 -1
  34. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  35. package/dist/components/core/card/SolidCardViewConfigure.js +4 -1
  36. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  37. package/dist/components/core/card/SolidCardViewConfigure.tsx +4 -1
  38. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  39. package/dist/components/core/common/SolidCreateButton.js +2 -13
  40. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  41. package/dist/components/core/common/SolidCreateButton.tsx +2 -15
  42. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  43. package/dist/components/core/common/SolidGlobalSearchElement.js +34 -15
  44. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  45. package/dist/components/core/common/SolidGlobalSearchElement.tsx +37 -17
  46. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +15 -13
  47. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
  48. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +4 -4
  49. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +6 -5
  50. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
  51. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +1 -1
  52. package/dist/components/core/form/SolidFormFooter.d.ts +2 -1
  53. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  54. package/dist/components/core/form/SolidFormFooter.js +48 -14
  55. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  56. package/dist/components/core/form/SolidFormFooter.tsx +50 -4
  57. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  58. package/dist/components/core/form/SolidFormView.js +52 -50
  59. package/dist/components/core/form/SolidFormView.js.map +1 -1
  60. package/dist/components/core/form/SolidFormView.tsx +16 -9
  61. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  62. package/dist/components/core/kanban/KanbanCard.js +2 -10
  63. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  64. package/dist/components/core/kanban/KanbanCard.tsx +2 -10
  65. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  66. package/dist/components/core/kanban/SolidKanbanView.js +11 -4
  67. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  68. package/dist/components/core/kanban/SolidKanbanView.tsx +13 -5
  69. package/dist/components/core/list/SolidListView.d.ts +2 -0
  70. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  71. package/dist/components/core/list/SolidListView.js +195 -111
  72. package/dist/components/core/list/SolidListView.js.map +1 -1
  73. package/dist/components/core/list/SolidListView.tsx +136 -39
  74. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  75. package/dist/components/core/list/SolidListViewConfigure.js +2 -0
  76. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  77. package/dist/components/core/list/SolidListViewConfigure.tsx +2 -0
  78. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  79. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +16 -19
  80. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  81. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +16 -22
  82. package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
  83. package/dist/components/core/locales/SolidChatterLocaleTabView.js +9 -8
  84. package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
  85. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +4 -1
  86. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  87. package/dist/components/core/locales/SolidLocale.js +1 -2
  88. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  89. package/dist/components/core/locales/SolidLocale.tsx +1 -2
  90. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  91. package/dist/components/core/model/CreateModel.js +1 -1
  92. package/dist/components/core/model/CreateModel.js.map +1 -1
  93. package/dist/components/core/model/CreateModel.tsx +0 -1
  94. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  95. package/dist/components/core/model/ModelMetaData.js +1 -2
  96. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  97. package/dist/components/core/model/ModelMetaData.tsx +1 -3
  98. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  99. package/dist/components/core/tree/SolidTreeView.js +47 -26
  100. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  101. package/dist/components/core/tree/SolidTreeView.tsx +55 -23
  102. package/dist/components/layout/AdminTopHeader.js +2 -3
  103. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  104. package/dist/components/layout/AdminTopHeader.tsx +2 -2
  105. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  106. package/dist/components/layout/AppSidebar.js +5 -2
  107. package/dist/components/layout/AppSidebar.js.map +1 -1
  108. package/dist/components/layout/AppSidebar.tsx +7 -4
  109. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  110. package/dist/components/layout/navbar-two-menu.js +6 -4
  111. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  112. package/dist/components/layout/navbar-two-menu.tsx +4 -2
  113. package/dist/constants/error-messages.d.ts +1 -0
  114. package/dist/constants/error-messages.d.ts.map +1 -1
  115. package/dist/constants/error-messages.js +1 -0
  116. package/dist/constants/error-messages.js.map +1 -1
  117. package/dist/constants/error-messages.ts +1 -0
  118. package/dist/helpers/assetUrl.d.ts +3 -0
  119. package/dist/helpers/assetUrl.d.ts.map +1 -0
  120. package/dist/helpers/assetUrl.js +22 -0
  121. package/dist/helpers/assetUrl.js.map +1 -0
  122. package/dist/helpers/assetUrl.ts +26 -0
  123. package/dist/helpers/modelViewPersistence.d.ts +5 -0
  124. package/dist/helpers/modelViewPersistence.d.ts.map +1 -0
  125. package/dist/helpers/modelViewPersistence.js +168 -0
  126. package/dist/helpers/modelViewPersistence.js.map +1 -0
  127. package/dist/helpers/modelViewPersistence.ts +201 -0
  128. package/dist/helpers/routePaths.d.ts +6 -0
  129. package/dist/helpers/routePaths.d.ts.map +1 -1
  130. package/dist/helpers/routePaths.js +13 -0
  131. package/dist/helpers/routePaths.js.map +1 -1
  132. package/dist/helpers/routePaths.ts +25 -0
  133. package/dist/redux/api/solidServiceApi.d.ts +10 -2
  134. package/dist/redux/api/solidServiceApi.d.ts.map +1 -1
  135. package/dist/redux/api/solidServiceApi.js +2 -4
  136. package/dist/redux/api/solidServiceApi.js.map +1 -1
  137. package/dist/redux/api/solidServiceApi.ts +4 -6
  138. package/dist/redux/store/defaultStoreConfig.d.ts +5 -1
  139. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  140. package/dist/resources/solid-custom.css +3 -0
  141. package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
  142. package/dist/routes/pages/admin/core/CardPage.js +11 -0
  143. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  144. package/dist/routes/pages/admin/core/CardPage.tsx +13 -0
  145. package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
  146. package/dist/routes/pages/admin/core/KanbanPage.js +11 -0
  147. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  148. package/dist/routes/pages/admin/core/KanbanPage.tsx +13 -0
  149. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  150. package/dist/routes/pages/admin/core/ListPage.js +25 -2
  151. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  152. package/dist/routes/pages/admin/core/ListPage.tsx +29 -2
  153. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -1
  154. package/dist/routes/pages/admin/core/TreePage.js +10 -2
  155. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  156. package/dist/routes/pages/admin/core/TreePage.tsx +11 -2
  157. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToOneColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,IAAM,4BAA4B,GAAG,UAAC,EAAoF;;QAAlF,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA;IAEzF,IAAM,MAAM,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAE/D,OAAO,CACH,KAAC,MAAM,IAEH,KAAK,EAAE,aAAa,CAAC,IAAI,EACzB,MAAM,EAAE,MAAM;QACd,sBAAsB;QACtB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC/B,IAAI,EAAE,UAAC,OAAO;YACV,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,oCAAoC,CAAC;aACrD;YACD,IAAI,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAM,WAAW,GAA8B;gBAC3C,OAAO,SAAA;gBACP,qBAAqB,uBAAA;gBACrB,aAAa,eAAA;gBACb,MAAM,QAAA;gBACN,OAAO,SAAA;aACV,CAAA;YACD,OAAO,CACH,4BACK,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GACrD,CACN,CAAA;QACL,CAAC,EAED,iBAAiB,EAAE,oBAAa,aAAa,CAAC,WAAW,CAAE,EAC3D,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC5B,eAAe,EAAC,iBAAiB,IA3B5B,aAAa,CAAC,IAAI,CA4BjB,CACb,CAAC;AAEN,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC;AAG5C,MAAM,CAAC,IAAM,kCAAkC,GAAG,UAAC,EAA6F;;QAA3F,OAAO,aAAA,EAAE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA;IAC/G,IAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,+DAA+D;IAC/D,IAAI,kBAAkB,EAAE;QACpB,0FAA0F;QAC1F,IAAM,YAAY,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,qBAAqB,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,qBAAqB,CAAC,CAAC,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,CAAC;QAEpJ,IAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAEzD,IAAM,UAAU,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,MAAK,IAAI,CAAC;QAEpD,IAAI,OAAO,KAAK,IAAI,IAAI,UAAU,EAAE;YAChC,OAAO,CACH,eAAM,SAAS,EAAC,+BAA+B,YAC1C,eAAe,GACb,CACV,CAAC;SACL;QAED,OAAO,CACH,kBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0BAA0B,EACpC,OAAO,EAAE;;gBACL,IAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEzE,IAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAEnD,IAAI,SAAS,GAAG,CAAC,EAAE;oBACf,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,CAAC,CAAC;oBACpF,YAAY,CAAC,SAAS,CAAC,GAAG,eAAQ,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,EAAE,CAAE,CAAC;iBAC9D;qBACI,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE;oBACvD,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,CAAC,CAAC;oBAC9F,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;oBAC/C,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,EAAE,CAAC;iBAClE;gBAED,IAAM,OAAO,GAAG,WAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAgB,CAAC;gBAE3D,kBAAkB;gBAClB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEnC,CAAC,aAED,eAAM,SAAS,EAAC,+BAA+B,YAAE,eAAe,GAAQ,EACxE,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,+BAA+B,GAAG,IAC/E,CACZ,CAAC;KACL;SACI;QACD,OAAO,gBAAa,CAAA;KACvB;AACL,CAAC,CAAC","sourcesContent":["\nimport { Column } from \"../../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { kebabCase } from 'lodash';\nimport { ExternalLink } from \"lucide-react\";\n\nconst SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column, embeded }: SolidListViewColumnParams) => {\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n embeded\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToOneColumn;\n\n\nexport const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column, embeded }: SolidListFieldWidgetProps) => {\n const manyToOneFieldData = rowData[column.attrs.name];\n // This is the userkey that will be present within the rowData.\n if (manyToOneFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n\n const manyToOneColVal = manyToOneFieldData[userKeyField];\n\n const isDisabled = column?.attrs?.disabled === true;\n\n if (embeded === true || isDisabled) {\n return (\n <span className=\"solid-list-external-link-text\">\n {manyToOneColVal}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n className=\"solid-list-external-link\"\n onClick={() => {\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n\n const listIndex = pathSegments.lastIndexOf('list');\n\n if (listIndex > 0) {\n pathSegments[listIndex - 1] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[listIndex] = `form/${manyToOneFieldData?.id}`;\n }\n else if (pathSegments[pathSegments.length - 2] === \"form\") {\n pathSegments[pathSegments.length - 3] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[pathSegments.length - 2] = \"form\";\n pathSegments[pathSegments.length - 1] = manyToOneFieldData?.id;\n }\n\n const newPath = `/${pathSegments.join('/')}?viewMode=view`;\n\n // open in new tab\n window.open(newPath, \"_blank\");\n\n }}\n >\n <span className=\"solid-list-external-link-text\">{manyToOneColVal}</span>\n <ExternalLink size={13} strokeWidth={2} className=\"solid-list-external-link-icon\" />\n </button>\n );\n }\n else {\n return <span></span>\n }\n};\n"]}
1
+ {"version":3,"file":"SolidRelationManyToOneColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { Column } from \"../../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { buildAdminRecordFormPath } from '../../../../../helpers/routePaths';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { ExternalLink } from \"lucide-react\";\n\nconst SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column, embeded }: SolidListViewColumnParams) => {\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n embeded\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToOneColumn;\n\n\nexport const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column, embeded }: SolidListFieldWidgetProps) => {\n const manyToOneFieldData = rowData[column.attrs.name];\n // This is the userkey that will be present within the rowData.\n if (manyToOneFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n const manyToOneColVal = manyToOneFieldData[userKeyField];\n const relatedModuleName =\n fieldMetadata?.relationModelModuleName ||\n fieldMetadata?.relationModel?.module?.name ||\n solidListViewMetaData?.data?.solidView?.module?.name;\n const relatedModelName =\n fieldMetadata?.relationModel?.singularName ||\n fieldMetadata?.relationCoModelSingularName;\n const relationRecordPath = buildAdminRecordFormPath({\n moduleName: relatedModuleName,\n modelName: relatedModelName,\n recordId: manyToOneFieldData?.id,\n viewMode: \"view\",\n });\n\n const isDisabled = column?.attrs?.disabled === true;\n\n if (embeded === true || isDisabled || !relationRecordPath) {\n return (\n <span className=\"solid-list-external-link-text\">\n {manyToOneColVal}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n className=\"solid-list-external-link\"\n onClick={() => {\n window.open(relationRecordPath, \"_blank\");\n }}\n >\n <span className=\"solid-list-external-link-text\">{manyToOneColVal}</span>\n <ExternalLink size={13} strokeWidth={2} className=\"solid-list-external-link-icon\" />\n </button>\n );\n }\n else {\n return <span></span>\n }\n};\n"]}
@@ -2,8 +2,8 @@
2
2
  import { Column } from "../../SolidDataTable";
3
3
  import { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';
4
4
  import { getExtensionComponent } from '../../../../../helpers/registry';
5
+ import { buildAdminRecordFormPath } from '../../../../../helpers/routePaths';
5
6
  import { SolidListFieldWidgetProps } from '../../../../../types/solid-core';
6
- import { kebabCase } from 'lodash';
7
7
  import { ExternalLink } from "lucide-react";
8
8
 
9
9
  const SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column, embeded }: SolidListViewColumnParams) => {
@@ -54,12 +54,24 @@ export const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaD
54
54
  if (manyToOneFieldData) {
55
55
  // Since this is a many-to-one field, we fetch the user key field of the associated model.
56
56
  const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;
57
-
58
57
  const manyToOneColVal = manyToOneFieldData[userKeyField];
58
+ const relatedModuleName =
59
+ fieldMetadata?.relationModelModuleName ||
60
+ fieldMetadata?.relationModel?.module?.name ||
61
+ solidListViewMetaData?.data?.solidView?.module?.name;
62
+ const relatedModelName =
63
+ fieldMetadata?.relationModel?.singularName ||
64
+ fieldMetadata?.relationCoModelSingularName;
65
+ const relationRecordPath = buildAdminRecordFormPath({
66
+ moduleName: relatedModuleName,
67
+ modelName: relatedModelName,
68
+ recordId: manyToOneFieldData?.id,
69
+ viewMode: "view",
70
+ });
59
71
 
60
72
  const isDisabled = column?.attrs?.disabled === true;
61
73
 
62
- if (embeded === true || isDisabled) {
74
+ if (embeded === true || isDisabled || !relationRecordPath) {
63
75
  return (
64
76
  <span className="solid-list-external-link-text">
65
77
  {manyToOneColVal}
@@ -72,25 +84,7 @@ export const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaD
72
84
  type="button"
73
85
  className="solid-list-external-link"
74
86
  onClick={() => {
75
- const pathSegments = window.location.pathname.split('/').filter(Boolean);
76
-
77
- const listIndex = pathSegments.lastIndexOf('list');
78
-
79
- if (listIndex > 0) {
80
- pathSegments[listIndex - 1] = kebabCase(fieldMetadata?.relationModel?.singularName);
81
- pathSegments[listIndex] = `form/${manyToOneFieldData?.id}`;
82
- }
83
- else if (pathSegments[pathSegments.length - 2] === "form") {
84
- pathSegments[pathSegments.length - 3] = kebabCase(fieldMetadata?.relationModel?.singularName);
85
- pathSegments[pathSegments.length - 2] = "form";
86
- pathSegments[pathSegments.length - 1] = manyToOneFieldData?.id;
87
- }
88
-
89
- const newPath = `/${pathSegments.join('/')}?viewMode=view`;
90
-
91
- // open in new tab
92
- window.open(newPath, "_blank");
93
-
87
+ window.open(relationRecordPath, "_blank");
94
88
  }}
95
89
  >
96
90
  <span className="solid-list-external-link-text">{manyToOneColVal}</span>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidChatterLocaleTabView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/locales/SolidChatterLocaleTabView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAG5D,OAAO,oBAAoB,CAAC;AAG5B,UAAU,KAAK;IACb,qBAAqB,EAAE,GAAG,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB,EAAE,OAAO,CAAC;IAC/B,wBAAwB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IAEpB,0BAA0B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtG,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,GAAG,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAUD,QAAA,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA8G9C,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"SolidChatterLocaleTabView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/locales/SolidChatterLocaleTabView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAG5D,OAAO,oBAAoB,CAAC;AAG5B,UAAU,KAAK;IACb,qBAAqB,EAAE,GAAG,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB,EAAE,OAAO,CAAC;IAC/B,wBAAwB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IAEpB,0BAA0B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtG,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,GAAG,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAUD,QAAA,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiH9C,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -24,9 +24,10 @@ var mapTabIndexToValue = function (index, order) {
24
24
  return order[safeIndex];
25
25
  };
26
26
  var SolidChatterLocaleTabView = function (_a) {
27
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
27
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
28
28
  var solidFormViewMetaData = _a.solidFormViewMetaData, id = _a.id, refreshChatterMessage = _a.refreshChatterMessage, setRefreshChatterMessage = _a.setRefreshChatterMessage, selectedLocale = _a.selectedLocale, setSelectedLocale = _a.setSelectedLocale, activeTab = _a.activeTab, viewMode = _a.viewMode, createMode = _a.createMode, handleLocaleChangeRedirect = _a.handleLocaleChangeRedirect, defaultEntityLocaleId = _a.defaultEntityLocaleId, solidFormViewData = _a.solidFormViewData, published = _a.published, actionsAllowed = _a.actionsAllowed, mcpUrl = _a.mcpUrl;
29
- var showWorkflowInfo = Boolean((_d = (_c = (_b = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _b === void 0 ? void 0 : _b.solidView) === null || _c === void 0 ? void 0 : _c.model) === null || _d === void 0 ? void 0 : _d.draftPublishWorkflow);
29
+ var showWorkflowInfo = Boolean(((_d = (_c = (_b = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _b === void 0 ? void 0 : _b.solidView) === null || _c === void 0 ? void 0 : _c.model) === null || _d === void 0 ? void 0 : _d.draftPublishWorkflow)
30
+ || ((_g = (_f = (_e = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _e === void 0 ? void 0 : _e.solidView) === null || _f === void 0 ? void 0 : _f.model) === null || _g === void 0 ? void 0 : _g.internationalisation));
30
31
  var tabOrder = useMemo(function () {
31
32
  var order = [];
32
33
  if (showWorkflowInfo) {
@@ -35,9 +36,9 @@ var SolidChatterLocaleTabView = function (_a) {
35
36
  order.push('audit');
36
37
  return order;
37
38
  }, [showWorkflowInfo]);
38
- var _s = useState(function () { return mapTabIndexToValue(activeTab, tabOrder); }), activeTabValue = _s[0], setActiveTabValue = _s[1];
39
- var userKeyFieldName = (_h = (_g = (_f = (_e = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _e === void 0 ? void 0 : _e.solidView) === null || _f === void 0 ? void 0 : _f.model) === null || _g === void 0 ? void 0 : _g.userKeyField) === null || _h === void 0 ? void 0 : _h.name;
40
- var modelUserKeyValue = (_j = solidFormViewData === null || solidFormViewData === void 0 ? void 0 : solidFormViewData.data) === null || _j === void 0 ? void 0 : _j[userKeyFieldName];
39
+ var _v = useState(function () { return mapTabIndexToValue(activeTab, tabOrder); }), activeTabValue = _v[0], setActiveTabValue = _v[1];
40
+ var userKeyFieldName = (_l = (_k = (_j = (_h = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _h === void 0 ? void 0 : _h.solidView) === null || _j === void 0 ? void 0 : _j.model) === null || _k === void 0 ? void 0 : _k.userKeyField) === null || _l === void 0 ? void 0 : _l.name;
41
+ var modelUserKeyValue = (_m = solidFormViewData === null || solidFormViewData === void 0 ? void 0 : solidFormViewData.data) === null || _m === void 0 ? void 0 : _m[userKeyFieldName];
41
42
  useEffect(function () {
42
43
  var nextValue = mapTabIndexToValue(activeTab, tabOrder);
43
44
  setActiveTabValue(function (prev) { return (prev === nextValue ? prev : nextValue); });
@@ -46,17 +47,17 @@ var SolidChatterLocaleTabView = function (_a) {
46
47
  ? [{
47
48
  value: 'info',
48
49
  label: 'Info',
49
- content: (_jsx("div", { className: "solid-locale-tab-content solid-locale-tab-content--padded", children: _jsx(SolidLocale, { setSelectedLocale: setSelectedLocale, solidFormViewMetaData: solidFormViewMetaData, selectedLocale: selectedLocale, id: id, viewMode: viewMode, createMode: createMode, handleLocaleChangeRedirect: handleLocaleChangeRedirect, defaultEntityLocaleId: defaultEntityLocaleId, applicableLocales: (_k = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _k === void 0 ? void 0 : _k.applicableLocales, solidFormViewData: solidFormViewData, published: published }) }))
50
+ content: (_jsx("div", { className: "solid-locale-tab-content solid-locale-tab-content--padded", children: _jsx(SolidLocale, { setSelectedLocale: setSelectedLocale, solidFormViewMetaData: solidFormViewMetaData, selectedLocale: selectedLocale, id: id, viewMode: viewMode, createMode: createMode, handleLocaleChangeRedirect: handleLocaleChangeRedirect, defaultEntityLocaleId: defaultEntityLocaleId, applicableLocales: (_o = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _o === void 0 ? void 0 : _o.applicableLocales, solidFormViewData: solidFormViewData, published: published }) }))
50
51
  }]
51
52
  : []), true), [
52
53
  {
53
54
  value: 'audit',
54
55
  label: 'Audit Trail',
55
- content: (_jsx("div", { className: "solid-locale-tab-content", children: _jsx(SolidChatter, { modelSingularName: (_o = (_m = (_l = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _l === void 0 ? void 0 : _l.solidView) === null || _m === void 0 ? void 0 : _m.model) === null || _o === void 0 ? void 0 : _o.singularName, id: id, refreshChatterMessage: refreshChatterMessage, setRefreshChatterMessage: setRefreshChatterMessage, actionsAllowed: actionsAllowed, title: showWorkflowInfo ? undefined : 'Audit Trail', modelUserKey: modelUserKeyValue }) }))
56
+ content: (_jsx("div", { className: "solid-locale-tab-content", children: _jsx(SolidChatter, { modelSingularName: (_r = (_q = (_p = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _p === void 0 ? void 0 : _p.solidView) === null || _q === void 0 ? void 0 : _q.model) === null || _r === void 0 ? void 0 : _r.singularName, id: id, refreshChatterMessage: refreshChatterMessage, setRefreshChatterMessage: setRefreshChatterMessage, actionsAllowed: actionsAllowed, title: showWorkflowInfo ? undefined : 'Audit Trail', modelUserKey: modelUserKeyValue }) }))
56
57
  }
57
58
  ], false);
58
59
  if (!showWorkflowInfo) {
59
- return (_jsx("div", { className: "solid-locale-panel solid-locale-panel--single", children: _jsx("div", { className: "solid-locale-tab-content", children: _jsx(SolidChatter, { modelSingularName: (_r = (_q = (_p = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _p === void 0 ? void 0 : _p.solidView) === null || _q === void 0 ? void 0 : _q.model) === null || _r === void 0 ? void 0 : _r.singularName, id: id, refreshChatterMessage: refreshChatterMessage, setRefreshChatterMessage: setRefreshChatterMessage, actionsAllowed: actionsAllowed, title: "Audit Trail" }) }) }));
60
+ return (_jsx("div", { className: "solid-locale-panel solid-locale-panel--single", children: _jsx("div", { className: "solid-locale-tab-content", children: _jsx(SolidChatter, { modelSingularName: (_u = (_t = (_s = solidFormViewMetaData === null || solidFormViewMetaData === void 0 ? void 0 : solidFormViewMetaData.data) === null || _s === void 0 ? void 0 : _s.solidView) === null || _t === void 0 ? void 0 : _t.model) === null || _u === void 0 ? void 0 : _u.singularName, id: id, refreshChatterMessage: refreshChatterMessage, setRefreshChatterMessage: setRefreshChatterMessage, actionsAllowed: actionsAllowed, title: "Audit Trail" }) }) }));
60
61
  }
61
62
  return (_jsx("div", { className: "solid-locale-panel", children: _jsx(SolidTabGroup, { className: "solid-locale-tabs h-full", listClassName: "solid-locale-tabs-list", panelClassName: "solid-locale-tabs-panel", tabs: tabs, value: activeTabValue, onValueChange: setActiveTabValue, tabPosition: 'left' }) }));
62
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SolidChatterLocaleTabView.js","sourceRoot":"","sources":["../../../../src/components/core/locales/SolidChatterLocaleTabView.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { SolidChatter } from '../chatter/SolidChatter';\nimport SolidLocale from './SolidLocale';\nimport './solid-locale.css';\nimport { SolidTabGroup } from '../../shad-cn-ui';\n// import { SolidAiMainWrapper } from '../solid-ai/SolidAiMainWrapper'; // moved to SolidX Studio panel\ninterface Props {\n solidFormViewMetaData: any;\n id: string;\n refreshChatterMessage: boolean;\n setRefreshChatterMessage: (value: boolean) => void;\n activeTab: number;\n selectedLocale: string | null;\n setSelectedLocale: (locale: string | null) => void;\n viewMode: string;\n createMode: boolean;\n //setDefaultLocaleId: (localeId: string) => void;\n handleLocaleChangeRedirect: (locale: string, defaultEntityLocaleId: string, viewMode: string) => void;\n defaultEntityLocaleId: string | null;\n solidFormViewData: any;\n published: string | null;\n actionsAllowed?: string[];\n mcpUrl?: string | null;\n}\n\nconst mapTabIndexToValue = (index: number, order: string[]) => {\n if (!order.length) return '';\n const safeIndex = Number.isFinite(index) ? index : 0;\n if (safeIndex <= 0) return order[0];\n if (safeIndex >= order.length) return order[order.length - 1];\n return order[safeIndex];\n};\n\nconst SolidChatterLocaleTabView: React.FC<Props> = ({\n solidFormViewMetaData,\n id,\n refreshChatterMessage,\n setRefreshChatterMessage,\n selectedLocale,\n setSelectedLocale,\n activeTab,\n viewMode,\n createMode,\n handleLocaleChangeRedirect,\n defaultEntityLocaleId,\n solidFormViewData,\n published,\n actionsAllowed,\n mcpUrl,\n}) => {\n const showWorkflowInfo = Boolean(solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow);\n\n const tabOrder = useMemo(() => {\n const order: string[] = [];\n if (showWorkflowInfo) {\n order.push('info');\n }\n order.push('audit');\n return order;\n }, [showWorkflowInfo]);\n\n const [activeTabValue, setActiveTabValue] = useState<string>(() => mapTabIndexToValue(activeTab, tabOrder));\n const userKeyFieldName = solidFormViewMetaData?.data?.solidView?.model?.userKeyField?.name;\n const modelUserKeyValue = solidFormViewData?.data?.[userKeyFieldName];\n\n useEffect(() => {\n const nextValue = mapTabIndexToValue(activeTab, tabOrder);\n setActiveTabValue((prev) => (prev === nextValue ? prev : nextValue));\n }, [activeTab, tabOrder]);\n\n const tabs: { value: string; label: React.ReactNode; content: React.ReactNode; }[] = [\n ...(showWorkflowInfo\n ? [{\n value: 'info',\n label: 'Info',\n content: (\n <div className=\"solid-locale-tab-content solid-locale-tab-content--padded\">\n <SolidLocale\n setSelectedLocale={setSelectedLocale}\n solidFormViewMetaData={solidFormViewMetaData}\n selectedLocale={selectedLocale}\n id={id}\n viewMode={viewMode}\n createMode={createMode}\n handleLocaleChangeRedirect={handleLocaleChangeRedirect}\n defaultEntityLocaleId={defaultEntityLocaleId}\n applicableLocales={solidFormViewMetaData?.data?.applicableLocales}\n solidFormViewData={solidFormViewData}\n published={published}\n />\n </div>\n )\n }]\n : []),\n {\n value: 'audit',\n label: 'Audit Trail',\n content: (\n <div className=\"solid-locale-tab-content\">\n <SolidChatter\n modelSingularName={solidFormViewMetaData?.data?.solidView?.model?.singularName}\n id={id}\n refreshChatterMessage={refreshChatterMessage}\n setRefreshChatterMessage={setRefreshChatterMessage}\n actionsAllowed={actionsAllowed}\n title={showWorkflowInfo ? undefined : 'Audit Trail'}\n modelUserKey={modelUserKeyValue}\n />\n </div>\n )\n }\n ];\n\n if (!showWorkflowInfo) {\n return (\n <div className=\"solid-locale-panel solid-locale-panel--single\">\n <div className=\"solid-locale-tab-content\">\n <SolidChatter\n modelSingularName={solidFormViewMetaData?.data?.solidView?.model?.singularName}\n id={id}\n refreshChatterMessage={refreshChatterMessage}\n setRefreshChatterMessage={setRefreshChatterMessage}\n actionsAllowed={actionsAllowed}\n title=\"Audit Trail\"\n />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"solid-locale-panel\">\n <SolidTabGroup\n className=\"solid-locale-tabs h-full\"\n listClassName=\"solid-locale-tabs-list\"\n panelClassName=\"solid-locale-tabs-panel\"\n tabs={tabs}\n value={activeTabValue}\n onValueChange={setActiveTabValue}\n tabPosition='left'\n />\n </div>\n );\n};\n\nexport default SolidChatterLocaleTabView;\n"]}
1
+ {"version":3,"file":"SolidChatterLocaleTabView.js","sourceRoot":"","sources":["../../../../src/components/core/locales/SolidChatterLocaleTabView.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { SolidChatter } from '../chatter/SolidChatter';\nimport SolidLocale from './SolidLocale';\nimport './solid-locale.css';\nimport { SolidTabGroup } from '../../shad-cn-ui';\n// import { SolidAiMainWrapper } from '../solid-ai/SolidAiMainWrapper'; // moved to SolidX Studio panel\ninterface Props {\n solidFormViewMetaData: any;\n id: string;\n refreshChatterMessage: boolean;\n setRefreshChatterMessage: (value: boolean) => void;\n activeTab: number;\n selectedLocale: string | null;\n setSelectedLocale: (locale: string | null) => void;\n viewMode: string;\n createMode: boolean;\n //setDefaultLocaleId: (localeId: string) => void;\n handleLocaleChangeRedirect: (locale: string, defaultEntityLocaleId: string, viewMode: string) => void;\n defaultEntityLocaleId: string | null;\n solidFormViewData: any;\n published: string | null;\n actionsAllowed?: string[];\n mcpUrl?: string | null;\n}\n\nconst mapTabIndexToValue = (index: number, order: string[]) => {\n if (!order.length) return '';\n const safeIndex = Number.isFinite(index) ? index : 0;\n if (safeIndex <= 0) return order[0];\n if (safeIndex >= order.length) return order[order.length - 1];\n return order[safeIndex];\n};\n\nconst SolidChatterLocaleTabView: React.FC<Props> = ({\n solidFormViewMetaData,\n id,\n refreshChatterMessage,\n setRefreshChatterMessage,\n selectedLocale,\n setSelectedLocale,\n activeTab,\n viewMode,\n createMode,\n handleLocaleChangeRedirect,\n defaultEntityLocaleId,\n solidFormViewData,\n published,\n actionsAllowed,\n mcpUrl,\n}) => {\n const showWorkflowInfo = Boolean(\n solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow\n || solidFormViewMetaData?.data?.solidView?.model?.internationalisation\n );\n\n const tabOrder = useMemo(() => {\n const order: string[] = [];\n if (showWorkflowInfo) {\n order.push('info');\n }\n order.push('audit');\n return order;\n }, [showWorkflowInfo]);\n\n const [activeTabValue, setActiveTabValue] = useState<string>(() => mapTabIndexToValue(activeTab, tabOrder));\n const userKeyFieldName = solidFormViewMetaData?.data?.solidView?.model?.userKeyField?.name;\n const modelUserKeyValue = solidFormViewData?.data?.[userKeyFieldName];\n\n useEffect(() => {\n const nextValue = mapTabIndexToValue(activeTab, tabOrder);\n setActiveTabValue((prev) => (prev === nextValue ? prev : nextValue));\n }, [activeTab, tabOrder]);\n\n const tabs: { value: string; label: React.ReactNode; content: React.ReactNode; }[] = [\n ...(showWorkflowInfo\n ? [{\n value: 'info',\n label: 'Info',\n content: (\n <div className=\"solid-locale-tab-content solid-locale-tab-content--padded\">\n <SolidLocale\n setSelectedLocale={setSelectedLocale}\n solidFormViewMetaData={solidFormViewMetaData}\n selectedLocale={selectedLocale}\n id={id}\n viewMode={viewMode}\n createMode={createMode}\n handleLocaleChangeRedirect={handleLocaleChangeRedirect}\n defaultEntityLocaleId={defaultEntityLocaleId}\n applicableLocales={solidFormViewMetaData?.data?.applicableLocales}\n solidFormViewData={solidFormViewData}\n published={published}\n />\n </div>\n )\n }]\n : []),\n {\n value: 'audit',\n label: 'Audit Trail',\n content: (\n <div className=\"solid-locale-tab-content\">\n <SolidChatter\n modelSingularName={solidFormViewMetaData?.data?.solidView?.model?.singularName}\n id={id}\n refreshChatterMessage={refreshChatterMessage}\n setRefreshChatterMessage={setRefreshChatterMessage}\n actionsAllowed={actionsAllowed}\n title={showWorkflowInfo ? undefined : 'Audit Trail'}\n modelUserKey={modelUserKeyValue}\n />\n </div>\n )\n }\n ];\n\n if (!showWorkflowInfo) {\n return (\n <div className=\"solid-locale-panel solid-locale-panel--single\">\n <div className=\"solid-locale-tab-content\">\n <SolidChatter\n modelSingularName={solidFormViewMetaData?.data?.solidView?.model?.singularName}\n id={id}\n refreshChatterMessage={refreshChatterMessage}\n setRefreshChatterMessage={setRefreshChatterMessage}\n actionsAllowed={actionsAllowed}\n title=\"Audit Trail\"\n />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"solid-locale-panel\">\n <SolidTabGroup\n className=\"solid-locale-tabs h-full\"\n listClassName=\"solid-locale-tabs-list\"\n panelClassName=\"solid-locale-tabs-panel\"\n tabs={tabs}\n value={activeTabValue}\n onValueChange={setActiveTabValue}\n tabPosition='left'\n />\n </div>\n );\n};\n\nexport default SolidChatterLocaleTabView;\n"]}
@@ -48,7 +48,10 @@ const SolidChatterLocaleTabView: React.FC<Props> = ({
48
48
  actionsAllowed,
49
49
  mcpUrl,
50
50
  }) => {
51
- const showWorkflowInfo = Boolean(solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow);
51
+ const showWorkflowInfo = Boolean(
52
+ solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow
53
+ || solidFormViewMetaData?.data?.solidView?.model?.internationalisation
54
+ );
52
55
 
53
56
  const tabOrder = useMemo(() => {
54
57
  const order: string[] = [];
@@ -1 +1 @@
1
- {"version":3,"file":"SolidLocale.d.ts","sourceRoot":"","sources":["../../../../src/components/core/locales/SolidLocale.tsx"],"names":[],"mappings":"AAGA,OAAO,oBAAoB,CAAC;AAC5B,QAAA,MAAM,WAAW;2BACsF,GAAG;QAAM,MAAM;oBAAkB,GAAG;uBAAqB,GAAG;cAAY,MAAM;gBAAc,OAAO;gCAA8B,GAAG;uBAAqB,GAAG;2BAAyB,MAAM,GAAG,IAAI;uBAAqB,GAAG;eAAa,MAAM,GAAG,IAAI;6CAiH1V,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"SolidLocale.d.ts","sourceRoot":"","sources":["../../../../src/components/core/locales/SolidLocale.tsx"],"names":[],"mappings":"AAGA,OAAO,oBAAoB,CAAC;AAC5B,QAAA,MAAM,WAAW;2BACsF,GAAG;QAAM,MAAM;oBAAkB,GAAG;uBAAqB,GAAG;cAAY,MAAM;gBAAc,OAAO;gCAA8B,GAAG;uBAAqB,GAAG;2BAAyB,MAAM,GAAG,IAAI;uBAAqB,GAAG;eAAa,MAAM,GAAG,IAAI;6CAgH1V,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -23,8 +23,7 @@ var SolidLocale = function (_a) {
23
23
  return;
24
24
  }
25
25
  if (viewMode === 'edit' || viewMode === 'view') {
26
- //This is to check record entity matched defaultEntityLocaleId from query params & isDefault for default locale
27
- var matchedLocale = applicableLocales.find(function (x) { return x.isDefault === 'yes' && x.defaultEntityLocaleId == id; });
26
+ var matchedLocale = applicableLocales.find(function (x) { return String(x.entityId) === String(id); });
28
27
  if (matchedLocale) {
29
28
  setSelectedLocale(matchedLocale.locale);
30
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SolidLocale.js","sourceRoot":"","sources":["../../../../src/components/core/locales/SolidLocale.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useEffect, useState } from 'react';\nimport { SolidDivider, SolidSelect } from \"../../shad-cn-ui\";\nimport \"./solid-locale.css\";\nconst SolidLocale = ({ solidFormViewMetaData, id, selectedLocale, setSelectedLocale, viewMode, createMode, handleLocaleChangeRedirect,\n applicableLocales, defaultEntityLocaleId, solidFormViewData, published }: { solidFormViewMetaData: any, id: string, selectedLocale: any, setSelectedLocale: any, viewMode: string, createMode: boolean, handleLocaleChangeRedirect: any, applicableLocales: any, defaultEntityLocaleId: string | null, solidFormViewData: any, published: string | null }) => {\n const [localeOptions, setLocaleOptions] = useState([]);\n const [defautlLocale, setDefaultLocale] = useState('');\n useEffect(() => {\n if (!applicableLocales) return;\n // Set dropdown options\n const localeOptions = applicableLocales.map((x: any) => ({\n label: x.displayName,\n value: x.locale,\n }));\n setLocaleOptions(localeOptions);\n\n if (createMode) {\n const defaultLocale = applicableLocales.find((x: any) => x.isDefault === 'yes');\n setSelectedLocale(defaultLocale?.locale || null);\n setDefaultLocale(defaultLocale?.displayName || '');\n return;\n }\n\n if (viewMode === 'edit' || viewMode === 'view') {\n //This is to check record entity matched defaultEntityLocaleId from query params & isDefault for default locale\n const matchedLocale = applicableLocales.find(\n (x: any) => x.isDefault === 'yes' && x.defaultEntityLocaleId == id\n );\n if (matchedLocale) {\n setSelectedLocale(matchedLocale.locale);\n }\n }\n }, [applicableLocales, id, viewMode, createMode]);\n\n const handleLocaleChange = (newLocale: string) => {\n if (newLocale === selectedLocale) return;\n setSelectedLocale(newLocale);\n const targetDefaultEntityLocaleId = id === 'new' ? defaultEntityLocaleId : defaultEntityLocaleId || id;\n handleLocaleChangeRedirect(newLocale, targetDefaultEntityLocaleId, viewMode);\n };\n\n // utils/formatDate.ts\n const formatToDDMMYYWithTime = (dateString: string) => {\n if (!dateString) return 'N/A';\n const date = new Date(dateString);\n\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = String(date.getFullYear()).slice(-2);\n\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n\n return `${day}-${month}-${year} ${hours}:${minutes}`;\n }\n\n\n return (\n <div className=\"flex flex-col p-0 m-0 solid-locale-stack\">\n <div className=\"flex justify-end gap-4\">\n </div>\n {solidFormViewData && (viewMode === 'edit') &&\n (<div className={`w-full solid-locale-status-banner ${published !== null ? 'is-published' : 'is-unpublished'}`}>\n {solidFormViewMetaData.data.solidView?.model?.draftPublishWorkflow &&\n published !== null ? (\n <li className=\"w-full text-left list-disc solid-locale-status-copy\">\n Editing <span className=\"font-bold\">published version</span>\n </li>\n ) : (\n <li className=\"w-full text-left list-disc solid-locale-status-copy\">\n Editing <span className=\"font-bold\">unpublished version</span>\n </li>\n )}\n </div>\n )\n }\n <div className=\"flex flex-col gap-2 mt-2 solid-locale-info-card\">\n <h3 className=\"solid-locale-section-title p-0 m-0\">Information</h3>\n <SolidDivider className=\"my-2\" />\n <div className=\"space-y-2\">\n <div className='flex items-center justify-between gap-2 p-2 solid-locale-info-row'>\n <p className=\"text-sm font-bold m-0 solid-locale-info-label\">Created At</p>\n <p className=\"text-sm m-0 solid-locale-info-value\">{formatToDDMMYYWithTime(solidFormViewData?.data?.createdAt)}</p>\n </div>\n <div className='flex items-center justify-between gap-2 p-2 solid-locale-info-row'>\n <p className=\"text-sm font-bold m-0 solid-locale-info-label\">Updated At</p>\n <p className=\"text-sm m-0 solid-locale-info-value\">\n {formatToDDMMYYWithTime(solidFormViewData?.data?.updatedAt)}\n </p>\n </div>\n <div className='flex items-center justify-between gap-2 p-2 solid-locale-info-row'>\n <p className=\"text-sm font-bold m-0 solid-locale-info-label\">Published At</p>\n <p className=\"text-sm m-0 solid-locale-info-value\">{formatToDDMMYYWithTime(published ?? '')}</p>\n </div>\n </div>\n\n {solidFormViewMetaData?.data?.solidView?.model?.internationalisation &&\n <>\n <h3 className=\"solid-locale-section-title mt-6 mb-2\">Internationalisation</h3>\n <label className=\"form-field-label\">Locales</label>\n <SolidSelect\n value={selectedLocale}\n onChange={(e) => handleLocaleChange(e.value)}\n options={localeOptions}\n placeholder=\"Select locale\"\n className=\"w-full\"\n disabled={createMode}\n />\n {createMode && (\n <p className=\"text-sm mt-0 ml-0 solid-locale-helper-copy\"> By default record will be created in <b>{defautlLocale}</b></p>\n )}\n </>\n }\n </div>\n {/* <p className=\"text-sm font-bold text-gray-500 px-2\">Fill in form another locale</p> */}\n </div>\n );\n};\n\nexport default SolidLocale;\n"]}
1
+ {"version":3,"file":"SolidLocale.js","sourceRoot":"","sources":["../../../../src/components/core/locales/SolidLocale.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useEffect, useState } from 'react';\nimport { SolidDivider, SolidSelect } from \"../../shad-cn-ui\";\nimport \"./solid-locale.css\";\nconst SolidLocale = ({ solidFormViewMetaData, id, selectedLocale, setSelectedLocale, viewMode, createMode, handleLocaleChangeRedirect,\n applicableLocales, defaultEntityLocaleId, solidFormViewData, published }: { solidFormViewMetaData: any, id: string, selectedLocale: any, setSelectedLocale: any, viewMode: string, createMode: boolean, handleLocaleChangeRedirect: any, applicableLocales: any, defaultEntityLocaleId: string | null, solidFormViewData: any, published: string | null }) => {\n const [localeOptions, setLocaleOptions] = useState([]);\n const [defautlLocale, setDefaultLocale] = useState('');\n useEffect(() => {\n if (!applicableLocales) return;\n // Set dropdown options\n const localeOptions = applicableLocales.map((x: any) => ({\n label: x.displayName,\n value: x.locale,\n }));\n setLocaleOptions(localeOptions);\n\n if (createMode) {\n const defaultLocale = applicableLocales.find((x: any) => x.isDefault === 'yes');\n setSelectedLocale(defaultLocale?.locale || null);\n setDefaultLocale(defaultLocale?.displayName || '');\n return;\n }\n\n if (viewMode === 'edit' || viewMode === 'view') {\n const matchedLocale = applicableLocales.find(\n (x: any) => String(x.entityId) === String(id)\n );\n if (matchedLocale) {\n setSelectedLocale(matchedLocale.locale);\n }\n }\n }, [applicableLocales, id, viewMode, createMode]);\n\n const handleLocaleChange = (newLocale: string) => {\n if (newLocale === selectedLocale) return;\n setSelectedLocale(newLocale);\n const targetDefaultEntityLocaleId = id === 'new' ? defaultEntityLocaleId : defaultEntityLocaleId || id;\n handleLocaleChangeRedirect(newLocale, targetDefaultEntityLocaleId, viewMode);\n };\n\n // utils/formatDate.ts\n const formatToDDMMYYWithTime = (dateString: string) => {\n if (!dateString) return 'N/A';\n const date = new Date(dateString);\n\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = String(date.getFullYear()).slice(-2);\n\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n\n return `${day}-${month}-${year} ${hours}:${minutes}`;\n }\n\n\n return (\n <div className=\"flex flex-col p-0 m-0 solid-locale-stack\">\n <div className=\"flex justify-end gap-4\">\n </div>\n {solidFormViewData && (viewMode === 'edit') &&\n (<div className={`w-full solid-locale-status-banner ${published !== null ? 'is-published' : 'is-unpublished'}`}>\n {solidFormViewMetaData.data.solidView?.model?.draftPublishWorkflow &&\n published !== null ? (\n <li className=\"w-full text-left list-disc solid-locale-status-copy\">\n Editing <span className=\"font-bold\">published version</span>\n </li>\n ) : (\n <li className=\"w-full text-left list-disc solid-locale-status-copy\">\n Editing <span className=\"font-bold\">unpublished version</span>\n </li>\n )}\n </div>\n )\n }\n <div className=\"flex flex-col gap-2 mt-2 solid-locale-info-card\">\n <h3 className=\"solid-locale-section-title p-0 m-0\">Information</h3>\n <SolidDivider className=\"my-2\" />\n <div className=\"space-y-2\">\n <div className='flex items-center justify-between gap-2 p-2 solid-locale-info-row'>\n <p className=\"text-sm font-bold m-0 solid-locale-info-label\">Created At</p>\n <p className=\"text-sm m-0 solid-locale-info-value\">{formatToDDMMYYWithTime(solidFormViewData?.data?.createdAt)}</p>\n </div>\n <div className='flex items-center justify-between gap-2 p-2 solid-locale-info-row'>\n <p className=\"text-sm font-bold m-0 solid-locale-info-label\">Updated At</p>\n <p className=\"text-sm m-0 solid-locale-info-value\">\n {formatToDDMMYYWithTime(solidFormViewData?.data?.updatedAt)}\n </p>\n </div>\n <div className='flex items-center justify-between gap-2 p-2 solid-locale-info-row'>\n <p className=\"text-sm font-bold m-0 solid-locale-info-label\">Published At</p>\n <p className=\"text-sm m-0 solid-locale-info-value\">{formatToDDMMYYWithTime(published ?? '')}</p>\n </div>\n </div>\n\n {solidFormViewMetaData?.data?.solidView?.model?.internationalisation &&\n <>\n <h3 className=\"solid-locale-section-title mt-6 mb-2\">Internationalisation</h3>\n <label className=\"form-field-label\">Locales</label>\n <SolidSelect\n value={selectedLocale}\n onChange={(e) => handleLocaleChange(e.value)}\n options={localeOptions}\n placeholder=\"Select locale\"\n className=\"w-full\"\n disabled={createMode}\n />\n {createMode && (\n <p className=\"text-sm mt-0 ml-0 solid-locale-helper-copy\"> By default record will be created in <b>{defautlLocale}</b></p>\n )}\n </>\n }\n </div>\n {/* <p className=\"text-sm font-bold text-gray-500 px-2\">Fill in form another locale</p> */}\n </div>\n );\n};\n\nexport default SolidLocale;\n"]}
@@ -23,9 +23,8 @@ const SolidLocale = ({ solidFormViewMetaData, id, selectedLocale, setSelectedLoc
23
23
  }
24
24
 
25
25
  if (viewMode === 'edit' || viewMode === 'view') {
26
- //This is to check record entity matched defaultEntityLocaleId from query params & isDefault for default locale
27
26
  const matchedLocale = applicableLocales.find(
28
- (x: any) => x.isDefault === 'yes' && x.defaultEntityLocaleId == id
27
+ (x: any) => String(x.entityId) === String(id)
29
28
  );
30
29
  if (matchedLocale) {
31
30
  setSelectedLocale(matchedLocale.locale);
@@ -1 +1 @@
1
- {"version":3,"file":"CreateModel.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"AAcA,OAAO,mBAAmB,CAAC;AAW3B,QAAA,MAAM,WAAW,qBAAsB,GAAG,4CA0UzC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"CreateModel.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"AAcA,OAAO,mBAAmB,CAAC;AAW3B,QAAA,MAAM,WAAW,qBAAsB,GAAG,4CAyUzC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -300,7 +300,7 @@ var CreateModel = function (_a) {
300
300
  (data === null || data === void 0 ? void 0 : data.isSystem) ||
301
301
  explorerModuleName.toLowerCase() === "solid-core");
302
302
  var shouldShowTabSave = !isCreateMode ? activeTab === "fields" && fieldDeleted : activeTab !== "explorer" && isDirty;
303
- var modelTabContent = (_jsx("div", { className: "solid-model-form-content is-tabbed", children: _jsx(ModelMetaData, { modelMetaData: modelMetaData, setModelMetaData: setModelMetaData, allModelsNames: allModelsNames, deleteModelFunction: deleteModelFunction, nextTab: nextTab, formikModelMetadataRef: formikModelMetadataRef, params: params, formErrors: formErrors, setIsDirty: setIsDirty }) }));
303
+ var modelTabContent = (_jsx("div", { className: "solid-model-form-content is-tabbed", children: _jsx(ModelMetaData, { modelMetaData: modelMetaData, setModelMetaData: setModelMetaData, allModelsNames: allModelsNames, deleteModelFunction: deleteModelFunction, formikModelMetadataRef: formikModelMetadataRef, params: params, formErrors: formErrors, setIsDirty: setIsDirty }) }));
304
304
  var fieldsTabContent = (_jsx("div", { className: "solid-model-form-content is-tabbed", children: _jsx(FieldMetaData, { modelMetaData: modelMetaData, fieldMetaData: fieldMetaData, setFieldMetaData: setFieldMetaData, deleteModelFunction: deleteModelFunction, nextTab: nextTab, formikFieldsMetadataRef: formikFieldsMetadataRef, params: params, setIsDirty: setIsDirty, setFieldDeleted: setFieldDeleted }) }));
305
305
  return (_jsx("div", { className: "solid-form-wrapper", children: _jsxs("div", { className: "solid-form-section", style: { borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }, children: [_jsx("div", { className: "solid-model-form-workspace", children: _jsx(SolidTabGroup, { className: "solid-model-form-tabs", listClassName: "solid-model-form-tablist", panelClassName: "solid-model-form-tabpanel", tabs: __spreadArray([
306
306
  {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateModel.js","sourceRoot":"","sources":["../../../../src/components/core/model/CreateModel.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useCreatemodelMutation, useLazyGetModelsQuery, useUpdatemodelMutation } from \"../../../redux/api/modelApi\";\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 { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { SolidButton, SolidTabGroup } from \"../../shad-cn-ui\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\nimport { ModuleMetadataExplorer } from \"../module/ModuleMetadataExplorer\";\nimport \"./CreateModel.css\";\n\nconst TABS = [\"model\", \"fields\", \"explorer\"] as const;\ntype TabValue = typeof TABS[number];\n\nconst getTabErrorState = (tab?: TabValue): Record<TabValue, boolean> => ({\n model: tab === \"model\",\n fields: tab === \"fields\",\n explorer: false,\n});\n\nconst CreateModel = ({ data, params }: any) => {\n\n const dispatch = useDispatch();\n const router = useRouter();\n const isCreateMode = params.id === \"new\";\n const formikModelMetadataRef = useRef<any>();\n const formikFieldsMetadataRef = useRef();\n\n const [modelMetaData, setModelMetaData] = useState<any>();\n const [fieldMetaData, setFieldMetaData] = useState<any>([]);\n\n useGetFieldDefaultMetaDataQuery(null);\n const [allModelsNames, setAllModelsNames] = useState([]);\n\n const [triggerGetModels, { data: allmodels }] =\n useLazyGetModelsQuery();\n\n\n const [\n createModel,\n { isSuccess: isCreateModelSuccess, isError: isCreateModelError, error: createModelError },\n ] = useCreatemodelMutation();\n\n const [\n updateModel,\n { isSuccess: isUpdatedModelSuceess, isError: isUpdateModelError, error: updateModelError },\n ] = useUpdatemodelMutation();\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 const deleteModelFunction = async () => {};\n const availableTabs: readonly TabValue[] = isCreateMode ? [\"model\", \"fields\"] : TABS;\n\n const nextTab = () => {\n const currentIndex = availableTabs.indexOf(activeTab as (typeof availableTabs)[number]);\n const nextValue = availableTabs[Math.min(Math.max(currentIndex, 0) + 1, availableTabs.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 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 }, []);\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 useEffect(() => {\n if (isCreateModelSuccess == true || isUpdatedModelSuceess == true) {\n // router.push(`/admin/app-builder/model/all`);\n router.back();\n }\n }, [isCreateModelSuccess, isUpdatedModelSuceess])\n\n useEffect(() => {\n const errors = [\n { isError: isCreateModelError, error: createModelError },\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, isUpdateModelError])\n\n const [isDirty, setIsDirty] = useState(false);\n const [fieldDeleted, setFieldDeleted] = useState(false);\n const explorerModuleName = data?.module?.name ?? modelMetaData?.module?.name ?? \"\";\n const explorerModelSingularName = data?.singularName ?? modelMetaData?.singularName ?? \"\";\n const isReadOnlyModelExplorer = Boolean(\n modelMetaData?.isSystem ||\n data?.isSystem ||\n explorerModuleName.toLowerCase() === \"solid-core\"\n );\n const shouldShowTabSave = !isCreateMode ? activeTab === \"fields\" && fieldDeleted : activeTab !== \"explorer\" && isDirty;\n\n const modelTabContent = (\n <div className=\"solid-model-form-content is-tabbed\">\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 />\n </div>\n );\n\n const fieldsTabContent = (\n <div className=\"solid-model-form-content is-tabbed\">\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 setFieldDeleted={setFieldDeleted}\n />\n </div>\n );\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 className=\"solid-model-form-workspace\">\n <SolidTabGroup\n className=\"solid-model-form-tabs\"\n listClassName=\"solid-model-form-tablist\"\n panelClassName=\"solid-model-form-tabpanel\"\n tabs={[\n {\n value: \"model\",\n label: <span className={`solid-model-form-tab-label ${tabErrors.model ? \"tab-error-heading\" : \"\"}`}>Model</span>,\n content: modelTabContent,\n },\n {\n value: \"fields\",\n label: <span className={`solid-model-form-tab-label ${tabErrors.fields ? \"tab-error-heading\" : \"\"}`}>Fields</span>,\n content: fieldsTabContent,\n },\n ...(!isCreateMode\n ? [\n {\n value: \"explorer\",\n label: <span className=\"solid-model-form-tab-label\">Explorer</span>,\n content: (\n <ModuleMetadataExplorer\n moduleName={explorerModuleName}\n modelSingularName={explorerModelSingularName}\n readOnly={isReadOnlyModelExplorer}\n allowSeed={false}\n />\n ),\n },\n ]\n : []),\n ]}\n value={activeTab}\n onValueChange={(value) => {\n const next = availableTabs.find((tab) => tab === value);\n if (next) {\n handleTabChange(next);\n }\n }}\n />\n </div>\n {shouldShowTabSave && (\n <div className=\"solid-model-form-actions\">\n <SolidButton type=\"button\" onClick={handleSubmit}>\n Save\n </SolidButton>\n </div>\n )}\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\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":["\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useCreatemodelMutation, useLazyGetModelsQuery, useUpdatemodelMutation } from \"../../../redux/api/modelApi\";\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 { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { SolidButton, SolidTabGroup } from \"../../shad-cn-ui\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\nimport { ModuleMetadataExplorer } from \"../module/ModuleMetadataExplorer\";\nimport \"./CreateModel.css\";\n\nconst TABS = [\"model\", \"fields\", \"explorer\"] as const;\ntype TabValue = typeof TABS[number];\n\nconst getTabErrorState = (tab?: TabValue): Record<TabValue, boolean> => ({\n model: tab === \"model\",\n fields: tab === \"fields\",\n explorer: false,\n});\n\nconst CreateModel = ({ data, params }: any) => {\n\n const dispatch = useDispatch();\n const router = useRouter();\n const isCreateMode = params.id === \"new\";\n const formikModelMetadataRef = useRef<any>();\n const formikFieldsMetadataRef = useRef();\n\n const [modelMetaData, setModelMetaData] = useState<any>();\n const [fieldMetaData, setFieldMetaData] = useState<any>([]);\n\n useGetFieldDefaultMetaDataQuery(null);\n const [allModelsNames, setAllModelsNames] = useState([]);\n\n const [triggerGetModels, { data: allmodels }] =\n useLazyGetModelsQuery();\n\n\n const [\n createModel,\n { isSuccess: isCreateModelSuccess, isError: isCreateModelError, error: createModelError },\n ] = useCreatemodelMutation();\n\n const [\n updateModel,\n { isSuccess: isUpdatedModelSuceess, isError: isUpdateModelError, error: updateModelError },\n ] = useUpdatemodelMutation();\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 const deleteModelFunction = async () => {};\n const availableTabs: readonly TabValue[] = isCreateMode ? [\"model\", \"fields\"] : TABS;\n\n const nextTab = () => {\n const currentIndex = availableTabs.indexOf(activeTab as (typeof availableTabs)[number]);\n const nextValue = availableTabs[Math.min(Math.max(currentIndex, 0) + 1, availableTabs.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 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 }, []);\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 useEffect(() => {\n if (isCreateModelSuccess == true || isUpdatedModelSuceess == true) {\n // router.push(`/admin/app-builder/model/all`);\n router.back();\n }\n }, [isCreateModelSuccess, isUpdatedModelSuceess])\n\n useEffect(() => {\n const errors = [\n { isError: isCreateModelError, error: createModelError },\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, isUpdateModelError])\n\n const [isDirty, setIsDirty] = useState(false);\n const [fieldDeleted, setFieldDeleted] = useState(false);\n const explorerModuleName = data?.module?.name ?? modelMetaData?.module?.name ?? \"\";\n const explorerModelSingularName = data?.singularName ?? modelMetaData?.singularName ?? \"\";\n const isReadOnlyModelExplorer = Boolean(\n modelMetaData?.isSystem ||\n data?.isSystem ||\n explorerModuleName.toLowerCase() === \"solid-core\"\n );\n const shouldShowTabSave = !isCreateMode ? activeTab === \"fields\" && fieldDeleted : activeTab !== \"explorer\" && isDirty;\n\n const modelTabContent = (\n <div className=\"solid-model-form-content is-tabbed\">\n <ModelMetaData\n modelMetaData={modelMetaData}\n setModelMetaData={setModelMetaData}\n allModelsNames={allModelsNames}\n deleteModelFunction={deleteModelFunction}\n formikModelMetadataRef={formikModelMetadataRef}\n params={params}\n formErrors={formErrors}\n setIsDirty={setIsDirty}\n />\n </div>\n );\n\n const fieldsTabContent = (\n <div className=\"solid-model-form-content is-tabbed\">\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 setFieldDeleted={setFieldDeleted}\n />\n </div>\n );\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 className=\"solid-model-form-workspace\">\n <SolidTabGroup\n className=\"solid-model-form-tabs\"\n listClassName=\"solid-model-form-tablist\"\n panelClassName=\"solid-model-form-tabpanel\"\n tabs={[\n {\n value: \"model\",\n label: <span className={`solid-model-form-tab-label ${tabErrors.model ? \"tab-error-heading\" : \"\"}`}>Model</span>,\n content: modelTabContent,\n },\n {\n value: \"fields\",\n label: <span className={`solid-model-form-tab-label ${tabErrors.fields ? \"tab-error-heading\" : \"\"}`}>Fields</span>,\n content: fieldsTabContent,\n },\n ...(!isCreateMode\n ? [\n {\n value: \"explorer\",\n label: <span className=\"solid-model-form-tab-label\">Explorer</span>,\n content: (\n <ModuleMetadataExplorer\n moduleName={explorerModuleName}\n modelSingularName={explorerModelSingularName}\n readOnly={isReadOnlyModelExplorer}\n allowSeed={false}\n />\n ),\n },\n ]\n : []),\n ]}\n value={activeTab}\n onValueChange={(value) => {\n const next = availableTabs.find((tab) => tab === value);\n if (next) {\n handleTabChange(next);\n }\n }}\n />\n </div>\n {shouldShowTabSave && (\n <div className=\"solid-model-form-actions\">\n <SolidButton type=\"button\" onClick={handleSubmit}>\n Save\n </SolidButton>\n </div>\n )}\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n </div>\n );\n};\n\nexport default CreateModel;\n"]}
@@ -271,7 +271,6 @@ const CreateModel = ({ data, params }: any) => {
271
271
  setModelMetaData={setModelMetaData}
272
272
  allModelsNames={allModelsNames}
273
273
  deleteModelFunction={deleteModelFunction}
274
- nextTab={nextTab}
275
274
  formikModelMetadataRef={formikModelMetadataRef}
276
275
  params={params}
277
276
  formErrors={formErrors}
@@ -1 +1 @@
1
- {"version":3,"file":"ModelMetaData.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/ModelMetaData.tsx"],"names":[],"mappings":"AASA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAuB3D,QAAA,MAAM,aAAa,kFA+oBjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ModelMetaData.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/ModelMetaData.tsx"],"names":[],"mappings":"AASA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAuB3D,QAAA,MAAM,aAAa,kFA6oBjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -94,7 +94,7 @@ var cx = function () {
94
94
  var ModelMetaData = React.forwardRef(function (_a, ref) {
95
95
  // const ModelMetaData = ({ modelMetaData, setModelMetaData, deleteModelFunction, nextTab, formikModelMetadataRef }: any) => {
96
96
  var _b, _c;
97
- var modelMetaData = _a.modelMetaData, setModelMetaData = _a.setModelMetaData, allModelsNames = _a.allModelsNames, deleteModelFunction = _a.deleteModelFunction, nextTab = _a.nextTab, formikModelMetadataRef = _a.formikModelMetadataRef, params = _a.params, formErrors = _a.formErrors, setIsDirty = _a.setIsDirty;
97
+ var modelMetaData = _a.modelMetaData, setModelMetaData = _a.setModelMetaData, allModelsNames = _a.allModelsNames, deleteModelFunction = _a.deleteModelFunction, formikModelMetadataRef = _a.formikModelMetadataRef, params = _a.params, formErrors = _a.formErrors, setIsDirty = _a.setIsDirty;
98
98
  var dispatch = useDispatch();
99
99
  var _d = useLazyGetmodulesQuery(), triggerGetModules = _d[0], _e = _d[1], moduleData = _e.data, isModuleFetching = _e.isFetching, moduleError = _e.error;
100
100
  var _f = useLazyGetModelsQuery(), triggerGetModels = _f[0], _g = _f[1], modelData = _g.data, isModelFetching = _g.isFetching, modelError = _g.error;
@@ -222,7 +222,6 @@ var ModelMetaData = React.forwardRef(function (_a, ref) {
222
222
  parentModel: values.parentModel,
223
223
  })), { isLegacyTable: values.isLegacyTable === true ? true : false, hasExistingId: values.hasExistingId === true ? true : false });
224
224
  setModelMetaData(modelData_1);
225
- nextTab();
226
225
  }
227
226
  catch (err) {
228
227
  console.error(ERROR_MESSAGES.CREATE_MODEL, err);