@firecms/core 3.0.0-canary.19 → 3.0.0-canary.190

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 (375) hide show
  1. package/README.md +3 -3
  2. package/dist/app/AppBar.d.ts +12 -0
  3. package/dist/app/Drawer.d.ts +16 -0
  4. package/dist/app/Scaffold.d.ts +30 -0
  5. package/dist/app/index.d.ts +4 -0
  6. package/dist/app/useApp.d.ts +16 -0
  7. package/dist/components/ArrayContainer.d.ts +23 -6
  8. package/dist/components/CircularProgressCenter.d.ts +1 -1
  9. package/dist/components/ClearFilterSortButton.d.ts +5 -0
  10. package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
  11. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +13 -13
  12. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
  13. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
  14. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
  15. package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
  16. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
  17. package/dist/components/EntityCollectionTable/index.d.ts +1 -1
  18. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
  19. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
  20. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
  21. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +16 -2
  22. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
  23. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  24. package/dist/components/EntityPreview.d.ts +5 -4
  25. package/dist/components/ErrorView.d.ts +1 -1
  26. package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
  27. package/dist/components/HomePage/NavigationCardBinding.d.ts +1 -1
  28. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  29. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  30. package/dist/components/ReferenceWidget.d.ts +3 -1
  31. package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
  32. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
  33. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  34. package/dist/components/VirtualTable/VirtualTableProps.d.ts +28 -12
  35. package/dist/components/VirtualTable/types.d.ts +3 -3
  36. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
  37. package/dist/components/common/index.d.ts +2 -1
  38. package/dist/components/common/table_height.d.ts +5 -0
  39. package/dist/components/common/types.d.ts +4 -6
  40. package/dist/components/common/useColumnsIds.d.ts +3 -1
  41. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
  42. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  43. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  44. package/dist/components/index.d.ts +4 -2
  45. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  46. package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
  47. package/dist/core/DefaultDrawer.d.ts +19 -0
  48. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  49. package/dist/core/EntityEditView.d.ts +31 -10
  50. package/dist/core/EntityForm.d.ts +43 -0
  51. package/dist/core/FireCMS.d.ts +2 -2
  52. package/dist/core/FireCMSRouter.d.ts +4 -0
  53. package/dist/core/NavigationRoutes.d.ts +2 -3
  54. package/dist/core/index.d.ts +4 -4
  55. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  56. package/dist/form/components/ErrorFocus.d.ts +1 -1
  57. package/dist/form/components/FieldHelperText.d.ts +3 -3
  58. package/dist/form/components/FormEntry.d.ts +6 -0
  59. package/dist/form/components/FormLayout.d.ts +5 -0
  60. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  61. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  62. package/dist/form/components/StorageItemPreview.d.ts +4 -4
  63. package/dist/form/components/index.d.ts +3 -1
  64. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  65. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  66. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  67. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  68. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  69. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  70. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  71. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  72. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  73. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  74. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  75. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -5
  76. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  77. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  78. package/dist/form/index.d.ts +3 -5
  79. package/dist/form/useClearRestoreValue.d.ts +2 -2
  80. package/dist/hooks/data/delete.d.ts +4 -4
  81. package/dist/hooks/data/save.d.ts +4 -5
  82. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  83. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  84. package/dist/hooks/index.d.ts +1 -0
  85. package/dist/hooks/useAuthController.d.ts +1 -1
  86. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  87. package/dist/hooks/useBuildNavigationController.d.ts +7 -5
  88. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  89. package/dist/hooks/useModeController.d.ts +1 -2
  90. package/dist/hooks/useProjectLog.d.ts +8 -2
  91. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  92. package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
  93. package/dist/index.d.ts +1 -0
  94. package/dist/index.es.js +21912 -14304
  95. package/dist/index.es.js.map +1 -1
  96. package/dist/index.umd.js +24287 -588
  97. package/dist/index.umd.js.map +1 -1
  98. package/dist/internal/useBuildDataSource.d.ts +1 -16
  99. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  100. package/dist/preview/PropertyPreviewProps.d.ts +6 -1
  101. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  102. package/dist/preview/components/ReferencePreview.d.ts +3 -2
  103. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  104. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  105. package/dist/preview/util.d.ts +3 -3
  106. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  107. package/dist/routes/FireCMSRoute.d.ts +1 -0
  108. package/dist/routes/HomePageRoute.d.ts +3 -0
  109. package/dist/types/auth.d.ts +8 -10
  110. package/dist/types/collections.d.ts +71 -22
  111. package/dist/types/datasource.d.ts +52 -36
  112. package/dist/types/dialogs_controller.d.ts +7 -3
  113. package/dist/types/entities.d.ts +7 -2
  114. package/dist/types/entity_actions.d.ts +28 -4
  115. package/dist/types/entity_callbacks.d.ts +16 -16
  116. package/dist/types/entity_overrides.d.ts +2 -2
  117. package/dist/types/export_import.d.ts +4 -4
  118. package/dist/types/fields.d.ts +75 -40
  119. package/dist/types/firecms.d.ts +6 -2
  120. package/dist/types/firecms_context.d.ts +1 -1
  121. package/dist/types/index.d.ts +0 -1
  122. package/dist/types/navigation.d.ts +32 -14
  123. package/dist/types/permissions.d.ts +4 -4
  124. package/dist/types/plugins.d.ts +23 -12
  125. package/dist/types/properties.d.ts +52 -24
  126. package/dist/types/property_config.d.ts +0 -2
  127. package/dist/types/side_dialogs_controller.d.ts +10 -0
  128. package/dist/types/side_entity_controller.d.ts +1 -1
  129. package/dist/types/storage.d.ts +86 -3
  130. package/dist/types/user.d.ts +1 -0
  131. package/dist/util/builders.d.ts +3 -3
  132. package/dist/util/entities.d.ts +3 -3
  133. package/dist/util/entity_actions.d.ts +2 -0
  134. package/dist/util/entity_cache.d.ts +23 -0
  135. package/dist/util/icon_list.d.ts +5 -1
  136. package/dist/util/icon_synonyms.d.ts +1 -98
  137. package/dist/util/icons.d.ts +6 -3
  138. package/dist/util/index.d.ts +2 -0
  139. package/dist/util/navigation_from_path.d.ts +5 -1
  140. package/dist/util/navigation_utils.d.ts +14 -3
  141. package/dist/util/objects.d.ts +2 -1
  142. package/dist/util/permissions.d.ts +4 -4
  143. package/dist/util/plurals.d.ts +0 -2
  144. package/dist/util/property_utils.d.ts +3 -3
  145. package/dist/util/resolutions.d.ts +30 -16
  146. package/dist/util/storage.d.ts +23 -2
  147. package/dist/util/useStorageUploadController.d.ts +3 -3
  148. package/package.json +61 -48
  149. package/src/app/AppBar.tsx +18 -0
  150. package/src/app/Drawer.tsx +24 -0
  151. package/src/app/Scaffold.tsx +243 -0
  152. package/src/app/index.ts +4 -0
  153. package/src/app/useApp.tsx +32 -0
  154. package/src/components/ArrayContainer.tsx +126 -40
  155. package/src/components/CircularProgressCenter.tsx +2 -2
  156. package/src/components/ClearFilterSortButton.tsx +41 -0
  157. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
  158. package/src/components/DeleteEntityDialog.tsx +10 -19
  159. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +54 -37
  160. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
  161. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
  162. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -39
  163. package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
  164. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
  165. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
  166. package/src/components/EntityCollectionTable/index.tsx +1 -1
  167. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +31 -36
  168. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
  169. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  170. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +86 -77
  171. package/src/components/EntityCollectionView/EntityCollectionView.tsx +206 -112
  172. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +4 -2
  173. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  174. package/src/components/EntityCollectionView/useSelectionController.tsx +20 -7
  175. package/src/components/EntityCollectionView/utils.ts +19 -0
  176. package/src/components/EntityPreview.tsx +62 -52
  177. package/src/components/EntityView.tsx +10 -10
  178. package/src/components/ErrorView.tsx +4 -4
  179. package/src/components/HomePage/DefaultHomePage.tsx +26 -19
  180. package/src/components/HomePage/FavouritesView.tsx +6 -11
  181. package/src/components/HomePage/NavigationCard.tsx +3 -3
  182. package/src/components/HomePage/NavigationCardBinding.tsx +5 -10
  183. package/src/components/HomePage/NavigationGroup.tsx +2 -2
  184. package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
  185. package/src/components/NotFoundPage.tsx +2 -2
  186. package/src/components/PropertyConfigBadge.tsx +9 -3
  187. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  188. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +19 -13
  189. package/src/components/ReferenceWidget.tsx +21 -11
  190. package/src/components/SearchIconsView.tsx +10 -7
  191. package/src/components/SelectableTable/SelectableTable.tsx +27 -12
  192. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
  193. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
  194. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
  195. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
  196. package/src/components/UnsavedChangesDialog.tsx +42 -0
  197. package/src/components/VirtualTable/VirtualTable.tsx +96 -48
  198. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  199. package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
  200. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  201. package/src/components/VirtualTable/VirtualTableProps.tsx +33 -14
  202. package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
  203. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
  204. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +3 -2
  205. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  206. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  207. package/src/components/VirtualTable/types.tsx +2 -3
  208. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +33 -40
  209. package/src/components/common/index.ts +2 -1
  210. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  211. package/src/components/common/types.tsx +4 -6
  212. package/src/components/common/useColumnsIds.tsx +24 -3
  213. package/src/components/common/useDataSourceTableController.tsx +420 -0
  214. package/src/components/common/useDebouncedCallback.tsx +20 -0
  215. package/src/components/common/useScrollRestoration.tsx +68 -0
  216. package/src/components/common/useTableSearchHelper.ts +53 -12
  217. package/src/components/index.tsx +4 -2
  218. package/src/contexts/BreacrumbsContext.tsx +38 -0
  219. package/src/contexts/DialogsProvider.tsx +5 -4
  220. package/src/contexts/ModeController.tsx +1 -3
  221. package/src/contexts/SnackbarProvider.tsx +2 -0
  222. package/src/core/DefaultAppBar.tsx +207 -0
  223. package/src/core/DefaultDrawer.tsx +185 -0
  224. package/src/core/DrawerNavigationItem.tsx +66 -0
  225. package/src/core/EntityEditView.tsx +407 -458
  226. package/src/core/EntityForm.tsx +956 -0
  227. package/src/core/EntitySidePanel.tsx +80 -17
  228. package/src/core/FireCMS.tsx +56 -49
  229. package/src/core/FireCMSRouter.tsx +17 -0
  230. package/src/core/NavigationRoutes.tsx +28 -38
  231. package/src/core/SideDialogs.tsx +12 -6
  232. package/src/core/field_configs.tsx +11 -12
  233. package/src/core/index.tsx +6 -5
  234. package/src/form/PropertyFieldBinding.tsx +85 -44
  235. package/src/form/components/CustomIdField.tsx +6 -2
  236. package/src/form/components/FieldHelperText.tsx +4 -4
  237. package/src/form/components/FormEntry.tsx +22 -0
  238. package/src/form/components/FormLayout.tsx +16 -0
  239. package/src/form/components/LabelWithIcon.tsx +30 -19
  240. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  241. package/src/form/components/StorageItemPreview.tsx +22 -12
  242. package/src/form/components/StorageUploadProgress.tsx +4 -5
  243. package/src/form/components/index.tsx +3 -1
  244. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +31 -19
  245. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -35
  246. package/src/form/field_bindings/BlockFieldBinding.tsx +56 -34
  247. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
  248. package/src/form/field_bindings/KeyValueFieldBinding.tsx +60 -51
  249. package/src/form/field_bindings/MapFieldBinding.tsx +71 -54
  250. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +153 -0
  251. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +25 -20
  252. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
  253. package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
  254. package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -35
  255. package/src/form/field_bindings/SelectFieldBinding.tsx +22 -14
  256. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +42 -50
  257. package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
  258. package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
  259. package/src/form/index.tsx +4 -9
  260. package/src/form/useClearRestoreValue.tsx +2 -2
  261. package/src/form/validation.ts +13 -23
  262. package/src/hooks/data/delete.ts +6 -5
  263. package/src/hooks/data/save.ts +13 -9
  264. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  265. package/src/hooks/data/useDataSource.tsx +11 -3
  266. package/src/hooks/data/useEntityFetch.tsx +10 -6
  267. package/src/hooks/index.tsx +1 -0
  268. package/src/hooks/useAuthController.tsx +1 -1
  269. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  270. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
  271. package/src/hooks/useBuildModeController.tsx +22 -29
  272. package/src/hooks/useBuildNavigationController.tsx +159 -52
  273. package/src/hooks/useFireCMSContext.tsx +5 -5
  274. package/src/hooks/useLargeLayout.tsx +0 -35
  275. package/src/hooks/useModeController.tsx +1 -2
  276. package/src/hooks/useProjectLog.tsx +32 -10
  277. package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
  278. package/src/hooks/useValidateAuthenticator.tsx +17 -37
  279. package/src/index.ts +1 -0
  280. package/src/internal/useBuildDataSource.ts +72 -82
  281. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  282. package/src/internal/useBuildSideEntityController.tsx +230 -70
  283. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  284. package/src/preview/PropertyPreview.tsx +17 -24
  285. package/src/preview/PropertyPreviewProps.tsx +7 -1
  286. package/src/preview/components/BooleanPreview.tsx +2 -2
  287. package/src/preview/components/EmptyValue.tsx +1 -1
  288. package/src/preview/components/EnumValuesChip.tsx +2 -2
  289. package/src/preview/components/ImagePreview.tsx +25 -36
  290. package/src/preview/components/ReferencePreview.tsx +22 -33
  291. package/src/preview/components/StorageThumbnail.tsx +5 -1
  292. package/src/preview/components/UrlComponentPreview.tsx +60 -28
  293. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
  294. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
  295. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
  296. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
  297. package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
  298. package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
  299. package/src/preview/property_previews/MapPropertyPreview.tsx +12 -11
  300. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
  301. package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
  302. package/src/preview/util.ts +10 -10
  303. package/src/routes/CustomCMSRoute.tsx +21 -0
  304. package/src/routes/FireCMSRoute.tsx +223 -0
  305. package/src/routes/HomePageRoute.tsx +17 -0
  306. package/src/types/auth.tsx +9 -13
  307. package/src/types/collections.ts +87 -27
  308. package/src/types/customization_controller.tsx +0 -1
  309. package/src/types/datasource.ts +61 -43
  310. package/src/types/dialogs_controller.tsx +7 -3
  311. package/src/types/entities.ts +12 -2
  312. package/src/types/entity_actions.tsx +32 -7
  313. package/src/types/entity_callbacks.ts +18 -18
  314. package/src/types/entity_overrides.tsx +2 -2
  315. package/src/types/export_import.ts +4 -4
  316. package/src/types/fields.tsx +86 -44
  317. package/src/types/firecms.tsx +7 -2
  318. package/src/types/firecms_context.tsx +1 -1
  319. package/src/types/index.ts +0 -1
  320. package/src/types/navigation.ts +38 -18
  321. package/src/types/permissions.ts +5 -5
  322. package/src/types/plugins.tsx +25 -14
  323. package/src/types/properties.ts +60 -25
  324. package/src/types/property_config.tsx +0 -2
  325. package/src/types/side_dialogs_controller.tsx +13 -0
  326. package/src/types/side_entity_controller.tsx +1 -1
  327. package/src/types/storage.ts +94 -3
  328. package/src/types/user.ts +2 -0
  329. package/src/util/builders.ts +10 -8
  330. package/src/util/entities.ts +9 -6
  331. package/src/util/entity_actions.ts +28 -0
  332. package/src/util/entity_cache.ts +204 -0
  333. package/src/util/enums.ts +1 -1
  334. package/src/util/icon_list.ts +16 -10
  335. package/src/util/icon_synonyms.ts +3 -100
  336. package/src/util/icons.tsx +17 -7
  337. package/src/util/index.ts +2 -0
  338. package/src/util/join_collections.ts +3 -0
  339. package/src/util/make_properties_editable.ts +13 -5
  340. package/src/util/navigation_from_path.ts +10 -2
  341. package/src/util/navigation_utils.ts +59 -7
  342. package/src/util/objects.ts +45 -28
  343. package/src/util/parent_references_from_path.ts +3 -3
  344. package/src/util/permissions.ts +9 -8
  345. package/src/util/plurals.ts +0 -2
  346. package/src/util/property_utils.tsx +11 -4
  347. package/src/util/references.ts +11 -2
  348. package/src/util/resolutions.ts +79 -46
  349. package/src/util/storage.ts +79 -21
  350. package/src/util/strings.ts +2 -2
  351. package/src/util/useStorageUploadController.tsx +71 -27
  352. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  353. package/dist/components/VirtualTable/common.d.ts +0 -2
  354. package/dist/core/Drawer.d.ts +0 -23
  355. package/dist/core/Scaffold.d.ts +0 -55
  356. package/dist/core/SideEntityView.d.ts +0 -7
  357. package/dist/form/EntityForm.d.ts +0 -77
  358. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  359. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  360. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  361. package/dist/internal/useLocaleConfig.d.ts +0 -1
  362. package/dist/types/appcheck.d.ts +0 -26
  363. package/src/components/FireCMSAppBar.tsx +0 -165
  364. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
  365. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
  366. package/src/core/Drawer.tsx +0 -191
  367. package/src/core/Scaffold.tsx +0 -281
  368. package/src/core/SideEntityView.tsx +0 -38
  369. package/src/form/EntityForm.tsx +0 -728
  370. package/src/form/components/FormikArrayContainer.tsx +0 -44
  371. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  372. package/src/internal/useBuildCustomizationController.tsx +0 -5
  373. package/src/internal/useLocaleConfig.tsx +0 -18
  374. package/src/types/appcheck.ts +0 -29
  375. /package/src/util/{common.tsx → common.ts} +0 -0
