@solidxai/core-ui 0.1.9-beta.17 → 0.1.9-beta.19

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 (258) hide show
  1. package/dist/adapters/auth/handleLogout.d.ts +1 -1
  2. package/dist/adapters/auth/handleLogout.d.ts.map +1 -1
  3. package/dist/adapters/auth/handleLogout.js +20 -32
  4. package/dist/adapters/auth/handleLogout.js.map +1 -1
  5. package/dist/adapters/auth/handleLogout.ts +7 -14
  6. package/dist/components/auth/SolidLogin.js +2 -2
  7. package/dist/components/auth/SolidLogin.js.map +1 -1
  8. package/dist/components/auth/SolidLogin.tsx +2 -2
  9. package/dist/components/auth/SolidRegister.js +1 -1
  10. package/dist/components/auth/SolidRegister.js.map +1 -1
  11. package/dist/components/auth/SolidRegister.tsx +1 -1
  12. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  13. package/dist/components/common/SettingsComponent.js +3 -0
  14. package/dist/components/common/SettingsComponent.js.map +1 -1
  15. package/dist/components/common/SettingsComponent.tsx +3 -0
  16. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  17. package/dist/components/common/SocialMediaLogin.js +1 -1
  18. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  19. package/dist/components/common/SocialMediaLogin.tsx +4 -0
  20. package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
  21. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
  22. package/dist/components/common/SolidFaviconProvider.js +102 -0
  23. package/dist/components/common/SolidFaviconProvider.js.map +1 -0
  24. package/dist/components/common/SolidFaviconProvider.tsx +55 -0
  25. package/dist/components/core/card/SolidCardView.js +1 -1
  26. package/dist/components/core/card/SolidCardView.js.map +1 -1
  27. package/dist/components/core/card/SolidCardView.tsx +1 -1
  28. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  29. package/dist/components/core/chatter/SolidMessageComposer.js +2 -1
  30. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  31. package/dist/components/core/chatter/SolidMessageComposer.tsx +2 -0
  32. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  33. package/dist/components/core/common/FilterComponent.js +4 -2
  34. package/dist/components/core/common/FilterComponent.js.map +1 -1
  35. package/dist/components/core/common/FilterComponent.tsx +5 -2
  36. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  37. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
  38. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  39. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
  40. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  41. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
  42. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  43. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
  44. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +1 -1
  45. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  46. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +2 -0
  47. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  48. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -0
  49. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  50. package/dist/components/core/common/SolidGlobalSearchElement.js +47 -13
  51. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  52. package/dist/components/core/common/SolidGlobalSearchElement.tsx +38 -4
  53. package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
  54. package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
  55. package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
  56. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
  57. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
  58. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
  59. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
  60. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
  61. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
  62. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
  63. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
  64. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
  65. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
  66. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
  67. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
  68. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
  69. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
  70. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
  71. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
  72. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
  73. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
  74. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
  75. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
  76. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
  77. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
  78. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
  79. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
  80. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
  81. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
  82. package/dist/components/core/form/SolidFormView.js +1 -1
  83. package/dist/components/core/form/SolidFormView.js.map +1 -1
  84. package/dist/components/core/form/SolidFormView.tsx +1 -1
  85. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  86. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +12 -3
  87. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  88. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +21 -16
  89. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  90. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +15 -5
  91. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  92. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +21 -9
  93. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +12 -0
  94. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
  95. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +168 -0
  96. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
  97. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +241 -0
  98. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  99. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
  100. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  101. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
  102. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  103. package/dist/components/core/list/SolidListView.js +102 -87
  104. package/dist/components/core/list/SolidListView.js.map +1 -1
  105. package/dist/components/core/list/SolidListView.tsx +38 -19
  106. package/dist/components/core/list/SolidListViewColumn.d.ts +1 -0
  107. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  108. package/dist/components/core/list/SolidListViewColumn.js +25 -0
  109. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  110. package/dist/components/core/list/SolidListViewColumn.tsx +12 -0
  111. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  112. package/dist/components/core/list/SolidListViewConfigure.js +11 -10
  113. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  114. package/dist/components/core/list/SolidListViewConfigure.tsx +4 -2
  115. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  116. package/dist/components/core/list/SolidListViewHeaderButton.js +9 -3
  117. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  118. package/dist/components/core/list/SolidListViewHeaderButton.tsx +12 -7
  119. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  120. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +19 -7
  121. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  122. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +19 -6
  123. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
  125. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
  126. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
  127. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
  128. package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
  129. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  130. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
  131. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  132. package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
  133. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  134. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
  135. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  136. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +3 -2
  137. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  138. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +3 -2
  139. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  140. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -2
  141. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  142. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -2
  143. package/dist/components/core/model/CreateModel.css +48 -0
  144. package/dist/components/core/model/CreateModel.d.ts +1 -0
  145. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  146. package/dist/components/core/model/CreateModel.js +69 -104
  147. package/dist/components/core/model/CreateModel.js.map +1 -1
  148. package/dist/components/core/model/CreateModel.tsx +92 -204
  149. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  150. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  151. package/dist/components/core/model/FieldMetaData.js +6 -22
  152. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  153. package/dist/components/core/model/FieldMetaData.tsx +6 -45
  154. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  155. package/dist/components/core/model/FieldMetaDataForm.js +196 -222
  156. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  157. package/dist/components/core/model/FieldMetaDataForm.tsx +0 -72
  158. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  159. package/dist/components/core/model/ModelMetaData.js +7 -7
  160. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  161. package/dist/components/core/model/ModelMetaData.tsx +7 -0
  162. package/dist/components/core/module/CreateModule.css +44 -0
  163. package/dist/components/core/module/CreateModule.d.ts +1 -0
  164. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  165. package/dist/components/core/module/CreateModule.js +40 -43
  166. package/dist/components/core/module/CreateModule.js.map +1 -1
  167. package/dist/components/core/module/CreateModule.tsx +243 -247
  168. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  169. package/dist/components/core/module/ModuleListViewData.js +47 -7
  170. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  171. package/dist/components/core/module/ModuleListViewData.tsx +58 -0
  172. package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
  173. package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
  174. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
  175. package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
  176. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
  177. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
  178. package/dist/components/core/module/ModulePackageDialog.css +540 -0
  179. package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
  180. package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
  181. package/dist/components/core/module/ModulePackageDialog.js +625 -0
  182. package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
  183. package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
  184. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  185. package/dist/components/layout/AdminTopHeader.js +1 -1
  186. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  187. package/dist/components/layout/AdminTopHeader.tsx +2 -1
  188. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  189. package/dist/components/layout/user-profile-menu.js +57 -33
  190. package/dist/components/layout/user-profile-menu.js.map +1 -1
  191. package/dist/components/layout/user-profile-menu.tsx +11 -59
  192. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  193. package/dist/components/shad-cn-ui/SolidAutocomplete.js +15 -0
  194. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  195. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +13 -0
  196. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  197. package/dist/components/shad-cn-ui/SolidButton.js +10 -2
  198. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  199. package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
  200. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
  201. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  202. package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
  203. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  204. package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
  205. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
  206. package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
  207. package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
  208. package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
  209. package/dist/helpers/buttonEnvironment.d.ts +5 -0
  210. package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
  211. package/dist/helpers/buttonEnvironment.js +30 -0
  212. package/dist/helpers/buttonEnvironment.js.map +1 -0
  213. package/dist/helpers/buttonEnvironment.ts +35 -0
  214. package/dist/helpers/buttonPresentation.d.ts +24 -0
  215. package/dist/helpers/buttonPresentation.d.ts.map +1 -0
  216. package/dist/helpers/buttonPresentation.js +28 -0
  217. package/dist/helpers/buttonPresentation.js.map +1 -0
  218. package/dist/helpers/buttonPresentation.ts +53 -0
  219. package/dist/helpers/fileTypeIcon.d.ts +12 -0
  220. package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
  221. package/dist/helpers/fileTypeIcon.js +37 -0
  222. package/dist/helpers/fileTypeIcon.js.map +1 -0
  223. package/dist/helpers/fileTypeIcon.tsx +65 -0
  224. package/dist/helpers/registry.d.ts.map +1 -1
  225. package/dist/helpers/registry.js +10 -0
  226. package/dist/helpers/registry.js.map +1 -1
  227. package/dist/helpers/registry.ts +10 -0
  228. package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
  229. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
  230. package/dist/helpers/waitForBackendAvailability.js +86 -0
  231. package/dist/helpers/waitForBackendAvailability.js.map +1 -0
  232. package/dist/helpers/waitForBackendAvailability.ts +37 -0
  233. package/dist/index.d.ts +3 -1
  234. package/dist/index.d.ts.map +1 -1
  235. package/dist/index.js +3 -1
  236. package/dist/index.js.map +1 -1
  237. package/dist/index.ts +19 -0
  238. package/dist/redux/api/moduleApi.d.ts +26 -1
  239. package/dist/redux/api/moduleApi.d.ts.map +1 -1
  240. package/dist/redux/api/moduleApi.js +237 -1
  241. package/dist/redux/api/moduleApi.js.map +1 -1
  242. package/dist/redux/api/moduleApi.ts +181 -1
  243. package/dist/redux/store/defaultStoreConfig.d.ts +22 -0
  244. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  245. package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
  246. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  247. package/dist/redux/store/solidEntityApiPool.js +4 -0
  248. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  249. package/dist/redux/store/solidEntityApiPool.ts +4 -0
  250. package/dist/resources/globals.css +56 -0
  251. package/dist/resources/shadcn-base.css +29 -4
  252. package/dist/routes/AppEventListener.d.ts.map +1 -1
  253. package/dist/routes/AppEventListener.js +58 -8
  254. package/dist/routes/AppEventListener.js.map +1 -1
  255. package/dist/routes/AppEventListener.tsx +69 -8
  256. package/dist/types/index.d.ts +1 -0
  257. package/dist/types/jsoneditor.d.ts +4 -0
  258. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidFaviconProvider.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidFaviconProvider.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AA2BrE,eAAO,MAAM,oBAAoB,YAqBhC,CAAC"}
