@solidstarters/solid-core-ui 1.1.69 → 1.1.71

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 (587) hide show
  1. package/dist/components/CustomFooter/CustomFooter.tsx +264 -0
  2. package/dist/components/CustomFooter/FooterForm.tsx +19 -0
  3. package/dist/components/CustomHeader/CallIcon.tsx +20 -0
  4. package/dist/components/CustomHeader/CustomDropdown.tsx +175 -0
  5. package/dist/components/CustomHeader/CustomHeader.tsx +64 -0
  6. package/dist/components/CustomHeader/EmailIcon.tsx +12 -0
  7. package/dist/components/CustomHeader/HeaderCart.tsx +15 -0
  8. package/dist/components/CustomHeader/productNavData.tsx +180 -0
  9. package/dist/components/FormView/DetailsViews.tsx +46 -0
  10. package/dist/components/FormView/OrderAddressDetails.tsx +70 -0
  11. package/dist/components/FormView/OrderPaymentDetails.tsx +18 -0
  12. package/dist/components/FormView/OrderTableDetails.tsx +36 -0
  13. package/dist/components/FormView/OrderedProductDetail.tsx +22 -0
  14. package/dist/components/Svg/ExcelSvg.tsx +15 -0
  15. package/dist/components/Svg/FileSvg.tsx +19 -0
  16. package/dist/components/Svg/PDFSvg.tsx +15 -0
  17. package/dist/components/Svg/RightArrowSvg.d.ts +2 -0
  18. package/dist/components/Svg/RightArrowSvg.d.ts.map +1 -0
  19. package/dist/components/Svg/RightArrowSvg.js +5 -0
  20. package/dist/components/Svg/RightArrowSvg.js.map +1 -0
  21. package/dist/components/Svg/RightArrowSvg.tsx +9 -0
  22. package/dist/components/Tag/CustomTag.tsx +50 -0
  23. package/dist/components/auth/AuthLayout.tsx +140 -0
  24. package/dist/components/auth/ForgotPasswordThankYou.tsx +48 -0
  25. package/dist/components/auth/GoogleAuthChecking.tsx +60 -0
  26. package/dist/components/auth/Login.tsx +155 -0
  27. package/dist/components/auth/Register.tsx +239 -0
  28. package/dist/components/auth/SolidChangeForcePassword.tsx +145 -0
  29. package/dist/components/auth/SolidForgotPassword.tsx +125 -0
  30. package/dist/components/auth/SolidInitialLoginOtp.tsx +152 -0
  31. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +141 -0
  32. package/dist/components/auth/SolidLogin.tsx +275 -0
  33. package/dist/components/auth/SolidOTPVerify.tsx +132 -0
  34. package/dist/components/auth/SolidRegister.tsx +348 -0
  35. package/dist/components/auth/SolidResetPassword.tsx +162 -0
  36. package/dist/components/common/AuthBanner.tsx +41 -0
  37. package/dist/components/common/AutoCompleteField.tsx +76 -0
  38. package/dist/components/common/BackButton.tsx +27 -0
  39. package/dist/components/common/CancelButton.tsx +48 -0
  40. package/dist/components/common/CodeEditor.tsx +26 -0
  41. package/dist/components/common/CreateButton.tsx +17 -0
  42. package/dist/components/common/DropzonePlaceholder.tsx +31 -0
  43. package/dist/components/common/DropzoneUpload.tsx +11 -0
  44. package/dist/components/common/FileReaderExt.tsx +20 -0
  45. package/dist/components/common/GeneralSettings.tsx +406 -0
  46. package/dist/components/common/HeaderDynamicTitles.tsx +13 -0
  47. package/dist/components/common/MarkdownViewer.tsx +16 -0
  48. package/dist/components/common/MultipleSelectAutoCompleteField.tsx +62 -0
  49. package/dist/components/common/NotFound.tsx +22 -0
  50. package/dist/components/common/SingleSelectAutoCompleteField.tsx +67 -0
  51. package/dist/components/common/SocialMediaLogin.tsx +53 -0
  52. package/dist/components/common/SolidAdmin.tsx +7 -0
  53. package/dist/components/common/SolidBreadcrumb.tsx +103 -0
  54. package/dist/components/common/SolidFormHeader.tsx +22 -0
  55. package/dist/components/common/SolidFormStepper.tsx +213 -0
  56. package/dist/components/common/SolidModuleHome.tsx +61 -0
  57. package/dist/components/common/SolidThemeLink.tsx +5 -0
  58. package/dist/components/common/SolidThemeProvider.tsx +44 -0
  59. package/dist/components/common/error.tsx +30 -0
  60. package/dist/components/core/chatter/SolidChatter.d.ts +7 -0
  61. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -0
  62. package/dist/components/core/chatter/SolidChatter.js +269 -0
  63. package/dist/components/core/chatter/SolidChatter.js.map +1 -0
  64. package/dist/components/core/chatter/SolidChatter.tsx +252 -0
  65. package/dist/components/core/chatter/SolidChatterDateDivider.d.ts +6 -0
  66. package/dist/components/core/chatter/SolidChatterDateDivider.d.ts.map +1 -0
  67. package/dist/components/core/chatter/SolidChatterDateDivider.js +7 -0
  68. package/dist/components/core/chatter/SolidChatterDateDivider.js.map +1 -0
  69. package/dist/components/core/chatter/SolidChatterDateDivider.tsx +16 -0
  70. package/dist/components/core/chatter/SolidChatterHeader.d.ts +17 -0
  71. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -0
  72. package/dist/components/core/chatter/SolidChatterHeader.js +67 -0
  73. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -0
  74. package/dist/components/core/chatter/SolidChatterHeader.tsx +178 -0
  75. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +19 -0
  76. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -0
  77. package/dist/components/core/chatter/SolidChatterMessageBox.js +46 -0
  78. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -0
  79. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +165 -0
  80. package/dist/components/core/chatter/SolidMessageComposer.d.ts +7 -0
  81. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -0
  82. package/dist/components/core/chatter/SolidMessageComposer.js +119 -0
  83. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -0
  84. package/dist/components/core/chatter/SolidMessageComposer.tsx +145 -0
  85. package/dist/components/core/chatter/chatter.module.css +70 -0
  86. package/dist/components/core/common/FilterComponent.tsx +434 -0
  87. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  88. package/dist/components/core/common/SolidCreateButton.tsx +20 -0
  89. package/dist/components/core/common/SolidGlobalSearchElement.tsx +843 -0
  90. package/dist/components/core/common/SolidLayoutViews.tsx +87 -0
  91. package/dist/components/core/common/SolidListViewOptions.tsx +31 -0
  92. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +74 -0
  93. package/dist/components/core/common/SolidSearchBox.tsx +17 -0
  94. package/dist/components/core/common/SolidViewLayoutManager.d.ts +1 -1
  95. package/dist/components/core/common/SolidViewLayoutManager.ts +85 -0
  96. package/dist/components/core/extension/solid-core/emailTemplate/emailFormTypeChangeHandler.ts +18 -0
  97. package/dist/components/core/extension/solid-core/emailTemplate/emailFormTypeLoad.ts +18 -0
  98. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +59 -0
  99. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +38 -0
  100. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts +2 -2
  101. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  102. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  103. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +123 -0
  104. package/dist/components/core/field/FieldListViewData.tsx +312 -0
  105. package/dist/components/core/filter/SolidFilterFields.tsx +128 -0
  106. package/dist/components/core/filter/SolidManyToOneFilterElement.tsx +60 -0
  107. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.tsx +50 -0
  108. package/dist/components/core/filter/SolidSelectionStaticFilterElement.tsx +32 -0
  109. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +180 -0
  110. package/dist/components/core/filter/fields/SolidBigintField.tsx +9 -0
  111. package/dist/components/core/filter/fields/SolidBooleanField.tsx +50 -0
  112. package/dist/components/core/filter/fields/SolidComputedField.tsx +23 -0
  113. package/dist/components/core/filter/fields/SolidDateField.tsx +58 -0
  114. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +51 -0
  115. package/dist/components/core/filter/fields/SolidDecimalField.tsx +9 -0
  116. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +46 -0
  117. package/dist/components/core/filter/fields/SolidFloatField.tsx +9 -0
  118. package/dist/components/core/filter/fields/SolidIdField.tsx +46 -0
  119. package/dist/components/core/filter/fields/SolidIntField.tsx +56 -0
  120. package/dist/components/core/filter/fields/SolidLongTextField.tsx +9 -0
  121. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +54 -0
  122. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +56 -0
  123. package/dist/components/core/filter/fields/SolidRelationField.tsx +13 -0
  124. package/dist/components/core/filter/fields/SolidRichTextField.tsx +9 -0
  125. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +46 -0
  126. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +48 -0
  127. package/dist/components/core/filter/fields/SolidShortTextField.tsx +54 -0
  128. package/dist/components/core/filter/fields/SolidTimeField.tsx +45 -0
  129. package/dist/components/core/filter/fields/SolidUuidField.tsx +45 -0
  130. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +80 -0
  131. package/dist/components/core/form/SolidFormLayouts.tsx +104 -0
  132. package/dist/components/core/form/SolidFormUserViewLayout.tsx +85 -0
  133. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  134. package/dist/components/core/form/SolidFormView.js +53 -46
  135. package/dist/components/core/form/SolidFormView.js.map +1 -1
  136. package/dist/components/core/form/SolidFormView.tsx +1352 -0
  137. package/dist/components/core/form/fields/ISolidField.tsx +69 -0
  138. package/dist/components/core/form/fields/SolidBooleanField.d.ts +4 -1
  139. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  140. package/dist/components/core/form/fields/SolidBooleanField.js +80 -29
  141. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  142. package/dist/components/core/form/fields/SolidBooleanField.tsx +269 -0
  143. package/dist/components/core/form/fields/SolidDateField.d.ts +3 -0
  144. package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
  145. package/dist/components/core/form/fields/SolidDateField.js +45 -25
  146. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  147. package/dist/components/core/form/fields/SolidDateField.tsx +153 -0
  148. package/dist/components/core/form/fields/SolidDateTimeField.d.ts +3 -0
  149. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  150. package/dist/components/core/form/fields/SolidDateTimeField.js +44 -25
  151. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  152. package/dist/components/core/form/fields/SolidDateTimeField.tsx +154 -0
  153. package/dist/components/core/form/fields/SolidDecimalField.d.ts +3 -0
  154. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  155. package/dist/components/core/form/fields/SolidDecimalField.js +41 -21
  156. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  157. package/dist/components/core/form/fields/SolidDecimalField.tsx +155 -0
  158. package/dist/components/core/form/fields/SolidEmailField.d.ts +3 -0
  159. package/dist/components/core/form/fields/SolidEmailField.d.ts.map +1 -1
  160. package/dist/components/core/form/fields/SolidEmailField.js +41 -21
  161. package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
  162. package/dist/components/core/form/fields/SolidEmailField.tsx +168 -0
  163. package/dist/components/core/form/fields/SolidIntegerField.d.ts +3 -0
  164. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  165. package/dist/components/core/form/fields/SolidIntegerField.js +41 -21
  166. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  167. package/dist/components/core/form/fields/SolidIntegerField.tsx +158 -0
  168. package/dist/components/core/form/fields/SolidJsonField.d.ts +4 -0
  169. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  170. package/dist/components/core/form/fields/SolidJsonField.js +51 -15
  171. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  172. package/dist/components/core/form/fields/SolidJsonField.tsx +173 -0
  173. package/dist/components/core/form/fields/SolidLongTextField.d.ts +3 -2
  174. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  175. package/dist/components/core/form/fields/SolidLongTextField.js +33 -52
  176. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  177. package/dist/components/core/form/fields/SolidLongTextField.tsx +161 -0
  178. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts +4 -0
  179. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  180. package/dist/components/core/form/fields/SolidMediaMultipleField.js +262 -153
  181. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  182. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +639 -0
  183. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts +4 -0
  184. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  185. package/dist/components/core/form/fields/SolidMediaSingleField.js +243 -149
  186. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  187. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +522 -0
  188. package/dist/components/core/form/fields/SolidPasswordField.d.ts +4 -0
  189. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  190. package/dist/components/core/form/fields/SolidPasswordField.js +50 -20
  191. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  192. package/dist/components/core/form/fields/SolidPasswordField.tsx +187 -0
  193. package/dist/components/core/form/fields/SolidRelationField.tsx +54 -0
  194. package/dist/components/core/form/fields/SolidRichTextField.d.ts +4 -0
  195. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  196. package/dist/components/core/form/fields/SolidRichTextField.js +49 -20
  197. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  198. package/dist/components/core/form/fields/SolidRichTextField.tsx +177 -0
  199. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts +4 -0
  200. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  201. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +88 -60
  202. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  203. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +204 -0
  204. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts +5 -1
  205. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  206. package/dist/components/core/form/fields/SolidSelectionStaticField.js +88 -27
  207. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  208. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +272 -0
  209. package/dist/components/core/form/fields/SolidShortTextField.d.ts +4 -0
  210. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  211. package/dist/components/core/form/fields/SolidShortTextField.js +57 -26
  212. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  213. package/dist/components/core/form/fields/SolidShortTextField.tsx +208 -0
  214. package/dist/components/core/form/fields/SolidTimeField.d.ts +3 -0
  215. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  216. package/dist/components/core/form/fields/SolidTimeField.js +44 -22
  217. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  218. package/dist/components/core/form/fields/SolidTimeField.tsx +147 -0
  219. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +4 -1
  220. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  221. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +77 -19
  222. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  223. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +309 -0
  224. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts +5 -1
  225. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  226. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +136 -107
  227. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  228. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +291 -0
  229. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts +5 -1
  230. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  231. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +159 -107
  232. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  233. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +311 -0
  234. package/dist/components/core/form/fields/relations/widgets/SolidRelationManyToManyAutocompleteWidget.d.ts +1 -1
  235. package/dist/components/core/form/fields/relations/widgets/SolidRelationManyToManyCheckboxWidget.d.ts +1 -1
  236. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +33 -0
  237. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +64 -0
  238. package/dist/components/core/form/fields/widgets/SolidBooleanCheckboxFieldWidget.d.ts +1 -1
  239. package/dist/components/core/form/fields/widgets/SolidBooleanSelectFieldWidget.d.ts +1 -1
  240. package/dist/components/core/form/fields/widgets/SolidFormFieldViewMediaMultipleWidget.d.ts +1 -1
  241. package/dist/components/core/form/fields/widgets/SolidFormFieldViewMediaSingleWidget.d.ts +1 -1
  242. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.d.ts +3 -0
  243. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.d.ts.map +1 -0
  244. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js +29 -0
  245. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js.map +1 -0
  246. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +46 -0
  247. package/dist/components/core/form/fields/widgets/SolidSelectionStaticAutocompleteFieldWidget.d.ts +1 -1
  248. package/dist/components/core/form/fields/widgets/SolidSelectionStaticRadioFieldWidget.d.ts +1 -1
  249. package/dist/components/core/form/widgets/CustomHtml.d.ts +1 -1
  250. package/dist/components/core/form/widgets/CustomHtml.tsx +19 -0
  251. package/dist/components/core/kanban/KanbanBoard.tsx +131 -0
  252. package/dist/components/core/kanban/KanbanCard.tsx +255 -0
  253. package/dist/components/core/kanban/KanbanColumn.tsx +139 -0
  254. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +85 -0
  255. package/dist/components/core/kanban/SolidKanbanView.tsx +803 -0
  256. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +146 -0
  257. package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
  258. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  259. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  260. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  261. package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  262. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  263. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +13 -0
  264. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  265. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  266. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  267. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  268. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  269. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  270. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  271. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
  272. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  273. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +136 -0
  274. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +158 -0
  275. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  276. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  277. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +13 -0
  278. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  279. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +6 -6
  280. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  281. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
  282. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  283. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  284. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  285. package/dist/components/core/list/ListViewRowActionPopup.tsx +42 -0
  286. package/dist/components/core/list/SolidListColumnSelector.tsx +167 -0
  287. package/dist/components/core/list/SolidListView.js +6 -6
  288. package/dist/components/core/list/SolidListView.js.map +1 -1
  289. package/dist/components/core/list/SolidListView.tsx +961 -0
  290. package/dist/components/core/list/SolidListViewColumn.tsx +162 -0
  291. package/dist/components/core/list/SolidListViewConfigure.tsx +198 -0
  292. package/dist/components/core/list/SolidListingHeader.tsx +42 -0
  293. package/dist/components/core/list/SolidManyToOneFilterElement.tsx +59 -0
  294. package/dist/components/core/list/SolidSelectionDynamicFilterElement.tsx +50 -0
  295. package/dist/components/core/list/SolidSelectionStaticFilterElement.tsx +32 -0
  296. package/dist/components/core/list/SolidTableRowCell.tsx +12 -0
  297. package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
  298. package/dist/components/core/list/columns/SolidBigintColumn.tsx +9 -0
  299. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts +2 -0
  300. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  301. package/dist/components/core/list/columns/SolidBooleanColumn.js +33 -2
  302. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  303. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +89 -0
  304. package/dist/components/core/list/columns/SolidComputedColumn.tsx +23 -0
  305. package/dist/components/core/list/columns/SolidDateColumn.d.ts.map +1 -1
  306. package/dist/components/core/list/columns/SolidDateColumn.js +27 -3
  307. package/dist/components/core/list/columns/SolidDateColumn.js.map +1 -1
  308. package/dist/components/core/list/columns/SolidDateColumn.tsx +90 -0
  309. package/dist/components/core/list/columns/SolidDatetimeColumn.d.ts.map +1 -1
  310. package/dist/components/core/list/columns/SolidDatetimeColumn.js +27 -3
  311. package/dist/components/core/list/columns/SolidDatetimeColumn.js.map +1 -1
  312. package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +79 -0
  313. package/dist/components/core/list/columns/SolidDecimalColumn.tsx +9 -0
  314. package/dist/components/core/list/columns/SolidExternalIdColumn.d.ts.map +1 -1
  315. package/dist/components/core/list/columns/SolidExternalIdColumn.js +27 -3
  316. package/dist/components/core/list/columns/SolidExternalIdColumn.js.map +1 -1
  317. package/dist/components/core/list/columns/SolidExternalIdColumn.tsx +80 -0
  318. package/dist/components/core/list/columns/SolidFloatColumn.tsx +9 -0
  319. package/dist/components/core/list/columns/SolidIdColumn.d.ts.map +1 -1
  320. package/dist/components/core/list/columns/SolidIdColumn.js +27 -3
  321. package/dist/components/core/list/columns/SolidIdColumn.js.map +1 -1
  322. package/dist/components/core/list/columns/SolidIdColumn.tsx +79 -0
  323. package/dist/components/core/list/columns/SolidIntColumn.d.ts.map +1 -1
  324. package/dist/components/core/list/columns/SolidIntColumn.js +27 -3
  325. package/dist/components/core/list/columns/SolidIntColumn.js.map +1 -1
  326. package/dist/components/core/list/columns/SolidIntColumn.tsx +87 -0
  327. package/dist/components/core/list/columns/SolidLongTextColumn.tsx +9 -0
  328. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts +2 -0
  329. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  330. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +48 -22
  331. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  332. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +100 -0
  333. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts +2 -0
  334. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  335. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +41 -13
  336. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  337. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +98 -0
  338. package/dist/components/core/list/columns/SolidRelationColumn.d.ts.map +1 -1
  339. package/dist/components/core/list/columns/SolidRelationColumn.js +7 -0
  340. package/dist/components/core/list/columns/SolidRelationColumn.js.map +1 -1
  341. package/dist/components/core/list/columns/SolidRelationColumn.tsx +20 -0
  342. package/dist/components/core/list/columns/SolidRichTextColumn.tsx +9 -0
  343. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.d.ts.map +1 -1
  344. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js +27 -3
  345. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js.map +1 -1
  346. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.tsx +80 -0
  347. package/dist/components/core/list/columns/SolidSelectionStaticColumn.d.ts.map +1 -1
  348. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js +27 -3
  349. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js.map +1 -1
  350. package/dist/components/core/list/columns/SolidSelectionStaticColumn.tsx +81 -0
  351. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts +2 -0
  352. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  353. package/dist/components/core/list/columns/SolidShortTextColumn.js +16 -37
  354. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  355. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +103 -0
  356. package/dist/components/core/list/columns/SolidTimeColumn.d.ts.map +1 -1
  357. package/dist/components/core/list/columns/SolidTimeColumn.js +27 -3
  358. package/dist/components/core/list/columns/SolidTimeColumn.js.map +1 -1
  359. package/dist/components/core/list/columns/SolidTimeColumn.tsx +78 -0
  360. package/dist/components/core/list/columns/SolidUuidColumn.d.ts.map +1 -1
  361. package/dist/components/core/list/columns/SolidUuidColumn.js +27 -3
  362. package/dist/components/core/list/columns/SolidUuidColumn.js.map +1 -1
  363. package/dist/components/core/list/columns/SolidUuidColumn.tsx +79 -0
  364. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts +6 -0
  365. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -0
  366. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +70 -0
  367. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -0
  368. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +110 -0
  369. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts +2 -0
  370. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  371. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +42 -17
  372. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  373. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +95 -0
  374. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts +6 -0
  375. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -0
  376. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +70 -0
  377. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -0
  378. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +111 -0
  379. package/dist/components/core/list/widgets/SolidRelationAvatarWidget.d.ts +4 -0
  380. package/dist/components/core/list/widgets/SolidRelationAvatarWidget.d.ts.map +1 -0
  381. package/dist/components/core/list/widgets/SolidRelationAvatarWidget.js +60 -0
  382. package/dist/components/core/list/widgets/SolidRelationAvatarWidget.js.map +1 -0
  383. package/dist/components/core/list/widgets/SolidRelationAvatarWidget.tsx +89 -0
  384. package/dist/components/core/list/widgets/SolidShortTextAvatarWidget.d.ts +3 -0
  385. package/dist/components/core/list/widgets/SolidShortTextAvatarWidget.d.ts.map +1 -0
  386. package/dist/components/core/list/widgets/SolidShortTextAvatarWidget.js +42 -0
  387. package/dist/components/core/list/widgets/SolidShortTextAvatarWidget.js.map +1 -0
  388. package/{src/components/core/list/widgets/SolidUserNameAvatarWidget.tsx → dist/components/core/list/widgets/SolidShortTextAvatarWidget.tsx} +18 -11
  389. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.d.ts +2 -1
  390. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.d.ts.map +1 -1
  391. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +4 -4
  392. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -1
  393. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +21 -0
  394. package/dist/components/core/model/CreateModel.tsx +476 -0
  395. package/dist/components/core/model/FieldMetaData.tsx +193 -0
  396. package/dist/components/core/model/FieldMetaDataForm.js +1 -1
  397. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  398. package/dist/components/core/model/FieldMetaDataForm.tsx +3048 -0
  399. package/dist/components/core/model/FieldSelector.tsx +62 -0
  400. package/dist/components/core/model/ModelListViewData.tsx +383 -0
  401. package/dist/components/core/model/ModelMetaData.tsx +840 -0
  402. package/dist/components/core/module/CreateModule.tsx +620 -0
  403. package/dist/components/core/module/ModuleListViewData.tsx +429 -0
  404. package/dist/components/core/users/CreateUser.tsx +434 -0
  405. package/dist/components/core/users/CreateUserRole.tsx +211 -0
  406. package/dist/components/core/users/UserListView.tsx +374 -0
  407. package/dist/components/layout/AdminLayout.tsx +62 -0
  408. package/dist/components/layout/AdminSidebar.tsx +65 -0
  409. package/dist/components/layout/AppConfig.d.ts +1 -1
  410. package/dist/components/layout/AppConfig.tsx +104 -0
  411. package/dist/components/layout/AppSidebar.tsx +225 -0
  412. package/dist/components/layout/ButtonLoader.tsx +7 -0
  413. package/dist/components/layout/CustomPagination.tsx +55 -0
  414. package/dist/components/layout/DashboardHeader.tsx +89 -0
  415. package/dist/components/layout/FilterMenu.tsx +122 -0
  416. package/dist/components/layout/Footer.tsx +13 -0
  417. package/dist/components/layout/GlobalSearch.tsx +37 -0
  418. package/dist/components/layout/Header.tsx +8 -0
  419. package/dist/components/layout/Layout.d.ts +1 -1
  420. package/dist/components/layout/Layout.tsx +136 -0
  421. package/dist/components/layout/ListingHeader.tsx +204 -0
  422. package/dist/components/layout/Loader.tsx +16 -0
  423. package/dist/components/layout/UserSidebar.tsx +53 -0
  424. package/dist/components/layout/context/layoutcontext.d.ts +1 -1
  425. package/dist/components/layout/context/layoutcontext.tsx +52 -0
  426. package/dist/components/layout/navbar-one.tsx +258 -0
  427. package/dist/components/layout/navbar-two-menu.tsx +73 -0
  428. package/dist/components/layout/navbar-two.tsx +37 -0
  429. package/dist/components/layout/user-profile-menu.tsx +120 -0
  430. package/dist/components/layout/user-profile.tsx +7 -0
  431. package/dist/components/modelsComponents/filterIcon.tsx +9 -0
  432. package/dist/components/tables/DemoData.tsx +318 -0
  433. package/dist/components/tables/DynamicTable.tsx +56 -0
  434. package/dist/components/tables/ListViewTable.tsx +156 -0
  435. package/dist/declarations.d.ts +19 -0
  436. package/dist/helpers/AppTitle.tsx +12 -0
  437. package/dist/helpers/ToastContainer.tsx +93 -0
  438. package/dist/helpers/authHeader.ts +20 -0
  439. package/dist/helpers/countries.tsx +260 -0
  440. package/dist/helpers/downloadMediaFile.tsx +19 -0
  441. package/dist/helpers/getAcceptedFileTypes.tsx +22 -0
  442. package/dist/helpers/getRandomColors.d.ts +4 -0
  443. package/dist/helpers/getRandomColors.d.ts.map +1 -0
  444. package/dist/helpers/getRandomColors.js +63 -0
  445. package/dist/helpers/getRandomColors.js.map +1 -0
  446. package/dist/helpers/getRandomColors.tsx +68 -0
  447. package/dist/helpers/helpers.ts +40 -0
  448. package/dist/helpers/menu.tsx +670 -0
  449. package/dist/helpers/permissions.ts +19 -0
  450. package/dist/helpers/registry.d.ts.map +1 -1
  451. package/dist/helpers/registry.js +76 -35
  452. package/dist/helpers/registry.js.map +1 -1
  453. package/dist/helpers/registry.ts +172 -0
  454. package/dist/helpers/revalidate.ts +7 -0
  455. package/dist/index.d.ts +2 -1
  456. package/dist/index.d.ts.map +1 -1
  457. package/dist/index.js +1 -0
  458. package/dist/index.js.map +1 -1
  459. package/dist/index.ts +642 -0
  460. package/dist/nextAuth/authProviders.tsx +221 -0
  461. package/dist/nextAuth/refreshAccessToken.tsx +27 -0
  462. package/dist/redux/api/articleApi.ts +55 -0
  463. package/dist/redux/api/authApi.ts +131 -0
  464. package/dist/redux/api/automationApi.ts +55 -0
  465. package/dist/redux/api/categoryApi.tsx +46 -0
  466. package/dist/redux/api/cityApi.tsx +56 -0
  467. package/dist/redux/api/cmsBannerImageApi.tsx +55 -0
  468. package/dist/redux/api/countryApi.tsx +56 -0
  469. package/dist/redux/api/fetchBaseQuery.tsx +15 -0
  470. package/dist/redux/api/fieldApi.ts +78 -0
  471. package/dist/redux/api/mediaApi.ts +55 -0
  472. package/dist/redux/api/mediaStorageProviderApi.ts +55 -0
  473. package/dist/redux/api/menuApi.tsx +55 -0
  474. package/dist/redux/api/menuItemsApi.tsx +56 -0
  475. package/dist/redux/api/modelApi.ts +77 -0
  476. package/dist/redux/api/moduleApi.ts +72 -0
  477. package/dist/redux/api/orderAttributeApi.tsx +37 -0
  478. package/dist/redux/api/permissionApi.ts +32 -0
  479. package/dist/redux/api/pincodeApi.tsx +56 -0
  480. package/dist/redux/api/productData.tsx +87 -0
  481. package/dist/redux/api/radixExtraModelAttributeApi.tsx +37 -0
  482. package/dist/redux/api/radixModelMetadataApi.tsx +62 -0
  483. package/dist/redux/api/radixModelsApi.tsx +64 -0
  484. package/dist/redux/api/ratingApi.ts +55 -0
  485. package/dist/redux/api/reviewApi.ts +55 -0
  486. package/dist/redux/api/roleApi.ts +58 -0
  487. package/dist/redux/api/solidActionApi.ts +66 -0
  488. package/dist/redux/api/solidChatterMessageApi.d.ts +7 -0
  489. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -0
  490. package/dist/redux/api/solidChatterMessageApi.js +29 -0
  491. package/dist/redux/api/solidChatterMessageApi.js.map +1 -0
  492. package/dist/redux/api/solidChatterMessageApi.ts +30 -0
  493. package/dist/redux/api/solidEntityApi.tsx +110 -0
  494. package/dist/redux/api/solidMenuApi.ts +71 -0
  495. package/dist/redux/api/solidSettingsApi.tsx +47 -0
  496. package/dist/redux/api/solidViewApi.ts +73 -0
  497. package/dist/redux/api/stateApi.tsx +56 -0
  498. package/dist/redux/api/tagApi.ts +55 -0
  499. package/dist/redux/api/tagGroupApi.tsx +55 -0
  500. package/dist/redux/api/testApi.ts +21 -0
  501. package/dist/redux/api/userApi.ts +120 -0
  502. package/dist/redux/features/authSlice.ts +19 -0
  503. package/dist/redux/features/dataViewSlice.ts +26 -0
  504. package/dist/redux/features/navbarSlice.ts +21 -0
  505. package/dist/redux/features/popupSlice.ts +27 -0
  506. package/dist/redux/features/themeSlice.ts +17 -0
  507. package/dist/redux/features/userSlice.ts +28 -0
  508. package/dist/resources/globals.css +59 -0
  509. package/dist/types/index.d.ts +60 -0
  510. package/dist/types/layout.d.ts +94 -0
  511. package/dist/types/next-auth.d.ts +0 -0
  512. package/dist/types/next.d.ts +46 -0
  513. package/dist/types/solid-core.d.ts +139 -0
  514. package/package.json +4 -3
  515. package/src/components/Svg/RightArrowSvg.tsx +9 -0
  516. package/src/components/core/chatter/SolidChatter.tsx +252 -0
  517. package/src/components/core/chatter/SolidChatterDateDivider.tsx +16 -0
  518. package/src/components/core/chatter/SolidChatterHeader.tsx +178 -0
  519. package/src/components/core/chatter/SolidChatterMessageBox.tsx +165 -0
  520. package/src/components/core/chatter/SolidMessageComposer.tsx +145 -0
  521. package/src/components/core/chatter/chatter.module.css +70 -0
  522. package/src/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +2 -2
  523. package/src/components/core/form/SolidFormView.tsx +166 -136
  524. package/src/components/core/form/fields/SolidBooleanField.tsx +170 -48
  525. package/src/components/core/form/fields/SolidDateField.tsx +86 -51
  526. package/src/components/core/form/fields/SolidDateTimeField.tsx +89 -52
  527. package/src/components/core/form/fields/SolidDecimalField.tsx +84 -49
  528. package/src/components/core/form/fields/SolidEmailField.tsx +90 -51
  529. package/src/components/core/form/fields/SolidIntegerField.tsx +86 -49
  530. package/src/components/core/form/fields/SolidJsonField.tsx +112 -42
  531. package/src/components/core/form/fields/SolidLongTextField.tsx +76 -117
  532. package/src/components/core/form/fields/SolidMediaMultipleField.tsx +474 -258
  533. package/src/components/core/form/fields/SolidMediaSingleField.tsx +408 -249
  534. package/src/components/core/form/fields/SolidPasswordField.tsx +112 -55
  535. package/src/components/core/form/fields/SolidRichTextField.tsx +105 -52
  536. package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +138 -91
  537. package/src/components/core/form/fields/SolidSelectionStaticField.tsx +169 -37
  538. package/src/components/core/form/fields/SolidShortTextField.tsx +131 -74
  539. package/src/components/core/form/fields/SolidTimeField.tsx +85 -53
  540. package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +193 -30
  541. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +206 -165
  542. package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +223 -142
  543. package/src/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +46 -0
  544. package/src/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +10 -10
  545. package/src/components/core/list/SolidListView.tsx +5 -5
  546. package/src/components/core/list/columns/SolidBooleanColumn.tsx +30 -2
  547. package/src/components/core/list/columns/SolidDateColumn.tsx +23 -8
  548. package/src/components/core/list/columns/SolidDatetimeColumn.tsx +24 -8
  549. package/src/components/core/list/columns/SolidExternalIdColumn.tsx +23 -8
  550. package/src/components/core/list/columns/SolidIdColumn.tsx +22 -7
  551. package/src/components/core/list/columns/SolidIntColumn.tsx +22 -7
  552. package/src/components/core/list/columns/SolidMediaMultipleColumn.tsx +68 -45
  553. package/src/components/core/list/columns/SolidMediaSingleColumn.tsx +48 -26
  554. package/src/components/core/list/columns/SolidRelationColumn.tsx +7 -0
  555. package/src/components/core/list/columns/SolidSelectionDynamicColumn.tsx +22 -7
  556. package/src/components/core/list/columns/SolidSelectionStaticColumn.tsx +24 -9
  557. package/src/components/core/list/columns/SolidShortTextColumn.tsx +26 -39
  558. package/src/components/core/list/columns/SolidTimeColumn.tsx +22 -7
  559. package/src/components/core/list/columns/SolidUuidColumn.tsx +22 -7
  560. package/src/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +110 -0
  561. package/src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +43 -19
  562. package/src/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +111 -0
  563. package/src/components/core/list/widgets/SolidRelationAvatarWidget.tsx +89 -0
  564. package/src/components/core/list/widgets/SolidShortTextAvatarWidget.tsx +59 -0
  565. package/src/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +5 -3
  566. package/src/components/core/model/FieldMetaDataForm.tsx +1 -1
  567. package/src/helpers/getRandomColors.tsx +68 -0
  568. package/src/helpers/registry.ts +89 -38
  569. package/src/index.ts +1 -0
  570. package/src/redux/api/solidChatterMessageApi.ts +30 -0
  571. package/src/resources/globals.css +59 -0
  572. package/src/types/solid-core.d.ts +24 -16
  573. package/src/components/core/form/fields/relations/widgets/SolidRelationManyToManyAutocompleteWidget.tsx +0 -74
  574. package/src/components/core/form/fields/relations/widgets/SolidRelationManyToManyCheckboxWidget.tsx +0 -103
  575. package/src/components/core/form/fields/widgets/SolidBooleanCheckboxFieldWidget.tsx +0 -79
  576. package/src/components/core/form/fields/widgets/SolidBooleanSelectFieldWidget.tsx +0 -68
  577. package/src/components/core/form/fields/widgets/SolidFormFieldJsonViewModeWidget.tsx +0 -23
  578. package/src/components/core/form/fields/widgets/SolidFormFieldMediaViewModeWidget.tsx +0 -13
  579. package/src/components/core/form/fields/widgets/SolidFormFieldPasswordViewModeWidget.tsx +0 -23
  580. package/src/components/core/form/fields/widgets/SolidFormFieldRelationViewModeWidget.tsx +0 -32
  581. package/src/components/core/form/fields/widgets/SolidFormFieldRichTextViewModeWidget.tsx +0 -17
  582. package/src/components/core/form/fields/widgets/SolidFormFieldViewMediaMultipleWidget.tsx +0 -174
  583. package/src/components/core/form/fields/widgets/SolidFormFieldViewMediaSingleWidget.tsx +0 -115
  584. package/src/components/core/form/fields/widgets/SolidFormFieldViewModeWidget.tsx +0 -11
  585. package/src/components/core/form/fields/widgets/SolidSelectionStaticAutocompleteFieldWidget.tsx +0 -72
  586. package/src/components/core/form/fields/widgets/SolidSelectionStaticRadioFieldWidget.tsx +0 -72
  587. package/src/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget.tsx +0 -11
