@solidxai/core-ui 0.1.13-beta.2 → 0.1.13-beta.4

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 (501) hide show
  1. package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
  2. package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
  3. package/dist/components/auth/SolidOTPVerify.js +67 -0
  4. package/dist/components/auth/SolidOTPVerify.js.map +1 -0
  5. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  6. package/dist/components/common/AuthBanner.d.ts +3 -0
  7. package/dist/components/common/AuthBanner.d.ts.map +1 -0
  8. package/dist/components/common/AuthBanner.js +15 -0
  9. package/dist/components/common/AuthBanner.js.map +1 -0
  10. package/dist/components/common/AuthBanner.tsx +41 -0
  11. package/dist/components/common/SingleSelectAutoCompleteField.d.ts +2 -0
  12. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -0
  13. package/dist/components/common/SingleSelectAutoCompleteField.js +92 -0
  14. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -0
  15. package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
  16. package/dist/components/common/SolidExportStepper.d.ts +12 -0
  17. package/dist/components/common/SolidExportStepper.d.ts.map +1 -0
  18. package/dist/components/common/SolidExportStepper.js +30 -0
  19. package/dist/components/common/SolidExportStepper.js.map +1 -0
  20. package/dist/components/common/SolidExportStepper.tsx +135 -0
  21. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  22. package/dist/components/core/card/SolidCardView.js +6 -11
  23. package/dist/components/core/card/SolidCardView.js.map +1 -1
  24. package/dist/components/core/card/SolidCardView.tsx +6 -11
  25. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  26. package/dist/components/core/card/SolidCardViewConfigure.js +3 -7
  27. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  28. package/dist/components/core/card/SolidCardViewConfigure.tsx +3 -9
  29. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
  30. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
  31. package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
  32. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
  33. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  34. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts +2 -0
  35. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts.map +1 -0
  36. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js +16 -0
  37. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js.map +1 -0
  38. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
  39. package/dist/components/core/dashboard/DashboardFilter.d.ts +13 -0
  40. package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -0
  41. package/dist/components/core/dashboard/DashboardFilter.js +299 -0
  42. package/dist/components/core/dashboard/DashboardFilter.js.map +1 -0
  43. package/dist/components/core/dashboard/DashboardFilter.tsx +348 -0
  44. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
  45. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
  46. package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
  47. package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
  48. package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
  49. package/dist/components/core/dashboard/SolidDashboard.d.ts +28 -0
  50. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -0
  51. package/dist/components/core/dashboard/SolidDashboard.js +183 -0
  52. package/dist/components/core/dashboard/SolidDashboard.js.map +1 -0
  53. package/dist/components/core/dashboard/SolidDashboard.module.css +83 -0
  54. package/dist/components/core/dashboard/SolidDashboard.tsx +263 -0
  55. package/dist/components/core/dashboard/SolidDashboardBody.d.ts +24 -0
  56. package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -0
  57. package/dist/components/core/dashboard/SolidDashboardBody.js +162 -0
  58. package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -0
  59. package/dist/components/core/dashboard/SolidDashboardBody.tsx +168 -0
  60. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts +2 -0
  61. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts.map +1 -0
  62. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +11 -0
  63. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -0
  64. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
  65. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts +3 -0
  66. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts.map +1 -0
  67. package/dist/components/core/dashboard/SolidDashboardHeader.js +6 -0
  68. package/dist/components/core/dashboard/SolidDashboardHeader.js.map +1 -0
  69. package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
  70. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts +2 -0
  71. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +1 -0
  72. package/dist/components/core/dashboard/SolidDashboardLoading.js +10 -0
  73. package/dist/components/core/dashboard/SolidDashboardLoading.js.map +1 -0
  74. package/dist/components/core/dashboard/SolidDashboardLoading.tsx +61 -0
  75. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts +3 -0
  76. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts.map +1 -0
  77. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +12 -0
  78. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -0
  79. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
  80. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts +2 -0
  81. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +1 -0
  82. package/dist/components/core/dashboard/SolidDashboardRenderError.js +11 -0
  83. package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +1 -0
  84. package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +28 -0
  85. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts +19 -0
  86. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +1 -0
  87. package/dist/components/core/dashboard/SolidDashboardVariable.js +171 -0
  88. package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -0
  89. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +259 -0
  90. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts +9 -0
  91. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -0
  92. package/dist/components/core/dashboard/SolidQuestionRenderer.js +42 -0
  93. package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -0
  94. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +99 -0
  95. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts +9 -0
  96. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -0
  97. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +35 -0
  98. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -0
  99. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +48 -0
  100. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts +7 -0
  101. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +1 -0
  102. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +22 -0
  103. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +1 -0
  104. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +51 -0
  105. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts +2 -0
  106. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts.map +1 -0
  107. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js +4 -0
  108. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js.map +1 -0
  109. package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
  110. package/dist/components/core/dashboard/dashboard-utils.d.ts +2 -0
  111. package/dist/components/core/dashboard/dashboard-utils.d.ts.map +1 -0
  112. package/dist/components/core/dashboard/dashboard-utils.js +38 -0
  113. package/dist/components/core/dashboard/dashboard-utils.js.map +1 -0
  114. package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
  115. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
  116. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
  117. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
  118. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
  119. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
  120. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
  121. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
  122. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
  123. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
  124. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
  125. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
  126. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
  127. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
  128. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
  129. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
  130. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts +4 -0
  131. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts.map +1 -0
  132. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +23 -0
  133. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +1 -0
  134. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
  135. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  136. package/dist/components/core/form/SolidFormView.js +2 -10
  137. package/dist/components/core/form/SolidFormView.js.map +1 -1
  138. package/dist/components/core/form/SolidFormView.tsx +2 -10
  139. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  140. package/dist/components/core/form/fields/SolidMediaMultipleField.js +111 -106
  141. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  142. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +165 -134
  143. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  144. package/dist/components/core/form/fields/SolidMediaSingleField.js +81 -84
  145. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  146. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +97 -86
  147. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  148. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  149. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  150. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  151. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  152. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  153. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  154. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
  155. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  156. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  157. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  158. package/dist/components/core/kanban/SolidKanbanView.js +6 -11
  159. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  160. package/dist/components/core/kanban/SolidKanbanView.tsx +6 -11
  161. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  162. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +3 -7
  163. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  164. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +3 -9
  165. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +12 -0
  166. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
  167. package/dist/components/core/kanban/SolidKanbanViewFields.js +145 -0
  168. package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
  169. package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
  170. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
  171. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
  172. package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
  173. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
  174. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  175. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
  176. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
  177. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +73 -0
  178. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
  179. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  180. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
  181. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
  182. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +20 -0
  183. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
  184. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  185. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
  186. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
  187. package/dist/components/core/kanban/SolidVarInputsFilterElement.js +81 -0
  188. package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
  189. package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  190. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
  191. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
  192. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +7 -0
  193. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
  194. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  195. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
  196. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
  197. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
  198. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
  199. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
  200. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
  201. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
  202. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +21 -0
  203. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
  204. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  205. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
  206. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
  207. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
  208. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
  209. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  210. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
  211. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
  212. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
  213. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
  214. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  215. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
  216. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
  217. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +7 -0
  218. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
  219. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  220. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
  221. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
  222. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
  223. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
  224. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  225. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
  226. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
  227. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +7 -0
  228. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
  229. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  230. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
  231. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
  232. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
  233. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
  234. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  235. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
  236. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
  237. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +16 -0
  238. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
  239. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
  240. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
  241. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
  242. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +7 -0
  243. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
  244. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  245. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
  246. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
  247. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +56 -0
  248. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
  249. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
  250. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
  251. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
  252. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +42 -0
  253. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
  254. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
  255. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
  256. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
  257. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +11 -0
  258. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
  259. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  260. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
  261. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
  262. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +7 -0
  263. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
  264. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  265. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
  266. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
  267. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
  268. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
  269. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
  270. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
  271. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
  272. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
  273. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
  274. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  275. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
  276. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
  277. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +37 -0
  278. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
  279. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
  280. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
  281. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
  282. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
  283. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
  284. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  285. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
  286. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
  287. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
  288. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
  289. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  290. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
  291. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
  292. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +7 -0
  293. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
  294. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  295. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  296. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +2 -3
  297. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  298. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -3
  299. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  300. package/dist/components/core/list/SolidListView.js +2 -14
  301. package/dist/components/core/list/SolidListView.js.map +1 -1
  302. package/dist/components/core/list/SolidListView.tsx +2 -14
  303. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  304. package/dist/components/core/list/SolidListViewConfigure.js +7 -5
  305. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  306. package/dist/components/core/list/SolidListViewConfigure.tsx +7 -5
  307. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +2 -0
  308. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -0
  309. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +39 -0
  310. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -0
  311. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +40 -0
  312. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts +12 -0
  313. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts.map +1 -0
  314. package/dist/components/core/list/SolidVarInputsFilterElement.js +81 -0
  315. package/dist/components/core/list/SolidVarInputsFilterElement.js.map +1 -0
  316. package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
  317. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  318. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +42 -81
  319. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  320. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +90 -120
  321. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  322. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +34 -42
  323. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  324. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +51 -46
  325. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  326. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  327. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  328. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  329. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  330. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
  331. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  332. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
  333. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
  334. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
  335. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
  336. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
  337. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
  338. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
  339. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
  340. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  341. package/dist/components/core/tree/SolidTreeView.js +2 -14
  342. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  343. package/dist/components/core/tree/SolidTreeView.tsx +2 -14
  344. package/dist/components/layout/DashboardHeader.d.ts +3 -0
  345. package/dist/components/layout/DashboardHeader.d.ts.map +1 -0
  346. package/dist/components/layout/DashboardHeader.js +20 -0
  347. package/dist/components/layout/DashboardHeader.js.map +1 -0
  348. package/dist/components/layout/DashboardHeader.tsx +94 -0
  349. package/dist/helpers/# no such endpoints exist, need to calle +3 -0
  350. package/dist/helpers/ToastContainer.d.ts +4 -0
  351. package/dist/helpers/ToastContainer.d.ts.map +1 -0
  352. package/dist/helpers/ToastContainer.js +49 -0
  353. package/dist/helpers/ToastContainer.js.map +1 -0
  354. package/dist/helpers/ToastContainer.tsx +94 -0
  355. package/dist/helpers/downloadMediaFile.d.ts.map +1 -1
  356. package/dist/helpers/downloadMediaFile.js +10 -3
  357. package/dist/helpers/downloadMediaFile.js.map +1 -1
  358. package/dist/helpers/downloadMediaFile.tsx +13 -7
  359. package/dist/helpers/fileTypeIcon.d.ts +3 -2
  360. package/dist/helpers/fileTypeIcon.d.ts.map +1 -1
  361. package/dist/helpers/fileTypeIcon.js +11 -7
  362. package/dist/helpers/fileTypeIcon.js.map +1 -1
  363. package/dist/helpers/fileTypeIcon.tsx +12 -7
  364. package/dist/helpers/mediaType.d.ts +7 -0
  365. package/dist/helpers/mediaType.d.ts.map +1 -1
  366. package/dist/helpers/mediaType.js +39 -8
  367. package/dist/helpers/mediaType.js.map +1 -1
  368. package/dist/helpers/mediaType.ts +46 -7
  369. package/dist/helpers/mediaUrl.d.ts +2 -0
  370. package/dist/helpers/mediaUrl.d.ts.map +1 -0
  371. package/dist/helpers/mediaUrl.js +10 -0
  372. package/dist/helpers/mediaUrl.js.map +1 -0
  373. package/dist/helpers/mediaUrl.ts +11 -0
  374. package/dist/helpers/permissions.d.ts +13 -0
  375. package/dist/helpers/permissions.d.ts.map +1 -1
  376. package/dist/helpers/permissions.js +79 -0
  377. package/dist/helpers/permissions.js.map +1 -1
  378. package/dist/helpers/permissions.ts +92 -1
  379. package/dist/helpers/showToast.d.ts +5 -0
  380. package/dist/helpers/showToast.d.ts.map +1 -0
  381. package/dist/helpers/showToast.js +17 -0
  382. package/dist/helpers/showToast.js.map +1 -0
  383. package/dist/helpers/showToast.ts +13 -0
  384. package/dist/helpers/studioSandbox.d.ts +31 -0
  385. package/dist/helpers/studioSandbox.d.ts.map +1 -0
  386. package/dist/helpers/studioSandbox.js +104 -0
  387. package/dist/helpers/studioSandbox.js.map +1 -0
  388. package/dist/helpers/studioSandbox.ts +117 -0
  389. package/dist/nextAuth/authProviders.d.ts +4 -0
  390. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  391. package/dist/nextAuth/authProviders.js +198 -0
  392. package/dist/nextAuth/authProviders.js.map +1 -0
  393. package/dist/nextAuth/authProviders.tsx +232 -0
  394. package/dist/nextAuth/handleLogout.d.ts +2 -0
  395. package/dist/nextAuth/handleLogout.d.ts.map +1 -0
  396. package/dist/nextAuth/handleLogout.js +36 -0
  397. package/dist/nextAuth/handleLogout.js.map +1 -0
  398. package/dist/nextAuth/handleLogout.tsx +39 -0
  399. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  400. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  401. package/dist/nextAuth/refreshAccessToken.js +24 -0
  402. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  403. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  404. package/dist/redux/api/dashboardApi.d.ts +23 -0
  405. package/dist/redux/api/dashboardApi.d.ts.map +1 -0
  406. package/dist/redux/api/dashboardApi.js +35 -0
  407. package/dist/redux/api/dashboardApi.js.map +1 -0
  408. package/dist/redux/api/dashboardApi.ts +56 -0
  409. package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
  410. package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
  411. package/dist/redux/api/dashboardLayoutApi.js +34 -0
  412. package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
  413. package/dist/redux/api/dashboardLayoutApi.ts +55 -0
  414. package/dist/redux/api/dashboardQuestionApi.d.ts +5 -0
  415. package/dist/redux/api/dashboardQuestionApi.d.ts.map +1 -0
  416. package/dist/redux/api/dashboardQuestionApi.js +18 -0
  417. package/dist/redux/api/dashboardQuestionApi.js.map +1 -0
  418. package/dist/redux/api/dashboardQuestionApi.ts +17 -0
  419. package/dist/redux/features/settingsSlice.d.ts +20 -0
  420. package/dist/redux/features/settingsSlice.d.ts.map +1 -0
  421. package/dist/redux/features/settingsSlice.js +39 -0
  422. package/dist/redux/features/settingsSlice.js.map +1 -0
  423. package/dist/redux/features/settingsSlice.ts +60 -0
  424. package/dist/resources/images/Footerbg.png +0 -0
  425. package/dist/resources/images/LoginBanner.png +0 -0
  426. package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
  427. package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
  428. package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
  429. package/dist/resources/images/dashboard/image 5.svg +9 -0
  430. package/dist/resources/images/loginhero.png +0 -0
  431. package/dist/resources/images/logo.png +0 -0
  432. package/dist/resources/images/radix-logo-white.png +0 -0
  433. package/dist/resources/images/radix-logo.png +0 -0
  434. package/dist/resources/images/signupBanner.png +0 -0
  435. package/dist/resources/shadcn-base.css +16 -70
  436. package/dist/resources/solid-tailwind-generated.css +1 -1
  437. package/package.json +1 -1
  438. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.d.ts +0 -8
  439. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.d.ts.map +0 -1
  440. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.js +0 -6
  441. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.js.map +0 -1
  442. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.ts +0 -13
  443. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.d.ts +0 -11
  444. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.d.ts.map +0 -1
  445. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.js +0 -10
  446. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.js.map +0 -1
  447. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.ts +0 -22
  448. package/dist/components/core/list/SolidCustomListColumn.d.ts +0 -8
  449. package/dist/components/core/list/SolidCustomListColumn.d.ts.map +0 -1
  450. package/dist/components/core/list/SolidCustomListColumn.js +0 -47
  451. package/dist/components/core/list/SolidCustomListColumn.js.map +0 -1
  452. package/dist/components/core/list/SolidCustomListColumn.tsx +0 -57
  453. package/dist/components/workflow/WorkflowFlowCanvas.css +0 -431
  454. package/dist/components/workflow/WorkflowFlowCanvas.d.ts +0 -41
  455. package/dist/components/workflow/WorkflowFlowCanvas.d.ts.map +0 -1
  456. package/dist/components/workflow/WorkflowFlowCanvas.js +0 -705
  457. package/dist/components/workflow/WorkflowFlowCanvas.js.map +0 -1
  458. package/dist/components/workflow/WorkflowFlowCanvas.tsx +0 -1274
  459. package/dist/components/workflow/WorkflowNodeDocsPanel.css +0 -247
  460. package/dist/components/workflow/WorkflowNodeDocsPanel.d.ts +0 -22
  461. package/dist/components/workflow/WorkflowNodeDocsPanel.d.ts.map +0 -1
  462. package/dist/components/workflow/WorkflowNodeDocsPanel.js +0 -97
  463. package/dist/components/workflow/WorkflowNodeDocsPanel.js.map +0 -1
  464. package/dist/components/workflow/WorkflowNodeDocsPanel.tsx +0 -363
  465. package/dist/components/workflow/WorkflowNodeSchemaEditor.d.ts +0 -50
  466. package/dist/components/workflow/WorkflowNodeSchemaEditor.d.ts.map +0 -1
  467. package/dist/components/workflow/WorkflowNodeSchemaEditor.js +0 -309
  468. package/dist/components/workflow/WorkflowNodeSchemaEditor.js.map +0 -1
  469. package/dist/components/workflow/WorkflowNodeSchemaEditor.tsx +0 -808
  470. package/dist/helpers/modulePackageResumeState.d.ts +0 -6
  471. package/dist/helpers/modulePackageResumeState.d.ts.map +0 -1
  472. package/dist/helpers/modulePackageResumeState.js +0 -46
  473. package/dist/helpers/modulePackageResumeState.js.map +0 -1
  474. package/dist/helpers/modulePackageResumeState.ts +0 -57
  475. package/dist/redux/api/workflowDefinitionEditorApi.d.ts +0 -17
  476. package/dist/redux/api/workflowDefinitionEditorApi.d.ts.map +0 -1
  477. package/dist/redux/api/workflowDefinitionEditorApi.js +0 -38
  478. package/dist/redux/api/workflowDefinitionEditorApi.js.map +0 -1
  479. package/dist/redux/api/workflowDefinitionEditorApi.ts +0 -40
  480. package/dist/redux/api/workflowNodeApi.d.ts +0 -6
  481. package/dist/redux/api/workflowNodeApi.d.ts.map +0 -1
  482. package/dist/redux/api/workflowNodeApi.js +0 -14
  483. package/dist/redux/api/workflowNodeApi.js.map +0 -1
  484. package/dist/redux/api/workflowNodeApi.ts +0 -18
  485. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.css +0 -970
  486. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.d.ts +0 -3
  487. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.d.ts.map +0 -1
  488. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js +0 -1287
  489. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js.map +0 -1
  490. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx +0 -2572
  491. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.css +0 -151
  492. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.d.ts +0 -3
  493. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.d.ts.map +0 -1
  494. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.js +0 -250
  495. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.js.map +0 -1
  496. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.tsx +0 -455
  497. package/dist/types/workflow-node.d.ts +0 -127
  498. package/dist/types/workflow-node.d.ts.map +0 -1
  499. package/dist/types/workflow-node.js +0 -2
  500. package/dist/types/workflow-node.js.map +0 -1
  501. package/dist/types/workflow-node.ts +0 -162