@@ -0,0 +1,102 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { useCallback, useEffect } from "react";
38
+ import { solidGet } from "../../http/solidHttp";
39
+ import { toLegacySettingsShape } from "../../helpers/settingsPayload";
40
+ import { env } from "../../adapters/env";
41
+ var FAVICON_LINK_ID = "solid-dynamic-favicon";
42
+ export var SOLID_SETTINGS_UPDATED_EVENT = "solid:settings-updated";
43
+ var normalizeAssetUrl = function (src) {
44
+ if (!src)
45
+ return "";
46
+ if (src.startsWith("blob:") || src.startsWith("http") || src.startsWith("/"))
47
+ return src;
48
+ return "".concat(env("API_URL"), "/").concat(src);
49
+ };
50
+ var applyFavicon = function (href) {
51
+ if (typeof document === "undefined" || !href)
52
+ return;
53
+ document.head
54
+ .querySelectorAll('link[rel~="icon"], link[rel="shortcut icon"]')
55
+ .forEach(function (link) {
56
+ var _a;
57
+ if (link.id !== FAVICON_LINK_ID)
58
+ (_a = link.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(link);
59
+ });
60
+ var link = document.getElementById(FAVICON_LINK_ID);
61
+ if (!link) {
62
+ link = document.createElement("link");
63
+ link.id = FAVICON_LINK_ID;
64
+ link.rel = "icon";
65
+ document.head.appendChild(link);
66
+ }
67
+ link.href = href;
68
+ };
69
+ export var SolidFaviconProvider = function () {
70
+ var refresh = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
71
+ var response, settings, favicon, href, error_1;
72
+ var _a, _b;
73
+ return __generator(this, function (_c) {
74
+ switch (_c.label) {
75
+ case 0:
76
+ _c.trys.push([0, 2, , 3]);
77
+ return [4 /*yield*/, solidGet("/setting/wrapped")];
78
+ case 1:
79
+ response = _c.sent();
80
+ settings = toLegacySettingsShape((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : null);
81
+ favicon = (_b = settings === null || settings === void 0 ? void 0 : settings.data) === null || _b === void 0 ? void 0 : _b.favicon;
82
+ href = normalizeAssetUrl(favicon);
83
+ if (href)
84
+ applyFavicon(href);
85
+ return [3 /*break*/, 3];
86
+ case 2:
87
+ error_1 = _c.sent();
88
+ console.error("[SolidFaviconProvider] Failed to load favicon setting", error_1);
89
+ return [3 /*break*/, 3];
90
+ case 3: return [2 /*return*/];
91
+ }
92
+ });
93
+ }); }, []);
94
+ useEffect(function () {
95
+ refresh();
96
+ var handler = function () { return refresh(); };
97
+ window.addEventListener(SOLID_SETTINGS_UPDATED_EVENT, handler);
98
+ return function () { return window.removeEventListener(SOLID_SETTINGS_UPDATED_EVENT, handler); };
99
+ }, [refresh]);
100
+ return null;
101
+ };
102
+ //# sourceMappingURL=SolidFaviconProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidFaviconProvider.js","sourceRoot":"","sources":["../../../src/components/common/SolidFaviconProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,IAAM,eAAe,GAAG,uBAAuB,CAAC;AAChD,MAAM,CAAC,IAAM,4BAA4B,GAAG,wBAAwB,CAAC;AAErE,IAAM,iBAAiB,GAAG,UAAC,GAAmB;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACzF,OAAO,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,GAAG,CAAE,CAAC;AACtC,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,IAAY;IAC9B,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,IAAI;QAAE,OAAO;IAErD,QAAQ,CAAC,IAAI;SACR,gBAAgB,CAAkB,8CAA8C,CAAC;SACjF,OAAO,CAAC,UAAC,IAAI;;QACV,IAAI,IAAI,CAAC,EAAE,KAAK,eAAe;YAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEP,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAA2B,CAAC;IAC9E,IAAI,CAAC,IAAI,EAAE;QACP,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACnC;IACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,oBAAoB,GAAG;IAChC,IAAM,OAAO,GAAG,WAAW,CAAC;;;;;;;oBAEH,qBAAM,QAAQ,CAAC,kBAAkB,CAAC,EAAA;;oBAA7C,QAAQ,GAAG,SAAkC;oBAC7C,QAAQ,GAAG,qBAAqB,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;oBACzD,OAAO,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,CAAC;oBAClC,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBACxC,IAAI,IAAI;wBAAE,YAAY,CAAC,IAAI,CAAC,CAAC;;;;oBAE7B,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,OAAK,CAAC,CAAC;;;;;SAErF,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC;QACN,OAAO,EAAE,CAAC;QACV,IAAM,OAAO,GAAG,cAAM,OAAA,OAAO,EAAE,EAAT,CAAS,CAAC;QAChC,MAAM,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,cAAM,OAAA,MAAM,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,OAAO,CAAC,EAAjE,CAAiE,CAAC;IACnF,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC","sourcesContent":["import { useCallback, useEffect } from \"react\";\nimport { solidGet } from \"../../http/solidHttp\";\nimport { toLegacySettingsShape } from \"../../helpers/settingsPayload\";\nimport { env } from \"../../adapters/env\";\n\nconst FAVICON_LINK_ID = \"solid-dynamic-favicon\";\nexport const SOLID_SETTINGS_UPDATED_EVENT = \"solid:settings-updated\";\n\nconst normalizeAssetUrl = (src?: string | null) => {\n if (!src) return \"\";\n if (src.startsWith(\"blob:\") || src.startsWith(\"http\") || src.startsWith(\"/\")) return src;\n return `${env(\"API_URL\")}/${src}`;\n};\n\nconst applyFavicon = (href: string) => {\n if (typeof document === \"undefined\" || !href) return;\n\n document.head\n .querySelectorAll<HTMLLinkElement>('link[rel~=\"icon\"], link[rel=\"shortcut icon\"]')\n .forEach((link) => {\n if (link.id !== FAVICON_LINK_ID) link.parentNode?.removeChild(link);\n });\n\n let link = document.getElementById(FAVICON_LINK_ID) as HTMLLinkElement | null;\n if (!link) {\n link = document.createElement(\"link\");\n link.id = FAVICON_LINK_ID;\n link.rel = \"icon\";\n document.head.appendChild(link);\n }\n link.href = href;\n};\n\nexport const SolidFaviconProvider = () => {\n const refresh = useCallback(async () => {\n try {\n const response = await solidGet(\"/setting/wrapped\");\n const settings = toLegacySettingsShape(response?.data ?? null);\n const favicon = settings?.data?.favicon;\n const href = normalizeAssetUrl(favicon);\n if (href) applyFavicon(href);\n } catch (error) {\n console.error(\"[SolidFaviconProvider] Failed to load favicon setting\", error);\n }\n }, []);\n\n useEffect(() => {\n refresh();\n const handler = () => refresh();\n window.addEventListener(SOLID_SETTINGS_UPDATED_EVENT, handler);\n return () => window.removeEventListener(SOLID_SETTINGS_UPDATED_EVENT, handler);\n }, [refresh]);\n\n return null;\n};\n"]}
@@ -0,0 +1,55 @@
1
+ import { useCallback, useEffect } from "react";
2
+ import { solidGet } from "../../http/solidHttp";
3
+ import { toLegacySettingsShape } from "../../helpers/settingsPayload";
4
+ import { env } from "../../adapters/env";
5
+
6
+ const FAVICON_LINK_ID = "solid-dynamic-favicon";
7
+ export const SOLID_SETTINGS_UPDATED_EVENT = "solid:settings-updated";
8
+
9
+ const normalizeAssetUrl = (src?: string | null) => {
10
+ if (!src) return "";
11
+ if (src.startsWith("blob:") || src.startsWith("http") || src.startsWith("/")) return src;
12
+ return `${env("API_URL")}/${src}`;
13
+ };
14
+
15
+ const applyFavicon = (href: string) => {
16
+ if (typeof document === "undefined" || !href) return;
17
+
18
+ document.head
19
+ .querySelectorAll<HTMLLinkElement>('link[rel~="icon"], link[rel="shortcut icon"]')
20
+ .forEach((link) => {
21
+ if (link.id !== FAVICON_LINK_ID) link.parentNode?.removeChild(link);
22
+ });
23
+
24
+ let link = document.getElementById(FAVICON_LINK_ID) as HTMLLinkElement | null;
25
+ if (!link) {
26
+ link = document.createElement("link");
27
+ link.id = FAVICON_LINK_ID;
28
+ link.rel = "icon";
29
+ document.head.appendChild(link);
30
+ }
31
+ link.href = href;
32
+ };
33
+
34
+ export const SolidFaviconProvider = () => {
35
+ const refresh = useCallback(async () => {
36
+ try {
37
+ const response = await solidGet("/setting/wrapped");
38
+ const settings = toLegacySettingsShape(response?.data ?? null);
39
+ const favicon = settings?.data?.favicon;
40
+ const href = normalizeAssetUrl(favicon);
41
+ if (href) applyFavicon(href);
42
+ } catch (error) {
43
+ console.error("[SolidFaviconProvider] Failed to load favicon setting", error);
44
+ }
45
+ }, []);
46
+
47
+ useEffect(() => {
48
+ refresh();
49
+ const handler = () => refresh();
50
+ window.addEventListener(SOLID_SETTINGS_UPDATED_EVENT, handler);
51
+ return () => window.removeEventListener(SOLID_SETTINGS_UPDATED_EVENT, handler);
52
+ }, [refresh]);
53
+
54
+ return null;
55
+ };
@@ -358,7 +358,7 @@ export var SolidCardView = function (params) {
358
358
  var cardViewTitle = (_b = (_a = solidCardViewMetaDataResponse === null || solidCardViewMetaDataResponse === void 0 ? void 0 : solidCardViewMetaDataResponse.data) === null || _a === void 0 ? void 0 : _a.solidView) === null || _b === void 0 ? void 0 : _b.displayName;
359
359
  var showEmptyState = !loading && cards.length === 0;
360
360
  var headerRequestStatusLabel = loading || !queryDataLoaded ? "Loading..." : null;
361
- return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content h-full flex flex-column flex-grow-1", children: _jsxs("div", { className: "solid-list-surface solid-card-surface flex flex-column flex-1 min-h-0", children: [_jsxs("div", { className: "page-header solid-list-toolbar solid-card-toolbar flex-column lg:flex-row", children: [_jsxs("div", { className: "flex justify-content-between w-full", children: [_jsxs("div", { className: "flex gap-3 align-items-center w-full solid-list-toolbar-left", children: [params.embeded !== true && (_jsx("div", { className: "apps-icon block md:hidden cursor-pointer", onClick: toggleBothSidebars, children: _jsx(SolidIcon, { name: "si-th-large", "aria-hidden": true }) })), _jsx("p", { className: "m-0 view-title solid-text-wrapper", children: cardViewTitle }), _jsx("div", { className: "hidden lg:flex", children: _jsx(SolidGlobalSearchElement, { viewType: "card", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidCardViewMetaDataResponse, handleApplyCustomFilter: handleApplyCustomFilter }) })] }), _jsxs("div", { className: "flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions", children: [_jsx(SolidHeaderRequestStatus, { label: headerRequestStatusLabel }), _jsx("div", { className: "flex lg:hidden", children: _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", onClick: function () { return setShowGlobalSearchElement(!showGlobalSearchElement); }, "aria-label": "Toggle search", leftIcon: _jsx(SolidIcon, { name: "si-search", "aria-hidden": true }) }) }), actionsAllowed.includes("".concat(permissionExpression(params.modelName, "create"))) &&
361
+ return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content h-full flex way to flex-grow-1", children: _jsxs("div", { className: "solid-list-surface solid-card-surface flex flex-column flex-1 min-h-0", children: [_jsxs("div", { className: "page-header solid-list-toolbar solid-card-toolbar flex-column lg:flex-row", children: [_jsxs("div", { className: "flex justify-content-between w-full", children: [_jsxs("div", { className: "flex gap-3 align-items-center w-full solid-list-toolbar-left", children: [params.embeded !== true && (_jsx("div", { className: "apps-icon block md:hidden cursor-pointer", onClick: toggleBothSidebars, children: _jsx(SolidIcon, { name: "si-th-large", "aria-hidden": true }) })), _jsx("p", { className: "m-0 view-title solid-text-wrapper", children: cardViewTitle }), _jsx("div", { className: "hidden lg:flex", children: _jsx(SolidGlobalSearchElement, { viewType: "card", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidCardViewMetaDataResponse, handleApplyCustomFilter: handleApplyCustomFilter }) })] }), _jsxs("div", { className: "flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions", children: [_jsx(SolidHeaderRequestStatus, { label: headerRequestStatusLabel }), _jsx("div", { className: "flex lg:hidden", children: _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", onClick: function () { return setShowGlobalSearchElement(!showGlobalSearchElement); }, "aria-label": "Toggle search", leftIcon: _jsx(SolidIcon, { name: "si-search", "aria-hidden": true }) }) }), actionsAllowed.includes("".concat(permissionExpression(params.modelName, "create"))) &&
362
362
  ((_f = (_e = (_d = (_c = solidCardViewMetaDataResponse === null || solidCardViewMetaDataResponse === void 0 ? void 0 : solidCardViewMetaDataResponse.data) === null || _c === void 0 ? void 0 : _c.solidView) === null || _d === void 0 ? void 0 : _d.layout) === null || _e === void 0 ? void 0 : _e.attrs) === null || _f === void 0 ? void 0 : _f.create) !== false && (_jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, responsiveIconOnly: true })), _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", onClick: function () { return handleFetchUpdatedRecords(); }, "aria-label": "Refresh cards", leftIcon: _jsx(SolidIcon, { name: "si-refresh", "aria-hidden": true }) }), _jsx(SolidCardViewConfigure, { solidCardViewMetaData: solidCardViewMetaDataResponse, modelName: params.modelName, actionsAllowed: actionsAllowed, viewModes: viewModes, setLayoutDialogVisible: setLayoutDialogVisible, setShowSaveFilterPopup: setShowSaveFilterPopup, filters: filters, handleRefreshView: handleFetchUpdatedRecords })] })] }), showGlobalSearchElement && (_jsx("div", { className: "flex lg:hidden", children: _jsx(SolidGlobalSearchElement, { viewType: "card", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidCardViewMetaDataResponse, handleApplyCustomFilter: handleApplyCustomFilter }) }))] }), _jsxs("div", { className: "solid-card-view-content", children: [_jsx("div", { className: "solid-card-view-body", children: showEmptyState ? (_jsx(SolidEmptyListViewPlaceholder, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, actionsAllowed: actionsAllowed, params: params, solidListViewMetaData: solidCardViewMetaDataResponse, handleFetchUpdatedRecords: handleFetchUpdatedRecords })) : (_jsx(CardGrid, { records: cards, solidCardViewMetaData: solidCardViewMetaDataResponse === null || solidCardViewMetaDataResponse === void 0 ? void 0 : solidCardViewMetaDataResponse.data, editButtonUrl: editBaseUrl, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox })) }), totalRecords > 0 && (_jsx("div", { className: "solid-card-view-pagination", children: _jsxs("div", { className: "solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background", children: [_jsxs("div", { className: "solid-paginator-meta flex items-center gap-2", children: [_jsx("span", { className: "solid-paginator-label", children: "Records" }), _jsx("select", { value: rows, onChange: handleRowsChange, className: "solid-paginator-select", children: rowsOptions.map(function (option) { return (_jsx("option", { value: option, children: option }, option)); }) }), _jsx("span", { className: "solid-paginator-report", children: paginationReport })] }), _jsxs("div", { className: "solid-paginator-actions flex items-center gap-2", children: [_jsx("button", { type: "button", className: "solid-paginator-btn", onClick: handlePrevPage, disabled: !canGoPrev, children: "Previous" }), _jsx("button", { type: "button", className: "solid-paginator-btn", onClick: handleNextPage, disabled: !canGoNext, children: "Next" })] })] }) }))] })] }) }), openLightbox && (_jsx(SolidLightbox, { open: openLightbox, slides: lightboxSlides, onClose: function () { return setOpenLightbox(false); } })), _jsxs(SolidDialog, { open: isLayoutDialogVisible, onOpenChange: setLayoutDialogVisible, className: "solid-kanban-layout-dialog", style: { width: "min(800px, calc(100vw - 32px))" }, children: [_jsxs(SolidDialogHeader, { children: [_jsx(SolidDialogTitle, { children: "Change Card Layout" }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogSeparator, {}), _jsx(SolidDialogBody, { className: "solid-kanban-layout-dialog-body", children: _jsx(CardUserViewLayout, { solidCardViewMetaData: solidCardViewMetaDataResponse, setLayoutDialogVisible: setLayoutDialogVisible }) })] })] }));
