@firecms/core 3.0.0-canary.136 → 3.0.0-canary.138
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/PropertyConfigBadge.d.ts +2 -1
- package/dist/index.es.js +49 -52
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +50 -53
- package/dist/index.umd.js.map +1 -1
- package/dist/types/property_config.d.ts +0 -2
- package/dist/util/resolutions.d.ts +6 -6
- package/package.json +5 -5
- package/src/app/Scaffold.tsx +3 -4
- package/src/components/DeleteEntityDialog.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +1 -1
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +2 -2
- package/src/components/EntityPreview.tsx +1 -1
- package/src/components/EntityView.tsx +1 -1
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +1 -2
- package/src/components/common/default_entity_actions.tsx +2 -2
- package/src/core/DefaultAppBar.tsx +69 -73
- package/src/core/EntityEditView.tsx +4 -4
- package/src/core/FireCMS.tsx +1 -4
- package/src/form/PropertyFieldBinding.tsx +2 -2
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +0 -1
- package/src/hooks/data/save.ts +3 -3
- package/src/internal/useBuildDataSource.ts +1 -1
- package/src/preview/PropertyPreview.tsx +1 -1
- package/src/preview/components/ImagePreview.tsx +2 -2
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +1 -1
- package/src/types/property_config.tsx +0 -2
- package/src/util/property_utils.tsx +1 -1
- package/src/util/resolutions.ts +8 -8
package/README.md
CHANGED
|
@@ -89,7 +89,7 @@ navigating through **subcollections** and accessing custom views (such as custom
|
|
|
89
89
|
forms or blog previews). This functionality can also be accessed
|
|
90
90
|
programmatically using the `useSideEntityController` hook.
|
|
91
91
|
|
|
92
|
-
FireCMS includes **over
|
|
92
|
+
FireCMS includes **over 20 built-in fields** with numerous customization and
|
|
93
93
|
validation options. The components have been carefully designed for an
|
|
94
94
|
outstanding user experience, including advanced features like **references** to
|
|
95
95
|
other collections, **markdown**, and **array reordering**.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PropertyConfig } from "../types";
|
|
2
|
-
export declare function PropertyConfigBadge({ propertyConfig }: {
|
|
2
|
+
export declare function PropertyConfigBadge({ propertyConfig, disabled }: {
|
|
3
3
|
propertyConfig: PropertyConfig | undefined;
|
|
4
|
+
disabled?: boolean;
|
|
4
5
|
}): React.ReactNode;
|
package/dist/index.es.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import React__default, { useRef, useEffect, useContext, useCallback, useMemo, useState, createElement, createRef, createContext, forwardRef, useLayoutEffect } from "react";
|
|
4
|
+
import { getColorSchemeForSeed, CHIP_COLORS, Tooltip, ErrorIcon, Typography, CircleIcon, FunctionsIcon, iconKeys, coolIconKeys, Icon, IconButton, ContentCopyIcon, OpenInNewIcon, DescriptionIcon, cls, Skeleton, Chip, defaultBorderMixin, KeyboardTabIcon, Checkbox, Markdown, TextareaAutosize, focusedDisabled, MultiSelect, MultiSelectItem, Select, SelectItem, BooleanSwitch, DateTimeField, paperMixin, ErrorOutlineIcon, EditIcon, RemoveCircleIcon, Menu, MoreVertIcon, MenuItem, CircularProgress, SearchBar, Badge, ArrowUpwardIcon, Popover, FilterListIcon, Button, CenteredView, AssignmentIcon, Label, TextField, ClearIcon, BooleanSwitchWithLabel, useOutsideAlerter, Dialog, DialogContent, DialogActions, FileCopyIcon, ArchiveIcon, DeleteIcon, AddIcon, ExpandablePanel, Card, ArrowForwardIcon, cardMixin, cardClickableMixin, StarIcon, StarBorderIcon, Collapse, Container, FilterListOffIcon, SearchIcon, LoadingButton, Avatar, DarkModeIcon, LightModeIcon, LogoutIcon, HandleIcon, RemoveIcon, debounce, InfoIcon, CloseIcon, fieldBackgroundMixin, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, ArrowDropDownIcon, ShortTextIcon, SubjectIcon, FormatQuoteIcon, HttpIcon, EmailIcon, FlagIcon, ListIcon, ListAltIcon, NumbersIcon, FormatListNumberedIcon, UploadFileIcon, DriveFolderUploadIcon, LinkIcon, AddLinkIcon, ScheduleIcon, BallotIcon, RepeatIcon, ViewStreamIcon, NotesIcon, Tab, Tabs, Alert, Sheet, MenuIcon, ChevronLeftIcon } from "@firecms/ui";
|
|
4
5
|
import { SnackbarProvider as SnackbarProvider$1, useSnackbar } from "notistack";
|
|
5
6
|
import hash from "object-hash";
|
|
6
7
|
import { useCreateFormex, Formex, setIn, Field, getIn, useFormex } from "@firecms/formex";
|
|
7
|
-
import { getColorSchemeForSeed, CHIP_COLORS, Tooltip, ErrorIcon, Typography, CircleIcon, FunctionsIcon, iconKeys, coolIconKeys, Icon, IconButton, ContentCopyIcon, OpenInNewIcon, DescriptionIcon, cls, Skeleton, Chip, defaultBorderMixin, KeyboardTabIcon, Checkbox, Markdown, TextareaAutosize, focusedDisabled, MultiSelect, MultiSelectItem, Select, SelectItem, BooleanSwitch, DateTimeField, paperMixin, ErrorOutlineIcon, EditIcon, RemoveCircleIcon, Menu, MoreVertIcon, MenuItem, CircularProgress, SearchBar, Badge, ArrowUpwardIcon, Popover, FilterListIcon, Button, CenteredView, AssignmentIcon, Label, TextField, ClearIcon, BooleanSwitchWithLabel, useOutsideAlerter, Dialog, DialogContent, DialogActions, FileCopyIcon, ArchiveIcon, DeleteIcon, AddIcon, ExpandablePanel, Card, ArrowForwardIcon, cardMixin, cardClickableMixin, StarIcon, StarBorderIcon, Collapse, Container, FilterListOffIcon, SearchIcon, LoadingButton, Avatar, DarkModeIcon, LightModeIcon, LogoutIcon, HandleIcon, RemoveIcon, debounce, InfoIcon, CloseIcon, fieldBackgroundMixin, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, ArrowDropDownIcon, ShortTextIcon, SubjectIcon, FormatQuoteIcon, HttpIcon, EmailIcon, FlagIcon, ListIcon, ListAltIcon, NumbersIcon, FormatListNumberedIcon, UploadFileIcon, DriveFolderUploadIcon, LinkIcon, AddLinkIcon, ScheduleIcon, BallotIcon, RepeatIcon, ViewStreamIcon, NotesIcon, Tab, Tabs, Alert, Sheet, useLocaleConfig, MenuIcon, ChevronLeftIcon } from "@firecms/ui";
|
|
8
8
|
import equal from "react-fast-compare";
|
|
9
9
|
import { Link, useNavigate, useLocation, UNSAFE_NavigationContext, NavLink, Route, Routes } from "react-router-dom";
|
|
10
10
|
import { format } from "date-fns";
|
|
@@ -672,7 +672,7 @@ function isReferenceProperty(propertyOrBuilder, fields) {
|
|
|
672
672
|
propertyKey: "ignore",
|
|
673
673
|
// TODO
|
|
674
674
|
propertyOrBuilder,
|
|
675
|
-
fields
|
|
675
|
+
propertyConfigs: fields
|
|
676
676
|
});
|
|
677
677
|
if (!resolvedProperty) return null;
|
|
678
678
|
if (resolvedProperty.dataType === "reference") {
|
|
@@ -3577,7 +3577,7 @@ async function saveEntityWithCallbacks({
|
|
|
3577
3577
|
path,
|
|
3578
3578
|
values: previousValues,
|
|
3579
3579
|
entityId,
|
|
3580
|
-
|
|
3580
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
3581
3581
|
});
|
|
3582
3582
|
updatedValues = await callbacks.onPreSave({
|
|
3583
3583
|
collection: resolvedCollection,
|
|
@@ -3618,7 +3618,7 @@ async function saveEntityWithCallbacks({
|
|
|
3618
3618
|
path,
|
|
3619
3619
|
values: updatedValues,
|
|
3620
3620
|
entityId,
|
|
3621
|
-
|
|
3621
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
3622
3622
|
});
|
|
3623
3623
|
callbacks.onSaveSuccess({
|
|
3624
3624
|
collection: resolvedCollection,
|
|
@@ -3645,7 +3645,7 @@ async function saveEntityWithCallbacks({
|
|
|
3645
3645
|
path,
|
|
3646
3646
|
values: updatedValues,
|
|
3647
3647
|
entityId,
|
|
3648
|
-
|
|
3648
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
3649
3649
|
});
|
|
3650
3650
|
callbacks.onSaveFailure({
|
|
3651
3651
|
collection: resolvedCollection,
|
|
@@ -4613,7 +4613,7 @@ function ImagePreview({
|
|
|
4613
4613
|
ContentCopyIcon,
|
|
4614
4614
|
{
|
|
4615
4615
|
className: "text-gray-700 dark:text-gray-300",
|
|
4616
|
-
size: "
|
|
4616
|
+
size: "smallest"
|
|
4617
4617
|
}
|
|
4618
4618
|
)
|
|
4619
4619
|
}
|
|
@@ -4635,7 +4635,7 @@ function ImagePreview({
|
|
|
4635
4635
|
OpenInNewIcon,
|
|
4636
4636
|
{
|
|
4637
4637
|
className: "text-gray-700 dark:text-gray-300",
|
|
4638
|
-
size: "
|
|
4638
|
+
size: "smallest"
|
|
4639
4639
|
}
|
|
4640
4640
|
)
|
|
4641
4641
|
}
|
|
@@ -5109,7 +5109,7 @@ function ArrayPropertyPreview({
|
|
|
5109
5109
|
const property = resolveArrayProperty({
|
|
5110
5110
|
propertyKey,
|
|
5111
5111
|
property: inputProperty,
|
|
5112
|
-
|
|
5112
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
5113
5113
|
});
|
|
5114
5114
|
if (!property.of) {
|
|
5115
5115
|
throw Error(`You need to specify an 'of' prop (or specify a custom field) in your array property ${propertyKey}`);
|
|
@@ -5164,7 +5164,7 @@ function EntityPreview({
|
|
|
5164
5164
|
collection,
|
|
5165
5165
|
path: entity.path,
|
|
5166
5166
|
values: entity.values,
|
|
5167
|
-
|
|
5167
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
5168
5168
|
}), [collection]);
|
|
5169
5169
|
const listProperties = useMemo(
|
|
5170
5170
|
() => getEntityPreviewKeys(resolvedCollection, customizationController.propertyConfigs, previewProperties, size === "small" || size === "medium" ? 3 : 1),
|
|
@@ -5466,7 +5466,7 @@ function ArrayOfReferencesPreview({
|
|
|
5466
5466
|
const property = resolveArrayProperty({
|
|
5467
5467
|
propertyKey,
|
|
5468
5468
|
property: inputProperty,
|
|
5469
|
-
|
|
5469
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
5470
5470
|
});
|
|
5471
5471
|
if (Array.isArray(property?.of)) {
|
|
5472
5472
|
throw Error("Using array properties instead of single one in `of` in ArrayProperty");
|
|
@@ -5509,7 +5509,7 @@ function ArrayOfStorageComponentsPreview({
|
|
|
5509
5509
|
const property = resolveArrayProperty({
|
|
5510
5510
|
propertyKey,
|
|
5511
5511
|
property: inputProperty,
|
|
5512
|
-
|
|
5512
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
5513
5513
|
});
|
|
5514
5514
|
if (Array.isArray(property.of)) {
|
|
5515
5515
|
throw Error("Using array properties instead of single one in `of` in ArrayProperty");
|
|
@@ -5587,7 +5587,7 @@ function ArrayOfStringsPreview({
|
|
|
5587
5587
|
const property = resolveArrayProperty({
|
|
5588
5588
|
propertyKey,
|
|
5589
5589
|
property: inputProperty,
|
|
5590
|
-
|
|
5590
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
5591
5591
|
});
|
|
5592
5592
|
if (Array.isArray(property.of)) {
|
|
5593
5593
|
throw Error("Using array properties instead of single one in `of` in ArrayProperty");
|
|
@@ -5621,7 +5621,7 @@ function ArrayOneOfPreview({
|
|
|
5621
5621
|
const property = resolveArrayProperty({
|
|
5622
5622
|
propertyKey,
|
|
5623
5623
|
property: inputProperty,
|
|
5624
|
-
|
|
5624
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
5625
5625
|
});
|
|
5626
5626
|
if (property?.dataType !== "array")
|
|
5627
5627
|
throw Error("Picked wrong preview component ArrayPreview");
|
|
@@ -5871,7 +5871,7 @@ const PropertyPreview = React__default.memo(function PropertyPreview2(props) {
|
|
|
5871
5871
|
const property = resolveProperty({
|
|
5872
5872
|
propertyKey,
|
|
5873
5873
|
propertyOrBuilder: inputProperty,
|
|
5874
|
-
|
|
5874
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
5875
5875
|
});
|
|
5876
5876
|
if (value === void 0 || property === null) {
|
|
5877
5877
|
content = /* @__PURE__ */ jsx(EmptyValue, {});
|
|
@@ -6108,7 +6108,7 @@ function ArrayOfMapsPreview({
|
|
|
6108
6108
|
const property = resolveArrayProperty({
|
|
6109
6109
|
propertyKey,
|
|
6110
6110
|
property: inputProperty,
|
|
6111
|
-
|
|
6111
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
6112
6112
|
});
|
|
6113
6113
|
if (Array.isArray(property?.of)) {
|
|
6114
6114
|
throw Error("Using array properties instead of single one in `of` in ArrayProperty");
|
|
@@ -6195,7 +6195,7 @@ function EntityView({
|
|
|
6195
6195
|
path,
|
|
6196
6196
|
entityId: entity.id,
|
|
6197
6197
|
values: entity.values,
|
|
6198
|
-
|
|
6198
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
6199
6199
|
}), [collection, path, entity, customizationController.propertyConfigs]);
|
|
6200
6200
|
const properties = resolvedCollection.properties;
|
|
6201
6201
|
return /* @__PURE__ */ jsx("div", { className: "w-full " + className, children: /* @__PURE__ */ jsxs("div", { className: "w-full mb-4", children: [
|
|
@@ -10644,7 +10644,7 @@ function DeleteEntityDialog({
|
|
|
10644
10644
|
const resolvedCollection = useMemo(() => resolveCollection({
|
|
10645
10645
|
collection,
|
|
10646
10646
|
path,
|
|
10647
|
-
|
|
10647
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
10648
10648
|
}), [collection, path]);
|
|
10649
10649
|
const handleCancel = useCallback(() => {
|
|
10650
10650
|
onClose();
|
|
@@ -10803,7 +10803,7 @@ function getRecentIds(collectionId) {
|
|
|
10803
10803
|
return JSON.parse(stored);
|
|
10804
10804
|
}
|
|
10805
10805
|
const editEntityAction = {
|
|
10806
|
-
icon: /* @__PURE__ */ jsx(
|
|
10806
|
+
icon: /* @__PURE__ */ jsx(EditIcon, {}),
|
|
10807
10807
|
name: "Edit",
|
|
10808
10808
|
collapsed: false,
|
|
10809
10809
|
onClick({
|
|
@@ -10942,7 +10942,6 @@ function ReferenceSelectionTable({
|
|
|
10942
10942
|
const analyticsController = useAnalyticsController();
|
|
10943
10943
|
const customizationController = useCustomizationController();
|
|
10944
10944
|
const fullPath = navigation.resolveAliasesFrom(pathInput);
|
|
10945
|
-
console.trace("Opening reference dialog for path " + fullPath);
|
|
10946
10945
|
const dataSource = useDataSource();
|
|
10947
10946
|
const [entitiesDisplayedFirst, setEntitiesDisplayedFirst] = useState([]);
|
|
10948
10947
|
const toggleEntitySelection = (entity) => {
|
|
@@ -11068,7 +11067,7 @@ function ReferenceSelectionTable({
|
|
|
11068
11067
|
collection,
|
|
11069
11068
|
path: fullPath,
|
|
11070
11069
|
values: {},
|
|
11071
|
-
|
|
11070
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
11072
11071
|
}), [collection, customizationController.propertyConfigs, fullPath]);
|
|
11073
11072
|
const displayedColumnIds = useColumnIds(resolvedCollection, false);
|
|
11074
11073
|
const tableController = useDataSourceEntityCollectionTableController({
|
|
@@ -11937,7 +11936,7 @@ function PopupFormFieldInternal({
|
|
|
11937
11936
|
path,
|
|
11938
11937
|
values: internalValue,
|
|
11939
11938
|
entityId,
|
|
11940
|
-
|
|
11939
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
11941
11940
|
}) : void 0;
|
|
11942
11941
|
const windowSize = useWindowSize();
|
|
11943
11942
|
const draggableRef = React__default.useRef(null);
|
|
@@ -12470,7 +12469,7 @@ const EntityCollectionView = React__default.memo(
|
|
|
12470
12469
|
const resolvedCollection = useMemo(() => resolveCollection({
|
|
12471
12470
|
collection,
|
|
12472
12471
|
path: fullPath,
|
|
12473
|
-
|
|
12472
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
12474
12473
|
}), [collection, fullPath]);
|
|
12475
12474
|
const getPropertyFor = useCallback(({
|
|
12476
12475
|
propertyKey,
|
|
@@ -12486,7 +12485,7 @@ const EntityCollectionView = React__default.memo(
|
|
|
12486
12485
|
path: entity.path,
|
|
12487
12486
|
values: entity.values,
|
|
12488
12487
|
entityId: entity.id,
|
|
12489
|
-
|
|
12488
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
12490
12489
|
});
|
|
12491
12490
|
}, [collection.properties, customizationController.propertyConfigs, resolvedCollection.properties]);
|
|
12492
12491
|
const displayedColumnIds = useColumnIds(resolvedCollection, true);
|
|
@@ -12937,15 +12936,18 @@ function EntityIdHeaderWidget({
|
|
|
12937
12936
|
}
|
|
12938
12937
|
) });
|
|
12939
12938
|
}
|
|
12940
|
-
function PropertyConfigBadge({
|
|
12941
|
-
|
|
12939
|
+
function PropertyConfigBadge({
|
|
12940
|
+
propertyConfig,
|
|
12941
|
+
disabled
|
|
12942
|
+
}) {
|
|
12943
|
+
const classes = "h-8 w-8 p-1 rounded-full shadow text-white " + (disabled ? "bg-gray-400 dark:bg-gray-600" : "");
|
|
12942
12944
|
const defaultPropertyConfig = typeof propertyConfig?.property === "object" ? getDefaultFieldConfig(propertyConfig.property) : void 0;
|
|
12943
12945
|
return /* @__PURE__ */ jsx(
|
|
12944
12946
|
"div",
|
|
12945
12947
|
{
|
|
12946
12948
|
className: classes,
|
|
12947
12949
|
style: {
|
|
12948
|
-
background: propertyConfig?.color ?? defaultPropertyConfig?.color ?? "#888"
|
|
12950
|
+
background: !disabled ? propertyConfig?.color ?? defaultPropertyConfig?.color ?? "#888" : void 0
|
|
12949
12951
|
},
|
|
12950
12952
|
children: propertyConfig?.Icon ? getIconForWidget(propertyConfig, "medium") : getIconForWidget(defaultPropertyConfig, "medium")
|
|
12951
12953
|
}
|
|
@@ -13267,24 +13269,22 @@ const DefaultAppBar = function DefaultAppBar2({
|
|
|
13267
13269
|
const initial = user?.displayName ? user.displayName[0].toUpperCase() : user?.email ? user.email[0].toUpperCase() : "A";
|
|
13268
13270
|
avatarComponent = /* @__PURE__ */ jsx(Avatar, { children: initial });
|
|
13269
13271
|
}
|
|
13270
|
-
return /* @__PURE__ */
|
|
13272
|
+
return /* @__PURE__ */ jsxs(
|
|
13271
13273
|
"div",
|
|
13272
13274
|
{
|
|
13273
13275
|
style,
|
|
13274
13276
|
className: cls(
|
|
13275
|
-
"w-full h-16 transition-all ease-in duration-75
|
|
13277
|
+
"w-full h-16 transition-all ease-in duration-75 absolute top-0 max-w-full overflow-x-auto no-scrollbar",
|
|
13278
|
+
"flex flex-row gap-2 px-4 items-center",
|
|
13276
13279
|
{
|
|
13277
|
-
"pl-[
|
|
13278
|
-
"pl-
|
|
13280
|
+
"pl-[19rem]": drawerOpen && largeLayout,
|
|
13281
|
+
"pl-24": hasDrawer && !(drawerOpen && largeLayout),
|
|
13279
13282
|
"z-10": largeLayout,
|
|
13280
|
-
|
|
13281
|
-
// "w-[calc(100%-64px)]": hasDrawer && !(drawerOpen && largeLayout),
|
|
13282
|
-
// "w-[calc(100%-17rem)]": hasDrawer && (drawerOpen && largeLayout),
|
|
13283
|
-
"duration-150": drawerOpen && largeLayout
|
|
13283
|
+
"duration-100": drawerOpen && largeLayout
|
|
13284
13284
|
},
|
|
13285
13285
|
className
|
|
13286
13286
|
),
|
|
13287
|
-
children:
|
|
13287
|
+
children: [
|
|
13288
13288
|
navigation && /* @__PURE__ */ jsx("div", { className: "mr-8 hidden lg:block", children: /* @__PURE__ */ jsx(
|
|
13289
13289
|
Link,
|
|
13290
13290
|
{
|
|
@@ -13338,7 +13338,7 @@ const DefaultAppBar = function DefaultAppBar2({
|
|
|
13338
13338
|
"Log Out"
|
|
13339
13339
|
] })
|
|
13340
13340
|
] })
|
|
13341
|
-
]
|
|
13341
|
+
]
|
|
13342
13342
|
}
|
|
13343
13343
|
);
|
|
13344
13344
|
};
|
|
@@ -14180,7 +14180,6 @@ function ArrayOfReferencesFieldBinding({
|
|
|
14180
14180
|
throw Error(`Couldn't find the corresponding collection for the path: ${ofProperty.path}`);
|
|
14181
14181
|
}
|
|
14182
14182
|
const onMultipleEntitiesSelected = useCallback((entities) => {
|
|
14183
|
-
console.debug("onMultipleEntitiesSelected", entities);
|
|
14184
14183
|
setValue(entities.map((e) => getReferenceFrom(e)));
|
|
14185
14184
|
}, [setValue]);
|
|
14186
14185
|
const referenceDialogController = useReferenceDialog(
|
|
@@ -15134,7 +15133,7 @@ function PropertyFieldBindingInternal({
|
|
|
15134
15133
|
values: fieldProps.form.values,
|
|
15135
15134
|
path: context.path,
|
|
15136
15135
|
entityId: context.entityId,
|
|
15137
|
-
|
|
15136
|
+
propertyConfigs: customizationController.propertyConfigs,
|
|
15138
15137
|
index
|
|
15139
15138
|
});
|
|
15140
15139
|
if (resolvedProperty === null || isHidden(resolvedProperty)) {
|
|
@@ -15162,7 +15161,7 @@ function PropertyFieldBindingInternal({
|
|
|
15162
15161
|
values: fieldProps.form.values,
|
|
15163
15162
|
path: context.path,
|
|
15164
15163
|
entityId: context.entityId,
|
|
15165
|
-
|
|
15164
|
+
propertyConfigs: customizationController.propertyConfigs,
|
|
15166
15165
|
index
|
|
15167
15166
|
});
|
|
15168
15167
|
Component = configProperty.Field;
|
|
@@ -16885,7 +16884,7 @@ const resolveCollection = ({
|
|
|
16885
16884
|
values,
|
|
16886
16885
|
previousValues,
|
|
16887
16886
|
userConfigPersistence,
|
|
16888
|
-
|
|
16887
|
+
propertyConfigs,
|
|
16889
16888
|
ignoreMissingFields = false
|
|
16890
16889
|
}) => {
|
|
16891
16890
|
const collectionOverride = userConfigPersistence?.getCollectionConfig(path);
|
|
@@ -16901,7 +16900,7 @@ const resolveCollection = ({
|
|
|
16901
16900
|
previousValues: usedPreviousValues,
|
|
16902
16901
|
path,
|
|
16903
16902
|
entityId,
|
|
16904
|
-
|
|
16903
|
+
propertyConfigs,
|
|
16905
16904
|
ignoreMissingFields
|
|
16906
16905
|
});
|
|
16907
16906
|
if (!childResolvedProperty) return {};
|
|
@@ -16983,7 +16982,7 @@ function resolveProperty({
|
|
|
16983
16982
|
};
|
|
16984
16983
|
}
|
|
16985
16984
|
if (resolvedProperty.propertyConfig && !isDefaultFieldConfigId(resolvedProperty.propertyConfig)) {
|
|
16986
|
-
const cmsFields = props.
|
|
16985
|
+
const cmsFields = props.propertyConfigs;
|
|
16987
16986
|
if (!cmsFields && !ignoreMissingFields) {
|
|
16988
16987
|
throw Error(`Trying to resolve a property with key '${resolvedProperty.propertyConfig}' that inherits from a custom property config but no custom property configs were provided. Use the property 'propertyConfigs' in your app config to provide them`);
|
|
16989
16988
|
}
|
|
@@ -17455,7 +17454,7 @@ function EntityEditViewInner({
|
|
|
17455
17454
|
collection: inputCollection,
|
|
17456
17455
|
path,
|
|
17457
17456
|
values: entity?.values,
|
|
17458
|
-
|
|
17457
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
17459
17458
|
}), [entity?.values, path, customizationController.propertyConfigs]);
|
|
17460
17459
|
const initialStatus = copy ? "copy" : entityIdProp ? "existing" : "new";
|
|
17461
17460
|
const [status, setStatus] = useState(initialStatus);
|
|
@@ -17656,7 +17655,7 @@ function EntityEditViewInner({
|
|
|
17656
17655
|
entityId,
|
|
17657
17656
|
values: formex.values,
|
|
17658
17657
|
previousValues: formex.initialValues,
|
|
17659
|
-
|
|
17658
|
+
propertyConfigs: customizationController.propertyConfigs
|
|
17660
17659
|
});
|
|
17661
17660
|
const lastSavedValues = useRef(entity?.values);
|
|
17662
17661
|
const save = (values) => {
|
|
@@ -17824,7 +17823,7 @@ function EntityEditViewInner({
|
|
|
17824
17823
|
});
|
|
17825
17824
|
setEntityId(updatedId);
|
|
17826
17825
|
} catch (e) {
|
|
17827
|
-
onIdUpdateError
|
|
17826
|
+
onIdUpdateError?.(e);
|
|
17828
17827
|
console.error(e);
|
|
17829
17828
|
}
|
|
17830
17829
|
setCustomIdLoading(false);
|
|
@@ -18027,7 +18026,7 @@ function EntityEditViewInner({
|
|
|
18027
18026
|
children: pluginActions
|
|
18028
18027
|
}
|
|
18029
18028
|
),
|
|
18030
|
-
/* @__PURE__ */ jsx("div", { className: "h-full overflow-auto", children: /* @__PURE__ */ jsxs("div", { className: "pt-12 pb-16 pl-
|
|
18029
|
+
/* @__PURE__ */ jsx("div", { className: "h-full overflow-auto", children: /* @__PURE__ */ jsxs("div", { className: "pt-12 pb-16 pl-4 sm:px-8 md:px-10", children: [
|
|
18031
18030
|
/* @__PURE__ */ jsxs(
|
|
18032
18031
|
"div",
|
|
18033
18032
|
{
|
|
@@ -18946,7 +18945,7 @@ function useBuildDataSource({
|
|
|
18946
18945
|
collection,
|
|
18947
18946
|
path,
|
|
18948
18947
|
entityId,
|
|
18949
|
-
|
|
18948
|
+
propertyConfigs
|
|
18950
18949
|
}) : void 0;
|
|
18951
18950
|
const properties = resolvedCollection?.properties;
|
|
18952
18951
|
const firestoreValues = usedDelegate.cmsToDelegateModel(
|
|
@@ -19114,7 +19113,6 @@ function FireCMS(props) {
|
|
|
19114
19113
|
navigationController,
|
|
19115
19114
|
apiKey
|
|
19116
19115
|
} = props;
|
|
19117
|
-
useLocaleConfig(locale);
|
|
19118
19116
|
const dataSource = useBuildDataSource({
|
|
19119
19117
|
delegate: dataSourceDelegate,
|
|
19120
19118
|
propertyConfigs,
|
|
@@ -19350,7 +19348,7 @@ const Scaffold = React__default.memo(
|
|
|
19350
19348
|
equal
|
|
19351
19349
|
);
|
|
19352
19350
|
const DrawerHeader = () => {
|
|
19353
|
-
return /* @__PURE__ */ jsx("div", { className: "flex flex-col min-h-
|
|
19351
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col min-h-16" });
|
|
19354
19352
|
};
|
|
19355
19353
|
function DrawerWrapper(props) {
|
|
19356
19354
|
const width = !props.displayed ? 0 : props.open ? DRAWER_WIDTH : 72;
|
|
@@ -19373,13 +19371,12 @@ function DrawerWrapper(props) {
|
|
|
19373
19371
|
children: /* @__PURE__ */ jsx(
|
|
19374
19372
|
"div",
|
|
19375
19373
|
{
|
|
19376
|
-
className: "ml-2 fixed top-2 left-3 !bg-gray-50 dark:!bg-gray-900 rounded-full w-fit z-20",
|
|
19374
|
+
className: "ml-2 fixed top-1 left-2 sm:top-2 sm:left-3 !bg-gray-50 dark:!bg-gray-900 rounded-full w-fit z-20",
|
|
19377
19375
|
children: /* @__PURE__ */ jsx(
|
|
19378
19376
|
IconButton,
|
|
19379
19377
|
{
|
|
19380
19378
|
color: "inherit",
|
|
19381
19379
|
"aria-label": "Open menu",
|
|
19382
|
-
className: "sticky top-2 left-3 ",
|
|
19383
19380
|
onClick: () => props.setDrawerOpen(true),
|
|
19384
19381
|
size: "large",
|
|
19385
19382
|
children: /* @__PURE__ */ jsx(MenuIcon, {})
|
|
@@ -19419,7 +19416,7 @@ function DrawerWrapper(props) {
|
|
|
19419
19416
|
"aria-label": "Open drawer",
|
|
19420
19417
|
onClick: () => props.setDrawerOpen(true),
|
|
19421
19418
|
size: "large",
|
|
19422
|
-
className: "absolute top-2 left-5",
|
|
19419
|
+
className: "absolute sm:top-2 sm:left-5 top-1 left-2",
|
|
19423
19420
|
children: /* @__PURE__ */ jsx(MenuIcon, {})
|
|
19424
19421
|
}
|
|
19425
19422
|
),
|