@@ -1,5 +1,4 @@
1
1
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from "react";
2
- import equal from "react-fast-compare"
3
2
 
4
3
  import * as Portal from "@radix-ui/react-portal";
5
4
 
@@ -19,20 +18,20 @@ import { useDraggable } from "./useDraggable";
19
18
  import { CustomFieldValidator, getYupEntitySchema } from "../../../../form/validation";
20
19
  import { useWindowSize } from "./useWindowSize";
21
20
  import { ElementResizeListener } from "./ElementResizeListener";
22
- import { ErrorView } from "../../../ErrorView";
23
21
  import { getPropertyInPath, isReadOnly, resolveCollection } from "../../../../util";
24
- import { Button, ClearIcon, DialogActions, IconButton, Typography } from "@firecms/ui";
22
+ import { Button, CloseIcon, DialogActions, IconButton, Typography } from "@firecms/ui";
25
23
  import { PropertyFieldBinding } from "../../../../form";
26
- import { useCustomizationController, useFireCMSContext } from "../../../../hooks";
24
+ import { useCustomizationController, useDataSource, useFireCMSContext } from "../../../../hooks";
27
25
  import { OnCellValueChangeParams } from "../../../common";
26
+ import { yupToFormErrors } from "../../../../core/EntityForm";
28
27
 