363
363
  };
364
364
  //# sourceMappingURL=SolidCardView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidCardView.js","sourceRoot":"","sources":["../../../../src/components/core/card/SolidCardView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport qs from \"qs\";\nimport { ChangeEvent, useEffect, useRef, useState } from \"react\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { SolidEmptyListViewPlaceholder } from \"../list/SolidEmptyListViewPlaceholder\";\nimport { getFilterObjectFromLocalStorage, setFilterObjectToLocalStorage } from \"../list/SolidListView\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { SolidCardViewConfigure } from \"./SolidCardViewConfigure\";\nimport { CardGrid } from \"./CardGrid\";\nimport { CardUserViewLayout } from \"./CardUserViewLayout\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\ntype SolidCardViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\nconst deriveCardViewConfig = (solidCardViewMetaData: any) => {\n const solidView = solidCardViewMetaData?.data?.solidView;\n const solidFieldsMetadata = solidCardViewMetaData?.data?.solidFieldsMetadata || {};\n const layoutAttrs = solidView?.layout?.attrs || {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n\n const findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n };\n\n const extractFields = (nodes: any, result: any[] = []) => {\n if (!nodes) return result;\n\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (Array.isArray(nodes.children)) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n };\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView?.layout?.children || [];\n const layoutFields = extractFields(fieldSource);\n layoutFields.forEach((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column?.attrs?.name];\n if (!fieldMetadata) return;\n\n if (fieldMetadata.type === \"relation\") {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === \"mediaSingle\" || fieldMetadata.type === \"mediaMultiple\") {\n toPopulateMedia.push(fieldMetadata.name);\n }\n });\n\n return {\n rows: layoutAttrs.pageSize || 24,\n pageSizeOptions: layoutAttrs.pageSizeOptions || [12, 24, 48],\n toPopulate,\n toPopulateMedia,\n };\n};\n\nexport const SolidCardView = (params: SolidCardViewParams) => {\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const solidGlobalSearchElementRef = useRef<any>();\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const [viewModes, setViewModes] = useState<any[]>([]);\n const [filters, setFilters] = useState<any>({ $and: [] });\n const [cards, setCards] = useState<any[]>([]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [rows, setRows] = useState(24);\n const [rowsPerPageOptions, setRowsPerPageOptions] = useState<any[]>([12, 24, 48]);\n const [first, setFirst] = useState(0);\n const [totalRecords, setTotalRecords] = useState(0);\n const [loading, setLoading] = useState(true);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [solidCardViewMetaData, setSolidCardViewMetaData] = useState<any>();\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const entityApi = createSolidEntityApi(params.modelName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n const cardViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"card\",\n menuItemId,\n menuItemName,\n actionId,\n actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const { data: solidCardViewMetaDataResponse } = useGetSolidViewLayoutQuery(cardViewMetaDataQs);\n\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n const rowsOptions = rowsPerPageOptions && rowsPerPageOptions.length > 0 ? rowsPerPageOptions : [12, 24, 48];\n const paginationStart = totalRecords === 0 ? 0 : first + 1;\n const paginationEnd = Math.min(first + rows, totalRecords);\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const paginationReport = `${paginationStart} - ${paginationEnd} of ${totalRecords}`;\n const canGoPrev = currentPage > 1;\n const canGoNext = currentPage < totalPages;\n\n const handleRowsChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const nextRows = Number(event.target.value);\n setRows(nextRows);\n setFirst(0);\n };\n\n const handlePrevPage = () => {\n if (!canGoPrev) return;\n setFirst(Math.max(0, first - rows));\n };\n\n const handleNextPage = () => {\n if (!canGoNext) return;\n setFirst(Math.min((totalPages - 1) * rows, first + rows));\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (!params.modelName) return;\n\n const permissionNames = [\n permissionExpression(params.modelName, \"create\"),\n permissionExpression(params.modelName, \"update\"),\n permissionExpression(params.modelName, \"findMany\"),\n permissionExpression(\"importTransaction\", \"create\"),\n permissionExpression(\"exportTransaction\", \"create\"),\n permissionExpression(\"userViewMetadata\", \"create\"),\n permissionExpression(\"savedFilters\", \"create\"),\n ];\n\n const queryString = qs.stringify(\n { permissionNames },\n { encodeValuesOnly: true }\n );\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data?.data || []);\n };\n\n fetchPermissions();\n }, [params.modelName]);\n\n useEffect(() => {\n if (!solidCardViewMetaDataResponse) return;\n\n setSolidCardViewMetaData(solidCardViewMetaDataResponse);\n setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);\n\n const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);\n const persistedFilterObject = typeof window !== \"undefined\" ? getFilterObjectFromLocalStorage() : null;\n const restoredFilter = { $and: [] as any[] };\n\n if (persistedFilterObject?.custom_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.custom_filter_predicate);\n }\n if (persistedFilterObject?.search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.search_predicate);\n }\n if (persistedFilterObject?.saved_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.saved_filter_predicate);\n }\n if (persistedFilterObject?.predefined_search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.predefined_search_predicate);\n }\n\n setRows(Number(persistedFilterObject?.limit) || rows);\n setRowsPerPageOptions(pageSizeOptions);\n setFirst(Number(persistedFilterObject?.offset) || 0);\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setFilters(restoredFilter.$and.length > 0 ? restoredFilter : { $and: [] });\n setQueryDataLoaded(true);\n\n const layoutAttrs = solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs;\n const createActionUrl = layoutAttrs?.createAction && layoutAttrs?.createAction?.type === \"custom\"\n ? layoutAttrs?.createAction?.customComponent\n : \"form/new\";\n const editActionUrl = layoutAttrs?.editAction && layoutAttrs?.editAction?.type === \"custom\"\n ? layoutAttrs?.editAction?.customComponent\n : \"form\";\n\n if (layoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: layoutAttrs.createAction.name,\n actionType: layoutAttrs.createAction.type,\n actionContext: layoutAttrs.createAction.context,\n });\n }\n\n setCreateButtonUrl(createActionUrl);\n setEditButtonUrl(editActionUrl);\n }, [solidCardViewMetaDataResponse]);\n\n useEffect(() => {\n const fetchCards = async () => {\n if (!queryDataLoaded || !solidCardViewMetaDataResponse) return;\n\n setLoading(true);\n\n const queryData = {\n offset: first,\n limit: rows,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n filters,\n };\n\n try {\n const data: any = await triggerGetSolidEntities(\n qs.stringify(queryData, { encodeValuesOnly: true })\n ).unwrap();\n\n setCards(data?.records || []);\n setTotalRecords(data?.meta?.totalRecords || 0);\n } finally {\n setLoading(false);\n }\n };\n\n fetchCards();\n }, [queryDataLoaded, first, rows, toPopulate, toPopulateMedia, filters, solidCardViewMetaDataResponse]);\n\n const handleApplyCustomFilter = async (filterPredicates: any) => {\n const updatedFilter = { $and: [] as any[] };\n\n if (filterPredicates.custom_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n updatedFilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n updatedFilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n setFirst(0);\n setFilters(updatedFilter);\n setFilterObjectToLocalStorage({\n offset: 0,\n limit: rows,\n custom_filter_predicate: filterPredicates.custom_filter_predicate || {},\n search_predicate: filterPredicates.search_predicate || {},\n saved_filter_predicate: filterPredicates.saved_filter_predicate || {},\n predefined_search_predicate: filterPredicates.predefined_search_predicate || {},\n });\n };\n\n const handleFetchUpdatedRecords = () => {\n setQueryDataLoaded((current) => !current);\n };\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar());\n } else {\n dispatch(showNavbar());\n }\n };\n\n const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;\n const showEmptyState = !loading && cards.length === 0;\n const headerRequestStatusLabel = loading || !queryDataLoaded ? \"Loading...\" : null;\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex flex-column flex-grow-1\">\n <div className=\"solid-list-surface solid-card-surface flex flex-column flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-card-toolbar flex-column lg:flex-row\">\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full solid-list-toolbar-left\">\n {params.embeded !== true && (\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n )}\n <p className=\"m-0 view-title solid-text-wrapper\">{cardViewTitle}</p>\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n </div>\n\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, \"create\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.create !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n responsiveIconOnly={true}\n />\n )}\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => handleFetchUpdatedRecords()}\n aria-label=\"Refresh cards\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n\n <SolidCardViewConfigure\n solidCardViewMetaData={solidCardViewMetaDataResponse}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={handleFetchUpdatedRecords}\n />\n </div>\n </div>\n\n {showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n )}\n </div>\n\n <div className=\"solid-card-view-content\">\n <div className=\"solid-card-view-body\">\n {showEmptyState ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n ) : (\n <CardGrid\n records={cards}\n solidCardViewMetaData={solidCardViewMetaDataResponse?.data}\n editButtonUrl={editBaseUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n />\n )}\n </div>\n\n {totalRecords > 0 && (\n <div className=\"solid-card-view-pagination\">\n <div className=\"solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\">\n <div className=\"solid-paginator-meta flex items-center gap-2\">\n <span className=\"solid-paginator-label\">Records</span>\n <select\n value={rows}\n onChange={handleRowsChange}\n className=\"solid-paginator-select\"\n >\n {rowsOptions.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n <span className=\"solid-paginator-report\">{paginationReport}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handlePrevPage}\n disabled={!canGoPrev}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handleNextPage}\n disabled={!canGoNext}\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Card Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <CardUserViewLayout solidCardViewMetaData={solidCardViewMetaDataResponse} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidCardView.js","sourceRoot":"","sources":["../../../../src/components/core/card/SolidCardView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport qs from \"qs\";\nimport { ChangeEvent, useEffect, useRef, useState } from \"react\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { SolidEmptyListViewPlaceholder } from \"../list/SolidEmptyListViewPlaceholder\";\nimport { getFilterObjectFromLocalStorage, setFilterObjectToLocalStorage } from \"../list/SolidListView\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { SolidCardViewConfigure } from \"./SolidCardViewConfigure\";\nimport { CardGrid } from \"./CardGrid\";\nimport { CardUserViewLayout } from \"./CardUserViewLayout\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\ntype SolidCardViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\nconst deriveCardViewConfig = (solidCardViewMetaData: any) => {\n const solidView = solidCardViewMetaData?.data?.solidView;\n const solidFieldsMetadata = solidCardViewMetaData?.data?.solidFieldsMetadata || {};\n const layoutAttrs = solidView?.layout?.attrs || {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n\n const findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n };\n\n const extractFields = (nodes: any, result: any[] = []) => {\n if (!nodes) return result;\n\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (Array.isArray(nodes.children)) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n };\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView?.layout?.children || [];\n const layoutFields = extractFields(fieldSource);\n layoutFields.forEach((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column?.attrs?.name];\n if (!fieldMetadata) return;\n\n if (fieldMetadata.type === \"relation\") {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === \"mediaSingle\" || fieldMetadata.type === \"mediaMultiple\") {\n toPopulateMedia.push(fieldMetadata.name);\n }\n });\n\n return {\n rows: layoutAttrs.pageSize || 24,\n pageSizeOptions: layoutAttrs.pageSizeOptions || [12, 24, 48],\n toPopulate,\n toPopulateMedia,\n };\n};\n\nexport const SolidCardView = (params: SolidCardViewParams) => {\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const solidGlobalSearchElementRef = useRef<any>();\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const [viewModes, setViewModes] = useState<any[]>([]);\n const [filters, setFilters] = useState<any>({ $and: [] });\n const [cards, setCards] = useState<any[]>([]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [rows, setRows] = useState(24);\n const [rowsPerPageOptions, setRowsPerPageOptions] = useState<any[]>([12, 24, 48]);\n const [first, setFirst] = useState(0);\n const [totalRecords, setTotalRecords] = useState(0);\n const [loading, setLoading] = useState(true);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [solidCardViewMetaData, setSolidCardViewMetaData] = useState<any>();\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const entityApi = createSolidEntityApi(params.modelName);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n const cardViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"card\",\n menuItemId,\n menuItemName,\n actionId,\n actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const { data: solidCardViewMetaDataResponse } = useGetSolidViewLayoutQuery(cardViewMetaDataQs);\n\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n const rowsOptions = rowsPerPageOptions && rowsPerPageOptions.length > 0 ? rowsPerPageOptions : [12, 24, 48];\n const paginationStart = totalRecords === 0 ? 0 : first + 1;\n const paginationEnd = Math.min(first + rows, totalRecords);\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const paginationReport = `${paginationStart} - ${paginationEnd} of ${totalRecords}`;\n const canGoPrev = currentPage > 1;\n const canGoNext = currentPage < totalPages;\n\n const handleRowsChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const nextRows = Number(event.target.value);\n setRows(nextRows);\n setFirst(0);\n };\n\n const handlePrevPage = () => {\n if (!canGoPrev) return;\n setFirst(Math.max(0, first - rows));\n };\n\n const handleNextPage = () => {\n if (!canGoNext) return;\n setFirst(Math.min((totalPages - 1) * rows, first + rows));\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (!params.modelName) return;\n\n const permissionNames = [\n permissionExpression(params.modelName, \"create\"),\n permissionExpression(params.modelName, \"update\"),\n permissionExpression(params.modelName, \"findMany\"),\n permissionExpression(\"importTransaction\", \"create\"),\n permissionExpression(\"exportTransaction\", \"create\"),\n permissionExpression(\"userViewMetadata\", \"create\"),\n permissionExpression(\"savedFilters\", \"create\"),\n ];\n\n const queryString = qs.stringify(\n { permissionNames },\n { encodeValuesOnly: true }\n );\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data?.data || []);\n };\n\n fetchPermissions();\n }, [params.modelName]);\n\n useEffect(() => {\n if (!solidCardViewMetaDataResponse) return;\n\n setSolidCardViewMetaData(solidCardViewMetaDataResponse);\n setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);\n\n const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);\n const persistedFilterObject = typeof window !== \"undefined\" ? getFilterObjectFromLocalStorage() : null;\n const restoredFilter = { $and: [] as any[] };\n\n if (persistedFilterObject?.custom_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.custom_filter_predicate);\n }\n if (persistedFilterObject?.search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.search_predicate);\n }\n if (persistedFilterObject?.saved_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.saved_filter_predicate);\n }\n if (persistedFilterObject?.predefined_search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.predefined_search_predicate);\n }\n\n setRows(Number(persistedFilterObject?.limit) || rows);\n setRowsPerPageOptions(pageSizeOptions);\n setFirst(Number(persistedFilterObject?.offset) || 0);\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setFilters(restoredFilter.$and.length > 0 ? restoredFilter : { $and: [] });\n setQueryDataLoaded(true);\n\n const layoutAttrs = solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs;\n const createActionUrl = layoutAttrs?.createAction && layoutAttrs?.createAction?.type === \"custom\"\n ? layoutAttrs?.createAction?.customComponent\n : \"form/new\";\n const editActionUrl = layoutAttrs?.editAction && layoutAttrs?.editAction?.type === \"custom\"\n ? layoutAttrs?.editAction?.customComponent\n : \"form\";\n\n if (layoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: layoutAttrs.createAction.name,\n actionType: layoutAttrs.createAction.type,\n actionContext: layoutAttrs.createAction.context,\n });\n }\n\n setCreateButtonUrl(createActionUrl);\n setEditButtonUrl(editActionUrl);\n }, [solidCardViewMetaDataResponse]);\n\n useEffect(() => {\n const fetchCards = async () => {\n if (!queryDataLoaded || !solidCardViewMetaDataResponse) return;\n\n setLoading(true);\n\n const queryData = {\n offset: first,\n limit: rows,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n filters,\n };\n\n try {\n const data: any = await triggerGetSolidEntities(\n qs.stringify(queryData, { encodeValuesOnly: true })\n ).unwrap();\n\n setCards(data?.records || []);\n setTotalRecords(data?.meta?.totalRecords || 0);\n } finally {\n setLoading(false);\n }\n };\n\n fetchCards();\n }, [queryDataLoaded, first, rows, toPopulate, toPopulateMedia, filters, solidCardViewMetaDataResponse]);\n\n const handleApplyCustomFilter = async (filterPredicates: any) => {\n const updatedFilter = { $and: [] as any[] };\n\n if (filterPredicates.custom_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n updatedFilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n updatedFilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n setFirst(0);\n setFilters(updatedFilter);\n setFilterObjectToLocalStorage({\n offset: 0,\n limit: rows,\n custom_filter_predicate: filterPredicates.custom_filter_predicate || {},\n search_predicate: filterPredicates.search_predicate || {},\n saved_filter_predicate: filterPredicates.saved_filter_predicate || {},\n predefined_search_predicate: filterPredicates.predefined_search_predicate || {},\n });\n };\n\n const handleFetchUpdatedRecords = () => {\n setQueryDataLoaded((current) => !current);\n };\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar());\n } else {\n dispatch(showNavbar());\n }\n };\n\n const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;\n const showEmptyState = !loading && cards.length === 0;\n const headerRequestStatusLabel = loading || !queryDataLoaded ? \"Loading...\" : null;\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex way to flex-grow-1\">\n <div className=\"solid-list-surface solid-card-surface flex flex-column flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-card-toolbar flex-column lg:flex-row\">\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full solid-list-toolbar-left\">\n {params.embeded !== true && (\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n )}\n <p className=\"m-0 view-title solid-text-wrapper\">{cardViewTitle}</p>\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n </div>\n\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, \"create\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.create !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n responsiveIconOnly={true}\n />\n )}\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => handleFetchUpdatedRecords()}\n aria-label=\"Refresh cards\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n\n <SolidCardViewConfigure\n solidCardViewMetaData={solidCardViewMetaDataResponse}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={handleFetchUpdatedRecords}\n />\n </div>\n </div>\n\n {showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n />\n </div>\n )}\n </div>\n\n <div className=\"solid-card-view-content\">\n <div className=\"solid-card-view-body\">\n {showEmptyState ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n ) : (\n <CardGrid\n records={cards}\n solidCardViewMetaData={solidCardViewMetaDataResponse?.data}\n editButtonUrl={editBaseUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n />\n )}\n </div>\n\n {totalRecords > 0 && (\n <div className=\"solid-card-view-pagination\">\n <div className=\"solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\">\n <div className=\"solid-paginator-meta flex items-center gap-2\">\n <span className=\"solid-paginator-label\">Records</span>\n <select\n value={rows}\n onChange={handleRowsChange}\n className=\"solid-paginator-select\"\n >\n {rowsOptions.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n <span className=\"solid-paginator-report\">{paginationReport}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handlePrevPage}\n disabled={!canGoPrev}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handleNextPage}\n disabled={!canGoNext}\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Card Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <CardUserViewLayout solidCardViewMetaData={solidCardViewMetaDataResponse} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
