@firecms/core 3.0.0 → 3.1.0-canary.02232f4
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.
- package/README.md +1 -1
- package/dist/components/AIIcon.d.ts +16 -0
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +7 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +14 -0
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +6 -0
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +5 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +6 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +2 -2
- package/dist/components/EntityCollectionView/Board.d.ts +2 -0
- package/dist/components/EntityCollectionView/BoardColumn.d.ts +42 -0
- package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +9 -0
- package/dist/components/EntityCollectionView/BoardSortableList.d.ts +14 -0
- package/dist/components/EntityCollectionView/CollectionDataErrorBanner.d.ts +4 -0
- package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +26 -0
- package/dist/components/EntityCollectionView/EntityCard.d.ts +19 -0
- package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +20 -0
- package/dist/components/EntityCollectionView/EntityCollectionCardView.d.ts +31 -0
- package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +2 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +7 -3
- package/dist/components/EntityCollectionView/FiltersDialog.d.ts +14 -0
- package/dist/components/EntityCollectionView/ViewModeToggle.d.ts +44 -0
- package/dist/components/EntityCollectionView/board_types.d.ts +105 -0
- package/dist/components/EntityCollectionView/useBoardDataController.d.ts +60 -0
- package/dist/components/ErrorBoundary.d.ts +4 -2
- package/dist/components/HomePage/DefaultHomePage.d.ts +0 -1
- package/dist/components/LanguageToggle.d.ts +1 -0
- package/dist/components/SelectableTable/SelectableTable.d.ts +5 -1
- package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +1 -0
- package/dist/components/VirtualTable/VirtualTable.performance.test.d.ts +1 -0
- package/dist/components/VirtualTable/VirtualTableCell.d.ts +6 -0
- package/dist/components/VirtualTable/VirtualTableHeader.d.ts +4 -1
- package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +1 -1
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +17 -1
- package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +1 -0
- package/dist/components/VirtualTable/types.d.ts +3 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/contexts/index.d.ts +10 -0
- package/dist/core/DrawerNavigationGroup.d.ts +45 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/editor/components/SlashCommandMenu.d.ts +6 -0
- package/dist/editor/components/editor-bubble-item.d.ts +8 -0
- package/dist/editor/components/editor-bubble.d.ts +8 -0
- package/dist/editor/components/image-bubble.d.ts +5 -0
- package/dist/editor/components/index.d.ts +16 -0
- package/dist/editor/components/table-bubble.d.ts +5 -0
- package/dist/editor/editor.d.ts +30 -0
- package/dist/editor/extensions/HighlightDecorationExtension.d.ts +24 -0
- package/dist/editor/extensions/Image/index.d.ts +6 -0
- package/dist/editor/extensions/Image.d.ts +6 -0
- package/dist/editor/extensions/TextLoadingDecorationExtension.d.ts +16 -0
- package/dist/editor/extensions/clipboard.d.ts +7 -0
- package/dist/editor/extensions/custom-keymap.d.ts +1 -0
- package/dist/editor/extensions/drag-and-drop.d.ts +9 -0
- package/dist/editor/hooks/useProseMirror.d.ts +13 -0
- package/dist/editor/hooks/useProseMirrorContext.d.ts +9 -0
- package/dist/editor/index.d.ts +2 -0
- package/dist/editor/markdown.d.ts +5 -0
- package/dist/editor/nodeViews/ImageComponent.d.ts +3 -0
- package/dist/editor/nodeViews/ReactNodeView.d.ts +29 -0
- package/dist/editor/nodeViews/TaskItemComponent.d.ts +3 -0
- package/dist/editor/nodeViews/index.d.ts +6 -0
- package/dist/editor/plugins/index.d.ts +2 -0
- package/dist/editor/plugins/inputrules.d.ts +6 -0
- package/dist/editor/plugins/placeholderPlugin.d.ts +3 -0
- package/dist/editor/plugins/slashCommandPlugin.d.ts +12 -0
- package/dist/editor/schema.d.ts +2 -0
- package/dist/editor/selectors/ai-selector.d.ts +0 -0
- package/dist/editor/selectors/color-selector.d.ts +10 -0
- package/dist/editor/selectors/link-selector.d.ts +8 -0
- package/dist/editor/selectors/node-selector.d.ts +15 -0
- package/dist/editor/selectors/text-buttons.d.ts +1 -0
- package/dist/editor/types.d.ts +5 -0
- package/dist/editor/useProseMirror.d.ts +16 -0
- package/dist/editor/utils/prosemirror-utils.d.ts +6 -0
- package/dist/editor/utils/remove_classes.d.ts +1 -0
- package/dist/editor/utils/useDebouncedCallback.d.ts +1 -0
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/components/LocalChangesMenu.d.ts +2 -2
- package/dist/form/components/StorageUploadProgress.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +1 -1
- package/dist/form/validation.d.ts +3 -2
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useBreadcrumbsController.d.ts +16 -0
- package/dist/hooks/useBuildNavigationController.d.ts +0 -1
- package/dist/hooks/useCollapsedGroups.d.ts +6 -3
- package/dist/hooks/useTranslation.d.ts +17 -0
- package/dist/i18n/FireCMSi18nProvider.d.ts +33 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.es.js +31028 -16080
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +29955 -15028
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useRestoreScroll.d.ts +1 -1
- package/dist/locales/de.d.ts +2 -0
- package/dist/locales/en.d.ts +10 -0
- package/dist/locales/es.d.ts +10 -0
- package/dist/locales/fr.d.ts +2 -0
- package/dist/locales/hi.d.ts +2 -0
- package/dist/locales/it.d.ts +2 -0
- package/dist/locales/pt.d.ts +7 -0
- package/dist/preview/PropertyPreviewProps.d.ts +5 -0
- package/dist/preview/components/DatePreview.d.ts +13 -3
- package/dist/preview/components/ImagePreview.d.ts +5 -1
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +1 -1
- package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +1 -1
- package/dist/types/analytics.d.ts +1 -1
- package/dist/types/collections.d.ts +88 -2
- package/dist/types/customization_controller.d.ts +2 -1
- package/dist/types/datasource.d.ts +0 -1
- package/dist/types/entities.d.ts +1 -0
- package/dist/types/firecms.d.ts +2 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/navigation.d.ts +2 -2
- package/dist/types/plugins.d.ts +69 -1
- package/dist/types/properties.d.ts +277 -12
- package/dist/types/storage.d.ts +9 -0
- package/dist/types/translations.d.ts +669 -0
- package/dist/util/__tests__/conditions.test.d.ts +1 -0
- package/dist/util/__tests__/objects.test.d.ts +1 -0
- package/dist/util/conditions.d.ts +26 -0
- package/dist/util/entities.d.ts +2 -3
- package/dist/util/index.d.ts +3 -1
- package/dist/util/lazy_eager.d.ts +7 -0
- package/dist/util/objects.d.ts +1 -0
- package/dist/util/property_utils.d.ts +2 -1
- package/dist/util/resolutions.d.ts +3 -3
- package/dist/util/useStorageUploadController.d.ts +11 -2
- package/package.json +52 -12
- package/src/app/Scaffold.tsx +20 -19
- package/src/components/AIIcon.tsx +41 -0
- package/src/components/ArrayContainer.tsx +7 -8
- package/src/components/ClearFilterSortButton.tsx +25 -19
- package/src/components/ConfirmationDialog.tsx +4 -4
- package/src/components/DeleteEntityDialog.tsx +12 -11
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +82 -43
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +130 -79
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +121 -104
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +132 -103
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +6 -3
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +24 -44
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +90 -49
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +3 -2
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +11 -11
- package/src/components/EntityCollectionView/Board.tsx +324 -0
- package/src/components/EntityCollectionView/BoardColumn.tsx +158 -0
- package/src/components/EntityCollectionView/BoardColumnTitle.tsx +45 -0
- package/src/components/EntityCollectionView/BoardSortableList.tsx +174 -0
- package/src/components/EntityCollectionView/CollectionDataErrorBanner.tsx +43 -0
- package/src/components/EntityCollectionView/EntityBoardCard.tsx +212 -0
- package/src/components/EntityCollectionView/EntityCard.tsx +235 -0
- package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +706 -0
- package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +236 -0
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +531 -209
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +35 -22
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +86 -15
- package/src/components/EntityCollectionView/FiltersDialog.tsx +252 -0
- package/src/components/EntityCollectionView/ViewModeToggle.tsx +202 -0
- package/src/components/EntityCollectionView/board_types.ts +113 -0
- package/src/components/EntityCollectionView/useBoardDataController.tsx +490 -0
- package/src/components/EntityJsonPreview.tsx +2 -1
- package/src/components/EntityPreview.tsx +1 -1
- package/src/components/EntityView.tsx +3 -2
- package/src/components/ErrorBoundary.tsx +27 -15
- package/src/components/ErrorTooltip.tsx +2 -1
- package/src/components/HomePage/DefaultHomePage.tsx +65 -22
- package/src/components/HomePage/HomePageDnD.tsx +59 -42
- package/src/components/HomePage/NavigationCard.tsx +20 -18
- package/src/components/HomePage/NavigationGroup.tsx +20 -17
- package/src/components/HomePage/RenameGroupDialog.tsx +15 -15
- package/src/components/HomePage/SmallNavigationCard.tsx +10 -9
- package/src/components/LanguageToggle.tsx +66 -0
- package/src/components/NotFoundPage.tsx +5 -3
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +12 -17
- package/src/components/ReferenceWidget.tsx +5 -6
- package/src/components/SearchIconsView.tsx +3 -1
- package/src/components/SelectableTable/SelectableTable.tsx +75 -67
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +7 -6
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +50 -40
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +53 -40
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +60 -58
- package/src/components/UnsavedChangesDialog.tsx +6 -6
- package/src/components/UserDisplay.tsx +4 -4
- package/src/components/VirtualTable/VirtualTable.performance.test.tsx +387 -0
- package/src/components/VirtualTable/VirtualTable.tsx +277 -121
- package/src/components/VirtualTable/VirtualTableCell.tsx +18 -2
- package/src/components/VirtualTable/VirtualTableHeader.tsx +76 -64
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +163 -42
- package/src/components/VirtualTable/VirtualTableProps.tsx +21 -2
- package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +3 -0
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +19 -6
- package/src/components/VirtualTable/types.tsx +3 -0
- package/src/components/common/default_entity_actions.tsx +4 -0
- package/src/components/common/useColumnsIds.tsx +95 -3
- package/src/components/common/useDataSourceTableController.tsx +12 -4
- package/src/components/index.tsx +5 -0
- package/src/contexts/BreacrumbsContext.tsx +15 -8
- package/src/contexts/index.ts +10 -0
- package/src/core/DefaultAppBar.tsx +49 -32
- package/src/core/DefaultDrawer.tsx +49 -57
- package/src/core/DrawerNavigationGroup.tsx +120 -0
- package/src/core/DrawerNavigationItem.tsx +4 -3
- package/src/core/EntityEditView.tsx +94 -50
- package/src/core/EntityEditViewFormActions.tsx +24 -17
- package/src/core/EntitySidePanel.tsx +34 -30
- package/src/core/FireCMS.tsx +33 -6
- package/src/core/SideDialogs.tsx +4 -2
- package/src/core/field_configs.tsx +18 -11
- package/src/core/index.tsx +1 -0
- package/src/editor/components/SlashCommandMenu.tsx +516 -0
- package/src/editor/components/editor-bubble-item.tsx +32 -0
- package/src/editor/components/editor-bubble.tsx +118 -0
- package/src/editor/components/image-bubble.tsx +156 -0
- package/src/editor/components/index.ts +14 -0
- package/src/editor/components/table-bubble.tsx +165 -0
- package/src/editor/editor.tsx +455 -0
- package/src/editor/extensions/HighlightDecorationExtension.ts +114 -0
- package/src/editor/extensions/Image/index.ts +133 -0
- package/src/editor/extensions/Image.ts +159 -0
- package/src/editor/extensions/TextLoadingDecorationExtension.tsx +107 -0
- package/src/editor/extensions/clipboard.ts +72 -0
- package/src/editor/extensions/custom-keymap.ts +24 -0
- package/src/editor/extensions/drag-and-drop.tsx +480 -0
- package/src/editor/hooks/useProseMirror.ts +124 -0
- package/src/editor/hooks/useProseMirrorContext.ts +15 -0
- package/src/editor/index.ts +2 -0
- package/src/editor/markdown.ts +172 -0
- package/src/editor/nodeViews/ImageComponent.tsx +20 -0
- package/src/editor/nodeViews/ReactNodeView.tsx +89 -0
- package/src/editor/nodeViews/TaskItemComponent.tsx +29 -0
- package/src/editor/nodeViews/index.ts +35 -0
- package/src/editor/plugins/index.ts +58 -0
- package/src/editor/plugins/inputrules.ts +82 -0
- package/src/editor/plugins/placeholderPlugin.ts +55 -0
- package/src/editor/plugins/slashCommandPlugin.ts +61 -0
- package/src/editor/schema.ts +240 -0
- package/src/editor/selectors/ai-selector.tsx +111 -0
- package/src/editor/selectors/color-selector.tsx +200 -0
- package/src/editor/selectors/link-selector.tsx +118 -0
- package/src/editor/selectors/node-selector.tsx +157 -0
- package/src/editor/selectors/text-buttons.tsx +86 -0
- package/src/editor/types.ts +6 -0
- package/src/editor/useProseMirror.ts +126 -0
- package/src/editor/utils/prosemirror-utils.ts +108 -0
- package/src/editor/utils/remove_classes.ts +17 -0
- package/src/editor/utils/useDebouncedCallback.ts +25 -0
- package/src/form/EntityForm.tsx +150 -75
- package/src/form/EntityFormActions.tsx +19 -12
- package/src/form/PropertyFieldBinding.tsx +68 -51
- package/src/form/components/ErrorFocus.tsx +3 -3
- package/src/form/components/LocalChangesMenu.tsx +19 -19
- package/src/form/components/StorageItemPreview.tsx +5 -3
- package/src/form/components/StorageUploadProgress.tsx +22 -6
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +18 -5
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +22 -10
- package/src/form/field_bindings/BlockFieldBinding.tsx +26 -9
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -17
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +46 -25
- package/src/form/field_bindings/MapFieldBinding.tsx +88 -70
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +93 -52
- package/src/form/field_bindings/MultiSelectFieldBinding.tsx +15 -1
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +25 -11
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +25 -11
- package/src/form/field_bindings/RepeatFieldBinding.tsx +21 -6
- package/src/form/field_bindings/SelectFieldBinding.tsx +7 -5
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +110 -92
- package/src/form/field_bindings/SwitchFieldBinding.tsx +31 -14
- package/src/form/field_bindings/TextFieldBinding.tsx +77 -38
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +7 -5
- package/src/form/validation.ts +245 -160
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useBreadcrumbsController.tsx +18 -0
- package/src/hooks/useBuildNavigationController.tsx +91 -41
- package/src/hooks/useCollapsedGroups.ts +18 -9
- package/src/hooks/useTranslation.ts +31 -0
- package/src/hooks/useValidateAuthenticator.tsx +1 -1
- package/src/i18n/FireCMSi18nProvider.tsx +160 -0
- package/src/index.ts +5 -0
- package/src/internal/useBuildDataSource.ts +68 -34
- package/src/internal/useBuildSideDialogsController.tsx +11 -8
- package/src/internal/useBuildSideEntityController.tsx +24 -24
- package/src/internal/useRestoreScroll.tsx +26 -14
- package/src/locales/de.ts +718 -0
- package/src/locales/en.ts +730 -0
- package/src/locales/es.ts +730 -0
- package/src/locales/fr.ts +718 -0
- package/src/locales/hi.ts +718 -0
- package/src/locales/it.ts +718 -0
- package/src/locales/pt.ts +727 -0
- package/src/preview/PropertyPreview.tsx +43 -33
- package/src/preview/PropertyPreviewProps.tsx +6 -0
- package/src/preview/components/DatePreview.tsx +72 -4
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/ImagePreview.tsx +37 -21
- package/src/preview/components/ReferencePreview.tsx +8 -2
- package/src/preview/components/StorageThumbnail.tsx +16 -12
- package/src/preview/components/UrlComponentPreview.tsx +32 -27
- package/src/preview/components/UserPreview.tsx +3 -1
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +9 -7
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +11 -9
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +26 -24
- package/src/preview/property_previews/MapPropertyPreview.tsx +49 -27
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +61 -56
- package/src/routes/CustomCMSRoute.tsx +1 -0
- package/src/routes/FireCMSRoute.tsx +87 -65
- package/src/types/analytics.ts +10 -0
- package/src/types/collections.ts +97 -3
- package/src/types/customization_controller.tsx +2 -1
- package/src/types/datasource.ts +54 -56
- package/src/types/entities.ts +10 -0
- package/src/types/firecms.tsx +2 -1
- package/src/types/index.ts +1 -0
- package/src/types/navigation.ts +2 -2
- package/src/types/plugins.tsx +77 -1
- package/src/types/properties.ts +369 -37
- package/src/types/storage.ts +11 -1
- package/src/types/translations.ts +752 -0
- package/src/util/__tests__/conditions.test.ts +506 -0
- package/src/util/__tests__/objects.test.ts +196 -0
- package/src/util/callbacks.ts +6 -3
- package/src/util/collections.ts +51 -6
- package/src/util/conditions.ts +339 -0
- package/src/util/entities.ts +29 -30
- package/src/util/entity_cache.ts +2 -1
- package/src/util/index.ts +3 -1
- package/src/util/join_collections.ts +10 -8
- package/src/util/lazy_eager.tsx +33 -0
- package/src/util/objects.ts +46 -13
- package/src/util/{references.ts → previews.ts} +16 -2
- package/src/util/property_utils.tsx +37 -11
- package/src/util/resolutions.ts +62 -58
- package/src/util/useStorageUploadController.tsx +34 -30
- /package/dist/util/{references.d.ts → previews.d.ts} +0 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Blocker, useBlocker, useLocation } from "react-router";
|
|
2
|
-
import {
|
|
2
|
+
import React, { useEffect, useRef, useState } from "react";
|
|
3
3
|
import { useNavigationController } from "../hooks";
|
|
4
|
-
import { useEffect, useRef, useState } from "react";
|
|
5
4
|
import { useNavigate } from "react-router-dom";
|
|
6
5
|
import {
|
|
7
6
|
getNavigationEntriesFromPath,
|
|
@@ -11,7 +10,11 @@ import {
|
|
|
11
10
|
} from "../util/navigation_from_path";
|
|
12
11
|
import { useBreadcrumbsController } from "../hooks/useBreadcrumbsController";
|
|
13
12
|
import { toArray } from "../util/arrays";
|
|
14
|
-
import {
|
|
13
|
+
import { NotFoundPage } from "../components";
|
|
14
|
+
import { lazyEager } from "../util/lazy_eager";
|
|
15
|
+
|
|
16
|
+
const EntityEditView = lazyEager<typeof import("../core/EntityEditView")["EntityEditView"]>(() => import("../core/EntityEditView"), "EntityEditView");
|
|
17
|
+
const EntityCollectionView = lazyEager<typeof import("../components/EntityCollectionView/EntityCollectionView")["EntityCollectionView"]>(() => import("../components/EntityCollectionView/EntityCollectionView"), "EntityCollectionView");
|
|
15
18
|
import { UnsavedChangesDialog } from "../components/UnsavedChangesDialog";
|
|
16
19
|
import { EntityCollection } from "../types";
|
|
17
20
|
|
|
@@ -35,22 +38,34 @@ export function FireCMSRoute() {
|
|
|
35
38
|
});
|
|
36
39
|
|
|
37
40
|
useEffect(() => {
|
|
41
|
+
const lastEntry = navigationEntries[navigationEntries.length - 1];
|
|
42
|
+
const isViewingCollection = lastEntry?.type === "collection";
|
|
43
|
+
|
|
38
44
|
breadcrumbs.set({
|
|
39
|
-
breadcrumbs: navigationEntries.map(entry => {
|
|
45
|
+
breadcrumbs: navigationEntries.map((entry, index) => {
|
|
46
|
+
const isLastEntry = index === navigationEntries.length - 1;
|
|
47
|
+
|
|
40
48
|
if (entry.type === "entity") {
|
|
41
49
|
return ({
|
|
42
50
|
title: entry.entityId,
|
|
43
51
|
url: navigation.buildUrlCollectionPath(entry.fullPath)
|
|
52
|
+
// count: undefined (not applicable for entities)
|
|
44
53
|
});
|
|
45
54
|
} else if (entry.type === "custom_view") {
|
|
46
55
|
return ({
|
|
47
56
|
title: entry.view.name,
|
|
48
57
|
url: navigation.buildUrlCollectionPath(entry.fullPath)
|
|
58
|
+
// count: undefined (not applicable for custom views)
|
|
49
59
|
});
|
|
50
60
|
} else if (entry.type === "collection") {
|
|
61
|
+
// Only show count badge (loading state) when viewing this collection directly
|
|
62
|
+
// Don't show count for parent collections when viewing an entity
|
|
63
|
+
const showCount = isLastEntry && isViewingCollection;
|
|
51
64
|
return ({
|
|
52
65
|
title: entry.collection.name,
|
|
53
|
-
url: navigation.buildUrlCollectionPath(entry.fullPath)
|
|
66
|
+
url: navigation.buildUrlCollectionPath(entry.fullPath),
|
|
67
|
+
id: entry.fullPath,
|
|
68
|
+
...(showCount ? { count: null } : {}) // null = loading, undefined = no badge
|
|
54
69
|
});
|
|
55
70
|
} else {
|
|
56
71
|
throw new Error("Unexpected navigation entry type");
|
|
@@ -59,6 +74,7 @@ export function FireCMSRoute() {
|
|
|
59
74
|
});
|
|
60
75
|
}, [navigationEntries.map(entry => entry.path).join(",")]);
|
|
61
76
|
|
|
77
|
+
|
|
62
78
|
if (isNew) {
|
|
63
79
|
return <EntityFullScreenRoute
|
|
64
80
|
pathname={pathname}
|
|
@@ -75,15 +91,17 @@ export function FireCMSRoute() {
|
|
|
75
91
|
collection = navigation.getCollection(navigationEntries[0].path);
|
|
76
92
|
if (!collection)
|
|
77
93
|
return null;
|
|
78
|
-
return <
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
94
|
+
return <React.Suspense fallback={null}>
|
|
95
|
+
<EntityCollectionView
|
|
96
|
+
key={`collection_view_${collection.id ?? collection.path}`}
|
|
97
|
+
isSubCollection={false}
|
|
98
|
+
parentCollectionIds={[]}
|
|
99
|
+
fullPath={collection.path}
|
|
100
|
+
fullIdPath={collection.id}
|
|
101
|
+
updateUrl={true}
|
|
102
|
+
{...collection}
|
|
103
|
+
Actions={toArray(collection.Actions)} />
|
|
104
|
+
</React.Suspense>;
|
|
87
105
|
}
|
|
88
106
|
|
|
89
107
|
if (isSidePanel) {
|
|
@@ -96,15 +114,17 @@ export function FireCMSRoute() {
|
|
|
96
114
|
collection = navigation.getCollection(firstEntry.path);
|
|
97
115
|
if (!collection)
|
|
98
116
|
return null;
|
|
99
|
-
return <
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
117
|
+
return <React.Suspense fallback={null}>
|
|
118
|
+
<EntityCollectionView
|
|
119
|
+
key={`collection_view_${collection.id ?? collection.path}`}
|
|
120
|
+
fullIdPath={collection.id}
|
|
121
|
+
isSubCollection={false}
|
|
122
|
+
parentCollectionIds={[]}
|
|
123
|
+
fullPath={collection.path}
|
|
124
|
+
updateUrl={true}
|
|
125
|
+
{...collection}
|
|
126
|
+
Actions={toArray(collection.Actions)} />
|
|
127
|
+
</React.Suspense>;
|
|
108
128
|
}
|
|
109
129
|
}
|
|
110
130
|
|
|
@@ -131,11 +151,11 @@ function getSelectedTabFromUrl(isNew: boolean, lastCustomView: NavigationViewCol
|
|
|
131
151
|
}
|
|
132
152
|
|
|
133
153
|
function EntityFullScreenRoute({
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
154
|
+
pathname,
|
|
155
|
+
navigationEntries,
|
|
156
|
+
isNew,
|
|
157
|
+
isCopy
|
|
158
|
+
}: {
|
|
139
159
|
pathname: string;
|
|
140
160
|
navigationEntries: NavigationViewInternal[],
|
|
141
161
|
isNew: boolean,
|
|
@@ -178,8 +198,8 @@ function EntityFullScreenRoute({
|
|
|
178
198
|
let blocker: Blocker | undefined = undefined;
|
|
179
199
|
try {
|
|
180
200
|
blocker = useBlocker(({
|
|
181
|
-
|
|
182
|
-
|
|
201
|
+
nextLocation
|
|
202
|
+
}) => {
|
|
183
203
|
if (nextLocation.pathname.startsWith(entityPath))
|
|
184
204
|
return false;
|
|
185
205
|
return blocked.current;
|
|
@@ -195,52 +215,54 @@ function EntityFullScreenRoute({
|
|
|
195
215
|
}
|
|
196
216
|
|
|
197
217
|
if (!isNew && !lastEntityEntry) {
|
|
198
|
-
return <NotFoundPage/>;
|
|
218
|
+
return <NotFoundPage />;
|
|
199
219
|
}
|
|
200
220
|
|
|
201
221
|
const collection = isNew ? lastCollectionEntry!.collection : lastEntityEntry!.parentCollection;
|
|
202
222
|
const fullIdPath = isNew ? lastCollectionEntry!.path : lastEntityEntry!.path;
|
|
203
223
|
const collectionPath = navigation.resolveIdsFrom(fullIdPath);
|
|
204
224
|
return <>
|
|
205
|
-
<
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
225
|
+
<React.Suspense fallback={null}>
|
|
226
|
+
<EntityEditView
|
|
227
|
+
key={collection.id + "_" + (isNew ? "new" : (isCopy ? entityId + "_copy" : entityId))}
|
|
228
|
+
entityId={isNew ? undefined : entityId}
|
|
229
|
+
fullIdPath={fullIdPath}
|
|
230
|
+
collection={collection}
|
|
231
|
+
layout={"full_screen"}
|
|
232
|
+
path={collectionPath}
|
|
233
|
+
copy={isCopy}
|
|
234
|
+
selectedTab={selectedTab ?? undefined}
|
|
235
|
+
onValuesModified={(modified) => blocked.current = modified}
|
|
236
|
+
onSaved={(params) => {
|
|
237
|
+
const newSelectedTab = params.selectedTab;
|
|
238
|
+
const newEntityId = params.entityId;
|
|
239
|
+
if (newSelectedTab) {
|
|
240
|
+
navigate(`${basePath}/${newEntityId}/${newSelectedTab}`, { replace: true });
|
|
241
|
+
} else {
|
|
242
|
+
navigate(`${basePath}/${newEntityId}`, { replace: true });
|
|
243
|
+
}
|
|
244
|
+
}}
|
|
245
|
+
onTabChange={(params) => {
|
|
246
|
+
setSelectedTab(params.selectedTab);
|
|
247
|
+
if (isNew) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const newSelectedTab = params.selectedTab;
|
|
251
|
+
if (newSelectedTab) {
|
|
252
|
+
navigate(`${basePath}/${entityId}/${newSelectedTab}`, { replace: true });
|
|
253
|
+
} else {
|
|
254
|
+
navigate(`${basePath}/${entityId}`, { replace: true });
|
|
255
|
+
}
|
|
256
|
+
}}
|
|
257
|
+
parentCollectionIds={parentCollectionIds}
|
|
258
|
+
/>
|
|
259
|
+
</React.Suspense>
|
|
238
260
|
|
|
239
261
|
<UnsavedChangesDialog
|
|
240
262
|
open={blocker?.state === "blocked"}
|
|
241
263
|
handleOk={() => blocker?.proceed?.()}
|
|
242
264
|
handleCancel={() => blocker?.reset?.()}
|
|
243
|
-
body={"You have unsaved changes in this entity."}/>
|
|
265
|
+
body={"You have unsaved changes in this entity."} />
|
|
244
266
|
|
|
245
267
|
</>;
|
|
246
268
|
}
|
package/src/types/analytics.ts
CHANGED
|
@@ -34,5 +34,15 @@ export type CMSAnalyticsEvent =
|
|
|
34
34
|
|
|
35
35
|
| "collection_inline_editing"
|
|
36
36
|
|
|
37
|
+
| "view_mode_changed"
|
|
38
|
+
|
|
39
|
+
| "kanban_card_moved"
|
|
40
|
+
| "kanban_column_reorder"
|
|
41
|
+
| "kanban_property_changed"
|
|
42
|
+
| "kanban_new_entity_in_column"
|
|
43
|
+
| "kanban_backfill_order"
|
|
44
|
+
|
|
45
|
+
| "card_view_entity_click"
|
|
46
|
+
|
|
37
47
|
| "unmapped_event"
|
|
38
48
|
;
|
package/src/types/collections.ts
CHANGED
|
@@ -163,6 +163,31 @@ export interface EntityCollection<M extends Record<string, any> = any, USER exte
|
|
|
163
163
|
*/
|
|
164
164
|
subcollections?: EntityCollection<any, any>[];
|
|
165
165
|
|
|
166
|
+
/**
|
|
167
|
+
* You can group subcollections and custom views into dropdown menus
|
|
168
|
+
* in the entity view tabs. Views listed in a group will be removed
|
|
169
|
+
* from the top-level tabs and shown under a single dropdown instead.
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```tsx
|
|
173
|
+
* const productsCollection = buildCollection({
|
|
174
|
+
* id: "products",
|
|
175
|
+
* path: "products",
|
|
176
|
+
* name: "Products",
|
|
177
|
+
* properties: { ... },
|
|
178
|
+
* subcollections: [localesCollection, reviewsCollection],
|
|
179
|
+
* entityViews: [sampleView],
|
|
180
|
+
* viewGroups: [
|
|
181
|
+
* {
|
|
182
|
+
* name: "Related data",
|
|
183
|
+
* views: ["locales", "reviews", "sample_view"]
|
|
184
|
+
* }
|
|
185
|
+
* ]
|
|
186
|
+
* });
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
viewGroups?: ViewGroup[];
|
|
190
|
+
|
|
166
191
|
/**
|
|
167
192
|
* This interface defines all the callbacks that can be used when an entity
|
|
168
193
|
* is being created, updated or deleted.
|
|
@@ -364,8 +389,76 @@ export interface EntityCollection<M extends Record<string, any> = any, USER exte
|
|
|
364
389
|
* Defaults to `manual_apply`.
|
|
365
390
|
*/
|
|
366
391
|
localChangesBackup?: "manual_apply" | "auto_apply" | false;
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Default view mode for displaying this collection.
|
|
395
|
+
* - "table": Display entities in a spreadsheet-like table (default)
|
|
396
|
+
* - "cards": Display entities as a grid of cards with thumbnails
|
|
397
|
+
* - "kanban": Display entities in a Kanban board grouped by a property
|
|
398
|
+
* Defaults to "table".
|
|
399
|
+
*/
|
|
400
|
+
defaultViewMode?: ViewMode;
|
|
401
|
+
|
|
402
|
+
/**
|
|
403
|
+
* Which view modes are available for this collection.
|
|
404
|
+
* Possible values: "table", "cards", "kanban".
|
|
405
|
+
* Defaults to all three: ["table", "cards", "kanban"].
|
|
406
|
+
* Note: "kanban" will only be available if the collection has at least
|
|
407
|
+
* one string property with enumValues defined, regardless of this setting.
|
|
408
|
+
*/
|
|
409
|
+
enabledViews?: ViewMode[];
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Configuration for Kanban board view mode.
|
|
413
|
+
* When set, the Kanban view mode becomes available.
|
|
414
|
+
*/
|
|
415
|
+
kanban?: KanbanConfig<M>;
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Property key to use for ordering items.
|
|
419
|
+
* Must reference a number property. When items are reordered,
|
|
420
|
+
* this property will be updated to reflect the new order using
|
|
421
|
+
* fractional indexing. Used by Kanban view for ordering within columns
|
|
422
|
+
* and can be used for general ordering purposes.
|
|
423
|
+
*/
|
|
424
|
+
orderProperty?: Extract<keyof M, string>;
|
|
367
425
|
}
|
|
368
426
|
|
|
427
|
+
/**
|
|
428
|
+
* Configuration for Kanban board view mode.
|
|
429
|
+
* @group Collections
|
|
430
|
+
*/
|
|
431
|
+
export interface KanbanConfig<M extends Record<string, any> = any> {
|
|
432
|
+
/**
|
|
433
|
+
* Property key to use for Kanban board columns.
|
|
434
|
+
* Must reference a string property with enumValues defined.
|
|
435
|
+
* Entities will be grouped into columns based on this property's value.
|
|
436
|
+
* The column order is determined by the order of enumValues in the property.
|
|
437
|
+
*/
|
|
438
|
+
columnProperty: Extract<keyof M, string>;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* You can group subcollections and custom views into dropdown menus in the entity view tabs.
|
|
443
|
+
* @group Collections
|
|
444
|
+
*/
|
|
445
|
+
export interface ViewGroup {
|
|
446
|
+
/**
|
|
447
|
+
* Name of the group
|
|
448
|
+
*/
|
|
449
|
+
name: string;
|
|
450
|
+
/**
|
|
451
|
+
* Array of subcollection paths/ids or custom view keys
|
|
452
|
+
*/
|
|
453
|
+
views: string[];
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* View mode for displaying a collection.
|
|
458
|
+
* @group Collections
|
|
459
|
+
*/
|
|
460
|
+
export type ViewMode = "table" | "cards" | "kanban";
|
|
461
|
+
|
|
369
462
|
/**
|
|
370
463
|
* Parameter passed to the `Actions` prop in the collection configuration.
|
|
371
464
|
* The component will receive this prop when it is rendered in the collection
|
|
@@ -413,9 +506,10 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, USE
|
|
|
413
506
|
context: FireCMSContext<USER>;
|
|
414
507
|
|
|
415
508
|
/**
|
|
416
|
-
* Count of the entities in this collection
|
|
509
|
+
* Count of the entities in this collection.
|
|
510
|
+
* undefined means the count is still loading.
|
|
417
511
|
*/
|
|
418
|
-
collectionEntitiesCount
|
|
512
|
+
collectionEntitiesCount?: number;
|
|
419
513
|
|
|
420
514
|
}
|
|
421
515
|
|
|
@@ -647,7 +741,7 @@ export type EntityTableController<M extends Record<string, any> = any> = {
|
|
|
647
741
|
paginationEnabled?: boolean;
|
|
648
742
|
pageSize?: number;
|
|
649
743
|
checkFilterCombination?: (filterValues: FilterValues<any>,
|
|
650
|
-
|
|
744
|
+
sortBy?: [string, "asc" | "desc"]) => boolean;
|
|
651
745
|
popupCell?: SelectedCellProps<M>;
|
|
652
746
|
setPopupCell?: (popupCell?: SelectedCellProps<M>) => void;
|
|
653
747
|
|
package/src/types/datasource.ts
CHANGED
|
@@ -19,9 +19,9 @@ export interface FetchEntityProps<M extends Record<string, any> = any> {
|
|
|
19
19
|
export type ListenEntityProps<M extends Record<string, any> = any> =
|
|
20
20
|
FetchEntityProps<M>
|
|
21
21
|
& {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
22
|
+
onUpdate: (entity: Entity<M>) => void,
|
|
23
|
+
onError?: (error: Error) => void,
|
|
24
|
+
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* @group Datasource
|
|
@@ -88,15 +88,15 @@ export interface DataSource {
|
|
|
88
88
|
* @see useCollectionFetch if you need this functionality implemented as a hook
|
|
89
89
|
*/
|
|
90
90
|
fetchCollection<M extends Record<string, any> = any>({
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
91
|
+
path,
|
|
92
|
+
collection,
|
|
93
|
+
filter,
|
|
94
|
+
limit,
|
|
95
|
+
startAfter,
|
|
96
|
+
orderBy,
|
|
97
|
+
order,
|
|
98
|
+
searchString
|
|
99
|
+
}: FetchCollectionProps<M>
|
|
100
100
|
): Promise<Entity<M>[]>;
|
|
101
101
|
|
|
102
102
|
/**
|
|
@@ -137,11 +137,11 @@ export interface DataSource {
|
|
|
137
137
|
* @param collection
|
|
138
138
|
*/
|
|
139
139
|
fetchEntity<M extends Record<string, any> = any>({
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
path,
|
|
141
|
+
entityId,
|
|
142
|
+
databaseId,
|
|
143
|
+
collection
|
|
144
|
+
}: FetchEntityProps<M>
|
|
145
145
|
): Promise<Entity<M> | undefined>;
|
|
146
146
|
|
|
147
147
|
/**
|
|
@@ -154,12 +154,12 @@ export interface DataSource {
|
|
|
154
154
|
* @return Function to cancel subscription
|
|
155
155
|
*/
|
|
156
156
|
listenEntity?<M extends Record<string, any> = any>({
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
157
|
+
path,
|
|
158
|
+
entityId,
|
|
159
|
+
collection,
|
|
160
|
+
onUpdate,
|
|
161
|
+
onError
|
|
162
|
+
}: ListenEntityProps<M>): () => void;
|
|
163
163
|
|
|
164
164
|
/**
|
|
165
165
|
* Save entity to the specified path
|
|
@@ -274,14 +274,14 @@ export interface DataSourceDelegate {
|
|
|
274
274
|
* @see useCollectionFetch if you need this functionality implemented as a hook
|
|
275
275
|
*/
|
|
276
276
|
fetchCollection<M extends Record<string, any> = any>({
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
277
|
+
path,
|
|
278
|
+
filter,
|
|
279
|
+
limit,
|
|
280
|
+
startAfter,
|
|
281
|
+
orderBy,
|
|
282
|
+
order,
|
|
283
|
+
searchString
|
|
284
|
+
}: FetchCollectionDelegateProps<M>): Promise<Entity<M>[]>;
|
|
285
285
|
|
|
286
286
|
/**
|
|
287
287
|
* Listen to a collection in a given path. If you don't implement this method
|
|
@@ -299,16 +299,16 @@ export interface DataSourceDelegate {
|
|
|
299
299
|
* @see useCollectionFetch if you need this functionality implemented as a hook
|
|
300
300
|
*/
|
|
301
301
|
listenCollection?<M extends Record<string, any> = any>({
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
302
|
+
path,
|
|
303
|
+
filter,
|
|
304
|
+
limit,
|
|
305
|
+
startAfter,
|
|
306
|
+
searchString,
|
|
307
|
+
orderBy,
|
|
308
|
+
order,
|
|
309
|
+
onUpdate,
|
|
310
|
+
onError
|
|
311
|
+
}: ListenCollectionDelegateProps<M>): () => void;
|
|
312
312
|
|
|
313
313
|
/**
|
|
314
314
|
* Retrieve an entity given a path and a collection
|
|
@@ -316,9 +316,9 @@ export interface DataSourceDelegate {
|
|
|
316
316
|
* @param entityId
|
|
317
317
|
*/
|
|
318
318
|
fetchEntity<M extends Record<string, any> = any>({
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
319
|
+
path,
|
|
320
|
+
entityId,
|
|
321
|
+
}: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
322
322
|
|
|
323
323
|
/**
|
|
324
324
|
* Get realtime updates on one entity.
|
|
@@ -330,11 +330,11 @@ export interface DataSourceDelegate {
|
|
|
330
330
|
* @return Function to cancel subscription
|
|
331
331
|
*/
|
|
332
332
|
listenEntity?<M extends Record<string, any> = any>({
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
333
|
+
path,
|
|
334
|
+
entityId,
|
|
335
|
+
onUpdate,
|
|
336
|
+
onError
|
|
337
|
+
}: ListenEntityProps<M>): () => void;
|
|
338
338
|
|
|
339
339
|
/**
|
|
340
340
|
* Save entity to the specified path
|
|
@@ -344,11 +344,11 @@ export interface DataSourceDelegate {
|
|
|
344
344
|
* @param status
|
|
345
345
|
*/
|
|
346
346
|
saveEntity<M extends Record<string, any> = any>({
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
347
|
+
path,
|
|
348
|
+
entityId,
|
|
349
|
+
values,
|
|
350
|
+
status
|
|
351
|
+
}: SaveEntityDelegateProps<M>): Promise<Entity<M>>;
|
|
352
352
|
|
|
353
353
|
/**
|
|
354
354
|
* Delete an entity
|
|
@@ -395,8 +395,6 @@ export interface DataSourceDelegate {
|
|
|
395
395
|
|
|
396
396
|
cmsToDelegateModel: (data: any) => any;
|
|
397
397
|
|
|
398
|
-
setDateToMidnight: (input?: any) => any;
|
|
399
|
-
|
|
400
398
|
initTextSearch?: (props: {
|
|
401
399
|
context: FireCMSContext,
|
|
402
400
|
path: string,
|
package/src/types/entities.ts
CHANGED
|
@@ -65,6 +65,16 @@ export class EntityReference {
|
|
|
65
65
|
return `${this.path}/${this.id}`;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
get pathWithIdAndDatabase() {
|
|
69
|
+
if (this.databaseId) {
|
|
70
|
+
if (this.databaseId === "(default)") {
|
|
71
|
+
return this.pathWithId;
|
|
72
|
+
}
|
|
73
|
+
return `${this.databaseId}:::${this.path}/${this.id}`;
|
|
74
|
+
}
|
|
75
|
+
return this.pathWithId;
|
|
76
|
+
}
|
|
77
|
+
|
|
68
78
|
isEntityReference() {
|
|
69
79
|
return true;
|
|
70
80
|
}
|
package/src/types/firecms.tsx
CHANGED
package/src/types/index.ts
CHANGED
package/src/types/navigation.ts
CHANGED
|
@@ -252,7 +252,7 @@ export interface NavigationEntry {
|
|
|
252
252
|
collection?: EntityCollection;
|
|
253
253
|
view?: CMSView;
|
|
254
254
|
description?: string;
|
|
255
|
-
group: string;
|
|
255
|
+
group: string | null;
|
|
256
256
|
}
|
|
257
257
|
|
|
258
258
|
export type NavigationResult = {
|
|
@@ -261,7 +261,7 @@ export type NavigationResult = {
|
|
|
261
261
|
|
|
262
262
|
navigationEntries: NavigationEntry[],
|
|
263
263
|
|
|
264
|
-
groups: string[],
|
|
264
|
+
groups: (string | null)[],
|
|
265
265
|
|
|
266
266
|
onNavigationEntriesUpdate: (entries: NavigationGroupMapping[]) => void;
|
|
267
267
|
};
|