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

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 (286) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +19 -17
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +59 -34
  5. package/dist/components/common/BackendReconnectIndicator.d.ts +6 -0
  6. package/dist/components/common/BackendReconnectIndicator.d.ts.map +1 -0
  7. package/dist/components/common/BackendReconnectIndicator.js +25 -0
  8. package/dist/components/common/BackendReconnectIndicator.js.map +1 -0
  9. package/dist/components/common/BackendReconnectIndicator.tsx +45 -0
  10. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  11. package/dist/components/common/SettingsComponent.js +7 -3
  12. package/dist/components/common/SettingsComponent.js.map +1 -1
  13. package/dist/components/common/SettingsComponent.module.css +144 -12
  14. package/dist/components/common/SettingsComponent.tsx +22 -3
  15. package/dist/components/common/SolidAdmin.d.ts.map +1 -1
  16. package/dist/components/common/SolidAdmin.js +7 -2
  17. package/dist/components/common/SolidAdmin.js.map +1 -1
  18. package/dist/components/common/SolidAdmin.tsx +7 -2
  19. package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
  20. package/dist/components/common/SolidBreadcrumb.js +1 -6
  21. package/dist/components/common/SolidBreadcrumb.js.map +1 -1
  22. package/dist/components/common/SolidBreadcrumb.tsx +1 -8
  23. package/dist/components/common/SolidMaterialSymbol.d.ts +10 -0
  24. package/dist/components/common/SolidMaterialSymbol.d.ts.map +1 -0
  25. package/dist/components/common/SolidMaterialSymbol.js +69 -0
  26. package/dist/components/common/SolidMaterialSymbol.js.map +1 -0
  27. package/dist/components/common/SolidMaterialSymbol.tsx +96 -0
  28. package/dist/components/common/SolidToastProvider.d.ts.map +1 -1
  29. package/dist/components/common/SolidToastProvider.js +14 -1
  30. package/dist/components/common/SolidToastProvider.js.map +1 -1
  31. package/dist/components/common/SolidToastProvider.tsx +19 -1
  32. package/dist/components/core/card/CardGrid.d.ts +1 -1
  33. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  34. package/dist/components/core/card/CardGrid.js +2 -2
  35. package/dist/components/core/card/CardGrid.js.map +1 -1
  36. package/dist/components/core/card/CardGrid.tsx +4 -0
  37. package/dist/components/core/card/CardItem.d.ts +2 -0
  38. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  39. package/dist/components/core/card/CardItem.js +7 -2
  40. package/dist/components/core/card/CardItem.js.map +1 -1
  41. package/dist/components/core/card/CardItem.tsx +30 -8
  42. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  43. package/dist/components/core/card/SolidCardView.js +87 -21
  44. package/dist/components/core/card/SolidCardView.js.map +1 -1
  45. package/dist/components/core/card/SolidCardView.tsx +96 -40
  46. package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
  47. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  48. package/dist/components/core/card/SolidCardViewConfigure.js +9 -7
  49. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  50. package/dist/components/core/card/SolidCardViewConfigure.tsx +14 -1
  51. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +3 -1
  52. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  53. package/dist/components/core/common/SolidGlobalSearchElement.js +4 -3
  54. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  55. package/dist/components/core/common/SolidGlobalSearchElement.tsx +15 -19
  56. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  57. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +43 -16
  58. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  59. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +24 -2
  60. package/dist/components/core/form/SolidFormFooter.js +1 -1
  61. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  62. package/dist/components/core/form/SolidFormFooter.tsx +1 -1
  63. package/dist/components/core/form/SolidFormLayouts.js +1 -1
  64. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  65. package/dist/components/core/form/SolidFormLayouts.tsx +2 -2
  66. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  67. package/dist/components/core/form/fields/SolidMediaMultipleField.js +120 -56
  68. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  69. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +63 -50
  70. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/SolidMediaSingleField.js +115 -37
  72. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  73. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +36 -35
  74. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  75. package/dist/components/core/form/fields/SolidRichTextField.js +67 -4
  76. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  77. package/dist/components/core/form/fields/SolidRichTextField.tsx +89 -7
  78. package/dist/components/core/form/fields/mediaFieldUtils.d.ts +3 -0
  79. package/dist/components/core/form/fields/mediaFieldUtils.d.ts.map +1 -0
  80. package/dist/components/core/form/fields/mediaFieldUtils.js +30 -0
  81. package/dist/components/core/form/fields/mediaFieldUtils.js.map +1 -0
  82. package/dist/components/core/form/fields/mediaFieldUtils.ts +45 -0
  83. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  84. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +1 -1
  85. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  86. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +3 -1
  87. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  88. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +22 -23
  89. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  90. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +13 -7
  91. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  92. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +16 -11
  93. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  94. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +32 -18
  95. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.d.ts.map +1 -1
  96. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js +3 -1
  97. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js.map +1 -1
  98. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +11 -5
  99. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  100. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  101. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  102. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  103. package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
  104. package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
  105. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  106. package/dist/components/core/kanban/KanbanCard.js +10 -5
  107. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  108. package/dist/components/core/kanban/KanbanCard.tsx +28 -12
  109. package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
  110. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  111. package/dist/components/core/kanban/KanbanColumn.js +2 -2
  112. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  113. package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
  114. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  115. package/dist/components/core/kanban/SolidKanbanView.js +154 -25
  116. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  117. package/dist/components/core/kanban/SolidKanbanView.tsx +129 -16
  118. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
  119. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  120. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +13 -10
  121. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  122. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +18 -3
  123. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidDataTable.js +3 -2
  125. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  126. package/dist/components/core/list/SolidDataTable.tsx +3 -2
  127. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  128. package/dist/components/core/list/SolidListView.js +16 -5
  129. package/dist/components/core/list/SolidListView.js.map +1 -1
  130. package/dist/components/core/list/SolidListView.tsx +20 -8
  131. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  132. package/dist/components/core/list/SolidListViewColumn.js +1 -0
  133. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  134. package/dist/components/core/list/SolidListViewColumn.tsx +1 -0
  135. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  136. package/dist/components/core/list/columns/SolidShortTextColumn.js +7 -2
  137. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  138. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +7 -2
  139. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
  140. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +4 -1
  141. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
  142. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +5 -2
  143. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  144. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +2 -1
  145. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  146. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +2 -1
  147. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
  148. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +4 -1
  149. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
  150. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +5 -2
  151. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  152. package/dist/components/core/locales/SolidLocale.js +1 -1
  153. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  154. package/dist/components/core/locales/SolidLocale.tsx +1 -0
  155. package/dist/components/core/model/CreateModel.css +26 -0
  156. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  157. package/dist/components/core/model/FieldMetaData.js +21 -3
  158. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  159. package/dist/components/core/model/FieldMetaData.tsx +45 -4
  160. package/dist/components/core/model/FieldMetaDataForm.css +82 -0
  161. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -0
  162. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  163. package/dist/components/core/model/FieldMetaDataForm.js +246 -235
  164. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  165. package/dist/components/core/model/FieldMetaDataForm.tsx +46 -34
  166. package/dist/components/core/model/FieldSelector.js +1 -1
  167. package/dist/components/core/model/FieldSelector.js.map +1 -1
  168. package/dist/components/core/model/FieldSelector.tsx +1 -1
  169. package/dist/components/core/model/ModelMetaData.js +1 -1
  170. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  171. package/dist/components/core/model/ModelMetaData.tsx +1 -1
  172. package/dist/components/core/module/CreateModule.css +55 -2
  173. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  174. package/dist/components/core/module/CreateModule.js +2 -2
  175. package/dist/components/core/module/CreateModule.js.map +1 -1
  176. package/dist/components/core/module/CreateModule.tsx +3 -2
  177. package/dist/components/core/module/ModuleMetadataExplorer.css +27 -0
  178. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -1
  179. package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
  180. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
  181. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -0
  182. package/dist/components/core/tree/SolidTreeTable.d.ts +2 -1
  183. package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
  184. package/dist/components/core/tree/SolidTreeTable.js +2 -2
  185. package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
  186. package/dist/components/core/tree/SolidTreeTable.tsx +3 -1
  187. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  188. package/dist/components/core/tree/SolidTreeView.js +44 -16
  189. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  190. package/dist/components/core/tree/SolidTreeView.tsx +55 -24
  191. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  192. package/dist/components/core/users/CreateUser.js +45 -32
  193. package/dist/components/core/users/CreateUser.js.map +1 -1
  194. package/dist/components/core/users/CreateUser.tsx +15 -4
  195. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
  196. package/dist/components/layout/AdminHeaderActions.js +10 -9
  197. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  198. package/dist/components/layout/AdminHeaderActions.tsx +2 -0
  199. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  200. package/dist/components/layout/AppSidebar.js +2 -1
  201. package/dist/components/layout/AppSidebar.js.map +1 -1
  202. package/dist/components/layout/AppSidebar.tsx +12 -5
  203. package/dist/components/layout/SolidMenuItemIcon.d.ts +9 -0
  204. package/dist/components/layout/SolidMenuItemIcon.d.ts.map +1 -0
  205. package/dist/components/layout/SolidMenuItemIcon.js +20 -0
  206. package/dist/components/layout/SolidMenuItemIcon.js.map +1 -0
  207. package/dist/components/layout/SolidMenuItemIcon.tsx +45 -0
  208. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  209. package/dist/components/layout/navbar-two-menu.js +6 -7
  210. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  211. package/dist/components/layout/navbar-two-menu.tsx +4 -12
  212. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  213. package/dist/components/shad-cn-ui/SolidCodeEditor.js +30 -2
  214. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  215. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +38 -1
  216. package/dist/helpers/backendHealthMonitor.d.ts +39 -0
  217. package/dist/helpers/backendHealthMonitor.d.ts.map +1 -0
  218. package/dist/helpers/backendHealthMonitor.js +255 -0
  219. package/dist/helpers/backendHealthMonitor.js.map +1 -0
  220. package/dist/helpers/backendHealthMonitor.ts +177 -0
  221. package/dist/helpers/helpers.d.ts +1 -0
  222. package/dist/helpers/helpers.d.ts.map +1 -1
  223. package/dist/helpers/helpers.js +9 -0
  224. package/dist/helpers/helpers.js.map +1 -1
  225. package/dist/helpers/helpers.ts +11 -1
  226. package/dist/helpers/menuItemIcons.d.ts +34 -0
  227. package/dist/helpers/menuItemIcons.d.ts.map +1 -0
  228. package/dist/helpers/menuItemIcons.js +144 -0
  229. package/dist/helpers/menuItemIcons.js.map +1 -0
  230. package/dist/helpers/menuItemIcons.ts +191 -0
  231. package/dist/helpers/relationDisplay.d.ts +3 -0
  232. package/dist/helpers/relationDisplay.d.ts.map +1 -0
  233. package/dist/helpers/relationDisplay.js +92 -0
  234. package/dist/helpers/relationDisplay.js.map +1 -0
  235. package/dist/helpers/relationDisplay.ts +101 -0
  236. package/dist/helpers/settingsPayload.d.ts +1 -0
  237. package/dist/helpers/settingsPayload.d.ts.map +1 -1
  238. package/dist/helpers/settingsPayload.js.map +1 -1
  239. package/dist/helpers/settingsPayload.ts +1 -0
  240. package/dist/helpers/solidIcons.d.ts +2 -0
  241. package/dist/helpers/solidIcons.d.ts.map +1 -1
  242. package/dist/helpers/solidIcons.js +8 -0
  243. package/dist/helpers/solidIcons.js.map +1 -1
  244. package/dist/helpers/solidIcons.tsx +10 -1
  245. package/dist/helpers/waitForBackendAvailability.d.ts +1 -0
  246. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -1
  247. package/dist/helpers/waitForBackendAvailability.js +35 -22
  248. package/dist/helpers/waitForBackendAvailability.js.map +1 -1
  249. package/dist/helpers/waitForBackendAvailability.ts +18 -12
  250. package/dist/http/solidHttp.d.ts.map +1 -1
  251. package/dist/http/solidHttp.js +10 -4
  252. package/dist/http/solidHttp.js.map +1 -1
  253. package/dist/http/solidHttp.ts +9 -4
  254. package/dist/redux/api/datasourceIntrospectionApi.d.ts +4 -0
  255. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
  256. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
  257. package/dist/redux/api/datasourceIntrospectionApi.ts +4 -0
  258. package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
  259. package/dist/redux/api/fetchBaseQuery.js +9 -3
  260. package/dist/redux/api/fetchBaseQuery.js.map +1 -1
  261. package/dist/redux/api/fetchBaseQuery.tsx +9 -3
  262. package/dist/redux/store/StoreProvider.d.ts.map +1 -1
  263. package/dist/redux/store/StoreProvider.js +4 -3
  264. package/dist/redux/store/StoreProvider.js.map +1 -1
  265. package/dist/redux/store/StoreProvider.tsx +4 -3
  266. package/dist/redux/store/defaultStoreConfig.d.ts +5 -5
  267. package/dist/resources/globals.css +341 -49
  268. package/dist/resources/solid-custom.css +464 -11
  269. package/dist/resources/solid-responsive.css +31 -20
  270. package/dist/resources/solid-tailwind-generated.css +1 -1
  271. package/dist/routes/AppEventListener.d.ts.map +1 -1
  272. package/dist/routes/AppEventListener.js +23 -0
  273. package/dist/routes/AppEventListener.js.map +1 -1
  274. package/dist/routes/AppEventListener.tsx +29 -0
  275. package/dist/routes/pages/admin/core/DashboardPage.module.css +12 -0
  276. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +306 -3
  277. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  278. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +745 -393
  279. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  280. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1074 -420
  281. package/dist/routes/pages/admin/core/DatasourcesPage.css +15 -0
  282. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -1
  283. package/dist/routes/pages/admin/core/DatasourcesPage.js +7 -188
  284. package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -1
  285. package/dist/routes/pages/admin/core/DatasourcesPage.tsx +3 -393
  286. package/package.json +1 -1
