@firecms/core 3.0.0-canary.102 → 3.0.0-canary.104

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 (59) hide show
  1. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +1 -1
  2. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  3. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  4. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  5. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  6. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  7. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  8. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +9 -0
  9. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  10. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  11. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +1 -1
  12. package/dist/form/index.d.ts +2 -2
  13. package/dist/index.es.js +269 -817
  14. package/dist/index.es.js.map +1 -1
  15. package/dist/index.umd.js +268 -815
  16. package/dist/index.umd.js.map +1 -1
  17. package/dist/types/collections.d.ts +11 -1
  18. package/dist/types/datasource.d.ts +12 -12
  19. package/dist/types/entities.d.ts +1 -0
  20. package/dist/types/fields.d.ts +5 -13
  21. package/dist/types/navigation.d.ts +1 -0
  22. package/dist/util/index.d.ts +1 -0
  23. package/dist/util/storage.d.ts +1 -1
  24. package/package.json +5 -5
  25. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +4 -2
  26. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +3 -5
  27. package/src/components/EntityCollectionView/EntityCollectionView.tsx +4 -4
  28. package/src/components/common/useTableSearchHelper.ts +1 -0
  29. package/src/core/DefaultDrawer.tsx +1 -1
  30. package/src/core/EntityEditView.tsx +3 -4
  31. package/src/core/field_configs.tsx +2 -2
  32. package/src/form/PropertyFieldBinding.tsx +4 -8
  33. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +4 -5
  34. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +3 -3
  35. package/src/form/field_bindings/BlockFieldBinding.tsx +5 -6
  36. package/src/form/field_bindings/KeyValueFieldBinding.tsx +5 -5
  37. package/src/form/field_bindings/MapFieldBinding.tsx +6 -8
  38. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +133 -0
  39. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +5 -5
  40. package/src/form/field_bindings/ReferenceFieldBinding.tsx +5 -4
  41. package/src/form/field_bindings/RepeatFieldBinding.tsx +6 -7
  42. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +2 -2
  43. package/src/form/index.tsx +2 -2
  44. package/src/hooks/data/save.ts +5 -1
  45. package/src/internal/useBuildDataSource.ts +29 -14
  46. package/src/preview/PropertyPreview.tsx +2 -2
  47. package/src/types/collections.ts +13 -1
  48. package/src/types/datasource.ts +13 -16
  49. package/src/types/entities.ts +2 -0
  50. package/src/types/fields.tsx +5 -15
  51. package/src/types/navigation.ts +1 -0
  52. package/src/util/index.ts +1 -0
  53. package/src/util/references.ts +3 -0
  54. package/src/util/storage.ts +1 -1
  55. package/src/util/useStorageUploadController.tsx +2 -2
  56. package/dist/form/PropertiesForm.d.ts +0 -8
  57. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  58. package/src/form/PropertiesForm.tsx +0 -81
  59. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
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
- import React__default, { useRef, useEffect, useContext, useCallback, useMemo, useState, createElement, createRef, createContext, forwardRef, useLayoutEffect, useDeferredValue } from "react";
3
+ import React__default, { useRef, useEffect, useContext, useCallback, useMemo, useState, createElement, createRef, createContext, forwardRef, useLayoutEffect } from "react";
4
4
  import { SnackbarProvider as SnackbarProvider$1, useSnackbar } from "notistack";
5
5
  import hash from "object-hash";
6
6
  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, MultiSelect, MultiSelectItem, Select, SelectItem, BooleanSwitch, DateTimeField, paperMixin, ErrorOutlineIcon, EditIcon, Button, RemoveCircleIcon, Menu, MoreVertIcon, MenuItem, CircularProgress, SearchBar, Badge, ArrowUpwardIcon, Popover, FilterListIcon, AssignmentIcon, CenteredView, Label, TextField, ClearIcon, BooleanSwitchWithLabel, useOutsideAlerter, Dialog, DialogContent, DialogActions, FileCopyIcon, ArchiveIcon, DeleteIcon, AddIcon, ExpandablePanel, Card, ArrowForwardIcon, cardMixin, cardClickableMixin, focusedMixin, StarIcon, StarBorderIcon, Collapse, Container, FilterListOffIcon, SearchIcon, LoadingButton, Avatar, DarkModeIcon, LightModeIcon, LogoutIcon, fieldBackgroundHoverMixin, HandleIcon, RemoveIcon, debounce, InfoIcon, CloseIcon, fieldBackgroundMixin, fieldBackgroundDisabledMixin, ArrowDropDownIcon, useInjectStyles, 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";
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, MultiSelect, MultiSelectItem, Select, SelectItem, BooleanSwitch, DateTimeField, paperMixin, ErrorOutlineIcon, EditIcon, Button, RemoveCircleIcon, Menu, MoreVertIcon, MenuItem, CircularProgress, SearchBar, Badge, ArrowUpwardIcon, Popover, FilterListIcon, AssignmentIcon, CenteredView, Label, TextField, ClearIcon, BooleanSwitchWithLabel, useOutsideAlerter, Dialog, DialogContent, DialogActions, FileCopyIcon, ArchiveIcon, DeleteIcon, AddIcon, ExpandablePanel, Card, ArrowForwardIcon, cardMixin, cardClickableMixin, focusedMixin, StarIcon, StarBorderIcon, Collapse, Container, FilterListOffIcon, SearchIcon, LoadingButton, Avatar, DarkModeIcon, LightModeIcon, LogoutIcon, fieldBackgroundHoverMixin, HandleIcon, RemoveIcon, debounce, InfoIcon, CloseIcon, fieldBackgroundMixin, fieldBackgroundDisabledMixin, ArrowDropDownIcon, Paper, 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";
@@ -16,8 +16,7 @@ import Resizer from "react-image-file-resizer";
16
16
  import Fuse from "fuse.js";
17
17
  import { FixedSizeList } from "react-window";
18
18
  import * as yup from "yup";
19
- import MarkdownIt from "markdown-it";
20
- import MdEditor, { Plugins } from "react-markdown-editor-lite";
19
+ import { FireCMSEditor } from "@firecms/editor";
21
20
  import * as Portal from "@radix-ui/react-portal";