29
28
  interface PopupFormFieldProps<M extends Record<string, any>> {
30
- entity?: Entity<M>;
31
29
  customFieldValidator?: CustomFieldValidator;
32
30
  path: string;
31
+ entityId: string;
33
32
  tableKey: string;
34
33
  propertyKey?: Extract<keyof M, string>;
35
- collection?: EntityCollection<M>;
34
+ collection?: EntityCollection<any>;
36
35
  cellRect?: DOMRect;
37
36
  open: boolean;
38
37
  onClose: () => void;
@@ -41,18 +40,59 @@ interface PopupFormFieldProps<M extends Record<string, any>> {
41
40
  * Callback when the value of a cell has been edited
42
41
  * @param params
43
42
  */
44
- onCellValueChange?: (params: OnCellValueChangeParams<any, M>) => Promise<void> | void;
43
+ onCellValueChange?: (params: OnCellValueChangeParams<any, any>) => Promise<void> | void;
45
44
  }
46
45
 
47
46
  export function PopupFormField<M extends Record<string, any>>(props: PopupFormFieldProps<M>) {
48
47
  if (!props.open) return null;
49
- return <PopupFormFieldInternal {...props} />;
48
+ return <PopupFormFieldLoading {...props} />;
50
49
 
51
50
  }
52
51
 
52
+ export function PopupFormFieldLoading<M extends Record<string, any>>({
53
+ tableKey,
54
+ entityId,
55
+ customFieldValidator,
56
+ propertyKey,
57
+ collection: inputCollection,
58
+ path,
59
+ cellRect,
60
+ open,
61
+ onClose,
62
+ onCellValueChange,
63
+ container
64
+ }: PopupFormFieldProps<M>) {
65
+ const dataSource = useDataSource();
66
+ const [entity, setEntity] = useState<Entity<M> | undefined>(undefined);
67
+ useEffect(() => {
68
+ if (entityId && inputCollection) {
69
+ dataSource.fetchEntity({
70
+ path,
71
+ entityId,
72
+ collection: inputCollection
73
+ }).then(setEntity);
74
+ }
75
+ }, [entityId, inputCollection]);
76
+
77
+ if (!entity) return null;
78
+ return <PopupFormFieldInternal {...{
79
+ tableKey,
80
+ entityId,
81
+ customFieldValidator,
82
+ propertyKey,
83
+ collection: inputCollection,
84
+ path,
85
+ cellRect,
86
+ open,
87
+ onClose,
88
+ onCellValueChange,
89
+ container
90
+ }} entity={entity}/>;
91
+ }
92
+
53
93
  export function PopupFormFieldInternal<M extends Record<string, any>>({
54
94
  tableKey,
55
- entity: entityProp,
95
+ entityId,
56
96
  customFieldValidator,
57
97
  propertyKey,
58
98
  collection: inputCollection,
@@ -61,10 +101,12 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
61
101
  open,
62
102
  onClose,
63
103
  onCellValueChange,
64
- container
65
- }: PopupFormFieldProps<M>) {
104
+ container,
105
+ entity
106
+ }: PopupFormFieldProps<M> & {
107
+ entity?: Entity<M>
108
+ }) {
66
109
 
67
- // const dataSource = useDataSource();
68
110
  const fireCMSContext = useFireCMSContext();
69
111
  const customizationController = useCustomizationController();
70
112
 
@@ -74,34 +116,13 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
74
116
  y: number
75
117
  }>();