@@ -0,0 +1,961 @@
1
+ // @ts-nocheck
2
+
3
+ "use client";
4
+
5
+ import React, { useState, useEffect, useRef } from "react";
6
+ import {
7
+ DataTable,
8
+ DataTableFilterMeta,
9
+ DataTableStateEvent,
10
+ } from "primereact/datatable";
11
+ import { Column } from "primereact/column";
12
+ import { FilterMatchMode } from "primereact/api";
13
+ import Link from "next/link";
14
+ import qs from "qs";
15
+ import { Button } from "primereact/button";
16
+ import { Dialog } from "primereact/dialog";
17
+ import { createSolidEntityApi } from "@/redux/api/solidEntityApi";
18
+ import { useGetSolidViewLayoutQuery } from "@/redux/api/solidViewApi";
19
+ import { SolidListViewColumn } from "./SolidListViewColumn";
20
+ // import { SolidListViewOptions } from "../common/SolidListviewOptions";
21
+ import { SolidCreateButton } from "../common/SolidCreateButton";
22
+ import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
23
+ import { pascalCase } from "change-case";
24
+ import { useLazyCheckIfPermissionExistsQuery } from "@/redux/api/userApi";
25
+ import { createPermission, deletePermission, updatePermission } from "@/helpers/permissions";
26
+ import { usePathname, useRouter, useSearchParams } from "next/navigation";
27
+ import { ListViewRowActionPopup } from "./ListViewRowActionPopup";
28
+ import FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from "@/components/core/common/FilterComponent";
29
+ import { SolidLayoutViews } from '../common/SolidLayoutViews'
30
+ import { FilterIcon } from '../../modelsComponents/filterIcon';
31
+ import { OverlayPanel } from "primereact/overlaypanel";
32
+ import { Toast } from "primereact/toast";
33
+ import { Divider } from "primereact/divider";
34
+ import CompactImage from '../../../resources/images/layout/images/compact.png';
35
+ import CozyImage from '../../../resources/images/layout/images/cozy.png';
36
+ import ComfortableImage from '../../../resources/images/layout/images/comfortable.png';
37
+ import ListImage from '../../../resources/images/layout/images/cozy.png';
38
+ import KanbanImage from '../../../resources/images/layout/images/kanban.png';
39
+ import { capitalize, filter, set } from "lodash";
40
+ import Lightbox from "yet-another-react-lightbox";
41
+ import Counter from "yet-another-react-lightbox/plugins/counter";
42
+ import Download from "yet-another-react-lightbox/plugins/download";
43
+ import "yet-another-react-lightbox/styles.css";
44
+ import "yet-another-react-lightbox/plugins/counter.css";
45
+ import { SolidListViewConfigure } from "./SolidListViewConfigure";
46
+
47
+
48
+ const getRandomInt = (min: number, max: number) => {
49
+ return Math.floor(Math.random() * (max - min + 1)) + min;
50
+ }
51
+
52
+ export const queryStringToQueryObject = () => {
53
+ const currentPageUrl = window.location.href; // Get the current page URL
54
+ const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage
55
+
56
+ if (encodedQueryString) {
57
+ try {
58
+ const decodedQueryString = atob(encodedQueryString); // Base64 decode the string
59
+ const parsedParams = qs.parse(decodedQueryString); // Parse the decoded string into an object
60
+ console.log("Parsed Params from Local Storage:", parsedParams);
61
+ return parsedParams;
62
+ } catch (error) {
63
+ console.error("Error decoding or parsing query string from local storage:", error);
64
+ }
65
+ };
66
+
67
+ };
68
+ export const queryObjectToQueryString = (queryObject: string) => {
69
+ if (queryObject) {
70
+ const stringifiedObject = qs.stringify(queryObject);
71
+ const encodedQueryString = btoa(stringifiedObject); // Base64 encode the stringified object
72
+ const currentPageUrl = window.location.href; // Get the current page URL
73
+ localStorage.setItem(currentPageUrl, encodedQueryString); // Store in local storage with the URL as the key
74
+ console.log("Encoded and stored queryObject in localStorage:", encodedQueryString);
75
+
76
+ return encodedQueryString;
77
+ }
78
+ return null;
79
+ };
80
+
81
+ type SolidListViewParams = {
82
+ moduleName: string;
83
+ modelName: string;
84
+ inlineCreate?: boolean;
85
+ handlePopUpOpen?: any;
86
+ embeded?: boolean;
87
+ customLayout?: any,
88
+ customFilter?: any
89
+ };
90
+
91
+ export const SolidListView = (params: SolidListViewParams) => {
92
+
93
+ const solidGlobalSearchElementRef = useRef();
94
+
95
+ const router = useRouter()
96
+ const searchParams = useSearchParams().toString(); // Converts the query params to a string
97
+
98
+ // TODO: The initial filter state will be created based on the fields which are present on this list view.
99
+ const [filters, setFilters] = useState<any>(params.customFilter || null);
100
+ // const [customFilter, setCustomFilter] = useState<FilterRule[]>(initialState);
101
+ // const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);
102
+
103
+ const [toPopulate, setToPopulate] = useState<string[]>([]);
104
+ const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);
105
+ const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);
106
+
107
+ const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();
108
+
109
+ useEffect(() => {
110
+ const fetchPermissions = async () => {
111
+ if (params.modelName) {
112
+ const permissionNames = [
113
+ createPermission(params.modelName),
114
+ deletePermission(params.modelName),
115
+ updatePermission(params.modelName)
116
+ ]
117
+ const queryData = {
118
+ permissionNames: permissionNames
119
+ };
120
+ const queryString = qs.stringify(queryData, {
121
+ encodeValuesOnly: true
122
+ });
123
+ const response = await triggerCheckIfPermissionExists(queryString);
124
+ setActionsAllowed(response.data.data);
125
+ }
126
+ };
127
+ fetchPermissions();
128
+ }, [params.modelName]);
129
+
130
+ const isFilterApplied = filters ? true : false;
131
+
132
+ // Create the RTK slices for this entity
133
+ const entityApi = createSolidEntityApi(params.modelName);
134
+ const {
135
+ useCreateSolidEntityMutation,
136
+ useDeleteMultipleSolidEntitiesMutation,
137
+ useDeleteSolidEntityMutation,
138
+ useGetSolidEntitiesQuery,
139
+ useGetSolidEntityByIdQuery,
140
+ useLazyGetSolidEntitiesQuery,
141
+ useLazyGetSolidEntityByIdQuery,
142
+ usePrefetch,
143
+ useUpdateSolidEntityMutation,
144
+ useRecoverSolidEntityByIdQuery,
145
+ useLazyRecoverSolidEntityByIdQuery,
146
+ useRecoverSolidEntityMutation
147
+ } = entityApi;
148
+
149
+ // Get the list view layout & metadata first.
150
+ const listViewMetaDataQs = qs.stringify({ modelName: params.modelName, moduleName: params.moduleName, viewType: 'list' }, {
151
+ encodeValuesOnly: true,
152
+ });
153
+ const [listViewMetaData, setListViewMetaData] = useState({});
154
+ const {
155
+ data: solidListViewMetaData,
156
+ error: solidListViewMetaDataError,
157
+ isLoading: solidListViewMetaDataIsLoading,
158
+ isError: solidListViewMetaDataIsError,
159
+ refetch
160
+ } = useGetSolidViewLayoutQuery(listViewMetaDataQs);
161
+
162
+ const initialFilterMethod = () => {
163
+
164
+ const solidView = solidListViewMetaData?.data?.solidView;
165
+ const solidFieldsMetadata = solidListViewMetaData?.data?.solidFieldsMetadata;
166
+
167
+ const initialFilters: any = {};
168
+ const toPopulate: string[] = [];
169
+ const toPopulateMedia: string[] = [];
170
+
171
+ for (let i = 0; i < solidView.layout.children?.length; i++) {
172
+ const column = solidView.layout.children[i];
173
+ const fieldMetadata = solidFieldsMetadata?.[column.attrs.name];
174
+ if (!fieldMetadata?.type) {
175
+ showFieldError(`${column.attrs.label} is not present in metadata`)
176
+ return;
177
+ }
178
+ // Form the initial filters after iterating over the columns and field metadata.
179
+ if (['int', 'bigint', 'float', 'decimal'].includes(fieldMetadata?.type)) {
180
+ // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] }
181
+ initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }
182
+ }
183
+ else if (['date', 'datetime', 'time', 'boolean'].includes(fieldMetadata?.type)) {
184
+ // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }
185
+ initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }
186
+ }
187
+ else if (['relation', 'selectionStatic', 'selectionDynamic'].includes(fieldMetadata?.type)) {
188
+ initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }
189
+ }
190
+ else {
191
+ // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }
192
+ initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.STARTS_WITH }
193
+ }
194
+
195
+ if (column.attrs.name === 'id') {
196
+ initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }
197
+ }
198
+
199
+ // Form the "toPopulate" array.
200
+ if (fieldMetadata.type === 'relation') {
201
+ toPopulate.push(fieldMetadata.name);
202
+ }
203
+ if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.type === 'mediaMultiple') {
204
+ toPopulateMedia.push(fieldMetadata.name);
205
+ }
206
+ }
207
+ // setFilters(initialFilters);
208
+ const rows = solidListViewMetaData?.data?.solidView?.layout?.attrs?.defaultPageSize ?? 25;
209
+ const populate = toPopulate;
210
+ const populateMedia = toPopulateMedia;
211
+ setRows(rows);
212
+ setToPopulate(populate);
213
+ setToPopulateMedia(populateMedia);
214
+ setSortField('id');
215
+ setSortOrder(-1);
216
+ return { rows, populate, populateMedia }
217
+ }
218
+
219
+ // Set the initial filter state based on the metadata.
220
+ useEffect(() => {
221
+ // refetch();
222
+ if (solidListViewMetaData) {
223
+ if (params.customLayout) {
224
+ const updatedSolidListViewMetaData = structuredClone(solidListViewMetaData);
225
+ if (updatedSolidListViewMetaData?.data?.solidView?.layout) {
226
+ updatedSolidListViewMetaData.data.solidView.layout = params.customLayout;
227
+ }
228
+ setListViewMetaData(updatedSolidListViewMetaData);
229
+ } else {
230
+ setListViewMetaData(solidListViewMetaData);
231
+ }
232
+ // initialFilterMethod()
233
+ }
234
+ }, [solidListViewMetaData]);
235
+
236
+ // set layout and actions for create and edit buttons and view modes
237
+ useEffect(() => {
238
+ if (solidListViewMetaData) {
239
+ const createActionUrl = solidListViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidListViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === "custom" ? solidListViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : "form/new";
240
+ const editActionUrl = solidListViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidListViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === "custom" ? solidListViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : "form";
241
+ const viewModes = solidListViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews && solidListViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews.length > 0 && solidListViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view } });
242
+ setViewModes(viewModes);
243
+ if (createActionUrl) {
244
+ setCreateButtonUrl(createActionUrl)
245
+ }
246
+ if (editActionUrl) {
247
+ setEditButtonUrl(editActionUrl)
248
+ }
249
+ }
250
+ }, [solidListViewMetaData])
251
+
252
+
253
+ // All list view state.
254
+ const [listViewData, setListViewData] = useState<any[]>([]);
255
+ const [first, setFirst] = useState(0);
256
+ const [rows, setRows] = useState(25);
257
+ const [totalRecords, setTotalRecords] = useState(0);
258
+ const [sortField, setSortField] = useState("");
259
+ const [sortOrder, setSortOrder] = useState(0);
260
+ const [selectedRecords, setSelectedRecords] = useState<any[]>([]);
261
+ const [selectedRecoverRecords, setSelectedRecoverRecords] = useState<any[]>([]);
262
+ const [loading, setLoading] = useState<boolean>(true);
263
+ const [isDialogVisible, setDialogVisible] = useState(false);
264
+ const [isRecoverDialogVisible, setRecoverDialogVisible] = useState(false);
265
+ const [createButtonUrl, setCreateButtonUrl] = useState<string>();
266
+ const [editButtonUrl, setEditButtonUrl] = useState<string>();
267
+ const [showArchived, setShowArchived] = useState(false);
268
+ const [queryDataLoaded, setQueryDataLoaded] = useState(false);
269
+ const [customFilter, setCustomFilter] = useState(null);
270
+ const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);
271
+
272
+ const sizeOptions = [
273
+ { label: 'Compact', value: 'small', image: CompactImage },
274
+ { label: 'Cozy', value: 'normal', image: CozyImage },
275
+ { label: 'Comfortable', value: 'large', image: ComfortableImage }
276
+ ]
277
+
278
+ // const viewModes = [
279
+ // { label: 'List ', value: 'list', image: ListImage },
280
+ // { label: 'Kanban', value: 'kanban', image: KanbanImage },
281
+ // ]
282
+
283
+ const [size, setSize] = useState<string | any>(sizeOptions[1].value);
284
+ const [viewModes, setViewModes] = useState<any>([]);
285
+
286
+ // Custom Row Action
287
+ const [listViewRowActionPopupState, setListViewRowActionPopupState] = useState(false);
288
+ const [listViewRowActionData, setListRowActionData] = useState<any>();
289
+
290
+ const toast = useRef<Toast>(null);
291
+
292
+ // Get the list view data.
293
+ const [triggerGetSolidEntities, { data: solidEntityListViewData, isLoading, error }] = useLazyGetSolidEntitiesQuery();
294
+
295
+ const [triggerRecoverSolidEntitiesById, { data: recoverByIdData, isLoading: recoverByIdIsLoading, error: recoverByIdError, isError: recoverByIdIsError, isSuccess: recoverByIdIsSuccess }] = useLazyRecoverSolidEntityByIdQuery();
296
+
297
+ const [triggerRecoverSolidEntities, { data: recoverByData, isLoading: recoverByIsLoading, error: recoverError, isError: recoverIsError, isSuccess: recoverByIsSuccess }] = useRecoverSolidEntityMutation();
298
+
299
+ // After data is fetched populate the list view state so as to be able to render the data.
300
+ useEffect(() => {
301
+ if (solidEntityListViewData) {
302
+ setListViewData(solidEntityListViewData?.records);
303
+ setTotalRecords(solidEntityListViewData?.meta.totalRecords);
304
+ setLoading(false);
305
+ }
306
+ }, [solidEntityListViewData]);
307
+
308
+ const [deleteSolidSingleEntiry, { isSuccess: isDeleteSolidSingleEntitySuccess }] = useDeleteSolidEntityMutation()
309
+
310
+ // Delete mutation
311
+ const [
312
+ deleteManySolidEntities,
313
+ {
314
+ isLoading: isSolidEntitiesDeleted,
315
+ isSuccess: isDeleteSolidEntitiesSucess,
316
+ isError: isSolidEntitiesDeleteError,
317
+ error: SolidEntitiesDeleteError,
318
+ data: DeletedSolidEntities,
319
+ },
320
+ ] = useDeleteMultipleSolidEntitiesMutation();
321
+
322
+
323
+ // Fetch data after toPopulate has been populated...
324
+ useEffect(() => {
325
+ if (solidListViewMetaData) {
326
+ const queryObject = queryStringToQueryObject();
327
+
328
+ if (queryObject) {
329
+ const queryData = {
330
+ offset: queryObject.offset || 0,
331
+ limit: queryObject.limit || 25,
332
+ populate: queryObject.populate,
333
+ populateMedia: queryObject.populateMedia,
334
+ sort: queryObject.sort ? queryObject.sort?.map((sortItem: string) => {
335
+ const [field, order] = sortItem.split(":");
336
+ return { field, order };
337
+ }) : [`id:desc`],
338
+ filters: queryObject.filters
339
+ };
340
+ const filters = {
341
+ $and: []
342
+ }
343
+ if (queryObject.s_filter) {
344
+ filters.$and.push(queryObject.s_filter);
345
+ }
346
+ if (queryObject.c_filter) {
347
+ filters.$and.push(queryObject.c_filter);
348
+ }
349
+ setRows(queryData.limit);
350
+ setToPopulate(queryData?.populate);
351
+ setToPopulateMedia(queryData?.populateMedia);
352
+ setFirst(queryData?.offset);
353
+ setSortField(queryData?.sort[0]?.field);
354
+ setSortOrder(queryData?.sort[0]?.order);
355
+ setFilters(filters);
356
+ setQueryDataLoaded(true);
357
+ } else {
358
+ initialFilterMethod();
359
+ setQueryDataLoaded(true)
360
+ }
361
+ setSelectedRecords([]);
362
+ setSelectedRecoverRecords([]);
363
+
364
+ }
365
+ }, [isDeleteSolidEntitiesSucess, isDeleteSolidSingleEntitySuccess, recoverByIdIsSuccess, recoverByIsSuccess, solidListViewMetaData]);
366
+
367
+ useEffect(() => {
368
+ if (queryDataLoaded) {
369
+ setQueryString(
370
+ first,
371
+ rows,
372
+ sortField,
373
+ sortOrder,
374
+ filters,
375
+ showArchived
376
+ );
377
+ }
378
+ }, [first, rows, sortField, sortOrder, showArchived, toPopulate, toPopulateMedia, customFilter, queryDataLoaded]);
379
+
380
+ // Handle pagination event.
381
+ const onPageChange = (event: any) => {
382
+ setFirst(event.first);
383
+ setRows(event.rows);
384
+ // setQueryString(event.first, event.rows, sortField, sortOrder, filters, showArchived);
385
+ };
386
+
387
+ // Handle sort event.
388
+ const onSort = (event: DataTableStateEvent) => {
389
+ const { sortField, sortOrder } = event;
390
+ const validSortOrder = sortOrder === 1 || sortOrder === -1 ? sortOrder : 0;
391
+ setSortField(sortField);
392
+ setSortOrder(validSortOrder);
393
+ setFirst(0);
394
+ // setQueryString(
395
+ // 0,
396
+ // rows,
397
+ // sortField,
398
+ // sortOrder === 1 || sortOrder === -1 ? sortOrder : 0,
399
+ // filters
400
+ // );
401
+ };
402
+
403
+ // handle change in the records which are currently selected...
404
+ const onSelectionChange = (event: any) => {
405
+ const value = event.value;
406
+ const activeRecords = value.filter((record: any) => record.deletedAt === null);
407
+ const deletedRecords = value.filter((record: any) => record.deletedAt !== null);
408
+
409
+ setSelectedRecords(activeRecords);
410
+ setSelectedRecoverRecords(deletedRecords);
411
+ };
412
+
413
+ const identifySolidOperatorAndValue = (primeReactMatchMode: FilterMatchMode, value: any): { operator: string, value: string | string[] | any[] } => {
414
+ // @ts-ignore
415
+ if (primeReactMatchMode.label && primeReactMatchMode.label === 'Not In') {
416
+ primeReactMatchMode = FilterMatchMode.NOT_IN;
417
+ }
418
+
419
+ // Default value, this might not be useful as the solid server might not support these match modes.
420
+ let solidOperator = '';
421
+ let solidValue = value[0];
422
+
423
+ switch (primeReactMatchMode) {
424
+ case FilterMatchMode.STARTS_WITH:
425
+ solidOperator = "$startsWithi";
426
+ break;
427
+ case FilterMatchMode.CONTAINS:
428
+ solidOperator = "$containsi";
429
+ break;
430
+ case FilterMatchMode.NOT_CONTAINS:
431
+ solidOperator = "$notContains";
432
+ break;
433
+ case FilterMatchMode.ENDS_WITH:
434
+ solidOperator = "$endsWith";
435
+ break;
436
+ case FilterMatchMode.EQUALS:
437
+ solidOperator = "$eqi";
438
+ solidValue = value;
439
+ break;
440
+ case FilterMatchMode.NOT_EQUALS:
441
+ solidOperator = "$nei";
442
+ solidValue = value;
443
+ break;
444
+ case FilterMatchMode.IN:
445
+ solidOperator = "$in";
446
+ solidValue = value;
447
+ break;
448
+ case FilterMatchMode.NOT_IN:
449
+ solidOperator = "$notIn";
450
+ solidValue = value;
451
+ break;
452
+ case FilterMatchMode.LESS_THAN:
453
+ solidOperator = "$lt";
454
+ break;
455
+ case FilterMatchMode.LESS_THAN_OR_EQUAL_TO:
456
+ solidOperator = "$lte";
457
+ break;
458
+ case FilterMatchMode.GREATER_THAN:
459
+ solidOperator = "$gt";
460
+ break;
461
+ case FilterMatchMode.GREATER_THAN_OR_EQUAL_TO:
462
+ solidOperator = "$gte";
463
+ break;
464
+ case FilterMatchMode.BETWEEN:
465
+ solidOperator = "$between";
466
+ solidValue = value;
467
+ break;
468
+ }
469
+
470
+ return { operator: solidOperator, value: solidValue };
471
+
472
+ }
473
+
474
+ // Common utility function that gets called on filter, sort & pagination events.
475
+ // This function creates the query string as per the solid backend API specification
476
+ const setQueryString = async (
477
+ offset?: number,
478
+ limit?: number,
479
+ sortField?: string,
480
+ sortOrder?: number,
481
+ filters?: any,
482
+ showArchived?: boolean,
483
+ ) => {
484
+
485
+ const solidFieldsMetadata = solidListViewMetaData?.data?.solidFieldsMetadata;
486
+
487
+
488
+ const queryData: any = {
489
+ offset: offset ?? first,
490
+ limit: limit ?? rows,
491
+ filters: filters ?? filters,
492
+ populate: toPopulate,
493
+ populateMedia: toPopulateMedia
494
+ };
495
+
496
+ if (sortField) {
497
+ const sortFieldMetadata = solidFieldsMetadata[sortField];
498
+ if (sortFieldMetadata.type === 'relation' && sortFieldMetadata.relationType === 'many-to-one') {
499
+ sortField = `${sortField}.${sortFieldMetadata?.relationModel?.userKeyField?.name}`;
500
+ }
501
+ queryData.sort = [
502
+ `${sortField}:${sortOrder == 0 ? null : sortOrder == 1 ? "asc" : "desc"}`,
503
+ ];
504
+ }
505
+ else {
506
+ queryData.sort = [`id:desc`];
507
+ }
508
+
509
+ if (showArchived) {
510
+ queryData.showSoftDeleted = 'inclusive';
511
+ }
512
+ const queryString = qs.stringify(queryData, { encodeValuesOnly: true });
513
+
514
+ if (customFilter) {
515
+ let url
516
+ const urlData = queryData;
517
+ delete urlData.filters;
518
+ urlData.s_filter = customFilter.s_filter || {};
519
+ urlData.c_filter = customFilter.c_filter || {};
520
+ queryObjectToQueryString(urlData);
521
+ }
522
+ triggerGetSolidEntities(queryString);
523
+ };
524
+
525
+ // handle filter...
526
+ const handleApplyCustomFilter = (transformedFilter: any) => {
527
+
528
+ const queryfilter = {
529
+ $and: [
530
+ ]
531
+ }
532
+ if (transformedFilter.s_filter) {
533
+ queryfilter.$and.push(transformedFilter.s_filter)
534
+ }
535
+ if (transformedFilter.c_filter) {
536
+ queryfilter.$and.push(transformedFilter.c_filter)
537
+ }
538
+
539
+ const customFilter = transformedFilter;
540
+ const updatedFilter = { ...(filters || {}), ...(queryfilter || {}) };
541
+ setFilters((prevFilters) => ({ ...(prevFilters || {}), ...(queryfilter || {}) }));
542
+ setCustomFilter(customFilter)
543
+ };
544
+
545
+ // clear Filter
546
+ const clearFilter = () => {
547
+ if (solidListViewMetaData) {
548
+ initialFilterMethod()
549
+ }
550
+ setFilters(null)
551
+ solidGlobalSearchElementRef.current.clearFilter()
552
+ };
553
+
554
+ const [selectedSolidViewData, setSelectedSolidViewData] = useState<any>()
555
+
556
+ const op = useRef(null)
557
+ const [deleteEntity, setDeleteEntity] = useState(false);
558
+
559
+ // clickable link allowing one to open the detail / form view.
560
+ const detailsBodyTemplate = (solidViewData: any) => {
561
+ return (
562
+ <div>
563
+ <Button
564
+ type="button"
565
+ text
566
+ size="small"
567
+ className=""
568
+ onClick={(e) =>
569
+ // @ts-ignore
570
+ {
571
+ e.stopPropagation();
572
+ op.current.toggle(e);
573
+ setSelectedSolidViewData(solidViewData)
574
+ }
575
+ }
576
+
577
+ >
578
+ <svg xmlns="http://www.w3.org/2000/svg" width="3" height="10" viewBox="0 0 4 16" fill="none">
579
+ <path d="M4 14C4 14.55 3.80417 15.0208 3.4125 15.4125C3.02083 15.8042 2.55 16 2 16C1.45 16 0.979167 15.8042 0.5875 15.4125C0.195833 15.0208 0 14.55 0 14C0 13.45 0.195833 12.9792 0.5875 12.5875C0.979167 12.1958 1.45 12 2 12C2.55 12 3.02083 12.1958 3.4125 12.5875C3.80417 12.9792 4 13.45 4 14ZM4 8C4 8.55 3.80417 9.02083 3.4125 9.4125C3.02083 9.80417 2.55 10 2 10C1.45 10 0.979167 9.80417 0.5875 9.4125C0.195833 9.02083 0 8.55 0 8C0 7.45 0.195833 6.97917 0.5875 6.5875C0.979167 6.19583 1.45 6 2 6C2.55 6 3.02083 6.19583 3.4125 6.5875C3.80417 6.97917 4 7.45 4 8ZM4 2C4 2.55 3.80417 3.02083 3.4125 3.4125C3.02083 3.80417 2.55 4 2 4C1.45 4 0.979167 3.80417 0.5875 3.4125C0.195833 3.02083 0 2.55 0 2C0 1.45 0.195833 0.979166 0.5875 0.5875C0.979167 0.195833 1.45 0 2 0C2.55 0 3.02083 0.195833 3.4125 0.5875C3.80417 0.979166 4 1.45 4 2Z" fill="#666666" />
580
+ </svg>
581
+ </Button>
582
+ </div>
583
+ // <a onClick={() => {
584
+ // if (params.embeded == true) {
585
+ // params.handlePopUpOpen(solidViewData.id);
586
+ // } else {
587
+ // router.push(`${editButtonUrl}/${solidViewData.id}`)
588
+ // }
589
+ // }} rel="noopener noreferrer" className="text-sm font-bold p-0" style={{ color: "#12415D" }}>
590
+ // <i className="pi pi-pencil" style={{ fontSize: "1rem" }}></i>
591
+ // </a>
592
+ );
593
+ };
594
+
595
+ // Recover functions
596
+ const recoverById = (id) => {
597
+ triggerRecoverSolidEntitiesById(id);
598
+ }
599
+
600
+ const recoverAll = () => {
601
+ let recoverList: any = [];
602
+ selectedRecoverRecords.forEach((element: any) => {
603
+ recoverList.push(element.id);
604
+ });
605
+ triggerRecoverSolidEntities(recoverList);
606
+ setRecoverDialogVisible(false);
607
+ }
608
+
609
+ useEffect(() => {
610
+ if (recoverIsError || recoverByIdIsError) {
611
+ showError(recoverByIdIsError ? recoverByIdError : recoverError);
612
+ }
613
+ }, [recoverIsError, recoverByIdIsError])
614
+
615
+ const showError = async (error) => {
616
+ const errorMessages = error?.data?.message;
617
+ if (errorMessages.length > 0) {
618
+ toast?.current?.show({
619
+ severity: "error",
620
+ summary: "Can you send me the report?",
621
+ // sticky: true,
622
+ life: 3000,
623
+ //@ts-ignore
624
+ content: (props) => (
625
+ <div
626
+ className="flex flex-column align-items-left"
627
+ style={{ flex: "1" }}
628
+ >
629
+ {errorMessages.map((m, index) => (
630
+ <div className="flex align-items-center gap-2" key={index}>
631
+ <span className="font-bold text-900">{String(m)}</span>
632
+ </div>
633
+ ))}
634
+ </div>
635
+ ),
636
+ });
637
+ }
638
+ };
639
+
640
+ const showFieldError = async (error) => {
641
+ if (error) {
642
+ toast?.current?.show({
643
+ severity: "error",
644
+ summary: "Can you send me the report?",
645
+ // sticky: true,
646
+ life: 3000,
647
+ //@ts-ignore
648
+ content: (props) => (
649
+ <div
650
+ className="flex flex-column align-items-left"
651
+ style={{ flex: "1" }}
652
+ >
653
+ <div className="flex align-items-center gap-2" >
654
+ <span className="font-bold text-900">{String(error)}</span>
655
+ </div>
656
+ </div>
657
+ ),
658
+ });
659
+ }
660
+ };
661
+
662
+ // handle bulk deletion
663
+ const deleteBulk = () => {
664
+ let deleteList: any = [];
665
+ selectedRecords.forEach((element: any) => {
666
+ deleteList.push(element.id);
667
+ });
668
+ deleteManySolidEntities(deleteList);
669
+ setDialogVisible(false);
670
+ };
671
+
672
+ // handle closing of the delete dialog...
673
+ const onDeleteClose = () => {
674
+ setDialogVisible(false);
675
+ setSelectedRecords([]);
676
+ setSelectedRecoverRecords([]);
677
+ }
678
+
679
+ const [openLightbox, setOpenLightbox] = useState(false);
680
+ const [lightboxUrls, setLightboxUrls] = useState({});
681
+
682
+ // Render columns dynamically based on metadata
683
+ const renderColumnsDynamically = (solidListViewMetaData: any) => {
684
+ if (!solidListViewMetaData) {
685
+ return;
686
+ }
687
+ if (!solidListViewMetaData.data) {
688
+ return;
689
+ }
690
+ const solidView = solidListViewMetaData.data.solidView;
691
+ const solidFieldsMetadata = solidListViewMetaData.data.solidFieldsMetadata;
692
+ if (!solidView || !solidFieldsMetadata) {
693
+ return;
694
+ }
695
+ return solidView.layout.children?.map((column: any) => {
696
+ const fieldMetadata = solidFieldsMetadata[column.attrs.name];
697
+ if (!fieldMetadata) {
698
+ return;
699
+ }
700
+
701
+ return SolidListViewColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });
702
+
703
+ });
704
+ };
705
+
706
+ //Note - Custom Row Action Popup
707
+ const closeListViewRowActionPopup = () => {
708
+ setListViewRowActionPopupState(false)
709
+ }
710
+
711
+ return (
712
+ <div className="page-parent-wrapper">
713
+ <div className="page-header">
714
+ <Toast ref={toast} />
715
+ <div className="flex gap-3 align-items-center">
716
+ <p className="m-0 view-title">{solidListViewMetaData?.data?.solidView?.displayName}</p>
717
+ {solidListViewMetaData?.data?.solidView?.layout?.attrs?.enableGlobalSearch === true && params.embeded === false &&
718
+ <SolidGlobalSearchElement showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} filters={filters} clearFilter={clearFilter} ref={solidGlobalSearchElementRef} viewData={solidListViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter}></SolidGlobalSearchElement>
719
+ }
720
+ </div>
721
+ <div className="flex align-items-center gap-3">
722
+
723
+ {actionsAllowed.includes(`${createPermission(params.modelName)}`) && solidListViewMetaData?.data?.solidView?.layout?.attrs?.create !== false && params.embeded !== true &&
724
+ <SolidCreateButton url={createButtonUrl} />
725
+ }
726
+ {actionsAllowed.includes(`${createPermission(params.modelName)}`) && solidListViewMetaData?.data?.solidView?.layout?.attrs?.create !== false && params.embeded == true && params.inlineCreate == true && params.id !== 'new' &&
727
+ // < SolidCreateButton url={createButtonUrl} />
728
+ <Button type="button" icon="pi pi-plus" label="Add" size='small'
729
+ onClick={() => params.handlePopUpOpen("new")}
730
+ ></Button>
731
+ }
732
+ {/* Button For Manual Refresh */}
733
+ {params.embeded !== true &&
734
+ <Button
735
+ type="button"
736
+ size="small"
737
+ icon="pi pi-refresh"
738
+ severity="secondary"
739
+ outlined
740
+ onClick={() => {
741
+ setQueryString(first, rows, sortField, sortOrder, filters, showArchived);
742
+ }}
743
+ />
744
+ }
745
+ {showArchived && <Button type="button" icon="pi pi-refresh" label="Recover" size='small' severity="secondary"
746
+ onClick={() => setRecoverDialogVisible(true)}
747
+ ></Button>}
748
+
749
+ {params.embeded === false && (solidListViewMetaData?.data?.solidView?.layout?.attrs?.configureView !== false) &&
750
+ <SolidListViewConfigure
751
+ listViewMetaData={listViewMetaData}
752
+ setShowArchived={setShowArchived}
753
+ showArchived={showArchived}
754
+ viewData={solidListViewMetaData}
755
+ sizeOptions={sizeOptions}
756
+ setSize={setSize}
757
+ size={size}
758
+ viewModes={viewModes}
759
+ params={params}
760
+ actionsAllowed={actionsAllowed}
761
+ selectedRecords={selectedRecords}
762
+ setDialogVisible={setDialogVisible}
763
+ setShowSaveFilterPopup={setShowSaveFilterPopup}
764
+ />
765
+ }
766
+
767
+ </div>
768
+ </div>
769
+ <style>{`.p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);} .greyed-out-row { background-color: #f5f5f5 !important; color: #a0a0a0 !important; opacity: 0.6;}`}</style>
770
+ <div className="solid-datatable-wrapper">
771
+ <DataTable
772
+ value={listViewData}
773
+ rowClassName={(rowData) => {
774
+ return rowData.deletedAt ? "greyed-out-row" : "";
775
+ }}
776
+ showGridlines={false}
777
+ lazy
778
+ scrollable
779
+ // scrollHeight="90vh"
780
+ size={size}
781
+ resizableColumns
782
+ paginator={true}
783
+ rows={rows}
784
+ rowsPerPageOptions={solidListViewMetaData?.data?.solidView?.layout?.attrs?.pageSizeOptions}
785
+ dataKey="id"
786
+ emptyMessage={solidListViewMetaData?.data?.solidView?.model?.description || 'No Entities found.'}
787
+ filterDisplay="menu"
788
+ totalRecords={totalRecords}
789
+ first={first}
790
+ onPage={onPageChange}
791
+ onSort={(e: DataTableStateEvent) => onSort(e)}
792
+ sortField={sortField}
793
+ sortOrder={sortOrder === 1 || sortOrder === -1 ? sortOrder : 0}
794
+ loading={loading || isLoading}
795
+ loadingIcon="pi pi-spinner"
796
+ selection={[...selectedRecords, ...selectedRecoverRecords]}
797
+ onSelectionChange={onSelectionChange}
798
+ selectionMode="checkbox"
799
+ removableSort
800
+ filterIcon={<FilterIcon />}
801
+ tableClassName="solid-data-table"
802
+ paginatorClassName="solid-paginator"
803
+ paginatorTemplate="RowsPerPageDropdown CurrentPageReport PrevPageLink NextPageLink"
804
+ currentPageReportTemplate="{first} - {last} of {totalRecords}"
805
+ onRowClick={(e) => {
806
+ const rowData = e.data;
807
+ if (
808
+ !(
809
+ actionsAllowed.includes(updatePermission(params.modelName)) &&
810
+ solidListViewMetaData?.data?.solidView?.layout?.attrs?.edit !== false
811
+ )
812
+ ) {
813
+ return;
814
+ }
815
+ if (params.embeded == true) {
816
+ params.handlePopUpOpen(rowData?.id);
817
+ } else {
818
+ if (typeof window !== "undefined") {
819
+ sessionStorage.setItem("fromView", "list");
820
+ }
821
+ router.push(`${editButtonUrl}/${rowData?.id}`);
822
+ }
823
+ }}
824
+ >
825
+
826
+ <Column selectionMode="multiple" headerStyle={{ width: "3em" }} />
827
+
828
+ {renderColumnsDynamically(listViewMetaData)}
829
+ {actionsAllowed.includes(`${updatePermission(params.modelName)}`) && solidListViewMetaData?.data?.solidView?.layout?.attrs?.edit !== false &&
830
+ <Column frozen alignFrozen="right" body={(rowData) => (
831
+ rowData?.deletedAt ? (
832
+ <a onClick={(event) => { event.stopPropagation(); recoverById(rowData.id) }} className="retrieve-button">
833
+ <i className="pi pi-refresh" style={{ fontSize: "1rem" }} />
834
+ </a>
835
+ ) :
836
+ <>
837
+ {detailsBodyTemplate(rowData)}
838
+ <OverlayPanel ref={op} className="solid-custom-overlay" style={{ top: 10, minWidth: 120 }}>
839
+ <div className="flex flex-column gap-1 p-1">
840
+ <Button
841
+ type="button"
842
+ className="w-full text-left gap-1"
843
+ label="Edit"
844
+ size="small"
845
+ iconPos="left"
846
+ icon={"pi pi-pencil"}
847
+ onClick={() => {
848
+ if (params.embeded == true) {
849
+ params.handlePopUpOpen(selectedSolidViewData?.id);
850
+ } else {
851
+ router.push(`${editButtonUrl}/${selectedSolidViewData?.id}`)
852
+ }
853
+ }}
854
+ />
855
+ {actionsAllowed.includes(`${deletePermission(params.modelName)}`) && solidListViewMetaData?.data?.solidView?.layout?.attrs?.delete !== false &&
856
+ <Button
857
+ text
858
+ type="button"
859
+ className="w-full text-left gap-1"
860
+ label="Delete"
861
+ size="small"
862
+ iconPos="left"
863
+ severity="danger"
864
+ icon={'pi pi-trash'}
865
+ onClick={() => setDeleteEntity(true)}
866
+ />
867
+ }
868
+ {solidListViewMetaData?.data?.solidView?.layout?.attrs?.rowButtons &&
869
+ solidListViewMetaData?.data?.solidView?.layout?.attrs?.rowButtons.map((rowButton: any) => {
870
+ return (
871
+ <Button
872
+ text
873
+ size="small"
874
+ icon={rowButton?.attrs?.className ? rowButton?.attrs?.className : "pi pi-pencil"}
875
+ onClick={() => {
876
+ setListRowActionData({
877
+ modelName: params.modelName,
878
+ moduleName: params.moduleName,
879
+ rowAction: rowButton,
880
+ rowData: selectedSolidViewData,
881
+ closeListViewRowActionPopup: closeListViewRowActionPopup
882
+
883
+ });
884
+ setListViewRowActionPopupState(true)
885
+ }
886
+ }
887
+ className="w-full text-left gap-2"
888
+ label={rowButton?.attrs?.label}
889
+ />
890
+ );
891
+ })}
892
+ </div>
893
+ </OverlayPanel>
894
+ </>
895
+ )}></Column>
896
+ }
897
+ </DataTable>
898
+ </div>
899
+ <Dialog
900
+ visible={isDialogVisible}
901
+ header="Confirm Delete"
902
+ modal
903
+ footer={() => (
904
+ <div className="flex justify-content-center">
905
+ <Button label="Yes" icon="pi pi-check" severity="danger" autoFocus onClick={deleteBulk} />
906
+ <Button label="No" icon="pi pi-times" onClick={onDeleteClose} />
907
+ </div>
908
+ )}
909
+ onHide={() => setDialogVisible(false)}
910
+ >
911
+ <p>Are you sure you want to delete the selected records?</p>
912
+ </Dialog>
913
+
914
+ <Dialog
915
+ visible={isRecoverDialogVisible}
916
+ header="Confirm Recover"
917
+ modal
918
+ footer={() => (
919
+ <div className="flex justify-content-center">
920
+ <Button label="Yes" icon="pi pi-check" severity="danger" autoFocus onClick={recoverAll} />
921
+ <Button label="No" icon="pi pi-times" onClick={() => setRecoverDialogVisible(false)} />
922
+ </div>
923
+ )}
924
+ onHide={() => setRecoverDialogVisible(false)}
925
+ >
926
+ <p>Are you sure you want to recover all records?</p>
927
+ </Dialog>
928
+
929
+ {listViewRowActionData &&
930
+ <Dialog
931
+ visible={listViewRowActionPopupState}
932
+ modal
933
+ onHide={closeListViewRowActionPopup}
934
+ >
935
+ <ListViewRowActionPopup context={listViewRowActionData}></ListViewRowActionPopup>
936
+ </Dialog>
937
+ }
938
+ <Dialog header="Delete Field" headerClassName="py-2" contentClassName="px-0 pb-0" visible={deleteEntity} style={{ width: '20vw' }} onHide={() => { if (!deleteEntity) return; setDeleteEntity(false); }}>
939
+ <Divider className="m-0" />
940
+ <div className="p-4">
941
+ <p className="m-0 solid-primary-title" style={{ fontSize: 16 }}>
942
+ Are you sure you want to delete this Field ?
943
+ </p>
944
+ <p className="" style={{ color: 'var{--solid-grey-500}' }}>{selectedSolidViewData?.singularName}</p>
945
+ <div className="flex align-items-center gap-2 mt-3">
946
+ <Button label="Delete" size="small" onClick={() => { deleteSolidSingleEntiry(selectedSolidViewData?.id); setDeleteEntity(false); }} />
947
+ <Button label="Cancel" size="small" onClick={() => setDeleteEntity(false)} outlined className='bg-primary-reverse' />
948
+ </div>
949
+ </div>
950
+ </Dialog>
951
+ {openLightbox &&
952
+ <Lightbox
953
+ open={openLightbox}
954
+ plugins={[Counter, Download]}
955
+ close={() => setOpenLightbox(false)}
956
+ slides={lightboxUrls}
957
+ />
958
+ }
959
+ </div>
960
+ );
961
+ };