22
21
  const SnackbarProvider = ({ children }) => {
23
22
  return /* @__PURE__ */ jsx(
@@ -2882,6 +2881,9 @@ function singular(word, amount) {
2882
2881
  function getEntityPreviewKeys(targetCollection, fields, previewProperties, limit = 3) {
2883
2882
  const allProperties = Object.keys(targetCollection.properties);
2884
2883
  let listProperties = previewProperties?.filter((p) => allProperties.includes(p));
2884
+ if (!listProperties && targetCollection.previewProperties) {
2885
+ listProperties = targetCollection.previewProperties?.filter((p) => allProperties.includes(p));
2886
+ }
2885
2887
  if (listProperties && listProperties.length > 0) {
2886
2888
  return listProperties;
2887
2889
  } else {
@@ -3150,6 +3152,99 @@ function useTraceUpdate(props, maxDepth = 3) {
3150
3152
  prev.current = props;
3151
3153
  });
3152
3154
  }
3155
+ async function resolveStorageFilenameString({
3156
+ input,
3157
+ storage,
3158
+ values,
3159
+ entityId,
3160
+ path,
3161
+ property,
3162
+ file,
3163
+ propertyKey
3164
+ }) {
3165
+ let result;
3166
+ if (typeof input === "function") {
3167
+ result = await input({
3168
+ path,
3169
+ entityId,
3170
+ values,
3171
+ property,
3172
+ file,
3173
+ storage,
3174
+ propertyKey
3175
+ });
3176
+ if (!result)
3177
+ console.warn("Storage callback returned empty result. Using default name value");
3178
+ } else {
3179
+ result = replacePlaceholders({
3180
+ file,
3181
+ input,
3182
+ entityId,
3183
+ propertyKey,
3184
+ path
3185
+ });
3186
+ }
3187
+ if (!result)
3188
+ result = randomString() + "_" + file.name;
3189
+ return result;
3190
+ }
3191
+ function resolveStoragePathString({
3192
+ input,
3193
+ storage,
3194
+ values,
3195
+ entityId,
3196
+ path,
3197
+ property,
3198
+ file,
3199
+ propertyKey
3200
+ }) {
3201
+ let result;
3202
+ if (typeof input === "function") {
3203
+ result = input({
3204
+ path,
3205
+ entityId,
3206
+ values,
3207
+ property,
3208
+ file,
3209
+ storage,
3210
+ propertyKey
3211
+ });
3212
+ if (!result)
3213
+ console.warn("Storage callback returned empty result. Using default name value");
3214
+ } else {
3215
+ result = replacePlaceholders({
3216
+ file,
3217
+ input,
3218
+ entityId,
3219
+ propertyKey,
3220
+ path
3221
+ });
3222
+ }
3223
+ if (!result)
3224
+ result = randomString() + "_" + file.name;
3225
+ return result;
3226
+ }
3227
+ function replacePlaceholders({
3228
+ file,
3229
+ input,
3230
+ entityId,
3231
+ propertyKey,
3232
+ path
3233
+ }) {
3234
+ const ext = file.name.split(".").pop();
3235
+ let result = input.replace("{entityId}", entityId).replace("{propertyKey}", propertyKey).replace("{rand}", randomString()).replace("{file}", file.name).replace("{file.type}", file.type);
3236
+ if (path) {
3237
+ result = result.replace("{path}", path);
3238
+ }
3239
+ if (ext) {
3240
+ result = result.replace("{file.ext}", ext);
3241
+ const name = file.name.replace(`.${ext}`, "");
3242
+ result = result.replace("{file.name}", name);
3243
+ }
3244
+ if (!result)
3245
+ result = randomString() + "_" + file.name;
3246
+ return result;
3247
+ }
3153
3248
  const DataSourceContext = React__default.createContext({});
3154
3249
  const useDataSource = (collection) => {
3155
3250
  const defaultDataSource = useContext(DataSourceContext);
@@ -3493,7 +3588,11 @@ async function saveEntityWithCallbacks({
3493
3588
  } else {
3494
3589
  updatedValues = values;
3495
3590
  }
3496
- console.log("Saving entity", entityId, updatedValues);
3591
+ console.log("Saving entity", {
3592
+ entityId,
3593
+ updatedValues,
3594
+ collection
3595
+ });
3497
3596
  return dataSource.saveEntity({
3498
3597
  collection,
3499
3598
  path: resolvedPath,
@@ -5802,6 +5901,8 @@ const PropertyPreview = React__default.memo(function PropertyPreview2(props) {
5802
5901
  previewType: stringProperty.url
5803
5902
  }
5804
5903
  );
5904
+ } else if (stringProperty.markdown) {
5905
+ content = /* @__PURE__ */ jsx(Markdown, { source: value, size: "small" });
5805
5906
  } else if (stringProperty.storage) {
5806
5907
  const filePath = stringProperty.storage.previewUrl ? stringProperty.storage.previewUrl(value) : value;
5807
5908
  content = /* @__PURE__ */ jsx(
@@ -5813,8 +5914,6 @@ const PropertyPreview = React__default.memo(function PropertyPreview2(props) {
5813
5914
  storagePathOrDownloadUrl: filePath
5814
5915
  }
5815
5916
  );
5816
- } else if (stringProperty.markdown) {
5817
- content = /* @__PURE__ */ jsx(Markdown, { source: value, size: "small" });
5818
5917
  } else {
5819
5918
  content = /* @__PURE__ */ jsx(
5820
5919
  StringPropertyPreview,
@@ -6469,99 +6568,6 @@ class ErrorBoundary extends React__default.Component {
6469
6568
  return this.props.children;
6470
6569
  }
6471
6570
  }
6472
- async function resolveFilenameString({
6473
- input,
6474
- storage,
6475
- values,
6476
- entityId,
6477
- path,
6478
- property,
6479
- file,
6480
- propertyKey
6481
- }) {
6482
- let result;
6483
- if (typeof input === "function") {
6484
- result = await input({
6485
- path,
6486
- entityId,
6487
- values,
6488
- property,
6489
- file,
6490
- storage,
6491
- propertyKey
6492
- });
6493
- if (!result)
6494
- console.warn("Storage callback returned empty result. Using default name value");
6495
- } else {
6496
- result = replacePlaceholders({
6497
- file,
6498
- input,
6499
- entityId,
6500
- propertyKey,
6501
- path
6502
- });
6503
- }
6504
- if (!result)
6505
- result = randomString() + "_" + file.name;
6506
- return result;
6507
- }
6508
- function resolveStoragePathString({
6509
- input,
6510
- storage,
6511
- values,
6512
- entityId,
6513
- path,
6514
- property,
6515
- file,
6516
- propertyKey
6517
- }) {
6518
- let result;
6519
- if (typeof input === "function") {
6520
- result = input({
6521
- path,
6522
- entityId,
6523
- values,
6524
- property,
6525
- file,
6526
- storage,
6527
- propertyKey
6528
- });
6529
- if (!result)
6530
- console.warn("Storage callback returned empty result. Using default name value");
6531
- } else {
6532
- result = replacePlaceholders({
6533
- file,
6534
- input,
6535
- entityId,
6536
- propertyKey,
6537
- path
6538
- });
6539
- }
6540
- if (!result)
6541
- result = randomString() + "_" + file.name;
6542
- return result;
6543
- }
6544
- function replacePlaceholders({
6545
- file,
6546
- input,
6547
- entityId,
6548
- propertyKey,
6549
- path
6550
- }) {
6551
- const ext = file.name.split(".").pop();
6552
- let result = input.replace("{entityId}", entityId).replace("{propertyKey}", propertyKey).replace("{rand}", randomString()).replace("{file}", file.name).replace("{file.type}", file.type);
6553
- if (path) {
6554
- result = result.replace("{path}", path);
6555
- }
6556
- if (ext) {
6557
- result = result.replace("{file.ext}", ext);
6558
- const name = file.name.replace(`.${ext}`, "");
6559
- result = result.replace("{file.name}", name);
6560
- }
6561
- if (!result)
6562
- result = randomString() + "_" + file.name;
6563
- return result;
6564
- }
6565
6571
  function useStorageUploadController({
6566
6572
  entityId,
6567
6573
  entityValues,
@@ -6596,7 +6602,7 @@ function useStorageUploadController({
6596
6602
  }, [internalInitialValue, value, initialValue]);
6597
6603
  const fileNameBuilder = useCallback(async (file) => {
6598
6604
  if (storage.fileName) {
6599
- const fileName = await resolveFilenameString({
6605
+ const fileName = await resolveStorageFilenameString({
6600
6606
  input: storage.fileName,
6601
6607
  storage,
6602
6608
  values: entityValues,
@@ -7792,6 +7798,8 @@ function useClearRestoreValue({
7792
7798
  }, [property]);
7793
7799
  }
7794
7800
  function isStorageProperty(property) {
7801
+ if (property.dataType === "string" && property.markdown)
7802
+ return false;
7795
7803
  if (property.dataType === "string" && property.storage)
7796
7804
  return true;
7797
7805
  if (property.dataType === "array") {
@@ -8041,7 +8049,7 @@ const PropertyTableCell = React__default.memo(
8041
8049
  }
8042
8050
  );
8043
8051
  fullHeight = true;
8044
- } else if (!stringProperty.storage) {
8052
+ } else if (stringProperty.markdown || !stringProperty.storage) {
8045
8053
  const multiline = Boolean(stringProperty.multiline) || Boolean(stringProperty.markdown);
8046
8054
  innerComponent = /* @__PURE__ */ jsx(
8047
8055
  VirtualTableInput,
@@ -10497,6 +10505,7 @@ function useTableSearchHelper({
10497
10505
  const props = {
10498
10506
  context,
10499
10507
  path: fullPath,
10508
+ databaseId: collection.databaseId,
10500
10509
  collection,
10501
10510
  parentCollectionIds
10502
10511
  };
@@ -11835,7 +11844,7 @@ function PopupFormFieldInternal({
11835
11844
  const customizationController = useCustomizationController();
11836
11845
  const [savingError, setSavingError] = React__default.useState();
11837
11846
  const [popupLocation, setPopupLocation] = useState();
11838
- const entityId = entityProp?.id;
11847
+ const entityId = entityProp.id;
11839
11848
  const [entity, setEntity] = useState(entityProp);
11840
11849
  const [internalValue, setInternalValue] = useState(entity?.values);
11841
11850
  const collection = inputCollection ? resolveCollection({
@@ -11979,9 +11988,8 @@ function PopupFormFieldInternal({
11979
11988
  includeDescription: false,
11980
11989
  underlyingValueHasChanged: false,
11981
11990
  context: formContext,
11982
- tableMode: true,
11983
11991
  partOfArray: false,
11984
- partOfBlock: false,
11992
+ minimalistView: false,
11985
11993
  autoFocus: open
11986
11994
  } : void 0;
11987
11995
  let internalForm = /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
@@ -12339,7 +12347,7 @@ const EntityCollectionView = React__default.memo(
12339
12347
  value,
12340
12348
  property,
12341
12349
  entityId
12342
- }) => dataSource.checkUniqueField(fullPath, name, value, entityId),
12350
+ }) => dataSource.checkUniqueField(fullPath, name, value, entityId, collection.databaseId),
12343
12351
  [fullPath]
12344
12352
  );
12345
12353
  const onValueChange = ({
@@ -12674,7 +12682,7 @@ const EntityCollectionView = React__default.memo(
12674
12682
  },
12675
12683
  `collection_table_${fullPath}`
12676
12684
  ),
12677
- /* @__PURE__ */ jsx(
12685
+ popupCell && /* @__PURE__ */ jsx(
12678
12686
  PopupFormField,
12679
12687
  {
12680
12688
  open: Boolean(popupCell),
@@ -12682,7 +12690,7 @@ const EntityCollectionView = React__default.memo(
12682
12690
  cellRect: popupCell?.cellRect,
12683
12691
  propertyKey: popupCell?.propertyKey,
12684
12692
  collection,
12685
- entity: popupCell?.entity,
12693
+ entity: popupCell.entity,
12686
12694
  tableKey: tableKey.current,
12687
12695
  customFieldValidator: uniqueFieldValidator,
12688
12696
  path: resolvedFullPath,
@@ -13951,7 +13959,7 @@ function ArrayOfReferencesFieldBinding({
13951
13959
  showError,
13952
13960
  disabled,
13953
13961
  isSubmitting,
13954
- tableMode,
13962
+ minimalistView,
13955
13963
  property,
13956
13964
  includeDescription,
13957
13965
  setValue,
@@ -14065,7 +14073,7 @@ function ArrayOfReferencesFieldBinding({
14065
14073
  ] })
14066
14074
  ] });
14067
14075
  return /* @__PURE__ */ jsxs(Fragment, { children: [
14068
- !tableMode && /* @__PURE__ */ jsx(
14076
+ !minimalistView && /* @__PURE__ */ jsx(
14069
14077
  ExpandablePanel,
14070
14078
  {
14071
14079
  titleClassName: fieldBackgroundMixin,
@@ -14075,7 +14083,7 @@ function ArrayOfReferencesFieldBinding({
14075
14083
  children: body
14076
14084
  }
14077
14085
  ),
14078
- tableMode && body,
14086
+ minimalistView && body,
14079
14087
  /* @__PURE__ */ jsx(
14080
14088
  FieldHelperText,
14081
14089
  {
@@ -14160,7 +14168,7 @@ function StorageUploadFieldBinding({
14160
14168
  error,
14161
14169
  showError,
14162
14170
  autoFocus,
14163
- tableMode,
14171
+ minimalistView,
14164
14172
  property,
14165
14173
  includeDescription,
14166
14174
  context,
@@ -14195,7 +14203,7 @@ function StorageUploadFieldBinding({
14195
14203
  setValue
14196
14204
  });
14197
14205
  return /* @__PURE__ */ jsxs(Fragment, { children: [
14198
- !tableMode && /* @__PURE__ */ jsx(
14206
+ !minimalistView && /* @__PURE__ */ jsx(
14199
14207
  LabelWithIcon,
14200
14208
  {
14201
14209
  icon: getIconForProperty(property, "small"),
@@ -14714,7 +14722,7 @@ function ReadOnlyFieldBinding({
14714
14722
  value,
14715
14723
  error,
14716
14724
  showError,
14717
- tableMode,
14725
+ minimalistView,
14718
14726
  property,
14719
14727
  includeDescription,
14720
14728
  context
@@ -14722,7 +14730,7 @@ function ReadOnlyFieldBinding({
14722
14730
  if (!context.entityId)
14723
14731
  throw new Error("ReadOnlyFieldBinding: Entity id is null");
14724
14732
  return /* @__PURE__ */ jsxs(Fragment, { children: [
14725
- !tableMode && /* @__PURE__ */ jsx(
14733
+ !minimalistView && /* @__PURE__ */ jsx(
14726
14734
  LabelWithIcon,
14727
14735
  {
14728
14736
  icon: getIconForProperty(property, "small"),
@@ -14770,6 +14778,7 @@ function ReferenceFieldBindingInternal({
14770
14778
  showError,
14771
14779
  isSubmitting,
14772
14780
  disabled,
14781
+ minimalistView,
14773
14782
  touched,
14774
14783
  autoFocus,
14775
14784
  property,
@@ -14810,7 +14819,7 @@ function ReferenceFieldBindingInternal({
14810
14819
  referenceDialogController.open();
14811
14820
  }, [referenceDialogController]);
14812
14821
  return /* @__PURE__ */ jsxs(Fragment, { children: [
14813
- /* @__PURE__ */ jsx(
14822
+ !minimalistView && /* @__PURE__ */ jsx(
14814
14823
  LabelWithIcon,
14815
14824
  {
14816
14825
  icon: getIconForProperty(property, "small"),
@@ -14890,9 +14899,8 @@ function PropertyFieldBindingInternal({
14890
14899
  includeDescription,
14891
14900
  underlyingValueHasChanged,
14892
14901
  disabled,
14893
- tableMode,
14894
14902
  partOfArray,
14895
- partOfBlock,
14903
+ minimalistView,
14896
14904
  autoFocus,
14897
14905
  index
14898
14906
  }) {
@@ -14954,9 +14962,8 @@ function PropertyFieldBindingInternal({
14954
14962
  underlyingValueHasChanged,
14955
14963
  context,
14956
14964
  disabled,
14957
- tableMode,
14958
14965
  partOfArray,
14959
- partOfBlock,
14966
+ minimalistView,
14960
14967
  autoFocus
14961
14968
  };
14962
14969
  return /* @__PURE__ */ jsx(
@@ -14979,9 +14986,8 @@ function FieldInternal({
14979
14986
  property,
14980
14987
  includeDescription,
14981
14988
  underlyingValueHasChanged,
14982
- tableMode,
14983
14989
  partOfArray,
14984
- partOfBlock,
14990
+ minimalistView,
14985
14991
  autoFocus,
14986
14992
  context,
14987
14993
  disabled
@@ -15026,9 +15032,8 @@ function FieldInternal({
15026
15032
  property,
15027
15033
  disabled: disabled ?? false,
15028
15034
  underlyingValueHasChanged: underlyingValueHasChanged ?? false,
15029
- tableMode: tableMode ?? false,
15030
15035
  partOfArray: partOfArray ?? false,
15031
- partOfBlock: partOfBlock ?? false,
15036
+ minimalistView: minimalistView ?? false,
15032
15037
  autoFocus: autoFocus ?? false,
15033
15038
  customProps: customFieldProps,
15034
15039
  context
@@ -15095,8 +15100,7 @@ function MapFieldBinding({
15095
15100
  error,
15096
15101
  disabled,
15097
15102
  property,
15098
- partOfBlock,
15099
- tableMode,
15103
+ minimalistView,
15100
15104
  includeDescription,
15101
15105
  underlyingValueHasChanged,
15102
15106
  autoFocus,
@@ -15129,9 +15133,8 @@ function MapFieldBinding({
15129
15133
  includeDescription,
15130
15134
  underlyingValueHasChanged,
15131
15135
  context,
15132
- tableMode: false,
15133
15136
  partOfArray: false,
15134
- partOfBlock: false,
15137
+ minimalistView: false,
15135
15138
  autoFocus: autoFocus && index === 0
15136
15139
  };
15137
15140
  return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsx(
@@ -15152,7 +15155,7 @@ function MapFieldBinding({
15152
15155
  }
15153
15156
  );
15154
15157
  return /* @__PURE__ */ jsxs(ErrorBoundary, { children: [
15155
- !tableMode && !partOfBlock && /* @__PURE__ */ jsx(
15158
+ !minimalistView && !minimalistView && /* @__PURE__ */ jsx(
15156
15159
  ExpandablePanel,
15157
15160
  {
15158
15161
  initiallyExpanded: expanded,
@@ -15161,7 +15164,7 @@ function MapFieldBinding({
15161
15164
  children: mapFormView
15162
15165
  }
15163
15166
  ),
15164
- (tableMode || partOfBlock) && mapFormView,
15167
+ (minimalistView || minimalistView) && mapFormView,
15165
15168
  /* @__PURE__ */ jsx(
15166
15169
  FieldHelperText,
15167
15170
  {
@@ -15182,7 +15185,7 @@ function KeyValueFieldBinding({
15182
15185
  disabled,
15183
15186
  property,
15184
15187
  setValue,
15185
- tableMode,
15188
+ minimalistView,
15186
15189
  includeDescription,
15187
15190
  underlyingValueHasChanged,
15188
15191
  autoFocus,
@@ -15213,7 +15216,7 @@ function KeyValueFieldBinding({
15213
15216
  }
15214
15217
  );
15215
15218
  return /* @__PURE__ */ jsxs(Fragment, { children: [
15216
- !tableMode && /* @__PURE__ */ jsx(
15219
+ !minimalistView && /* @__PURE__ */ jsx(
15217
15220
  ExpandablePanel,
15218
15221
  {
15219
15222
  initiallyExpanded: expanded,
@@ -15222,7 +15225,7 @@ function KeyValueFieldBinding({
15222
15225
  children: mapFormView
15223
15226
  }
15224
15227
  ),
15225
- tableMode && mapFormView,
15228
+ minimalistView && mapFormView,
15226
15229
  /* @__PURE__ */ jsx(
15227
15230
  FieldHelperText,
15228
15231
  {
@@ -15807,7 +15810,7 @@ function RepeatFieldBinding({
15807
15810
  isSubmitting,
15808
15811
  setValue,
15809
15812
  setFieldValue,
15810
- tableMode,
15813
+ minimalistView,
15811
15814
  property,
15812
15815
  includeDescription,
15813
15816
  underlyingValueHasChanged,
@@ -15835,9 +15838,8 @@ function RepeatFieldBinding({
15835
15838
  includeDescription,
15836
15839
  underlyingValueHasChanged,
15837
15840
  context,
15838
- tableMode: false,
15839
15841
  partOfArray: true,
15840
- partOfBlock: false,
15842
+ minimalistView: false,
15841
15843
  autoFocus: internalId === lastAddedId
15842
15844
  };
15843
15845
  return /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsx(PropertyFieldBinding, { ...fieldProps, index }) });
@@ -15873,7 +15875,7 @@ function RepeatFieldBinding({
15873
15875
  ] })
15874
15876
  ] });
15875
15877
  return /* @__PURE__ */ jsxs(Fragment, { children: [
15876
- !tableMode && /* @__PURE__ */ jsx(
15878
+ !minimalistView && /* @__PURE__ */ jsx(
15877
15879
  ExpandablePanel,
15878
15880
  {
15879
15881
  initiallyExpanded: expanded,
@@ -15882,7 +15884,7 @@ function RepeatFieldBinding({
15882
15884
  children: arrayContainer
15883
15885
  }
15884
15886
  ),
15885
- tableMode && arrayContainer,
15887
+ minimalistView && arrayContainer,
15886
15888
  /* @__PURE__ */ jsx(
15887
15889
  FieldHelperText,
15888
15890
  {
@@ -15903,7 +15905,7 @@ function BlockFieldBinding({
15903
15905
  isSubmitting,
15904
15906
  setValue,
15905
15907
  setFieldValue,
15906
- tableMode,
15908
+ minimalistView,
15907
15909
  property,
15908
15910
  includeDescription,
15909
15911
  underlyingValueHasChanged,
@@ -15963,7 +15965,7 @@ function BlockFieldBinding({
15963
15965
  }
15964
15966
  );
15965
15967
  return /* @__PURE__ */ jsxs(Fragment, { children: [
15966
- !tableMode && /* @__PURE__ */ jsx(
15968
+ !minimalistView && /* @__PURE__ */ jsx(
15967
15969
  ExpandablePanel,
15968
15970
  {
15969
15971
  className: "px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2",
@@ -15972,7 +15974,7 @@ function BlockFieldBinding({
15972
15974
  children: body
15973
15975
  }
15974
15976
  ),
15975
- tableMode && body,
15977
+ minimalistView && body,
15976
15978
  /* @__PURE__ */ jsx(
15977
15979
  FieldHelperText,
15978
15980
  {
@@ -16021,8 +16023,7 @@ function BlockEntry({
16021
16023
  context,
16022
16024
  autoFocus,
16023
16025
  partOfArray: false,
16024
- partOfBlock: true,
16025
- tableMode: false
16026
+ minimalistView: true
16026
16027
  } : void 0;
16027
16028
  const updateType = (newType) => {
16028
16029
  const newSelectedProperty = newType ? properties[newType] : void 0;
@@ -16031,7 +16032,7 @@ function BlockEntry({
16031
16032
  formex.setFieldValue(typeFieldName, newType);
16032
16033
  formex.setFieldValue(valueFieldName, newSelectedProperty ? getDefaultValueFor(newSelectedProperty) : null);
16033
16034
  };
16034
- return /* @__PURE__ */ jsxs("div", { className: cls(paperMixin, "bg-transparent p-4 my-4 py-8"), children: [
16035
+ return /* @__PURE__ */ jsxs("div", { className: cls(paperMixin, "bg-transparent p-2 mb-4"), children: [
16035
16036
  /* @__PURE__ */ jsx(
16036
16037
  Field,
16037
16038
  {
@@ -16090,681 +16091,118 @@ function BlockEntry({
16090
16091
  /* @__PURE__ */ jsx(PropertyFieldBinding, { ...fieldProps }, `form_control_${name}_${typeInternal}`)
16091
16092
  ] });
16092
16093
  }
16093
- const mdParser = new MarkdownIt();
16094
- try {
16095
- MdEditor.use(Plugins.AutoResize, {
16096
- min: 100
16097
- });
16098
- MdEditor.unuse(Plugins.FontUnderline);
16099
- MdEditor.unuse(Plugins.Clear);
16100
- } catch (e) {
16101
- }
16102
- function MarkdownFieldBinding({
16094
+ function MarkdownEditorFieldBinding({
16095
+ property,
16103
16096
  propertyKey,
16104
16097
  value,
16105
16098
  setValue,
16106
- error,
16107
- showError,
16108
- disabled,
16109
- autoFocus,
16110
- touched,
16111
- property,
16112
- tableMode,
16113
16099
  includeDescription,
16114
- context
16100
+ showError,
16101
+ error,
16102
+ minimalistView,
16103
+ isSubmitting,
16104
+ context,
16105
+ customProps,
16106
+ ...props
16115
16107
  }) {
16116
- const [internalValue, setInternalValue] = React__default.useState(value);
16117
- const valueRef = useRef(value);
16118
- useInjectStyles("MarkdownFieldBinding", markdownCss);
16119
- const deferred = useDeferredValue({
16120
- internalValue,
16121
- value
16122
- });
16108
+ const highlight = customProps?.highlight;
16109
+ const storageSource = useStorageSource();
16110
+ const storage = property.storage;
16111
+ const entityValues = context.values;
16112
+ const entityId = context.entityId;
16113
+ const path = context.path;
16114
+ const [fieldVersion, setFieldVersion] = useState(0);
16115
+ const internalValue = useRef(value);
16116
+ const onContentChange = useCallback((content) => {
16117
+ internalValue.current = content;
16118
+ setValue(content);
16119
+ }, [setValue]);
16123
16120
  useEffect(() => {
16124
- valueRef.current = value;
16125
- setInternalValue(value);
16121
+ if (internalValue.current !== value) {
16122
+ internalValue.current = value;
16123
+ setFieldVersion(fieldVersion + 1);
16124
+ }
16126
16125
  }, [value]);
16127
- useEffect(() => {
16128
- if (deferred.internalValue !== valueRef.current)
16129
- setValue(deferred.internalValue);
16130
- }, [deferred]);
16131
- return /* @__PURE__ */ jsxs(Fragment, { children: [
16132
- !tableMode && /* @__PURE__ */ jsx(
16133
- Typography,
16134
- {
16135
- variant: "caption",
16136
- className: "flex-grow",
16137
- children: /* @__PURE__ */ jsx(
16138
- LabelWithIcon,
16139
- {
16140
- icon: getIconForProperty(property, "small"),
16141
- required: property.validation?.required,
16142
- title: property.name,
16143
- className: "text-text-secondary dark:text-text-secondary-dark ml-3.5"
16144
- }
16145
- )
16126
+ const fileNameBuilder = useCallback(async (file) => {
16127
+ if (storage?.fileName) {
16128
+ const fileName = await resolveStorageFilenameString({
16129
+ input: storage.fileName,
16130
+ storage,
16131
+ values: entityValues,
16132
+ entityId,
16133
+ path,
16134
+ property,
16135
+ file,
16136
+ propertyKey
16137
+ });
16138
+ if (!fileName || fileName.length === 0) {
16139
+ throw Error("You need to return a valid filename");
16146
16140
  }
16147
- ),
16141
+ return fileName;
16142
+ }
16143
+ return randomString() + "_" + file.name;
16144
+ }, [entityId, entityValues, path, property, propertyKey, storage]);
16145
+ const storagePathBuilder = useCallback((file) => {
16146
+ if (!storage) return "/";
16147
+ return resolveStoragePathString({
16148
+ input: storage.storagePath,
16149
+ storage,
16150
+ values: entityValues,
16151
+ entityId,
16152
+ path,
16153
+ property,
16154
+ file,
16155
+ propertyKey
16156
+ }) ?? "/";
16157
+ }, [entityId, entityValues, path, property, propertyKey, storage]);
16158
+ const editor = /* @__PURE__ */ jsx(
16159
+ FireCMSEditor,
16160
+ {
16161
+ content: value,
16162
+ onMarkdownContentChange: onContentChange,
16163
+ version: context.formex.version + fieldVersion,
16164
+ highlight,
16165
+ handleImageUpload: async (file) => {
16166
+ const storagePath = storagePathBuilder(file);
16167
+ const fileName = await fileNameBuilder(file);
16168
+ const result = await storageSource.uploadFile({
16169
+ file,
16170
+ fileName,
16171
+ path: storagePath
16172
+ });
16173
+ const downloadConfig = await storageSource.getDownloadURL(result.path);
16174
+ const url = downloadConfig.url;
16175
+ if (!url) {
16176
+ throw new Error("Error uploading image");
16177
+ }
16178
+ return url;
16179
+ }
16180
+ }
16181
+ );
16182
+ if (minimalistView)
16183
+ return editor;
16184
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
16148
16185
  /* @__PURE__ */ jsx(
16149
- MdEditor,
16186
+ LabelWithIcon,
16150
16187
  {
16151
- value: internalValue ?? "",
16152
- className: cls(
16153
- fieldBackgroundMixin,
16154
- disabled ? fieldBackgroundDisabledMixin : fieldBackgroundHoverMixin,
16155
- "text-base"
16156
- ),
16157
- readOnly: disabled,
16158
- renderHTML: (text) => mdParser.render(text),
16159
- view: {
16160
- menu: true,
16161
- md: true,
16162
- html: false
16163
- },
16164
- onChange: ({
16165
- html,
16166
- text
16167
- }) => {
16168
- setInternalValue(text ?? null);
16169
- }
16188
+ icon: getIconForProperty(property, "small"),
16189
+ required: property.validation?.required,
16190
+ title: property.name,
16191
+ className: "text-text-secondary dark:text-text-secondary-dark ml-3.5"
16170
16192
  }
16171
16193
  ),
16194
+ /* @__PURE__ */ jsx(Paper, { children: editor }),
16172
16195
  /* @__PURE__ */ jsx(
16173
16196
  FieldHelperText,
16174
16197
  {
16175
16198
  includeDescription,
16176
16199
  showError,
16177
16200
  error,
16178
- disabled,
16179
16201
  property
16180
16202
  }
16181
16203
  )
16182
16204
  ] });
16183
16205
  }
16184
- const markdownCss = `
16185
- @font-face {
16186
- font-family: rmel-iconfont;
16187
- src: url(data:application/vnd.ms-fontobject;base64,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NS4BJyMOAd0VGwEBGxWRFRsbFWEcFBQcYRUbGxWRFRsBARsCK2EVGxsVkRUbAQEbKRySARsVYRwpGwEBGxWRFRsBHwEbFZEVGwEBGykcYRUbwwEbFWEcKRsBARsVkRUb/qscKRsBARsVkRUbGxUBtRQcYRUbGxWRFRsBARsAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQANABUAAQAAAAAAAgAHACIAAQAAAAAAAwANACkAAQAAAAAABAANADYAAQAAAAAABQALAEMAAQAAAAAABgANAE4AAQAAAAAACgArAFsAAQAAAAAACwATAIYAAwABBAkAAAAqAJkAAwABBAkAAQAaAMMAAwABBAkAAgAOAN0AAwABBAkAAwAaAOsAAwABBAkABAAaAQUAAwABBAkABQAWAR8AAwABBAkABgAaATUAAwABBAkACgBWAU8AAwABBAkACwAmAaUKQ3JlYXRlZCBieSBpY29uZm9udApybWVsLWljb25mb250UmVndWxhcnJtZWwtaWNvbmZvbnRybWVsLWljb25mb250VmVyc2lvbiAxLjBybWVsLWljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwADdGFiCGtleWJvYXJkBmRlbGV0ZQpjb2RlLWJsb2NrBGNvZGUKdmlzaWJpbGl0eQp2aWV3LXNwbGl0BGxpbmsEcmVkbwR1bmRvBGJvbGQGaXRhbGljDGxpc3Qtb3JkZXJlZA5saXN0LXVub3JkZXJlZAVxdW90ZQ1zdHJpa2V0aHJvdWdoCXVuZGVybGluZQR3cmFwCWZvbnQtc2l6ZQRncmlkBWltYWdlC2V4cGFuZC1sZXNzC2V4cGFuZC1tb3JlD2Z1bGxzY3JlZW4tZXhpdApmdWxsc2NyZWVuAAAAAAA=);
16188
- src: url(data:font/ttf;base64,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) format("truetype")
16189
- }
16190
-
16191
- .rmel-iconfont {
16192
- font-family: rmel-iconfont !important;
16193
- font-size: 16px;
16194
- font-style: normal;
16195
- -webkit-font-smoothing: antialiased;
16196
- -moz-osx-font-smoothing: grayscale
16197
- }
16198
-
16199
- .rmel-icon-tab:before {
16200
- content: "\\e76d"
16201
- }
16202
-
16203
- .rmel-icon-keyboard:before {
16204
- content: "\\ed80"
16205
- }
16206
-
16207
- .rmel-icon-delete:before {
16208
- content: "\\ed3c"
16209
- }
16210
-
16211
- .rmel-icon-code-block:before {
16212
- content: "\\e941"
16213
- }
16214
-
16215
- .rmel-icon-code:before {
16216
- content: "\\ed3b"
16217
- }
16218
-
16219
- .rmel-icon-visibility:before {
16220
- content: "\\ed44"
16221
- }
16222
-
16223
- .rmel-icon-view-split:before {
16224
- content: "\\ed45"
16225
- }
16226
-
16227
- .rmel-icon-link:before {
16228
- content: "\\ed5f"
16229
- }
16230
-
16231
- .rmel-icon-redo:before {
16232
- content: "\\ed60"
16233
- }
16234
-
16235
- .rmel-icon-undo:before {
16236
- content: "\\ed61"
16237
- }
16238
-
16239
- .rmel-icon-bold:before {
16240
- content: "\\ed6f"
16241
- }
16242
-
16243
- .rmel-icon-italic:before {
16244
- content: "\\ed70"
16245
- }
16246
-
16247
- .rmel-icon-list-ordered:before {
16248
- content: "\\ed71"
16249
- }
16250
-
16251
- .rmel-icon-list-unordered:before {
16252
- content: "\\ed72"
16253
- }
16254
-
16255
- .rmel-icon-quote:before {
16256
- content: "\\ed73"
16257
- }
16258
-
16259
- .rmel-icon-strikethrough:before {
16260
- content: "\\ed74"
16261
- }
16262
-
16263
- .rmel-icon-underline:before {
16264
- content: "\\ed75"
16265
- }
16266
-
16267
- .rmel-icon-wrap:before {
16268
- content: "\\ed77"
16269
- }
16270
-
16271
- .rmel-icon-font-size:before {
16272
- content: "\\ed78"
16273
- }
16274
-
16275
- .rmel-icon-grid:before {
16276
- content: "\\ed8c"
16277
- }
16278
-
16279
- .rmel-icon-image:before {
16280
- content: "\\ed8d"
16281
- }
16282
-
16283
- .rmel-icon-expand-less:before {
16284
- content: "\\ed9f"
16285
- }
16286
-
16287
- .rmel-icon-expand-more:before {
16288
- content: "\\eda0"
16289
- }
16290
-
16291
- .rmel-icon-fullscreen-exit:before {
16292
- content: "\\eda1"
16293
- }
16294
-
16295
- .rmel-icon-fullscreen:before {
16296
- content: "\\eda2"
16297
- }
16298
-
16299
- .rc-md-editor {
16300
- padding-bottom: 1px;
16301
- position: relative;
16302
- -webkit-box-sizing: border-box;
16303
- box-sizing: border-box;
16304
- display: -webkit-box;
16305
- display: -webkit-flex;
16306
- display: -ms-flexbox;
16307
- display: flex;
16308
- overflow: hidden;
16309
- -webkit-box-orient: vertical;
16310
- -webkit-box-direction: normal;
16311
- -webkit-flex-direction: column;
16312
- -ms-flex-direction: column;
16313
- flex-direction: column;
16314
- border-radius: 6px;
16315
- }
16316
-
16317
- .rc-md-editor.full {
16318
- width: 100%;
16319
- height: 100% !important;
16320
- position: fixed;
16321
- left: 0;
16322
- top: 0;
16323
- z-index: 1000
16324
- }
16325
-
16326
- .rc-md-editor .editor-container {
16327
- -webkit-box-flex: 1;
16328
- -webkit-flex: 1;
16329
- -ms-flex: 1;
16330
- flex: 1;
16331
- display: -webkit-box;
16332
- display: -webkit-flex;
16333
- display: -ms-flexbox;
16334
- display: flex;
16335
- width: 100%;
16336
- min-height: 0;
16337
- position: relative;
16338
-
16339
- }
16340
-
16341
- .rc-md-editor .editor-container > .section {
16342
- -webkit-box-flex: 1;
16343
- -webkit-flex-grow: 1;
16344
- -ms-flex-positive: 1;
16345
- flex-grow: 1;
16346
- -webkit-flex-shrink: 1;
16347
- -ms-flex-negative: 1;
16348
- flex-shrink: 1;
16349
- -webkit-flex-basis: 1px;
16350
- -ms-flex-preferred-size: 1px;
16351
- flex-basis: 1px;
16352
- padding: 0px 8px;
16353
- border: none
16354
- }
16355
-
16356
- .rc-md-editor .editor-container > .section.in-visible {
16357
- display: none
16358
- }
16359
-
16360
- .rc-md-editor .editor-container > .section > .section-container {
16361
- padding: 8x 16px 16px
16362
- }
16363
-
16364
- .rc-md-editor .editor-container > .section:last-child {
16365
- border-radius: unset
16366
- }
16367
-
16368
- .rc-md-editor .editor-container .sec-md {
16369
- min-height: 0;
16370
- min-width: 0;
16371
- overflow: hidden;
16372
- }
16373
-
16374
- .rc-md-editor .editor-container .sec-md .input {
16375
- background: transparent;
16376
- font-size: 1rem;
16377
- display: block;
16378
- -webkit-box-sizing: border-box;
16379
- box-sizing: border-box;
16380
- width: 100%;
16381
- height: 100%;
16382
- overflow-y: scroll;
16383
- border: none;
16384
- resize: none;
16385
- outline: none;
16386
- min-height: 0;
16387
- color: inherit;
16388
- line-height: 1.7;
16389
-
16390
- }
16391
-
16392
- .rc-md-editor .editor-container .sec-html {
16393
- min-height: 0;
16394
- min-width: 0;
16395
-
16396
- }
16397
-
16398
- .rc-md-editor .editor-container .sec-html .html-wrap {
16399
- height: 100%;
16400
- -webkit-box-sizing: border-box;
16401
- box-sizing: border-box;
16402
- overflow: auto
16403
- }
16404
-
16405
- .custom-html-style {
16406
- color: inherit
16407
- }
16408
-
16409
- .custom-html-style h1 {
16410
- font-size: 32px;
16411
- padding: 0;
16412
- border: none;
16413
- font-weight: 700;
16414
- margin: 32px 0;
16415
- line-height: 1.2
16416
- }
16417
-
16418
- .custom-html-style h2 {
16419
- font-size: 24px;
16420
- padding: 0;
16421
- border: none;
16422
- font-weight: 700;
16423
- margin: 24px 0;
16424
- line-height: 1.7
16425
- }
16426
-
16427
- .custom-html-style h3 {
16428
- font-size: 18px;
16429
- margin: 18px 0;
16430
- padding: 0;
16431
- line-height: 1.7;
16432
- border: none
16433
- }
16434
-
16435
- .custom-html-style p {
16436
- font-size: 16px;
16437
- line-height: 1.7;
16438
- margin: 8px 0
16439
- }
16440
-
16441
- .custom-html-style a {
16442
- }
16443
-
16444
- .custom-html-style a:hover {
16445
- text-decoration: none
16446
- }
16447
-
16448
- .custom-html-style strong {
16449
- font-weight: 700
16450
- }
16451
-
16452
- .custom-html-style ol, .custom-html-style ul {
16453
- font-size: 16px;
16454
- line-height: 28px;
16455
- padding-left: 36px
16456
- }
16457
-
16458
- .custom-html-style li {
16459
- margin-bottom: 8px;
16460
- line-height: 1.7
16461
- }
16462
-
16463
- .custom-html-style hr {
16464
- margin-top: 20px;
16465
- margin-bottom: 20px;
16466
- border: 0;
16467
- }
16468
-
16469
- .custom-html-style pre {
16470
- display: block;
16471
- padding: 20px;
16472
- line-height: 28px;
16473
- word-break: break-word
16474
- }
16475
-
16476
- .custom-html-style code, .custom-html-style pre {
16477
- font-size: 16px;
16478
- border-radius: 0;
16479
- overflow-x: auto
16480
- }
16481
-
16482
- .custom-html-style code {
16483
- padding: 3px 0;
16484
- margin: 0;
16485
- word-break: normal
16486
- }
16487
-
16488
- .custom-html-style code:after, .custom-html-style code:before {
16489
- letter-spacing: 0
16490
- }
16491
-
16492
- .custom-html-style blockquote {
16493
- position: relative;
16494
- margin: 16px 0;
16495
- padding: 5px 8px 5px 30px;
16496
- background: none repeat scroll 0 0 ${"rgb(39 39 41)"};
16497
- color: inherit;
16498
- border: none;
16499
- border-left: 10px solid #d6dbdf
16500
- }
16501
-
16502
- .custom-html-style img, .custom-html-style video {
16503
- max-width: 100%
16504
- }
16505
-
16506
- .custom-html-style table {
16507
- font-size: 16px;
16508
- line-height: 1.7;
16509
- max-width: 100%;
16510
- overflow: auto;
16511
-
16512
- border-collapse: collapse;
16513
- border-spacing: 0;
16514
- -webkit-box-sizing: border-box;
16515
- box-sizing: border-box
16516
- }
16517
-
16518
- .custom-html-style table td, .custom-html-style table th {
16519
- word-break: break-all;
16520
- word-wrap: break-word;
16521
- white-space: normal
16522
- }
16523
-
16524
- .custom-html-style table tr {
16525
- }
16526
-
16527
- .custom-html-style table tr:nth-of-type(2n) {
16528
- background-color: transparent
16529
- }
16530
-
16531
- .custom-html-style table th {
16532
- text-align: center;
16533
- font-weight: 700;
16534
-
16535
- padding: 10px 6px;
16536
- background-color: #f5f7fa;
16537
- word-break: break-word
16538
- }
16539
-
16540
- .custom-html-style table td {
16541
-
16542
- text-align: left;
16543
- padding: 10px 15px;
16544
- word-break: break-word;
16545
- min-width: 60px
16546
- }
16547
-
16548
- .rc-md-editor .drop-wrap {
16549
- display: block;
16550
- position: absolute;
16551
- left: 0;
16552
- top: 28px;
16553
- z-index: 2;
16554
- min-width: 20px;
16555
- padding: 10px 0;
16556
- text-align: center;
16557
- border-style: solid;
16558
- border-width: 1px
16559
- }
16560
-
16561
- .rc-md-editor .drop-wrap.hidden {
16562
- display: none !important
16563
- }
16564
-
16565
- .rc-md-editor .rc-md-navigation {
16566
- min-height: 38px;
16567
- padding: 0 8px;
16568
- -webkit-box-sizing: border-box;
16569
- box-sizing: border-box;
16570
- font-size: 16px;
16571
- -webkit-user-select: none;
16572
- -moz-user-select: none;
16573
- -ms-user-select: none;
16574
- user-select: none;
16575
- display: -webkit-box;
16576
- display: -webkit-flex;
16577
- display: -ms-flexbox;
16578
- display: flex;
16579
- -webkit-box-orient: horizontal;
16580
- -webkit-box-direction: normal;
16581
- -webkit-flex-direction: row;
16582
- -ms-flex-direction: row;
16583
- flex-direction: row;
16584
- -webkit-box-pack: justify;
16585
- -webkit-justify-content: space-between;
16586
- -ms-flex-pack: justify;
16587
- justify-content: space-between;
16588
- color: "inherit",
16589
-
16590
- }
16591
-
16592
- .rc-md-editor .rc-md-navigation.in-visible {
16593
- display: none
16594
- }
16595
-
16596
- .rc-md-editor .rc-md-navigation .navigation-nav {
16597
- -webkit-box-align: center;
16598
- -webkit-align-items: center;
16599
- -ms-flex-align: center;
16600
- align-items: center;
16601
- -webkit-box-pack: center;
16602
- -webkit-justify-content: center;
16603
- -ms-flex-pack: center;
16604
- justify-content: center;
16605
- font-size: 16px;
16606
- }
16607
-
16608
- .rc-md-editor .rc-md-navigation .button-wrap, .rc-md-editor .rc-md-navigation .navigation-nav {
16609
- display: -webkit-box;
16610
- display: -webkit-flex;
16611
- display: -ms-flexbox;
16612
- display: flex;
16613
- -webkit-box-orient: horizontal;
16614
- -webkit-box-direction: normal;
16615
- -webkit-flex-direction: row;
16616
- -ms-flex-direction: row;
16617
- flex-direction: row
16618
- }
16619
-
16620
- .rc-md-editor .rc-md-navigation .button-wrap {
16621
- -webkit-flex-wrap: wrap;
16622
- -ms-flex-wrap: wrap;
16623
- flex-wrap: wrap
16624
- }
16625
-
16626
- .rc-md-editor .rc-md-navigation .button-wrap .button {
16627
- position: relative;
16628
- min-width: 22px;
16629
- height: 28px;
16630
- margin-left: 3px;
16631
- margin-right: -2px;
16632
- display: inline-block;
16633
- cursor: pointer;
16634
- line-height: 28px;
16635
- text-align: center;
16636
- }
16637
-
16638
- .rc-md-editor .rc-md-navigation .button-wrap .button:hover {
16639
- }
16640
-
16641
- .rc-md-editor .rc-md-navigation .button-wrap .button.disabled {
16642
- cursor: not-allowed
16643
- }
16644
-
16645
- .rc-md-editor .rc-md-navigation .button-wrap .button:first-of-type {
16646
- margin-left: 0
16647
- }
16648
-
16649
- .rc-md-editor .rc-md-navigation .button-wrap .button:last-child {
16650
- margin-right: 0
16651
- }
16652
-
16653
- .rc-md-editor .rc-md-navigation .button-wrap .rmel-iconfont {
16654
- font-size: 18px
16655
- }
16656
-
16657
- .rc-md-editor .rc-md-navigation li, .rc-md-editor .rc-md-navigation ul {
16658
- list-style: none;
16659
- margin: 0;
16660
- padding: 0
16661
- }
16662
-
16663
- .rc-md-editor .rc-md-navigation .h1, .rc-md-editor .rc-md-navigation .h2, .rc-md-editor .rc-md-navigation .h3, .rc-md-editor .rc-md-navigation .h4, .rc-md-editor .rc-md-navigation .h5, .rc-md-editor .rc-md-navigation .h6, .rc-md-editor .rc-md-navigation h1, .rc-md-editor .rc-md-navigation h2, .rc-md-editor .rc-md-navigation h3, .rc-md-editor .rc-md-navigation h4, .rc-md-editor .rc-md-navigation h5, .rc-md-editor .rc-md-navigation h6 {
16664
- font-family: inherit;
16665
- font-weight: 500;
16666
- color: inherit;
16667
- padding: 0;
16668
- margin: 0;
16669
- line-height: 1.1
16670
- }
16671
-
16672
- .rc-md-editor .rc-md-navigation h1 {
16673
- font-size: 34px
16674
- }
16675
-
16676
- .rc-md-editor .rc-md-navigation h2 {
16677
- font-size: 30px
16678
- }
16679
-
16680
- .rc-md-editor .rc-md-navigation h3 {
16681
- font-size: 24px
16682
- }
16683
-
16684
- .rc-md-editor .rc-md-navigation h4 {
16685
- font-size: 18px
16686
- }
16687
-
16688
- .rc-md-editor .rc-md-navigation h5 {
16689
- font-size: 16px
16690
- }
16691
-
16692
- .rc-md-editor .rc-md-navigation h6 {
16693
- font-size: 12px
16694
- }
16695
-
16696
- .rc-md-editor .tool-bar {
16697
- position: absolute;
16698
- z-index: 1;
16699
- right: 8px;
16700
- top: 8px
16701
- }
16702
-
16703
- .rc-md-editor .tool-bar .button {
16704
- min-width: 24px;
16705
- height: 28px;
16706
- margin-right: 5px;
16707
- display: inline-block;
16708
- cursor: pointer;
16709
- font-size: 16px;
16710
- line-height: 28px;
16711
- text-align: center;
16712
- color: #999
16713
- }
16714
-
16715
- .rc-md-editor .tool-bar .button:hover {
16716
- color: inherit
16717
- }
16718
-
16719
- .rc-md-editor .rc-md-gray-100 {
16720
- display: block;
16721
- width: 1px;
16722
- }
16723
-
16724
- .rc-md-editor .table-list.wrap {
16725
- position: relative;
16726
- margin: 0 10px;
16727
- -webkit-box-sizing: border-box;
16728
- box-sizing: border-box
16729
- }
16730
-
16731
- .rc-md-editor .table-list.wrap .list-item {
16732
- position: absolute;
16733
- top: 0;
16734
- left: 0;
16735
- display: inline-block;
16736
- width: 20px;
16737
- height: 20px;
16738
- border-radius: 4px
16739
- }
16740
-
16741
- .rc-md-editor .table-list.wrap .list-item.active {
16742
- }
16743
-
16744
- .rc-md-editor .tab-map-list .list-item {
16745
- width: 120px;
16746
- -webkit-box-sizing: border-box;
16747
- box-sizing: border-box
16748
- }
16749
-
16750
- .rc-md-editor .tab-map-list .list-item:hover {
16751
- }
16752
-
16753
- .rc-md-editor .tab-map-list .list-item.active {
16754
- font-weight: 700
16755
- }
16756
-
16757
- .rc-md-editor .header-list .list-item {
16758
- width: 100px;
16759
- -webkit-box-sizing: border-box;
16760
- box-sizing: border-box;
16761
- padding: 8px 0
16762
- }
16763
-
16764
- .rc-md-editor .header-list .list-item:hover {
16765
- }
16766
-
16767
- `;
16768
16206
  function ArrayCustomShapedFieldBinding({
16769
16207
  propertyKey,
16770
16208
  value,
@@ -16772,7 +16210,7 @@ function ArrayCustomShapedFieldBinding({
16772
16210
  showError,
16773
16211
  isSubmitting,
16774
16212
  setValue,
16775
- tableMode,
16213
+ minimalistView,
16776
16214
  property,
16777
16215
  includeDescription,
16778
16216
  underlyingValueHasChanged,
@@ -16811,15 +16249,14 @@ function ArrayCustomShapedFieldBinding({
16811
16249
  includeDescription,
16812
16250
  underlyingValueHasChanged,
16813
16251
  context,
16814
- tableMode: false,
16815
16252
  partOfArray: true,
16816
- partOfBlock: false,
16253
+ minimalistView: false,
16817
16254
  autoFocus: false
16818
16255
  };
16819
16256
  return /* @__PURE__ */ jsx("div", { className: "pb-4", children: /* @__PURE__ */ jsx(PropertyFieldBinding, { ...fieldProps }) }, `custom_shaped_array_${index}`);
16820
16257
  });
16821
16258
  return /* @__PURE__ */ jsxs(Fragment, { children: [
16822
- !tableMode && /* @__PURE__ */ jsx(
16259
+ !minimalistView && /* @__PURE__ */ jsx(
16823
16260
  ExpandablePanel,
16824
16261
  {
16825
16262
  initiallyExpanded: expanded,
@@ -16828,7 +16265,7 @@ function ArrayCustomShapedFieldBinding({
16828
16265
  children: body
16829
16266
  }
16830
16267
  ),
16831
- tableMode && body,
16268
+ minimalistView && body,
16832
16269
  /* @__PURE__ */ jsx(
16833
16270
  FieldHelperText,
16834
16271
  {
@@ -16877,7 +16314,7 @@ const DEFAULT_FIELD_CONFIGS = {
16877
16314
  property: {
16878
16315
  dataType: "string",
16879
16316
  markdown: true,
16880
- Field: MarkdownFieldBinding
16317
+ Field: MarkdownEditorFieldBinding
16881
16318
  }
16882
16319
  },
16883
16320
  url: {
@@ -18153,7 +17590,7 @@ function EntityEditViewInner({
18153
17590
  name,
18154
17591
  value,
18155
17592
  property
18156
- }) => dataSource.checkUniqueField(path, name, value, entityId),
17593
+ }) => dataSource.checkUniqueField(path, name, value, entityId, collection.databaseId),
18157
17594
  [dataSource, path, entityId]
18158
17595
  );
18159
17596
  const validationSchema = useMemo(
@@ -18214,9 +17651,8 @@ function EntityEditViewInner({
18214
17651
  includeDescription: property.description || property.longDescription,
18215
17652
  underlyingValueHasChanged: underlyingValueHasChanged && !autoSave,
18216
17653
  context: formContext,
18217
- tableMode: false,
18218
17654
  partOfArray: false,
18219
- partOfBlock: false,
17655
+ minimalistView: false,
18220
17656
  autoFocus: false
18221
17657
  };
18222
17658
  return /* @__PURE__ */ jsx(
@@ -19120,7 +18556,7 @@ function useBuildDataSource({
19120
18556
  */
19121
18557
  fetchCollection: useCallback(({
19122
18558
  path,
19123
- collection: collectionProp,
18559
+ collection,
19124
18560
  filter,
19125
18561
  limit,
19126
18562
  startAfter,
@@ -19135,7 +18571,8 @@ function useBuildDataSource({
19135
18571
  startAfter,
19136
18572
  searchString,
19137
18573
  orderBy,
19138
- order
18574
+ order,
18575
+ collection
19139
18576
  });
19140
18577
  }, [delegate]),
19141
18578
  /**
@@ -19167,7 +18604,7 @@ function useBuildDataSource({
19167
18604
  onError
19168
18605
  }) => {
19169
18606
  const collection = collectionProp ?? navigationController.getCollection(path);
19170
- const isCollectionGroup = Boolean(collection?.collectionGroup) ?? false;
18607
+ Boolean(collection?.collectionGroup);
19171
18608
  if (!delegate.listenCollection)
19172
18609
  throw Error("useBuildDataSource delegate not initialised");
19173
18610
  return delegate.listenCollection({
@@ -19180,7 +18617,6 @@ function useBuildDataSource({
19180
18617
  order,
19181
18618
  onUpdate,
19182
18619
  onError,
19183
- isCollectionGroup,
19184
18620
  collection
19185
18621
  });
19186
18622
  }, [delegate, navigationController.getCollection]) : void 0,
@@ -19193,10 +18629,12 @@ function useBuildDataSource({
19193
18629
  */
19194
18630
  fetchEntity: useCallback(({
19195
18631
  path,
19196
- entityId
18632
+ entityId,
18633
+ collection
19197
18634
  }) => delegate.fetchEntity({
19198
18635
  path,
19199
- entityId
18636
+ entityId,
18637
+ collection
19200
18638
  }), [delegate]),
19201
18639
  /**
19202
18640
  *
@@ -19221,7 +18659,8 @@ function useBuildDataSource({
19221
18659
  path,
19222
18660
  entityId,
19223
18661
  onUpdate,
19224
- onError
18662
+ onError,
18663
+ collection
19225
18664
  });
19226
18665
  }, [delegate.listenEntity]) : void 0,
19227
18666
  /**
@@ -19243,6 +18682,14 @@ function useBuildDataSource({
19243
18682
  status
19244
18683
  }) => {
19245
18684
  const collection = collectionProp ?? navigationController.getCollection(path);
18685
+ console.log("useBuildDatasource save", {
18686
+ path,
18687
+ entityId,
18688
+ values,
18689
+ collectionProp,
18690
+ collection,
18691
+ status
18692
+ });
19246
18693
  const resolvedCollection = collection ? resolveCollection({
19247
18694
  collection,
19248
18695
  path,
@@ -19264,6 +18711,7 @@ function useBuildDataSource({
19264
18711
  ) : firestoreValues;
19265
18712
  return delegate.saveEntity({
19266
18713
  path,
18714
+ collection,
19267
18715
  entityId,
19268
18716
  values: updatedFirestoreValues,
19269
18717
  status
@@ -19296,8 +18744,8 @@ function useBuildDataSource({
19296
18744
  * @return `true` if there are no other fields besides the given entity
19297
18745
  * @group Firestore
19298
18746
  */
19299
- checkUniqueField: useCallback((path, name, value, entityId) => {
19300
- return delegate.checkUniqueField(path, name, value, entityId);
18747
+ checkUniqueField: useCallback((path, name, value, entityId, databaseId) => {
18748
+ return delegate.checkUniqueField(path, name, value, entityId, databaseId);
19301
18749
  }, [delegate.checkUniqueField]),
19302
18750
  generateEntityId: useCallback((path) => {
19303
18751
  return delegate.generateEntityId(path);
@@ -19314,11 +18762,12 @@ function useBuildDataSource({
19314
18762
  filter,
19315
18763
  orderBy,
19316
18764
  order,
19317
- isCollectionGroup: Boolean(collection.collectionGroup)
18765
+ collection
19318
18766
  });
19319
18767
  } : void 0,
19320
18768
  isFilterCombinationValid: useCallback(({
19321
18769
  path,
18770
+ databaseId,
19322
18771
  filterValues,
19323
18772
  sortBy
19324
18773
  }) => {
@@ -19327,6 +18776,7 @@ function useBuildDataSource({
19327
18776
  return delegate.isFilterCombinationValid(
19328
18777
  {
19329
18778
  path,
18779
+ databaseId,
19330
18780
  filterValues,
19331
18781
  sortBy
19332
18782
  }
@@ -19832,7 +19282,7 @@ function DefaultDrawer({
19832
19282
  };
19833
19283
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cls("flex flex-col h-full relative flex-grow w-full", className), style, children: [
19834
19284
  /* @__PURE__ */ jsx(DrawerLogo, { logo }),
19835
- /* @__PURE__ */ jsx("div", { className: "overflow-scroll no-scrollbar", children: groupsWithoutAdmin.map((group) => /* @__PURE__ */ jsxs(
19285
+ /* @__PURE__ */ jsx("div", { className: "flex-grow overflow-scroll no-scrollbar", children: groupsWithoutAdmin.map((group) => /* @__PURE__ */ jsxs(
19836
19286
  React__default.Fragment,
19837
19287
  {
19838
19288
  children: [
@@ -20102,7 +19552,7 @@ export {
20102
19552
  LabelWithIcon,
20103
19553
  MapFieldBinding,
20104
19554
  MapPropertyPreview,
20105
- MarkdownFieldBinding,
19555
+ MarkdownEditorFieldBinding,
20106
19556
  ModeControllerContext,
20107
19557
  ModeControllerProvider,
20108
19558
  MultiSelectBinding,
@@ -20244,6 +19694,8 @@ export {
20244
19694
  resolveProperties,
20245
19695
  resolveProperty,
20246
19696
  resolvePropertyEnum,
19697
+ resolveStorageFilenameString,
19698
+ resolveStoragePathString,
20247
19699
  sanitizeData,
20248
19700
  saveEntityWithCallbacks,
20249
19701
  segmentsToStrippedPath,