76
118
 
77
- const entityId = entityProp?.id;
78
- const [entity, setEntity] = useState<Entity<M> | undefined>(entityProp);
79
- // useEffect(() => {
80
- // if (entityId && inputCollection) {
81
- // return dataSource.listenEntity?.({
82
- // path,
83
- // entityId,
84
- // collection: inputCollection,
85
- // onUpdate: (e) => {
86
- // setEntity(e);
87
- // setInternalValue(e?.values);
88
- // }
89
- // });
90
- // } else {
91
- // return () => {
92
- // };
93
- // }
94
- // }, [dataSource, entityId, inputCollection, path, open]);
95
-
96
- const [internalValue, setInternalValue] = useState<EntityValues<M> | undefined>(entity?.values);
97
-
98
119
  const collection: ResolvedEntityCollection<M> | undefined = inputCollection
99
120
  ? resolveCollection<M>({
100
121
  collection: inputCollection,
101
122
  path,
102
- values: internalValue,
123
+ values: entity?.values,
103
124
  entityId,
104
- fields: customizationController.propertyConfigs
125
+ propertyConfigs: customizationController.propertyConfigs
105
126
  })
106
127
  : undefined;
107
128
 
@@ -205,58 +226,48 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
205
226
  return onCellValueChange({
206
227
  value: values[propertyKey as string],
207
228
  propertyKey: propertyKey as string,
208
- entity,
229
+ data: entity,
209
230
  setError: setSavingError,
210
231
  onValueUpdated: () => {
211
232
  },
212
- fullPath: path,
213
- context: fireCMSContext
214
233
  });
