@solidxai/core-ui 0.1.12-beta.5 → 0.1.12-beta.6

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 (408) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +5 -2
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +6 -2
  5. package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
  6. package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
  7. package/dist/components/auth/SolidOTPVerify.js +67 -0
  8. package/dist/components/auth/SolidOTPVerify.js.map +1 -0
  9. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  10. package/dist/components/common/AuthBanner.d.ts +3 -0
  11. package/dist/components/common/AuthBanner.d.ts.map +1 -0
  12. package/dist/components/common/AuthBanner.js +15 -0
  13. package/dist/components/common/AuthBanner.js.map +1 -0
  14. package/dist/components/common/AuthBanner.tsx +41 -0
  15. package/dist/components/common/SingleSelectAutoCompleteField.d.ts +2 -0
  16. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -0
  17. package/dist/components/common/SingleSelectAutoCompleteField.js +92 -0
  18. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -0
  19. package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
  20. package/dist/components/common/SolidExportStepper.d.ts +12 -0
  21. package/dist/components/common/SolidExportStepper.d.ts.map +1 -0
  22. package/dist/components/common/SolidExportStepper.js +30 -0
  23. package/dist/components/common/SolidExportStepper.js.map +1 -0
  24. package/dist/components/common/SolidExportStepper.tsx +135 -0
  25. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
  26. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
  27. package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
  28. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
  29. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  30. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts +2 -0
  31. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts.map +1 -0
  32. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js +16 -0
  33. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js.map +1 -0
  34. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
  35. package/dist/components/core/dashboard/DashboardFilter.d.ts +13 -0
  36. package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -0
  37. package/dist/components/core/dashboard/DashboardFilter.js +299 -0
  38. package/dist/components/core/dashboard/DashboardFilter.js.map +1 -0
  39. package/dist/components/core/dashboard/DashboardFilter.tsx +348 -0
  40. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
  41. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
  42. package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
  43. package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
  44. package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
  45. package/dist/components/core/dashboard/SolidDashboard.d.ts +28 -0
  46. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -0
  47. package/dist/components/core/dashboard/SolidDashboard.js +183 -0
  48. package/dist/components/core/dashboard/SolidDashboard.js.map +1 -0
  49. package/dist/components/core/dashboard/SolidDashboard.module.css +83 -0
  50. package/dist/components/core/dashboard/SolidDashboard.tsx +263 -0
  51. package/dist/components/core/dashboard/SolidDashboardBody.d.ts +24 -0
  52. package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -0
  53. package/dist/components/core/dashboard/SolidDashboardBody.js +162 -0
  54. package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -0
  55. package/dist/components/core/dashboard/SolidDashboardBody.tsx +168 -0
  56. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts +2 -0
  57. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts.map +1 -0
  58. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +11 -0
  59. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -0
  60. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
  61. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts +3 -0
  62. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts.map +1 -0
  63. package/dist/components/core/dashboard/SolidDashboardHeader.js +6 -0
  64. package/dist/components/core/dashboard/SolidDashboardHeader.js.map +1 -0
  65. package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
  66. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts +2 -0
  67. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +1 -0
  68. package/dist/components/core/dashboard/SolidDashboardLoading.js +10 -0
  69. package/dist/components/core/dashboard/SolidDashboardLoading.js.map +1 -0
  70. package/dist/components/core/dashboard/SolidDashboardLoading.tsx +61 -0
  71. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts +3 -0
  72. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts.map +1 -0
  73. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +12 -0
  74. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -0
  75. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
  76. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts +2 -0
  77. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +1 -0
  78. package/dist/components/core/dashboard/SolidDashboardRenderError.js +11 -0
  79. package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +1 -0
  80. package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +28 -0
  81. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts +19 -0
  82. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +1 -0
  83. package/dist/components/core/dashboard/SolidDashboardVariable.js +171 -0
  84. package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -0
  85. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +259 -0
  86. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts +9 -0
  87. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -0
  88. package/dist/components/core/dashboard/SolidQuestionRenderer.js +42 -0
  89. package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -0
  90. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +99 -0
  91. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts +9 -0
  92. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -0
  93. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +35 -0
  94. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -0
  95. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +48 -0
  96. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts +7 -0
  97. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +1 -0
  98. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +22 -0
  99. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +1 -0
  100. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +51 -0
  101. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts +2 -0
  102. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts.map +1 -0
  103. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js +4 -0
  104. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js.map +1 -0
  105. package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
  106. package/dist/components/core/dashboard/dashboard-utils.d.ts +2 -0
  107. package/dist/components/core/dashboard/dashboard-utils.d.ts.map +1 -0
  108. package/dist/components/core/dashboard/dashboard-utils.js +38 -0
  109. package/dist/components/core/dashboard/dashboard-utils.js.map +1 -0
  110. package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
  111. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
  112. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
  113. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
  114. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
  115. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
  116. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
  117. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
  118. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
  119. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
  120. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
  121. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
  122. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
  123. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
  124. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
  125. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
  126. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts +4 -0
  127. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts.map +1 -0
  128. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +23 -0
  129. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +1 -0
  130. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
  131. package/dist/components/core/form/SolidFormView.js +1 -1
  132. package/dist/components/core/form/SolidFormView.js.map +1 -1
  133. package/dist/components/core/form/SolidFormView.tsx +1 -1
  134. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  135. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +11 -1
  136. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  137. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +26 -19
  138. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  139. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +13 -5
  140. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  141. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +16 -9
  142. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  143. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  144. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  145. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  146. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  147. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  148. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  149. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
  150. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  151. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  152. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +12 -0
  153. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
  154. package/dist/components/core/kanban/SolidKanbanViewFields.js +145 -0
  155. package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
  156. package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
  157. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
  158. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
  159. package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
  160. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
  161. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  162. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
  163. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
  164. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +73 -0
  165. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
  166. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  167. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
  168. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
  169. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +20 -0
  170. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
  171. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  172. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
  173. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
  174. package/dist/components/core/kanban/SolidVarInputsFilterElement.js +81 -0
  175. package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
  176. package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  177. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
  178. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
  179. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +7 -0
  180. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
  181. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  182. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
  183. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
  184. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
  185. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
  186. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
  187. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
  188. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
  189. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +21 -0
  190. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
  191. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  192. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
  193. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
  194. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
  195. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
  196. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  197. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
  198. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
  199. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
  200. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
  201. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  202. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
  203. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
  204. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +7 -0
  205. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
  206. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  207. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
  208. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
  209. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
  210. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
  211. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  212. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
  213. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
  214. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +7 -0
  215. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
  216. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  217. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
  218. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
  219. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
  220. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
  221. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  222. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
  223. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
  224. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +16 -0
  225. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
  226. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
  227. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
  228. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
  229. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +7 -0
  230. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
  231. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  232. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
  233. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
  234. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +56 -0
  235. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
  236. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
  237. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
  238. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
  239. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +42 -0
  240. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
  241. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
  242. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
  243. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
  244. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +11 -0
  245. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
  246. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  247. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
  248. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
  249. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +7 -0
  250. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
  251. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  252. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
  253. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
  254. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
  255. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
  256. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
  257. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
  258. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
  259. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
  260. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
  261. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  262. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
  263. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
  264. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +37 -0
  265. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
  266. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
  267. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
  268. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
  269. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
  270. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
  271. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  272. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
  273. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
  274. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
  275. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
  276. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  277. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
  278. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
  279. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +7 -0
  280. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
  281. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  282. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  283. package/dist/components/core/list/SolidDataTable.js +1 -1
  284. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  285. package/dist/components/core/list/SolidDataTable.tsx +1 -0
  286. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +2 -0
  287. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -0
  288. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +39 -0
  289. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -0
  290. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +40 -0
  291. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts +12 -0
  292. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts.map +1 -0
  293. package/dist/components/core/list/SolidVarInputsFilterElement.js +81 -0
  294. package/dist/components/core/list/SolidVarInputsFilterElement.js.map +1 -0
  295. package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
  296. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  297. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  298. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  299. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  300. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  301. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
  302. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  303. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
  304. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
  305. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
  306. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
  307. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
  308. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
  309. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
  310. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
  311. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
  312. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  313. package/dist/components/core/model/FieldMetaDataForm.js +119 -102
  314. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  315. package/dist/components/core/model/FieldMetaDataForm.tsx +82 -39
  316. package/dist/components/core/model/FieldSelector.d.ts +5 -1
  317. package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
  318. package/dist/components/core/model/FieldSelector.js +25 -6
  319. package/dist/components/core/model/FieldSelector.js.map +1 -1
  320. package/dist/components/core/model/FieldSelector.tsx +50 -5
  321. package/dist/components/layout/DashboardHeader.d.ts +3 -0
  322. package/dist/components/layout/DashboardHeader.d.ts.map +1 -0
  323. package/dist/components/layout/DashboardHeader.js +20 -0
  324. package/dist/components/layout/DashboardHeader.js.map +1 -0
  325. package/dist/components/layout/DashboardHeader.tsx +94 -0
  326. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  327. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  328. package/dist/components/shad-cn-ui/SolidSelect.js +12 -4
  329. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  330. package/dist/components/shad-cn-ui/SolidSelect.tsx +13 -1
  331. package/dist/helpers/# no such endpoints exist, need to calle +3 -0
  332. package/dist/helpers/ToastContainer.d.ts +4 -0
  333. package/dist/helpers/ToastContainer.d.ts.map +1 -0
  334. package/dist/helpers/ToastContainer.js +49 -0
  335. package/dist/helpers/ToastContainer.js.map +1 -0
  336. package/dist/helpers/ToastContainer.tsx +94 -0
  337. package/dist/helpers/showToast.d.ts +5 -0
  338. package/dist/helpers/showToast.d.ts.map +1 -0
  339. package/dist/helpers/showToast.js +17 -0
  340. package/dist/helpers/showToast.js.map +1 -0
  341. package/dist/helpers/showToast.ts +13 -0
  342. package/dist/helpers/studioSandbox.d.ts +31 -0
  343. package/dist/helpers/studioSandbox.d.ts.map +1 -0
  344. package/dist/helpers/studioSandbox.js +104 -0
  345. package/dist/helpers/studioSandbox.js.map +1 -0
  346. package/dist/helpers/studioSandbox.ts +117 -0
  347. package/dist/nextAuth/authProviders.d.ts +4 -0
  348. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  349. package/dist/nextAuth/authProviders.js +198 -0
  350. package/dist/nextAuth/authProviders.js.map +1 -0
  351. package/dist/nextAuth/authProviders.tsx +232 -0
  352. package/dist/nextAuth/handleLogout.d.ts +2 -0
  353. package/dist/nextAuth/handleLogout.d.ts.map +1 -0
  354. package/dist/nextAuth/handleLogout.js +36 -0
  355. package/dist/nextAuth/handleLogout.js.map +1 -0
  356. package/dist/nextAuth/handleLogout.tsx +39 -0
  357. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  358. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  359. package/dist/nextAuth/refreshAccessToken.js +24 -0
  360. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  361. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  362. package/dist/redux/api/dashboardApi.d.ts +23 -0
  363. package/dist/redux/api/dashboardApi.d.ts.map +1 -0
  364. package/dist/redux/api/dashboardApi.js +35 -0
  365. package/dist/redux/api/dashboardApi.js.map +1 -0
  366. package/dist/redux/api/dashboardApi.ts +56 -0
  367. package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
  368. package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
  369. package/dist/redux/api/dashboardLayoutApi.js +34 -0
  370. package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
  371. package/dist/redux/api/dashboardLayoutApi.ts +55 -0
  372. package/dist/redux/api/dashboardQuestionApi.d.ts +5 -0
  373. package/dist/redux/api/dashboardQuestionApi.d.ts.map +1 -0
  374. package/dist/redux/api/dashboardQuestionApi.js +18 -0
  375. package/dist/redux/api/dashboardQuestionApi.js.map +1 -0
  376. package/dist/redux/api/dashboardQuestionApi.ts +17 -0
  377. package/dist/redux/api/datasourceIntrospectionApi.d.ts +1 -0
  378. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
  379. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
  380. package/dist/redux/api/datasourceIntrospectionApi.ts +1 -0
  381. package/dist/redux/features/settingsSlice.d.ts +20 -0
  382. package/dist/redux/features/settingsSlice.d.ts.map +1 -0
  383. package/dist/redux/features/settingsSlice.js +39 -0
  384. package/dist/redux/features/settingsSlice.js.map +1 -0
  385. package/dist/redux/features/settingsSlice.ts +60 -0
  386. package/dist/resources/images/Footerbg.png +0 -0
  387. package/dist/resources/images/LoginBanner.png +0 -0
  388. package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
  389. package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
  390. package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
  391. package/dist/resources/images/dashboard/image 5.svg +9 -0
  392. package/dist/resources/images/loginhero.png +0 -0
  393. package/dist/resources/images/logo.png +0 -0
  394. package/dist/resources/images/radix-logo-white.png +0 -0
  395. package/dist/resources/images/radix-logo.png +0 -0
  396. package/dist/resources/images/signupBanner.png +0 -0
  397. package/dist/resources/shadcn-base.css +16 -70
  398. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +12 -0
  399. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  400. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +160 -59
  401. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  402. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +293 -41
  403. package/package.json +1 -1
  404. package/dist/helpers/modulePackageResumeState.d.ts +0 -6
  405. package/dist/helpers/modulePackageResumeState.d.ts.map +0 -1
  406. package/dist/helpers/modulePackageResumeState.js +0 -46
  407. package/dist/helpers/modulePackageResumeState.js.map +0 -1
  408. package/dist/helpers/modulePackageResumeState.ts +0 -57