@@ -21,6 +21,8 @@ import { FileReaderExt } from "../../../../components/common/FileReaderExt";
21
21
  import getAcceptedFileTypes from "../../../../helpers/getAcceptedFileTypes";
22
22
  import { downloadMediaFile } from "../../../../helpers/downloadMediaFile";
23
23
  import { getExtensionComponent } from "../../../../helpers/registry";
24
+ import { openMediaInNewTab } from "../../../../helpers/mediaUrl";
25
+ import { getMediaPreviewKind, isLightboxMediaKind } from "../../../../helpers/mediaType";
24
26
  import { SolidMediaFormFieldWidgetProps } from "../../../../types/solid-core";
25
27
  import { SolidFieldTooltip } from "../../../../components/common/SolidFieldTooltip";
26
28
  import { ERROR_MESSAGES } from "../../../../constants/error-messages";
@@ -28,6 +30,13 @@ import styles from "./solidFields.module.css";
28
30
  import { SolidIcon } from "../../../shad-cn-ui";
29
31
  import { getPersistedMediaId } from "./mediaFieldUtils";
30
32
 
33
+ type SingleMediaFileDetail = {
34
+ name: string;
35
+ type: string;
36
+ fileUrl: string;
37
+ fileSize: number;
38
+ };
39
+
31
40
  export class SolidMediaSingleField implements ISolidField {
32
41
 
33
42
  private fieldContext: SolidFieldProps;
@@ -170,7 +179,7 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
170
179
  const isFieldReadonly = formReadonly || fieldReadonly || readOnlyPermission;
171
180
 
172
181
  const [isDeleteImageDialogVisible, setDeleteImageDialogVisible] = useState(false);
173
- const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string, fileSize: number } | null>(null);
182
+ const [fileDetails, setFileDetails] = useState<SingleMediaFileDetail | null>(null);
174
183
  const [isReplaceImageDialogVisible, setReplaceImageDialogVisible] = useState(false);