@@ -27,6 +27,7 @@ import { SolidFieldTooltip } from "../../../../components/common/SolidFieldToolt
27
27
  import { ERROR_MESSAGES } from "../../../../constants/error-messages";
28
28
  import styles from "./solidFields.module.css";
29
29
  import { SolidIcon } from "../../../shad-cn-ui";
30
+ import { buildMediaFieldKey, getPersistedMediaId } from "./mediaFieldUtils";
30
31
  export class SolidMediaMultipleField implements ISolidField {
31
32
 
32
33
  private fieldContext: SolidFieldProps;
@@ -158,6 +159,7 @@ export class SolidMediaMultipleField implements ISolidField {
158
159
 
159
160
 
160
161
  export const DefaultMediaMultipleFormEditWidget = ({ formik, fieldContext, setLightboxUrls, setOpenLightbox }: SolidMediaFormFieldWidgetProps) => {
162
+ type MediaFileDetail = { name: string; type: string; size: number; mediaId: number | string | null; fileKey: string; fileUrl: string };
161
163
 
162
164
  const fieldMetadata = fieldContext.fieldMetadata;
163
165
  const fieldLayoutInfo = fieldContext.field;
@@ -176,8 +178,7 @@ export const DefaultMediaMultipleFormEditWidget = ({ formik, fieldContext, setLi
176
178
  const isFieldReadonly = formReadonly || fieldReadonly || readOnlyPermission;
177
179
 
178
180
  const [isDeleteImageDialogVisible, setDeleteImageDialogVisible] = useState(false);
179
- const [imageToBeDeletedData, setImageToBeDeletedData] = useState<any>();
180
- const [fileDetails, setFileDetails] = useState<{ name: string; type: string; size: number, id: number, fileUrl: string }[]>([]);
181
+ const [fileDetails, setFileDetails] = useState<MediaFileDetail[]>([]);
181
182
  const [selectedFileId, setSelectedFileId] = useState<string | null>(null);
182
183
  const [fileSizeError, setFileSizeError] = useState<string | null>(null);
183
184
 
@@ -186,63 +187,63 @@ export const DefaultMediaMultipleFormEditWidget = ({ formik, fieldContext, setLi
186
187
  ? `${(size / (1024 * 1024)).toFixed(1)} MB`
187
188
  : `${(size / 1024).toFixed(1)} KB`;
188
189
  };
189
- const [
190
- deleteMedia,
191
- { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },
192
- ] = useDeleteMediaMutation();
190
+ const [deleteMedia] = useDeleteMediaMutation();
193
191
  useEffect(() => {
194
192
  const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];
193
+ const objectUrls: string[] = [];
195
194
 
196
195
  if (Array.isArray(fieldValue) && fieldValue.length > 0) {
197
- const urls: string[] = [];
198
- const details: { name: string; type: string; size: number, id: any, fileUrl: string }[] = [];
199
- const objectUrls: string[] = [];
196
+ const details: MediaFileDetail[] = [];
200
197
  fieldValue.forEach((file: File | any) => {
201
198
  if (file instanceof File) {
202
- // New file (from local upload)
203
199
  const fileUrl = URL.createObjectURL(file);
204
- objectUrls.push(fileUrl); // Store URL for cleanup
205
- urls.push(fileUrl);
200
+ objectUrls.push(fileUrl);
206
201
 
207
202
  details.push({
208
203
  name: file.name,
209
204
  type: file.type,
210
205
  size: file.size,
211
- id: `${file.name}-${file.size}`,
212
- fileUrl: fileUrl // ✅ Store the generated object URL
206
+ mediaId: null,
207
+ fileKey: buildMediaFieldKey(file),
208
+ fileUrl: fileUrl
213
209
  });
214
210
  } else if (typeof file === "object" && file._full_url) {
215
- urls.push(file._full_url);
216
211
  details.push({
217
212
  name: file.originalFileName,
218
213
  type: file.mimeType,
219
214
  size: file.fileSize,
220
- id: file.id,
215
+ mediaId: getPersistedMediaId(file),
216
+ fileKey: buildMediaFieldKey(file),
221
217
  fileUrl: file._full_url
222
218
  });
223
219
  }
224
220
  });
225
221
  setFileDetails(details);
222
+ } else {
223
+ setFileDetails([]);
226
224
  }
225
+
226
+ return () => {
227
+ objectUrls.forEach((url) => URL.revokeObjectURL(url));
228
+ };
227
229
  }, [formik.values, fieldLayoutInfo.attrs.name]);
228
230
 
229
231
  const handleDropImages = (acceptedFiles: any[]) => {
230
232
  if (!acceptedFiles.length) return;
231
233
  setFileSizeError(null);
232
- const newFileDetails = [...fileDetails];
234
+ const existingFiles = Array.isArray(formik?.values[fieldLayoutInfo.attrs.name])
235
+ ? formik.values[fieldLayoutInfo.attrs.name]
236
+ : [];
233
237
  acceptedFiles.forEach((file) => {
234
- newFileDetails.push({ name: file.name, type: file.type, size: file.size, id: file.id, fileUrl: file._full_url });
235
238
  const reader = new FileReader();
236
239
  reader.readAsDataURL(file);
237
240
  });
238
241
 
239
- setFileDetails(newFileDetails);
240
-
241
242
  fieldContext.onChange(
242
243
  {
243
244
  target: {
244
245
  name: fieldLayoutInfo.attrs.name,
245
- value: acceptedFiles,
246
+ value: [...existingFiles, ...acceptedFiles],
246
247
  type: "text",
247
248
  },
248
249
  } as any,
@@ -250,41 +251,53 @@ export const DefaultMediaMultipleFormEditWidget = ({ formik, fieldContext, setLi
250
251
  );
251
252
  };
252
253
 
253
- const confirmDeleteFile = (fileId: any, deleteId: number) => {
254
+ const confirmDeleteFile = (fileId: string) => {
254
255
  setSelectedFileId(fileId);
255
256
  setDeleteImageDialogVisible(true);
256
- setImageToBeDeletedData(deleteId)
257
257
  };
258
258
 
259
- const deleteFile = () => {
260
- if (selectedFileId && imageToBeDeletedData) {
261
- // Remove file from UI before making API call
262
- setFileDetails((prev) => prev.filter((file) => `${file.name}-${file.size}` !== selectedFileId));
263
-
264
- deleteMedia(imageToBeDeletedData)
265
- .unwrap()
266
- .then(() => {
267
- // Update form state
268
- const nextValue = fileDetails.filter((file) => `${file.name}-${file.size}` !== selectedFileId);
269
- fieldContext.onChange(
270
- {
271
- target: {
272
- name: fieldLayoutInfo.attrs.name,
273
- value: nextValue,
274
- type: "text",
275
- },
276
- } as any,
277
- "onFieldChange"
278
- );
279
- })
280
- .catch((error) => {
281
- console.error(ERROR_MESSAGES.ERROR_DELETING_FILE, error);
282
- });
259
+ const deleteFile = async () => {
260
+ if (!selectedFileId) {
261
+ return;
262
+ }
263
+
264
+ const currentFiles = Array.isArray(formik?.values[fieldLayoutInfo.attrs.name])
265
+ ? formik.values[fieldLayoutInfo.attrs.name]
266
+ : [];
267
+ const fileToDelete = currentFiles.find((file: File | any) => buildMediaFieldKey(file) === selectedFileId);
283
268
 
269
+ if (!fileToDelete) {
284
270
  setDeleteImageDialogVisible(false);
285
271
  setShowAllFiles(false);
286
272
  setSelectedFileId(null);
273
+ return;
287
274
  }
275
+
276
+ try {
277
+ const persistedMediaId = getPersistedMediaId(fileToDelete);
278
+ if (persistedMediaId !== null) {
279
+ await deleteMedia(persistedMediaId).unwrap();
280
+ }
281
+
282
+ const nextValue = currentFiles.filter((file: File | any) => buildMediaFieldKey(file) !== selectedFileId);
283
+ fieldContext.onChange(
284
+ {
285
+ target: {
286
+ name: fieldLayoutInfo.attrs.name,
287
+ value: nextValue,
288
+ type: "text",
289
+ },
290
+ } as any,
291
+ "onFieldChange"
292
+ );
293
+ setFileDetails((prev) => prev.filter((file) => file.fileKey !== selectedFileId));
294
+ } catch (error) {
295
+ console.error(ERROR_MESSAGES.ERROR_DELETING_FILE, error);
296
+ }
297
+
298
+ setDeleteImageDialogVisible(false);
299
+ setShowAllFiles(false);
300
+ setSelectedFileId(null);
288
301
  };
289
302
 
290
303
  const {
@@ -402,7 +415,7 @@ export const DefaultMediaMultipleFormEditWidget = ({ formik, fieldContext, setLi
402
415
  className="solid-file-icon-btn is-danger"
403
416
  disabled={isFieldDisabled || isFieldReadonly}
404
417
  aria-label="Remove file"
405
- onClick={() => confirmDeleteFile(`${fileDetails[0].name}-${fileDetails[0].size}`, fileDetails[0].id)}
418
+ onClick={() => confirmDeleteFile(fileDetails[0].fileKey)}
406
419
  >
407
420
  <SolidIcon name="si-times" aria-hidden />
408
421
  </button>
@@ -441,7 +454,7 @@ export const DefaultMediaMultipleFormEditWidget = ({ formik, fieldContext, setLi
441
454
  <SolidDialogBody>
442
455
  {fileDetails.length > 1 &&
443
456
  fileDetails.map((file, index) => {
444
- const fileId = `${file.name}-${file.size}`;
457
+ const fileId = file.fileKey;
445
458
  return (
446
459
  <div key={fileId} className="solid-file-upload-wrapper">
447
460
  <div className="flex items-center md:gap-2">
@@ -464,7 +477,7 @@ export const DefaultMediaMultipleFormEditWidget = ({ formik, fieldContext, setLi
464
477
  className="solid-file-icon-btn is-danger"
465
478
  disabled={isFieldDisabled || isFieldReadonly}
466
479
  aria-label="Remove file"
467
- onClick={() => confirmDeleteFile(fileId, file?.id)}
480
+ onClick={() => confirmDeleteFile(fileId)}
468
481
  >
469
482
  <SolidIcon name="si-times" aria-hidden />
470
483
  </button>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaSingleField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaSingleField.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAM9E,qBAAa,qBAAsB,YAAW,WAAW;IAErD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAyD;IACjF,OAAO,CAAC,eAAe,CAAC,CAA0B;gBACtC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,EAC/G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;IAM7C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,YAAY,IAAI,GAAG;IAKnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAyC9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAMD,eAAO,MAAM,gCAAgC,+DAAgE,8BAA8B,4CA4U1I,CAAA;AAED,eAAO,MAAM,gCAAgC,+DAAgE,8BAA8B,4CAqH1I,CAAA"}
1
+ {"version":3,"file":"SolidMediaSingleField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaSingleField.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAO9E,qBAAa,qBAAsB,YAAW,WAAW;IAErD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAyD;IACjF,OAAO,CAAC,eAAe,CAAC,CAA0B;gBACtC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,EAC/G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;IAM7C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,YAAY,IAAI,GAAG;IAKnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAyC9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAMD,eAAO,MAAM,gCAAgC,+DAAgE,8BAA8B,4CA4U1I,CAAA;AAED,eAAO,MAAM,gCAAgC,+DAAgE,8BAA8B,4CAqH1I,CAAA"}
@@ -9,6 +9,42 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ 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;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
12
48
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
49
  import { DropzonePlaceholder } from "../../../../components/common/DropzonePlaceholder";
14
50
  import { useDeleteMediaMutation } from "../../../../redux/api/mediaApi";
@@ -26,6 +62,7 @@ import { SolidFieldTooltip } from "../../../../components/common/SolidFieldToolt
26
62
  import { ERROR_MESSAGES } from "../../../../constants/error-messages";
27
63
  import styles from "./solidFields.module.css";
28
64
  import { SolidIcon } from "../../../shad-cn-ui";
65
+ import { getPersistedMediaId } from "./mediaFieldUtils";
29
66
  var SolidMediaSingleField = /** @class */ (function () {
30
67
  function SolidMediaSingleField(fieldContext, setLightboxUrls, setOpenLightbox) {
31
68
  Object.defineProperty(this, "fieldContext", {
@@ -170,23 +207,17 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
170
207
  var isFieldDisabled = formDisabled || fieldDisabled;
171
208
  var isFieldReadonly = formReadonly || fieldReadonly || readOnlyPermission;
172
209
  var _q = useState(false), isDeleteImageDialogVisible = _q[0], setDeleteImageDialogVisible = _q[1];
173
- var _r = useState(), imageToBeDeletedData = _r[0], setImageToBeDeletedData = _r[1];
174
- var _s = useState(null), fileDetails = _s[0], setFileDetails = _s[1];
175
- var _t = useState(false), isReplaceImageDialogVisible = _t[0], setReplaceImageDialogVisible = _t[1];
176
- var _u = useState(null), newFileToUpload = _u[0], setNewFileToUpload = _u[1];
177
- var _v = useState(null), fileSizeError = _v[0], setFileSizeError = _v[1];
210
+ var _r = useState(null), fileDetails = _r[0], setFileDetails = _r[1];
211
+ var _s = useState(false), isReplaceImageDialogVisible = _s[0], setReplaceImageDialogVisible = _s[1];
212
+ var _t = useState(null), newFileToUpload = _t[0], setNewFileToUpload = _t[1];
213
+ var _u = useState(null), fileSizeError = _u[0], setFileSizeError = _u[1];
178
214
  var formatFileSize = function (size) {
179
215
  return size >= 1024 * 1024
180
216
  ? "".concat((size / (1024 * 1024)).toFixed(1), " MB")
181
217
  : "".concat((size / 1024).toFixed(1), " KB");
182
218
  };
183
- var _w = useDeleteMediaMutation(), deleteMedia = _w[0], _x = _w[1], isMediaDeleted = _x.isLoading, isDeleteMediaSuceess = _x.isSuccess, isMediaDeleteError = _x.isError, mediaDeleteError = _x.error, DeletedMedia = _x.data;
184
- var handleCancelUpload = function (e) {
185
- e.stopPropagation();
186
- if (imageToBeDeletedData) {
187
- deleteMedia(imageToBeDeletedData);
188
- }
189
- e.stopPropagation();
219
+ var deleteMedia = useDeleteMediaMutation()[0];
220
+ var clearSelectedFile = function () {
190
221
  setFileDetails(null);
191
222
  fieldContext.onChange({
192
223
  target: {
@@ -195,8 +226,48 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
195
226
  type: "text",
196
227
  },
197
228
  }, "onFieldChange");
198
- setDeleteImageDialogVisible(false);
199
229
  };
230
+ var deletePersistedMediaIfNeeded = function (value) { return __awaiter(void 0, void 0, void 0, function () {
231
+ var mediaId;
232
+ return __generator(this, function (_a) {
233
+ switch (_a.label) {
234
+ case 0:
235
+ console.log("DeletePersistedMedia Called");
236
+ mediaId = getPersistedMediaId(value);
237
+ if (!(mediaId !== null)) return [3 /*break*/, 2];
238
+ return [4 /*yield*/, deleteMedia(mediaId).unwrap()];
239
+ case 1:
240
+ _a.sent();
241
+ _a.label = 2;
242
+ case 2: return [2 /*return*/];
243
+ }
244
+ });
245
+ }); };
246
+ var handleCancelUpload = function (e) { return __awaiter(void 0, void 0, void 0, function () {
247
+ var error_1;
248
+ return __generator(this, function (_a) {
249
+ switch (_a.label) {
250
+ case 0:
251
+ console.log("handleCancelUpload called");
252
+ e.stopPropagation();
253
+ _a.label = 1;
254
+ case 1:
255
+ _a.trys.push([1, 3, , 4]);
256
+ return [4 /*yield*/, deletePersistedMediaIfNeeded(formik === null || formik === void 0 ? void 0 : formik.values[fieldLayoutInfo.attrs.name])];
257
+ case 2:
258
+ _a.sent();
259
+ clearSelectedFile();
260
+ return [3 /*break*/, 4];
261
+ case 3:
262
+ error_1 = _a.sent();
263
+ console.error(ERROR_MESSAGES.ERROR_DELETING_FILE, error_1);
264
+ return [3 /*break*/, 4];
265
+ case 4:
266
+ setDeleteImageDialogVisible(false);
267
+ return [2 /*return*/];
268
+ }
269
+ });
270
+ }); };
200
271
  var handleDropImage = function (acceptedFiles) {
201
272
  var file = acceptedFiles[0];
202
273
  if (!file)
@@ -229,26 +300,32 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
229
300
  },
230
301
  }, "onFieldChange");
231
302
  };
232
- var handleReplaceFile = function () {
233
- // Delete the existing file first
234
- if (imageToBeDeletedData) {
235
- deleteMedia(imageToBeDeletedData);
236
- }
237
- setFileDetails(null);
238
- fieldContext.onChange({
239
- target: {
240
- name: fieldLayoutInfo.attrs.name,
241
- value: null,
242
- type: "text",
243
- },
244
- }, "onFieldChange");
245
- // Proceed with uploading new file
246
- if (newFileToUpload) {
247
- uploadFile(newFileToUpload);
248
- setNewFileToUpload(null);
249
- }
250
- setReplaceImageDialogVisible(false);
251
- };
303
+ var handleReplaceFile = function () { return __awaiter(void 0, void 0, void 0, function () {
304
+ var error_2;
305
+ return __generator(this, function (_a) {
306
+ switch (_a.label) {
307
+ case 0:
308
+ _a.trys.push([0, 2, , 3]);
309
+ return [4 /*yield*/, deletePersistedMediaIfNeeded(formik === null || formik === void 0 ? void 0 : formik.values[fieldLayoutInfo.attrs.name])];
310
+ case 1:
311
+ _a.sent();
312
+ clearSelectedFile();
313
+ // Proceed with uploading new file
314
+ if (newFileToUpload) {
315
+ uploadFile(newFileToUpload);
316
+ setNewFileToUpload(null);
317
+ }
318
+ return [3 /*break*/, 3];
319
+ case 2:
320
+ error_2 = _a.sent();
321
+ console.error(ERROR_MESSAGES.ERROR_DELETING_FILE, error_2);
322
+ return [3 /*break*/, 3];
323
+ case 3:
324
+ setReplaceImageDialogVisible(false);
325
+ return [2 /*return*/];
326
+ }
327
+ });
328
+ }); };
252
329
  useEffect(function () {
253
330
  var fieldValue = formik === null || formik === void 0 ? void 0 : formik.values[fieldLayoutInfo.attrs.name];
254
331
  if (fieldValue && typeof fieldValue === "object") {
@@ -271,13 +348,14 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
271
348
  fileUrl: fileUrl,
272
349
  fileSize: fileSize
273
350
  });
274
- // Set file ID for delete operation
275
- setImageToBeDeletedData(fieldValue.id);
276
351
  // Ensure formik has the correct value
277
352
  formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);
278
353
  }
354
+ else {
355
+ setFileDetails(null);
356
+ }
279
357
  }, [formik.values, fieldLayoutInfo.attrs.name]);
280
- var _y = useDropzone({
358
+ var _v = useDropzone({
281
359
  onDrop: handleDropImage,
282
360
  onDropRejected: function (fileRejections) {
283
361
  var _a;
@@ -293,7 +371,7 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
293
371
  accept: getAcceptedFileTypes(fieldMetadata.mediaTypes),
294
372
  maxSize: fieldMetadata.mediaMaxSizeKb * 1024,
295
373
  disabled: isFieldDisabled || isFieldReadonly
296
- }), getRootProps = _y.getRootProps, getInputProps = _y.getInputProps, isDragActive = _y.isDragActive;
374
+ }), getRootProps = _v.getRootProps, getInputProps = _v.getInputProps, isDragActive = _v.isDragActive;
297
375
  var isFormFieldValid = function (formik, fieldName) { return formik.touched[fieldName] && formik.errors[fieldName]; };
298
376
  var DynamicWidget = getExtensionComponent("SolidFormFieldViewMediaSingleWidget");
299
377
  var widgetProps = {