@solidxai/core-ui 0.1.9-beta.20 → 0.1.9-beta.21

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 (470) hide show
  1. package/README.md +1 -1
  2. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  3. package/dist/components/auth/AuthLayout.js +23 -19
  4. package/dist/components/auth/AuthLayout.js.map +1 -1
  5. package/dist/components/auth/AuthLayout.tsx +62 -52
  6. package/dist/components/auth/ForgotPasswordThankYou.js +1 -1
  7. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  8. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -2
  9. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts +2 -0
  10. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts.map +1 -0
  11. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js +112 -0
  12. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js.map +1 -0
  13. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.tsx +78 -0
  14. package/dist/components/auth/SolidChangeForcePassword.js +2 -2
  15. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  16. package/dist/components/auth/SolidChangeForcePassword.tsx +13 -13
  17. package/dist/components/auth/SolidForgotPassword.js +1 -1
  18. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  19. package/dist/components/auth/SolidForgotPassword.tsx +3 -3
  20. package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
  21. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  22. package/dist/components/auth/SolidInitialLoginOtp.tsx +2 -2
  23. package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
  24. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  25. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +2 -2
  26. package/dist/components/auth/SolidLogin.js +4 -4
  27. package/dist/components/auth/SolidLogin.js.map +1 -1
  28. package/dist/components/auth/SolidLogin.tsx +11 -11
  29. package/dist/components/auth/SolidRegister.js +6 -6
  30. package/dist/components/auth/SolidRegister.js.map +1 -1
  31. package/dist/components/auth/SolidRegister.tsx +14 -14
  32. package/dist/components/auth/SolidResetPassword.js +2 -2
  33. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  34. package/dist/components/auth/SolidResetPassword.tsx +8 -8
  35. package/dist/components/common/BackButton.js +1 -1
  36. package/dist/components/common/BackButton.js.map +1 -1
  37. package/dist/components/common/BackButton.tsx +1 -1
  38. package/dist/components/common/CancelButton.js +2 -2
  39. package/dist/components/common/CancelButton.js.map +1 -1
  40. package/dist/components/common/CancelButton.tsx +3 -3
  41. package/dist/components/common/GeneralSettings.js +18 -18
  42. package/dist/components/common/GeneralSettings.js.map +1 -1
  43. package/dist/components/common/GeneralSettings.tsx +136 -136
  44. package/dist/components/common/SolidExport.d.ts +1 -1
  45. package/dist/components/common/SolidExport.d.ts.map +1 -1
  46. package/dist/components/common/SolidExport.js +10 -3
  47. package/dist/components/common/SolidExport.js.map +1 -1
  48. package/dist/components/common/SolidExport.tsx +10 -2
  49. package/dist/components/common/SolidFormHeader.js +1 -1
  50. package/dist/components/common/SolidFormHeader.js.map +1 -1
  51. package/dist/components/common/SolidFormHeader.tsx +1 -1
  52. package/dist/components/common/SolidModuleHome.js +2 -2
  53. package/dist/components/common/SolidModuleHome.js.map +1 -1
  54. package/dist/components/common/SolidModuleHome.tsx +7 -7
  55. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +3 -3
  56. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  57. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +6 -6
  58. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js +1 -1
  59. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js.map +1 -1
  60. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +4 -4
  61. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js +1 -1
  62. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js.map +1 -1
  63. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +4 -4
  64. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js +1 -1
  65. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js.map +1 -1
  66. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +1 -1
  67. package/dist/components/core/card/SolidCardView.js +1 -1
  68. package/dist/components/core/card/SolidCardView.js.map +1 -1
  69. package/dist/components/core/card/SolidCardView.tsx +5 -5
  70. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  71. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  72. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  73. package/dist/components/core/card/SolidCardViewConfigure.tsx +5 -1
  74. package/dist/components/core/chatter/SolidChatter.js +5 -5
  75. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  76. package/dist/components/core/chatter/SolidChatter.tsx +8 -8
  77. package/dist/components/core/chatter/SolidChatterAuditMessage.js +1 -1
  78. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  79. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +2 -2
  80. package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
  81. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  82. package/dist/components/core/chatter/SolidChatterHeader.tsx +6 -6
  83. package/dist/components/core/chatter/SolidChatterMessageBox.js +4 -4
  84. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  85. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +12 -12
  86. package/dist/components/core/chatter/SolidMessageComposer.js +1 -1
  87. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  88. package/dist/components/core/chatter/SolidMessageComposer.tsx +7 -7
  89. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  90. package/dist/components/core/common/SolidCreateButton.js +16 -1
  91. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  92. package/dist/components/core/common/SolidCreateButton.tsx +18 -1
  93. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +60 -0
  94. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +1 -1
  95. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  96. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -2
  97. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
  98. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +19 -1
  99. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
  100. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +16 -3
  101. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  102. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +168 -26
  103. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  104. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +174 -10
  105. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  106. package/dist/components/core/common/SolidGlobalSearchElement.js +46 -36
  107. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  108. package/dist/components/core/common/SolidGlobalSearchElement.tsx +77 -40
  109. package/dist/components/core/common/SolidLayoutViews.js +2 -2
  110. package/dist/components/core/common/SolidLayoutViews.js.map +1 -1
  111. package/dist/components/core/common/SolidLayoutViews.tsx +4 -4
  112. package/dist/components/core/common/SolidListViewOptions.js +1 -1
  113. package/dist/components/core/common/SolidListViewOptions.js.map +1 -1
  114. package/dist/components/core/common/SolidListViewOptions.tsx +1 -1
  115. package/dist/components/core/common/SolidPasswordHelperText.js +2 -2
  116. package/dist/components/core/common/SolidPasswordHelperText.js.map +1 -1
  117. package/dist/components/core/common/SolidPasswordHelperText.tsx +4 -4
  118. package/dist/components/core/common/SolidSearchBox.js +1 -1
  119. package/dist/components/core/common/SolidSearchBox.js.map +1 -1
  120. package/dist/components/core/common/SolidSearchBox.tsx +1 -1
  121. package/dist/components/core/common/SolidXAiIframe.js +1 -1
  122. package/dist/components/core/common/SolidXAiIframe.js.map +1 -1
  123. package/dist/components/core/common/SolidXAiIframe.tsx +1 -1
  124. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +1 -1
  125. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -1
  126. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +2 -2
  127. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +2 -2
  128. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  129. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +4 -4
  130. package/dist/components/core/field/FieldListViewData.js +2 -2
  131. package/dist/components/core/field/FieldListViewData.js.map +1 -1
  132. package/dist/components/core/field/FieldListViewData.tsx +5 -5
  133. package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
  134. package/dist/components/core/filter/fields/SolidBooleanField.js +2 -2
  135. package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
  136. package/dist/components/core/filter/fields/SolidBooleanField.tsx +3 -12
  137. package/dist/components/core/filter/fields/SolidDateField.js +2 -2
  138. package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
  139. package/dist/components/core/filter/fields/SolidDateField.tsx +3 -3
  140. package/dist/components/core/filter/fields/SolidDatetimeField.js +2 -2
  141. package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
  142. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +3 -3
  143. package/dist/components/core/filter/fields/SolidExternalIdField.js +2 -2
  144. package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
  145. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +3 -3
  146. package/dist/components/core/filter/fields/SolidIdField.js +2 -2
  147. package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
  148. package/dist/components/core/filter/fields/SolidIdField.tsx +2 -2
  149. package/dist/components/core/filter/fields/SolidIntField.js +2 -2
  150. package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
  151. package/dist/components/core/filter/fields/SolidIntField.tsx +3 -3
  152. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +2 -2
  153. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  154. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +3 -3
  155. package/dist/components/core/filter/fields/SolidMediaSingleField.js +2 -2
  156. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  157. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +3 -3
  158. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +2 -2
  159. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
  160. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +3 -3
  161. package/dist/components/core/filter/fields/SolidSelectionStaticField.js +2 -2
  162. package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
  163. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +3 -3
  164. package/dist/components/core/filter/fields/SolidShortTextField.js +2 -2
  165. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  166. package/dist/components/core/filter/fields/SolidShortTextField.tsx +3 -3
  167. package/dist/components/core/filter/fields/SolidTimeField.js +2 -2
  168. package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
  169. package/dist/components/core/filter/fields/SolidTimeField.tsx +3 -3
  170. package/dist/components/core/filter/fields/SolidUuidField.js +2 -2
  171. package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
  172. package/dist/components/core/filter/fields/SolidUuidField.tsx +4 -4
  173. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +2 -2
  174. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  175. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +3 -3
  176. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +2 -2
  177. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  178. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +3 -3
  179. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +2 -2
  180. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  181. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +3 -3
  182. package/dist/components/core/form/SolidFormActionHeader.js +8 -8
  183. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  184. package/dist/components/core/form/SolidFormActionHeader.tsx +13 -13
  185. package/dist/components/core/form/SolidFormFieldRender.js +1 -1
  186. package/dist/components/core/form/SolidFormFieldRender.js.map +1 -1
  187. package/dist/components/core/form/SolidFormFieldRender.tsx +1 -1
  188. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  189. package/dist/components/core/form/SolidFormFooter.js +12 -5
  190. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  191. package/dist/components/core/form/SolidFormFooter.tsx +14 -5
  192. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  193. package/dist/components/core/form/SolidFormView.js +200 -65
  194. package/dist/components/core/form/SolidFormView.js.map +1 -1
  195. package/dist/components/core/form/SolidFormView.tsx +188 -41
  196. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  197. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +5 -1
  198. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  199. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +5 -1
  200. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  201. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +5 -1
  202. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  203. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +5 -1
  204. package/dist/components/core/form/SolidFormViewShimmerLoading.js +1 -1
  205. package/dist/components/core/form/SolidFormViewShimmerLoading.js.map +1 -1
  206. package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +46 -46
  207. package/dist/components/core/form/fields/SolidBooleanField.js +3 -3
  208. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  209. package/dist/components/core/form/fields/SolidBooleanField.tsx +3 -3
  210. package/dist/components/core/form/fields/SolidComputedField.js +1 -1
  211. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -1
  212. package/dist/components/core/form/fields/SolidComputedField.tsx +1 -1
  213. package/dist/components/core/form/fields/SolidDateField.js +2 -2
  214. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  215. package/dist/components/core/form/fields/SolidDateField.tsx +2 -2
  216. package/dist/components/core/form/fields/SolidDateTimeField.js +2 -2
  217. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  218. package/dist/components/core/form/fields/SolidDateTimeField.tsx +2 -2
  219. package/dist/components/core/form/fields/SolidDecimalField.js +1 -1
  220. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  221. package/dist/components/core/form/fields/SolidDecimalField.tsx +1 -1
  222. package/dist/components/core/form/fields/SolidEmailField.js +1 -1
  223. package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
  224. package/dist/components/core/form/fields/SolidEmailField.tsx +1 -1
  225. package/dist/components/core/form/fields/SolidIntegerField.js +3 -3
  226. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  227. package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -3
  228. package/dist/components/core/form/fields/SolidJsonField.js +3 -3
  229. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  230. package/dist/components/core/form/fields/SolidJsonField.tsx +3 -3
  231. package/dist/components/core/form/fields/SolidLongTextField.js +6 -6
  232. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  233. package/dist/components/core/form/fields/SolidLongTextField.tsx +12 -12
  234. package/dist/components/core/form/fields/SolidMediaMultipleField.js +11 -11
  235. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  236. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +28 -28
  237. package/dist/components/core/form/fields/SolidMediaSingleField.js +5 -5
  238. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  239. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +9 -9
  240. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  241. package/dist/components/core/form/fields/SolidPasswordField.js +12 -6
  242. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  243. package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -6
  244. package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
  245. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  246. package/dist/components/core/form/fields/SolidRichTextField.tsx +2 -2
  247. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +2 -2
  248. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  249. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +2 -2
  250. package/dist/components/core/form/fields/SolidSelectionStaticField.js +1 -1
  251. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  252. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +1 -1
  253. package/dist/components/core/form/fields/SolidShortTextField.js +1 -1
  254. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  255. package/dist/components/core/form/fields/SolidShortTextField.tsx +1 -1
  256. package/dist/components/core/form/fields/SolidTimeField.js +2 -2
  257. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  258. package/dist/components/core/form/fields/SolidTimeField.tsx +2 -2
  259. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +7 -11
  260. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  261. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +18 -63
  262. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  263. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +63 -164
  264. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  265. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +6 -6
  266. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  267. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -36
  268. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +6 -6
  269. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  270. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +6 -6
  271. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  272. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +10 -10
  273. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  274. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +20 -25
  275. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js +1 -1
  276. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js.map +1 -1
  277. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.tsx +1 -1
  278. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js +1 -1
  279. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js.map +1 -1
  280. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +1 -1
  281. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +5 -5
  282. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  283. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +17 -17
  284. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js +1 -1
  285. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js.map +1 -1
  286. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +1 -1
  287. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js +1 -1
  288. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js.map +1 -1
  289. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +1 -1
  290. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  291. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  292. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  293. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  294. package/dist/components/core/kanban/KanbanBoard.tsx +2 -1
  295. package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
  296. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  297. package/dist/components/core/kanban/KanbanCard.js +15 -4
  298. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  299. package/dist/components/core/kanban/KanbanCard.tsx +27 -4
  300. package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
  301. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  302. package/dist/components/core/kanban/KanbanColumn.js +4 -4
  303. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  304. package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
  305. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  306. package/dist/components/core/kanban/SolidKanbanView.js +44 -39
  307. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  308. package/dist/components/core/kanban/SolidKanbanView.tsx +22 -10
  309. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  310. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  311. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  312. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +5 -1
  313. package/dist/components/core/list/ListViewRowActionPopup.js +1 -1
  314. package/dist/components/core/list/ListViewRowActionPopup.js.map +1 -1
  315. package/dist/components/core/list/ListViewRowActionPopup.tsx +1 -2
  316. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +1 -1
  317. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  318. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +3 -3
  319. package/dist/components/core/list/SolidDataTable.js +1 -1
  320. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  321. package/dist/components/core/list/SolidDataTable.tsx +1 -1
  322. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  323. package/dist/components/core/list/SolidListView.js +14 -6
  324. package/dist/components/core/list/SolidListView.js.map +1 -1
  325. package/dist/components/core/list/SolidListView.tsx +21 -13
  326. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  327. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  328. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  329. package/dist/components/core/list/SolidListViewConfigure.tsx +5 -1
  330. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  331. package/dist/components/core/list/SolidListViewHeaderButton.js +5 -1
  332. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  333. package/dist/components/core/list/SolidListViewHeaderButton.tsx +5 -1
  334. package/dist/components/core/list/SolidListingHeader.js +1 -1
  335. package/dist/components/core/list/SolidListingHeader.js.map +1 -1
  336. package/dist/components/core/list/SolidListingHeader.tsx +4 -4
  337. package/dist/components/core/list/SolidTableRowCell.js +1 -1
  338. package/dist/components/core/list/SolidTableRowCell.js.map +1 -1
  339. package/dist/components/core/list/SolidTableRowCell.tsx +1 -1
  340. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +5 -5
  341. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  342. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +8 -8
  343. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -3
  344. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  345. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -3
  346. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js +1 -1
  347. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js.map +1 -1
  348. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.tsx +1 -1
  349. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +1 -1
  350. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -1
  351. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +1 -2
  352. package/dist/components/core/locales/SolidLocale.js +3 -3
  353. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  354. package/dist/components/core/locales/SolidLocale.tsx +7 -7
  355. package/dist/components/core/locales/solid-locale.css +5 -4
  356. package/dist/components/core/model/FieldMetaData.js +2 -2
  357. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  358. package/dist/components/core/model/FieldMetaData.tsx +2 -2
  359. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  360. package/dist/components/core/model/FieldMetaDataForm.js +50 -50
  361. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  362. package/dist/components/core/model/FieldMetaDataForm.tsx +74 -229
  363. package/dist/components/core/model/ModelListViewData.js +4 -4
  364. package/dist/components/core/model/ModelListViewData.js.map +1 -1
  365. package/dist/components/core/model/ModelListViewData.tsx +7 -7
  366. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  367. package/dist/components/core/model/ModelMetaData.js +2 -2
  368. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  369. package/dist/components/core/model/ModelMetaData.tsx +3 -58
  370. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  371. package/dist/components/core/module/CreateModule.js +3 -17
  372. package/dist/components/core/module/CreateModule.js.map +1 -1
  373. package/dist/components/core/module/CreateModule.tsx +18 -32
  374. package/dist/components/core/module/ModuleListViewData.js +5 -5
  375. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  376. package/dist/components/core/module/ModuleListViewData.tsx +8 -8
  377. package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
  378. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
  379. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -1
  380. package/dist/components/core/solid-ai/SolidAiChat.module.css +2 -2
  381. package/dist/components/core/tree/SolidTreeTable.js +1 -1
  382. package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
  383. package/dist/components/core/tree/SolidTreeTable.tsx +1 -1
  384. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  385. package/dist/components/core/tree/SolidTreeView.js +3 -3
  386. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  387. package/dist/components/core/tree/SolidTreeView.tsx +14 -10
  388. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  389. package/dist/components/core/users/CreateUser.js +8 -10
  390. package/dist/components/core/users/CreateUser.js.map +1 -1
  391. package/dist/components/core/users/CreateUser.tsx +18 -36
  392. package/dist/components/core/users/CreateUserRole.js +2 -2
  393. package/dist/components/core/users/CreateUserRole.js.map +1 -1
  394. package/dist/components/core/users/CreateUserRole.tsx +9 -9
  395. package/dist/components/core/users/UserListView.js +4 -4
  396. package/dist/components/core/users/UserListView.js.map +1 -1
  397. package/dist/components/core/users/UserListView.tsx +6 -6
  398. package/dist/components/layout/AdminHeaderActions.d.ts +1 -0
  399. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
  400. package/dist/components/layout/AdminHeaderActions.js +1 -1
  401. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  402. package/dist/components/layout/AdminHeaderActions.tsx +1 -1
  403. package/dist/components/layout/AdminSidebar.js +1 -1
  404. package/dist/components/layout/AdminSidebar.js.map +1 -1
  405. package/dist/components/layout/AdminSidebar.tsx +1 -1
  406. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  407. package/dist/components/layout/AdminTopHeader.js +21 -3
  408. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  409. package/dist/components/layout/AdminTopHeader.tsx +64 -2
  410. package/dist/components/layout/CustomPagination.js +0 -1
  411. package/dist/components/layout/CustomPagination.js.map +1 -1
  412. package/dist/components/layout/CustomPagination.tsx +0 -1
  413. package/dist/components/layout/FilterMenu.js +1 -1
  414. package/dist/components/layout/FilterMenu.js.map +1 -1
  415. package/dist/components/layout/FilterMenu.tsx +4 -4
  416. package/dist/components/layout/Footer.js +1 -1
  417. package/dist/components/layout/Footer.js.map +1 -1
  418. package/dist/components/layout/Footer.tsx +1 -1
  419. package/dist/components/layout/GlobalSearch.js +1 -1
  420. package/dist/components/layout/GlobalSearch.js.map +1 -1
  421. package/dist/components/layout/GlobalSearch.tsx +1 -1
  422. package/dist/components/layout/ListingHeader.js +3 -3
  423. package/dist/components/layout/ListingHeader.js.map +1 -1
  424. package/dist/components/layout/ListingHeader.tsx +4 -4
  425. package/dist/components/layout/Loader.js +1 -1
  426. package/dist/components/layout/Loader.js.map +1 -1
  427. package/dist/components/layout/Loader.tsx +1 -1
  428. package/dist/components/layout/UserSidebar.js +1 -1
  429. package/dist/components/layout/UserSidebar.js.map +1 -1
  430. package/dist/components/layout/UserSidebar.tsx +1 -1
  431. package/dist/components/layout/navbar-one.js +2 -2
  432. package/dist/components/layout/navbar-one.js.map +1 -1
  433. package/dist/components/layout/navbar-one.tsx +8 -8
  434. package/dist/components/layout/navbar-two-menu.js +2 -2
  435. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  436. package/dist/components/layout/navbar-two-menu.tsx +7 -7
  437. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  438. package/dist/components/shad-cn-ui/SolidCodeEditor.js +3 -1
  439. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  440. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +3 -0
  441. package/dist/components/shad-cn-ui/SolidPopover.d.ts +1 -0
  442. package/dist/components/shad-cn-ui/SolidPopover.d.ts.map +1 -1
  443. package/dist/components/shad-cn-ui/SolidPopover.js +124 -5
  444. package/dist/components/shad-cn-ui/SolidPopover.js.map +1 -1
  445. package/dist/components/shad-cn-ui/SolidPopover.tsx +173 -10
  446. package/dist/constants/error-messages.d.ts +13 -0
  447. package/dist/constants/error-messages.d.ts.map +1 -1
  448. package/dist/constants/error-messages.js +17 -0
  449. package/dist/constants/error-messages.js.map +1 -1
  450. package/dist/constants/error-messages.ts +15 -0
  451. package/dist/resources/globals.css +32 -1
  452. package/dist/resources/solid-custom.css +6565 -0
  453. package/dist/resources/solid-primereact.css +14 -12
  454. package/dist/resources/solid-responsive.css +25 -2
  455. package/dist/resources/solid-tailwind-generated.css +1 -0
  456. package/dist/resources/solid-tailwind.css +3 -0
  457. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts +2 -0
  458. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts.map +1 -0
  459. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js +6 -0
  460. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js.map +1 -0
  461. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.tsx +5 -0
  462. package/dist/routes/pages/auth/SsoPage.js +1 -1
  463. package/dist/routes/pages/auth/SsoPage.js.map +1 -1
  464. package/dist/routes/pages/auth/SsoPage.tsx +1 -1
  465. package/dist/styles.d.ts +2 -1
  466. package/dist/styles.d.ts.map +1 -1
  467. package/dist/styles.js +2 -1
  468. package/dist/styles.js.map +1 -1
  469. package/dist/styles.ts +2 -1
  470. package/package.json +6 -3
