@firecms/core 3.0.0-alpha.71 → 3.0.0-alpha.72

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 (255) hide show
  1. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +5 -5
  2. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +1 -1
  3. package/dist/components/EntityCollectionTable/index.d.ts +1 -1
  4. package/dist/components/EntityCollectionTable/types.d.ts +15 -1
  5. package/dist/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.d.ts +32 -0
  6. package/dist/components/SearchIconsView.d.ts +5 -0
  7. package/dist/components/index.d.ts +1 -0
  8. package/dist/hooks/useVerifyLicense.d.ts +0 -0
  9. package/dist/index.es.js +8902 -7487
  10. package/dist/index.es.js.map +1 -1
  11. package/dist/index.umd.js +4 -587
  12. package/dist/index.umd.js.map +1 -1
  13. package/dist/util/icon_list.d.ts +1 -0
  14. package/dist/util/icon_synonyms.d.ts +1950 -0
  15. package/dist/util/index.d.ts +2 -0
  16. package/package.json +3 -5
  17. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +5 -6
  18. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +1 -1
  19. package/src/components/EntityCollectionTable/index.tsx +1 -1
  20. package/src/components/EntityCollectionTable/types.tsx +15 -1
  21. package/src/components/EntityCollectionTable/{useEntityCollectionTableController.tsx → useDataSourceEntityCollectionTableController.tsx} +16 -4
  22. package/src/components/EntityCollectionView/EntityCollectionView.tsx +2 -2
  23. package/src/components/ReferenceSelectionInner.tsx +2 -2
  24. package/src/components/SearchIconsView.tsx +75 -0
  25. package/src/components/index.tsx +1 -0
  26. package/src/form/field_bindings/MarkdownFieldBinding.tsx +585 -585
  27. package/src/hooks/useVerifyLicense.tsx +1 -0
  28. package/src/util/icon_list.ts +17 -0
  29. package/src/util/icon_synonyms.ts +1950 -0
  30. package/src/util/index.ts +2 -0
  31. package/dist/components/EntityCollectionTable/useEntityCollectionTableController.d.ts +0 -21
  32. package/src/components/ArrayContainer.d.ts +0 -42
  33. package/src/components/CircularProgressCenter.d.ts +0 -11
  34. package/src/components/DeleteConfirmationDialog.d.ts +0 -9
  35. package/src/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -30
  36. package/src/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +0 -106
  37. package/src/components/EntityCollectionTable/fields/TableReferenceField.d.ts +0 -15
  38. package/src/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +0 -33
  39. package/src/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +0 -9
  40. package/src/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +0 -11
  41. package/src/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +0 -14
  42. package/src/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +0 -13
  43. package/src/components/EntityCollectionTable/index.d.ts +0 -4
  44. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +0 -18
  45. package/src/components/EntityCollectionTable/internal/DeleteEntityDialog.d.ts +0 -12
  46. package/src/components/EntityCollectionTable/internal/EntityCollectionRowActions.d.ts +0 -35
  47. package/src/components/EntityCollectionTable/internal/EntityTableCell.d.ts +0 -26
  48. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +0 -9
  49. package/src/components/EntityCollectionTable/internal/PropertyTableCell.d.ts +0 -18
  50. package/src/components/EntityCollectionTable/internal/common.d.ts +0 -4
  51. package/src/components/EntityCollectionTable/internal/default_entity_actions.d.ts +0 -6
  52. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
  53. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +0 -23
  54. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +0 -13
  55. package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +0 -6
  56. package/src/components/EntityCollectionTable/types.d.ts +0 -39
  57. package/src/components/EntityCollectionTable/useDebouncedData.d.ts +0 -9
  58. package/src/components/EntityCollectionTable/useEntityCollectionTableController.d.ts +0 -21
  59. package/src/components/EntityCollectionView/EntityCollectionView.d.ts +0 -37
  60. package/src/components/EntityCollectionView/EntityCollectionViewActions.d.ts +0 -14
  61. package/src/components/EntityCollectionView/useColumnsIds.d.ts +0 -4
  62. package/src/components/EntityPreview.d.ts +0 -11
  63. package/src/components/ErrorBoundary.d.ts +0 -11
  64. package/src/components/ErrorTooltip.d.ts +0 -2
  65. package/src/components/ErrorView.d.ts +0 -19
  66. package/src/components/FieldConfigBadge.d.ts +0 -4
  67. package/src/components/FireCMSAppBar.d.ts +0 -26
  68. package/src/components/FireCMSLogo.d.ts +0 -7
  69. package/src/components/HomePage/DefaultHomePage.d.ts +0 -21
  70. package/src/components/HomePage/FavouritesView.d.ts +0 -3
  71. package/src/components/HomePage/NavigationCollectionCard.d.ts +0 -17
  72. package/src/components/HomePage/NavigationGroup.d.ts +0 -4
  73. package/src/components/HomePage/index.d.ts +0 -3
  74. package/src/components/LabelWithIcon.d.ts +0 -14
  75. package/src/components/NotFoundPage.d.ts +0 -1
  76. package/src/components/ReferenceSelectionInner.d.ts +0 -58
  77. package/src/components/ReferenceWidget.d.ts +0 -28
  78. package/src/components/VirtualTable/VirtualTable.d.ts +0 -11
  79. package/src/components/VirtualTable/VirtualTableCell.d.ts +0 -14
  80. package/src/components/VirtualTable/VirtualTableHeader.d.ts +0 -27
  81. package/src/components/VirtualTable/VirtualTableHeaderRow.d.ts +0 -2
  82. package/src/components/VirtualTable/VirtualTableProps.d.ts +0 -215
  83. package/src/components/VirtualTable/VirtualTableRow.d.ts +0 -3
  84. package/src/components/VirtualTable/common.d.ts +0 -2
  85. package/src/components/VirtualTable/fields/VirtualTableDateField.d.ts +0 -11
  86. package/src/components/VirtualTable/fields/VirtualTableInput.d.ts +0 -8
  87. package/src/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +0 -8
  88. package/src/components/VirtualTable/fields/VirtualTableSelect.d.ts +0 -15
  89. package/src/components/VirtualTable/fields/VirtualTableSwitch.d.ts +0 -7
  90. package/src/components/VirtualTable/index.d.ts +0 -2
  91. package/src/components/VirtualTable/types.d.ts +0 -34
  92. package/src/components/index.d.ts +0 -20
  93. package/src/contexts/AuthControllerContext.d.ts +0 -3
  94. package/src/contexts/DataSourceContext.d.ts +0 -3
  95. package/src/contexts/DialogsProvider.d.ts +0 -4
  96. package/src/contexts/ModeController.d.ts +0 -4
  97. package/src/contexts/NavigationContext.d.ts +0 -3
  98. package/src/contexts/SideDialogsControllerContext.d.ts +0 -3
  99. package/src/contexts/SideEntityControllerContext.d.ts +0 -3
  100. package/src/contexts/SnackbarProvider.d.ts +0 -2
  101. package/src/contexts/StorageSourceContext.d.ts +0 -3
  102. package/src/contexts/UserConfigurationPersistenceContext.d.ts +0 -3
  103. package/src/contexts/index.d.ts +0 -3
  104. package/src/core/Drawer.d.ts +0 -23
  105. package/src/core/EntitySidePanel.d.ts +0 -10
  106. package/src/core/FireCMS.d.ts +0 -14
  107. package/src/core/NavigationRoutes.d.ts +0 -21
  108. package/src/core/Scaffold.d.ts +0 -52
  109. package/src/core/SideDialogs.d.ts +0 -23
  110. package/src/core/field_configs.d.ts +0 -7
  111. package/src/core/index.d.ts +0 -10
  112. package/src/core/useBuildLocalConfigurationPersistence.d.ts +0 -2
  113. package/src/core/useBuildModeController.d.ts +0 -6
  114. package/src/form/EntityForm.d.ts +0 -75
  115. package/src/form/PropertyFieldBinding.d.ts +0 -30
  116. package/src/form/components/CustomIdField.d.ts +0 -9
  117. package/src/form/components/ErrorFocus.d.ts +0 -4
  118. package/src/form/components/FieldHelperText.d.ts +0 -12
  119. package/src/form/components/FormikArrayContainer.d.ts +0 -18
  120. package/src/form/components/StorageItemPreview.d.ts +0 -13
  121. package/src/form/components/StorageUploadProgress.d.ts +0 -10
  122. package/src/form/components/SwitchControl.d.ts +0 -8
  123. package/src/form/components/index.d.ts +0 -3
  124. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +0 -9
  125. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +0 -11
  126. package/src/form/field_bindings/BlockFieldBinding.d.ts +0 -10
  127. package/src/form/field_bindings/DateTimeFieldBinding.d.ts +0 -11
  128. package/src/form/field_bindings/KeyValueFieldBinding.d.ts +0 -7
  129. package/src/form/field_bindings/MapFieldBinding.d.ts +0 -9
  130. package/src/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  131. package/src/form/field_bindings/MultiSelectBinding.d.ts +0 -9
  132. package/src/form/field_bindings/ReadOnlyFieldBinding.d.ts +0 -10
  133. package/src/form/field_bindings/ReferenceFieldBinding.d.ts +0 -9
  134. package/src/form/field_bindings/RepeatFieldBinding.d.ts +0 -10
  135. package/src/form/field_bindings/SelectFieldBinding.d.ts +0 -12
  136. package/src/form/field_bindings/StorageUploadFieldBinding.d.ts +0 -28
  137. package/src/form/field_bindings/SwitchFieldBinding.d.ts +0 -12
  138. package/src/form/field_bindings/TextFieldBinding.d.ts +0 -12
  139. package/src/form/index.d.ts +0 -20
  140. package/src/form/useClearRestoreValue.d.ts +0 -13
  141. package/src/form/validation.d.ts +0 -25
  142. package/src/hooks/data/delete.d.ts +0 -37
  143. package/src/hooks/data/save.d.ts +0 -42
  144. package/src/hooks/data/useCollectionFetch.d.ts +0 -50
  145. package/src/hooks/data/useDataOrder.d.ts +0 -12
  146. package/src/hooks/data/useDataSource.d.ts +0 -6
  147. package/src/hooks/data/useEntityFetch.d.ts +0 -28
  148. package/src/hooks/index.d.ts +0 -19
  149. package/src/hooks/useAuthController.d.ts +0 -11
  150. package/src/hooks/useBrowserTitleAndIcon.d.ts +0 -6
  151. package/src/hooks/useClipboard.d.ts +0 -57
  152. package/src/hooks/useDialogsController.d.ts +0 -11
  153. package/src/hooks/useFireCMSContext.d.ts +0 -12
  154. package/src/hooks/useLargeLayout.d.ts +0 -1
  155. package/src/hooks/useModeController.d.ts +0 -20
  156. package/src/hooks/useNavigationController.d.ts +0 -9
  157. package/src/hooks/useReferenceDialog.d.ts +0 -18
  158. package/src/hooks/useResolvedNavigationFrom.d.ts +0 -72
  159. package/src/hooks/useSideDialogsController.d.ts +0 -18
  160. package/src/hooks/useSideEntityController.d.ts +0 -12
  161. package/src/hooks/useSnackbarController.d.ts +0 -41
  162. package/src/hooks/useStorageSource.d.ts +0 -6
  163. package/src/hooks/useUserConfigurationPersistence.d.ts +0 -8
  164. package/src/index.d.ts +0 -8
  165. package/src/internal/EntityView.d.ts +0 -22
  166. package/src/internal/common.d.ts +0 -3
  167. package/src/internal/useBuildDataSource.d.ts +0 -22
  168. package/src/internal/useBuildNavigationController.d.ts +0 -14
  169. package/src/internal/useBuildSideDialogsController.d.ts +0 -2
  170. package/src/internal/useBuildSideEntityController.d.ts +0 -4
  171. package/src/internal/useLocaleConfig.d.ts +0 -1
  172. package/src/internal/useRestoreScroll.d.ts +0 -6
  173. package/src/internal/useUnsavedChangesDialog.d.ts +0 -14
  174. package/src/preview/PropertyPreview.d.ts +0 -7
  175. package/src/preview/PropertyPreviewProps.d.ts +0 -43
  176. package/src/preview/components/ArrayEnumPreview.d.ts +0 -11
  177. package/src/preview/components/AsyncPreviewComponent.d.ts +0 -11
  178. package/src/preview/components/BooleanPreview.d.ts +0 -7
  179. package/src/preview/components/DatePreview.d.ts +0 -7
  180. package/src/preview/components/EmptyValue.d.ts +0 -4
  181. package/src/preview/components/EnumValuesChip.d.ts +0 -13
  182. package/src/preview/components/ImagePreview.d.ts +0 -12
  183. package/src/preview/components/ReferencePreview.d.ts +0 -22
  184. package/src/preview/components/StorageThumbnail.d.ts +0 -13
  185. package/src/preview/components/UrlComponentPreview.d.ts +0 -12
  186. package/src/preview/index.d.ts +0 -23
  187. package/src/preview/property_previews/ArrayOfMapsPreview.d.ts +0 -5
  188. package/src/preview/property_previews/ArrayOfReferencesPreview.d.ts +0 -5
  189. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +0 -5
  190. package/src/preview/property_previews/ArrayOfStringsPreview.d.ts +0 -5
  191. package/src/preview/property_previews/ArrayOneOfPreview.d.ts +0 -5
  192. package/src/preview/property_previews/ArrayPropertyEnumPreview.d.ts +0 -5
  193. package/src/preview/property_previews/ArrayPropertyPreview.d.ts +0 -5
  194. package/src/preview/property_previews/MapPropertyPreview.d.ts +0 -8
  195. package/src/preview/property_previews/NumberPropertyPreview.d.ts +0 -6
  196. package/src/preview/property_previews/SkeletonPropertyComponent.d.ts +0 -14
  197. package/src/preview/property_previews/StringPropertyPreview.d.ts +0 -6
  198. package/src/preview/util.d.ts +0 -7
  199. package/src/types/analytics.d.ts +0 -1
  200. package/src/types/appcheck.d.ts +0 -26
  201. package/src/types/auth.d.ts +0 -40
  202. package/src/types/collections.d.ts +0 -451
  203. package/src/types/datasource.d.ts +0 -262
  204. package/src/types/dialogs_controller.d.ts +0 -32
  205. package/src/types/entities.d.ts +0 -57
  206. package/src/types/entity_actions.d.ts +0 -35
  207. package/src/types/entity_callbacks.d.ts +0 -171
  208. package/src/types/entity_link_builder.d.ts +0 -7
  209. package/src/types/export_import.d.ts +0 -21
  210. package/src/types/fields.d.ts +0 -181
  211. package/src/types/firecms.d.ts +0 -151
  212. package/src/types/firecms_context.d.ts +0 -110
  213. package/src/types/index.d.ts +0 -26
  214. package/src/types/local_config_persistence.d.ts +0 -21
  215. package/src/types/locales.d.ts +0 -4
  216. package/src/types/modify_collections.d.ts +0 -5
  217. package/src/types/navigation.d.ts +0 -178
  218. package/src/types/permissions.d.ts +0 -63
  219. package/src/types/plugins.d.ts +0 -179
  220. package/src/types/properties.d.ts +0 -681
  221. package/src/types/property_config.d.ts +0 -42
  222. package/src/types/resolved_entities.d.ts +0 -98
  223. package/src/types/side_dialogs_controller.d.ts +0 -57
  224. package/src/types/side_entity_controller.d.ts +0 -83
  225. package/src/types/storage.d.ts +0 -82
  226. package/src/types/user.d.ts +0 -36
  227. package/src/util/arrays.d.ts +0 -1
  228. package/src/util/builders.d.ts +0 -64
  229. package/src/util/chip_utils.d.ts +0 -3
  230. package/src/util/collections.d.ts +0 -3
  231. package/src/util/common.d.ts +0 -2
  232. package/src/util/dates.d.ts +0 -1
  233. package/src/util/entities.d.ts +0 -28
  234. package/src/util/enums.d.ts +0 -7
  235. package/src/util/flatten_object.d.ts +0 -3
  236. package/src/util/hash.d.ts +0 -1
  237. package/src/util/icons.d.ts +0 -4
  238. package/src/util/index.d.ts +0 -20
  239. package/src/util/join_collections.d.ts +0 -9
  240. package/src/util/make_properties_editable.d.ts +0 -3
  241. package/src/util/navigation_from_path.d.ts +0 -24
  242. package/src/util/navigation_utils.d.ts +0 -20
  243. package/src/util/objects.d.ts +0 -10
  244. package/src/util/parent_references_from_path.d.ts +0 -6
  245. package/src/util/paths.d.ts +0 -14
  246. package/src/util/permissions.d.ts +0 -5
  247. package/src/util/plurals.d.ts +0 -18
  248. package/src/util/property_utils.d.ts +0 -23
  249. package/src/util/references.d.ts +0 -2
  250. package/src/util/regexp.d.ts +0 -7
  251. package/src/util/resolutions.d.ts +0 -64
  252. package/src/util/storage.d.ts +0 -3
  253. package/src/util/strings.d.ts +0 -6
  254. package/src/util/useDebounce.d.ts +0 -1
  255. package/src/util/useStorageUploadController.d.ts +0 -36
