@solidxai/core-ui 0.1.7-beta.4 → 0.1.7-beta.5

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 (221) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +1 -1
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +5 -3
  5. package/dist/components/auth/SolidLogin.js +3 -3
  6. package/dist/components/auth/SolidLogin.js.map +1 -1
  7. package/dist/components/auth/SolidLogin.tsx +2 -2
  8. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  9. package/dist/components/common/DropzonePlaceholder.js +1 -1
  10. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  11. package/dist/components/common/DropzonePlaceholder.tsx +8 -6
  12. package/dist/components/core/chatter/SolidChatter.d.ts +2 -1
  13. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  14. package/dist/components/core/chatter/SolidChatter.js +2 -4
  15. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  16. package/dist/components/core/chatter/SolidChatter.tsx +3 -4
  17. package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
  18. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  19. package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
  20. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  21. package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -3
  22. package/dist/components/core/chatter/chatter.module.css +42 -32
  23. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js +1 -1
  24. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js.map +1 -1
  25. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.tsx +2 -2
  26. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +153 -30
  27. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
  28. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +7 -7
  29. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
  30. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +9 -10
  31. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.d.ts.map +1 -1
  32. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js +1 -1
  33. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js.map +1 -1
  34. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.tsx +6 -4
  35. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.d.ts.map +1 -1
  36. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js +1 -1
  37. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js.map +1 -1
  38. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.tsx +3 -1
  39. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  40. package/dist/components/core/form/SolidFormActionHeader.js +13 -13
  41. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  42. package/dist/components/core/form/SolidFormActionHeader.tsx +21 -24
  43. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  44. package/dist/components/core/form/SolidFormFooter.js +1 -1
  45. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  46. package/dist/components/core/form/SolidFormFooter.tsx +0 -1
  47. package/dist/components/core/form/SolidFormUserViewLayout.js +1 -1
  48. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  49. package/dist/components/core/form/SolidFormUserViewLayout.tsx +1 -1
  50. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  51. package/dist/components/core/form/SolidFormView.js +22 -33
  52. package/dist/components/core/form/SolidFormView.js.map +1 -1
  53. package/dist/components/core/form/SolidFormView.tsx +38 -59
  54. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  55. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +12 -1
  56. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  57. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +1 -0
  58. package/dist/components/core/form/fields/SolidLongTextField.js +4 -4
  59. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  60. package/dist/components/core/form/fields/SolidLongTextField.tsx +4 -4
  61. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/SolidMediaMultipleField.js +14 -14
  63. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  64. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +35 -21
  65. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/SolidMediaSingleField.js +2 -2
  67. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  68. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +48 -34
  69. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  70. package/dist/components/core/form/fields/SolidPasswordField.js +2 -2
  71. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  72. package/dist/components/core/form/fields/SolidPasswordField.tsx +46 -42
  73. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  74. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +23 -27
  75. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  76. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +64 -66
  77. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  78. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -6
  79. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  80. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +4 -7
  81. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  82. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -15
  83. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  84. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +30 -16
  85. package/dist/components/core/form/fields/solidFields.module.css +86 -15
  86. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  87. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  88. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  89. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  90. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  91. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  92. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +18 -28
  93. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  94. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +52 -48
  95. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  96. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  97. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
  98. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  99. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  100. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts.map +1 -1
  101. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
  102. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  103. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +5 -4
  104. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  105. package/dist/components/core/kanban/KanbanBoard.js +11 -5
  106. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  107. package/dist/components/core/kanban/KanbanBoard.tsx +8 -0
  108. package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
  109. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  110. package/dist/components/core/kanban/KanbanCard.js +4 -4
  111. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  112. package/dist/components/core/kanban/KanbanCard.tsx +5 -4
  113. package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
  114. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  115. package/dist/components/core/kanban/KanbanColumn.js +3 -3
  116. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  117. package/dist/components/core/kanban/KanbanColumn.tsx +4 -3
  118. package/dist/components/core/list/SolidDataTable.d.ts +1 -0
  119. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  120. package/dist/components/core/list/SolidDataTable.js +19 -2
  121. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  122. package/dist/components/core/list/SolidDataTable.tsx +30 -2
  123. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidListView.js +1 -1
  125. package/dist/components/core/list/SolidListView.js.map +1 -1
  126. package/dist/components/core/list/SolidListView.tsx +1 -0
  127. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  128. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  129. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  130. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  131. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  132. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  133. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  134. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
  135. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  136. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
  137. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
  138. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
  139. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
  140. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
  141. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
  142. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
  143. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
  144. package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
  145. package/dist/components/core/locales/SolidChatterLocaleTabView.js +7 -4
  146. package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
  147. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +28 -11
  148. package/dist/components/core/locales/SolidLocale.js +4 -4
  149. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  150. package/dist/components/core/locales/SolidLocale.tsx +18 -18
  151. package/dist/components/core/locales/solid-locale.css +105 -7
  152. package/dist/components/core/model/CreateModel.js +2 -2
  153. package/dist/components/core/model/CreateModel.js.map +1 -1
  154. package/dist/components/core/model/CreateModel.tsx +2 -2
  155. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  156. package/dist/components/core/model/FieldMetaData.js +3 -3
  157. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  158. package/dist/components/core/model/FieldMetaData.tsx +45 -22
  159. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts +7 -0
  160. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -0
  161. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +138 -0
  162. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -0
  163. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +246 -0
  164. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +8 -0
  165. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -0
  166. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +156 -0
  167. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -0
  168. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +184 -0
  169. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts +9 -0
  170. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts.map +1 -0
  171. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js +37 -0
  172. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js.map +1 -0
  173. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.tsx +111 -0
  174. package/dist/components/core/users/ApiKeysTab/index.d.ts +4 -0
  175. package/dist/components/core/users/ApiKeysTab/index.d.ts.map +1 -0
  176. package/dist/components/core/users/ApiKeysTab/index.js +4 -0
  177. package/dist/components/core/users/ApiKeysTab/index.js.map +1 -0
  178. package/dist/components/core/users/ApiKeysTab/index.ts +3 -0
  179. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  180. package/dist/components/layout/AppSidebar.js +75 -7
  181. package/dist/components/layout/AppSidebar.js.map +1 -1
  182. package/dist/components/layout/AppSidebar.tsx +84 -7
  183. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  184. package/dist/components/shad-cn-ui/SolidCodeEditor.js +13 -7
  185. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  186. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +22 -12
  187. package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
  188. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  189. package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
  190. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  191. package/dist/components/shad-cn-ui/SolidDialog.tsx +6 -3
  192. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  193. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  194. package/dist/components/shad-cn-ui/SolidSelect.js +2 -2
  195. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  196. package/dist/components/shad-cn-ui/SolidSelect.tsx +3 -0
  197. package/dist/components/shad-cn-ui/SolidTextarea.d.ts +1 -1
  198. package/dist/components/shad-cn-ui/SolidTextarea.d.ts.map +1 -1
  199. package/dist/components/shad-cn-ui/SolidTextarea.js +3 -2
  200. package/dist/components/shad-cn-ui/SolidTextarea.js.map +1 -1
  201. package/dist/components/shad-cn-ui/SolidTextarea.tsx +17 -2
  202. package/dist/helpers/# no such endpoints exist, need to calle +3 -0
  203. package/dist/helpers/registry.d.ts.map +1 -1
  204. package/dist/helpers/registry.js +10 -0
  205. package/dist/helpers/registry.js.map +1 -1
  206. package/dist/helpers/registry.ts +16 -0
  207. package/dist/index.d.ts +3 -2
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +3 -2
  210. package/dist/index.js.map +1 -1
  211. package/dist/index.ts +71 -2
  212. package/dist/redux/api/apiKeyApi.d.ts +40 -0
  213. package/dist/redux/api/apiKeyApi.d.ts.map +1 -0
  214. package/dist/redux/api/apiKeyApi.js +36 -0
  215. package/dist/redux/api/apiKeyApi.js.map +1 -0
  216. package/dist/redux/api/apiKeyApi.ts +60 -0
  217. package/dist/resources/globals.css +628 -67
  218. package/dist/resources/shadcn-base.css +333 -7
  219. package/dist/resources/solid-responsive.css +6 -6
  220. package/dist/resources/themes/solid-dark-purple/theme.css +1 -1
  221. package/package.json +1 -1