@@ -233,16 +233,16 @@ export var SolidChatter = function (_a) {
233
233
  setLimit(function (prevLimit) { return prevLimit + 25; });
234
234
  };
235
235
  var canViewMessages = actionsAllowed.includes("".concat(permissionExpression('chatterMessage', 'findMany')));
236
- var renderLoadingState = function () { return (_jsxs("div", { className: 'flex flex-column align-items-center justify-content-center gap-2 h-full text-center text-color-secondary', children: [_jsx(Loader2, { size: 20, className: 'text-primary animate-spin' }), _jsx("span", { className: 'text-sm', children: "Loading recent activity\u2026" })] })); };
236
+ var renderLoadingState = function () { return (_jsxs("div", { className: 'flex h-full flex-col items-center justify-center gap-2 text-center text-color-secondary', children: [_jsx(Loader2, { size: 20, className: 'animate-spin text-[var(--primary-color)]' }), _jsx("span", { className: 'text-sm', children: "Loading recent activity\u2026" })] })); };
237
237
  var renderEmptyState = function () {
238
238
  var isLogComposerOpen = visibleBox === 'log';
239
- return (_jsx("div", { className: 'flex align-items-center justify-content-center h-full', children: _jsxs("div", { className: 'flex flex-column align-items-center gap-2 text-center text-color-secondary px-3', children: [_jsx("div", { className: 'p-2 border-round bg-primary-reverse text-primary', children: _jsx(Inbox, { size: 20 }) }), _jsx("p", { className: 'm-0 text-base font-medium text-color', children: "No activity yet" }), _jsx("p", { className: 'm-0 text-sm', children: "Log your first internal note or send a message to get things started." }), _jsx(SolidButton, { size: 'sm', variant: 'outline', onClick: function () { return handleTabClick('log'); }, children: isLogComposerOpen ? 'Cancel' : 'Log a note' })] }) }));
239
+ return (_jsx("div", { className: 'flex h-full items-center justify-center', children: _jsxs("div", { className: 'flex flex-col items-center gap-2 px-3 text-center text-color-secondary', children: [_jsx("div", { className: 'rounded bg-[var(--primary-color-text)] p-2 text-[var(--primary-color)]', children: _jsx(Inbox, { size: 20 }) }), _jsx("p", { className: 'm-0 text-base font-medium text-color', children: "No activity yet" }), _jsx("p", { className: 'm-0 text-sm', children: "Log your first internal note or send a message to get things started." }), _jsx(SolidButton, { size: 'sm', variant: 'outline', onClick: function () { return handleTabClick('log'); }, children: isLogComposerOpen ? 'Cancel' : 'Log a note' })] }) }));
240
240
  };