@@ -11,6 +11,8 @@ export * from "./useDebounce";
11
11
  export * from "./property_utils";
12
12
  export * from "./resolutions";
13
13
  export * from "./permissions";
14
+ export * from "./icon_list";
15
+ export * from "./icon_synonyms";
14
16
  export * from "./icons";
15
17
  export * from "./plurals";
16
18
  export * from "./references";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@firecms/core",
3
3
  "type": "module",
4
- "version": "3.0.0-alpha.71",
4
+ "version": "3.0.0-alpha.72",
5
5
  "description": "Awesome Firebase/Firestore-based headless open-source CMS",
6
6
  "funding": {
7
7
  "url": "https://github.com/sponsors/firecmsco"
@@ -38,7 +38,7 @@
38
38
  "generateIcons": "ts-node --esm src/icons/generateIcons.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@firecms/ui": "^3.0.0-alpha.71",
41
+ "@firecms/ui": "^3.0.0-alpha.72",
42
42
  "@fontsource/ibm-plex-mono": "^5.0.8",
43
43
  "@fontsource/roboto": "^5.0.8",
44
44
  "@hello-pangea/dnd": "^16.5.0",
@@ -58,7 +58,6 @@
58
58
  "yup": "^0.32.11"
59
59
  },
60
60
  "peerDependencies": {
61
- "algoliasearch": "^4.13.0",
62
61
  "firebase": "^10.5.2",
63
62
  "react": "^18.2.0",
64
63
  "react-dom": "^18.2.0",
@@ -85,7 +84,6 @@
85
84
  "@typescript-eslint/eslint-plugin": "^5.62.0",
86
85
  "@typescript-eslint/parser": "^5.62.0",
87
86
  "@vitejs/plugin-react": "^4.2.1",
88
- "algoliasearch": "^4.22.0",
89
87
  "cross-env": "^7.0.3",
90
88
  "eslint": "^8.55.0",
91
89
  "eslint-config-standard": "^17.1.0",
@@ -109,7 +107,7 @@
109
107
  "dist",
110
108
  "src"
111
109
  ],
