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

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