175
184
  const [newFileToUpload, setNewFileToUpload] = useState<any>(null);
176
185
  const [fileSizeError, setFileSizeError] = useState<string | null>(null);
@@ -272,34 +281,38 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
272
281
 
273
282
  useEffect(() => {
274
283
  const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];
284
+ if (!fieldValue || typeof fieldValue !== "object") {
285
+ setFileDetails(null);
286
+ return;
287
+ }
275
288
 
276
- if (fieldValue && typeof fieldValue === "object") {
277
- let fileUrl = "";
278
- let fileName = "Unknown File";
279
- let fileSize = 0;
280
-
281
- if (fieldValue instanceof File) {
282
- fileUrl = URL.createObjectURL(fieldValue);
283
- fileName = fieldValue.name;
284
- fileSize = fieldValue.size;
285
- } else if (fieldValue._full_url) {
286
- fileUrl = fieldValue._full_url;
287
- fileName = fieldValue.originalFileName;
288
- fileSize = fieldValue.fileSize;
289
- }
290
-
289
+ if (fieldValue instanceof File) {
290
+ const fileUrl = URL.createObjectURL(fieldValue);
291
291
  setFileDetails({
292
- name: fileName,
293
- type: fieldValue.mimeType ? fieldValue.mimeType : fieldValue.type,
292
+ name: fieldValue.name,
293
+ type: fieldValue.type,
294
294
  fileUrl,
295
- fileSize
295
+ fileSize: fieldValue.size,
296
296
  });
297
297
 
298
- // Ensure formik has the correct value
299
298
  formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);
300
- } else {
299
+ return () => URL.revokeObjectURL(fileUrl);
300
+ }
301
+
302
+ const fileUrl = fieldValue._full_url;
303
+ if (!fileUrl) {
301
304
  setFileDetails(null);
305
+ return;
302
306
  }
307
+
308
+ setFileDetails({
309
+ name: fieldValue.originalFileName,
310
+ type: fieldValue.mimeType ? fieldValue.mimeType : fieldValue.type,
311
+ fileUrl,
312
+ fileSize: fieldValue.fileSize,
313
+ });
314
+
315
+ formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);
303
316
  }, [formik.values, fieldLayoutInfo.attrs.name]);