215
234
  }
216
235
  return Promise.resolve();
217
236
  };
218
237
 
219
- if (!entity)
220
- return <></>;
221
-
222
- // enableReinitialize={true}
223
- // eslint-disable-next-line react-hooks/rules-of-hooks
224
238
  const formex = useCreateFormex<M>({
225
239
  initialValues: (entity?.values ?? {}) as EntityValues<M>,
226
240
  validation: (values) => {
227
241
  return validationSchema?.validate(values, { abortEarly: false })
228
242
  .then(() => ({}))
229
243
  .catch((e) => {
230
- const errors: Record<string, string> = {};
231
- e.inner.forEach((error: any) => {
232
- errors[error.path] = error.message;
233
- });
234
- return errors;
244
+ // const errors: Record<string, string> = {};
245
+ // e.inner.forEach((error: any) => {
246
+ // errors[error.path] = error.message;
247
+ // });
248
+ // return errors;
249
+ return yupToFormErrors(e);
235
250
  });
236
251
  },
237
252
  validateOnInitialRender: true,
238
253
  onSubmit: (values, actions) => {
239
254
  saveValue(values)
240
- .then(() => onClose())
255
+ .then(() => {
256
+ formex.resetForm({
257
+ values: values
258
+ })
259
+ onClose();
260
+ })
241
261
  .finally(() => actions.setSubmitting(false));
242
262
  }
243
263
  });