@@ -57,47 +57,47 @@ const SolidLocale = ({ solidFormViewMetaData, id, selectedLocale, setSelectedLoc
57
57
 
58
58
 
59
59
  return (
60
- <div className="flex flex-column p-0 m-0">
60
+ <div className="flex flex-column p-0 m-0 solid-locale-stack">
61
61
  <div className="flex justify-content-end gap-3">
62
62
  </div>
63
63
  {solidFormViewData && (viewMode === 'edit') &&
64
- (<div className="w-full" style={{ backgroundColor: 'var(--surface-ground)', margin: '10px 0', padding: 0, overflow:'hidden' }}>
64
+ (<div className={`w-full solid-locale-status-banner ${published !== null ? 'is-published' : 'is-unpublished'}`}>
65
65
  {solidFormViewMetaData.data.solidView?.model?.draftPublishWorkflow &&
66
66
  published !== null ? (
67
- <li className="w-full text-left list-disc" style={{ padding: '10px 0px',margin: '0 20px', color: '#15803D' }}>
67
+ <li className="w-full text-left list-disc solid-locale-status-copy">
68
68
  Editing <span className="font-bold">published version</span>
69
69
  </li>
70
70
  ) : (
71
- <li className="w-full text-left list-disc" style={{ padding: '10px 0px',margin: '0 20px', color: '#EF4444' }}>
71
+ <li className="w-full text-left list-disc solid-locale-status-copy">
72
72
  Editing <span className="font-bold">unpublished version</span>
73
73
  </li>
74
74
  )}
75
75
  </div>
76
76
  )
77
77
  }
78
- <div className="flex flex-column gap-2 mt-2" style={{ backgroundColor: 'var(--surface-ground)', padding: '0.5rem' }}>
79
- <h3 className="text-lg font-semibold p-0 m-0">Information</h3>
78
+ <div className="flex flex-column gap-2 mt-2 solid-locale-info-card">
79
+ <h3 className="solid-locale-section-title p-0 m-0">Information</h3>
80
80
  <SolidDivider className="my-2" />
81
81
  <div className="space-y-2">
82
- <div className='flex align-items-center justify-content-between gap-2 p-2'>
83
- <p className="text-sm font-bold text-gray-500 m-0">Created At</p>
84
- <p className="text-sm m-0">{formatToDDMMYYWithTime(solidFormViewData?.data?.createdAt)}</p>
82
+ <div className='flex align-items-center justify-content-between gap-2 p-2 solid-locale-info-row'>
83
+ <p className="text-sm font-bold m-0 solid-locale-info-label">Created At</p>
84
+ <p className="text-sm m-0 solid-locale-info-value">{formatToDDMMYYWithTime(solidFormViewData?.data?.createdAt)}</p>
85
85
  </div>
86
- <div className='flex align-items-center justify-content-between gap-2 p-2'>
87
- <p className="text-sm font-bold text-gray-500 m-0">Updated At</p>
88
- <p className="text-sm m-0">
86
+ <div className='flex align-items-center justify-content-between gap-2 p-2 solid-locale-info-row'>
87
+ <p className="text-sm font-bold m-0 solid-locale-info-label">Updated At</p>
88
+ <p className="text-sm m-0 solid-locale-info-value">
89
89
  {formatToDDMMYYWithTime(solidFormViewData?.data?.updatedAt)}
90
90
  </p>
91
91
  </div>
92
- <div className='flex align-items-center justify-content-between gap-2 p-2'>
93
- <p className="text-sm font-bold text-gray-500 m-0">Published At</p>
94
- <p className="text-sm m-0">{formatToDDMMYYWithTime(published ?? '')}</p>
92
+ <div className='flex align-items-center justify-content-between gap-2 p-2 solid-locale-info-row'>
93
+ <p className="text-sm font-bold m-0 solid-locale-info-label">Published At</p>
94
+ <p className="text-sm m-0 solid-locale-info-value">{formatToDDMMYYWithTime(published ?? '')}</p>
95
95
  </div>
96
96
  </div>
97
97
 
98
98
  {solidFormViewMetaData?.data?.solidView?.model?.internationalisation &&
99
99
  <>
100
- <h3 className="text-lg font-semibold mt-6 mb-2">Internationalisation</h3>
100
+ <h3 className="solid-locale-section-title mt-6 mb-2">Internationalisation</h3>
101
101
  <label className="form-field-label">Locales</label>
102
102
  <SolidSelect
103
103
  value={selectedLocale}
@@ -107,8 +107,8 @@ const SolidLocale = ({ solidFormViewMetaData, id, selectedLocale, setSelectedLoc
107
107
  className="w-full"
108
108
  disabled={createMode}
109
109
  />
110
- {viewMode === 'view' || createMode && (
111
- <p className="text-sm text-gray-700 mt-0 ml-0"> By default record will be created in <b>{defautlLocale}</b></p>
110
+ {(viewMode === 'view' || createMode) && (
111
+ <p className="text-sm mt-0 ml-0 solid-locale-helper-copy"> By default record will be created in <b>{defautlLocale}</b></p>
112
112
  )}
113
113
  </>
114
114
  }
@@ -1,3 +1,16 @@
1
+ .solid-locale-panel {
2
+ display: flex;
3
+ flex: 1;
4
+ min-height: 0;
5
+ height: 100%;
6
+ margin-left: 10px;
7
+ background: transparent;
8
+ }
9
+
10
+ .solid-locale-panel--single {
11
+ margin-left: 0;
12
+ }
13
+
1
14
  .solid-locale-tabs {
2
15
  display: flex;
3
16
  flex-direction: column;
@@ -7,10 +20,11 @@
7
20
  .solid-locale-tabs-list {
8
21
  display: flex;
9
22
  align-items: center;
10
- gap: 1rem;
11
- padding: 0 1rem;
12
- border-bottom: 1px solid var(--border);
13
- background: color-mix(in srgb, var(--solid-surface-1) 90%, transparent);
23
+ gap: 0.75rem;
24
+ min-height: 44px;
25
+ padding: 0 0.9rem;
26
+ border-bottom: 1px solid color-mix(in srgb, var(--border) 84%, transparent);
27
+ background: color-mix(in srgb, var(--card) 97%, var(--background) 3%);
14
28
  justify-content: flex-start;
15
29
  }
16
30
 
@@ -18,8 +32,8 @@
18
32
  position: relative;
19
33
  background: transparent;
20
34
  border: none;
21
- padding: 0.75rem 0;
22
- font-size: 0.875rem;
35
+ padding: 0.65rem 0;
36
+ font-size: 0.78rem;
23
37
  font-weight: 600;
24
38
  color: var(--muted-foreground);
25
39
  cursor: pointer;
@@ -53,5 +67,89 @@
53
67
  }
54
68
 
55
69
  .solid-locale-tab-content--padded {
56
- padding: 0.75rem;
70
+ padding: 0.85rem;
71
+ }
72
+
73
+ .solid-locale-stack {
74
+ gap: 0.2rem;
75
+ }
76
+
77
+ .solid-locale-status-banner {
78
+ margin: 0.25rem 0 0;
79
+ padding: 0;
80
+ overflow: hidden;
81
+ border-radius: 10px;
82
+ border: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
83
+ background: color-mix(in srgb, var(--card) 97%, var(--background) 3%);
84
+ }
85
+
86
+ .solid-locale-status-banner.is-published {
87
+ border-color: color-mix(in srgb, #16a34a 24%, var(--border) 76%);
88
+ background: color-mix(in srgb, #16a34a 8%, var(--card) 92%);
89
+ }
90
+
91
+ .solid-locale-status-banner.is-unpublished {
92
+ border-color: color-mix(in srgb, #ef4444 24%, var(--border) 76%);
93
+ background: color-mix(in srgb, #ef4444 7%, var(--card) 93%);
94
+ }
95
+
96
+ .solid-locale-status-copy {
97
+ margin: 0 1rem;
98
+ padding: 0.7rem 0;
99
+ font-size: 0.78rem;
100
+ line-height: 1.4;
101
+ }
102
+
103
+ .solid-locale-status-banner.is-published .solid-locale-status-copy {
104
+ color: #15803d;
105
+ }
106
+
107
+ .solid-locale-status-banner.is-unpublished .solid-locale-status-copy {
108
+ color: #dc2626;
109
+ }
110
+
111
+ .dark .solid-locale-status-banner.is-published .solid-locale-status-copy,
112
+ .theme-dark .solid-locale-status-banner.is-published .solid-locale-status-copy {
113
+ color: #4ade80;
114
+ }
115
+
116
+ .dark .solid-locale-status-banner.is-unpublished .solid-locale-status-copy,
117
+ .theme-dark .solid-locale-status-banner.is-unpublished .solid-locale-status-copy {
118
+ color: #fda4af;
119
+ }
120
+
121
+ .solid-locale-info-card {
122
+ padding: 0.85rem;
123
+ border: 1px solid color-mix(in srgb, var(--border) 82%, transparent);
124
+ border-radius: 12px;
125
+ background: color-mix(in srgb, var(--card) 96%, var(--background) 4%);
126
+ }
127
+
128
+ .solid-locale-section-title {
129
+ font-size: 0.9rem;
130
+ line-height: 1.25;
131
+ font-weight: 600;
132
+ color: var(--foreground);
133
+ }
134
+
135
+ .solid-locale-info-row {
136
+ border-radius: 10px;
137
+ background: color-mix(in srgb, var(--muted) 16%, var(--card) 84%);
138
+ }
139
+
140
+ .solid-locale-info-label {
141
+ color: var(--muted-foreground);
142
+ font-size: 0.72rem;
143
+ }
144
+
145
+ .solid-locale-info-value {
146
+ color: var(--foreground);
147
+ font-size: 0.75rem;
148
+ text-align: right;
149
+ }
150
+
151
+ .solid-locale-helper-copy {
152
+ color: var(--muted-foreground);
153
+ font-size: 0.74rem;
154
+ line-height: 1.4;
57
155
  }
@@ -373,8 +373,8 @@ var CreateModel = function (_a) {
373
373
  if (next) {
374
374
  handleTabChange(next);
375
375
  }
376
- } }) })] }), _jsx(SolidFormFooter, { params: params })] }), _jsxs(SolidDialog, { header: "Delete Field", headerClassName: "py-2", className: "solid-confirm-dialog", contentClassName: "px-0 pb-0", visible: deleteEntity, style: { width: '20vw' }, onHide: function () { if (!deleteEntity)
377
- return; setDeleteEntity(false); }, children: [_jsx(SolidDivider, { className: "m-0" }), _jsxs("div", { className: "p-4", children: [_jsx("p", { className: "m-0 solid-primary-title", style: { fontSize: 16 }, children: "Are you sure you want to delete this Field ?" }), _jsx("p", { className: "", style: { color: 'var{--solid-grey-500}' }, children: modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.singularName }), _jsxs("div", { className: "flex align-items-center gap-2 mt-3", children: [_jsx(SolidButton, { size: "sm", onClick: deleteModelFunction, children: "Delete" }), _jsx(SolidButton, { size: "sm", variant: "outline", onClick: function () { return setDeleteEntity(false); }, children: "Cancel" })] })] })] })] }));
376
+ } }) })] }), _jsx(SolidFormFooter, { params: params })] }), _jsxs(SolidDialog, { header: "Delete Model", headerClassName: "py-2", className: "solid-confirm-dialog", contentClassName: "px-0 pb-0", visible: deleteEntity, style: { width: '20vw' }, onHide: function () { if (!deleteEntity)
377
+ return; setDeleteEntity(false); }, children: [_jsx(SolidDivider, { className: "m-0" }), _jsxs("div", { className: "p-4", children: [_jsx("p", { className: "m-0 solid-primary-title", style: { fontSize: 16 }, children: "Are you sure you want to delete this Model?" }), _jsx("p", { className: "", style: { color: 'var{--solid-grey-500}' }, children: modelMetaData === null || modelMetaData === void 0 ? void 0 : modelMetaData.singularName }), _jsxs("div", { className: "flex align-items-center gap-2 mt-3", children: [_jsx(SolidButton, { size: "sm", onClick: deleteModelFunction, children: "Delete" }), _jsx(SolidButton, { size: "sm", variant: "outline", onClick: function () { return setDeleteEntity(false); }, children: "Cancel" })] })] })] })] }));
378
378
  };