304
317
 
305
318
  const {
@@ -332,32 +345,25 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
332
345
  }
333
346
 
334
347
  const handleFileView = (url: any) => {
335
- const downloadOnlyExt = [
336
- "txt", "zip", "rar",
337
- "doc", "docx",
338
- "xls", "xlsx",
339
- "ppt", "pptx"
340
- ];
341
-
342
- const fileUrl = url?.fileUrl || "";
343
- const cleanUrl = fileUrl.split("?")[0];
344
- const ext = cleanUrl.split(".").pop()?.toLowerCase();
345
-
346
- if (ext && downloadOnlyExt.includes(ext)) {
347
- const link = document.createElement('a');
348
- link.href = url.fileUrl;
349
- link.download = ''; // or specify a file name like 'file.pdf'
350
- link.target = '_blank';
351
- document.body.appendChild(link);
352
- link.click();
353
- document.body.removeChild(link);
348
+ const previewKind = getMediaPreviewKind({
349
+ url: url?.fileUrl,
350
+ fileName: url?.name,
351
+ mimeType: url?.type,
352
+ });
354
353
 
355
- } else {
354
+ if (isLightboxMediaKind(previewKind)) {
356
355
  setLightboxUrls?.([
357
- { src: url.fileUrl, downloadUrl: url.fileUrl },
356
+ {
357
+ src: url.fileUrl,
358
+ downloadUrl: url.fileUrl,
359
+ type: previewKind === "video" ? "video" : undefined
360
+ },
358
361
  ]);
359
362
  setOpenLightbox?.(true);
363
+ return;
360
364
  }
365
+
366
+ openMediaInNewTab(url?.fileUrl);
361
367
  }
362
368
 
363
369
 
@@ -412,7 +418,11 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
412
418
  className="solid-file-icon-btn"
413
419
  disabled={isFieldDisabled || isFieldReadonly}
414
420
  aria-label="Download file"
415
- onClick={() => downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name)}
421
+ onClick={(event) => {
422
+ event.preventDefault();
423
+ event.stopPropagation();
424
+ downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name);
425
+ }}
416
426
  >
417
427
  <SolidIcon name="si-download" aria-hidden />
418
428
  </button>
@@ -484,7 +494,7 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
484
494
  }
485
495
 
486
496
  export const DefaultMediaSingleFormViewWidget = ({ formik, fieldContext, setLightboxUrls, setOpenLightbox }: SolidMediaFormFieldWidgetProps) => {
487
- const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string, fileSize: number } | null>(null);
497
+ const [fileDetails, setFileDetails] = useState<SingleMediaFileDetail | null>(null);
488
498
  const fieldMetadata = fieldContext.fieldMetadata;
489
499
  const fieldLayoutInfo = fieldContext.field;