244
264
 
245
- const { values, isSubmitting, setFieldValue, handleSubmit } = formex;
246
-
247
- // eslint-disable-next-line react-hooks/rules-of-hooks
248
- useEffect(() => {
249
- if (!equal(values, internalValue)) {
250
- setInternalValue(values);
251
- }
252
- }, [values]);
253
-
254
- if (!entity)
255
- return <ErrorView
256
- error={"PopupFormField misconfiguration"}/>;
257
-
258
- if (!collection)
259
- return <></>;
265
+ const {
266
+ values,
267
+ isSubmitting,
268
+ setFieldValue,
269
+ handleSubmit
270
+ } = formex;
260
271
 
261
272
  const disabled = isSubmitting;
262
273
 
@@ -266,10 +277,13 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
266
277
  values,
267
278
  path,
268
279
  setFieldValue,
269
- save: saveValue
280
+ save: saveValue,
281
+ formex,
282
+ status: "existing",
283
+ openEntityMode: "side_panel",
270
284
  };
271
285
 
272
- const property: ResolvedProperty<any> | undefined = propertyKey && getPropertyInPath(collection.properties, propertyKey as string);
286
+ const property: ResolvedProperty<any> | undefined = propertyKey && getPropertyInPath(collection?.properties ?? {} as ResolvedProperties, propertyKey as string);
273
287
  const fieldProps: PropertyFieldBindingProps<any, M> | undefined = propertyKey && property