379
379
  export default CreateModel;
380
380
  //# sourceMappingURL=CreateModel.js.map
@@ -1 +1 @@
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.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 Field\" 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 Field ?\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.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"]}
@@ -457,11 +457,11 @@ const CreateModel = ({ data, params }: any) => {
457
457
 
458
458
  </div>
459
459
  {/* <div style={{ width: '22.5%' }}></div> */}
460
- <SolidDialog header="Delete Field" headerClassName="py-2" className="solid-confirm-dialog" contentClassName="px-0 pb-0" visible={deleteEntity} style={{ width: '20vw' }} onHide={() => { if (!deleteEntity) return; setDeleteEntity(false); }}>
460
+ <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); }}>
461
461
  <SolidDivider className="m-0" />
462
462
  <div className="p-4">
463
463
  <p className="m-0 solid-primary-title" style={{ fontSize: 16 }}>
464
- Are you sure you want to delete this Field ?
464
+ Are you sure you want to delete this Model?
465
465
  </p>
466
466
  <p className="" style={{ color: 'var{--solid-grey-500}' }}>{modelMetaData?.singularName}</p>
467
467
  <div className="flex align-items-center gap-2 mt-3">
@@ -1 +1 @@
1
- {"version":3,"file":"FieldMetaData.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"AAgBA,QAAA,MAAM,aAAa,kIAAmI,GAAG,4CA2PxJ,CAAC;AACF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"FieldMetaData.d.ts","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"AAoBA,QAAA,MAAM,aAAa,kIAAmI,GAAG,4CA8QxJ,CAAC;AACF,eAAe,aAAa,CAAC"}
@@ -43,7 +43,7 @@ import { showToast } from "../../../redux/features/toastSlice";
43
43
  import FieldMetaDataForm from "./FieldMetaDataForm";
44
44
  import { ERROR_MESSAGES } from "../../../constants/error-messages";
45
45
  import { AlertTriangle, Info, Pencil, Plus, Trash2 } from "lucide-react";
46
- import { SolidButton, SolidDialog, SolidDialogBody, SolidDialogFooter, } from "../../shad-cn-ui";
46
+ import { SolidButton, SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, } from "../../shad-cn-ui";
47
47
  var FieldMetaData = function (_a) {
48
48
  var setIsDirty = _a.setIsDirty, modelMetaData = _a.modelMetaData, fieldMetaData = _a.fieldMetaData, setFieldMetaData = _a.setFieldMetaData, deleteModelFunction = _a.deleteModelFunction, nextTab = _a.nextTab, formikFieldsMetadataRef = _a.formikFieldsMetadataRef, params = _a.params;
49
49
  var pathname = usePathname();
@@ -122,12 +122,12 @@ var FieldMetaData = function (_a) {
122
122
  if (!open) {
123
123
  setIsRequiredPopUp(false);
124
124
  }
125
- }, className: "solid-dialog solid-confirm-dialog", style: { width: "20vw" }, header: _jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(AlertTriangle, { size: 18, className: "text-yellow-500" }), _jsx("span", { children: "Warning" })] }), children: [_jsx(SolidDialogBody, { children: _jsx("p", { className: "mb-0", children: "If there is data against this model this operation might not work and manual intervention will be required." }) }), _jsx(SolidDialogFooter, { className: "justify-content-start", children: _jsx(SolidButton, { size: "sm", onClick: function () { return setIsRequiredPopUp(false); }, children: "Ok" }) })] }), _jsxs(SolidDialog, { open: deleteAlertPopup, onOpenChange: function (open) {
125
+ }, className: "solid-dialog solid-confirm-dialog solid-field-confirm-dialog", style: { width: "min(420px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-field-confirm-header", children: [_jsx(SolidDialogTitle, { children: _jsxs("span", { className: "flex align-items-center gap-2", children: [_jsx(AlertTriangle, { size: 18, className: "text-yellow-500" }), _jsx("span", { children: "Warning" })] }) }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogBody, { className: "solid-field-confirm-dialog-body", children: _jsx("p", { className: "solid-field-confirm-message", children: "If there is data against this model this operation might not work and manual intervention will be required." }) }), _jsx(SolidDialogFooter, { className: "solid-field-confirm-actions", children: _jsx(SolidButton, { size: "sm", onClick: function () { return setIsRequiredPopUp(false); }, children: "Ok" }) })] }), _jsxs(SolidDialog, { open: deleteAlertPopup, onOpenChange: function (open) {
126
126
  if (!open) {
127
127
  setDeleteAlertPopup(false);
128
128
  setRowToDelete(null);
129
129
  }
130
- }, className: "solid-dialog solid-confirm-dialog", style: { width: "20vw" }, header: _jsxs("div", { className: "flex align-items-center justify-content-center gap-2", children: [_jsx(AlertTriangle, { size: 18, className: "text-yellow-500" }), _jsx("span", { children: "Warning" })] }), children: [_jsx(SolidDialogBody, { children: _jsx("p", { className: "mb-0 text-center", children: "Are you sure you want to delete this field?" }) }), _jsxs(SolidDialogFooter, { className: "flex justify-content-center gap-2", children: [_jsx(SolidButton, { size: "sm", onClick: function () {
130
+ }, className: "solid-shadcn-confirm-dialog solid-field-delete-flow-dialog", style: { width: "min(560px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-shadcn-dialog-head solid-field-delete-flow-head", children: [_jsx(SolidDialogTitle, { children: _jsxs("span", { className: "flex align-items-center gap-2 justify-content-center", children: [_jsx(AlertTriangle, { size: 18, className: "text-yellow-500" }), _jsx("span", { children: "Remove Field" })] }) }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogSeparator, { className: "solid-shadcn-dialog-sep" }), _jsxs(SolidDialogBody, { className: "solid-shadcn-dialog-body solid-field-delete-flow-body", children: [_jsx("p", { className: "solid-shadcn-dialog-text solid-field-delete-flow-intro", children: "Removing a field is a 2 step process." }), _jsxs("ol", { className: "solid-field-delete-flow-list", children: [_jsxs("li", { children: ["Delete the field and save the model form.", _jsx("span", { children: "This marks the field for removal." })] }), _jsxs("li", { children: ["Generate code for this model.", _jsx("span", { children: "This removes the field from generated code, metadata tables, and JSON." })] })] })] }), _jsxs(SolidDialogFooter, { className: "solid-shadcn-dialog-actions solid-field-delete-flow-actions", children: [_jsx(SolidButton, { size: "sm", onClick: function () {
131
131
  if (rowToDelete) {
132
132
  deleteRow(rowToDelete);
133
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FieldMetaData.js","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"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","sourcesContent":["import { usePathname } from \"../../../hooks/usePathname\";\nimport { SolidDataTable as DataTable, Column } from \"../list/SolidDataTable\";\nimport { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaDataForm from \"./FieldMetaDataForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { AlertTriangle, Info, Pencil, Plus, Trash2 } from \"lucide-react\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogFooter,\n} from \"../../shad-cn-ui\";\n\n\nconst FieldMetaData = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params }: any) => {\n const pathname = usePathname();\n const dispatch = useDispatch();\n const [visiblePopup, setVisiblePopup] = useState(false);\n const [isRequiredPopUp, setIsRequiredPopUp] = useState(false);\n const [currentPopup, setCurrentPopup] = useState();\n const [selectedFieldMetaData, setSelectedFieldMetaData] = useState(null);\n const [deleteAlertPopup, setDeleteAlertPopup] = useState(false);\n const [rowToDelete, setRowToDelete] = useState<any>(null);\n const onRowSelect = (event: any) => {\n setVisiblePopup(true);\n\n };\n\n // Template for the pencil icon column\n const editTemplate = (rowData: any) => {\n return (\n <>\n\n {rowData.isSystem !== true && rowData.isMarkedForRemoval !== true &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n aria-label=\"Edit field\"\n leftIcon={<Pencil size={14} />}\n onClick={() => {\n setSelectedFieldMetaData(rowData);\n setVisiblePopup(true);\n }}\n />\n }\n </>\n )\n };\n const bodyTemplate = (rowData: any) => {\n return (\n <>\n\n {rowData.displayName &&\n <>\n <p>{rowData.displayName}\n {rowData.isMarkedForRemoval === true &&\n <>\n <br></br> <span style={{ fontSize: '11px', color: 'red' }}>This field will be removed next time you generate code for this model.</span>\n </>\n }\n </p>\n </>\n }\n </>\n )\n };\n\n\n // Function to delete a row\n const deleteRow = (rowData: any) => {\n //show dialog bbefore deletion & which will have to option ok and cancel\n setFieldMetaData((prevData: any) => {\n const updatedData = prevData.filter((item: any) => item.name !== rowData.name);\n setIsDirty(true); // Ensure dirty state is updated immediately\n return updatedData;\n });\n };\n\n // Template for the trash (delete) icon column\n const deleteTemplate = (rowData: any) => {\n return (\n <>\n {(pathname.includes('create') || (rowData.isSystem !== true && rowData.isMarkedForRemoval !== true)) &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n style={{ color: \"var(--solid-danger, #ef4444)\" }}\n aria-label=\"Delete field\"\n leftIcon={<Trash2 size={14} />}\n onClick={() => { setRowToDelete(rowData); setDeleteAlertPopup(true) }}\n />\n\n }\n </>\n )\n };\n\n const showToaster = async (message: any, severity: any) => {\n const errorMessages = Object.values(message);\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity, summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.map(String).join(', '), life: 3000 }));\n }\n };\n\n\n // const rowClass = (data: any) => {\n // return {\n // 'bg-red-row': data.isMarkedForRemoval === true\n // };\n // };\n\n\n const needsModelSetup = !modelMetaData.moduleId || !modelMetaData.dataSource;\n\n return (\n <>\n\n {needsModelSetup ?\n <div className=\"solid-placeholder-card-wrapper\">\n <div className=\"solid-placeholder-card\">\n <div className=\"solid-placeholder-card-icon\">\n <Info size={18} />\n </div>\n <div className=\"solid-placeholder-card-body\">\n <p className=\"solid-placeholder-card-title\">Model setup incomplete</p>\n <p className=\"solid-placeholder-card-text\">Please select Module and Datasource from the models tab before managing fields.</p>\n </div>\n </div>\n </div>\n :\n <>\n <div className=\"absolute\" style={{ top: -3, right: 0 }}>\n {/* <h3>All Fields</h3> */}\n {modelMetaData.isSystem !== true &&\n <SolidButton\n size=\"sm\"\n leftIcon={<Plus size={14} />}\n onClick={() => {\n if (!modelMetaData?.dataSourceType) {\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.ORM_TYPE_REQUIRED }));\n } else {\n setSelectedFieldMetaData(null);\n setVisiblePopup(true)\n }\n }}\n >\n Add\n </SolidButton>\n }\n </div>\n <div className=\"solid-datatable-wrapper solid-list-table-area flex-1 min-h-0 overflow-hidden\">\n <DataTable\n value={fieldMetaData}\n dataKey=\"id\"\n size=\"small\"\n emptyMessage=\"No fields configured\"\n rowClassName={(rowData) => rowData.isMarkedForRemoval === true ? \"greyed-out-row\" : \"\"}\n >\n <Column field=\"displayName\" header=\"Display Name\" body={bodyTemplate}></Column>\n <Column field=\"name\" header=\"Name\"></Column>\n <Column field=\"type\" header=\"Type\"></Column>\n\n {modelMetaData.isSystem !== true &&\n <Column body={editTemplate} header=\"Edit\" style={{ width: '80px' }} />\n }\n {modelMetaData.isSystem !== true &&\n <Column body={deleteTemplate} header=\"Delete\" style={{ width: '90px' }} />\n }\n </DataTable>\n </div>\n <SolidDialog\n open={visiblePopup}\n onOpenChange={(open) => {\n if (!open) {\n setVisiblePopup(false);\n }\n }}\n className=\"solid-dialog solid-field-dialog\"\n style={{ width: \"30vw\" }}\n showHeader={false}\n >\n <SolidDialogBody className=\"solid-dialog-body-flush\">\n <FieldMetaDataForm setIsDirty={setIsDirty} modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={isRequiredPopUp}\n onOpenChange={(open) => {\n if (!open) {\n setIsRequiredPopUp(false);\n }\n }}\n className=\"solid-dialog solid-confirm-dialog\"\n style={{ width: \"20vw\" }}\n header={\n <div className=\"flex align-items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Warning</span>\n </div>\n }\n >\n <SolidDialogBody>\n <p className=\"mb-0\">If there is data against this model this operation might not work and manual intervention will be required.</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"justify-content-start\">\n <SolidButton size=\"sm\" onClick={() => setIsRequiredPopUp(false)}>\n Ok\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n <SolidDialog\n open={deleteAlertPopup}\n onOpenChange={(open) => {\n if (!open) {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }\n }}\n className=\"solid-dialog solid-confirm-dialog\"\n style={{ width: \"20vw\" }}\n header={\n <div className=\"flex align-items-center justify-content-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Warning</span>\n </div>\n }\n >\n <SolidDialogBody>\n <p className=\"mb-0 text-center\">Are you sure you want to delete this field?</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"flex justify-content-center gap-2\">\n <SolidButton\n size=\"sm\"\n onClick={() => {\n if (rowToDelete) {\n deleteRow(rowToDelete);\n }\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Ok\n </SolidButton>\n <SolidButton\n size=\"sm\"\n variant=\"outline\"\n onClick={() => {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Cancel\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n </>\n }\n </>\n\n\n\n );\n};\nexport default FieldMetaData;\n"]}
1
+ {"version":3,"file":"FieldMetaData.js","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaData.tsx"],"names":[],"mappings":"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","sourcesContent":["import { usePathname } from \"../../../hooks/usePathname\";\nimport { SolidDataTable as DataTable, Column } from \"../list/SolidDataTable\";\nimport { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport FieldMetaDataForm from \"./FieldMetaDataForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { AlertTriangle, Info, Pencil, Plus, Trash2 } from \"lucide-react\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui\";\n\n\nconst FieldMetaData = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldMetaData, deleteModelFunction, nextTab, formikFieldsMetadataRef, params }: any) => {\n const pathname = usePathname();\n const dispatch = useDispatch();\n const [visiblePopup, setVisiblePopup] = useState(false);\n const [isRequiredPopUp, setIsRequiredPopUp] = useState(false);\n const [currentPopup, setCurrentPopup] = useState();\n const [selectedFieldMetaData, setSelectedFieldMetaData] = useState(null);\n const [deleteAlertPopup, setDeleteAlertPopup] = useState(false);\n const [rowToDelete, setRowToDelete] = useState<any>(null);\n const onRowSelect = (event: any) => {\n setVisiblePopup(true);\n\n };\n\n // Template for the pencil icon column\n const editTemplate = (rowData: any) => {\n return (\n <>\n\n {rowData.isSystem !== true && rowData.isMarkedForRemoval !== true &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n aria-label=\"Edit field\"\n leftIcon={<Pencil size={14} />}\n onClick={() => {\n setSelectedFieldMetaData(rowData);\n setVisiblePopup(true);\n }}\n />\n }\n </>\n )\n };\n const bodyTemplate = (rowData: any) => {\n return (\n <>\n\n {rowData.displayName &&\n <>\n <p>{rowData.displayName}\n {rowData.isMarkedForRemoval === true &&\n <>\n <br></br> <span style={{ fontSize: '11px', color: 'red' }}>This field will be removed next time you generate code for this model.</span>\n </>\n }\n </p>\n </>\n }\n </>\n )\n };\n\n\n // Function to delete a row\n const deleteRow = (rowData: any) => {\n //show dialog bbefore deletion & which will have to option ok and cancel\n setFieldMetaData((prevData: any) => {\n const updatedData = prevData.filter((item: any) => item.name !== rowData.name);\n setIsDirty(true); // Ensure dirty state is updated immediately\n return updatedData;\n });\n };\n\n // Template for the trash (delete) icon column\n const deleteTemplate = (rowData: any) => {\n return (\n <>\n {(pathname.includes('create') || (rowData.isSystem !== true && rowData.isMarkedForRemoval !== true)) &&\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n style={{ color: \"var(--solid-danger, #ef4444)\" }}\n aria-label=\"Delete field\"\n leftIcon={<Trash2 size={14} />}\n onClick={() => { setRowToDelete(rowData); setDeleteAlertPopup(true) }}\n />\n\n }\n </>\n )\n };\n\n const showToaster = async (message: any, severity: any) => {\n const errorMessages = Object.values(message);\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity, summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.map(String).join(', '), life: 3000 }));\n }\n };\n\n\n // const rowClass = (data: any) => {\n // return {\n // 'bg-red-row': data.isMarkedForRemoval === true\n // };\n // };\n\n\n const needsModelSetup = !modelMetaData.moduleId || !modelMetaData.dataSource;\n\n return (\n <>\n\n {needsModelSetup ?\n <div className=\"solid-placeholder-card-wrapper\">\n <div className=\"solid-placeholder-card\">\n <div className=\"solid-placeholder-card-icon\">\n <Info size={18} />\n </div>\n <div className=\"solid-placeholder-card-body\">\n <p className=\"solid-placeholder-card-title\">Model setup incomplete</p>\n <p className=\"solid-placeholder-card-text\">Please select Module and Datasource from the models tab before managing fields.</p>\n </div>\n </div>\n </div>\n :\n <>\n <div className=\"absolute\" style={{ top: -3, right: 0 }}>\n {/* <h3>All Fields</h3> */}\n {modelMetaData.isSystem !== true &&\n <SolidButton\n size=\"sm\"\n leftIcon={<Plus size={14} />}\n onClick={() => {\n if (!modelMetaData?.dataSourceType) {\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.ORM_TYPE_REQUIRED }));\n } else {\n setSelectedFieldMetaData(null);\n setVisiblePopup(true)\n }\n }}\n >\n Add\n </SolidButton>\n }\n </div>\n <div className=\"solid-datatable-wrapper solid-list-table-area flex-1 min-h-0 overflow-hidden\">\n <DataTable\n value={fieldMetaData}\n dataKey=\"id\"\n size=\"small\"\n emptyMessage=\"No fields configured\"\n rowClassName={(rowData) => rowData.isMarkedForRemoval === true ? \"greyed-out-row\" : \"\"}\n >\n <Column field=\"displayName\" header=\"Display Name\" body={bodyTemplate}></Column>\n <Column field=\"name\" header=\"Name\"></Column>\n <Column field=\"type\" header=\"Type\"></Column>\n\n {modelMetaData.isSystem !== true &&\n <Column body={editTemplate} header=\"Edit\" style={{ width: '80px' }} />\n }\n {modelMetaData.isSystem !== true &&\n <Column body={deleteTemplate} header=\"Delete\" style={{ width: '90px' }} />\n }\n </DataTable>\n </div>\n <SolidDialog\n open={visiblePopup}\n onOpenChange={(open) => {\n if (!open) {\n setVisiblePopup(false);\n }\n }}\n className=\"solid-dialog solid-field-dialog\"\n style={{ width: \"30vw\" }}\n showHeader={false}\n >\n <SolidDialogBody className=\"solid-dialog-body-flush\">\n <FieldMetaDataForm setIsDirty={setIsDirty} modelMetaData={modelMetaData} fieldMetaData={selectedFieldMetaData} allFields={fieldMetaData} setFieldMetaData={setFieldMetaData} deleteModelFunction={deleteModelFunction} setVisiblePopup={setVisiblePopup} formikFieldsMetadataRef={formikFieldsMetadataRef} params={params} setIsRequiredPopUp={setIsRequiredPopUp} showToaster={showToaster}></FieldMetaDataForm>\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={isRequiredPopUp}\n onOpenChange={(open) => {\n if (!open) {\n setIsRequiredPopUp(false);\n }\n }}\n className=\"solid-dialog solid-confirm-dialog solid-field-confirm-dialog\"\n style={{ width: \"min(420px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-field-confirm-header\">\n <SolidDialogTitle>\n <span className=\"flex align-items-center gap-2\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Warning</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">If there is data against this model this operation might not work and manual intervention will be required.</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-field-confirm-actions\">\n <SolidButton size=\"sm\" onClick={() => setIsRequiredPopUp(false)}>\n Ok\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n <SolidDialog\n open={deleteAlertPopup}\n onOpenChange={(open) => {\n if (!open) {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-field-delete-flow-dialog\"\n style={{ width: \"min(560px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head solid-field-delete-flow-head\">\n <SolidDialogTitle>\n <span className=\"flex align-items-center gap-2 justify-content-center\">\n <AlertTriangle size={18} className=\"text-yellow-500\" />\n <span>Remove Field</span>\n </span>\n </SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body solid-field-delete-flow-body\">\n <p className=\"solid-shadcn-dialog-text solid-field-delete-flow-intro\">\n Removing a field is a 2 step process.\n </p>\n <ol className=\"solid-field-delete-flow-list\">\n <li>\n Delete the field and save the model form.\n <span>This marks the field for removal.</span>\n </li>\n <li>\n Generate code for this model.\n <span>This removes the field from generated code, metadata tables, and JSON.</span>\n </li>\n </ol>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions solid-field-delete-flow-actions\">\n <SolidButton\n size=\"sm\"\n onClick={() => {\n if (rowToDelete) {\n deleteRow(rowToDelete);\n }\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Ok\n </SolidButton>\n <SolidButton\n size=\"sm\"\n variant=\"outline\"\n onClick={() => {\n setDeleteAlertPopup(false);\n setRowToDelete(null);\n }}\n >\n Cancel\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n </>\n }\n </>\n\n\n\n );\n};\nexport default FieldMetaData;\n"]}