490
500
  const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';
@@ -502,60 +512,57 @@ export const DefaultMediaSingleFormViewWidget = ({ formik, fieldContext, setLigh
502
512
 
503
513
  useEffect(() => {
504
514
  const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];
515
+ if (!fieldValue || typeof fieldValue !== "object") {
516
+ setFileDetails(null);
517
+ return;
518
+ }
505
519
 
506
- if (fieldValue && typeof fieldValue === "object") {
507
- let fileUrl = "";
508
- let fileName = "Unknown File";
509
- let fileSize = 0;
510
-
511
- if (fieldValue instanceof File) {
512
- fileUrl = URL.createObjectURL(fieldValue);
513
- fileName = fieldValue.name;
514
- fileSize = fieldValue.size;
515
- } else if (fieldValue._full_url) {
516
- fileUrl = fieldValue._full_url;
517
- fileName = fieldValue.originalFileName;
518
- fileSize = fieldValue.fileSize;
519
- }
520
-
520
+ if (fieldValue instanceof File) {
521
+ const fileUrl = URL.createObjectURL(fieldValue);
521
522
  setFileDetails({
522
- name: fileName,
523
- type: fieldValue.mimeType ? fieldValue.mimeType : fieldValue.type,
523
+ name: fieldValue.name,
524
+ type: fieldValue.type,
524
525
  fileUrl,
525
- fileSize
526
+ fileSize: fieldValue.size,
526
527
  });
527
- // Ensure formik has the correct value
528
- formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);
528
+
529
+ return () => URL.revokeObjectURL(fileUrl);
530
+ }
531
+
532
+ const fileUrl = fieldValue._full_url;
533
+ if (!fileUrl) {
534
+ setFileDetails(null);
535
+ return;
529
536
  }
537
+
538
+ setFileDetails({
539
+ name: fieldValue.originalFileName,
540
+ type: fieldValue.mimeType ? fieldValue.mimeType : fieldValue.type,
541
+ fileUrl,
542
+ fileSize: fieldValue.fileSize,
543
+ });
530
544
  }, [formik.values, fieldLayoutInfo.attrs.name]);
531
545
 
532
546
  const handleFileView = (url: any) => {
533
- const downloadOnlyExt = [
534
- "txt", "zip", "rar",
535
- "doc", "docx",
536
- "xls", "xlsx",
537
- "ppt", "pptx"
538
- ];
539
-
540
- const fileUrl = url?.fileUrl || "";
541
- const cleanUrl = fileUrl.split("?")[0];
542
- const ext = cleanUrl.split(".").pop()?.toLowerCase();
543
-
544
- if (ext && downloadOnlyExt.includes(ext)) {
545
- const link = document.createElement('a');
546
- link.href = url.fileUrl;
547
- link.download = ''; // or specify a file name like 'file.pdf'
548
- link.target = '_blank';
549
- document.body.appendChild(link);
550
- link.click();
551
- document.body.removeChild(link);
547
+ const previewKind = getMediaPreviewKind({
548
+ url: url?.fileUrl,
549
+ fileName: url?.name,
550
+ mimeType: url?.type,
551
+ });
552
552
 
553
- } else {
553
+ if (isLightboxMediaKind(previewKind)) {
554
554
  setLightboxUrls?.([
555
- { src: url.fileUrl, downloadUrl: url.fileUrl },
555
+ {
556
+ src: url.fileUrl,
557
+ downloadUrl: url.fileUrl,
558
+ type: previewKind === "video" ? "video" : undefined
559
+ },
556
560
  ]);
557
561
  setOpenLightbox?.(true);
562
+ return;
558
563
  }
564
+
565
+ openMediaInNewTab(url?.fileUrl);
559
566
  }
560
567
 
561
568
  return (
@@ -585,7 +592,11 @@ export const DefaultMediaSingleFormViewWidget = ({ formik, fieldContext, setLigh
585
592
  type="button"
586
593
  className="solid-file-icon-btn"
587
594
  aria-label="Download file"
588
- onClick={() => downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name)}
595
+ onClick={(event) => {
596
+ event.preventDefault();
597
+ event.stopPropagation();
598
+ downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name);
599
+ }}
589
600
  >
590
601
  <SolidIcon name="si-download" aria-hidden />
591
602
  </button>
@@ -0,0 +1,3 @@
1
+ import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
2
+ export declare const SolidChatterMessageCoModelEntityIdFormViewWidget: ({ formik, fieldContext }: SolidFormFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAK5E,eAAO,MAAM,gDAAgD,6BAA8B,yBAAyB,4CA6DnH,CAAC"}
@@ -0,0 +1,92 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
+ import { useEffect, useState } from "react";
39
+ import { ExternalLink } from "lucide-react";
40
+ import { solidGet } from "../../../../../http/solidHttp";
41
+ import { snakeCase } from "lodash";
42
+ export var SolidChatterMessageCoModelEntityIdFormViewWidget = function (_a) {
43
+ var _b, _c, _d, _e, _f, _g;
44
+ var formik = _a.formik, fieldContext = _a.fieldContext;
45
+ var fieldMetadata = fieldContext.fieldMetadata;
46
+ var fieldLayoutInfo = fieldContext.field;
47
+ var fieldLabel = (_b = fieldLayoutInfo.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.displayName;
48
+ var fieldName = (_c = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _c === void 0 ? void 0 : _c.name;
49
+ var _h = useState('#'), redirectUrl = _h[0], setRedirectUrl = _h[1];
50
+ var value = (_d = formik.values) === null || _d === void 0 ? void 0 : _d[fieldName];
51
+ var coModelName = (_e = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.data) === null || _e === void 0 ? void 0 : _e.coModelName;
52
+ var modelDisplayName = (_f = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.data) === null || _f === void 0 ? void 0 : _f.modelDisplayName;
53
+ var modelUserKey = (_g = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.data) === null || _g === void 0 ? void 0 : _g.modelUserKey;
54
+ useEffect(function () {
55
+ if (coModelName) {
56
+ var fetchModel = function () { return __awaiter(void 0, void 0, void 0, function () {
57
+ var qs, res, model, module_1, moduleName, modelSingularName, modelSlug, redirectUrl_1;
58
+ var _a, _b, _c, _d, _e;
59
+ return __generator(this, function (_f) {
60
+ switch (_f.label) {
61
+ case 0:
62
+ qs = "offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=".concat(coModelName, "&populate[0]=module&locale=en&sort[0]=id%3Adesc");
63
+ return [4 /*yield*/, solidGet("/model-metadata?".concat(qs))];
64
+ case 1:
65
+ res = _f.sent();
66
+ if (((_c = (_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length) > 0) {
67
+ model = (_e = (_d = res === null || res === void 0 ? void 0 : res.data) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.records[0];
68
+ module_1 = model === null || model === void 0 ? void 0 : model.module;
69
+ moduleName = module_1 === null || module_1 === void 0 ? void 0 : module_1.name;
70
+ modelSingularName = model === null || model === void 0 ? void 0 : model.singularName;
71
+ modelSlug = snakeCase(model === null || model === void 0 ? void 0 : model.singularName).replace(/_/g, '-');
72
+ redirectUrl_1 = "/admin/core/".concat(moduleName, "/").concat(modelSlug, "/form/").concat(value);
73
+ setRedirectUrl(redirectUrl_1);
74
+ }
75
+ return [2 /*return*/];
76
+ }
77
+ });
78
+ }); };
79
+ fetchModel();
80
+ }
81
+ }, [coModelName]);
82
+ return (_jsxs("div", { children: [_jsx("label", { className: "form-field-label", children: fieldLabel }), _jsx("div", { className: "mt-2", children: value ? (_jsxs("a", { href: redirectUrl, target: "_blank", rel: "noopener noreferrer", style: {
83
+ display: 'inline-flex',
84
+ alignItems: 'center',
85
+ gap: '6px',
86
+ textDecoration: 'none',
87
+ fontSize: '12px',
88
+ color: '#2563eb',
89
+ fontWeight: 500
90
+ }, children: [_jsxs("span", { children: [value, " (", modelUserKey || modelDisplayName || coModelName, ")"] }), _jsx(ExternalLink, { size: 16 })] })) : (_jsx("span", { className: "text-muted", children: "\u2014" })) })] }));
91
+ };
92
+ //# sourceMappingURL=SolidChatterMessageCoModelEntityIdFormViewWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidChatterMessageCoModelEntityIdFormViewWidget.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from \"react\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { ExternalLink } from \"lucide-react\";\nimport { solidGet } from \"../../../../../http/solidHttp\";\nimport { snakeCase } from \"lodash\";\n\nexport const SolidChatterMessageCoModelEntityIdFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const fieldName = fieldLayoutInfo?.attrs?.name;\n\n const [redirectUrl, setRedirectUrl] = useState<string>('#');\n const value = formik.values?.[fieldName];\n\n const coModelName = fieldContext?.data?.coModelName;\n const modelDisplayName = fieldContext?.data?.modelDisplayName;\n const modelUserKey = fieldContext?.data?.modelUserKey;\n\n useEffect(() => {\n if (coModelName) {\n const fetchModel = async () => {\n const qs = `offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=${coModelName}&populate[0]=module&locale=en&sort[0]=id%3Adesc`;\n const res = await solidGet(`/model-metadata?${qs}`);\n if (res?.data?.data?.records?.length > 0) {\n const model = res?.data?.data?.records[0];\n const module = model?.module;\n const moduleName = module?.name;\n const modelSingularName = model?.singularName;\n const modelSlug = snakeCase(model?.singularName).replace(/_/g, '-');\n const redirectUrl = `/admin/core/${moduleName}/${modelSlug}/form/${value}`;\n setRedirectUrl(redirectUrl);\n }\n }\n fetchModel();\n }\n }, [coModelName]);\n\n return (\n <div>\n <label className=\"form-field-label\">{fieldLabel}</label>\n <div className=\"mt-2\">\n {value ? (\n <a\n href={redirectUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '6px',\n textDecoration: 'none',\n fontSize: '12px',\n color: '#2563eb',\n fontWeight: 500\n }}\n >\n <span>{value} ({modelUserKey || modelDisplayName || coModelName})</span>\n <ExternalLink size={16} />\n </a>\n ) : (\n <span className=\"text-muted\">—</span>\n )}\n </div>\n </div>\n );\n};"]}
@@ -0,0 +1,68 @@
1
+ import { useEffect, useState } from "react";
2
+ import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
3
+ import { ExternalLink } from "lucide-react";
4
+ import { solidGet } from "../../../../../http/solidHttp";
5
+ import { snakeCase } from "lodash";
6
+
7
+ export const SolidChatterMessageCoModelEntityIdFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {
8
+ const fieldMetadata = fieldContext.fieldMetadata;
9
+ const fieldLayoutInfo = fieldContext.field;
10
+
11
+ const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
12
+ const fieldName = fieldLayoutInfo?.attrs?.name;
13
+
14
+ const [redirectUrl, setRedirectUrl] = useState<string>('#');
15
+ const value = formik.values?.[fieldName];
16
+
17
+ const coModelName = fieldContext?.data?.coModelName;
18
+ const modelDisplayName = fieldContext?.data?.modelDisplayName;
19
+ const modelUserKey = fieldContext?.data?.modelUserKey;
20
+
21
+ useEffect(() => {
22
+ if (coModelName) {
23
+ const fetchModel = async () => {
24
+ const qs = `offset=0&limit=25&filters[$and][0][$or][0][singularName][$eq]=${coModelName}&populate[0]=module&locale=en&sort[0]=id%3Adesc`;
25
+ const res = await solidGet(`/model-metadata?${qs}`);
26
+ if (res?.data?.data?.records?.length > 0) {
27
+ const model = res?.data?.data?.records[0];
28
+ const module = model?.module;
29
+ const moduleName = module?.name;
30
+ const modelSingularName = model?.singularName;
31
+ const modelSlug = snakeCase(model?.singularName).replace(/_/g, '-');
32
+ const redirectUrl = `/admin/core/${moduleName}/${modelSlug}/form/${value}`;
33
+ setRedirectUrl(redirectUrl);
34
+ }
35
+ }
36
+ fetchModel();
37
+ }
38
+ }, [coModelName]);
39
+
40
+ return (
41
+ <div>
42
+ <label className="form-field-label">{fieldLabel}</label>
43
+ <div className="mt-2">
44
+ {value ? (
45
+ <a
46
+ href={redirectUrl}
47
+ target="_blank"
48
+ rel="noopener noreferrer"
49
+ style={{
50
+ display: 'inline-flex',
51
+ alignItems: 'center',
52
+ gap: '6px',
53
+ textDecoration: 'none',
54
+ fontSize: '12px',
55
+ color: '#2563eb',
56
+ fontWeight: 500
57
+ }}
58
+ >
59
+ <span>{value} ({modelUserKey || modelDisplayName || coModelName})</span>
60
+ <ExternalLink size={16} />
61
+ </a>
62
+ ) : (
63
+ <span className="text-muted">—</span>
64
+ )}
65
+ </div>
66
+ </div>
67
+ );
68
+ };
@@ -0,0 +1,3 @@
1
+ import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
2
+ export declare const SolidLovTypeChangeFormEditWidget: ({ formik, fieldContext }: SolidFormFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SolidLovTypeChangeFormEditWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidLovTypeChangeFormEditWidget.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAM5E,eAAO,MAAM,gCAAgC,6BAG1C,yBAAyB,4CA+G3B,CAAC"}
@@ -0,0 +1,111 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
+ import { useState } from "react";
39
+ import { solidGet } from "../../../../../http/solidHttp";
40
+ import { SolidAutocomplete } from "../../../../../components/shad-cn-ui/SolidAutocomplete";
41
+ import { SolidInput } from "../../../../../components/shad-cn-ui/SolidInput";
42
+ import { SolidIcon } from "../../../../../components/shad-cn-ui/SolidIcon";
43
+ export var SolidLovTypeChangeFormEditWidget = function (_a) {
44
+ var _b, _c, _d;
45
+ var formik = _a.formik, fieldContext = _a.fieldContext;
46
+ var fieldMetadata = fieldContext.fieldMetadata;
47
+ var fieldLayoutInfo = fieldContext.field;
48
+ var fieldLabel = (_b = fieldLayoutInfo.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.displayName;
49
+ var fieldName = (_c = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _c === void 0 ? void 0 : _c.name;
50
+ var value = (_d = formik.values) === null || _d === void 0 ? void 0 : _d[fieldName];
51
+ // 🔹 UI State
52
+ var _e = useState([]), filteredOptions = _e[0], setFilteredOptions = _e[1];
53
+ var _f = useState(false), isCreating = _f[0], setIsCreating = _f[1];
54
+ var _g = useState(value || ""), inputValue = _g[0], setInputValue = _g[1];
55
+ // 🔹 Handle Autocommplete AJAX Fetching
56
+ var completeMethod = function (event) { return __awaiter(void 0, void 0, void 0, function () {
57
+ var query, filterPart, res, extracted, err_1;
58
+ var _a, _b, _c;
59
+ return __generator(this, function (_d) {
60
+ switch (_d.label) {
61
+ case 0:
62
+ _d.trys.push([0, 2, , 3]);
63
+ query = event.query;
64
+ filterPart = query
65
+ ? "&filters[$and][0][$or][0][".concat(fieldName, "][$containsi]=%").concat(query, "%")
66
+ : "";
67
+ return [4 /*yield*/, solidGet("/api/list-of-values?&offset=0&limit=50&groupBy[0]=".concat(fieldName, "&aggregates[0]=id:count").concat(filterPart))];
68
+ case 1:
69
+ res = _d.sent();
70
+ extracted = ((_c = (_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.groupMeta) === null || _c === void 0 ? void 0 : _c.filter(function (item) { return item.groupValue != null; }).map(function (item) { return ({
71
+ label: item.groupValue,
72
+ value: item.groupValue
73
+ }); })) || [];
74
+ setFilteredOptions(extracted);
75
+ return [3 /*break*/, 3];
76
+ case 2:
77
+ err_1 = _d.sent();
78
+ console.error("Failed to fetch autocomplete suggestions", err_1);
79
+ setFilteredOptions([]);
80
+ return [3 /*break*/, 3];
81
+ case 3: return [2 /*return*/];
82
+ }
83
+ });
84
+ }); };
85
+ // 🔹 Handle Change from Autocomplete
86
+ var handleAutocompleteChange = function (e) {
87
+ var _a;
88
+ var selectedValue = typeof e.value === "object" ? (_a = e.value) === null || _a === void 0 ? void 0 : _a.value : e.value;
89
+ formik.setFieldValue(fieldName, selectedValue);
90
+ };
91
+ // 🔹 Handle Input Submit (blur or enter)
92
+ var handleCreate = function () {
93
+ if (!inputValue.trim())
94
+ return;
95
+ formik.setFieldValue(fieldName, inputValue);
96
+ setIsCreating(false);
97
+ };
98
+ return (_jsxs("div", { className: "solid-lov-type-change-widget w-full", children: [_jsxs("div", { className: "flex align-items-center justify-between mb-2", children: [_jsx("label", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: fieldLabel }), _jsxs("button", { type: "button", onClick: function () {
99
+ setIsCreating(!isCreating);
100
+ if (!isCreating)
101
+ setInputValue("");
102
+ }, style: { color: "blue", background: "transparent", border: 0 }, children: [_jsx(SolidIcon, { name: isCreating ? "si-times" : "si-plus", size: 12 }), _jsx("span", { children: isCreating ? "choose existing" : "add custom" })] })] }), _jsx("div", { className: "relative", children: !isCreating ? (_jsx(SolidAutocomplete, { value: value, suggestions: filteredOptions, completeMethod: completeMethod, onChange: handleAutocompleteChange, dropdown: true, placeholder: "Select ".concat(fieldLabel), className: "w-full" })) : (_jsx("div", { className: "flex gap-2", children: _jsx(SolidInput, { type: "text", value: inputValue, autoFocus: true, placeholder: "Enter new type", className: "flex-1 h-9", onChange: function (e) { return setInputValue(e.target.value); }, onBlur: handleCreate, onKeyDown: function (e) {
103
+ if (e.key === "Enter") {
104
+ handleCreate();
105
+ }
106
+ if (e.key === "Escape") {
107
+ setIsCreating(false);
108
+ }
109
+ } }) })) })] }));
110
+ };
111
+ //# sourceMappingURL=SolidLovTypeChangeFormEditWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidLovTypeChangeFormEditWidget.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAE3E,MAAM,CAAC,IAAM,gCAAgC,GAAG,UAAC,EAGrB;;QAFxB,MAAM,YAAA,EACN,YAAY,kBAAA;IAEZ,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACjD,IAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;IAE3C,IAAM,UAAU,GACZ,MAAA,eAAe,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAC7D,IAAM,SAAS,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,IAAI,CAAC;IAE/C,IAAM,KAAK,GAAG,MAAA,MAAM,CAAC,MAAM,0CAAG,SAAS,CAAC,CAAC;IAEzC,cAAc;IACR,IAAA,KAAwC,QAAQ,CAAQ,EAAE,CAAC,EAA1D,eAAe,QAAA,EAAE,kBAAkB,QAAuB,CAAC;IAC5D,IAAA,KAA8B,QAAQ,CAAC,KAAK,CAAC,EAA5C,UAAU,QAAA,EAAE,aAAa,QAAmB,CAAC;IAC9C,IAAA,KAA8B,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAlD,UAAU,QAAA,EAAE,aAAa,QAAyB,CAAC;IAE1D,wCAAwC;IACxC,IAAM,cAAc,GAAG,UAAO,KAAwB;;;;;;;oBAExC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAGpB,UAAU,GAAG,KAAK;wBACpB,CAAC,CAAC,oCAA6B,SAAS,4BAAkB,KAAK,MAAG;wBAClE,CAAC,CAAC,EAAE,CAAC;oBAEG,qBAAM,QAAQ,CACtB,4DAAqD,SAAS,oCAA0B,UAAU,CAAE,CACvG,EAAA;;oBAFK,GAAG,GAAG,SAEX;oBAEK,SAAS,GACX,CAAA,MAAA,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,IAAI,0CAAE,SAAS,0CACpB,MAAM,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,UAAU,IAAI,IAAI,EAAvB,CAAuB,EAC9C,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,CAAC;wBACjB,KAAK,EAAE,IAAI,CAAC,UAAU;wBACtB,KAAK,EAAE,IAAI,CAAC,UAAU;qBACzB,CAAC,EAHkB,CAGlB,CAAC,KAAI,EAAE,CAAC;oBAElB,kBAAkB,CAAC,SAAS,CAAC,CAAC;;;;oBAE9B,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAG,CAAC,CAAC;oBAC/D,kBAAkB,CAAC,EAAE,CAAC,CAAC;;;;;SAE9B,CAAC;IAEF,qCAAqC;IACrC,IAAM,wBAAwB,GAAG,UAAC,CAAiB;;QAC/C,IAAM,aAAa,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAA,CAAC,CAAC,KAAK,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7E,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,yCAAyC;IACzC,IAAM,YAAY,GAAG;QACjB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAAE,OAAO;QAC/B,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC5C,aAAa,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAC,qCAAqC,aAChD,eAAK,SAAS,EAAC,+CAA+C,aAC1D,gBAAO,SAAS,EAAC,sEAAsE,YAClF,UAAU,GACP,EACR,kBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE;4BACL,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;4BAC3B,IAAI,CAAC,UAAU;gCAAE,aAAa,CAAC,EAAE,CAAC,CAAC;wBACvC,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,aAE9D,KAAC,SAAS,IAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,GAAI,EAClE,yBAAO,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,GAAQ,IACvD,IACP,EAEN,cAAK,SAAS,EAAC,UAAU,YACpB,CAAC,UAAU,CAAC,CAAC,CAAC,CACX,KAAC,iBAAiB,IACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,eAAe,EAC5B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,wBAAwB,EAClC,QAAQ,QACR,WAAW,EAAE,iBAAU,UAAU,CAAE,EACnC,SAAS,EAAC,QAAQ,GACpB,CACL,CAAC,CAAC,CAAC,CACA,cAAK,SAAS,EAAC,YAAY,YACvB,KAAC,UAAU,IACP,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,SAAS,QACT,WAAW,EAAC,gBAAgB,EAC5B,SAAS,EAAC,YAAY,EACtB,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAA7B,CAA6B,EAC9C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,UAAC,CAAC;4BACT,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;gCACnB,YAAY,EAAE,CAAC;6BAClB;4BACD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;gCACpB,aAAa,CAAC,KAAK,CAAC,CAAC;6BACxB;wBACL,CAAC,GACH,GACA,CACT,GACC,IACJ,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useState } from \"react\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { solidGet } from \"../../../../../http/solidHttp\";\nimport { SolidAutocomplete } from \"../../../../../components/shad-cn-ui/SolidAutocomplete\";\nimport { SolidInput } from \"../../../../../components/shad-cn-ui/SolidInput\";\nimport { SolidIcon } from \"../../../../../components/shad-cn-ui/SolidIcon\";\n\nexport const SolidLovTypeChangeFormEditWidget = ({\n formik,\n fieldContext\n}: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n\n const fieldLabel =\n fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const fieldName = fieldLayoutInfo?.attrs?.name;\n\n const value = formik.values?.[fieldName];\n\n // 🔹 UI State\n const [filteredOptions, setFilteredOptions] = useState<any[]>([]);\n const [isCreating, setIsCreating] = useState(false);\n const [inputValue, setInputValue] = useState(value || \"\");\n\n // 🔹 Handle Autocommplete AJAX Fetching\n const completeMethod = async (event: { query: string }) => {\n try {\n const query = event.query;\n // Build the URL following the user's provided filter pattern\n\n const filterPart = query\n ? `&filters[$and][0][$or][0][${fieldName}][$containsi]=%${query}%`\n : \"\";\n\n const res = await solidGet(\n `/api/list-of-values?&offset=0&limit=50&groupBy[0]=${fieldName}&aggregates[0]=id:count${filterPart}`\n );\n\n const extracted =\n res?.data?.data?.groupMeta\n ?.filter((item: any) => item.groupValue != null)\n .map((item: any) => ({\n label: item.groupValue,\n value: item.groupValue\n })) || [];\n\n setFilteredOptions(extracted);\n } catch (err) {\n console.error(\"Failed to fetch autocomplete suggestions\", err);\n setFilteredOptions([]);\n }\n };\n\n // 🔹 Handle Change from Autocomplete\n const handleAutocompleteChange = (e: { value: any }) => {\n const selectedValue = typeof e.value === \"object\" ? e.value?.value : e.value;\n formik.setFieldValue(fieldName, selectedValue);\n };\n\n // 🔹 Handle Input Submit (blur or enter)\n const handleCreate = () => {\n if (!inputValue.trim()) return;\n formik.setFieldValue(fieldName, inputValue);\n setIsCreating(false);\n };\n\n return (\n <div className=\"solid-lov-type-change-widget w-full\">\n <div className=\"flex align-items-center justify-between mb-2\">\n <label className=\"text-xs font-semibold text-muted-foreground uppercase tracking-wider\">\n {fieldLabel}\n </label>\n <button\n type=\"button\"\n onClick={() => {\n setIsCreating(!isCreating);\n if (!isCreating) setInputValue(\"\");\n }}\n style={{ color: \"blue\", background: \"transparent\", border: 0 }}\n >\n <SolidIcon name={isCreating ? \"si-times\" : \"si-plus\"} size={12} />\n <span>{isCreating ? \"choose existing\" : \"add custom\"}</span>\n </button>\n </div>\n\n <div className=\"relative\">\n {!isCreating ? (\n <SolidAutocomplete\n value={value}\n suggestions={filteredOptions}\n completeMethod={completeMethod}\n onChange={handleAutocompleteChange}\n dropdown\n placeholder={`Select ${fieldLabel}`}\n className=\"w-full\"\n />\n ) : (\n <div className=\"flex gap-2\">\n <SolidInput\n type=\"text\"\n value={inputValue}\n autoFocus\n placeholder=\"Enter new type\"\n className=\"flex-1 h-9\"\n onChange={(e) => setInputValue(e.target.value)}\n onBlur={handleCreate}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleCreate();\n }\n if (e.key === \"Escape\") {\n setIsCreating(false);\n }\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};"]}