@@ -347,7 +347,7 @@ export const SolidCardView = (params: SolidCardViewParams) => {
347
347
 
348
348
  return (
349
349
  <div className="page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden">
350
- <div className="solid-list-content h-full flex flex-column flex-grow-1">
350
+ <div className="solid-list-content h-full flex way to flex-grow-1">
351
351
  <div className="solid-list-surface solid-card-surface flex flex-column flex-1 min-h-0">
352
352
  <div className="page-header solid-list-toolbar solid-card-toolbar flex-column lg:flex-row">
353
353
  <div className="flex justify-content-between w-full">
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMessageComposer.d.ts","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"AAQA,UAAU,yBAAyB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,qEAAsE,yBAAyB,4CA2K/H,CAAA"}
1
+ {"version":3,"file":"SolidMessageComposer.d.ts","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"AAQA,UAAU,yBAAyB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,qEAAsE,yBAAyB,4CA6K/H,CAAA"}
@@ -99,6 +99,7 @@ export var SolidMessageComposer = function (_a) {
99
99
  _a.sent();
100
100
  setMessage('');
101
101
  setSelectedFiles([]);
102
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel();
102
103
  return [3 /*break*/, 4];
103
104
  case 3:
104
105
  error_1 = _a.sent();
@@ -120,7 +121,7 @@ export var SolidMessageComposer = function (_a) {
120
121
  ? "".concat((size / (1024 * 1024)).toFixed(1), " MB")
121
122
  : "".concat((size / 1024).toFixed(1), " KB");
122
123
  };
123
- return (_jsxs("form", { className: styles.chatterMessageComposer, onSubmit: handleSubmit, children: [_jsxs("div", { className: "".concat(styles.solidMessageWrapper, " flex flex-column gap-2 w-full"), children: [_jsx("div", { className: 'flex align-items-center justify-content-between', children: _jsx("p", { className: 'form-field-label m-0', children: type === 'email' ? 'Email Message' : 'Internal Note' }) }), _jsx(SolidTextarea, { value: message, onChange: function (e) { return setMessage(e.target.value); }, placeholder: type === 'email' ? 'Send a message to followers' : 'Log an internal note.', className: "w-full p-2", rows: 4 }), _jsxs("div", { className: 'flex align-items-center justify-content-between flex-wrap gap-2', children: [_jsxs("div", { className: 'flex align-items-center gap-2', children: [_jsx("input", { type: "file", ref: fileInputRef, onChange: handleFileSelect, multiple: true, style: { display: 'none' } }), _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", 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 gap-2', children: [_jsx(SolidButton, { type: 'submit', size: 'sm', className: 'gap-2 solid-purple-button', variant: 'primary', loading: isLoading, children: type === 'email' ? 'Send' : 'Log' }), _jsx(SolidButton, { type: 'button', size: 'sm', variant: 'ghost', onClick: function () {
124
+ return (_jsxs("form", { className: styles.chatterMessageComposer, onSubmit: handleSubmit, children: [_jsxs("div", { className: "".concat(styles.solidMessageWrapper, " flex flex-column gap-2 w-full"), children: [_jsx("div", { className: 'flex align-items-center justify-content-between', children: _jsx("p", { className: 'form-field-label m-0', children: type === 'email' ? 'Email Message' : 'Internal Note' }) }), _jsx(SolidTextarea, { value: message, onChange: function (e) { return setMessage(e.target.value); }, placeholder: type === 'email' ? 'Send a message to followers' : 'Log an internal note.', className: "w-full p-2", rows: 4 }), _jsxs("div", { className: 'flex align-items-center justify-content-between flex-wrap gap-2', children: [_jsxs("div", { className: 'flex align-items-center gap-2', children: [_jsx("input", { type: "file", ref: fileInputRef, onChange: handleFileSelect, multiple: true, style: { display: 'none' } }), _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", 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 gap-2', children: [_jsx(SolidButton, { type: 'submit', size: 'sm', className: 'gap-2 solid-purple-button', variant: 'primary', loading: isLoading, disabled: !message.trim() && selectedFiles.length === 0, children: type === 'email' ? 'Send' : 'Log' }), _jsx(SolidButton, { type: 'button', size: 'sm', variant: 'ghost', onClick: function () {
124
125
  setMessage('');
125
126
  setSelectedFiles([]);
126
127
  onCancel === null || onCancel === void 0 ? void 0 : onCancel();
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMessageComposer.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,2CAA2C,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAWrD,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,EAA2F;QAAzF,IAAI,UAAA,EAAE,iBAAiB,uBAAA,EAAE,OAAO,aAAA,EAAE,EAAE,QAAA,EAAE,QAAQ,cAAA,EAAE,YAAY,kBAAA;IACzF,IAAA,KAAwB,QAAQ,CAAC,EAAE,CAAC,EAAnC,OAAO,QAAA,EAAE,UAAU,QAAgB,CAAC;IACrC,IAAA,KAAoC,QAAQ,CAAS,EAAE,CAAC,EAAvD,aAAa,QAAA,EAAE,gBAAgB,QAAwB,CAAC;IAEzD,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAC3B,IAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEpD,qEAAqE;IAC/D,IAAA,KAA4D,+BAA+B,EAAE,EAA5F,oBAAoB,QAAA,EAAE,UAAiC,EAA/B,SAAS,eAAA,EAAE,SAAS,eAAA,EAAE,OAAO,aAAuC,CAAC;IAEpG,IAAM,UAAU,GAAG;QACf,kBAAkB;QAClB,oBAAoB;QACpB,kBAAkB;KACrB,CAAA;IAED,IAAM,gBAAgB,GAAG,UAAC,KAA0C;QAChE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACpB,IAAM,OAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,gBAAgB,CAAC,UAAA,IAAI,IAAI,uCAAI,IAAI,SAAK,OAAK,SAAlB,CAAmB,CAAC,CAAC;SACjD;IACL,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAO,CAAkB;;;;;oBAC1C,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;wBAAE,sBAAO;;;;oBAGhD,aAAW,IAAI,QAAQ,EAAE,CAAC;oBAChC,UAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;oBACzC,UAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;oBAC1C,UAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBACxC,UAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;oBACvC,UAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;oBAClD,UAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,KAAI,CAAC,CAAC,CAAC;oBAEzC,IAAI,YAAY;wBAAE,UAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;oBAChE,aAAa,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;wBAC9B,UAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;oBAEH,qBAAM,oBAAoB,CAAC,UAAQ,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAA7C,SAA6C,CAAC;oBAC9C,UAAU,CAAC,EAAE,CAAC,CAAC;oBACf,gBAAgB,CAAC,EAAE,CAAC,CAAC;;;;oBAErB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,OAAK,CAAC,CAAC;;;;;SAE7D,CAAC;IAEF,SAAS,CAAC;QACN,IAAI,SAAS,EAAE;YACX,OAAO,EAAE,CAAA;SACZ;IACL,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,IAAM,cAAc,GAAG,UAAC,IAAY;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI;YACtB,CAAC,CAAC,UAAG,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAK;YAC3C,CAAC,CAAC,UAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAK,CAAC;IAC3C,CAAC,CAAC;IAEF,OAAO,CACH,gBAAM,SAAS,EAAE,MAAM,CAAC,sBAAsB,EAAE,QAAQ,EAAE,YAAY,aAsBlE,eAAK,SAAS,EAAE,UAAG,MAAM,CAAC,mBAAmB,mCAAgC,aACzE,cAAK,SAAS,EAAC,iDAAiD,YAC5D,YAAG,SAAS,EAAC,sBAAsB,YAC9B,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,GACrD,GACF,EACN,KAAC,aAAa,IACV,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAA1B,CAA0B,EAC3C,WAAW,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,uBAAuB,EACvF,SAAS,EAAC,YAAY,EACtB,IAAI,EAAE,CAAC,GACT,EACF,eAAK,SAAS,EAAC,iEAAiE,aAC5E,eAAK,SAAS,EAAC,+BAA+B,aAC1C,gBACI,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,QACR,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAC5B,EACF,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,mBAAmB,EAC7B,QAAQ,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,EACjC,OAAO,EAAE,sBAAM,OAAA,MAAA,YAAY,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,gBACjC,cAAc,EACzB,KAAK,EAAC,cAAc,GACtB,EACF,eAAM,SAAS,EAAC,8BAA8B,4BAAmB,IAC/D,EACN,eAAK,SAAS,EAAC,+BAA+B,aAC1C,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,SAAS,YAEjB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GACxB,EACd,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,OAAO,EACf,OAAO,EAAE;4CACL,UAAU,CAAC,EAAE,CAAC,CAAC;4CACf,gBAAgB,CAAC,EAAE,CAAC,CAAC;4CACrB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,CAAC;wCACjB,CAAC,uBAGS,IACZ,IACJ,IACJ,EACL,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CACzB,cAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB,YACtC,aAAa,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CAChC,eAAiB,SAAS,EAAE,MAAM,CAAC,uBAAuB,aACtD,cAAK,SAAS,EAAE,MAAM,CAAC,uBAAuB,YAC1C,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,EACN,eAAK,SAAS,EAAE,MAAM,CAAC,uBAAuB,aAC1C,YAAG,SAAS,EAAE,MAAM,CAAC,uBAAuB,YAAG,IAAI,CAAC,IAAI,GAAK,EAC7D,eAAM,SAAS,EAAE,MAAM,CAAC,uBAAuB,YAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAQ,IACjF,EACN,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,mBAAmB,EAC7B,QAAQ,EAAE,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,EACzB,OAAO,EAAE,cAAM,OAAA,gBAAgB,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,KAAK,EAAX,CAAW,CAAC,EAAlC,CAAkC,CAAC,EAA5D,CAA4D,gBAC/D,iBAAU,IAAI,CAAC,IAAI,CAAE,GACnC,KAhBI,KAAK,CAiBT,CACT,EAnBmC,CAmBnC,CAAC,GACA,CACT,IACE,CACV,CAAA;AACL,CAAC,CAAA","sourcesContent":["import styles from './chatter.module.css'\nimport { useCreateChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi'\nimport { useEffect, useState, useRef } from 'react'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { useSession } from '../../../hooks/useSession'\nimport { SolidButton, SolidTextarea } from '../../shad-cn-ui'\nimport { FileText, Paperclip, X } from 'lucide-react'\n\ninterface SolidMessageComposerProps {\n type?: string;\n modelSingularName?: any;\n refetch?: any;\n id?: any;\n onCancel?: () => void;\n modelUserKey?: string;\n}\n\nexport const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onCancel, modelUserKey }: SolidMessageComposerProps) => {\n const [message, setMessage] = useState('');\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // const { data: viewLayoutData } = useGetSolidViewLayoutQuery(null);\n const [createChatterMessage, { isLoading, isSuccess, isError }] = useCreateChatterMessageMutation();\n\n const tempEmails = [\n \"johndoe@gmal.com\",\n \"tempmail@gmail.com\",\n \"example@mail.com\"\n ]\n\n const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.files) {\n const files = Array.from(event.target.files);\n setSelectedFiles(prev => [...prev, ...files]);\n }\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!message.trim() && selectedFiles.length === 0) return;\n\n try {\n const formData = new FormData();\n formData.append('messageType', \"custom\");\n formData.append('messageSubType', \"note\");\n formData.append('messageBody', message);\n formData.append('coModelEntityId', id);\n formData.append('coModelName', modelSingularName);\n formData.append('userId', user?.id || 1);\n\n if (modelUserKey) formData.append('modelUserKey', modelUserKey);\n selectedFiles.forEach((file, index) => {\n formData.append(`messageAttachments`, file);\n });\n\n await createChatterMessage(formData).unwrap();\n setMessage('');\n setSelectedFiles([]);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n };\n\n useEffect(() => {\n if (isSuccess) {\n refetch()\n }\n }, [isSuccess]);\n\n const formatFileSize = (size: number) => {\n if (!size) return \"\";\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n return (\n <form className={styles.chatterMessageComposer} onSubmit={handleSubmit}>\n {/* {type === 'email' &&\n <div className='flex align-items-center gap-1 text-sm mb-2'>\n <span className='font-bold'>To:</span>\n <div className={styles.chatterEmails}>\n {tempEmails.map((mail, index) => (\n <span key={index}>\n {mail}\n </span>\n ))}\n </div>\n <div className={`si si-sort-down-fill text-primary ${styles.emailTooltipIcon}`} style={{ fontSize: 8 }}>\n <div className={styles.emailsTooltip}>\n {tempEmails.map((mail, index) => (\n <span key={index} className='text-color text-sm'>\n {mail}\n </span>\n ))}\n </div>\n </div>\n </div>\n } */}\n <div className={`${styles.solidMessageWrapper} flex flex-column gap-2 w-full`}>\n <div className='flex align-items-center justify-content-between'>\n <p className='form-field-label m-0'>\n {type === 'email' ? 'Email Message' : 'Internal Note'}\n </p>\n </div>\n <SolidTextarea\n value={message}\n onChange={(e) => setMessage(e.target.value)}\n placeholder={type === 'email' ? 'Send a message to followers' : 'Log an internal note.'}\n className=\"w-full p-2\"\n rows={4}\n />\n <div className='flex align-items-center justify-content-between flex-wrap gap-2'>\n <div className='flex align-items-center gap-2'>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n />\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<Paperclip size={14} />}\n onClick={() => fileInputRef.current?.click()}\n aria-label=\"Attach files\"\n title=\"Attach files\"\n />\n <span className='text-xs text-color-secondary'>Attach file</span>\n </div>\n <div className='flex align-items-center gap-2'>\n <SolidButton\n type='submit'\n size='sm'\n className='gap-2 solid-purple-button'\n variant='primary'\n loading={isLoading}\n >\n {type === 'email' ? 'Send' : 'Log'}\n </SolidButton>\n <SolidButton\n type='button'\n size='sm'\n variant='ghost'\n onClick={() => {\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n }}\n >\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n {selectedFiles.length > 0 && (\n <div className={styles.chatterSelectedFiles}>\n {selectedFiles.map((file, index) => (\n <div key={index} className={styles.chatterSelectedFileCard}>\n <div className={styles.chatterSelectedFileIcon}>\n <FileText size={16} />\n </div>\n <div className={styles.chatterSelectedFileMeta}>\n <p className={styles.chatterSelectedFileName}>{file.name}</p>\n <span className={styles.chatterSelectedFileSize}>{formatFileSize(file.size)}</span>\n </div>\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<X size={12} />}\n onClick={() => setSelectedFiles(prev => prev.filter((_, i) => i !== index))}\n aria-label={`Remove ${file.name}`}\n />\n </div>\n ))}\n </div>\n )}\n </form>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidMessageComposer.js","sourceRoot":"","sources":["../../../../src/components/core/chatter/SolidMessageComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["import styles from './chatter.module.css'\nimport { useCreateChatterMessageMutation } from '../../../redux/api/solidChatterMessageApi'\nimport { useEffect, useState, useRef } from 'react'\nimport { ERROR_MESSAGES } from '../../../constants/error-messages'\nimport { useSession } from '../../../hooks/useSession'\nimport { SolidButton, SolidTextarea } from '../../shad-cn-ui'\nimport { FileText, Paperclip, X } from 'lucide-react'\n\ninterface SolidMessageComposerProps {\n type?: string;\n modelSingularName?: any;\n refetch?: any;\n id?: any;\n onCancel?: () => void;\n modelUserKey?: string;\n}\n\nexport const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onCancel, modelUserKey }: SolidMessageComposerProps) => {\n const [message, setMessage] = useState('');\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // const { data: viewLayoutData } = useGetSolidViewLayoutQuery(null);\n const [createChatterMessage, { isLoading, isSuccess, isError }] = useCreateChatterMessageMutation();\n\n const tempEmails = [\n \"johndoe@gmal.com\",\n \"tempmail@gmail.com\",\n \"example@mail.com\"\n ]\n\n const handleFileSelect = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.files) {\n const files = Array.from(event.target.files);\n setSelectedFiles(prev => [...prev, ...files]);\n }\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!message.trim() && selectedFiles.length === 0) return;\n\n try {\n const formData = new FormData();\n formData.append('messageType', \"custom\");\n formData.append('messageSubType', \"note\");\n formData.append('messageBody', message);\n formData.append('coModelEntityId', id);\n formData.append('coModelName', modelSingularName);\n formData.append('userId', user?.id || 1);\n\n if (modelUserKey) formData.append('modelUserKey', modelUserKey);\n selectedFiles.forEach((file, index) => {\n formData.append(`messageAttachments`, file);\n });\n\n await createChatterMessage(formData).unwrap();\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);\n }\n };\n\n useEffect(() => {\n if (isSuccess) {\n refetch()\n }\n }, [isSuccess]);\n\n const formatFileSize = (size: number) => {\n if (!size) return \"\";\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n return (\n <form className={styles.chatterMessageComposer} onSubmit={handleSubmit}>\n {/* {type === 'email' &&\n <div className='flex align-items-center gap-1 text-sm mb-2'>\n <span className='font-bold'>To:</span>\n <div className={styles.chatterEmails}>\n {tempEmails.map((mail, index) => (\n <span key={index}>\n {mail}\n </span>\n ))}\n </div>\n <div className={`si si-sort-down-fill text-primary ${styles.emailTooltipIcon}`} style={{ fontSize: 8 }}>\n <div className={styles.emailsTooltip}>\n {tempEmails.map((mail, index) => (\n <span key={index} className='text-color text-sm'>\n {mail}\n </span>\n ))}\n </div>\n </div>\n </div>\n } */}\n <div className={`${styles.solidMessageWrapper} flex flex-column gap-2 w-full`}>\n <div className='flex align-items-center justify-content-between'>\n <p className='form-field-label m-0'>\n {type === 'email' ? 'Email Message' : 'Internal Note'}\n </p>\n </div>\n <SolidTextarea\n value={message}\n onChange={(e) => setMessage(e.target.value)}\n placeholder={type === 'email' ? 'Send a message to followers' : 'Log an internal note.'}\n className=\"w-full p-2\"\n rows={4}\n />\n <div className='flex align-items-center justify-content-between flex-wrap gap-2'>\n <div className='flex align-items-center gap-2'>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n />\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<Paperclip size={14} />}\n onClick={() => fileInputRef.current?.click()}\n aria-label=\"Attach files\"\n title=\"Attach files\"\n />\n <span className='text-xs text-color-secondary'>Attach file</span>\n </div>\n <div className='flex align-items-center gap-2'>\n <SolidButton\n type='submit'\n size='sm'\n className='gap-2 solid-purple-button'\n variant='primary'\n loading={isLoading}\n disabled={!message.trim() && selectedFiles.length === 0}\n >\n {type === 'email' ? 'Send' : 'Log'}\n </SolidButton>\n <SolidButton\n type='button'\n size='sm'\n variant='ghost'\n onClick={() => {\n setMessage('');\n setSelectedFiles([]);\n onCancel?.();\n }}\n >\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n {selectedFiles.length > 0 && (\n <div className={styles.chatterSelectedFiles}>\n {selectedFiles.map((file, index) => (\n <div key={index} className={styles.chatterSelectedFileCard}>\n <div className={styles.chatterSelectedFileIcon}>\n <FileText size={16} />\n </div>\n <div className={styles.chatterSelectedFileMeta}>\n <p className={styles.chatterSelectedFileName}>{file.name}</p>\n <span className={styles.chatterSelectedFileSize}>{formatFileSize(file.size)}</span>\n </div>\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"solid-icon-button\"\n leftIcon={<X size={12} />}\n onClick={() => setSelectedFiles(prev => prev.filter((_, i) => i !== index))}\n aria-label={`Remove ${file.name}`}\n />\n </div>\n ))}\n </div>\n )}\n </form>\n )\n}\n"]}
@@ -60,6 +60,7 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC
60
60
  await createChatterMessage(formData).unwrap();
61
61
  setMessage('');
62
62
  setSelectedFiles([]);
63
+ onCancel?.();
63
64
  } catch (error) {
64
65
  console.error(ERROR_MESSAGES.FETCHING_MESSAGE, error);
65
66
  }
@@ -142,6 +143,7 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC
142
143
  className='gap-2 solid-purple-button'
143
144
  variant='primary'
144
145
  loading={isLoading}
146
+ disabled={!message.trim() && selectedFiles.length === 0}
145
147
  >
146
148
  {type === 'email' ? 'Send' : 'Log'}
147
149
  </SolidButton>
@@ -1 +1 @@
1
- {"version":3,"file":"FilterComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC;AAmKD,QAAA,MAAM,eAAe;;;;;;;6CAuMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"FilterComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC;AAsKD,QAAA,MAAM,eAAe;;;;;;;6CAuMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -89,7 +89,7 @@ var FilterRuleComponent = function (_a) {
89
89
  });
90
90
  setFilteredFields(filtered);
91
91
  };
92
- return (_jsxs("div", { className: 'solid-filter-rule-row', children: [_jsxs("div", { className: 'solid-filter-rule-main', children: [_jsx("div", { className: 'solid-filter-rule-field', children: _jsx("div", { className: 'solid-filter-control-wrap', children: _jsx(SolidAutocomplete, { value: fieldName.name, suggestions: filteredFields, completeMethod: searchFields, field: "name", dropdown: true, forceSelection // only values from list
92
+ return (_jsxs("div", { className: 'solid-filter-rule-row', children: [_jsxs("div", { className: 'solid-filter-rule-main', children: [_jsx("div", { className: 'solid-filter-rule-field', children: _jsx("div", { className: 'solid-filter-control-wrap', children: _jsx(SolidAutocomplete, { value: fieldName.name, suggestions: filteredFields, completeMethod: searchFields, field: "name", dropdown: true, portal: true, forceSelection // only values from list
93
93
  : true, placeholder: "Select Field", className: "w-full solid-filter-auto-complete-field solid-filter-compact-control", onChange: function (e) {
94
94
  setFieldName({ name: e.value }); // e.value will be an object or null
95
95
  if (e.value && typeof e.value === "object" && e.value.value) {
@@ -97,10 +97,12 @@ var FilterRuleComponent = function (_a) {
97
97
  }
98
98
  else {
99
99
  onChange(rule.id, 'fieldName', '');
100
+ onChange(rule.id, 'matchMode', null);
101
+ onChange(rule.id, 'value', '');
100
102
  }
101
103
  } }) }) }), _jsx("div", { className: 'solid-filter-rule-value', children: _jsx("div", { className: 'solid-filter-control-wrap', children: rule.fieldName ?
102
104
  _jsx(SolidFilterFields, { viewData: viewData, fieldMetadata: viewData.data.solidFieldsMetadata[rule.fieldName], onChange: onChange, index: rule.id, rule: rule })
103
- : _jsxs("div", { className: 'solid-filter-empty-pair', children: [_jsx(SolidInput, { disabled: true, value: rule.value || '', placeholder: "Operator", className: 'w-full solid-filter-compact-control' }), _jsx(SolidInput, { disabled: true, value: rule.value || '', placeholder: "Value", className: 'w-full solid-filter-compact-control' })] }) }) })] }), _jsxs("div", { className: 'solid-filter-rule-actions', children: [_jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddRule(rule.parentRule); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn', children: _jsx(Plus, { size: 14 }) }), _jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddGroup(rule.id); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn', children: _jsx(FolderPlus, { size: 14 }) }), _jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onDelete(rule.id); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn is-danger', children: _jsx(Trash2, { size: 14 }) })] }), rule.children && rule.children.map(function (nestedRule) { return (_jsx("div", { className: 'nested-custom-filter', children: nestedRule.type === FilterRuleType.RULE
105
+ : _jsxs("div", { className: 'solid-filter-empty-pair', children: [_jsx(SolidInput, { disabled: true, value: "", placeholder: "Operator", className: 'w-full solid-filter-compact-control' }), _jsx(SolidInput, { disabled: true, value: "", placeholder: "Value", className: 'w-full solid-filter-compact-control' })] }) }) })] }), _jsxs("div", { className: 'solid-filter-rule-actions', children: [_jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddRule(rule.parentRule); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn', children: _jsx(Plus, { size: 14 }) }), _jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddGroup(rule.id); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn', children: _jsx(FolderPlus, { size: 14 }) }), _jsx(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onDelete(rule.id); }, className: 'solid-filter-action-btn solid-filter-action-icon-btn is-danger', children: _jsx(Trash2, { size: 14 }) })] }), rule.children && rule.children.map(function (nestedRule) { return (_jsx("div", { className: 'nested-custom-filter', children: nestedRule.type === FilterRuleType.RULE
104
106
  ? _jsx(FilterRuleComponent, { viewData: viewData, fields: fields, rule: nestedRule, onChange: onChange, onAddRule: onAddRule, onAddGroup: onAddGroup, onDelete: onDelete, level: level + 1 }, nestedRule.id)
105
107
  : _jsx(FilterGroupComponent, { viewData: viewData, fields: fields, group: nestedRule, onChange: onChange, onAddRule: onAddRule, onAddGroup: onAddGroup, onDelete: onDelete, level: level + 1 }, nestedRule.id) }, nestedRule.id)); })] }));
106
108
  };