@@ -0,0 +1,171 @@
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
10
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
+ import { useEffect, useState } from "react";
12
+ import styles from './SolidDashboard.module.css';
13
+ import { useGetDashboardVariableSelectionDynamicValuesQuery } from "../../../redux/api/dashboardApi";
14
+ import { SolidAutocomplete, SolidButton, SolidDatePicker, SolidIcon, SolidSpinner } from "../../shad-cn-ui";
15
+ export var DateVariableFilterComponent = function (_a) {
16
+ var setFilters = _a.setFilters, clearSignal = _a.clearSignal, dashboardVariable = _a.dashboardVariable;
17
+ // Initialize the default dates state
18
+ // If the dashboardVariable has a defaultOperator as Between and a defaultValue as two dates, we can set those as the initial values, otherwise null
19
+ var defaultDatesString = dashboardVariable.defaultOperator === '$between' && dashboardVariable.defaultValue;
20
+ var defaultDatesArray = JSON.parse(defaultDatesString || '[]');
21
+ // Map the defaultDatesArray to Date objects
22
+ var defaultDates = defaultDatesArray.length === 2 ? [
23
+ new Date(defaultDatesArray[0]),
24
+ new Date(defaultDatesArray[1])
25
+ ] : null;
26
+ var _b = useState(defaultDates), dates = _b[0], setDates = _b[1];
27
+ useEffect(function () {
28
+ setDates(null); // reset UI
29
+ }, [clearSignal]);
30
+ return (_jsxs("div", { className: "flex align-items-center ".concat(styles.SolidDashboardDateRangeFilterWrapper), children: [_jsx(SolidDatePicker, { selectsRange: true, startDate: dates ? dates[0] : null, endDate: dates ? dates[1] : null, onChange: function (next) {
31
+ var newDates = next;
32
+ setDates(newDates);
33
+ if (newDates && newDates[0] && newDates[1]) {
34
+ var filter_1 = {
35
+ variableName: dashboardVariable.variableName,
36
+ // @ts-ignore
37
+ operator: '$between',
38
+ value: [
39
+ newDates[0].toISOString().split('T')[0],
40
+ newDates[1].toISOString().split('T')[0]
41
+ ]
42
+ };
43
+ setFilters(function (prev) {
44
+ // Remove any existing dashboardDate filter and replace with the new one
45
+ // const filtered = prev.filter(f => f.variableName !== 'dashboardDate');
46
+ return [filter_1];
47
+ });
48
+ }
49
+ }, className: styles.SolidDashboardDateRangeFilter, inputClassName: "h-3rem w-full" }), _jsx("div", { className: "px-2", children: _jsx(SolidIcon, { name: "si-calendar", className: "opacity-50", "aria-hidden": true }) })] }));
50
+ };
51
+ export var SelectionDynamicVariableFilterComponent = function (_a) {
52
+ var setFilters = _a.setFilters, clearSignal = _a.clearSignal, dashboardVariable = _a.dashboardVariable;
53
+ // Initialize the selection dynamic values state
54
+ // Pick the values from defaultValue if present, for default operator $in
55
+ var defaultDynamicValuesString = dashboardVariable.defaultOperator === '$in' && dashboardVariable.defaultValue;
56
+ var defaultDynamicValues = JSON.parse(defaultDynamicValuesString || '[]');
57
+ // Selection Dynamic Values
58
+ var _b = useState(defaultDynamicValues), selectionDynamicValues = _b[0], setSelectionDynamicValues = _b[1];
59
+ var _c = useState([]), filteredItems = _c[0], setFilteredItems = _c[1];
60
+ // Using rtk query to fetch dynamic values based on variableId
61
+ var variableId = dashboardVariable.id;
62
+ var queryString = "variableId=".concat(variableId);
63
+ var _d = useGetDashboardVariableSelectionDynamicValuesQuery(queryString), dynamicValues = _d.data, isLoading = _d.isLoading, isError = _d.isError;
64
+ var allItems = dynamicValues ? dynamicValues : [];
65
+ // Dynamic search
66
+ var searchDynamic = function (event) {
67
+ var query = event.query.toLowerCase();
68
+ var filtered = allItems.map(function (item) { return item.label; }).filter(function (item) {
69
+ return item.toLowerCase().includes(query);
70
+ });
71
+ setFilteredItems(filtered);
72
+ };
73
+ // Set the filters whenever selectionDynamicValues change
74
+ useEffect(function () {
75
+ console.log("Selection Dynamic Values changed:", selectionDynamicValues);
76
+ if (selectionDynamicValues.length > 0) {
77
+ var filter_2 = {
78
+ variableName: dashboardVariable.variableName,
79
+ // @ts-ignore
80
+ operator: '$in',
81
+ value: selectionDynamicValues
82
+ };
83
+ setFilters(function (prev) {
84
+ // Remove any existing filter for this variable and replace with the new one
85
+ var filtered = prev.filter(function (f) { return f.variableName !== dashboardVariable.variableName; });
86
+ return __spreadArray(__spreadArray([], filtered, true), [filter_2], false);
87
+ });
88
+ }
89
+ // else {
90
+ // // If no values selected, remove the filter for this variable
91
+ // setFilters(prev => prev.filter(f => f.variableName !== dashboardVariable.variableName));
92
+ // }
93
+ }, [selectionDynamicValues]);
94
+ useEffect(function () {
95
+ setSelectionDynamicValues([]);
96
+ }, [clearSignal]);
97
+ return (_jsxs(_Fragment, { children: [isLoading && _jsx(SolidSpinner, {}), isError && _jsx("div", { children: "Error loading values" }), !isLoading && !isError &&
98
+ _jsx(SolidAutocomplete, { value: selectionDynamicValues, suggestions: filteredItems, completeMethod: searchDynamic, onChange: function (e) {
99
+ setSelectionDynamicValues(e.value);
100
+ }, multiple: true, dropdown: true, placeholder: dashboardVariable.variableName, className: "solid-standard-autocomplete", style: { minHeight: 38 } })] }));
101
+ };
102
+ export var SelectionStaticVariableFilterComponent = function (_a) {
103
+ var setFilters = _a.setFilters, clearSignal = _a.clearSignal, dashboardVariable = _a.dashboardVariable;
104
+ // Initialize the selection static values state
105
+ // Pick the values from defaultValue if present, for default operator $in
106
+ var defaultStaticValuesString = dashboardVariable.defaultOperator === '$in' && dashboardVariable.defaultValue;
107
+ var defaultStaticValues = JSON.parse(defaultStaticValuesString || '[]');
108
+ // Selection Static Values
109
+ var _b = useState(defaultStaticValues), selectionStaticValues = _b[0], setSelectionStaticValues = _b[1];
110
+ var _c = useState([]), filteredStaticItems = _c[0], setFilteredStaticItems = _c[1];
111
+ var staticValues = JSON.parse(dashboardVariable.selectionStaticValues || '[]') || [];
112
+ // The values are in the format val:label, we need to extract the labels
113
+ var staticValueItems = staticValues.map(function (val) { return ({ value: val.split(':')[0], label: val.split(':')[1] }); });
114
+ // Static search
115
+ var searchStatic = function (event) {
116
+ var query = event.query.toLowerCase();
117
+ var filtered = staticValueItems.map(function (item) { return item.label; }).filter(function (item) {
118
+ return item.toLowerCase().includes(query);
119
+ });
120
+ setFilteredStaticItems(filtered);
121
+ };
122
+ // Set the filters whenever selectionStaticValues change
123
+ useEffect(function () {
124
+ // console.log(`Selection Static Values changed:`, selectionStaticValues);
125
+ if (selectionStaticValues.length > 0) {
126
+ var filter_3 = {
127
+ variableName: dashboardVariable.variableName,
128
+ // @ts-ignore
129
+ operator: '$in',
130
+ value: selectionStaticValues
131
+ };
132
+ setFilters(function (prev) {
133
+ // Remove any existing filter for this variable and replace with the new one
134
+ var filtered = prev.filter(function (f) { return f.variableName !== dashboardVariable.variableName; });
135
+ return __spreadArray(__spreadArray([], filtered, true), [filter_3], false);
136
+ });
137
+ }
138
+ // else {
139
+ // // If no values selected, remove the filter for this variable
140
+ // setFilters(prev => prev.filter(f => f.variableName !== dashboardVariable.variableName));
141
+ // }
142
+ }, [selectionStaticValues]);
143
+ useEffect(function () {
144
+ setSelectionStaticValues([]);
145
+ }, [clearSignal]);
146
+ return (_jsx(SolidAutocomplete, { value: selectionStaticValues, suggestions: filteredStaticItems, completeMethod: searchStatic, onChange: function (e) { return setSelectionStaticValues(e.value); }, multiple: true, dropdown: true, placeholder: dashboardVariable.variableName, className: "solid-standard-autocomplete", style: { minHeight: 38 } }));
147
+ };
148
+ var SolidDashboardVariable = function (_a) {
149
+ var dashboardVariables = _a.dashboardVariables, filters = _a.filters, setFilters = _a.setFilters;
150
+ var _b = useState(0), clearSignal = _b[0], setClearSignal = _b[1];
151
+ var dashboardVariableComponents = dashboardVariables.map(function (dashboardVariable, index) {
152
+ switch (dashboardVariable.variableType) {
153
+ case 'date':
154
+ return _jsx(DateVariableFilterComponent, { setFilters: setFilters, clearSignal: clearSignal, dashboardVariable: dashboardVariable }, index);
155
+ case 'selectionStatic':
156
+ return _jsx(SelectionStaticVariableFilterComponent, { setFilters: setFilters, clearSignal: clearSignal, dashboardVariable: dashboardVariable }, index);
157
+ case 'selectionDynamic':
158
+ return _jsx(SelectionDynamicVariableFilterComponent, { setFilters: setFilters, clearSignal: clearSignal, dashboardVariable: dashboardVariable }, index);
159
+ default:
160
+ return null;
161
+ }
162
+ });
163
+ var clearAllFilters = function () {
164
+ setFilters([]);
165
+ setClearSignal(function (prev) { return prev + 1; }); // triggers children to reset
166
+ };
167
+ // TODO [HP]: Currently this is static, we need this to be dynamic how we are invoking setFilters below has to be fully dynamic...
168
+ return (_jsxs("div", { className: "flex align-items-center gap-3", children: [dashboardVariableComponents, filters.length > 0 && (_jsx(SolidButton, { onClick: clearAllFilters, size: "sm", outlined: true, icon: "si si-filter-slash" }))] }));
169
+ };
170
+ export default SolidDashboardVariable;
171
+ //# sourceMappingURL=SolidDashboardVariable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidDashboardVariable.js","sourceRoot":"","sources":["../../../../src/components/core/dashboard/SolidDashboardVariable.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SqlExpression } from \"../../../types/solid-core\";\nimport React, { Dispatch, SetStateAction, useEffect, useState } from \"react\";\nimport styles from './SolidDashboard.module.css';\nimport { useGetDashboardVariableSelectionDynamicValuesQuery } from \"../../../redux/api/dashboardApi\";\nimport { DashboardVariableRecord } from \"./SolidDashboard\";\nimport { SolidAutocomplete, SolidButton, SolidDatePicker, SolidIcon, SolidSpinner } from \"../../shad-cn-ui\";\n\ntype Nullable<T> = T | null;\ntype AutoCompleteChangeEvent = { value: any };\ntype AutoCompleteCompleteEvent = { query: string };\n\n\nexport interface DashboardVariableFilterProps {\n setFilters: Dispatch<SetStateAction<SqlExpression[]>>;\n clearSignal: number;\n dashboardVariable: DashboardVariableRecord;\n}\n\ntype DateRange = [Date | null, Date | null] | null;\n\nexport const DateVariableFilterComponent: React.FC<DashboardVariableFilterProps> = ({ setFilters, clearSignal, dashboardVariable }) => {\n // Initialize the default dates state\n // If the dashboardVariable has a defaultOperator as Between and a defaultValue as two dates, we can set those as the initial values, otherwise null\n const defaultDatesString = dashboardVariable.defaultOperator === '$between' && dashboardVariable.defaultValue\n const defaultDatesArray = JSON.parse(defaultDatesString || '[]');\n // Map the defaultDatesArray to Date objects\n const defaultDates: DateRange = defaultDatesArray.length === 2 ? [\n new Date(defaultDatesArray[0]),\n new Date(defaultDatesArray[1])\n ] : null;\n const [dates, setDates] = useState<DateRange>(defaultDates);\n\n useEffect(() => {\n setDates(null); // reset UI\n }, [clearSignal]);\n \n return (\n <div className={`flex align-items-center ${styles.SolidDashboardDateRangeFilterWrapper}`}>\n <SolidDatePicker\n selectsRange\n startDate={dates ? dates[0] : null}\n endDate={dates ? dates[1] : null}\n onChange={(next: [Date | null, Date | null] | null) => {\n const newDates = next;\n setDates(newDates);\n\n if (newDates && newDates[0] && newDates[1]) {\n const filter: SqlExpression = {\n variableName: dashboardVariable.variableName,\n // @ts-ignore\n operator: '$between',\n value: [\n newDates[0].toISOString().split('T')[0],\n newDates[1].toISOString().split('T')[0]\n ]\n };\n setFilters(prev => {\n // Remove any existing dashboardDate filter and replace with the new one\n // const filtered = prev.filter(f => f.variableName !== 'dashboardDate');\n return [filter];\n });\n }\n\n }}\n className={styles.SolidDashboardDateRangeFilter}\n inputClassName=\"h-3rem w-full\"\n />\n <div className=\"px-2\">\n <SolidIcon name=\"si-calendar\" className=\"opacity-50\" aria-hidden />\n </div>\n </div>\n )\n}\n\nexport const SelectionDynamicVariableFilterComponent: React.FC<DashboardVariableFilterProps> = ({ setFilters, clearSignal, dashboardVariable }) => {\n // Initialize the selection dynamic values state\n // Pick the values from defaultValue if present, for default operator $in\n const defaultDynamicValuesString = dashboardVariable.defaultOperator === '$in' && dashboardVariable.defaultValue;\n const defaultDynamicValues = JSON.parse(defaultDynamicValuesString || '[]');\n\n // Selection Dynamic Values\n const [selectionDynamicValues, setSelectionDynamicValues] = useState<string[]>(defaultDynamicValues);\n const [filteredItems, setFilteredItems] = useState<string[]>([]);\n\n // Using rtk query to fetch dynamic values based on variableId\n const variableId = dashboardVariable.id;\n const queryString = `variableId=${variableId}`;\n const { data: dynamicValues, isLoading, isError } = useGetDashboardVariableSelectionDynamicValuesQuery(queryString);\n\n const allItems = dynamicValues ? dynamicValues : [];\n\n // Dynamic search\n const searchDynamic = (event: AutoCompleteCompleteEvent) => {\n const query = event.query.toLowerCase();\n const filtered = allItems.map(item => item.label).filter(item =>\n item.toLowerCase().includes(query)\n );\n setFilteredItems(filtered);\n };\n\n // Set the filters whenever selectionDynamicValues change\n useEffect(() => {\n console.log(`Selection Dynamic Values changed:`, selectionDynamicValues);\n if (selectionDynamicValues.length > 0) {\n const filter: SqlExpression = {\n variableName: dashboardVariable.variableName,\n // @ts-ignore\n operator: '$in',\n value: selectionDynamicValues\n };\n setFilters(prev => {\n // Remove any existing filter for this variable and replace with the new one\n const filtered = prev.filter(f => f.variableName !== dashboardVariable.variableName);\n return [...filtered, filter];\n });\n }\n // else {\n // // If no values selected, remove the filter for this variable\n // setFilters(prev => prev.filter(f => f.variableName !== dashboardVariable.variableName));\n // }\n }, [selectionDynamicValues]);\n\n useEffect(() => {\n setSelectionDynamicValues([]);\n }, [clearSignal]);\n\n return (\n <>\n {isLoading && <SolidSpinner />}\n {isError && <div>Error loading values</div>}\n {!isLoading && !isError &&\n <SolidAutocomplete\n value={selectionDynamicValues}\n suggestions={filteredItems}\n completeMethod={searchDynamic}\n onChange={(e: AutoCompleteChangeEvent) => {\n setSelectionDynamicValues(e.value)\n }}\n multiple\n dropdown\n placeholder={dashboardVariable.variableName}\n className=\"solid-standard-autocomplete\"\n style={{ minHeight: 38 }}\n />\n }\n </>\n );\n}\n\nexport const SelectionStaticVariableFilterComponent: React.FC<DashboardVariableFilterProps> = ({ setFilters, clearSignal, dashboardVariable }) => {\n // Initialize the selection static values state\n // Pick the values from defaultValue if present, for default operator $in\n const defaultStaticValuesString = dashboardVariable.defaultOperator === '$in' && dashboardVariable.defaultValue;\n const defaultStaticValues = JSON.parse(defaultStaticValuesString || '[]');\n\n // Selection Static Values\n const [selectionStaticValues, setSelectionStaticValues] = useState<string[]>(defaultStaticValues);\n const [filteredStaticItems, setFilteredStaticItems] = useState<string[]>([]);\n const staticValues = JSON.parse(dashboardVariable.selectionStaticValues || '[]') || [];\n\n // The values are in the format val:label, we need to extract the labels\n const staticValueItems = staticValues.map((val: any) => ({ value: val.split(':')[0], label: val.split(':')[1] }));\n\n // Static search\n const searchStatic = (event: AutoCompleteCompleteEvent) => {\n const query = event.query.toLowerCase();\n const filtered = staticValueItems.map(\n (item: { label: any; }) => item.label\n ).filter((item: string) =>\n item.toLowerCase().includes(query)\n );\n setFilteredStaticItems(filtered);\n };\n\n // Set the filters whenever selectionStaticValues change\n useEffect(() => {\n // console.log(`Selection Static Values changed:`, selectionStaticValues);\n if (selectionStaticValues.length > 0) {\n const filter: SqlExpression = {\n variableName: dashboardVariable.variableName,\n // @ts-ignore\n operator: '$in',\n value: selectionStaticValues\n };\n setFilters(prev => {\n // Remove any existing filter for this variable and replace with the new one\n const filtered = prev.filter(f => f.variableName !== dashboardVariable.variableName);\n return [...filtered, filter];\n });\n }\n // else {\n // // If no values selected, remove the filter for this variable\n // setFilters(prev => prev.filter(f => f.variableName !== dashboardVariable.variableName));\n // }\n }, [selectionStaticValues]);\n\n useEffect(() => {\n setSelectionStaticValues([]);\n }, [clearSignal]);\n\n return (\n <SolidAutocomplete\n value={selectionStaticValues}\n suggestions={filteredStaticItems}\n completeMethod={searchStatic}\n onChange={(e: AutoCompleteChangeEvent) => setSelectionStaticValues(e.value)}\n multiple\n dropdown\n placeholder={dashboardVariable.variableName}\n className=\"solid-standard-autocomplete\"\n style={{ minHeight: 38 }}\n />\n );\n}\n\nexport interface SolidDashboardVariableProps {\n dashboardVariables: any;\n filters: SqlExpression[];\n setFilters: Dispatch<SetStateAction<SqlExpression[]>>;\n}\n\nconst SolidDashboardVariable: React.FC<SolidDashboardVariableProps> = ({ dashboardVariables, filters, setFilters }) => {\n const [clearSignal, setClearSignal] = useState(0);\n const dashboardVariableComponents = dashboardVariables.map((dashboardVariable: any, index: number) => {\n switch (dashboardVariable.variableType) {\n case 'date':\n return <DateVariableFilterComponent key={index} setFilters={setFilters} clearSignal={clearSignal} dashboardVariable={dashboardVariable} />;\n case 'selectionStatic':\n return <SelectionStaticVariableFilterComponent key={index} setFilters={setFilters} clearSignal={clearSignal} dashboardVariable={dashboardVariable} />;\n case 'selectionDynamic':\n return <SelectionDynamicVariableFilterComponent key={index} setFilters={setFilters} clearSignal={clearSignal} dashboardVariable={dashboardVariable} />;\n default:\n return null;\n }\n });\n\n const clearAllFilters = () => {\n setFilters([]);\n setClearSignal(prev => prev + 1); // triggers children to reset\n };\n\n // TODO [HP]: Currently this is static, we need this to be dynamic how we are invoking setFilters below has to be fully dynamic...\n return (\n <div className=\"flex align-items-center gap-3\">\n {dashboardVariableComponents}\n {filters.length > 0 && (\n <SolidButton\n onClick={clearAllFilters}\n size=\"sm\"\n outlined\n icon=\"si si-filter-slash\"\n />\n )}\n </div>\n );\n}\n\nexport default SolidDashboardVariable;\n"]}
@@ -0,0 +1,259 @@
1
+
2
+ import { SqlExpression } from "../../../types/solid-core";
3
+ import React, { Dispatch, SetStateAction, useEffect, useState } from "react";
4
+ import styles from './SolidDashboard.module.css';
5
+ import { useGetDashboardVariableSelectionDynamicValuesQuery } from "../../../redux/api/dashboardApi";
6
+ import { DashboardVariableRecord } from "./SolidDashboard";
7
+ import { SolidAutocomplete, SolidButton, SolidDatePicker, SolidIcon, SolidSpinner } from "../../shad-cn-ui";
8
+
9
+ type Nullable<T> = T | null;
10
+ type AutoCompleteChangeEvent = { value: any };
11
+ type AutoCompleteCompleteEvent = { query: string };
12
+
13
+
14
+ export interface DashboardVariableFilterProps {
15
+ setFilters: Dispatch<SetStateAction<SqlExpression[]>>;
16
+ clearSignal: number;
17
+ dashboardVariable: DashboardVariableRecord;
18
+ }
19
+
20
+ type DateRange = [Date | null, Date | null] | null;
21
+
22
+ export const DateVariableFilterComponent: React.FC<DashboardVariableFilterProps> = ({ setFilters, clearSignal, dashboardVariable }) => {
23
+ // Initialize the default dates state
24
+ // If the dashboardVariable has a defaultOperator as Between and a defaultValue as two dates, we can set those as the initial values, otherwise null
25
+ const defaultDatesString = dashboardVariable.defaultOperator === '$between' && dashboardVariable.defaultValue
26
+ const defaultDatesArray = JSON.parse(defaultDatesString || '[]');
27
+ // Map the defaultDatesArray to Date objects
28
+ const defaultDates: DateRange = defaultDatesArray.length === 2 ? [
29
+ new Date(defaultDatesArray[0]),
30
+ new Date(defaultDatesArray[1])
31
+ ] : null;
32
+ const [dates, setDates] = useState<DateRange>(defaultDates);
33
+
34
+ useEffect(() => {
35
+ setDates(null); // reset UI
36
+ }, [clearSignal]);
37
+
38
+ return (
39
+ <div className={`flex align-items-center ${styles.SolidDashboardDateRangeFilterWrapper}`}>
40
+ <SolidDatePicker
41
+ selectsRange
42
+ startDate={dates ? dates[0] : null}
43
+ endDate={dates ? dates[1] : null}
44
+ onChange={(next: [Date | null, Date | null] | null) => {
45
+ const newDates = next;
46
+ setDates(newDates);
47
+
48
+ if (newDates && newDates[0] && newDates[1]) {
49
+ const filter: SqlExpression = {
50
+ variableName: dashboardVariable.variableName,
51
+ // @ts-ignore
52
+ operator: '$between',
53
+ value: [
54
+ newDates[0].toISOString().split('T')[0],
55
+ newDates[1].toISOString().split('T')[0]
56
+ ]
57
+ };
58
+ setFilters(prev => {
59
+ // Remove any existing dashboardDate filter and replace with the new one
60
+ // const filtered = prev.filter(f => f.variableName !== 'dashboardDate');
61
+ return [filter];
62
+ });
63
+ }
64
+
65
+ }}
66
+ className={styles.SolidDashboardDateRangeFilter}
67
+ inputClassName="h-3rem w-full"
68
+ />
69
+ <div className="px-2">
70
+ <SolidIcon name="si-calendar" className="opacity-50" aria-hidden />
71
+ </div>
72
+ </div>
73
+ )
74
+ }
75
+
76
+ export const SelectionDynamicVariableFilterComponent: React.FC<DashboardVariableFilterProps> = ({ setFilters, clearSignal, dashboardVariable }) => {
77
+ // Initialize the selection dynamic values state
78
+ // Pick the values from defaultValue if present, for default operator $in
79
+ const defaultDynamicValuesString = dashboardVariable.defaultOperator === '$in' && dashboardVariable.defaultValue;
80
+ const defaultDynamicValues = JSON.parse(defaultDynamicValuesString || '[]');
81
+
82
+ // Selection Dynamic Values
83
+ const [selectionDynamicValues, setSelectionDynamicValues] = useState<string[]>(defaultDynamicValues);
84
+ const [filteredItems, setFilteredItems] = useState<string[]>([]);
85
+
86
+ // Using rtk query to fetch dynamic values based on variableId
87
+ const variableId = dashboardVariable.id;
88
+ const queryString = `variableId=${variableId}`;
89
+ const { data: dynamicValues, isLoading, isError } = useGetDashboardVariableSelectionDynamicValuesQuery(queryString);
90
+
91
+ const allItems = dynamicValues ? dynamicValues : [];
92
+
93
+ // Dynamic search
94
+ const searchDynamic = (event: AutoCompleteCompleteEvent) => {
95
+ const query = event.query.toLowerCase();
96
+ const filtered = allItems.map(item => item.label).filter(item =>
97
+ item.toLowerCase().includes(query)
98
+ );
99
+ setFilteredItems(filtered);
100
+ };
101
+
102
+ // Set the filters whenever selectionDynamicValues change
103
+ useEffect(() => {
104
+ console.log(`Selection Dynamic Values changed:`, selectionDynamicValues);
105
+ if (selectionDynamicValues.length > 0) {
106
+ const filter: SqlExpression = {
107
+ variableName: dashboardVariable.variableName,
108
+ // @ts-ignore
109
+ operator: '$in',
110
+ value: selectionDynamicValues
111
+ };
112
+ setFilters(prev => {
113
+ // Remove any existing filter for this variable and replace with the new one
114
+ const filtered = prev.filter(f => f.variableName !== dashboardVariable.variableName);
115
+ return [...filtered, filter];
116
+ });
117
+ }
118
+ // else {
119
+ // // If no values selected, remove the filter for this variable
120
+ // setFilters(prev => prev.filter(f => f.variableName !== dashboardVariable.variableName));
121
+ // }
122
+ }, [selectionDynamicValues]);
123
+
124
+ useEffect(() => {
125
+ setSelectionDynamicValues([]);
126
+ }, [clearSignal]);
127
+
128
+ return (
129
+ <>
130
+ {isLoading && <SolidSpinner />}
131
+ {isError && <div>Error loading values</div>}
132
+ {!isLoading && !isError &&
133
+ <SolidAutocomplete
134
+ value={selectionDynamicValues}
135
+ suggestions={filteredItems}
136
+ completeMethod={searchDynamic}
137
+ onChange={(e: AutoCompleteChangeEvent) => {
138
+ setSelectionDynamicValues(e.value)
139
+ }}
140
+ multiple
141
+ dropdown
142
+ placeholder={dashboardVariable.variableName}
143
+ className="solid-standard-autocomplete"
144
+ style={{ minHeight: 38 }}
145
+ />
146
+ }
147
+ </>
148
+ );
149
+ }
150
+
151
+ export const SelectionStaticVariableFilterComponent: React.FC<DashboardVariableFilterProps> = ({ setFilters, clearSignal, dashboardVariable }) => {
152
+ // Initialize the selection static values state
153
+ // Pick the values from defaultValue if present, for default operator $in
154
+ const defaultStaticValuesString = dashboardVariable.defaultOperator === '$in' && dashboardVariable.defaultValue;
155
+ const defaultStaticValues = JSON.parse(defaultStaticValuesString || '[]');
156
+
157
+ // Selection Static Values
158
+ const [selectionStaticValues, setSelectionStaticValues] = useState<string[]>(defaultStaticValues);
159
+ const [filteredStaticItems, setFilteredStaticItems] = useState<string[]>([]);
160
+ const staticValues = JSON.parse(dashboardVariable.selectionStaticValues || '[]') || [];
161
+
162
+ // The values are in the format val:label, we need to extract the labels
163
+ const staticValueItems = staticValues.map((val: any) => ({ value: val.split(':')[0], label: val.split(':')[1] }));
164
+
165
+ // Static search
166
+ const searchStatic = (event: AutoCompleteCompleteEvent) => {
167
+ const query = event.query.toLowerCase();
168
+ const filtered = staticValueItems.map(
169
+ (item: { label: any; }) => item.label
170
+ ).filter((item: string) =>
171
+ item.toLowerCase().includes(query)
172
+ );
173
+ setFilteredStaticItems(filtered);
174
+ };
175
+
176
+ // Set the filters whenever selectionStaticValues change
177
+ useEffect(() => {
178
+ // console.log(`Selection Static Values changed:`, selectionStaticValues);
179
+ if (selectionStaticValues.length > 0) {
180
+ const filter: SqlExpression = {
181
+ variableName: dashboardVariable.variableName,
182
+ // @ts-ignore
183
+ operator: '$in',
184
+ value: selectionStaticValues
185
+ };
186
+ setFilters(prev => {
187
+ // Remove any existing filter for this variable and replace with the new one
188
+ const filtered = prev.filter(f => f.variableName !== dashboardVariable.variableName);
189
+ return [...filtered, filter];
190
+ });
191
+ }
192
+ // else {
193
+ // // If no values selected, remove the filter for this variable
194
+ // setFilters(prev => prev.filter(f => f.variableName !== dashboardVariable.variableName));
195
+ // }
196
+ }, [selectionStaticValues]);
197
+
198
+ useEffect(() => {
199
+ setSelectionStaticValues([]);
200
+ }, [clearSignal]);
201
+
202
+ return (
203
+ <SolidAutocomplete
204
+ value={selectionStaticValues}
205
+ suggestions={filteredStaticItems}
206
+ completeMethod={searchStatic}
207
+ onChange={(e: AutoCompleteChangeEvent) => setSelectionStaticValues(e.value)}
208
+ multiple
209
+ dropdown
210
+ placeholder={dashboardVariable.variableName}
211
+ className="solid-standard-autocomplete"
212
+ style={{ minHeight: 38 }}
213
+ />
214
+ );
215
+ }
216
+
217
+ export interface SolidDashboardVariableProps {
218
+ dashboardVariables: any;
219
+ filters: SqlExpression[];
220
+ setFilters: Dispatch<SetStateAction<SqlExpression[]>>;
221
+ }
222
+
223
+ const SolidDashboardVariable: React.FC<SolidDashboardVariableProps> = ({ dashboardVariables, filters, setFilters }) => {
224
+ const [clearSignal, setClearSignal] = useState(0);
225
+ const dashboardVariableComponents = dashboardVariables.map((dashboardVariable: any, index: number) => {
226
+ switch (dashboardVariable.variableType) {
227
+ case 'date':
228
+ return <DateVariableFilterComponent key={index} setFilters={setFilters} clearSignal={clearSignal} dashboardVariable={dashboardVariable} />;
229
+ case 'selectionStatic':
230
+ return <SelectionStaticVariableFilterComponent key={index} setFilters={setFilters} clearSignal={clearSignal} dashboardVariable={dashboardVariable} />;
231
+ case 'selectionDynamic':
232
+ return <SelectionDynamicVariableFilterComponent key={index} setFilters={setFilters} clearSignal={clearSignal} dashboardVariable={dashboardVariable} />;
233
+ default:
234
+ return null;
235
+ }
236
+ });
237
+
238
+ const clearAllFilters = () => {
239
+ setFilters([]);
240
+ setClearSignal(prev => prev + 1); // triggers children to reset
241
+ };
242
+
243
+ // TODO [HP]: Currently this is static, we need this to be dynamic how we are invoking setFilters below has to be fully dynamic...
244
+ return (
245
+ <div className="flex align-items-center gap-3">
246
+ {dashboardVariableComponents}
247
+ {filters.length > 0 && (
248
+ <SolidButton
249
+ onClick={clearAllFilters}
250
+ size="sm"
251
+ outlined
252
+ icon="si si-filter-slash"
253
+ />
254
+ )}
255
+ </div>
256
+ );
257
+ }
258
+
259
+ export default SolidDashboardVariable;
@@ -0,0 +1,9 @@
1
+ import { SqlExpression } from '../../../types/solid-core';
2
+ type SolidQuestionRendererProps = {
3
+ question: any;
4
+ filters: SqlExpression[];
5
+ isPreview: boolean;
6
+ };
7
+ export declare const SolidQuestionRenderer: ({ question, filters, isPreview }: SolidQuestionRendererProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=SolidQuestionRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidQuestionRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/core/dashboard/SolidQuestionRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO1D,KAAK,0BAA0B,GAAG;IAC9B,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACtB,CAAC;AAQF,eAAO,MAAM,qBAAqB,qCAAmD,0BAA0B,4CA4E9G,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useGetDashboardQuestionDataByIdQuery } from '../../../redux/api/dashboardQuestionApi';
3
+ import { SolidMessage, SolidSpinner } from '../../shad-cn-ui';
4
+ import qs from 'qs';
5
+ import { ChartJsRenderer } from './chart-renderers/ChartJsRenderer';
6
+ import PrimeReactDatatableRenderer from './chart-renderers/PrimeReactDatatableRenderer';
7
+ import styles from './SolidDashboard.module.css';
8
+ export var SolidQuestionRenderer = function (_a) {
9
+ var _b;
10
+ var question = _a.question, _c = _a.filters, filters = _c === void 0 ? [] : _c, _d = _a.isPreview, isPreview = _d === void 0 ? false : _d;
11
+ if (!question) {
12
+ return (_jsx("div", { className: "".concat(styles.SolidChartCardWrapper, " p-4"), children: _jsx(SolidMessage, { text: "Preview Unavailable" }) }));
13
+ }
14
+ var textAlign = (_b = question === null || question === void 0 ? void 0 : question.textAlign) !== null && _b !== void 0 ? _b : 'start';
15
+ if (!question) {
16
+ return (_jsx(SolidMessage, { text: "Preview Unavailable" }));
17
+ }
18
+ // console.log(`Rendering BarChartRenderer using question id: ${question.id}`);
19
+ // load the question data.
20
+ var queryParams = qs.stringify({
21
+ isPreview: isPreview,
22
+ filters: filters,
23
+ });
24
+ var _e = useGetDashboardQuestionDataByIdQuery({ id: question.id, qs: queryParams }), questionData = _e.data, questionDataIsLoading = _e.isLoading, questionDataError = _e.error;
25
+ // console.log(`Question data: `); console.log(questionData);
26
+ // console.log(`Question data is loading: `); console.log(questionDataIsLoading);
27
+ // console.log(`Question data error: `); console.log(questionDataError);
28
+ var options = JSON.parse(question === null || question === void 0 ? void 0 : question.chartOptions);
29
+ // const kpi = questionData.data.kpi;
30
+ // const visualizationData = questionData.data.visualizationData;
31
+ // const visualizedAs = question.data.visualisedAs;
32
+ return (_jsxs(_Fragment, { children: [questionDataIsLoading && _jsx(SolidSpinner, {}), !questionDataIsLoading &&
33
+ _jsxs("div", { className: "".concat(styles.SolidChartCardWrapper, " h-full"), children: [_jsxs("div", { className: 'flex flex-col p-4 pb-3', style: { borderBottom: "1px solid #e4e3e3" }, children: [_jsx("div", { className: "font-medium text-".concat(textAlign, " ").concat(styles.SolidChartTitle), children: question.name }), _jsx("div", { className: "mt-2 font-bold text-3xl text-".concat(textAlign, " ").concat(styles.SolidChartTitle), children: questionData.data.kpi })] }), _jsxs("div", { className: 'mt-3 flex-1 min-h-0 p-4 pt-2', children: [['bar', 'line', 'pie'].includes(question.visualisedAs) && _jsx(ChartJsRenderer, { options: options, visualizationData: questionData.data.visualizationData, visualizedAs: question.visualisedAs }), question.visualisedAs === 'prime-meter-group' && (function () {
34
+ var dataset = questionData.data.visualizationData.dataset;
35
+ var total = dataset.reduce(function (sum, it) { return sum + it.value; }, 0) || 1;
36
+ return (_jsx("div", { className: "solid-meter-group", children: dataset.map(function (item, idx) {
37
+ var percentage = Math.round((item.value / total) * 100);
38
+ return (_jsxs("div", { className: "solid-meter-group-row", children: [_jsx("span", { className: "solid-meter-group-label", children: item.label }), _jsx("div", { className: "solid-meter-group-bar", children: _jsx("div", { className: "solid-meter-group-bar-fill", style: { width: "".concat(percentage, "%"), backgroundColor: item.color || 'var(--solid-surface-accent)' } }) }), _jsxs("span", { className: "solid-meter-group-value", children: [percentage, "%"] })] }, "".concat(item.label, "-").concat(idx)));
39
+ }) }));
40
+ })(), question.visualisedAs === 'prime-datatable' && _jsx(PrimeReactDatatableRenderer, { options: options, visualizationData: questionData.data.visualizationData })] })] })] }));
41
+ };
42
+ //# sourceMappingURL=SolidQuestionRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidQuestionRenderer.js","sourceRoot":"","sources":["../../../../src/components/core/dashboard/SolidQuestionRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport type { ReactNode } from 'react';\nimport { useGetDashboardQuestionDataByIdQuery } from '../../../redux/api/dashboardQuestionApi';\nimport { SqlExpression } from '../../../types/solid-core';\nimport { SolidMessage, SolidSpinner } from '../../shad-cn-ui';\nimport qs from 'qs';\nimport { ChartJsRenderer } from './chart-renderers/ChartJsRenderer';\nimport PrimeReactDatatableRenderer from './chart-renderers/PrimeReactDatatableRenderer';\nimport styles from './SolidDashboard.module.css';\n\ntype SolidQuestionRendererProps = {\n question: any;\n filters: SqlExpression[];\n isPreview: boolean;\n};\n\ntype DataItem = {\n value: number;\n label?: string | ReactNode;\n color?: string;\n}\n\nexport const SolidQuestionRenderer = ({ question, filters = [], isPreview = false }: SolidQuestionRendererProps) => {\n if (!question) {\n return (\n <div className={`${styles.SolidChartCardWrapper} p-4`}>\n <SolidMessage text=\"Preview Unavailable\" />\n </div>\n );\n }\n\n const textAlign = question?.textAlign ?? 'start'\n if (!question) {\n return (\n <SolidMessage text=\"Preview Unavailable\" />\n )\n }\n // console.log(`Rendering BarChartRenderer using question id: ${question.id}`);\n\n // load the question data.\n const queryParams = qs.stringify(\n {\n isPreview,\n filters,\n },\n // ensures proper handling of arrays\n // { arrayFormat: 'indices' }\n );\n const { data: questionData, isLoading: questionDataIsLoading, error: questionDataError } = useGetDashboardQuestionDataByIdQuery({ id: question.id, qs: queryParams });\n\n\n // console.log(`Question data: `); console.log(questionData);\n // console.log(`Question data is loading: `); console.log(questionDataIsLoading);\n // console.log(`Question data error: `); console.log(questionDataError);\n const options = JSON.parse(question?.chartOptions);\n // const kpi = questionData.data.kpi;\n // const visualizationData = questionData.data.visualizationData;\n // const visualizedAs = question.data.visualisedAs;\n return (\n <>\n {questionDataIsLoading && <SolidSpinner />}\n {!questionDataIsLoading &&\n <div className={`${styles.SolidChartCardWrapper} h-full`}>\n <div className='flex flex-col p-4 pb-3' style={{ borderBottom: \"1px solid #e4e3e3\" }}>\n <div className={`font-medium text-${textAlign} ${styles.SolidChartTitle}`}>{question.name}</div>\n <div className={`mt-2 font-bold text-3xl text-${textAlign} ${styles.SolidChartTitle}`}>{questionData.data.kpi}</div>\n </div>\n <div className='mt-3 flex-1 min-h-0 p-4 pt-2'>\n {['bar', 'line', 'pie'].includes(question.visualisedAs) && <ChartJsRenderer options={options} visualizationData={questionData.data.visualizationData} visualizedAs={question.visualisedAs} />}\n {question.visualisedAs === 'prime-meter-group' && (() => {\n const dataset: DataItem[] = questionData.data.visualizationData.dataset;\n const total = dataset.reduce((sum, it) => sum + it.value, 0) || 1;\n return (\n <div className=\"solid-meter-group\">\n {dataset.map((item: DataItem, idx: number) => {\n const percentage = Math.round((item.value / total) * 100);\n return (\n <div key={`${item.label}-${idx}`} className=\"solid-meter-group-row\">\n <span className=\"solid-meter-group-label\">{item.label}</span>\n <div className=\"solid-meter-group-bar\">\n <div\n className=\"solid-meter-group-bar-fill\"\n style={{ width: `${percentage}%`, backgroundColor: item.color || 'var(--solid-surface-accent)' }}\n />\n </div>\n <span className=\"solid-meter-group-value\">{percentage}%</span>\n </div>\n );\n })}\n </div>\n );\n })()}\n {question.visualisedAs === 'prime-datatable' && <PrimeReactDatatableRenderer options={options} visualizationData={questionData.data.visualizationData} />}\n </div>\n </div>\n }\n </>\n )\n}\n"]}