241
- var permissionError = function () { return (_jsx("div", { className: 'p-3', children: _jsx(SolidMessage, { severity: 'warn', text: "You do not have permission to view these messages.", className: 'justify-content-start' }) })); };
242
- var renderMessages = function () { return (_jsxs("div", { className: 'flex flex-column gap-3', children: [messages.map(function (message, index) {
241
+ var permissionError = function () { return (_jsx("div", { className: 'p-3', children: _jsx(SolidMessage, { severity: 'warn', text: "You do not have permission to view these messages.", className: 'justify-start' }) })); };
242
+ var renderMessages = function () { return (_jsxs("div", { className: 'flex flex-col gap-4', children: [messages.map(function (message, index) {
243
243
  var showDateDivider = index === 0 || message.date !== messages[index - 1].date;
244
244
  return (_jsxs("div", { children: [showDateDivider && _jsx(SolidChatterDateDivider, { date: message.date }), _jsx(SolidChatterMessageBox, { messageId: message.id, user: message.user, userId: message.userId, messageType: message.messageType, message: message.message, time: message.time, auditRecord: message.auditRecord, media: message.media, messageSubType: message.messageSubType, status: message.status, modelDisplayName: message.modelDisplayName, modelUserKey: message.modelUserKey, onRefresh: fetchData })] }, message.id));
245
- }), totalRecords > messages.length && (_jsx("div", { className: 'flex justify-content-center', children: _jsx(SolidButton, { type: 'button', size: 'sm', variant: 'outline', onClick: handleLoadMore, children: "Load more" }) }))] })); };
245
+ }), totalRecords > messages.length && (_jsx("div", { className: 'flex justify-center', children: _jsx(SolidButton, { type: 'button', size: 'sm', variant: 'outline', onClick: handleLoadMore, children: "Load more" }) }))] })); };
246
246
  return (_jsxs("div", { className: 'h-full', children: [_jsx(SolidChatterHeader, { id: id, refetch: fetchData, modelSingularName: modelSingularName, activeTab: activeTab, handleTabClick: handleTabClick, visibleBox: visibleBox, onFilterChange: handleFilterChange, onComposerCancel: function () { return setVisibleBox(null); }, title: title, modelUserKey: modelUserKey }), _jsx("div", { className: 'solid-chatter-body', style: {
247
247
  height: isMobileViewport
248
248
  ? (visibleBox === 'email-message'
@@ -1 +1 @@
1
- {"version":3,"file":"SolidChatter.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatter.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState, useEffect } from 'react'\nimport { SolidChatterHeader } from './SolidChatterHeader'\nimport { SolidChatterDateDivider } from './SolidChatterDateDivider'\nimport { SolidChatterMessageBox } from './SolidChatterMessageBox'\nimport { useLazyGetchatterMessageQuery } from '../../../redux/api/solidChatterMessageApi'\nimport qs from \"qs\";\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { permissionExpression } from '../../../helpers/permissions'\nimport { SolidButton, SolidMessage } from '../../shad-cn-ui'\nimport { Inbox, Loader2 } from 'lucide-react'\n\ninterface FilterState {\n name: string;\n startDate: Date | null;\n endDate: Date | null;\n}\n\nconst isEmptyAuditValue = (value: string | null | undefined) => {\n if (value == null) return true;\n if (typeof value !== 'string') return false;\n\n const normalizedValue = value.trim().toLowerCase();\n return normalizedValue === '' || normalizedValue === 'none' || normalizedValue === 'null';\n};\n\nexport const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, setRefreshChatterMessage, actionsAllowed = [], title, modelUserKey }: { modelSingularName: any, id: any, refreshChatterMessage: boolean, setRefreshChatterMessage: (value: boolean) => void, actionsAllowed?: string[], title?: string, modelUserKey?: string }) => {\n const [activeTab, setActiveTab] = useState<'email-message' | 'log' | null>('email-message');\n const [visibleBox, setVisibleBox] = useState<'email-message' | 'log' | null>(null);\n const [messages, setMessages] = useState<any[]>([]);\n const [limit, setLimit] = useState<number>(25);\n const [totalRecords, setTotalRecords] = useState<number>(0);\n const [filters, setFilters] = useState<FilterState>({\n name: '',\n startDate: null,\n endDate: null\n });\n const [isMobileViewport, setIsMobileViewport] = useState(false);\n\n const [getchatterMessage, { isLoading: isChatterLoading }] = useLazyGetchatterMessageQuery();\n\n useEffect(() => {\n const updateViewport = () => setIsMobileViewport(window.innerWidth <= 1199);\n updateViewport();\n window.addEventListener('resize', updateViewport);\n return () => window.removeEventListener('resize', updateViewport);\n }, []);\n\n useEffect(() => {\n if (refreshChatterMessage) {\n if (id !== 'new') {\n fetchData();\n setRefreshChatterMessage(false);\n }\n }\n }, [refreshChatterMessage]);\n\n useEffect(() => {\n if (id !== 'new') {\n fetchData();\n }\n }, [filters, limit]);\n\n const handleTabClick = (tab: 'email-message' | 'log') => {\n setActiveTab(tab);\n setVisibleBox(prev => (prev === tab ? null : tab));\n }\n\n const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n\n if (date.toDateString() === today.toDateString()) {\n return 'Today';\n } else if (date.toDateString() === yesterday.toDateString()) {\n return 'Yesterday';\n } else {\n return dateString;\n }\n };\n\n const fetchData = async () => {\n try {\n const queryData: any = {\n populate: ['user', 'chatterMessageDetails'],\n limit: limit\n };\n\n if (filters.name) {\n queryData.filters = queryData.filters || {};\n queryData.filters['user'] = { fullName: { $containsi: filters.name }};\n }\n const startOfDay = (d: Date) => {\n const x = new Date(d);\n x.setHours(0, 0, 0, 0);\n return x;\n };\n const endOfDay = (d: Date) => {\n const x = new Date(d);\n x.setHours(23, 59, 59, 999);\n return x;\n };\n if (filters.startDate && filters.endDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = {\n $between: [startOfDay(filters.startDate).toISOString(), endOfDay(filters.endDate).toISOString()]\n };\n } else if (filters.startDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = { $gte: startOfDay(filters.startDate).toISOString() };\n } else if (filters.endDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = { $lte: endOfDay(filters.endDate).toISOString() };\n }\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const response = await getchatterMessage({\n entityId: id,\n entityName: modelSingularName,\n qs: queryString\n }).unwrap();\n const processedMessages = response.data.records.map((msg: any) => {\n if (msg.messageType === 'custom') {\n const displayTimeSource = msg.updatedAt || msg.createdAt;\n // Custom message\n return {\n id: msg.id,\n user: msg.user?.fullName || \"System\",\n userId: msg.user?.id,\n messageType: \"custom\",\n message: msg.messageBody,\n time: new Date(displayTimeSource).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),\n createdAt: displayTimeSource,\n date: formatDate(displayTimeSource),\n media: msg._media,\n messageSubType: msg.messageSubType,\n status: msg.status,\n modelDisplayName: msg.modelDisplayName,\n modelUserKey: msg.modelUserKey\n };\n } else {\n // Audit message\n const auditRecord = msg.chatterMessageDetails?.map((detail: any) => ({\n field: detail.fieldName,\n fieldDisplayName: detail.fieldDisplayName,\n fieldType: detail.fieldType,\n previous: detail.oldValue,\n current: detail.newValue,\n previousDisplay: detail.oldValueDisplay,\n currentDisplay: detail.newValueDisplay,\n })).filter((detail: any) => {\n const previousValue = detail.previousDisplay ?? detail.previous;\n const currentValue = detail.currentDisplay ?? detail.current;\n\n return !(isEmptyAuditValue(previousValue) && isEmptyAuditValue(currentValue));\n }) || [];\n\n if (auditRecord.length === 0) {\n return null;\n }\n\n return {\n id: msg.id,\n user: msg.user?.fullName || \"System\",\n userId: msg.user?.id,\n messageType: \"audit\",\n time: new Date(msg.createdAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),\n auditRecord: auditRecord,\n createdAt: msg.createdAt,\n date: formatDate(msg.createdAt),\n messageSubType: msg.messageSubType,\n modelDisplayName: msg.modelDisplayName,\n modelUserKey: msg.modelUserKey,\n message: msg.messageBody,\n };\n }\n }).filter(Boolean);\n setMessages(processedMessages);\n setTotalRecords(response?.data?.meta?.totalRecords || 0);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n }\n\n const handleFilterChange = (newFilters: FilterState) => {\n setFilters({\n name: newFilters.name,\n startDate: newFilters.startDate,\n endDate: newFilters.endDate\n });\n setLimit(25);\n };\n\n const handleLoadMore = () => {\n setLimit(prevLimit => prevLimit + 25);\n };\n\n const canViewMessages = actionsAllowed.includes(`${permissionExpression('chatterMessage', 'findMany')}`);\n\n const renderLoadingState = () => (\n <div className='flex flex-column align-items-center justify-content-center gap-2 h-full text-center text-color-secondary'>\n <Loader2 size={20} className='text-primary animate-spin' />\n <span className='text-sm'>Loading recent activity…</span>\n </div>\n );\n\n const renderEmptyState = () => {\n const isLogComposerOpen = visibleBox === 'log';\n return (\n <div className='flex align-items-center justify-content-center h-full'>\n <div className='flex flex-column align-items-center gap-2 text-center text-color-secondary px-3'>\n <div className='p-2 border-round bg-primary-reverse text-primary'>\n <Inbox size={20} />\n </div>\n <p className='m-0 text-base font-medium text-color'>No activity yet</p>\n <p className='m-0 text-sm'>Log your first internal note or send a message to get things started.</p>\n <SolidButton size='sm' variant='outline' onClick={() => handleTabClick('log')}>\n {isLogComposerOpen ? 'Cancel' : 'Log a note'}\n </SolidButton>\n </div>\n </div>\n );\n };\n\n const permissionError = () => (\n <div className='p-3'>\n <SolidMessage severity='warn' text=\"You do not have permission to view these messages.\" className='justify-content-start' />\n </div>\n );\n\n const renderMessages = () => (\n <div className='flex flex-column gap-3'>\n {messages.map((message, index) => {\n const showDateDivider = index === 0 || message.date !== messages[index - 1].date;\n return (\n <div key={message.id}>\n {showDateDivider && <SolidChatterDateDivider date={message.date} />}\n <SolidChatterMessageBox\n messageId={message.id}\n user={message.user}\n userId={message.userId}\n messageType={message.messageType}\n message={message.message}\n time={message.time}\n auditRecord={message.auditRecord}\n media={message.media}\n messageSubType={message.messageSubType}\n status={message.status}\n modelDisplayName={message.modelDisplayName}\n modelUserKey={message.modelUserKey}\n onRefresh={fetchData}\n />\n </div>\n );\n })}\n {totalRecords > messages.length && (\n <div className='flex justify-content-center'>\n <SolidButton\n type='button'\n size='sm'\n variant='outline'\n onClick={handleLoadMore}\n >\n Load more\n </SolidButton>\n </div>\n )}\n </div>\n );\n\n return (\n <div className='h-full'>\n <SolidChatterHeader\n id={id}\n refetch={fetchData}\n modelSingularName={modelSingularName}\n activeTab={activeTab}\n handleTabClick={handleTabClick}\n visibleBox={visibleBox}\n onFilterChange={handleFilterChange}\n onComposerCancel={() => setVisibleBox(null)}\n title={title}\n modelUserKey={modelUserKey}\n />\n <div className='solid-chatter-body' style={{\n height:\n isMobileViewport\n ? (visibleBox === 'email-message'\n ? 'calc(100dvh - 248px)'\n : visibleBox === 'log'\n ? 'calc(100dvh - 210px)'\n : 'calc(100dvh - 60px)')\n : (visibleBox === 'email-message'\n ? 'calc(100vh - 196px)'\n : visibleBox === 'log'\n ? 'calc(100vh - 292px)'\n : 'calc(100vh - 127px)'),\n }}>\n {isChatterLoading\n ? renderLoadingState()\n : !canViewMessages\n ? permissionError()\n : messages.length === 0\n ? renderEmptyState()\n : renderMessages()\n }\n </div>\n </div>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidChatter.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatter.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState, useEffect } from 'react'\nimport { SolidChatterHeader } from './SolidChatterHeader'\nimport { SolidChatterDateDivider } from './SolidChatterDateDivider'\nimport { SolidChatterMessageBox } from './SolidChatterMessageBox'\nimport { useLazyGetchatterMessageQuery } from '../../../redux/api/solidChatterMessageApi'\nimport qs from \"qs\";\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { permissionExpression } from '../../../helpers/permissions'\nimport { SolidButton, SolidMessage } from '../../shad-cn-ui'\nimport { Inbox, Loader2 } from 'lucide-react'\n\ninterface FilterState {\n name: string;\n startDate: Date | null;\n endDate: Date | null;\n}\n\nconst isEmptyAuditValue = (value: string | null | undefined) => {\n if (value == null) return true;\n if (typeof value !== 'string') return false;\n\n const normalizedValue = value.trim().toLowerCase();\n return normalizedValue === '' || normalizedValue === 'none' || normalizedValue === 'null';\n};\n\nexport const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, setRefreshChatterMessage, actionsAllowed = [], title, modelUserKey }: { modelSingularName: any, id: any, refreshChatterMessage: boolean, setRefreshChatterMessage: (value: boolean) => void, actionsAllowed?: string[], title?: string, modelUserKey?: string }) => {\n const [activeTab, setActiveTab] = useState<'email-message' | 'log' | null>('email-message');\n const [visibleBox, setVisibleBox] = useState<'email-message' | 'log' | null>(null);\n const [messages, setMessages] = useState<any[]>([]);\n const [limit, setLimit] = useState<number>(25);\n const [totalRecords, setTotalRecords] = useState<number>(0);\n const [filters, setFilters] = useState<FilterState>({\n name: '',\n startDate: null,\n endDate: null\n });\n const [isMobileViewport, setIsMobileViewport] = useState(false);\n\n const [getchatterMessage, { isLoading: isChatterLoading }] = useLazyGetchatterMessageQuery();\n\n useEffect(() => {\n const updateViewport = () => setIsMobileViewport(window.innerWidth <= 1199);\n updateViewport();\n window.addEventListener('resize', updateViewport);\n return () => window.removeEventListener('resize', updateViewport);\n }, []);\n\n useEffect(() => {\n if (refreshChatterMessage) {\n if (id !== 'new') {\n fetchData();\n setRefreshChatterMessage(false);\n }\n }\n }, [refreshChatterMessage]);\n\n useEffect(() => {\n if (id !== 'new') {\n fetchData();\n }\n }, [filters, limit]);\n\n const handleTabClick = (tab: 'email-message' | 'log') => {\n setActiveTab(tab);\n setVisibleBox(prev => (prev === tab ? null : tab));\n }\n\n const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n\n if (date.toDateString() === today.toDateString()) {\n return 'Today';\n } else if (date.toDateString() === yesterday.toDateString()) {\n return 'Yesterday';\n } else {\n return dateString;\n }\n };\n\n const fetchData = async () => {\n try {\n const queryData: any = {\n populate: ['user', 'chatterMessageDetails'],\n limit: limit\n };\n\n if (filters.name) {\n queryData.filters = queryData.filters || {};\n queryData.filters['user'] = { fullName: { $containsi: filters.name }};\n }\n const startOfDay = (d: Date) => {\n const x = new Date(d);\n x.setHours(0, 0, 0, 0);\n return x;\n };\n const endOfDay = (d: Date) => {\n const x = new Date(d);\n x.setHours(23, 59, 59, 999);\n return x;\n };\n if (filters.startDate && filters.endDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = {\n $between: [startOfDay(filters.startDate).toISOString(), endOfDay(filters.endDate).toISOString()]\n };\n } else if (filters.startDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = { $gte: startOfDay(filters.startDate).toISOString() };\n } else if (filters.endDate) {\n queryData.filters = queryData.filters || {};\n queryData.filters.createdAt = { $lte: endOfDay(filters.endDate).toISOString() };\n }\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const response = await getchatterMessage({\n entityId: id,\n entityName: modelSingularName,\n qs: queryString\n }).unwrap();\n const processedMessages = response.data.records.map((msg: any) => {\n if (msg.messageType === 'custom') {\n const displayTimeSource = msg.updatedAt || msg.createdAt;\n // Custom message\n return {\n id: msg.id,\n user: msg.user?.fullName || \"System\",\n userId: msg.user?.id,\n messageType: \"custom\",\n message: msg.messageBody,\n time: new Date(displayTimeSource).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),\n createdAt: displayTimeSource,\n date: formatDate(displayTimeSource),\n media: msg._media,\n messageSubType: msg.messageSubType,\n status: msg.status,\n modelDisplayName: msg.modelDisplayName,\n modelUserKey: msg.modelUserKey\n };\n } else {\n // Audit message\n const auditRecord = msg.chatterMessageDetails?.map((detail: any) => ({\n field: detail.fieldName,\n fieldDisplayName: detail.fieldDisplayName,\n fieldType: detail.fieldType,\n previous: detail.oldValue,\n current: detail.newValue,\n previousDisplay: detail.oldValueDisplay,\n currentDisplay: detail.newValueDisplay,\n })).filter((detail: any) => {\n const previousValue = detail.previousDisplay ?? detail.previous;\n const currentValue = detail.currentDisplay ?? detail.current;\n\n return !(isEmptyAuditValue(previousValue) && isEmptyAuditValue(currentValue));\n }) || [];\n\n if (auditRecord.length === 0) {\n return null;\n }\n\n return {\n id: msg.id,\n user: msg.user?.fullName || \"System\",\n userId: msg.user?.id,\n messageType: \"audit\",\n time: new Date(msg.createdAt).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }),\n auditRecord: auditRecord,\n createdAt: msg.createdAt,\n date: formatDate(msg.createdAt),\n messageSubType: msg.messageSubType,\n modelDisplayName: msg.modelDisplayName,\n modelUserKey: msg.modelUserKey,\n message: msg.messageBody,\n };\n }\n }).filter(Boolean);\n setMessages(processedMessages);\n setTotalRecords(response?.data?.meta?.totalRecords || 0);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n }\n\n const handleFilterChange = (newFilters: FilterState) => {\n setFilters({\n name: newFilters.name,\n startDate: newFilters.startDate,\n endDate: newFilters.endDate\n });\n setLimit(25);\n };\n\n const handleLoadMore = () => {\n setLimit(prevLimit => prevLimit + 25);\n };\n\n const canViewMessages = actionsAllowed.includes(`${permissionExpression('chatterMessage', 'findMany')}`);\n\n const renderLoadingState = () => (\n <div className='flex h-full flex-col items-center justify-center gap-2 text-center text-color-secondary'>\n <Loader2 size={20} className='animate-spin text-[var(--primary-color)]' />\n <span className='text-sm'>Loading recent activity…</span>\n </div>\n );\n\n const renderEmptyState = () => {\n const isLogComposerOpen = visibleBox === 'log';\n return (\n <div className='flex h-full items-center justify-center'>\n <div className='flex flex-col items-center gap-2 px-3 text-center text-color-secondary'>\n <div className='rounded bg-[var(--primary-color-text)] p-2 text-[var(--primary-color)]'>\n <Inbox size={20} />\n </div>\n <p className='m-0 text-base font-medium text-color'>No activity yet</p>\n <p className='m-0 text-sm'>Log your first internal note or send a message to get things started.</p>\n <SolidButton size='sm' variant='outline' onClick={() => handleTabClick('log')}>\n {isLogComposerOpen ? 'Cancel' : 'Log a note'}\n </SolidButton>\n </div>\n </div>\n );\n };\n\n const permissionError = () => (\n <div className='p-3'>\n <SolidMessage severity='warn' text=\"You do not have permission to view these messages.\" className='justify-start' />\n </div>\n );\n\n const renderMessages = () => (\n <div className='flex flex-col gap-4'>\n {messages.map((message, index) => {\n const showDateDivider = index === 0 || message.date !== messages[index - 1].date;\n return (\n <div key={message.id}>\n {showDateDivider && <SolidChatterDateDivider date={message.date} />}\n <SolidChatterMessageBox\n messageId={message.id}\n user={message.user}\n userId={message.userId}\n messageType={message.messageType}\n message={message.message}\n time={message.time}\n auditRecord={message.auditRecord}\n media={message.media}\n messageSubType={message.messageSubType}\n status={message.status}\n modelDisplayName={message.modelDisplayName}\n modelUserKey={message.modelUserKey}\n onRefresh={fetchData}\n />\n </div>\n );\n })}\n {totalRecords > messages.length && (\n <div className='flex justify-center'>\n <SolidButton\n type='button'\n size='sm'\n variant='outline'\n onClick={handleLoadMore}\n >\n Load more\n </SolidButton>\n </div>\n )}\n </div>\n );\n\n return (\n <div className='h-full'>\n <SolidChatterHeader\n id={id}\n refetch={fetchData}\n modelSingularName={modelSingularName}\n activeTab={activeTab}\n handleTabClick={handleTabClick}\n visibleBox={visibleBox}\n onFilterChange={handleFilterChange}\n onComposerCancel={() => setVisibleBox(null)}\n title={title}\n modelUserKey={modelUserKey}\n />\n <div className='solid-chatter-body' style={{\n height:\n isMobileViewport\n ? (visibleBox === 'email-message'\n ? 'calc(100dvh - 248px)'\n : visibleBox === 'log'\n ? 'calc(100dvh - 210px)'\n : 'calc(100dvh - 60px)')\n : (visibleBox === 'email-message'\n ? 'calc(100vh - 196px)'\n : visibleBox === 'log'\n ? 'calc(100vh - 292px)'\n : 'calc(100vh - 127px)'),\n }}>\n {isChatterLoading\n ? renderLoadingState()\n : !canViewMessages\n ? permissionError()\n : messages.length === 0\n ? renderEmptyState()\n : renderMessages()\n }\n </div>\n </div>\n )\n}\n"]}
@@ -202,8 +202,8 @@ export const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, set
202
202
  const canViewMessages = actionsAllowed.includes(`${permissionExpression('chatterMessage', 'findMany')}`);
203
203
 
204
204
  const renderLoadingState = () => (
205
- <div className='flex flex-column align-items-center justify-content-center gap-2 h-full text-center text-color-secondary'>
206
- <Loader2 size={20} className='text-primary animate-spin' />
205
+ <div className='flex h-full flex-col items-center justify-center gap-2 text-center text-color-secondary'>
206
+ <Loader2 size={20} className='animate-spin text-[var(--primary-color)]' />
207
207
  <span className='text-sm'>Loading recent activity…</span>
208
208
  </div>
209
209
  );
@@ -211,9 +211,9 @@ export const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, set
211
211
  const renderEmptyState = () => {
212
212
  const isLogComposerOpen = visibleBox === 'log';
213
213
  return (
214
- <div className='flex align-items-center justify-content-center h-full'>
215
- <div className='flex flex-column align-items-center gap-2 text-center text-color-secondary px-3'>
216
- <div className='p-2 border-round bg-primary-reverse text-primary'>
214
+ <div className='flex h-full items-center justify-center'>
215
+ <div className='flex flex-col items-center gap-2 px-3 text-center text-color-secondary'>
216
+ <div className='rounded bg-[var(--primary-color-text)] p-2 text-[var(--primary-color)]'>
217
217
  <Inbox size={20} />
218
218
  </div>
219
219
  <p className='m-0 text-base font-medium text-color'>No activity yet</p>
@@ -228,12 +228,12 @@ export const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, set
228
228
 
229
229
  const permissionError = () => (
230
230
  <div className='p-3'>
231
- <SolidMessage severity='warn' text="You do not have permission to view these messages." className='justify-content-start' />
231
+ <SolidMessage severity='warn' text="You do not have permission to view these messages." className='justify-start' />
232
232
  </div>
233
233
  );
234
234
 
235
235
  const renderMessages = () => (
236
- <div className='flex flex-column gap-3'>
236
+ <div className='flex flex-col gap-4'>
237
237
  {messages.map((message, index) => {
238
238
  const showDateDivider = index === 0 || message.date !== messages[index - 1].date;
239
239
  return (
@@ -258,7 +258,7 @@ export const SolidChatter = ({ modelSingularName, id, refreshChatterMessage, set
258
258
  );
259
259
  })}
260
260
  {totalRecords > messages.length && (
261
- <div className='flex justify-content-center'>
261
+ <div className='flex justify-center'>
262
262
  <SolidButton
263
263
  type='button'
264
264
  size='sm'
@@ -38,6 +38,6 @@ export var SolidChatterAuditMessage = function (_a) {
38
38
  if (visibleAuditRecord.length === 0) {
39
39
  return null;
40
40
  }
41
- return (_jsx("div", { className: 'flex flex-column gap-2', children: visibleAuditRecord.map(function (item, index) { return (_jsxs("div", { className: 'flex gap-2', children: [_jsx("span", { className: 'm-0 ', children: "(" + (item.fieldDisplayName || item.field) + ")" }), _jsx("span", { className: 'm-0 font-bold', children: formatAuditValue(item.previous, item.previousDisplay, item.fieldType) }), _jsx(RightArrowSvg, {}), _jsx("span", { className: 'm-0 font-bold text-primary', children: formatAuditValue(item.current, item.currentDisplay, item.fieldType) })] }, index)); }) }));
41
+ return (_jsx("div", { className: 'flex flex-col gap-2', children: visibleAuditRecord.map(function (item, index) { return (_jsxs("div", { className: 'flex gap-2', children: [_jsx("span", { className: 'm-0 ', children: "(" + (item.fieldDisplayName || item.field) + ")" }), _jsx("span", { className: 'm-0 font-bold', children: formatAuditValue(item.previous, item.previousDisplay, item.fieldType) }), _jsx(RightArrowSvg, {}), _jsx("span", { className: 'm-0 font-bold text-[var(--primary-color)]', children: formatAuditValue(item.current, item.currentDisplay, item.fieldType) })] }, index)); }) }));
42
42
  };
43
43
  //# sourceMappingURL=SolidChatterAuditMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidChatterAuditMessage.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatterAuditMessage.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAErE,IAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;AAErD,SAAS,iBAAiB,CAAC,KAAgC;IACvD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAClD,OAAO,eAAe,KAAK,EAAE,IAAI,eAAe,KAAK,MAAM,IAAI,eAAe,KAAK,MAAM,CAAA;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAiB;;IAC/C,IAAM,aAAa,GAAG,MAAA,IAAI,CAAC,eAAe,mCAAI,IAAI,CAAC,QAAQ,CAAA;IAC3D,IAAM,YAAY,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,CAAA;IAExD,OAAO,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,gBAAgB,CACrB,KAAgC,EAChC,YAAuC,EACvC,SAAkB;IAElB,+EAA+E;IAC/E,IAAI,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAA;QACzB,IAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAA;QAC9B,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACvD,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;KACtC;IAED,OAAO,YAAY,IAAI,KAAK,IAAI,MAAM,CAAA;AAC1C,CAAC;AAgBD,MAAM,CAAC,IAAM,wBAAwB,GAA4C,UAAC,EAAe;QAAb,WAAW,iBAAA;IAC3F,IAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAEvE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,OAAO,IAAI,CAAA;KACd;IAED,OAAO,CACH,cAAK,SAAS,EAAC,wBAAwB,YAClC,kBAAkB,CAAC,GAAG,CAAC,UAAC,IAAiB,EAAE,KAAa,IAAK,OAAA,CAC1D,eAAiB,SAAS,EAAC,YAAY,aACnC,eAAM,SAAS,EAAC,MAAM,YACjB,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAC/C,EACP,eAAM,SAAS,EAAC,gBAAgB,YAC3B,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GACnE,EACP,KAAC,aAAa,KAAG,EACjB,eAAM,SAAS,EAAC,4BAA4B,YACvC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,GACjE,KAVD,KAAK,CAWT,CACT,EAb6D,CAa7D,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["\nimport React from 'react'\nimport dayjs from 'dayjs'\nimport { RightArrowSvg } from '../../../components/Svg/RightArrowSvg'\n\nconst DATE_FIELD_TYPES = ['date', 'datetime', 'time']\n\nfunction isEmptyAuditValue(value: string | null | undefined): boolean {\n if (value == null) return true\n if (typeof value !== 'string') return false\n\n const normalizedValue = value.trim().toLowerCase()\n return normalizedValue === '' || normalizedValue === 'none' || normalizedValue === 'null'\n}\n\nfunction hasMeaningfulAuditChange(item: AuditRecord): boolean {\n const previousValue = item.previousDisplay ?? item.previous\n const currentValue = item.currentDisplay ?? item.current\n\n return !(isEmptyAuditValue(previousValue) && isEmptyAuditValue(currentValue))\n}\n\nfunction formatAuditValue(\n value: string | null | undefined,\n displayValue: string | null | undefined,\n fieldType?: string\n): string {\n // fieldType may be null for older audit records — fall through to displayValue\n if (fieldType && DATE_FIELD_TYPES.includes(fieldType)) {\n if (!value) return 'None'\n const d = dayjs(value)\n if (!d.isValid()) return value\n if (fieldType === 'date') return d.format('DD-MM-YYYY')\n if (fieldType === 'time') return d.format('HH:mm')\n return d.format('DD-MM-YYYY HH:mm')\n }\n\n return displayValue || value || 'None'\n}\n\ninterface AuditRecord {\n field: string;\n fieldDisplayName: string;\n fieldType?: string;\n previous: string | null;\n current: string | null;\n previousDisplay?: string | null;\n currentDisplay?: string | null;\n}\n\ninterface SolidChatterAuditMessageProps {\n auditRecord: AuditRecord[];\n}\n\nexport const SolidChatterAuditMessage: React.FC<SolidChatterAuditMessageProps> = ({ auditRecord }) => {\n const visibleAuditRecord = auditRecord.filter(hasMeaningfulAuditChange)\n\n if (visibleAuditRecord.length === 0) {\n return null\n }\n\n return (\n <div className='flex flex-column gap-2'>\n {visibleAuditRecord.map((item: AuditRecord, index: number) => (\n <div key={index} className='flex gap-2'>\n <span className='m-0 '>\n {\"(\" + (item.fieldDisplayName || item.field) + \")\"}\n </span>\n <span className='m-0 font-bold'>\n {formatAuditValue(item.previous, item.previousDisplay, item.fieldType)}\n </span>\n <RightArrowSvg />\n <span className='m-0 font-bold text-primary'>\n {formatAuditValue(item.current, item.currentDisplay, item.fieldType)}\n </span>\n </div>\n ))}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidChatterAuditMessage.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatterAuditMessage.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAErE,IAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;AAErD,SAAS,iBAAiB,CAAC,KAAgC;IACvD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAClD,OAAO,eAAe,KAAK,EAAE,IAAI,eAAe,KAAK,MAAM,IAAI,eAAe,KAAK,MAAM,CAAA;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAiB;;IAC/C,IAAM,aAAa,GAAG,MAAA,IAAI,CAAC,eAAe,mCAAI,IAAI,CAAC,QAAQ,CAAA;IAC3D,IAAM,YAAY,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,CAAA;IAExD,OAAO,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,gBAAgB,CACrB,KAAgC,EAChC,YAAuC,EACvC,SAAkB;IAElB,+EAA+E;IAC/E,IAAI,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAA;QACzB,IAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAA;QAC9B,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACvD,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;KACtC;IAED,OAAO,YAAY,IAAI,KAAK,IAAI,MAAM,CAAA;AAC1C,CAAC;AAgBD,MAAM,CAAC,IAAM,wBAAwB,GAA4C,UAAC,EAAe;QAAb,WAAW,iBAAA;IAC3F,IAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAEvE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,OAAO,IAAI,CAAA;KACd;IAED,OAAO,CACH,cAAK,SAAS,EAAC,qBAAqB,YAC/B,kBAAkB,CAAC,GAAG,CAAC,UAAC,IAAiB,EAAE,KAAa,IAAK,OAAA,CAC1D,eAAiB,SAAS,EAAC,YAAY,aACnC,eAAM,SAAS,EAAC,MAAM,YACjB,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAC/C,EACP,eAAM,SAAS,EAAC,gBAAgB,YAC3B,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GACnE,EACP,KAAC,aAAa,KAAG,EACjB,eAAM,SAAS,EAAC,2CAA2C,YACtD,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,GACjE,KAVD,KAAK,CAWT,CACT,EAb6D,CAa7D,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["\nimport React from 'react'\nimport dayjs from 'dayjs'\nimport { RightArrowSvg } from '../../../components/Svg/RightArrowSvg'\n\nconst DATE_FIELD_TYPES = ['date', 'datetime', 'time']\n\nfunction isEmptyAuditValue(value: string | null | undefined): boolean {\n if (value == null) return true\n if (typeof value !== 'string') return false\n\n const normalizedValue = value.trim().toLowerCase()\n return normalizedValue === '' || normalizedValue === 'none' || normalizedValue === 'null'\n}\n\nfunction hasMeaningfulAuditChange(item: AuditRecord): boolean {\n const previousValue = item.previousDisplay ?? item.previous\n const currentValue = item.currentDisplay ?? item.current\n\n return !(isEmptyAuditValue(previousValue) && isEmptyAuditValue(currentValue))\n}\n\nfunction formatAuditValue(\n value: string | null | undefined,\n displayValue: string | null | undefined,\n fieldType?: string\n): string {\n // fieldType may be null for older audit records — fall through to displayValue\n if (fieldType && DATE_FIELD_TYPES.includes(fieldType)) {\n if (!value) return 'None'\n const d = dayjs(value)\n if (!d.isValid()) return value\n if (fieldType === 'date') return d.format('DD-MM-YYYY')\n if (fieldType === 'time') return d.format('HH:mm')\n return d.format('DD-MM-YYYY HH:mm')\n }\n\n return displayValue || value || 'None'\n}\n\ninterface AuditRecord {\n field: string;\n fieldDisplayName: string;\n fieldType?: string;\n previous: string | null;\n current: string | null;\n previousDisplay?: string | null;\n currentDisplay?: string | null;\n}\n\ninterface SolidChatterAuditMessageProps {\n auditRecord: AuditRecord[];\n}\n\nexport const SolidChatterAuditMessage: React.FC<SolidChatterAuditMessageProps> = ({ auditRecord }) => {\n const visibleAuditRecord = auditRecord.filter(hasMeaningfulAuditChange)\n\n if (visibleAuditRecord.length === 0) {\n return null\n }\n\n return (\n <div className='flex flex-col gap-2'>\n {visibleAuditRecord.map((item: AuditRecord, index: number) => (\n <div key={index} className='flex gap-2'>\n <span className='m-0 '>\n {\"(\" + (item.fieldDisplayName || item.field) + \")\"}\n </span>\n <span className='m-0 font-bold'>\n {formatAuditValue(item.previous, item.previousDisplay, item.fieldType)}\n </span>\n <RightArrowSvg />\n <span className='m-0 font-bold text-[var(--primary-color)]'>\n {formatAuditValue(item.current, item.currentDisplay, item.fieldType)}\n </span>\n </div>\n ))}\n </div>\n );\n};\n"]}
@@ -60,7 +60,7 @@ export const SolidChatterAuditMessage: React.FC<SolidChatterAuditMessageProps> =
60
60
  }
61
61
 
62
62
  return (
63
- <div className='flex flex-column gap-2'>
63
+ <div className='flex flex-col gap-2'>
64
64
  {visibleAuditRecord.map((item: AuditRecord, index: number) => (
65
65
  <div key={index} className='flex gap-2'>
66
66
  <span className='m-0 '>
@@ -70,7 +70,7 @@ export const SolidChatterAuditMessage: React.FC<SolidChatterAuditMessageProps> =
70
70
  {formatAuditValue(item.previous, item.previousDisplay, item.fieldType)}
71
71
  </span>
72
72
  <RightArrowSvg />
73
- <span className='m-0 font-bold text-primary'>
73
+ <span className='m-0 font-bold text-[var(--primary-color)]'>
74
74
  {formatAuditValue(item.current, item.currentDisplay, item.fieldType)}
75
75
  </span>
76
76
  </div>
@@ -133,9 +133,9 @@ export var SolidChatterHeader = function (props) {
133
133
  }
134
134
  updateNameFilter(value);
135
135
  };
136
- return (_jsxs("div", { className: "".concat(styles.chatterTitle, " ").concat(title ? styles.chatterTitleWithLabel : '', " solid-list-toolbar"), children: [_jsxs("div", { className: 'flex justify-content-between align-items-center solid-list-toolbar-row', children: [_jsx("p", { className: "m-0 view-title solid-text-wrapper form-wrapper-title", children: title || '' }), _jsxs("div", { className: 'flex align-items-center solid-header-buttons-wrapper', children: [_jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Log Note", variant: hasActiveFilters ? 'primary' : 'outline', className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(Edit, { size: 14 }), onClick: function () { return handleTabClick('log'); } }), _jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Filter", variant: hasActiveFilters ? 'primary' : 'outline', className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(Filter, { size: 14 }), onClick: handleFilterClick }), _jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Refresh", variant: "outline", className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(RefreshCw, { size: 14 }), onClick: refetch })] })] }), visibleBox &&
136
+ return (_jsxs("div", { className: "".concat(styles.chatterTitle, " ").concat(title ? styles.chatterTitleWithLabel : '', " solid-list-toolbar"), children: [_jsxs("div", { className: 'flex justify-between items-center solid-list-toolbar-row', children: [_jsx("p", { className: "m-0 view-title solid-text-wrapper form-wrapper-title", children: title || '' }), _jsxs("div", { className: 'flex items-center solid-header-buttons-wrapper', children: [_jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Log Note", variant: hasActiveFilters ? 'primary' : 'outline', className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(Edit, { size: 14 }), onClick: function () { return handleTabClick('log'); } }), _jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Filter", variant: hasActiveFilters ? 'primary' : 'outline', className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(Filter, { size: 14 }), onClick: handleFilterClick }), _jsx(SolidButton, { size: "sm", type: "button", "aria-label": "Refresh", variant: "outline", className: "solid-icon-button", style: { gap: 0 }, leftIcon: _jsx(RefreshCw, { size: 14 }), onClick: refetch })] })] }), visibleBox &&
137
137
  _jsxs("div", { className: 'mt-2', children: [visibleBox === "email-message" &&
138
138
  _jsx(SolidMessageComposer, { id: id, refetch: refetch, modelSingularName: modelSingularName, type: "email", onCancel: onComposerCancel, modelUserKey: modelUserKey }), visibleBox === "log" &&
139
- _jsx(SolidMessageComposer, { id: id, refetch: refetch, modelSingularName: modelSingularName, onCancel: onComposerCancel, modelUserKey: modelUserKey })] }), _jsxs(SolidDialog, { open: showFilterDialog, onOpenChange: setShowFilterDialog, className: 'solid-filter-dialog-shell solid-chatter-filter-main', style: { width: 500 }, showHeader: false, dismissible: false, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsx("div", { children: _jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Filter Messages" }) }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsxs("div", { className: "flex flex-column gap-3", children: [_jsxs("div", { className: "flex flex-column gap-2", children: [_jsx("label", { htmlFor: "fullName", className: "form-field-label", children: "User" }), _jsx(SolidAutocomplete, { id: "fullName", value: filters.name, suggestions: suggestions, field: "fullName", completeMethod: searchUsers, onChange: function (e) { return handleUserChange(e.value); }, placeholder: "Filter by user", className: "w-full", inputClassName: "w-full", portal: true })] }), _jsxs("div", { className: "flex flex-column gap-2", children: [_jsx("label", { htmlFor: "dateRange", className: "form-field-label", children: "Date Range" }), _jsxs("div", { className: "flex gap-2 flex-column md:flex-row", children: [_jsx("div", { className: "flex-1", children: _jsx(SolidDatePicker, { selected: (_a = filters.startDate) !== null && _a !== void 0 ? _a : undefined, onChange: function (date) { return setFilters(function (prev) { return (__assign(__assign({}, prev), { startDate: date !== null && date !== void 0 ? date : null })); }); }, placeholderText: "Start Date", className: "w-full", wrapperClassName: "w-full", inputClassName: "w-full", portalId: "solid-datepicker-portal" }) }), _jsx("div", { className: "flex-1", children: _jsx(SolidDatePicker, { selected: (_b = filters.endDate) !== null && _b !== void 0 ? _b : undefined, onChange: function (date) { return setFilters(function (prev) { return (__assign(__assign({}, prev), { endDate: date !== null && date !== void 0 ? date : null })); }); }, placeholderText: "End Date", className: "w-full", wrapperClassName: "w-full", inputClassName: "w-full", portalId: "solid-datepicker-portal" }) })] })] })] }) }), _jsxs(SolidDialogFooter, { children: [_jsx(SolidButton, { label: "Clear", size: "sm", variant: "outline", onClick: handleClearFilters }), _jsx(SolidButton, { label: "Apply", size: "sm", className: "solid-purple-button", onClick: handleApplyFilters })] })] })] }));
139
+ _jsx(SolidMessageComposer, { id: id, refetch: refetch, modelSingularName: modelSingularName, onCancel: onComposerCancel, modelUserKey: modelUserKey })] }), _jsxs(SolidDialog, { open: showFilterDialog, onOpenChange: setShowFilterDialog, className: 'solid-filter-dialog-shell solid-chatter-filter-main', style: { width: 500 }, showHeader: false, dismissible: false, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsx("div", { children: _jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Filter Messages" }) }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("label", { htmlFor: "fullName", className: "form-field-label", children: "User" }), _jsx(SolidAutocomplete, { id: "fullName", value: filters.name, suggestions: suggestions, field: "fullName", completeMethod: searchUsers, onChange: function (e) { return handleUserChange(e.value); }, placeholder: "Filter by user", className: "w-full", inputClassName: "w-full", portal: true })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("label", { htmlFor: "dateRange", className: "form-field-label", children: "Date Range" }), _jsxs("div", { className: "flex gap-2 flex-col md:flex-row", children: [_jsx("div", { className: "flex-1", children: _jsx(SolidDatePicker, { selected: (_a = filters.startDate) !== null && _a !== void 0 ? _a : undefined, onChange: function (date) { return setFilters(function (prev) { return (__assign(__assign({}, prev), { startDate: date !== null && date !== void 0 ? date : null })); }); }, placeholderText: "Start Date", className: "w-full", wrapperClassName: "w-full", inputClassName: "w-full", portalId: "solid-datepicker-portal" }) }), _jsx("div", { className: "flex-1", children: _jsx(SolidDatePicker, { selected: (_b = filters.endDate) !== null && _b !== void 0 ? _b : undefined, onChange: function (date) { return setFilters(function (prev) { return (__assign(__assign({}, prev), { endDate: date !== null && date !== void 0 ? date : null })); }); }, placeholderText: "End Date", className: "w-full", wrapperClassName: "w-full", inputClassName: "w-full", portalId: "solid-datepicker-portal" }) })] })] })] }) }), _jsxs(SolidDialogFooter, { children: [_jsx(SolidButton, { label: "Clear", size: "sm", variant: "outline", onClick: handleClearFilters }), _jsx(SolidButton, { label: "Apply", size: "sm", className: "solid-purple-button", onClick: handleApplyFilters })] })] })] }));
140
140
  };
141
141
  //# sourceMappingURL=SolidChatterHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidChatterHeader.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatterHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react'\nimport styles from './chatter.module.css'\nimport { SolidMessageComposer } from './SolidMessageComposer'\nimport { useLazyGetusersQuery } from '../../../redux/api/userApi'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidAutocomplete,\n SolidDatePicker\n} from '../../shad-cn-ui'\nimport { Filter, RefreshCw,Edit } from 'lucide-react'\ninterface FilterState {\n name: string;\n startDate: Date | null;\n endDate: Date | null;\n}\n\ninterface Props {\n activeTab: any,\n handleTabClick: any,\n visibleBox: any,\n modelSingularName: any,\n refetch: any,\n id: any,\n onFilterChange?: (filters: FilterState) => void;\n onComposerCancel?: () => void;\n title?: string;\n modelUserKey?: string;\n}\n\nexport const SolidChatterHeader = (props: Props) => {\n const { activeTab, visibleBox, handleTabClick, modelSingularName, refetch, id, onFilterChange, onComposerCancel, title, modelUserKey } = props;\n const [showFilterDialog, setShowFilterDialog] = useState(false);\n const [filters, setFilters] = useState<FilterState>({\n name: '',\n startDate: null,\n endDate: null\n });\n const [hasActiveFilters, setHasActiveFilters] = useState(false);\n const [suggestions, setSuggestions] = useState<any[]>([]);\n const [getUsers] = useLazyGetusersQuery();\n\n useEffect(() => {\n const isActive = filters.name !== '' || filters.startDate !== null || filters.endDate !== null;\n setHasActiveFilters(isActive);\n }, [filters]);\n\n const handleFilterClick = () => {\n setShowFilterDialog(true);\n };\n\n const handleApplyFilters = () => {\n if (onFilterChange) {\n onFilterChange(filters);\n }\n setShowFilterDialog(false);\n };\n\n const handleClearFilters = () => {\n const clearedFilters = {\n name: '',\n startDate: null,\n endDate: null\n };\n setFilters(clearedFilters);\n if (onFilterChange) {\n onFilterChange(clearedFilters);\n }\n setShowFilterDialog(false);\n };\n\n const updateNameFilter = (value: string) => {\n setFilters(prev => {\n if (prev.name === value) {\n return prev;\n }\n return {\n ...prev,\n name: value\n };\n });\n };\n\n const searchUsers = async (event: { query: string }) => {\n updateNameFilter(event.query || '');\n try {\n const response = await getUsers(`filters[fullName][$containsi]=${event.query}`).unwrap();\n setSuggestions(response?.data?.records || []);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_USER, error);\n setSuggestions([]);\n }\n };\n\n const handleUserChange = (value: any) => {\n if (!value) {\n updateNameFilter('');\n return;\n }\n if (typeof value === 'object') {\n updateNameFilter(value.fullName || '');\n return;\n }\n updateNameFilter(value);\n };\n\n return (\n <div className={`${styles.chatterTitle} ${title ? styles.chatterTitleWithLabel : ''} solid-list-toolbar`}>\n <div className='flex justify-content-between align-items-center solid-list-toolbar-row'>\n <p className=\"m-0 view-title solid-text-wrapper form-wrapper-title\">\n {title || ''}\n </p>\n <div className='flex align-items-center solid-header-buttons-wrapper'>\n {/* <Button\n label=\"Send Message\"\n size=\"small\"\n type=\"button\"\n onClick={() => handleTabClick('email-message')}\n {...(activeTab !== 'email-message' && {\n severity: 'secondary',\n outlined: true,\n })}\n /> */}\n {/* <SolidButton\n label=\"Log Note\"\n size=\"sm\"\n type=\"button\"\n variant=\"primary\"\n className=\"solid-purple-button\"\n onClick={() => handleTabClick('log')}\n /> */}\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Log Note\"\n variant={hasActiveFilters ? 'primary' : 'outline'}\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<Edit size={14} />}\n onClick={() => handleTabClick('log')}\n />\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Filter\"\n variant={hasActiveFilters ? 'primary' : 'outline'}\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<Filter size={14} />}\n onClick={handleFilterClick}\n />\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Refresh\"\n variant=\"outline\"\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<RefreshCw size={14} />}\n onClick={refetch}\n />\n </div>\n </div>\n {visibleBox &&\n <div className='mt-2'>\n {visibleBox === \"email-message\" &&\n <SolidMessageComposer id={id} refetch={refetch} modelSingularName={modelSingularName} type={\"email\"} onCancel={onComposerCancel} modelUserKey={modelUserKey} />\n }\n\n {visibleBox === \"log\" &&\n <SolidMessageComposer id={id} refetch={refetch} modelSingularName={modelSingularName} onCancel={onComposerCancel} modelUserKey={modelUserKey} />\n }\n </div>\n }\n <SolidDialog\n open={showFilterDialog}\n onOpenChange={setShowFilterDialog}\n className='solid-filter-dialog-shell solid-chatter-filter-main'\n style={{ width: 500 }}\n showHeader={false}\n dismissible={false}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Filter Messages</SolidDialogTitle>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <div className=\"flex flex-column gap-3\">\n <div className=\"flex flex-column gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">User</label>\n <SolidAutocomplete\n id=\"fullName\"\n value={filters.name}\n suggestions={suggestions}\n field=\"fullName\"\n completeMethod={searchUsers}\n onChange={(e) => handleUserChange(e.value)}\n placeholder=\"Filter by user\"\n className=\"w-full\"\n inputClassName=\"w-full\"\n portal\n />\n </div>\n <div className=\"flex flex-column gap-2\">\n <label htmlFor=\"dateRange\" className=\"form-field-label\">Date Range</label>\n <div className=\"flex gap-2 flex-column md:flex-row\">\n <div className=\"flex-1\">\n <SolidDatePicker\n selected={filters.startDate ?? undefined}\n onChange={(date: Date | null) => setFilters(prev => ({ ...prev, startDate: date ?? null }))}\n placeholderText=\"Start Date\"\n className=\"w-full\"\n wrapperClassName=\"w-full\"\n inputClassName=\"w-full\"\n portalId=\"solid-datepicker-portal\"\n />\n </div>\n <div className=\"flex-1\">\n <SolidDatePicker\n selected={filters.endDate ?? undefined}\n onChange={(date: Date | null) => setFilters(prev => ({ ...prev, endDate: date ?? null }))}\n placeholderText=\"End Date\"\n className=\"w-full\"\n wrapperClassName=\"w-full\"\n inputClassName=\"w-full\"\n portalId=\"solid-datepicker-portal\"\n />\n </div>\n </div>\n </div>\n </div>\n </SolidDialogBody>\n <SolidDialogFooter>\n <SolidButton \n label=\"Clear\" \n size=\"sm\"\n variant=\"outline\"\n onClick={handleClearFilters}\n />\n <SolidButton \n label=\"Apply\" \n size=\"sm\"\n className=\"solid-purple-button\"\n onClick={handleApplyFilters}\n />\n </SolidDialogFooter>\n </SolidDialog>\n </div>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidChatterHeader.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidChatterHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EACH,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAC,IAAI,EAAE,MAAM,cAAc,CAAA;AAoBrD,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,KAAY;;IACnC,IAAA,SAAS,GAAwH,KAAK,UAA7H,EAAE,UAAU,GAA4G,KAAK,WAAjH,EAAE,cAAc,GAA4F,KAAK,eAAjG,EAAE,iBAAiB,GAAyE,KAAK,kBAA9E,EAAE,OAAO,GAAgE,KAAK,QAArE,EAAE,EAAE,GAA4D,KAAK,GAAjE,EAAE,cAAc,GAA4C,KAAK,eAAjD,EAAE,gBAAgB,GAA0B,KAAK,iBAA/B,EAAE,KAAK,GAAmB,KAAK,MAAxB,EAAE,YAAY,GAAK,KAAK,aAAV,CAAW;IACzI,IAAA,KAA0C,QAAQ,CAAC,KAAK,CAAC,EAAxD,gBAAgB,QAAA,EAAE,mBAAmB,QAAmB,CAAC;IAC1D,IAAA,KAAwB,QAAQ,CAAc;QAChD,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;KAChB,CAAC,EAJK,OAAO,QAAA,EAAE,UAAU,QAIxB,CAAC;IACG,IAAA,KAA0C,QAAQ,CAAC,KAAK,CAAC,EAAxD,gBAAgB,QAAA,EAAE,mBAAmB,QAAmB,CAAC;IAC1D,IAAA,KAAgC,QAAQ,CAAQ,EAAE,CAAC,EAAlD,WAAW,QAAA,EAAE,cAAc,QAAuB,CAAC;IACnD,IAAA,QAAQ,GAAI,oBAAoB,EAAE,GAA1B,CAA2B;IAE1C,SAAS,CAAC;QACN,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,EAAE,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;QAC/F,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAM,iBAAiB,GAAG;QACtB,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG;QACvB,IAAI,cAAc,EAAE;YAChB,cAAc,CAAC,OAAO,CAAC,CAAC;SAC3B;QACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG;QACvB,IAAM,cAAc,GAAG;YACnB,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;SAChB,CAAC;QACF,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3B,IAAI,cAAc,EAAE;YAChB,cAAc,CAAC,cAAc,CAAC,CAAC;SAClC;QACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAC,KAAa;QACnC,UAAU,CAAC,UAAA,IAAI;YACX,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;gBACrB,OAAO,IAAI,CAAC;aACf;YACD,6BACO,IAAI,KACP,IAAI,EAAE,KAAK,IACb;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,UAAO,KAAwB;;;;;;oBAC/C,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;;;;oBAEf,qBAAM,QAAQ,CAAC,wCAAiC,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAlF,QAAQ,GAAG,SAAuE;oBACxF,cAAc,CAAC,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;;;;oBAE9C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,OAAK,CAAC,CAAC;oBACnD,cAAc,CAAC,EAAE,CAAC,CAAC;;;;;SAE1B,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAC,KAAU;QAChC,IAAI,CAAC,KAAK,EAAE;YACR,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrB,OAAO;SACV;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,gBAAgB,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO;SACV;QACD,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAE,UAAG,MAAM,CAAC,YAAY,cAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,wBAAqB,aACpG,eAAK,SAAS,EAAC,0DAA0D,aACrE,YAAG,SAAS,EAAC,sDAAsD,YAC9D,KAAK,IAAI,EAAE,GACZ,EACJ,eAAK,SAAS,EAAC,gDAAgD,aAmB3D,KAAC,WAAW,IACR,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,gBACF,UAAU,EACrB,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACjD,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EACjB,QAAQ,EAAE,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,EAC5B,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,GACtC,EACF,KAAC,WAAW,IACR,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,gBACF,QAAQ,EACnB,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACjD,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EACjB,QAAQ,EAAE,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,EAC9B,OAAO,EAAE,iBAAiB,GAC5B,EACF,KAAC,WAAW,IACR,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,gBACF,SAAS,EACpB,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EACjB,QAAQ,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,EACjC,OAAO,EAAE,OAAO,GAClB,IACA,IACJ,EACL,UAAU;gBACP,eAAK,SAAS,EAAC,MAAM,aAChB,UAAU,KAAK,eAAe;4BAC3B,KAAC,oBAAoB,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAI,EAGlK,UAAU,KAAK,KAAK;4BACjB,KAAC,oBAAoB,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAI,IAElJ,EAEV,MAAC,WAAW,IACR,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,mBAAmB,EACjC,SAAS,EAAC,qDAAqD,EAC/D,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EACrB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,aAElB,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,wBACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,gCAAmC,GAC5F,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YACjD,eAAK,SAAS,EAAC,qBAAqB,aAChC,eAAK,SAAS,EAAC,qBAAqB,aAChC,gBAAO,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,kBAAkB,qBAAa,EACnE,KAAC,iBAAiB,IACd,EAAE,EAAC,UAAU,EACb,KAAK,EAAE,OAAO,CAAC,IAAI,EACnB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAC,UAAU,EAChB,cAAc,EAAE,WAAW,EAC3B,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAzB,CAAyB,EAC1C,WAAW,EAAC,gBAAgB,EAC5B,SAAS,EAAC,QAAQ,EAClB,cAAc,EAAC,QAAQ,EACvB,MAAM,SACR,IACA,EACN,eAAK,SAAS,EAAC,qBAAqB,aAChC,gBAAO,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,kBAAkB,2BAAmB,EAC1E,eAAK,SAAS,EAAC,iCAAiC,aAC5C,cAAK,SAAS,EAAC,QAAQ,YACnB,KAAC,eAAe,IACZ,QAAQ,EAAE,MAAA,OAAO,CAAC,SAAS,mCAAI,SAAS,EACxC,QAAQ,EAAE,UAAC,IAAiB,IAAK,OAAA,UAAU,CAAC,UAAA,IAAI,IAAI,OAAA,uBAAM,IAAI,KAAE,SAAS,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,IAAG,EAAtC,CAAsC,CAAC,EAA1D,CAA0D,EAC3F,eAAe,EAAC,YAAY,EAC5B,SAAS,EAAC,QAAQ,EAClB,gBAAgB,EAAC,QAAQ,EACzB,cAAc,EAAC,QAAQ,EACvB,QAAQ,EAAC,yBAAyB,GACpC,GACA,EACN,cAAK,SAAS,EAAC,QAAQ,YACnB,KAAC,eAAe,IACZ,QAAQ,EAAE,MAAA,OAAO,CAAC,OAAO,mCAAI,SAAS,EACtC,QAAQ,EAAE,UAAC,IAAiB,IAAK,OAAA,UAAU,CAAC,UAAA,IAAI,IAAI,OAAA,uBAAM,IAAI,KAAE,OAAO,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,IAAG,EAApC,CAAoC,CAAC,EAAxD,CAAwD,EACzF,eAAe,EAAC,UAAU,EAC1B,SAAS,EAAC,QAAQ,EAClB,gBAAgB,EAAC,QAAQ,EACzB,cAAc,EAAC,QAAQ,EACvB,QAAQ,EAAC,yBAAyB,GACpC,GACA,IACJ,IACJ,IACJ,GACQ,EAClB,MAAC,iBAAiB,eACV,KAAC,WAAW,IACR,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,kBAAkB,GAC7B,EACF,KAAC,WAAW,IACR,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,kBAAkB,GAC7B,IACU,IACV,IACZ,CACT,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { useEffect, useState } from 'react'\nimport styles from './chatter.module.css'\nimport { SolidMessageComposer } from './SolidMessageComposer'\nimport { useLazyGetusersQuery } from '../../../redux/api/userApi'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidAutocomplete,\n SolidDatePicker\n} from '../../shad-cn-ui'\nimport { Filter, RefreshCw,Edit } from 'lucide-react'\ninterface FilterState {\n name: string;\n startDate: Date | null;\n endDate: Date | null;\n}\n\ninterface Props {\n activeTab: any,\n handleTabClick: any,\n visibleBox: any,\n modelSingularName: any,\n refetch: any,\n id: any,\n onFilterChange?: (filters: FilterState) => void;\n onComposerCancel?: () => void;\n title?: string;\n modelUserKey?: string;\n}\n\nexport const SolidChatterHeader = (props: Props) => {\n const { activeTab, visibleBox, handleTabClick, modelSingularName, refetch, id, onFilterChange, onComposerCancel, title, modelUserKey } = props;\n const [showFilterDialog, setShowFilterDialog] = useState(false);\n const [filters, setFilters] = useState<FilterState>({\n name: '',\n startDate: null,\n endDate: null\n });\n const [hasActiveFilters, setHasActiveFilters] = useState(false);\n const [suggestions, setSuggestions] = useState<any[]>([]);\n const [getUsers] = useLazyGetusersQuery();\n\n useEffect(() => {\n const isActive = filters.name !== '' || filters.startDate !== null || filters.endDate !== null;\n setHasActiveFilters(isActive);\n }, [filters]);\n\n const handleFilterClick = () => {\n setShowFilterDialog(true);\n };\n\n const handleApplyFilters = () => {\n if (onFilterChange) {\n onFilterChange(filters);\n }\n setShowFilterDialog(false);\n };\n\n const handleClearFilters = () => {\n const clearedFilters = {\n name: '',\n startDate: null,\n endDate: null\n };\n setFilters(clearedFilters);\n if (onFilterChange) {\n onFilterChange(clearedFilters);\n }\n setShowFilterDialog(false);\n };\n\n const updateNameFilter = (value: string) => {\n setFilters(prev => {\n if (prev.name === value) {\n return prev;\n }\n return {\n ...prev,\n name: value\n };\n });\n };\n\n const searchUsers = async (event: { query: string }) => {\n updateNameFilter(event.query || '');\n try {\n const response = await getUsers(`filters[fullName][$containsi]=${event.query}`).unwrap();\n setSuggestions(response?.data?.records || []);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_USER, error);\n setSuggestions([]);\n }\n };\n\n const handleUserChange = (value: any) => {\n if (!value) {\n updateNameFilter('');\n return;\n }\n if (typeof value === 'object') {\n updateNameFilter(value.fullName || '');\n return;\n }\n updateNameFilter(value);\n };\n\n return (\n <div className={`${styles.chatterTitle} ${title ? styles.chatterTitleWithLabel : ''} solid-list-toolbar`}>\n <div className='flex justify-between items-center solid-list-toolbar-row'>\n <p className=\"m-0 view-title solid-text-wrapper form-wrapper-title\">\n {title || ''}\n </p>\n <div className='flex items-center solid-header-buttons-wrapper'>\n {/* <Button\n label=\"Send Message\"\n size=\"small\"\n type=\"button\"\n onClick={() => handleTabClick('email-message')}\n {...(activeTab !== 'email-message' && {\n severity: 'secondary',\n outlined: true,\n })}\n /> */}\n {/* <SolidButton\n label=\"Log Note\"\n size=\"sm\"\n type=\"button\"\n variant=\"primary\"\n className=\"solid-purple-button\"\n onClick={() => handleTabClick('log')}\n /> */}\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Log Note\"\n variant={hasActiveFilters ? 'primary' : 'outline'}\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<Edit size={14} />}\n onClick={() => handleTabClick('log')}\n />\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Filter\"\n variant={hasActiveFilters ? 'primary' : 'outline'}\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<Filter size={14} />}\n onClick={handleFilterClick}\n />\n <SolidButton\n size=\"sm\"\n type=\"button\"\n aria-label=\"Refresh\"\n variant=\"outline\"\n className=\"solid-icon-button\"\n style={{ gap: 0 }}\n leftIcon={<RefreshCw size={14} />}\n onClick={refetch}\n />\n </div>\n </div>\n {visibleBox &&\n <div className='mt-2'>\n {visibleBox === \"email-message\" &&\n <SolidMessageComposer id={id} refetch={refetch} modelSingularName={modelSingularName} type={\"email\"} onCancel={onComposerCancel} modelUserKey={modelUserKey} />\n }\n\n {visibleBox === \"log\" &&\n <SolidMessageComposer id={id} refetch={refetch} modelSingularName={modelSingularName} onCancel={onComposerCancel} modelUserKey={modelUserKey} />\n }\n </div>\n }\n <SolidDialog\n open={showFilterDialog}\n onOpenChange={setShowFilterDialog}\n className='solid-filter-dialog-shell solid-chatter-filter-main'\n style={{ width: 500 }}\n showHeader={false}\n dismissible={false}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Filter Messages</SolidDialogTitle>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex flex-col gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">User</label>\n <SolidAutocomplete\n id=\"fullName\"\n value={filters.name}\n suggestions={suggestions}\n field=\"fullName\"\n completeMethod={searchUsers}\n onChange={(e) => handleUserChange(e.value)}\n placeholder=\"Filter by user\"\n className=\"w-full\"\n inputClassName=\"w-full\"\n portal\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <label htmlFor=\"dateRange\" className=\"form-field-label\">Date Range</label>\n <div className=\"flex gap-2 flex-col md:flex-row\">\n <div className=\"flex-1\">\n <SolidDatePicker\n selected={filters.startDate ?? undefined}\n onChange={(date: Date | null) => setFilters(prev => ({ ...prev, startDate: date ?? null }))}\n placeholderText=\"Start Date\"\n className=\"w-full\"\n wrapperClassName=\"w-full\"\n inputClassName=\"w-full\"\n portalId=\"solid-datepicker-portal\"\n />\n </div>\n <div className=\"flex-1\">\n <SolidDatePicker\n selected={filters.endDate ?? undefined}\n onChange={(date: Date | null) => setFilters(prev => ({ ...prev, endDate: date ?? null }))}\n placeholderText=\"End Date\"\n className=\"w-full\"\n wrapperClassName=\"w-full\"\n inputClassName=\"w-full\"\n portalId=\"solid-datepicker-portal\"\n />\n </div>\n </div>\n </div>\n </div>\n </SolidDialogBody>\n <SolidDialogFooter>\n <SolidButton \n label=\"Clear\" \n size=\"sm\"\n variant=\"outline\"\n onClick={handleClearFilters}\n />\n <SolidButton \n label=\"Apply\" \n size=\"sm\"\n className=\"solid-purple-button\"\n onClick={handleApplyFilters}\n />\n </SolidDialogFooter>\n </SolidDialog>\n </div>\n )\n}\n"]}
@@ -113,11 +113,11 @@ export const SolidChatterHeader = (props: Props) => {
113
113
 
114
114
  return (
115
115
  <div className={`${styles.chatterTitle} ${title ? styles.chatterTitleWithLabel : ''} solid-list-toolbar`}>
116
- <div className='flex justify-content-between align-items-center solid-list-toolbar-row'>
116
+ <div className='flex justify-between items-center solid-list-toolbar-row'>
117
117
  <p className="m-0 view-title solid-text-wrapper form-wrapper-title">
118
118
  {title || ''}
119
119
  </p>
120
- <div className='flex align-items-center solid-header-buttons-wrapper'>
120
+ <div className='flex items-center solid-header-buttons-wrapper'>
121
121
  {/* <Button
122
122
  label="Send Message"
123
123
  size="small"
@@ -195,8 +195,8 @@ export const SolidChatterHeader = (props: Props) => {
195
195
  </SolidDialogHeader>
196
196
  <SolidDialogSeparator className="solid-filter-dialog-sep" />
197
197
  <SolidDialogBody className="solid-filter-dialog-body">
198
- <div className="flex flex-column gap-3">
199
- <div className="flex flex-column gap-2">
198
+ <div className="flex flex-col gap-4">
199
+ <div className="flex flex-col gap-2">
200
200
  <label htmlFor="fullName" className="form-field-label">User</label>
201
201
  <SolidAutocomplete
202
202
  id="fullName"
@@ -211,9 +211,9 @@ export const SolidChatterHeader = (props: Props) => {
211
211
  portal
212
212
  />
213
213
  </div>
214
- <div className="flex flex-column gap-2">
214
+ <div className="flex flex-col gap-2">
215
215
  <label htmlFor="dateRange" className="form-field-label">Date Range</label>
216
- <div className="flex gap-2 flex-column md:flex-row">
216
+ <div className="flex gap-2 flex-col md:flex-row">
217
217
  <div className="flex-1">
218
218
  <SolidDatePicker
219
219
  selected={filters.startDate ?? undefined}
@@ -279,9 +279,9 @@ export var SolidChatterMessageBox = function (props) {
279
279
  : __spreadArray(__spreadArray([], prev, true), [attachmentId], false);
280
280
  });
281
281
  };
282
- return (_jsxs("div", { className: styles.solidChatterMessageBox, children: [_jsx("div", { className: styles.solidChatterMessageCard, children: _jsxs("div", { className: styles.solidChatterMessageLayout, children: [_jsx("div", { className: styles.solidChatterAvatar, style: avatarStyle, children: initials || user.charAt(0).toUpperCase() }), _jsxs("div", { className: styles.solidChatterMessageContent, children: [_jsxs("div", { className: styles.solidChatterMessageHeader, children: [_jsxs("div", { className: 'flex align-items-center gap-2 flex-wrap', children: [_jsx("p", { className: styles.solidChatterUser, children: user }), _jsxs(SolidTooltip, { children: [_jsx(SolidTooltipTrigger, { asChild: true, children: _jsx("span", { className: "".concat(styles.solidChatterBadge, " ").concat(messageType === 'audit' ? styles.audit : styles.custom), "aria-label": messageLabel, children: _jsx(TypeIcon, { size: 12 }) }) }), _jsx(SolidTooltipContent, { side: "right", children: messageLabel })] })] }), _jsxs("div", { className: 'flex align-items-center gap-2', children: [canEditNote && !isEditing && (_jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: "solid-icon-button", leftIcon: _jsx(Pencil, { size: 12 }), onClick: function () { return setIsEditing(true); }, "aria-label": "Edit note", title: "Edit note" })), _jsx("span", { className: styles.solidChatterTime, children: time })] })] }), modelDisplayName && (_jsxs("p", { className: "".concat(styles.solidChatterMeta, " m-0"), children: [modelDisplayName, modelUserKey && _jsxs(_Fragment, { children: [" \u00B7 ", _jsx("span", { className: 'font-medium', children: modelUserKey })] })] })), localMessage && !isEditing && (_jsx("div", { className: styles.solidMessageWrapper, children: messageType === 'audit'
282
+ return (_jsxs("div", { className: styles.solidChatterMessageBox, children: [_jsx("div", { className: styles.solidChatterMessageCard, children: _jsxs("div", { className: styles.solidChatterMessageLayout, children: [_jsx("div", { className: styles.solidChatterAvatar, style: avatarStyle, children: initials || user.charAt(0).toUpperCase() }), _jsxs("div", { className: styles.solidChatterMessageContent, children: [_jsxs("div", { className: styles.solidChatterMessageHeader, children: [_jsxs("div", { className: 'flex items-center gap-2 flex-wrap', children: [_jsx("p", { className: styles.solidChatterUser, children: user }), _jsxs(SolidTooltip, { children: [_jsx(SolidTooltipTrigger, { asChild: true, children: _jsx("span", { className: "".concat(styles.solidChatterBadge, " ").concat(messageType === 'audit' ? styles.audit : styles.custom), "aria-label": messageLabel, children: _jsx(TypeIcon, { size: 12 }) }) }), _jsx(SolidTooltipContent, { side: "right", children: messageLabel })] })] }), _jsxs("div", { className: 'flex items-center gap-2', children: [canEditNote && !isEditing && (_jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: "solid-icon-button", leftIcon: _jsx(Pencil, { size: 12 }), onClick: function () { return setIsEditing(true); }, "aria-label": "Edit note", title: "Edit note" })), _jsx("span", { className: styles.solidChatterTime, children: time })] })] }), modelDisplayName && (_jsxs("p", { className: "".concat(styles.solidChatterMeta, " m-0"), children: [modelDisplayName, modelUserKey && _jsxs(_Fragment, { children: [" \u00B7 ", _jsx("span", { className: 'font-medium', children: modelUserKey })] })] })), localMessage && !isEditing && (_jsx("div", { className: styles.solidMessageWrapper, children: messageType === 'audit'
283
283
  ? _jsx(SolidChatterAuditMessage, { auditRecord: auditRecord })
284
- : _jsx(SolidChatterCustomMessage, { message: localMessage }) })), isEditing && (_jsxs("div", { className: 'flex flex-column gap-2', children: [_jsx(SolidTextarea, { value: editedMessage, onChange: function (e) { return setEditedMessage(e.target.value); }, rows: 4, className: "w-full py-2" }), _jsxs("div", { className: 'flex flex-column gap-2', children: [_jsx("input", { ref: fileInputRef, id: "note-edit-file-".concat(messageId), type: "file", multiple: true, onChange: handleFileSelect, style: { display: 'none' } }), selectedFiles.length > 0 && (_jsx("div", { className: 'flex flex-column gap-1', children: selectedFiles.map(function (file, index) { return (_jsxs("div", { className: 'flex align-items-center justify-content-between text-xs', children: [_jsxs("span", { children: [file.name, " (", formatFileSize(file.size), ")"] }), _jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: 'solid-icon-button', leftIcon: _jsx(X, { size: 12 }), onClick: function () { return setSelectedFiles(function (prev) { return prev.filter(function (_, i) { return i !== index; }); }); }, "aria-label": "Remove ".concat(file.name) })] }, "".concat(file.name, "-").concat(index))); }) }))] }), _jsxs("div", { className: 'flex align-items-center justify-content-between gap-2 flex-wrap', children: [_jsxs("div", { className: 'flex align-items-center gap-2', children: [_jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: "solid-icon-button", leftIcon: _jsx(Paperclip, { size: 14 }), onClick: function () { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, "aria-label": "Attach files", title: "Attach files" }), _jsx("span", { className: 'text-xs text-color-secondary', children: "Attach file" })] }), _jsxs("div", { className: 'flex align-items-center justify-content-end gap-2', children: [_jsx(SolidButton, { type: "button", size: "sm", variant: "outline", leftIcon: _jsx(X, { size: 12 }), onClick: handleCancelEdit, children: "Cancel" }), _jsx(SolidButton, { type: "button", size: "sm", variant: "primary", loading: isUpdatingNote, leftIcon: _jsx(Check, { size: 12 }), onClick: handleEditSave, disabled: !(editedMessage === null || editedMessage === void 0 ? void 0 : editedMessage.trim()) || (removedAttachmentIds.length === 0 && selectedFiles.length === 0 && editedMessage.trim() === (message !== null && message !== void 0 ? message : '').trim()), children: "Save" })] })] })] })), visibleAttachments.length > 0 && (_jsx("div", { className: styles.solidChatterAttachments, children: visibleAttachments.map(function (attachment) {
284
+ : _jsx(SolidChatterCustomMessage, { message: localMessage }) })), isEditing && (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx(SolidTextarea, { value: editedMessage, onChange: function (e) { return setEditedMessage(e.target.value); }, rows: 4, className: "w-full py-2" }), _jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("input", { ref: fileInputRef, id: "note-edit-file-".concat(messageId), type: "file", multiple: true, onChange: handleFileSelect, style: { display: 'none' } }), selectedFiles.length > 0 && (_jsx("div", { className: 'flex flex-col gap-1', children: selectedFiles.map(function (file, index) { return (_jsxs("div", { className: 'flex items-center justify-between text-xs', children: [_jsxs("span", { children: [file.name, " (", formatFileSize(file.size), ")"] }), _jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: 'solid-icon-button', leftIcon: _jsx(X, { size: 12 }), onClick: function () { return setSelectedFiles(function (prev) { return prev.filter(function (_, i) { return i !== index; }); }); }, "aria-label": "Remove ".concat(file.name) })] }, "".concat(file.name, "-").concat(index))); }) }))] }), _jsxs("div", { className: 'flex items-center justify-between gap-2 flex-wrap', children: [_jsxs("div", { className: 'flex items-center gap-2', children: [_jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: "solid-icon-button", leftIcon: _jsx(Paperclip, { size: 14 }), onClick: function () { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, "aria-label": "Attach files", title: "Attach files" }), _jsx("span", { className: 'text-xs text-color-secondary', children: "Attach file" })] }), _jsxs("div", { className: 'flex items-center justify-end gap-2', children: [_jsx(SolidButton, { type: "button", size: "sm", variant: "outline", leftIcon: _jsx(X, { size: 12 }), onClick: handleCancelEdit, children: "Cancel" }), _jsx(SolidButton, { type: "button", size: "sm", variant: "primary", loading: isUpdatingNote, leftIcon: _jsx(Check, { size: 12 }), onClick: handleEditSave, disabled: !(editedMessage === null || editedMessage === void 0 ? void 0 : editedMessage.trim()) || (removedAttachmentIds.length === 0 && selectedFiles.length === 0 && editedMessage.trim() === (message !== null && message !== void 0 ? message : '').trim()), children: "Save" })] })] })] })), visibleAttachments.length > 0 && (_jsx("div", { className: styles.solidChatterAttachments, children: visibleAttachments.map(function (attachment) {
285
285
  var isImage = attachment.mimeType.startsWith('image/');
286
286
  return (_jsxs("div", { className: styles.solidChatterAttachment, style: { position: 'relative' }, children: [isEditing && canEditNote && (_jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", className: "solid-icon-button", leftIcon: _jsx(Trash2, { size: 12, color: "#dc2626" }), onClick: function () { return toggleRemoveAttachment(attachment.id); }, "aria-label": "Remove ".concat(attachment.originalFileName), title: "Remove ".concat(attachment.originalFileName), style: {
287
287
  position: 'absolute',
@@ -291,7 +291,7 @@ export var SolidChatterMessageBox = function (props) {
291
291
  background: '#fff',
292
292
  border: '1px solid #fecaca',
293
293
  borderRadius: '999px',
294
- } })), isImage ? (_jsx("div", { className: 'cursor-pointer', onClick: function () { return handleImageClick(attachment._full_url); }, children: _jsx(Image, { src: encodeURI(attachment._full_url), alt: attachment.originalFileName, width: 54, height: 54, style: { objectFit: 'cover' } }) })) : (_jsxs("a", { href: encodeURI(attachment._full_url), target: "_blank", rel: "noopener noreferrer", className: 'flex align-items-center gap-2 text-decoration-none text-sm', children: [_jsx(SolidIcon, { name: getFileIcon(attachment.mimeType), "aria-hidden": true }), _jsx("span", { children: attachment.originalFileName })] }))] }, attachment.id));
295
- }) })), isTaskMessage && (_jsx("div", { className: 'flex align-items-center justify-content-end', children: isTaskCompleted ? (_jsxs(SolidTag, { tone: "success", className: "inline-flex align-items-center gap-1 text-xs px-2 py-1", children: [_jsx(Check, { size: 12, "aria-hidden": true }), _jsx("span", { className: "font-medium", children: "Done" })] })) : (_jsx(SolidButton, { type: "button", size: "sm", variant: "outline", className: "text-xs px-2 py-1", leftIcon: _jsx(Check, { size: 12 }), loading: isUpdatingTaskStatus, onClick: handleMarkTaskDone, children: _jsx("span", { className: "font-semibold", children: "Mark as done" }) })) }))] })] }) }), openLightbox && (_jsx(SolidLightbox, { open: openLightbox, slides: lightboxSlides, onClose: function () { return setOpenLightbox(false); } }))] }));
294
+ } })), isImage ? (_jsx("div", { className: 'cursor-pointer', onClick: function () { return handleImageClick(attachment._full_url); }, children: _jsx(Image, { src: encodeURI(attachment._full_url), alt: attachment.originalFileName, width: 54, height: 54, style: { objectFit: 'cover' } }) })) : (_jsxs("a", { href: encodeURI(attachment._full_url), target: "_blank", rel: "noopener noreferrer", className: 'flex items-center gap-2 text-decoration-none text-sm', children: [_jsx(SolidIcon, { name: getFileIcon(attachment.mimeType), "aria-hidden": true }), _jsx("span", { children: attachment.originalFileName })] }))] }, attachment.id));
295
+ }) })), isTaskMessage && (_jsx("div", { className: 'flex items-center justify-end', children: isTaskCompleted ? (_jsxs(SolidTag, { tone: "success", className: "inline-flex items-center gap-1 text-xs px-2 py-1", children: [_jsx(Check, { size: 12, "aria-hidden": true }), _jsx("span", { className: "font-medium", children: "Done" })] })) : (_jsx(SolidButton, { type: "button", size: "sm", variant: "outline", className: "text-xs px-2 py-1", leftIcon: _jsx(Check, { size: 12 }), loading: isUpdatingTaskStatus, onClick: handleMarkTaskDone, children: _jsx("span", { className: "font-semibold", children: "Mark as done" }) })) }))] })] }) }), openLightbox && (_jsx(SolidLightbox, { open: openLightbox, slides: lightboxSlides, onClose: function () { return setOpenLightbox(false); } }))] }));
296
296
  };
297
297
  //# sourceMappingURL=SolidChatterMessageBox.js.map