112
- "gitHead": "cf8ced8b7900922f517900d498beca9a19853b3b",
110
+ "gitHead": "7f6599121c226abbb4fb4dccbe109b2c8ba6e23e",
113
111
  "publishConfig": {
114
112
  "access": "public"
115
113
  }
@@ -39,8 +39,7 @@ export const useEntityCollectionTableController = () => useContext<EntityCollect
39
39
 
40
40
  /**
41
41
  * This component is in charge of rendering a collection table with a high
42
- * degree of customization. It is in charge of fetching data from
43
- * the {@link DataSource} and holding the state of filtering and sorting.
42
+ * degree of customization.
44
43
  *
45
44
  * This component is used internally by {@link EntityCollectionView} and
46
45
  * {@link useReferenceDialog}
@@ -51,10 +50,11 @@ export const useEntityCollectionTableController = () => useContext<EntityCollect
51
50
  *
52
51
  * If you want to bind a {@link EntityCollection} to a table with the default
53
52
  * options you see in collections in the top level navigation, you can
54
- * check {@link EntityCollectionView}
53
+ * check {@link EntityCollectionView}.
55
54
  *
56
- * If you need a table that is not bound to the datasource or entities and
57
- * properties at all, you can check {@link VirtualTable}
55
+ * The data displayed in the table is managed by a {@link TableController}.
56
+ * You can build the default, bound to a path in the datasource, by using the hook
57
+ * {@link useDataSourceEntityCollectionTableController}
58
58
  *
59
59
  * @see EntityCollectionTableProps
60
60
  * @see EntityCollectionView
@@ -385,7 +385,6 @@ export const EntityCollectionTable = React.memo<EntityCollectionTableProps<any>>
385
385
  onValueChange,
386
386
  size,
387
387
  selectedCell,
388
- selectedEntityIds
389
388
  }}
390
389
  >
391
390
 
@@ -92,7 +92,7 @@ export type EntityCollectionTableProps<M extends Record<string, any>,
92
92
 
93
93
  /**
94
94
  * Controller holding the logic for the table
95
- * {@link useEntityCollectionTableController}
95
+ * {@link useDataSourceEntityCollectionTableController}
96
96
  * {@link TableController}
97
97
  */