274
288
  ? {
275
289
  propertyKey: propertyKey as string,
@@ -278,9 +292,8 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
278
292
  includeDescription: false,
279
293
  underlyingValueHasChanged: false,
280
294
  context: formContext,
281
- tableMode: true,
282
295
  partOfArray: false,
283
- partOfBlock: false,
296
+ minimalistView: false,
284
297
  autoFocus: open
285
298
  }
286
299
  : undefined;
@@ -288,7 +301,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
288
301
  let internalForm = <>
289
302
  <div
290
303
  key={`popup_form_${tableKey}_${entityId}_${propertyKey}`}
291
- className="w-[560px] max-w-full max-h-[85vh]">
304
+ className="w-[700px] max-w-full max-h-[85vh]">
292
305
  <form
293
306
  onSubmit={handleSubmit}
294
307
  noValidate>
@@ -323,10 +336,6 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
323
336
 
324
337
  const plugins = customizationController.plugins;
325
338
  if (plugins) {
326
- // const formController: FormContext<M> = {
327
- // values,
328
- // setFieldValue
329
- // }
330
339
  plugins.forEach((plugin: FireCMSPlugin) => {
331
340
  if (plugin.form?.provider) {
332
341
  internalForm = (
@@ -346,7 +355,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
346
355
  });
347
356
  }
348
357
  const form = <div
349
- className={`text-gray-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-gray-950 ${!open ? "hidden" : ""} cursor-grab max-w-[100vw]`}>
358
+ className={`text-surface-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-surface-950 ${!open ? "hidden" : ""} cursor-grab max-w-[100vw]`}>
350
359
 
351
360
  {internalForm}
352
361
 
@@ -363,7 +372,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
363
372
  style={{
364
373
  boxShadow: "0 0 0 2px rgba(128,128,128,0.2)",
365
374
  }}
366
- className={`inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-gray-950 ${
375
+ className={`inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-surface-950 ${
367
376
  !open ? "invisible" : "visible"
368
377
  } cursor-grab overflow-visible`}
369
378
  ref={draggableRef}>
@@ -376,7 +385,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
376
385
  {form}
377
386
 
378
387
  <div
379
- className="absolute -top-3.5 -right-3.5 bg-gray-500 rounded-full"
388
+ className="absolute -top-3.5 -right-3.5 bg-surface-500 rounded-full"
380
389
  style={{
381
390
  width: "32px",
382
391
  height: "32px"
@@ -387,7 +396,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
387
396
  event.stopPropagation();
388
397
  onClose();
389
398
  }}>
390
- <ClearIcon className="text-white"
399
+ <CloseIcon className="text-white"
391
400
  size={"small"}/>
392
401
  </IconButton>
393
402
  </div>