98
98
  tableController: TableController<M>;
@@ -13,4 +13,4 @@ export type {
13
13
  OnCellValueChangeParams
14
14
  } from "./types";
15
15
 
16
- export * from "./useEntityCollectionTableController";
16
+ export * from "./useDataSourceEntityCollectionTableController";
@@ -2,11 +2,25 @@ import { CollectionSize, Entity, FireCMSContext, ResolvedProperty, SelectedCellP
2
2
 
3
3
  export type EntityCollectionTableController<M extends Record<string, any>> = {
4
4
 
5
+ /**
6
+ * This cell is displayed as selected
7
+ */
5
8
  selectedCell?: SelectedCellProps<any>;
9
+ /**
10
+ * Select a table cell
11
+ * @param cell
12
+ */
6
13
  select: (cell?: SelectedCellProps<M>) => void;
14
+ /**
15
+ * The cell that is displayed as a popup view.
16
+ * @param cell
17
+ */
7
18
  setPopupCell?: (cell?: SelectedCellProps<M>) => void;
19
+ /**
20
+ * Callback used when the value of a cell has changed.
21
+ * @param params
22
+ */
8
23
  onValueChange?: (params: OnCellValueChangeParams<any, M>) => void;
9
- selectedEntityIds?: string[];
10
24
  /**
11
25
  * Size of the elements in the collection
12
26
  */
@@ -15,34 +15,46 @@ import { useDebouncedData } from "./useDebouncedData";
15
15
 
16
16
  const DEFAULT_PAGE_SIZE = 50;
17
17
 
18
- export type EntityCollectionTableControllerProps<M extends Record<string, any> = any> = {
18
+ export type DataSourceEntityCollectionTableControllerProps<M extends Record<string, any> = any> = {
19
+ /**
20
+ * Full path where the data of this table is located
21
+ */
19
22
  fullPath: string;
23
+ /**
24
+ * The collection that is represented by this config.
25
+ */
20
26
  collection: EntityCollection<M>;
21
27
  /**
22
28
  * List of entities that will be displayed on top, no matter the ordering.
23
29
  * This is used for reference fields selection
24
30
  */
25
31
  entitiesDisplayedFirst?: Entity<M>[];
32
+
26
33
  lastDeleteTimestamp?: number;
27
34
  forceFilter?: FilterValues<string>;
28
35
  }
29
36
 
30
37
  /**
31
- * Use this hook to build a controller for the {@link EntityCollectionTable}
38
+ * Use this hook to build a controller for the {@link EntityCollectionTable}.
39
+ * This controller is bound to data in a path in your specified datasource.
40
+ *
41
+ * Note that you can build your own hook returning a {@link TableController}
42
+ * if you would like to display different data.
43
+ *
32
44
  * @param fullPath
33
45
  * @param collection
34
46
  * @param entitiesDisplayedFirst
35
47
  * @param lastDeleteTimestamp
36
48
  * @param forceFilterFromProps
37
49
  */
38
- export function useEntityCollectionTableController<M extends Record<string, any> = any, UserType extends User = User>(
50
+ export function useDataSourceEntityCollectionTableController<M extends Record<string, any> = any, UserType extends User = User>(
39
51
  {
40
52
  fullPath,
41
53
  collection,
42
54
  entitiesDisplayedFirst,
43
55
  lastDeleteTimestamp,
44
56
  forceFilter: forceFilterFromProps,
45
- }: EntityCollectionTableControllerProps<M>)
57
+ }: DataSourceEntityCollectionTableControllerProps<M>)
46
58
  : TableController<M> {
47
59
 
48
60
  const {
@@ -47,7 +47,7 @@ import {
47
47
  } from "../../hooks";
48
48
  import { useUserConfigurationPersistence } from "../../hooks/useUserConfigurationPersistence";
49
49
  import { EntityCollectionViewActions } from "./EntityCollectionViewActions";
50
- import { useEntityCollectionTableController } from "../EntityCollectionTable/useEntityCollectionTableController";
50
+ import { useDataSourceEntityCollectionTableController } from "../EntityCollectionTable/useDataSourceEntityCollectionTableController";
51
51
  import {
52
52
  AddIcon,
53
53
  Button,
@@ -176,7 +176,7 @@ export const EntityCollectionView = React.memo(
176
176
  setDeleteEntityClicked(undefined);
177
177
  }, [selectedEntities]);
178
178
 
179
- const tableController = useEntityCollectionTableController<M>({
179
+ const tableController = useDataSourceEntityCollectionTableController<M>({
180
180
  fullPath,
181
181
  collection,
182
182
  entitiesDisplayedFirst: [],
@@ -15,7 +15,7 @@ import { ErrorView } from "./ErrorView";
15
15
  import { AddIcon, Button, DialogActions, Typography } from "@firecms/ui";
16
16
  import { canCreateEntity, fullPathToCollectionSegments, resolveCollection } from "../util";
17
17
  import { useSelectionController } from "./EntityCollectionView/EntityCollectionView";
18
- import { useEntityCollectionTableController } from "./EntityCollectionTable/useEntityCollectionTableController";
18
+ import { useDataSourceEntityCollectionTableController } from "./EntityCollectionTable/useDataSourceEntityCollectionTableController";
19
19
  import { useColumnIds } from "./EntityCollectionView/useColumnsIds";
20
20
  import { useSideDialogContext } from "../core";
21
21
 
@@ -258,7 +258,7 @@ export function ReferenceSelectionInner<M extends Record<string, any>>(
258
258
  const displayedColumnIds = useColumnIds(resolvedCollection, false);
259
259
 
260
260
  // eslint-disable-next-line react-hooks/rules-of-hooks
261
- const tableController = useEntityCollectionTableController<M>({
261
+ const tableController = useDataSourceEntityCollectionTableController<M>({
262
262
  fullPath,
263
263
  collection,
264
264
  entitiesDisplayedFirst,
@@ -0,0 +1,75 @@
1
+ import React from "react";
2
+
3
+ import { coolIconKeys, debounce, Icon, IconButton, iconKeys, SearchBar, Tooltip } from "@firecms/ui";
4
+ import { icon_synonyms, iconsSearch } from "../util";
5
+
6
+ const UPDATE_SEARCH_INDEX_WAIT_MS = 220;
7
+
8
+ if (process.env.NODE_ENV !== "production") {
9
+ Object.keys(icon_synonyms).forEach((icon: string) => {
10
+ if (!iconKeys.includes(icon)) {
11
+ console.warn(`The icon ${icon} no longer exists. Remove it from \`icon_synonyms\``);
12
+ }
13
+ });
14
+ }
15
+
16
+ export interface SearchIconsProps {
17
+ selectedIcon?: string;
18
+ onIconSelected?: (icon: string) => void;
19
+ }
20
+
21
+ export function SearchIconsView({
22
+ selectedIcon = "",
23
+ onIconSelected
24
+ }: SearchIconsProps) {
25
+ const [keys, setKeys] = React.useState<string[] | null>(null);
26
+ const [query, setQuery] = React.useState<string>("");
27
+
28
+ const updateSearchResults = React.useMemo(() =>
29
+ debounce((value: string) => {
30
+ if (!value || value === "") {
31
+ setKeys(null);
32
+ } else {
33
+ const searchResult = iconsSearch.search(value);
34
+ setKeys(searchResult.map((e: any) => e.key));
35
+ }
36
+ }, UPDATE_SEARCH_INDEX_WAIT_MS), []
37
+ );
38
+
39
+ React.useEffect(() => {
40
+ updateSearchResults(query);
41
+ return () => {
42
+ updateSearchResults.clear();
43
+ };
44
+ }, [query, updateSearchResults]);
45
+
46
+ const icons = keys === null ? coolIconKeys : keys;
47
+
48
+ return (
49
+ <>
50
+ <SearchBar
51
+ autoFocus
52
+ innerClassName={"w-full sticky top-0 z-10"}
53
+ onTextSearch={(value?: string) => setQuery(value ?? "")}
54
+ placeholder="Search for more icons…"
55
+ />
56
+
57
+ <div className={"flex max-w-full flex-wrap mt-4"}>
58
+ {icons.map((icon: string) => {
59
+ return (
60
+ <Tooltip title={icon} key={icon}>
61
+ <IconButton
62
+ shape={"square"}
63
+ toggled={selectedIcon === icon}
64
+ onClick={onIconSelected ? () => onIconSelected(icon) : undefined}
65
+ className="box-content m-1"
66
+ >
67
+ <Icon iconKey={icon} size={24}/>
68
+ </IconButton>
69
+ </Tooltip>
70
+ );
71
+ })}
72
+ </div>
73
+ </>
74
+ );
75
+ }
@@ -28,3 +28,4 @@ export * from "./FireCMSAppBar";
28
28
  export * from "./ArrayContainer";
29
29
  export * from "./ReferenceWidget";
30
30
  export * from "./LabelWithIcon";
31
+ export * from "./SearchIconsView";