@firecms/core 3.5.2-canary.09e1281 → 3.5.2-canary.c5764a3

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 (27) hide show
  1. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +0 -5
  2. package/dist/components/EntityCollectionView/utils.d.ts +3 -3
  3. package/dist/index.es.js +676 -817
  4. package/dist/index.es.js.map +1 -1
  5. package/dist/index.umd.js +670 -811
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/internal/useUnsavedChangesDialog.d.ts +12 -0
  8. package/dist/types/side_dialogs_controller.d.ts +2 -4
  9. package/package.json +3 -3
  10. package/src/components/EntityCollectionView/EntityCollectionView.tsx +111 -12
  11. package/src/components/EntityCollectionView/utils.ts +7 -7
  12. package/src/components/common/default_entity_actions.tsx +1 -2
  13. package/src/core/DefaultAppBar.tsx +9 -12
  14. package/src/core/EntityEditView.tsx +1 -26
  15. package/src/core/SideDialogs.tsx +13 -6
  16. package/src/hooks/useReferenceDialog.tsx +2 -2
  17. package/src/internal/useBuildSideDialogsController.tsx +2 -44
  18. package/src/internal/useUnsavedChangesDialog.tsx +142 -0
  19. package/src/types/side_dialogs_controller.tsx +2 -4
  20. package/dist/components/EntityCollectionView/CollectionCountBadge.d.ts +0 -8
  21. package/dist/components/EntityCollectionView/CollectionPathTitle.d.ts +0 -24
  22. package/dist/components/EntityCollectionView/EntityIdHeaderWidget.d.ts +0 -12
  23. package/dist/internal/useLeavePageConfirmation.d.ts +0 -11
  24. package/src/components/EntityCollectionView/CollectionCountBadge.tsx +0 -17
  25. package/src/components/EntityCollectionView/CollectionPathTitle.tsx +0 -68
  26. package/src/components/EntityCollectionView/EntityIdHeaderWidget.tsx +0 -124
  27. package/src/internal/useLeavePageConfirmation.ts +0 -25
package/dist/index.es.js CHANGED
@@ -4805,7 +4805,7 @@ function getLoadedDateFnsLocale(locale) {
4805
4805
  }
4806
4806
  function useDateFnsLocale(locale) {
4807
4807
  const $ = c(7);
4808
- const [, forceUpdate] = useReducer(_temp$C, 0);
4808
+ const [, forceUpdate] = useReducer(_temp$A, 0);
4809
4809
  let t0;
4810
4810
  if ($[0] !== forceUpdate || $[1] !== locale) {
4811
4811
  t0 = () => {
@@ -4848,7 +4848,7 @@ function useDateFnsLocale(locale) {
4848
4848
  }
4849
4849
  return t2;
4850
4850
  }
4851
- function _temp$C(count) {
4851
+ function _temp$A(count) {
4852
4852
  return count + 1;
4853
4853
  }
4854
4854
  const CONTAINER_FULL_WIDTH = "100vw";
@@ -5065,7 +5065,7 @@ function useCollectionFetch(t0) {
5065
5065
  }
5066
5066
  setDataLoading(false);
5067
5067
  setDataLoadingError(void 0);
5068
- setData(entities.map(_temp$B));
5068
+ setData(entities.map(_temp$z));
5069
5069
  setNoMoreToLoad(!itemCount || entities.length < itemCount);
5070
5070
  };
5071
5071
  const onError = (error) => {
@@ -5100,7 +5100,7 @@ function useCollectionFetch(t0) {
5100
5100
  orderBy: sortByProperty,
5101
5101
  order: currentSort
5102
5102
  }).then(onEntitiesUpdate).catch(onError);
5103
- return _temp2$h;
5103
+ return _temp2$g;
5104
5104
  }
5105
5105
  };
5106
5106
  $[8] = collection;
@@ -5149,9 +5149,9 @@ function useCollectionFetch(t0) {
5149
5149
  }
5150
5150
  return t6;
5151
5151
  }
5152
- function _temp2$h() {
5152
+ function _temp2$g() {
5153
5153
  }
5154
- function _temp$B(e_1) {
5154
+ function _temp$z(e_1) {
5155
5155
  return {
5156
5156
  ...e_1
5157
5157
  };
@@ -5364,7 +5364,7 @@ function useEntityFetch(t0) {
5364
5364
  setEntity(CACHE[entityCacheKey(path, entityId)]);
5365
5365
  setDataLoading(false);
5366
5366
  setDataLoadingError(void 0);
5367
- return _temp$A;
5367
+ return _temp$y;
5368
5368
  } else {
5369
5369
  if (entityId && path && collection) {
5370
5370
  if (dataSource.listenEntity) {
@@ -5385,7 +5385,7 @@ function useEntityFetch(t0) {
5385
5385
  databaseId,
5386
5386
  collection
5387
5387
  }).then(onEntityUpdate).catch(onError);
5388
- return _temp2$g;
5388
+ return _temp2$f;
5389
5389
  }
5390
5390
  } else {
5391
5391
  onEntityUpdate(void 0);
@@ -5433,9 +5433,9 @@ function useEntityFetch(t0) {
5433
5433
  }
5434
5434
  function _temp3$6() {
5435
5435
  }
5436
- function _temp2$g() {
5436
+ function _temp2$f() {
5437
5437
  }
5438
- function _temp$A() {
5438
+ function _temp$y() {
5439
5439
  }
5440
5440
  async function saveEntityWithCallbacks({
5441
5441
  collection,
@@ -6090,7 +6090,7 @@ function ImagePreview(t0) {
6090
6090
  }
6091
6091
  let t9;
6092
6092
  if ($[19] !== url) {
6093
- t9 = /* @__PURE__ */ jsx(Tooltip, { title: "Open image in new tab", side: "bottom", children: /* @__PURE__ */ jsx(IconButton, { className: "invisible group-hover:visible", variant: "filled", component: "a", href: url, rel: "noopener noreferrer", target: "_blank", size: "smallest", onClick: _temp$z, children: t8 }) });
6093
+ t9 = /* @__PURE__ */ jsx(Tooltip, { title: "Open image in new tab", side: "bottom", children: /* @__PURE__ */ jsx(IconButton, { className: "invisible group-hover:visible", variant: "filled", component: "a", href: url, rel: "noopener noreferrer", target: "_blank", size: "smallest", onClick: _temp$x, children: t8 }) });
6094
6094
  $[19] = url;
6095
6095
  $[20] = t9;
6096
6096
  } else {
@@ -6124,7 +6124,7 @@ function ImagePreview(t0) {
6124
6124
  }
6125
6125
  return t11;
6126
6126
  }
6127
- function _temp$z(e_0) {
6127
+ function _temp$x(e_0) {
6128
6128
  return e_0.stopPropagation();
6129
6129
  }
6130
6130
  const FIRECMS_NS$1 = "firecms_core";
@@ -6191,7 +6191,7 @@ function UrlComponentPreview(t0) {
6191
6191
  }
6192
6192
  let t3;
6193
6193
  if ($[2] !== url) {
6194
- t3 = /* @__PURE__ */ jsxs("a", { className: "flex gap-4 break-words items-center font-medium text-primary visited:text-primary dark:visited:text-primary dark:text-primary", href: url, rel: "noopener noreferrer", onMouseDown: _temp$y, target: "_blank", children: [
6194
+ t3 = /* @__PURE__ */ jsxs("a", { className: "flex gap-4 break-words items-center font-medium text-primary visited:text-primary dark:visited:text-primary dark:text-primary", href: url, rel: "noopener noreferrer", onMouseDown: _temp$w, target: "_blank", children: [
6195
6195
  t2,
6196
6196
  url
6197
6197
  ] });
@@ -6293,7 +6293,7 @@ function UrlComponentPreview(t0) {
6293
6293
  }
6294
6294
  let t7;
6295
6295
  if ($[27] !== t4 || $[28] !== t6 || $[29] !== url) {
6296
- t7 = /* @__PURE__ */ jsxs("a", { href: url, rel: "noopener noreferrer", target: "_blank", onClick: _temp2$f, className: "flex flex-col items-center justify-center", style: t4, children: [
6296
+ t7 = /* @__PURE__ */ jsxs("a", { href: url, rel: "noopener noreferrer", target: "_blank", onClick: _temp2$e, className: "flex flex-col items-center justify-center", style: t4, children: [
6297
6297
  t5,
6298
6298
  t6
6299
6299
  ] });
@@ -6318,10 +6318,10 @@ function UrlComponentPreview(t0) {
6318
6318
  }
6319
6319
  }
6320
6320
  }
6321
- function _temp2$f(e_0) {
6321
+ function _temp2$e(e_0) {
6322
6322
  return e_0.stopPropagation();
6323
6323
  }
6324
- function _temp$y(e) {
6324
+ function _temp$w(e) {
6325
6325
  e.preventDefault();
6326
6326
  }
6327
6327
  function VideoPreview(t0) {
@@ -6455,7 +6455,7 @@ function SkeletonPropertyComponent(t0) {
6455
6455
  if (Array.isArray(arrayProperty.of)) {
6456
6456
  let t1;
6457
6457
  if ($[6] !== arrayProperty.of) {
6458
- t1 = arrayProperty.of.map(_temp$x);
6458
+ t1 = arrayProperty.of.map(_temp$v);
6459
6459
  $[6] = arrayProperty.of;
6460
6460
  $[7] = t1;
6461
6461
  } else {
@@ -6593,7 +6593,7 @@ function SkeletonPropertyComponent(t0) {
6593
6593
  }
6594
6594
  return content || null;
6595
6595
  }
6596
- function _temp$x(p, i) {
6596
+ function _temp$v(p, i) {
6597
6597
  return renderGenericArrayCell(p, i);
6598
6598
  }
6599
6599
  function renderMap(property, size) {
@@ -7784,7 +7784,7 @@ function DatePreview(t0) {
7784
7784
  timeZoneName: "short"
7785
7785
  });
7786
7786
  const parts = tzFormatter.formatToParts(date);
7787
- t32 = parts.find(_temp$w)?.value ?? "";
7787
+ t32 = parts.find(_temp$u)?.value ?? "";
7788
7788
  $[6] = date;
7789
7789
  $[7] = timezone;
7790
7790
  $[8] = t32;
@@ -7855,7 +7855,7 @@ function DatePreview(t0) {
7855
7855
  }
7856
7856
  return t3;
7857
7857
  }
7858
- function _temp$w(p) {
7858
+ function _temp$u(p) {
7859
7859
  return p.type === "timeZoneName";
7860
7860
  }
7861
7861
  function MapPropertyPreview(t0) {
@@ -7950,7 +7950,7 @@ function KeyValuePreview(t0) {
7950
7950
  }
7951
7951
  let t1;
7952
7952
  if ($[1] !== value) {
7953
- t1 = Object.entries(value).map(_temp$v);
7953
+ t1 = Object.entries(value).map(_temp$t);
7954
7954
  $[1] = value;
7955
7955
  $[2] = t1;
7956
7956
  } else {
@@ -7966,7 +7966,7 @@ function KeyValuePreview(t0) {
7966
7966
  }
7967
7967
  return t2;
7968
7968
  }
7969
- function _temp$v(t0) {
7969
+ function _temp$t(t0) {
7970
7970
  const [key, childValue] = t0;
7971
7971
  const isTimestampObj = childValue && typeof childValue === "object" && (childValue instanceof Date || "_seconds" in childValue && "_nanoseconds" in childValue && typeof childValue._seconds === "number" && typeof childValue._nanoseconds === "number" || "seconds" in childValue && "nanoseconds" in childValue && typeof childValue.seconds === "number" && typeof childValue.nanoseconds === "number");
7972
7972
  const isScalar = childValue && (typeof childValue !== "object" || isTimestampObj);
@@ -9289,7 +9289,7 @@ function VirtualTableSelect(props) {
9289
9289
  console.trace("onChange");
9290
9290
  if (valueType === "number") {
9291
9291
  if (multiple) {
9292
- const newValue = updatedValue.map(_temp$u);
9292
+ const newValue = updatedValue.map(_temp$s);
9293
9293
  updateValue(newValue);
9294
9294
  } else {
9295
9295
  updateValue(parseFloat(updatedValue));
@@ -9342,7 +9342,7 @@ function VirtualTableSelect(props) {
9342
9342
  const handleOpenChange = t4;
9343
9343
  let t5;
9344
9344
  if ($[11] !== disabled || $[12] !== enumValues || $[13] !== internalValue || $[14] !== multiple || $[15] !== onChange || $[16] !== renderValue || $[17] !== small || $[18] !== validValue) {
9345
- t5 = multiple ? /* @__PURE__ */ jsx(MultiSelect, { inputRef: ref, className: "w-full h-full p-0 bg-transparent outline-none", position: "item-aligned", disabled, includeClear: false, useChips: false, value: validValue ? internalValue.map(_temp2$e) : [], onValueChange: onChange, onOpenChange: handleOpenChange, children: enumValues?.map((enumConfig) => /* @__PURE__ */ jsx(MultiSelectItem, { value: String(enumConfig.id), children: /* @__PURE__ */ jsx(EnumValuesChip, { enumKey: enumConfig.id, enumValues, size: small ? "small" : "medium" }) }, enumConfig.id)) }) : /* @__PURE__ */ jsx(Select, { inputRef: ref, size: "large", fullWidth: true, className: "w-full h-full p-0 bg-transparent outline-none [&_button]:ring-0 [&_button]:ring-offset-0", inputClassName: "ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 outline-none focus:outline-none focus-visible:outline-none focus-visible:ring-offset-0", position: "item-aligned", disabled, padding: false, value: validValue ? internalValue?.toString() : "", onValueChange: onChange, onOpenChange: handleOpenChange, renderValue, children: enumValues?.map((enumConfig_0) => /* @__PURE__ */ jsx(SelectItem, { value: String(enumConfig_0.id), children: /* @__PURE__ */ jsx(EnumValuesChip, { enumKey: enumConfig_0.id, enumValues, size: small ? "small" : "medium" }) }, enumConfig_0.id)) });
9345
+ t5 = multiple ? /* @__PURE__ */ jsx(MultiSelect, { inputRef: ref, className: "w-full h-full p-0 bg-transparent outline-none", position: "item-aligned", disabled, includeClear: false, useChips: false, value: validValue ? internalValue.map(_temp2$d) : [], onValueChange: onChange, onOpenChange: handleOpenChange, children: enumValues?.map((enumConfig) => /* @__PURE__ */ jsx(MultiSelectItem, { value: String(enumConfig.id), children: /* @__PURE__ */ jsx(EnumValuesChip, { enumKey: enumConfig.id, enumValues, size: small ? "small" : "medium" }) }, enumConfig.id)) }) : /* @__PURE__ */ jsx(Select, { inputRef: ref, size: "large", fullWidth: true, className: "w-full h-full p-0 bg-transparent outline-none [&_button]:ring-0 [&_button]:ring-offset-0", inputClassName: "ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 outline-none focus:outline-none focus-visible:outline-none focus-visible:ring-offset-0", position: "item-aligned", disabled, padding: false, value: validValue ? internalValue?.toString() : "", onValueChange: onChange, onOpenChange: handleOpenChange, renderValue, children: enumValues?.map((enumConfig_0) => /* @__PURE__ */ jsx(SelectItem, { value: String(enumConfig_0.id), children: /* @__PURE__ */ jsx(EnumValuesChip, { enumKey: enumConfig_0.id, enumValues, size: small ? "small" : "medium" }) }, enumConfig_0.id)) });
9346
9346
  $[11] = disabled;
9347
9347
  $[12] = enumValues;
9348
9348
  $[13] = internalValue;
@@ -9357,10 +9357,10 @@ function VirtualTableSelect(props) {
9357
9357
  }
9358
9358
  return t5;
9359
9359
  }
9360
- function _temp2$e(v_0) {
9360
+ function _temp2$d(v_0) {
9361
9361
  return v_0.toString();
9362
9362
  }
9363
- function _temp$u(v) {
9363
+ function _temp$s(v) {
9364
9364
  return parseFloat(v);
9365
9365
  }
9366
9366
  function VirtualTableNumberInput(props) {
@@ -9556,7 +9556,7 @@ function VirtualTableUserSelect(props) {
9556
9556
  const renderValue = t3;
9557
9557
  let t4;
9558
9558
  if ($[7] !== disabled || $[8] !== internalValue || $[9] !== multiple || $[10] !== onChange || $[11] !== renderValue || $[12] !== users || $[13] !== validValue) {
9559
- t4 = multiple ? /* @__PURE__ */ jsx(MultiSelect, { inputRef: ref, className: "w-full h-full p-0 bg-transparent", position: "item-aligned", disabled, includeClear: false, useChips: false, value: validValue ? internalValue : [], onValueChange: onChange, children: users?.map(_temp$t) }) : /* @__PURE__ */ jsx(Select, { inputRef: ref, size: "large", fullWidth: true, className: "w-full h-full p-0 bg-transparent", position: "item-aligned", disabled, padding: false, value: validValue ? internalValue : "", onValueChange: onChange, renderValue, children: users?.map(_temp2$d) });
9559
+ t4 = multiple ? /* @__PURE__ */ jsx(MultiSelect, { inputRef: ref, className: "w-full h-full p-0 bg-transparent", position: "item-aligned", disabled, includeClear: false, useChips: false, value: validValue ? internalValue : [], onValueChange: onChange, children: users?.map(_temp$r) }) : /* @__PURE__ */ jsx(Select, { inputRef: ref, size: "large", fullWidth: true, className: "w-full h-full p-0 bg-transparent", position: "item-aligned", disabled, padding: false, value: validValue ? internalValue : "", onValueChange: onChange, renderValue, children: users?.map(_temp2$c) });
9560
9560
  $[7] = disabled;
9561
9561
  $[8] = internalValue;
9562
9562
  $[9] = multiple;
@@ -9570,10 +9570,10 @@ function VirtualTableUserSelect(props) {
9570
9570
  }
9571
9571
  return t4;
9572
9572
  }
9573
- function _temp2$d(user_1) {
9573
+ function _temp2$c(user_1) {
9574
9574
  return /* @__PURE__ */ jsx(SelectItem, { value: user_1.uid, children: /* @__PURE__ */ jsx(UserDisplay, { user: user_1 }) }, user_1.uid);
9575
9575
  }
9576
- function _temp$t(user_0) {
9576
+ function _temp$r(user_0) {
9577
9577
  return /* @__PURE__ */ jsx(MultiSelectItem, { value: user_0.uid, children: /* @__PURE__ */ jsx(UserDisplay, { user: user_0 }) }, user_0.uid);
9578
9578
  }
9579
9579
  class ErrorBoundary extends React__default.Component {
@@ -9821,7 +9821,7 @@ function useStorageUploadController(t0) {
9821
9821
  newValue = [...internalValue];
9822
9822
  newValue = removeDuplicates(newValue);
9823
9823
  setInternalValue(newValue);
9824
- const fieldValue = newValue.filter(_temp$s).map(_temp2$c);
9824
+ const fieldValue = newValue.filter(_temp$q).map(_temp2$b);
9825
9825
  if (multipleFilesSupported) {
9826
9826
  onChange(fieldValue);
9827
9827
  } else {
@@ -9939,10 +9939,10 @@ function useStorageUploadController(t0) {
9939
9939
  }
9940
9940
  return t11;
9941
9941
  }
9942
- function _temp2$c(e_0) {
9942
+ function _temp2$b(e_0) {
9943
9943
  return e_0.storagePathOrDownloadUrl;
9944
9944
  }
9945
- function _temp$s(e) {
9945
+ function _temp$q(e) {
9946
9946
  return !!e.storagePathOrDownloadUrl;
9947
9947
  }
9948
9948
  function getInternalInitialValue(multipleFilesSupported, value, metadata, size) {
@@ -10233,7 +10233,7 @@ function StorageUpload$1(t0) {
10233
10233
  const snackbarContext = useSnackbarController();
10234
10234
  let t1;
10235
10235
  if ($[0] !== storage.acceptedFiles) {
10236
- t1 = storage.acceptedFiles ? storage.acceptedFiles.map(_temp$r).reduce(_temp2$b, {}) : void 0;
10236
+ t1 = storage.acceptedFiles ? storage.acceptedFiles.map(_temp$p).reduce(_temp2$a, {}) : void 0;
10237
10237
  $[0] = storage.acceptedFiles;
10238
10238
  $[1] = t1;
10239
10239
  } else {
@@ -10456,13 +10456,13 @@ function StorageUpload$1(t0) {
10456
10456
  }
10457
10457
  return t20;
10458
10458
  }
10459
- function _temp2$b(a, b) {
10459
+ function _temp2$a(a, b) {
10460
10460
  return {
10461
10461
  ...a,
10462
10462
  ...b
10463
10463
  };
10464
10464
  }
10465
- function _temp$r(e) {
10465
+ function _temp$p(e) {
10466
10466
  return {
10467
10467
  [e]: []
10468
10468
  };
@@ -10572,7 +10572,7 @@ const TableReferenceFieldInternal = React__default.memo(function TableReferenceF
10572
10572
  let t1;
10573
10573
  if ($[2] !== updateValue) {
10574
10574
  t1 = (entities) => {
10575
- updateValue(entities.filter(Boolean).map(_temp$q));
10575
+ updateValue(entities.filter(Boolean).map(_temp$o));
10576
10576
  };
10577
10577
  $[2] = updateValue;
10578
10578
  $[3] = t1;
@@ -10582,7 +10582,7 @@ const TableReferenceFieldInternal = React__default.memo(function TableReferenceF
10582
10582
  const onMultipleEntitiesSelected = t1;
10583
10583
  let t2;
10584
10584
  if ($[4] !== internalValue) {
10585
- t2 = internalValue ? Array.isArray(internalValue) ? internalValue.map(_temp2$a) : internalValue.id ? [internalValue.id] : [] : [];
10585
+ t2 = internalValue ? Array.isArray(internalValue) ? internalValue.map(_temp2$9) : internalValue.id ? [internalValue.id] : [] : [];
10586
10586
  $[4] = internalValue;
10587
10587
  $[5] = t2;
10588
10588
  } else {
@@ -10744,10 +10744,10 @@ const TableReferenceFieldInternal = React__default.memo(function TableReferenceF
10744
10744
  }
10745
10745
  return t10;
10746
10746
  }, equal);
10747
- function _temp$q(e) {
10747
+ function _temp$o(e) {
10748
10748
  return getReferenceFrom(e);
10749
10749
  }
10750
- function _temp2$a(ref) {
10750
+ function _temp2$9(ref) {
10751
10751
  return ref.id;
10752
10752
  }
10753
10753
  yup.addMethod(yup.array, "uniqueInArray", function(mapper = (a) => a, message) {
@@ -12402,7 +12402,7 @@ function StorageItemPreview(t0) {
12402
12402
  }
12403
12403
  let t5;
12404
12404
  if ($[15] !== placeholder) {
12405
- t5 = placeholder && /* @__PURE__ */ jsx("div", { onClick: _temp$p, className: "flex flex-col items-center justify-center w-full h-full", children: /* @__PURE__ */ jsx(DescriptionIcon, { className: "text-surface-700 dark:text-surface-300" }) });
12405
+ t5 = placeholder && /* @__PURE__ */ jsx("div", { onClick: _temp$n, className: "flex flex-col items-center justify-center w-full h-full", children: /* @__PURE__ */ jsx(DescriptionIcon, { className: "text-surface-700 dark:text-surface-300" }) });
12406
12406
  $[15] = placeholder;
12407
12407
  $[16] = t5;
12408
12408
  } else {
@@ -12425,7 +12425,7 @@ function StorageItemPreview(t0) {
12425
12425
  }
12426
12426
  return t6;
12427
12427
  }
12428
- function _temp$p(e) {
12428
+ function _temp$n(e) {
12429
12429
  return e.stopPropagation();
12430
12430
  }
12431
12431
  const dropZoneClasses = "box-border relative pt-[2px] items-center border border-transparent min-h-[254px] outline-none rounded-md duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] focus:border-primary-solid";
@@ -12653,7 +12653,7 @@ function SortableStorageItem(t0) {
12653
12653
  t4 = $[7];
12654
12654
  }
12655
12655
  const style = t4;
12656
- const getImageSizeNumber = _temp$o;
12656
+ const getImageSizeNumber = _temp$m;
12657
12657
  let child;
12658
12658
  if (entry.storagePathOrDownloadUrl) {
12659
12659
  const t52 = `storage_preview_${entry.storagePathOrDownloadUrl}`;
@@ -12728,7 +12728,7 @@ function SortableStorageItem(t0) {
12728
12728
  }
12729
12729
  return t6;
12730
12730
  }
12731
- function _temp$o(previewSize) {
12731
+ function _temp$m(previewSize) {
12732
12732
  switch (previewSize) {
12733
12733
  case "small": {
12734
12734
  return 40;
@@ -12765,7 +12765,7 @@ function FileDropComponent(t0) {
12765
12765
  const snackbarContext = useSnackbarController();
12766
12766
  let t1;
12767
12767
  if ($[0] !== storage.acceptedFiles) {
12768
- t1 = storage.acceptedFiles ? storage.acceptedFiles.reduce(_temp2$9, {}) : void 0;
12768
+ t1 = storage.acceptedFiles ? storage.acceptedFiles.reduce(_temp2$8, {}) : void 0;
12769
12769
  $[0] = storage.acceptedFiles;
12770
12770
  $[1] = t1;
12771
12771
  } else {
@@ -12958,7 +12958,7 @@ function FileDropComponent(t0) {
12958
12958
  }
12959
12959
  return t21;
12960
12960
  }
12961
- function _temp2$9(acc, ext) {
12961
+ function _temp2$8(acc, ext) {
12962
12962
  return {
12963
12963
  ...acc,
12964
12964
  [ext]: []
@@ -14501,7 +14501,7 @@ function MapFieldBinding(t0) {
14501
14501
  } else {
14502
14502
  t42 = $[20];
14503
14503
  }
14504
- t3 = Object.entries(mapProperties).filter(_temp$n).map(t42);
14504
+ t3 = Object.entries(mapProperties).filter(_temp$l).map(t42);
14505
14505
  $[6] = autoFocus;
14506
14506
  $[7] = context;
14507
14507
  $[8] = disabled;
@@ -14580,7 +14580,7 @@ function MapFieldBinding(t0) {
14580
14580
  }
14581
14581
  return t10;
14582
14582
  }
14583
- function _temp$n(t0) {
14583
+ function _temp$l(t0) {
14584
14584
  const [, property_0] = t0;
14585
14585
  return !isHidden(property_0);
14586
14586
  }
@@ -15954,7 +15954,7 @@ function BlockEntry(t0) {
15954
15954
  const property = t4;
15955
15955
  let t5;
15956
15956
  if ($[9] !== properties) {
15957
- t5 = Object.entries(properties).map(_temp$m);
15957
+ t5 = Object.entries(properties).map(_temp$k);
15958
15958
  $[9] = properties;
15959
15959
  $[10] = t5;
15960
15960
  } else {
@@ -16047,7 +16047,7 @@ function BlockEntry(t0) {
16047
16047
  }
16048
16048
  return t11;
16049
16049
  }
16050
- function _temp$m(t0) {
16050
+ function _temp$k(t0) {
16051
16051
  const [key, property_0] = t0;
16052
16052
  return {
16053
16053
  id: key,
@@ -19380,7 +19380,7 @@ const SafeLinkRenderer = (t0) => {
19380
19380
  let t1;
19381
19381
  if ($[0] !== text) {
19382
19382
  const urlRegex = /https?:\/\/[^\s]+/g;
19383
- t1 = text.replace(urlRegex, _temp$l);
19383
+ t1 = text.replace(urlRegex, _temp$j);
19384
19384
  $[0] = text;
19385
19385
  $[1] = t1;
19386
19386
  } else {
@@ -19399,7 +19399,7 @@ const SafeLinkRenderer = (t0) => {
19399
19399
  }
19400
19400
  return t2;
19401
19401
  };
19402
- function _temp$l(url) {
19402
+ function _temp$j(url) {
19403
19403
  return `<a href="${url}" class="underline" target="_blank">Link</a><br/>`;
19404
19404
  }
19405
19405
  const operationLabels$2 = {
@@ -19712,7 +19712,7 @@ function StringNumberFilterField(t0) {
19712
19712
  }
19713
19713
  let t9;
19714
19714
  if ($[24] !== possibleOperations) {
19715
- t9 = possibleOperations.map(_temp2$8);
19715
+ t9 = possibleOperations.map(_temp2$7);
19716
19716
  $[24] = possibleOperations;
19717
19717
  $[25] = t9;
19718
19718
  } else {
@@ -19720,7 +19720,7 @@ function StringNumberFilterField(t0) {
19720
19720
  }
19721
19721
  let t10;
19722
19722
  if ($[26] !== operation || $[27] !== t8 || $[28] !== t9) {
19723
- t10 = /* @__PURE__ */ jsx("div", { className: "w-[100px]", children: /* @__PURE__ */ jsx(Select, { value: operation, size: "medium", fullWidth: true, position: "item-aligned", onValueChange: t8, renderValue: _temp$k, children: t9 }) });
19723
+ t10 = /* @__PURE__ */ jsx("div", { className: "w-[100px]", children: /* @__PURE__ */ jsx(Select, { value: operation, size: "medium", fullWidth: true, position: "item-aligned", onValueChange: t8, renderValue: _temp$i, children: t9 }) });
19724
19724
  $[26] = operation;
19725
19725
  $[27] = t8;
19726
19726
  $[28] = t9;
@@ -19822,10 +19822,10 @@ function _temp4$2(v) {
19822
19822
  function _temp3$4(e_1) {
19823
19823
  return String(e_1);
19824
19824
  }
19825
- function _temp2$8(op_2) {
19825
+ function _temp2$7(op_2) {
19826
19826
  return /* @__PURE__ */ jsx(SelectItem, { value: op_2, children: operationLabels$1[op_2] }, op_2);
19827
19827
  }
19828
- function _temp$k(op_1) {
19828
+ function _temp$i(op_1) {
19829
19829
  return operationLabels$1[op_1];
19830
19830
  }
19831
19831
  function BooleanFilterField(t0) {
@@ -19988,7 +19988,7 @@ function DateTimeFilterField(t0) {
19988
19988
  }
19989
19989
  let t7;
19990
19990
  if ($[15] !== possibleOperations) {
19991
- t7 = possibleOperations.map(_temp2$7);
19991
+ t7 = possibleOperations.map(_temp2$6);
19992
19992
  $[15] = possibleOperations;
19993
19993
  $[16] = t7;
19994
19994
  } else {
@@ -19996,7 +19996,7 @@ function DateTimeFilterField(t0) {
19996
19996
  }
19997
19997
  let t8;
19998
19998
  if ($[17] !== operation || $[18] !== t6 || $[19] !== t7) {
19999
- t8 = /* @__PURE__ */ jsx("div", { className: "w-[100px]", children: /* @__PURE__ */ jsx(Select, { value: operation, size: "medium", fullWidth: true, onValueChange: t6, renderValue: _temp$j, children: t7 }) });
19999
+ t8 = /* @__PURE__ */ jsx("div", { className: "w-[100px]", children: /* @__PURE__ */ jsx(Select, { value: operation, size: "medium", fullWidth: true, onValueChange: t6, renderValue: _temp$h, children: t7 }) });
20000
20000
  $[17] = operation;
20001
20001
  $[18] = t6;
20002
20002
  $[19] = t7;
@@ -20043,10 +20043,10 @@ function DateTimeFilterField(t0) {
20043
20043
  }
20044
20044
  return t12;
20045
20045
  }
20046
- function _temp2$7(op_2) {
20046
+ function _temp2$6(op_2) {
20047
20047
  return /* @__PURE__ */ jsx(SelectItem, { value: op_2, children: operationLabels[op_2] }, op_2);
20048
20048
  }
20049
- function _temp$j(op_1) {
20049
+ function _temp$h(op_1) {
20050
20050
  return operationLabels[op_1];
20051
20051
  }
20052
20052
  const SelectableTable = function SelectableTable2({
@@ -20809,7 +20809,7 @@ function useTableSearchHelper(t0) {
20809
20809
  parentCollectionIds
20810
20810
  };
20811
20811
  const searchBlocked = customizationController.plugins?.find((p) => p.collectionView?.blockSearch?.(props));
20812
- const addTextSearchClickListener = Boolean(dataSource?.initTextSearch) || customizationController.plugins?.find(_temp$i);
20812
+ const addTextSearchClickListener = Boolean(dataSource?.initTextSearch) || customizationController.plugins?.find(_temp$g);
20813
20813
  if (addTextSearchClickListener) {
20814
20814
  onTextSearchClick = addTextSearchClickListener ? () => {
20815
20815
  setTextSearchLoading(true);
@@ -20905,7 +20905,7 @@ function useTableSearchHelper(t0) {
20905
20905
  }
20906
20906
  return t3;
20907
20907
  }
20908
- function _temp$i(p_0) {
20908
+ function _temp$g(p_0) {
20909
20909
  return Boolean(p_0.collectionView?.onTextSearchClick);
20910
20910
  }
20911
20911
  function DeleteEntityDialog({
@@ -21072,20 +21072,20 @@ function removeLocalStorageItem(key) {
21072
21072
  } catch {
21073
21073
  }
21074
21074
  }
21075
- function addRecentId(key, id) {
21076
- const recentIds = getRecentIds(key);
21075
+ function addRecentId(collectionId, id) {
21076
+ const recentIds = getRecentIds(collectionId);
21077
21077
  const newRecentIds = [id, ...recentIds.filter((i) => i !== id)];
21078
21078
  if (newRecentIds.length > 5) {
21079
21079
  newRecentIds.pop();
21080
21080
  }
21081
- saveSearchedIdsLocally(key, newRecentIds);
21081
+ saveSearchedIdsLocally(collectionId, newRecentIds);
21082
21082
  return newRecentIds;
21083
21083
  }
21084
- function saveSearchedIdsLocally(key, ids) {
21085
- setLocalStorageItem("recent_id_searches::" + key, JSON.stringify(ids));
21084
+ function saveSearchedIdsLocally(collectionId, ids) {
21085
+ setLocalStorageItem("recent_id_searches::" + collectionId, JSON.stringify(ids));
21086
21086
  }
21087
- function getRecentIds(key) {
21088
- return getLocalStorageJSON("recent_id_searches::" + key, []);
21087
+ function getRecentIds(collectionId) {
21088
+ return getLocalStorageJSON("recent_id_searches::" + collectionId, []);
21089
21089
  }
21090
21090
  const editEntityAction = {
21091
21091
  icon: /* @__PURE__ */ jsx(EditIcon, { size: "small" }),
@@ -21115,7 +21115,7 @@ const editEntityAction = {
21115
21115
  entityId: entity.id
21116
21116
  });
21117
21117
  if (collection) {
21118
- addRecentId(fullIdPath ?? fullPath ?? collection.id, entity.id);
21118
+ addRecentId(collection.id, entity.id);
21119
21119
  }
21120
21120
  const path = collection?.collectionGroup ? entity.path : fullPath ?? collection?.path ?? entity.path;
21121
21121
  const resolvedPathSegments = collection?.collectionGroup ? entity.pathSegments : pathSegments ?? entity.pathSegments;
@@ -21568,7 +21568,7 @@ function FavouritesView(t0) {
21568
21568
  T0 = Collapse;
21569
21569
  t4 = favouriteCollections.length > 0;
21570
21570
  t2 = "flex flex-row flex-wrap gap-2 pb-2 min-h-[32px]";
21571
- t3 = favouriteCollections.map(_temp$h);
21571
+ t3 = favouriteCollections.map(_temp$f);
21572
21572
  $[2] = navigationController;
21573
21573
  $[3] = t1;
21574
21574
  $[4] = T0;
@@ -21602,7 +21602,7 @@ function FavouritesView(t0) {
21602
21602
  }
21603
21603
  return t6;
21604
21604
  }
21605
- function _temp$h(entry_0) {
21605
+ function _temp$f(entry_0) {
21606
21606
  return /* @__PURE__ */ jsx(NavigationChip, { entry: entry_0 }, entry_0.path);
21607
21607
  }
21608
21608
  const scrollsMap = {};
@@ -21839,7 +21839,7 @@ const NavigationCard = React__default.memo(function NavigationCard2(t0) {
21839
21839
  }
21840
21840
  let t4;
21841
21841
  if ($[4] !== actions) {
21842
- t4 = /* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5", onClick: _temp$g, children: actions });
21842
+ t4 = /* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5", onClick: _temp$e, children: actions });
21843
21843
  $[4] = actions;
21844
21844
  $[5] = t4;
21845
21845
  } else {
@@ -21926,7 +21926,7 @@ const NavigationCard = React__default.memo(function NavigationCard2(t0) {
21926
21926
  }
21927
21927
  return t12;
21928
21928
  });
21929
- function _temp$g(event) {
21929
+ function _temp$e(event) {
21930
21930
  event.preventDefault();
21931
21931
  event.stopPropagation();
21932
21932
  }
@@ -24293,7 +24293,7 @@ const BoardColumn = memo(function BoardColumn2(t0) {
24293
24293
  let t19;
24294
24294
  let t20;
24295
24295
  if ($[19] !== items) {
24296
- t20 = items.map(_temp$f);
24296
+ t20 = items.map(_temp$d);
24297
24297
  $[19] = items;
24298
24298
  $[20] = t20;
24299
24299
  } else {
@@ -24399,7 +24399,7 @@ const BoardColumn = memo(function BoardColumn2(t0) {
24399
24399
  }
24400
24400
  return t29;
24401
24401
  });
24402
- function _temp$f(i) {
24402
+ function _temp$d(i) {
24403
24403
  return i.id;
24404
24404
  }
24405
24405
  function Board(t0) {
@@ -26571,7 +26571,7 @@ function EntityCollectionViewStartActions(t0) {
26571
26571
  }
26572
26572
  let t7;
26573
26573
  if ($[30] !== collection.forceFilter || $[31] !== filtersDialogOpen || $[32] !== resolvedProperties || $[33] !== tableController) {
26574
- t7 = resolvedProperties && tableController.setFilterValues && /* @__PURE__ */ jsx(FiltersDialog, { open: filtersDialogOpen, onOpenChange: setFiltersDialogOpen, properties: resolvedProperties, filterValues: tableController.filterValues, setFilterValues: (filterValues_0) => tableController.setFilterValues?.(filterValues_0 ?? {}), forceFilter: collection.forceFilter, allowedFilters: tableController.allowedFilters?.map(_temp$e) });
26574
+ t7 = resolvedProperties && tableController.setFilterValues && /* @__PURE__ */ jsx(FiltersDialog, { open: filtersDialogOpen, onOpenChange: setFiltersDialogOpen, properties: resolvedProperties, filterValues: tableController.filterValues, setFilterValues: (filterValues_0) => tableController.setFilterValues?.(filterValues_0 ?? {}), forceFilter: collection.forceFilter, allowedFilters: tableController.allowedFilters?.map(_temp$c) });
26575
26575
  $[30] = collection.forceFilter;
26576
26576
  $[31] = filtersDialogOpen;
26577
26577
  $[32] = resolvedProperties;
@@ -26594,225 +26594,9 @@ function EntityCollectionViewStartActions(t0) {
26594
26594
  }
26595
26595
  return t8;
26596
26596
  }
26597
- function _temp$e(key_0) {
26597
+ function _temp$c(key_0) {
26598
26598
  return key_0.toString();
26599
26599
  }
26600
- const DEFAULT_ENTITY_OPEN_MODE$1 = "side_panel";
26601
- function EntityIdHeaderWidget(t0) {
26602
- const $ = c(53);
26603
- const {
26604
- collection,
26605
- path,
26606
- pathSegments,
26607
- fullIdPath
26608
- } = t0;
26609
- const navigation = useNavigationController();
26610
- const [openPopup, setOpenPopup] = React__default.useState(false);
26611
- const [searchString, setSearchString] = React__default.useState("");
26612
- let t1;
26613
- if ($[0] !== fullIdPath) {
26614
- t1 = () => getRecentIds(fullIdPath);
26615
- $[0] = fullIdPath;
26616
- $[1] = t1;
26617
- } else {
26618
- t1 = $[1];
26619
- }
26620
- const [recentIds, setRecentIds] = React__default.useState(t1);
26621
- const sideEntityController = useSideEntityController();
26622
- const {
26623
- t
26624
- } = useTranslation();
26625
- const openEntityMode = collection?.openEntityMode ?? DEFAULT_ENTITY_OPEN_MODE$1;
26626
- let t2;
26627
- if ($[2] !== openPopup || $[3] !== t) {
26628
- t2 = !openPopup ? t("find_by_id") : void 0;
26629
- $[2] = openPopup;
26630
- $[3] = t;
26631
- $[4] = t2;
26632
- } else {
26633
- t2 = $[4];
26634
- }
26635
- let t3;
26636
- if ($[5] !== fullIdPath) {
26637
- t3 = (open) => {
26638
- if (open) {
26639
- setRecentIds(getRecentIds(fullIdPath));
26640
- }
26641
- setOpenPopup(open);
26642
- };
26643
- $[5] = fullIdPath;
26644
- $[6] = t3;
26645
- } else {
26646
- t3 = $[6];
26647
- }
26648
- let t4;
26649
- let t5;
26650
- if ($[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
26651
- t4 = /* @__PURE__ */ jsx(IconButton, { size: "small", children: /* @__PURE__ */ jsx(SearchIcon, { size: "small" }) });
26652
- t5 = cls("my-2 rounded-lg bg-surface-50 dark:bg-surface-950 text-surface-900 dark:text-white");
26653
- $[7] = t4;
26654
- $[8] = t5;
26655
- } else {
26656
- t4 = $[7];
26657
- t5 = $[8];
26658
- }
26659
- let t6;
26660
- if ($[9] !== collection || $[10] !== fullIdPath || $[11] !== navigation || $[12] !== openEntityMode || $[13] !== path || $[14] !== pathSegments || $[15] !== searchString || $[16] !== sideEntityController) {
26661
- t6 = (e) => {
26662
- e.preventDefault();
26663
- const entityId = searchString.trim();
26664
- if (!entityId) {
26665
- return;
26666
- }
26667
- setOpenPopup(false);
26668
- setRecentIds(addRecentId(fullIdPath, entityId));
26669
- navigateToEntity({
26670
- openEntityMode,
26671
- collection,
26672
- entityId,
26673
- path,
26674
- pathSegments,
26675
- fullIdPath,
26676
- sideEntityController,
26677
- navigation
26678
- });
26679
- };
26680
- $[9] = collection;
26681
- $[10] = fullIdPath;
26682
- $[11] = navigation;
26683
- $[12] = openEntityMode;
26684
- $[13] = path;
26685
- $[14] = pathSegments;
26686
- $[15] = searchString;
26687
- $[16] = sideEntityController;
26688
- $[17] = t6;
26689
- } else {
26690
- t6 = $[17];
26691
- }
26692
- let t7;
26693
- if ($[18] !== t) {
26694
- t7 = t("find_entity_by_id");
26695
- $[18] = t;
26696
- $[19] = t7;
26697
- } else {
26698
- t7 = $[19];
26699
- }
26700
- let t8;
26701
- if ($[20] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
26702
- t8 = (e_0) => {
26703
- setSearchString(e_0.target.value);
26704
- };
26705
- $[20] = t8;
26706
- } else {
26707
- t8 = $[20];
26708
- }
26709
- let t9;
26710
- if ($[21] !== openPopup || $[22] !== searchString || $[23] !== t7) {
26711
- t9 = /* @__PURE__ */ jsx("input", { autoFocus: openPopup, placeholder: t7, onChange: t8, value: searchString, className: "rounded-lg bg-white dark:bg-surface-800 flex-grow bg-transparent outline-none p-2 " + focusedDisabled });
26712
- $[21] = openPopup;
26713
- $[22] = searchString;
26714
- $[23] = t7;
26715
- $[24] = t9;
26716
- } else {
26717
- t9 = $[24];
26718
- }
26719
- const t10 = !searchString.trim();
26720
- let t11;
26721
- if ($[25] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
26722
- t11 = /* @__PURE__ */ jsx(KeyboardTabIcon, {});
26723
- $[25] = t11;
26724
- } else {
26725
- t11 = $[25];
26726
- }
26727
- let t12;
26728
- if ($[26] !== t10) {
26729
- t12 = /* @__PURE__ */ jsx(Button, { variant: "text", disabled: t10, type: "submit", children: t11 });
26730
- $[26] = t10;
26731
- $[27] = t12;
26732
- } else {
26733
- t12 = $[27];
26734
- }
26735
- let t13;
26736
- if ($[28] !== t12 || $[29] !== t9) {
26737
- t13 = /* @__PURE__ */ jsxs("div", { className: "flex p-2 w-full gap-2", children: [
26738
- t9,
26739
- t12
26740
- ] });
26741
- $[28] = t12;
26742
- $[29] = t9;
26743
- $[30] = t13;
26744
- } else {
26745
- t13 = $[30];
26746
- }
26747
- let t14;
26748
- if ($[31] !== t13 || $[32] !== t6) {
26749
- t14 = /* @__PURE__ */ jsx("form", { noValidate: true, onSubmit: t6, className: "w-96 max-w-full", children: t13 });
26750
- $[31] = t13;
26751
- $[32] = t6;
26752
- $[33] = t14;
26753
- } else {
26754
- t14 = $[33];
26755
- }
26756
- let t15;
26757
- if ($[34] !== collection || $[35] !== fullIdPath || $[36] !== navigation || $[37] !== openEntityMode || $[38] !== path || $[39] !== pathSegments || $[40] !== recentIds || $[41] !== sideEntityController) {
26758
- t15 = recentIds && recentIds.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 p-2", children: recentIds.map((id) => /* @__PURE__ */ jsx(ReferencePreview, { reference: new EntityReference(id, path, void 0, pathSegments), hover: true, onClick: () => {
26759
- setOpenPopup(false);
26760
- navigateToEntity({
26761
- openEntityMode,
26762
- collection,
26763
- entityId: id,
26764
- path,
26765
- pathSegments,
26766
- fullIdPath,
26767
- sideEntityController,
26768
- navigation
26769
- });
26770
- }, includeEntityLink: false, size: "small" }, id)) });
26771
- $[34] = collection;
26772
- $[35] = fullIdPath;
26773
- $[36] = navigation;
26774
- $[37] = openEntityMode;
26775
- $[38] = path;
26776
- $[39] = pathSegments;
26777
- $[40] = recentIds;
26778
- $[41] = sideEntityController;
26779
- $[42] = t15;
26780
- } else {
26781
- t15 = $[42];
26782
- }
26783
- let t16;
26784
- if ($[43] !== t14 || $[44] !== t15) {
26785
- t16 = /* @__PURE__ */ jsxs("div", { className: t5, children: [
26786
- t14,
26787
- t15
26788
- ] });
26789
- $[43] = t14;
26790
- $[44] = t15;
26791
- $[45] = t16;
26792
- } else {
26793
- t16 = $[45];
26794
- }
26795
- let t17;
26796
- if ($[46] !== openPopup || $[47] !== t16 || $[48] !== t3) {
26797
- t17 = /* @__PURE__ */ jsx(Popover, { open: openPopup, onOpenChange: t3, sideOffset: 0, align: "start", alignOffset: -117, trigger: t4, children: t16 });
26798
- $[46] = openPopup;
26799
- $[47] = t16;
26800
- $[48] = t3;
26801
- $[49] = t17;
26802
- } else {
26803
- t17 = $[49];
26804
- }
26805
- let t18;
26806
- if ($[50] !== t17 || $[51] !== t2) {
26807
- t18 = /* @__PURE__ */ jsx(Tooltip, { title: t2, asChild: false, children: t17 });
26808
- $[50] = t17;
26809
- $[51] = t2;
26810
- $[52] = t18;
26811
- } else {
26812
- t18 = $[52];
26813
- }
26814
- return t18;
26815
- }
26816
26600
  const collectionScrollCache = /* @__PURE__ */ new Map();
26817
26601
  function useScrollRestoration() {
26818
26602
  const updateCollectionScroll = ({
@@ -26853,7 +26637,6 @@ const EntityCollectionView$1 = React__default.memo(function EntityCollectionView
26853
26637
  isSubCollection,
26854
26638
  className,
26855
26639
  updateUrl,
26856
- onCountChange,
26857
26640
  ...collectionProp
26858
26641
  }) {
26859
26642
  const context = useFireCMSContext();
@@ -26991,7 +26774,7 @@ const EntityCollectionView$1 = React__default.memo(function EntityCollectionView
26991
26774
  entityId: clickedEntity.id
26992
26775
  });
26993
26776
  if (collection_1) {
26994
- addRecentId(fullIdPath ?? fullPath, clickedEntity.id);
26777
+ addRecentId(collection_1.id, clickedEntity.id);
26995
26778
  }
26996
26779
  const isCollectionGroup = Boolean(collection_1?.collectionGroup);
26997
26780
  const path = isCollectionGroup ? clickedEntity.path : fullPath ?? clickedEntity.path;
@@ -27319,9 +27102,8 @@ const EntityCollectionView$1 = React__default.memo(function EntityCollectionView
27319
27102
  useEffect(() => {
27320
27103
  if (docsCount !== void 0) {
27321
27104
  breadcrumbs.updateCount(fullPath, docsCount);
27322
- onCountChange?.(docsCount);
27323
27105
  }
27324
- }, [docsCount, fullPath, breadcrumbs.updateCount, onCountChange]);
27106
+ }, [docsCount, fullPath, breadcrumbs.updateCount]);
27325
27107
  const countFetcher = /* @__PURE__ */ jsx(EntitiesCount, { fullPath, pathSegments, collection, filter: tableController.filterValues, sortBy: tableController.sortBy, onCountChange: setDocsCount });
27326
27108
  const buildAdditionalHeaderWidget = useCallback(({
27327
27109
  property: property_2,
@@ -27467,104 +27249,305 @@ function buildPropertyWidthOverwrite(key, width) {
27467
27249
  }
27468
27250
  };
27469
27251
  }
27470
- const EntityCollectionView$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
27471
- __proto__: null,
27472
- EntityCollectionView: EntityCollectionView$1
27473
- }, Symbol.toStringTag, { value: "Module" }));
27474
- function PropertyConfigBadge(t0) {
27475
- const $ = c(6);
27252
+ function EntityIdHeaderWidget(t0) {
27253
+ const $ = c(50);
27476
27254
  const {
27477
- propertyConfig,
27478
- disabled
27255
+ collection,
27256
+ path,
27257
+ pathSegments,
27258
+ fullIdPath
27479
27259
  } = t0;
27480
- const classes = "h-8 w-8 flex items-center justify-center rounded-full shadow text-white " + (disabled ? "bg-surface-400 dark:bg-surface-600" : "");
27260
+ const navigation = useNavigationController();
27261
+ const [openPopup, setOpenPopup] = React__default.useState(false);
27262
+ const [searchString, setSearchString] = React__default.useState("");
27481
27263
  let t1;
27482
- if ($[0] !== classes || $[1] !== disabled || $[2] !== propertyConfig) {
27483
- const defaultPropertyConfig = typeof propertyConfig?.property === "object" ? getDefaultFieldConfig(propertyConfig.property) : void 0;
27484
- const t2 = !disabled ? propertyConfig?.color ?? defaultPropertyConfig?.color ?? "#888" : void 0;
27485
- let t3;
27486
- if ($[4] !== t2) {
27487
- t3 = {
27488
- background: t2
27489
- };
27490
- $[4] = t2;
27491
- $[5] = t3;
27492
- } else {
27493
- t3 = $[5];
27494
- }
27495
- t1 = /* @__PURE__ */ jsx("div", { className: classes, style: t3, children: propertyConfig?.Icon ? getIconForWidget(propertyConfig, "small") : getIconForWidget(defaultPropertyConfig, "small") });
27496
- $[0] = classes;
27497
- $[1] = disabled;
27498
- $[2] = propertyConfig;
27499
- $[3] = t1;
27264
+ if ($[0] !== collection.id) {
27265
+ t1 = getRecentIds(collection.id);
27266
+ $[0] = collection.id;
27267
+ $[1] = t1;
27500
27268
  } else {
27501
- t1 = $[3];
27269
+ t1 = $[1];
27502
27270
  }
27503
- return t1;
27504
- }
27505
- function NotFoundPage() {
27506
- const $ = c(16);
27271
+ const [recentIds, setRecentIds] = React__default.useState(t1);
27272
+ const sideEntityController = useSideEntityController();
27507
27273
  const {
27508
27274
  t
27509
27275
  } = useTranslation();
27510
- let t0;
27511
- if ($[0] !== t) {
27512
- t0 = t("page_not_found");
27513
- $[0] = t;
27514
- $[1] = t0;
27515
- } else {
27516
- t0 = $[1];
27517
- }
27518
- let t1;
27519
- if ($[2] !== t0) {
27520
- t1 = /* @__PURE__ */ jsx(Typography, { variant: "h4", align: "center", gutterBottom: true, children: t0 });
27521
- $[2] = t0;
27522
- $[3] = t1;
27523
- } else {
27524
- t1 = $[3];
27525
- }
27276
+ const openEntityMode = collection?.openEntityMode ?? DEFAULT_ENTITY_OPEN_MODE;
27526
27277
  let t2;
27527
- if ($[4] !== t) {
27528
- t2 = t("page_not_found_body");
27529
- $[4] = t;
27530
- $[5] = t2;
27278
+ if ($[2] !== openPopup || $[3] !== t) {
27279
+ t2 = !openPopup ? t("find_by_id") : void 0;
27280
+ $[2] = openPopup;
27281
+ $[3] = t;
27282
+ $[4] = t2;
27531
27283
  } else {
27532
- t2 = $[5];
27284
+ t2 = $[4];
27533
27285
  }
27534
27286
  let t3;
27535
- if ($[6] !== t2) {
27536
- t3 = /* @__PURE__ */ jsx(Typography, { align: "center", gutterBottom: true, children: t2 });
27537
- $[6] = t2;
27538
- $[7] = t3;
27539
- } else {
27540
- t3 = $[7];
27541
- }
27542
27287
  let t4;
27543
- if ($[8] !== t) {
27544
- t4 = t("back_to_home");
27545
- $[8] = t;
27546
- $[9] = t4;
27288
+ if ($[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
27289
+ t3 = /* @__PURE__ */ jsx(IconButton, { size: "small", children: /* @__PURE__ */ jsx(SearchIcon, { size: "small" }) });
27290
+ t4 = cls("my-2 rounded-lg bg-surface-50 dark:bg-surface-950 text-surface-900 dark:text-white");
27291
+ $[5] = t3;
27292
+ $[6] = t4;
27547
27293
  } else {
27548
- t4 = $[9];
27294
+ t3 = $[5];
27295
+ t4 = $[6];
27549
27296
  }
27550
27297
  let t5;
27551
- if ($[10] !== t4) {
27552
- t5 = /* @__PURE__ */ jsx(Button, { variant: "text", component: Link, to: "/", children: t4 });
27553
- $[10] = t4;
27554
- $[11] = t5;
27555
- } else {
27556
- t5 = $[11];
27557
- }
27558
- let t6;
27559
- if ($[12] !== t1 || $[13] !== t3 || $[14] !== t5) {
27560
- t6 = /* @__PURE__ */ jsx("div", { className: "flex w-full h-full", children: /* @__PURE__ */ jsxs("div", { className: "m-auto flex items-center flex-col", children: [
27561
- t1,
27562
- t3,
27563
- t5
27564
- ] }) });
27565
- $[12] = t1;
27566
- $[13] = t3;
27567
- $[14] = t5;
27298
+ if ($[7] !== collection || $[8] !== fullIdPath || $[9] !== navigation || $[10] !== openEntityMode || $[11] !== path || $[12] !== pathSegments || $[13] !== searchString || $[14] !== sideEntityController) {
27299
+ t5 = (e) => {
27300
+ e.preventDefault();
27301
+ if (!searchString) {
27302
+ return;
27303
+ }
27304
+ setOpenPopup(false);
27305
+ const entityId = searchString.trim();
27306
+ setRecentIds(addRecentId(collection.id, entityId));
27307
+ navigateToEntity({
27308
+ openEntityMode,
27309
+ collection,
27310
+ entityId,
27311
+ path,
27312
+ pathSegments,
27313
+ fullIdPath,
27314
+ sideEntityController,
27315
+ navigation
27316
+ });
27317
+ };
27318
+ $[7] = collection;
27319
+ $[8] = fullIdPath;
27320
+ $[9] = navigation;
27321
+ $[10] = openEntityMode;
27322
+ $[11] = path;
27323
+ $[12] = pathSegments;
27324
+ $[13] = searchString;
27325
+ $[14] = sideEntityController;
27326
+ $[15] = t5;
27327
+ } else {
27328
+ t5 = $[15];
27329
+ }
27330
+ let t6;
27331
+ if ($[16] !== t) {
27332
+ t6 = t("find_entity_by_id");
27333
+ $[16] = t;
27334
+ $[17] = t6;
27335
+ } else {
27336
+ t6 = $[17];
27337
+ }
27338
+ let t7;
27339
+ if ($[18] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
27340
+ t7 = (e_0) => {
27341
+ setSearchString(e_0.target.value);
27342
+ };
27343
+ $[18] = t7;
27344
+ } else {
27345
+ t7 = $[18];
27346
+ }
27347
+ let t8;
27348
+ if ($[19] !== openPopup || $[20] !== searchString || $[21] !== t6) {
27349
+ t8 = /* @__PURE__ */ jsx("input", { autoFocus: openPopup, placeholder: t6, onChange: t7, value: searchString, className: "rounded-lg bg-white dark:bg-surface-800 flex-grow bg-transparent outline-none p-2 " + focusedDisabled });
27350
+ $[19] = openPopup;
27351
+ $[20] = searchString;
27352
+ $[21] = t6;
27353
+ $[22] = t8;
27354
+ } else {
27355
+ t8 = $[22];
27356
+ }
27357
+ const t9 = !searchString.trim();
27358
+ let t10;
27359
+ if ($[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
27360
+ t10 = /* @__PURE__ */ jsx(KeyboardTabIcon, {});
27361
+ $[23] = t10;
27362
+ } else {
27363
+ t10 = $[23];
27364
+ }
27365
+ let t11;
27366
+ if ($[24] !== t9) {
27367
+ t11 = /* @__PURE__ */ jsx(Button, { variant: "text", disabled: t9, type: "submit", children: t10 });
27368
+ $[24] = t9;
27369
+ $[25] = t11;
27370
+ } else {
27371
+ t11 = $[25];
27372
+ }
27373
+ let t12;
27374
+ if ($[26] !== t11 || $[27] !== t8) {
27375
+ t12 = /* @__PURE__ */ jsxs("div", { className: "flex p-2 w-full gap-2", children: [
27376
+ t8,
27377
+ t11
27378
+ ] });
27379
+ $[26] = t11;
27380
+ $[27] = t8;
27381
+ $[28] = t12;
27382
+ } else {
27383
+ t12 = $[28];
27384
+ }
27385
+ let t13;
27386
+ if ($[29] !== t12 || $[30] !== t5) {
27387
+ t13 = /* @__PURE__ */ jsx("form", { noValidate: true, onSubmit: t5, className: "w-96 max-w-full", children: t12 });
27388
+ $[29] = t12;
27389
+ $[30] = t5;
27390
+ $[31] = t13;
27391
+ } else {
27392
+ t13 = $[31];
27393
+ }
27394
+ let t14;
27395
+ if ($[32] !== collection || $[33] !== fullIdPath || $[34] !== navigation || $[35] !== openEntityMode || $[36] !== path || $[37] !== pathSegments || $[38] !== recentIds || $[39] !== sideEntityController) {
27396
+ t14 = recentIds && recentIds.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 p-2", children: recentIds.map((id) => /* @__PURE__ */ jsx(ReferencePreview, { reference: new EntityReference(id, path, void 0, pathSegments), hover: true, onClick: () => {
27397
+ setOpenPopup(false);
27398
+ navigateToEntity({
27399
+ openEntityMode,
27400
+ collection,
27401
+ entityId: id,
27402
+ path,
27403
+ pathSegments,
27404
+ fullIdPath,
27405
+ sideEntityController,
27406
+ navigation
27407
+ });
27408
+ }, includeEntityLink: false, size: "small" }, id)) });
27409
+ $[32] = collection;
27410
+ $[33] = fullIdPath;
27411
+ $[34] = navigation;
27412
+ $[35] = openEntityMode;
27413
+ $[36] = path;
27414
+ $[37] = pathSegments;
27415
+ $[38] = recentIds;
27416
+ $[39] = sideEntityController;
27417
+ $[40] = t14;
27418
+ } else {
27419
+ t14 = $[40];
27420
+ }
27421
+ let t15;
27422
+ if ($[41] !== t13 || $[42] !== t14) {
27423
+ t15 = /* @__PURE__ */ jsxs("div", { className: t4, children: [
27424
+ t13,
27425
+ t14
27426
+ ] });
27427
+ $[41] = t13;
27428
+ $[42] = t14;
27429
+ $[43] = t15;
27430
+ } else {
27431
+ t15 = $[43];
27432
+ }
27433
+ let t16;
27434
+ if ($[44] !== openPopup || $[45] !== t15) {
27435
+ t16 = /* @__PURE__ */ jsx(Popover, { open: openPopup, onOpenChange: setOpenPopup, sideOffset: 0, align: "start", alignOffset: -117, trigger: t3, children: t15 });
27436
+ $[44] = openPopup;
27437
+ $[45] = t15;
27438
+ $[46] = t16;
27439
+ } else {
27440
+ t16 = $[46];
27441
+ }
27442
+ let t17;
27443
+ if ($[47] !== t16 || $[48] !== t2) {
27444
+ t17 = /* @__PURE__ */ jsx(Tooltip, { title: t2, asChild: false, children: t16 });
27445
+ $[47] = t16;
27446
+ $[48] = t2;
27447
+ $[49] = t17;
27448
+ } else {
27449
+ t17 = $[49];
27450
+ }
27451
+ return t17;
27452
+ }
27453
+ const EntityCollectionView$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
27454
+ __proto__: null,
27455
+ EntityCollectionView: EntityCollectionView$1
27456
+ }, Symbol.toStringTag, { value: "Module" }));
27457
+ function PropertyConfigBadge(t0) {
27458
+ const $ = c(6);
27459
+ const {
27460
+ propertyConfig,
27461
+ disabled
27462
+ } = t0;
27463
+ const classes = "h-8 w-8 flex items-center justify-center rounded-full shadow text-white " + (disabled ? "bg-surface-400 dark:bg-surface-600" : "");
27464
+ let t1;
27465
+ if ($[0] !== classes || $[1] !== disabled || $[2] !== propertyConfig) {
27466
+ const defaultPropertyConfig = typeof propertyConfig?.property === "object" ? getDefaultFieldConfig(propertyConfig.property) : void 0;
27467
+ const t2 = !disabled ? propertyConfig?.color ?? defaultPropertyConfig?.color ?? "#888" : void 0;
27468
+ let t3;
27469
+ if ($[4] !== t2) {
27470
+ t3 = {
27471
+ background: t2
27472
+ };
27473
+ $[4] = t2;
27474
+ $[5] = t3;
27475
+ } else {
27476
+ t3 = $[5];
27477
+ }
27478
+ t1 = /* @__PURE__ */ jsx("div", { className: classes, style: t3, children: propertyConfig?.Icon ? getIconForWidget(propertyConfig, "small") : getIconForWidget(defaultPropertyConfig, "small") });
27479
+ $[0] = classes;
27480
+ $[1] = disabled;
27481
+ $[2] = propertyConfig;
27482
+ $[3] = t1;
27483
+ } else {
27484
+ t1 = $[3];
27485
+ }
27486
+ return t1;
27487
+ }
27488
+ function NotFoundPage() {
27489
+ const $ = c(16);
27490
+ const {
27491
+ t
27492
+ } = useTranslation();
27493
+ let t0;
27494
+ if ($[0] !== t) {
27495
+ t0 = t("page_not_found");
27496
+ $[0] = t;
27497
+ $[1] = t0;
27498
+ } else {
27499
+ t0 = $[1];
27500
+ }
27501
+ let t1;
27502
+ if ($[2] !== t0) {
27503
+ t1 = /* @__PURE__ */ jsx(Typography, { variant: "h4", align: "center", gutterBottom: true, children: t0 });
27504
+ $[2] = t0;
27505
+ $[3] = t1;
27506
+ } else {
27507
+ t1 = $[3];
27508
+ }
27509
+ let t2;
27510
+ if ($[4] !== t) {
27511
+ t2 = t("page_not_found_body");
27512
+ $[4] = t;
27513
+ $[5] = t2;
27514
+ } else {
27515
+ t2 = $[5];
27516
+ }
27517
+ let t3;
27518
+ if ($[6] !== t2) {
27519
+ t3 = /* @__PURE__ */ jsx(Typography, { align: "center", gutterBottom: true, children: t2 });
27520
+ $[6] = t2;
27521
+ $[7] = t3;
27522
+ } else {
27523
+ t3 = $[7];
27524
+ }
27525
+ let t4;
27526
+ if ($[8] !== t) {
27527
+ t4 = t("back_to_home");
27528
+ $[8] = t;
27529
+ $[9] = t4;
27530
+ } else {
27531
+ t4 = $[9];
27532
+ }
27533
+ let t5;
27534
+ if ($[10] !== t4) {
27535
+ t5 = /* @__PURE__ */ jsx(Button, { variant: "text", component: Link, to: "/", children: t4 });
27536
+ $[10] = t4;
27537
+ $[11] = t5;
27538
+ } else {
27539
+ t5 = $[11];
27540
+ }
27541
+ let t6;
27542
+ if ($[12] !== t1 || $[13] !== t3 || $[14] !== t5) {
27543
+ t6 = /* @__PURE__ */ jsx("div", { className: "flex w-full h-full", children: /* @__PURE__ */ jsxs("div", { className: "m-auto flex items-center flex-col", children: [
27544
+ t1,
27545
+ t3,
27546
+ t5
27547
+ ] }) });
27548
+ $[12] = t1;
27549
+ $[13] = t3;
27550
+ $[14] = t5;
27568
27551
  $[15] = t6;
27569
27552
  } else {
27570
27553
  t6 = $[15];
@@ -27886,7 +27869,7 @@ function DrawerNavigationGroup(t0) {
27886
27869
  }
27887
27870
  let t10;
27888
27871
  if ($[11] !== headerActions) {
27889
- t10 = headerActions && /* @__PURE__ */ jsx("div", { onClick: _temp$d, children: headerActions });
27872
+ t10 = headerActions && /* @__PURE__ */ jsx("div", { onClick: _temp$b, children: headerActions });
27890
27873
  $[11] = headerActions;
27891
27874
  $[12] = t10;
27892
27875
  } else {
@@ -27966,7 +27949,7 @@ function DrawerNavigationGroup(t0) {
27966
27949
  }
27967
27950
  return t16;
27968
27951
  }
27969
- function _temp$d(e) {
27952
+ function _temp$b(e) {
27970
27953
  return e.stopPropagation();
27971
27954
  }
27972
27955
  function DefaultDrawer(t0) {
@@ -28011,10 +27994,10 @@ function DefaultDrawer(t0) {
28011
27994
  navigationEntries,
28012
27995
  groups
28013
27996
  } = navigation.topLevelNavigation;
28014
- const adminViews = navigationEntries.filter(_temp$c) ?? [];
27997
+ const adminViews = navigationEntries.filter(_temp$a) ?? [];
28015
27998
  let t2;
28016
27999
  if ($[1] !== groups) {
28017
- t2 = groups.filter(_temp2$6);
28000
+ t2 = groups.filter(_temp2$5);
28018
28001
  $[1] = groups;
28019
28002
  $[2] = t2;
28020
28003
  } else {
@@ -28151,10 +28134,10 @@ function DefaultDrawer(t0) {
28151
28134
  }
28152
28135
  return t14;
28153
28136
  }
28154
- function _temp2$6(g) {
28137
+ function _temp2$5(g) {
28155
28138
  return g !== "Admin";
28156
28139
  }
28157
- function _temp$c(e) {
28140
+ function _temp$a(e) {
28158
28141
  return e.type === "admin";
28159
28142
  }
28160
28143
  function DrawerToggle() {
@@ -28246,188 +28229,47 @@ function DrawerToggle() {
28246
28229
  $[20] = t6;
28247
28230
  $[21] = t12;
28248
28231
  } else {
28249
- t12 = $[21];
28250
- }
28251
- let t13;
28252
- if ($[22] !== t0 || $[23] !== t1 || $[24] !== t12) {
28253
- t13 = /* @__PURE__ */ jsx("div", { className: "shrink-0 mt-auto px-4 pt-0.5 pb-2", children: /* @__PURE__ */ jsx(Tooltip, { title: t0, side: "right", sideOffset: 12, open: t1, children: t12 }) });
28254
- $[22] = t0;
28255
- $[23] = t1;
28256
- $[24] = t12;
28257
- $[25] = t13;
28258
- } else {
28259
- t13 = $[25];
28260
- }
28261
- return t13;
28262
- }
28263
- function DrawerLogo(t0) {
28264
- const $ = c(5);
28265
- const {
28266
- logo
28267
- } = t0;
28268
- const navigation = useNavigationController();
28269
- let t1;
28270
- if ($[0] !== logo) {
28271
- t1 = logo ? /* @__PURE__ */ jsx("img", { src: logo, alt: "Logo", className: "w-[28px] h-[28px] object-contain" }) : /* @__PURE__ */ jsx(FireCMSLogo, { width: "28px", height: "28px" });
28272
- $[0] = logo;
28273
- $[1] = t1;
28274
- } else {
28275
- t1 = $[1];
28276
- }
28277
- let t2;
28278
- if ($[2] !== navigation.basePath || $[3] !== t1) {
28279
- t2 = /* @__PURE__ */ jsx("div", { className: "flex flex-row items-center shrink-0 pt-4 pb-0 px-2", children: /* @__PURE__ */ jsx(Tooltip, { title: "Home", sideOffset: 20, side: "right", children: /* @__PURE__ */ jsx(Link, { className: "shrink-0 flex items-center justify-center w-[56px] h-[40px]", to: navigation.basePath, children: t1 }) }) });
28280
- $[2] = navigation.basePath;
28281
- $[3] = t1;
28282
- $[4] = t2;
28283
- } else {
28284
- t2 = $[4];
28285
- }
28286
- return t2;
28287
- }
28288
- function CollectionCountBadge(t0) {
28289
- const $ = c(3);
28290
- const {
28291
- count
28292
- } = t0;
28293
- if (count === void 0) {
28294
- return null;
28295
- }
28296
- if (count === null) {
28297
- let t12;
28298
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28299
- t12 = /* @__PURE__ */ jsx(Skeleton, { className: "w-8 h-4 rounded-md" });
28300
- $[0] = t12;
28301
- } else {
28302
- t12 = $[0];
28303
- }
28304
- return t12;
28305
- }
28306
- let t1;
28307
- if ($[1] !== count) {
28308
- t1 = /* @__PURE__ */ jsx("span", { className: "text-xs text-surface-accent-500 dark:text-surface-accent-400 bg-surface-100 dark:bg-surface-700 px-1 py-0 rounded", children: count });
28309
- $[1] = count;
28310
- $[2] = t1;
28311
- } else {
28312
- t1 = $[2];
28313
- }
28314
- return t1;
28315
- }
28316
- function PathTitle(t0) {
28317
- const $ = c(15);
28318
- const {
28319
- parents,
28320
- name,
28321
- count,
28322
- className
28323
- } = t0;
28324
- let t1;
28325
- if ($[0] !== className) {
28326
- t1 = cls("flex flex-col", className);
28327
- $[0] = className;
28328
- $[1] = t1;
28329
- } else {
28330
- t1 = $[1];
28331
- }
28332
- let t2;
28333
- if ($[2] !== parents) {
28334
- t2 = parents.length > 0 && /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "secondary", noWrap: true, children: parents.join(" / ") });
28335
- $[2] = parents;
28336
- $[3] = t2;
28337
- } else {
28338
- t2 = $[3];
28339
- }
28340
- let t3;
28341
- if ($[4] !== name) {
28342
- t3 = /* @__PURE__ */ jsx(Typography, { variant: "body2", noWrap: true, className: "font-medium", children: name });
28343
- $[4] = name;
28344
- $[5] = t3;
28345
- } else {
28346
- t3 = $[5];
28347
- }
28348
- let t4;
28349
- if ($[6] !== count) {
28350
- t4 = /* @__PURE__ */ jsx(CollectionCountBadge, { count });
28351
- $[6] = count;
28352
- $[7] = t4;
28353
- } else {
28354
- t4 = $[7];
28355
- }
28356
- let t5;
28357
- if ($[8] !== t3 || $[9] !== t4) {
28358
- t5 = /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center gap-2 min-w-0", children: [
28359
- t3,
28360
- t4
28361
- ] });
28362
- $[8] = t3;
28363
- $[9] = t4;
28364
- $[10] = t5;
28365
- } else {
28366
- t5 = $[10];
28367
- }
28368
- let t6;
28369
- if ($[11] !== t1 || $[12] !== t2 || $[13] !== t5) {
28370
- t6 = /* @__PURE__ */ jsxs("div", { className: t1, children: [
28371
- t2,
28372
- t5
28373
- ] });
28374
- $[11] = t1;
28375
- $[12] = t2;
28376
- $[13] = t5;
28377
- $[14] = t6;
28232
+ t12 = $[21];
28233
+ }
28234
+ let t13;
28235
+ if ($[22] !== t0 || $[23] !== t1 || $[24] !== t12) {
28236
+ t13 = /* @__PURE__ */ jsx("div", { className: "shrink-0 mt-auto px-4 pt-0.5 pb-2", children: /* @__PURE__ */ jsx(Tooltip, { title: t0, side: "right", sideOffset: 12, open: t1, children: t12 }) });
28237
+ $[22] = t0;
28238
+ $[23] = t1;
28239
+ $[24] = t12;
28240
+ $[25] = t13;
28378
28241
  } else {
28379
- t6 = $[14];
28242
+ t13 = $[25];
28380
28243
  }
28381
- return t6;
28244
+ return t13;
28382
28245
  }
28383
- function CollectionPathTitle(t0) {
28384
- const $ = c(9);
28246
+ function DrawerLogo(t0) {
28247
+ const $ = c(5);
28385
28248
  const {
28386
- path,
28387
- name,
28388
- count
28249
+ logo
28389
28250
  } = t0;
28390
28251
  const navigation = useNavigationController();
28391
28252
  let t1;
28392
- let t2;
28393
- if ($[0] !== navigation.collections) {
28394
- t2 = navigation.collections ?? [];
28395
- $[0] = navigation.collections;
28396
- $[1] = t2;
28397
- } else {
28398
- t2 = $[1];
28399
- }
28400
- let t3;
28401
- if ($[2] !== path || $[3] !== t2) {
28402
- t3 = getNavigationEntriesFromPath({
28403
- path,
28404
- collections: t2
28405
- }).slice(0, -1).map(_temp$b);
28406
- $[2] = path;
28407
- $[3] = t2;
28408
- $[4] = t3;
28253
+ if ($[0] !== logo) {
28254
+ t1 = logo ? /* @__PURE__ */ jsx("img", { src: logo, alt: "Logo", className: "w-[28px] h-[28px] object-contain" }) : /* @__PURE__ */ jsx(FireCMSLogo, { width: "28px", height: "28px" });
28255
+ $[0] = logo;
28256
+ $[1] = t1;
28409
28257
  } else {
28410
- t3 = $[4];
28258
+ t1 = $[1];
28411
28259
  }
28412
- t1 = t3;
28413
- const parents = t1;
28414
- let t4;
28415
- if ($[5] !== count || $[6] !== name || $[7] !== parents) {
28416
- t4 = /* @__PURE__ */ jsx(PathTitle, { parents, name, count, className: "shrink-0 mx-2 max-w-[140px] sm:max-w-[240px] lg:max-w-[320px]" });
28417
- $[5] = count;
28418
- $[6] = name;
28419
- $[7] = parents;
28420
- $[8] = t4;
28260
+ let t2;
28261
+ if ($[2] !== navigation.basePath || $[3] !== t1) {
28262
+ t2 = /* @__PURE__ */ jsx("div", { className: "flex flex-row items-center shrink-0 pt-4 pb-0 px-2", children: /* @__PURE__ */ jsx(Tooltip, { title: "Home", sideOffset: 20, side: "right", children: /* @__PURE__ */ jsx(Link, { className: "shrink-0 flex items-center justify-center w-[56px] h-[40px]", to: navigation.basePath, children: t1 }) }) });
28263
+ $[2] = navigation.basePath;
28264
+ $[3] = t1;
28265
+ $[4] = t2;
28421
28266
  } else {
28422
- t4 = $[8];
28267
+ t2 = $[4];
28423
28268
  }
28424
- return t4;
28425
- }
28426
- function _temp$b(entry) {
28427
- return entry.type === "entity" ? entry.entityId : entry.type === "collection" ? entry.collection.name : entry.view.name;
28269
+ return t2;
28428
28270
  }
28429
28271
  const DefaultAppBar = function DefaultAppBar2(t0) {
28430
- const $ = c(58);
28272
+ const $ = c(54);
28431
28273
  const {
28432
28274
  title,
28433
28275
  endAdornment,
@@ -28448,7 +28290,6 @@ const DefaultAppBar = function DefaultAppBar2(t0) {
28448
28290
  const logo = logoProp ?? appLogo;
28449
28291
  const navigation = useNavigationController();
28450
28292
  const breadcrumbs = useBreadcrumbsController();
28451
- const lastBreadcrumb = breadcrumbs.breadcrumbs?.[breadcrumbs.breadcrumbs.length - 1];
28452
28293
  const authController = useAuthController();
28453
28294
  const {
28454
28295
  mode,
@@ -28539,39 +28380,30 @@ const DefaultAppBar = function DefaultAppBar2(t0) {
28539
28380
  }
28540
28381
  let t8;
28541
28382
  if ($[21] !== breadcrumbs.breadcrumbs) {
28542
- t8 = (breadcrumbs.breadcrumbs ?? []).length > 0 && /* @__PURE__ */ jsx("div", { className: "mr-8 hidden lg:block", children: /* @__PURE__ */ jsx("div", { className: "flex flex-row gap-2 items-center", children: breadcrumbs.breadcrumbs.map(_temp$a) }) });
28383
+ t8 = (breadcrumbs.breadcrumbs ?? []).length > 0 && /* @__PURE__ */ jsx("div", { className: "mr-8 hidden lg:block", children: /* @__PURE__ */ jsx("div", { className: "flex flex-row gap-2 items-center", children: breadcrumbs.breadcrumbs.map(_temp$9) }) });
28543
28384
  $[21] = breadcrumbs.breadcrumbs;
28544
28385
  $[22] = t8;
28545
28386
  } else {
28546
28387
  t8 = $[22];
28547
28388
  }
28548
28389
  let t9;
28549
- if ($[23] !== breadcrumbs.breadcrumbs || $[24] !== lastBreadcrumb) {
28550
- t9 = lastBreadcrumb && /* @__PURE__ */ jsx(PathTitle, { className: "lg:hidden min-w-0 mr-2", parents: breadcrumbs.breadcrumbs.slice(0, -1).map(_temp2$5), name: lastBreadcrumb.title, count: lastBreadcrumb.count });
28551
- $[23] = breadcrumbs.breadcrumbs;
28552
- $[24] = lastBreadcrumb;
28553
- $[25] = t9;
28390
+ if ($[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28391
+ t9 = /* @__PURE__ */ jsx("div", { className: "flex-grow" });
28392
+ $[23] = t9;
28554
28393
  } else {
28555
- t9 = $[25];
28394
+ t9 = $[23];
28556
28395
  }
28557
28396
  let t10;
28558
- if ($[26] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28559
- t10 = /* @__PURE__ */ jsx("div", { className: "flex-grow" });
28560
- $[26] = t10;
28397
+ if ($[24] !== endAdornment) {
28398
+ t10 = endAdornment && /* @__PURE__ */ jsx(ErrorBoundary, { children: endAdornment });
28399
+ $[24] = endAdornment;
28400
+ $[25] = t10;
28561
28401
  } else {
28562
- t10 = $[26];
28402
+ t10 = $[25];
28563
28403
  }
28564
28404
  let t11;
28565
- if ($[27] !== endAdornment) {
28566
- t11 = endAdornment && /* @__PURE__ */ jsx(ErrorBoundary, { children: endAdornment });
28567
- $[27] = endAdornment;
28568
- $[28] = t11;
28569
- } else {
28570
- t11 = $[28];
28571
- }
28572
- let t12;
28573
- if ($[29] !== includeModeToggle || $[30] !== mode || $[31] !== setMode || $[32] !== t) {
28574
- t12 = includeModeToggle && /* @__PURE__ */ jsxs(Menu, { trigger: /* @__PURE__ */ jsx(IconButton, { color: "inherit", "aria-label": "Open drawer", children: mode === "dark" ? /* @__PURE__ */ jsx(DarkModeIcon, { size: "small" }) : /* @__PURE__ */ jsx(LightModeIcon, { size: "small" }) }), children: [
28405
+ if ($[26] !== includeModeToggle || $[27] !== mode || $[28] !== setMode || $[29] !== t) {
28406
+ t11 = includeModeToggle && /* @__PURE__ */ jsxs(Menu, { trigger: /* @__PURE__ */ jsx(IconButton, { color: "inherit", "aria-label": "Open drawer", children: mode === "dark" ? /* @__PURE__ */ jsx(DarkModeIcon, { size: "small" }) : /* @__PURE__ */ jsx(LightModeIcon, { size: "small" }) }), children: [
28575
28407
  /* @__PURE__ */ jsxs(MenuItem, { onClick: () => setMode("dark"), children: [
28576
28408
  /* @__PURE__ */ jsx(DarkModeIcon, { size: "smallest" }),
28577
28409
  " ",
@@ -28588,106 +28420,101 @@ const DefaultAppBar = function DefaultAppBar2(t0) {
28588
28420
  t("system_mode")
28589
28421
  ] })
28590
28422
  ] });
28591
- $[29] = includeModeToggle;
28592
- $[30] = mode;
28593
- $[31] = setMode;
28594
- $[32] = t;
28595
- $[33] = t12;
28423
+ $[26] = includeModeToggle;
28424
+ $[27] = mode;
28425
+ $[28] = setMode;
28426
+ $[29] = t;
28427
+ $[30] = t11;
28596
28428
  } else {
28597
- t12 = $[33];
28429
+ t11 = $[30];
28598
28430
  }
28599
- let t13;
28600
- if ($[34] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28601
- t13 = /* @__PURE__ */ jsx(LanguageToggle, {});
28602
- $[34] = t13;
28431
+ let t12;
28432
+ if ($[31] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28433
+ t12 = /* @__PURE__ */ jsx(LanguageToggle, {});
28434
+ $[31] = t12;
28603
28435
  } else {
28604
- t13 = $[34];
28436
+ t12 = $[31];
28605
28437
  }
28606
- let t14;
28607
- if ($[35] !== user) {
28608
- t14 = user && /* @__PURE__ */ jsxs("div", { className: "px-4 py-2 mb-2", children: [
28438
+ let t13;
28439
+ if ($[32] !== user) {
28440
+ t13 = user && /* @__PURE__ */ jsxs("div", { className: "px-4 py-2 mb-2", children: [
28609
28441
  user.displayName && /* @__PURE__ */ jsx(Typography, { variant: "body1", color: "secondary", children: user.displayName }),
28610
28442
  user.email && /* @__PURE__ */ jsx(Typography, { variant: "body2", color: "secondary", children: user.email })
28611
28443
  ] });
28612
- $[35] = user;
28613
- $[36] = t14;
28444
+ $[32] = user;
28445
+ $[33] = t13;
28614
28446
  } else {
28615
- t14 = $[36];
28447
+ t13 = $[33];
28616
28448
  }
28617
- let t15;
28618
- if ($[37] !== authController || $[38] !== dropDownActions || $[39] !== navigate || $[40] !== t) {
28619
- t15 = !dropDownActions && /* @__PURE__ */ jsxs(MenuItem, { onClick: async () => {
28449
+ let t14;
28450
+ if ($[34] !== authController || $[35] !== dropDownActions || $[36] !== navigate || $[37] !== t) {
28451
+ t14 = !dropDownActions && /* @__PURE__ */ jsxs(MenuItem, { onClick: async () => {
28620
28452
  await authController.signOut();
28621
28453
  navigate("/");
28622
28454
  }, children: [
28623
28455
  /* @__PURE__ */ jsx(LogoutIcon, {}),
28624
28456
  t("log_out")
28625
28457
  ] });
28626
- $[37] = authController;
28627
- $[38] = dropDownActions;
28628
- $[39] = navigate;
28629
- $[40] = t;
28630
- $[41] = t15;
28458
+ $[34] = authController;
28459
+ $[35] = dropDownActions;
28460
+ $[36] = navigate;
28461
+ $[37] = t;
28462
+ $[38] = t14;
28631
28463
  } else {
28632
- t15 = $[41];
28464
+ t14 = $[38];
28633
28465
  }
28634
- let t16;
28635
- if ($[42] !== avatarComponent || $[43] !== dropDownActions || $[44] !== t14 || $[45] !== t15) {
28636
- t16 = /* @__PURE__ */ jsxs(Menu, { trigger: avatarComponent, children: [
28637
- t14,
28466
+ let t15;
28467
+ if ($[39] !== avatarComponent || $[40] !== dropDownActions || $[41] !== t13 || $[42] !== t14) {
28468
+ t15 = /* @__PURE__ */ jsxs(Menu, { trigger: avatarComponent, children: [
28469
+ t13,
28638
28470
  dropDownActions,
28639
- t15
28471
+ t14
28640
28472
  ] });
28641
- $[42] = avatarComponent;
28642
- $[43] = dropDownActions;
28643
- $[44] = t14;
28644
- $[45] = t15;
28645
- $[46] = t16;
28473
+ $[39] = avatarComponent;
28474
+ $[40] = dropDownActions;
28475
+ $[41] = t13;
28476
+ $[42] = t14;
28477
+ $[43] = t15;
28646
28478
  } else {
28647
- t16 = $[46];
28479
+ t15 = $[43];
28648
28480
  }
28649
- let t17;
28650
- if ($[47] !== startAdornment || $[48] !== style || $[49] !== t11 || $[50] !== t12 || $[51] !== t16 || $[52] !== t5 || $[53] !== t6 || $[54] !== t7 || $[55] !== t8 || $[56] !== t9) {
28651
- t17 = /* @__PURE__ */ jsxs("div", { style, className: t5, children: [
28481
+ let t16;
28482
+ if ($[44] !== startAdornment || $[45] !== style || $[46] !== t10 || $[47] !== t11 || $[48] !== t15 || $[49] !== t5 || $[50] !== t6 || $[51] !== t7 || $[52] !== t8) {
28483
+ t16 = /* @__PURE__ */ jsxs("div", { style, className: t5, children: [
28652
28484
  t6,
28653
28485
  t7,
28654
28486
  t8,
28655
- t9,
28656
28487
  startAdornment,
28488
+ t9,
28657
28489
  t10,
28658
28490
  t11,
28659
28491
  t12,
28660
- t13,
28661
- t16
28492
+ t15
28662
28493
  ] });
28663
- $[47] = startAdornment;
28664
- $[48] = style;
28665
- $[49] = t11;
28666
- $[50] = t12;
28667
- $[51] = t16;
28668
- $[52] = t5;
28669
- $[53] = t6;
28670
- $[54] = t7;
28671
- $[55] = t8;
28672
- $[56] = t9;
28673
- $[57] = t17;
28494
+ $[44] = startAdornment;
28495
+ $[45] = style;
28496
+ $[46] = t10;
28497
+ $[47] = t11;
28498
+ $[48] = t15;
28499
+ $[49] = t5;
28500
+ $[50] = t6;
28501
+ $[51] = t7;
28502
+ $[52] = t8;
28503
+ $[53] = t16;
28674
28504
  } else {
28675
- t17 = $[57];
28505
+ t16 = $[53];
28676
28506
  }
28677
- return t17;
28507
+ return t16;
28678
28508
  };
28679
- function _temp$a(breadcrumb, index) {
28509
+ function _temp$9(breadcrumb, index) {
28680
28510
  return /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
28681
28511
  /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "secondary", children: "/" }),
28682
28512
  /* @__PURE__ */ jsx(Link, { className: "visited:text-inherit visited:dark:text-inherit block", to: breadcrumb.url, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center gap-2 whitespace-nowrap", children: [
28683
28513
  /* @__PURE__ */ jsx(Typography, { variant: "body2", children: breadcrumb.title }),
28684
- /* @__PURE__ */ jsx(CollectionCountBadge, { count: breadcrumb.count })
28514
+ breadcrumb.count !== void 0 && (breadcrumb.count !== null ? /* @__PURE__ */ jsx("span", { className: "text-xs text-surface-accent-500 dark:text-surface-accent-400 bg-surface-100 dark:bg-surface-700 px-1 py-0 rounded", children: breadcrumb.count }) : /* @__PURE__ */ jsx(Skeleton, { className: "w-8 h-4 rounded-md" }))
28685
28515
  ] }) }, index)
28686
28516
  ] }, breadcrumb.url + "_" + index);
28687
28517
  }
28688
- function _temp2$5(breadcrumb_0) {
28689
- return breadcrumb_0.title;
28690
- }
28691
28518
  const buildIdsMap = (value) => value && Array.isArray(value) && value.length > 0 ? value.map((v, index) => {
28692
28519
  if (!v) return {};
28693
28520
  return {
@@ -29124,7 +28951,7 @@ function SearchIconsView(t0) {
29124
28951
  } else {
29125
28952
  const searchResult = iconsSearch.search(value);
29126
28953
  const limited = searchResult.slice(0, 50);
29127
- setKeys(limited.map(_temp$9));
28954
+ setKeys(limited.map(_temp$8));
29128
28955
  }
29129
28956
  }, UPDATE_SEARCH_INDEX_WAIT_MS);
29130
28957
  $[0] = t3;
@@ -29216,7 +29043,7 @@ function SearchIconsView(t0) {
29216
29043
  }
29217
29044
  return t11;
29218
29045
  }
29219
- function _temp$9(e) {
29046
+ function _temp$8(e) {
29220
29047
  return e.item.key;
29221
29048
  }
29222
29049
  function FieldCaption(t0) {
@@ -29675,7 +29502,7 @@ function LicenseBanner(t0) {
29675
29502
  i18n
29676
29503
  } = useTranslation();
29677
29504
  const plugins = useContext(CustomizationControllerContext)?.plugins;
29678
- const runsProPlugin = plugins?.some(_temp$8) ?? false;
29505
+ const runsProPlugin = plugins?.some(_temp$7) ?? false;
29679
29506
  const [dismissed, setDismissed] = useState(_temp2$4);
29680
29507
  const [dismissedForGood, setDismissedForGood] = useState(_temp3$3);
29681
29508
  const content = licenseStatus ? buildBannerContent(licenseStatus, t, i18n?.language, runsProPlugin) : null;
@@ -29765,7 +29592,7 @@ function _temp3$3() {
29765
29592
  function _temp2$4() {
29766
29593
  return readDismissed(sessionDismissals);
29767
29594
  }
29768
- function _temp$8(plugin) {
29595
+ function _temp$7(plugin) {
29769
29596
  return PRO_PLUGIN_KEYS.includes(plugin.key);
29770
29597
  }
29771
29598
  function buildBannerContent(status, t, language, runsProPlugin) {
@@ -29905,32 +29732,64 @@ function writeDismissed(store, states) {
29905
29732
  }
29906
29733
  }
29907
29734
  function useReferenceDialog(referenceDialogProps) {
29735
+ const $ = c(9);
29908
29736
  const navigation = useNavigationController();
29909
29737
  const sideDialogsController = useSideDialogsController();
29910
- const open = useCallback(() => {
29911
- if (referenceDialogProps.path) {
29912
- let usedCollection = referenceDialogProps.collection;
29913
- if (!usedCollection) usedCollection = navigation.getCollection(referenceDialogProps.path);
29914
- if (!usedCollection) throw Error("Not able to resolve the collection in useReferenceDialog. Make sure a collection is registered in path " + referenceDialogProps.path);
29915
- sideDialogsController.open({
29916
- key: `reference_${referenceDialogProps.path}`,
29917
- component: /* @__PURE__ */ jsx(ReferenceSelectionTable, { collection: usedCollection, ...referenceDialogProps }),
29918
- width: "90vw",
29919
- onClose: () => {
29920
- referenceDialogProps.onClose?.();
29738
+ let t0;
29739
+ if ($[0] !== navigation || $[1] !== referenceDialogProps || $[2] !== sideDialogsController) {
29740
+ t0 = () => {
29741
+ if (referenceDialogProps.path) {
29742
+ let usedCollection = referenceDialogProps.collection;
29743
+ if (!usedCollection) {
29744
+ usedCollection = navigation.getCollection(referenceDialogProps.path);
29921
29745
  }
29922
- });
29923
- } else {
29924
- throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`");
29925
- }
29926
- }, [navigation, referenceDialogProps, sideDialogsController]);
29927
- const close = useCallback(() => {
29928
- sideDialogsController.close(`reference_${referenceDialogProps.path}`);
29929
- }, [sideDialogsController, referenceDialogProps.path]);
29930
- return {
29931
- open,
29932
- close
29933
- };
29746
+ if (!usedCollection) {
29747
+ throw Error("Not able to resolve the collection in useReferenceDialog. Make sure a collection is registered in path " + referenceDialogProps.path);
29748
+ }
29749
+ sideDialogsController.open({
29750
+ key: `reference_${referenceDialogProps.path}`,
29751
+ component: /* @__PURE__ */ jsx(ReferenceSelectionTable, { collection: usedCollection, ...referenceDialogProps }),
29752
+ width: "90vw",
29753
+ onClose: () => {
29754
+ referenceDialogProps.onClose?.();
29755
+ }
29756
+ });
29757
+ } else {
29758
+ throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`");
29759
+ }
29760
+ };
29761
+ $[0] = navigation;
29762
+ $[1] = referenceDialogProps;
29763
+ $[2] = sideDialogsController;
29764
+ $[3] = t0;
29765
+ } else {
29766
+ t0 = $[3];
29767
+ }
29768
+ const open = t0;
29769
+ let t1;
29770
+ if ($[4] !== sideDialogsController) {
29771
+ t1 = () => {
29772
+ sideDialogsController.close();
29773
+ };
29774
+ $[4] = sideDialogsController;
29775
+ $[5] = t1;
29776
+ } else {
29777
+ t1 = $[5];
29778
+ }
29779
+ const close = t1;
29780
+ let t2;
29781
+ if ($[6] !== close || $[7] !== open) {
29782
+ t2 = {
29783
+ open,
29784
+ close
29785
+ };
29786
+ $[6] = close;
29787
+ $[7] = open;
29788
+ $[8] = t2;
29789
+ } else {
29790
+ t2 = $[8];
29791
+ }
29792
+ return t2;
29934
29793
  }
29935
29794
  const fireCMSLogo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAa9SURBVHgB7Z1NbBNHFMf/a7uBEgMOHy2pSlnUql+oEG7lgNgcqZAgR9RKSU5tT9mcqp6SXNoj5tBzHAmk3ggSUo/Ziko9skXqoVIlJm3Von4IhzhAIIk7b9ab+COJvZ63610nP8netWx5Z//73syb2Zm3BjqJXc4BixaQMgHjDFCWW5iVb83aH5eL8jdC7lS2a/Ny3wGyLvJGER3CQJRsCHZBfrqCBpHaRkCJuXYb2O9EKWg0AtpKtDF5gnJr5BA+BSVm/sAsQiY8AZW1PSHR7IhE2wwhX1NAWlrlywIhwC9gPISrR8iyFJDvnQIzvALapRH5PgG+uo0bAbLIfLYAJngEtJ+awOq03LOQCAxZN6bGOdw6BV3GyV1X7iEx4hFlGQGs3qt4jBbtW6Cq65bIXW0km7x06XG0SXsCei57S+4NoDtwZUs91I5LBxfQE28O8W0o2kVIEQeDihhMwO4Vz0cEFbF1AbtfPB8RRMTWBNw54vmIVkVsMYxRDYaJnYOpztl+1LQn1VxAu3QN3dPaBkGe80sTzX60vQt7geY0IsDcMw8r+wPO9N6H2TOPXHpBbn9DcfWgehHu09OYf/YGnNJ5uE9OIyJkjyWb3+rLrQVU9R71MMIbELD238XlvjsYOXQTuUywIbziSg6zC5cw8+/HcBbPI0RkwdJnt6oPtxFw6ZbX5eFn5PANDB+5qQTkQCyfwNSfX6Lw3ycICTkclh3c7IvNBQzJdUmwide+YhOunpCFHN1sFGcrAR+AsdUl95zo/xr2q98gCkhAEpIEZUQAL6Qr99XUNY2tsL3EOp5HjcPc2x9FJh5BVQQdk47NiAlkGgZOai2QOWD2xWM+kZah1nvwl+84W2xpfS9OVlthnQWuWugS8QgKhebeuYiBfffBRK7eCutduGng2ApxEM+HX0RjrPrThoD2Y7b7tHERz4dEvPXmVbXl+DvvNq1HlQWmLoMBClPiJJ4PlWn65KfgIbVuhV4jojrNLz2CJlTIBx+cQpwZ+vVbzBYvQZP1xqRigWkLDEybnyHuXDv+BYcrS4PrsWinIqC++17J3Qmth8EJeQlPTErTVDbqQAuajEUYKOsyfPgm9DGU0Rkc9V8S6r56KMDWH8V50SctMKM9WErumzSGj9yAPj0WubAFTXhcIlp4LnrZTFVmhbYNtWiMXaXI4Cm3cUYKmNIa80mieD76UYOyQGgN2SdZQLrnovsXJKAJDRgK0TE4upzaFpjLsHTQO8JB/R6JmYEuyz3A4gEkkuW90EVfwLvyZtXffUgkB03gfWihP0N1h0MCCmhQTOu7QadY0C97UdsCxd64rGQIjtijXXahbYHuvn4kFbf3GDQhC1zTCobcfdqF6Bhur+7FN8gCUy40KGb2wjlgImmQ++pf/LV5skABTb6ncCBhMF10Rwq46kCT/LFzSBozr5yFPituqjJNQUCDpLkxuS9DeUXVXbnybWgydXwQSWHquAUGHHrzBXSgCV3RJFghWV/hKIf7GsroKgKqelB7mfzoW0OIO0zWJ3nu0LsnoKoH9a2Qru64eRFxpXB0gMn6UPCnuFV35a6DgXz/h7F0Zd6La6y3GXUTLEt0f1i7g2guFzH387TaxgESb/DUKEffV/0d8tmT/oe6wYQyixUyF1gLCrGG3r3KWZaavAt1Aq7QghIWs4mDiCQelYGxvy5UBpAqagX0GhMWK1RHq4jIMOrR1rHPnv6cebCjPFO/4KZxmYM3V4ZyIJhgZPIPBxO/zyEKrvefw+TrlrJARmrqPp9IF9qE3biQ1VEsGlIUEGChDWGXyFwshMDIPy7G/voRA0sPwQFVEddl+MQU422CMYt876a9hCaLDVfJlUNrBQaePIQthbywIAJbJbnnjAyMZw+9F3LcSVnjMm0sNiTsEq2JuIYIIDHNZ0VYjx/gxPMicivPar4nweZ7cmoUmSwuwpHw0e0yHTVf8m8v5uvXRuwcZESS379tXpwW7sqtTELlVdlxuM3EI5oLqGLDNFWgAjsHUTnnpuymPWlE8Kc98dlNvNNAMAGJ3dRPNQSf2qEOkKYbIN3UsLjtiEcEt8BquiLEocGT7GS7mX/1BCS8fjMF2wmbZaTyUk9tlxOmFfQFJLwcM1JE4wqSgSNddpQjBSiPgD67SWiZsBcn5V8PIzZCkrvSTTPprsxZzsMRkPDCHQsdtcjwhPMJT8BqvHwM8pUaRuiQaCkHWKOBAAchE42APusPI1Bi0gMJTPAgvPk9NDmgGx9GsBVK0NIA1Mg3rdlTCx9z3rYha5zY2NLjMMo/eXMboxWsnv8Br15XnnLWoGsAAAAASUVORK5CYII=";
29936
29795
  function useBrowserTitleAndIcon(name, logo) {
@@ -30589,7 +30448,7 @@ function useBuildLocalConfigurationPersistence() {
30589
30448
  t0 = $[0];
30590
30449
  }
30591
30450
  const configCache = useRef(t0);
30592
- const getCollectionFromStorage = _temp$7;
30451
+ const getCollectionFromStorage = _temp$6;
30593
30452
  let t1;
30594
30453
  if ($[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
30595
30454
  t1 = (path) => {
@@ -30712,7 +30571,7 @@ function useBuildLocalConfigurationPersistence() {
30712
30571
  }
30713
30572
  return t11;
30714
30573
  }
30715
- function _temp$7(storageKey) {
30574
+ function _temp$6(storageKey) {
30716
30575
  return getLocalStorageJSON(storageKey, {});
30717
30576
  }
30718
30577
  function useBuildModeController() {
@@ -30875,32 +30734,78 @@ function useValidateAuthenticator(t0) {
30875
30734
  }
30876
30735
  return t7;
30877
30736
  }
30878
- function useLeavePageConfirmation(when) {
30879
- const $ = c(3);
30880
- let t0;
30881
- let t1;
30882
- if ($[0] !== when) {
30883
- t0 = () => {
30884
- if (!when) {
30885
- return;
30737
+ function useNavigationUnsavedChangesDialog(when, onSuccess) {
30738
+ const [isDialogOpen, setIsDialogOpen] = useState(false);
30739
+ const [pendingNavigation, setPendingNavigation] = useState(null);
30740
+ const handleCancel = useCallback(() => {
30741
+ setIsDialogOpen(false);
30742
+ setPendingNavigation(null);
30743
+ }, []);
30744
+ const handleOk = useCallback(() => {
30745
+ setIsDialogOpen(false);
30746
+ if (pendingNavigation) {
30747
+ onSuccess();
30748
+ if (pendingNavigation.type === "popstate") {
30749
+ window.history.go(pendingNavigation.delta);
30750
+ } else if (pendingNavigation.type === "link") {
30751
+ window.location.href = pendingNavigation.href;
30752
+ }
30753
+ setPendingNavigation(null);
30754
+ }
30755
+ }, [onSuccess, pendingNavigation]);
30756
+ const handleBeforeUnload = useCallback((e) => {
30757
+ if (when) {
30758
+ e.preventDefault();
30759
+ e.returnValue = "";
30760
+ }
30761
+ }, [when]);
30762
+ const handlePopState = useCallback((e_0) => {
30763
+ if (when) {
30764
+ e_0.preventDefault();
30765
+ setPendingNavigation({
30766
+ type: "popstate",
30767
+ delta: -1
30768
+ });
30769
+ setIsDialogOpen(true);
30770
+ }
30771
+ }, [when]);
30772
+ const handleLinkClick = useCallback((e_1) => {
30773
+ if (!when) return;
30774
+ const target = e_1.target;
30775
+ const anchor = target.closest("a[href]");
30776
+ if (anchor && anchor.host === window.location.host) {
30777
+ e_1.preventDefault();
30778
+ const href = anchor.getAttribute("href");
30779
+ if (href) {
30780
+ setPendingNavigation({
30781
+ type: "link",
30782
+ href
30783
+ });
30784
+ setIsDialogOpen(true);
30886
30785
  }
30887
- const handleBeforeUnload = _temp$6;
30786
+ }
30787
+ }, [when]);
30788
+ useEffect(() => {
30789
+ if (when) {
30888
30790
  window.addEventListener("beforeunload", handleBeforeUnload);
30889
- return () => window.removeEventListener("beforeunload", handleBeforeUnload);
30791
+ window.addEventListener("popstate", handlePopState);
30792
+ document.addEventListener("click", handleLinkClick);
30793
+ } else {
30794
+ window.removeEventListener("beforeunload", handleBeforeUnload);
30795
+ window.removeEventListener("popstate", handlePopState);
30796
+ document.removeEventListener("click", handleLinkClick);
30797
+ }
30798
+ return () => {
30799
+ window.removeEventListener("beforeunload", handleBeforeUnload);
30800
+ window.removeEventListener("popstate", handlePopState);
30801
+ document.removeEventListener("click", handleLinkClick);
30890
30802
  };
30891
- t1 = [when];
30892
- $[0] = when;
30893
- $[1] = t0;
30894
- $[2] = t1;
30895
- } else {
30896
- t0 = $[1];
30897
- t1 = $[2];
30898
- }
30899
- useEffect(t0, t1);
30900
- }
30901
- function _temp$6(e) {
30902
- e.preventDefault();
30903
- e.returnValue = "";
30803
+ }, [when, handleBeforeUnload, handlePopState, handleLinkClick]);
30804
+ return {
30805
+ navigationWasBlocked: isDialogOpen,
30806
+ handleCancel,
30807
+ handleOk
30808
+ };
30904
30809
  }
30905
30810
  function UnsavedChangesDialog(t0) {
30906
30811
  const $ = c(30);
@@ -31220,14 +31125,17 @@ function SideDialogView({
31220
31125
  const widthRef = React__default.useRef(panel?.width);
31221
31126
  const width = widthRef.current;
31222
31127
  const sideDialogsController = useSideDialogsController();
31223
- useLeavePageConfirmation(blocked && !drawerCloseRequested);
31128
+ const {
31129
+ handleOk: handleNavigationOk,
31130
+ handleCancel: handleNavigationCancel
31131
+ } = useNavigationUnsavedChangesDialog(blocked && !drawerCloseRequested, () => setBlocked(false));
31224
31132
  useEffect(() => {
31225
31133
  if (panel) widthRef.current = panel.width;
31226
31134
  }, [panel]);
31227
31135
  const handleDrawerCloseOk = () => {
31228
31136
  setBlocked(false);
31229
31137
  setDrawerCloseRequested(false);
31230
- sideDialogsController.close(panel?.key);
31138
+ sideDialogsController.close();
31231
31139
  panel?.onClose?.();
31232
31140
  };
31233
31141
  const handleDrawerCloseCancel = () => {
@@ -31237,7 +31145,7 @@ function SideDialogView({
31237
31145
  if (blocked && !force) {
31238
31146
  setDrawerCloseRequested(true);
31239
31147
  } else {
31240
- sideDialogsController.close(panel?.key);
31148
+ sideDialogsController.close();
31241
31149
  panel?.onClose?.();
31242
31150
  }
31243
31151
  };
@@ -31270,7 +31178,7 @@ function SideDialogView({
31270
31178
  width
31271
31179
  } })
31272
31180
  ] }),
31273
- /* @__PURE__ */ jsx(UnsavedChangesDialog, { open: drawerCloseRequested, handleOk: handleDrawerCloseOk, handleCancel: handleDrawerCloseCancel, body: blockedNavigationMessage })
31181
+ /* @__PURE__ */ jsx(UnsavedChangesDialog, { open: drawerCloseRequested, handleOk: drawerCloseRequested ? handleDrawerCloseOk : handleNavigationOk, handleCancel: drawerCloseRequested ? handleDrawerCloseCancel : handleNavigationCancel, body: blockedNavigationMessage })
31274
31182
  ] });
31275
31183
  }
31276
31184
  function EntityEditViewFormActions({
@@ -31736,9 +31644,6 @@ function EntityEditViewInner({
31736
31644
  }, [selectedTabProp]);
31737
31645
  const subcollections = (collection.subcollections ?? []).filter((c2) => !c2.hideFromNavigation);
31738
31646
  const subcollectionsCount = subcollections?.length ?? 0;
31739
- const [subcollectionCounts, setSubcollectionCounts] = useState({});
31740
- const selectedSubcollection = subcollections.find((subcollection) => (subcollection.id ?? subcollection.path) === selectedTab);
31741
- const selectedSubcollectionDataSource = useDataSource();
31742
31647
  const customViews = collection.entityViews ?? [];
31743
31648
  const customViewsCount = customViews?.length ?? 0;
31744
31649
  const includeJsonView = collection.includeJsonView === void 0 ? true : collection.includeJsonView;
@@ -31812,18 +31717,15 @@ function EntityEditViewInner({
31812
31717
  const jsonView = selectedTab === JSON_TAB_VALUE || mountedTabsRef.current.has(JSON_TAB_VALUE) ? /* @__PURE__ */ jsx("div", { className: cls("relative flex-1 h-full overflow-auto w-full", {
31813
31718
  "hidden": selectedTab !== JSON_TAB_VALUE
31814
31719
  }), role: "tabpanel", children: /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsx(EntityJsonPreview, { values: formContext?.values ?? entity?.values ?? {} }) }) }, "json_view") : null;
31815
- const subCollectionsViews = subcollections && subcollections.map((subcollection_0) => {
31816
- const subcollectionId = subcollection_0.id ?? subcollection_0.path;
31817
- const newFullPath = usedEntity ? `${path}/${usedEntity?.id}/${removeInitialAndTrailingSlashes(subcollection_0.path)}` : void 0;
31720
+ const subCollectionsViews = subcollections && subcollections.map((subcollection) => {
31721
+ const subcollectionId = subcollection.id ?? subcollection.path;
31722
+ const newFullPath = usedEntity ? `${path}/${usedEntity?.id}/${removeInitialAndTrailingSlashes(subcollection.path)}` : void 0;
31818
31723
  const newFullIdPath = fullIdPath && usedEntity ? `${fullIdPath}/${encodeEntityId(usedEntity.id)}/${removeInitialAndTrailingSlashes(subcollectionId)}` : void 0;
31819
- const newPathSegments = buildSubcollectionPathSegments(pathSegments, usedEntity?.id, subcollection_0.path);
31724
+ const newPathSegments = buildSubcollectionPathSegments(pathSegments, usedEntity?.id, subcollection.path);
31820
31725
  if (selectedTab !== subcollectionId) return null;
31821
31726
  return /* @__PURE__ */ jsxs("div", { className: "relative flex-1 h-full overflow-auto w-full", role: "tabpanel", children: [
31822
31727
  globalLoading && /* @__PURE__ */ jsx(CircularProgressCenter, {}),
31823
- !globalLoading && (usedEntity && newFullPath ? /* @__PURE__ */ jsx(EntityCollectionView$1, { fullPath: newFullPath, pathSegments: newPathSegments, fullIdPath: newFullIdPath, parentCollectionIds: [...parentCollectionIds, collection.id], isSubCollection: true, updateUrl: false, ...subcollection_0, openEntityMode: layout, onCountChange: (count) => setSubcollectionCounts((counts) => counts[subcollectionId] === count ? counts : {
31824
- ...counts,
31825
- [subcollectionId]: count
31826
- }) }) : /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-full h-full p-3", children: /* @__PURE__ */ jsx(Typography, { variant: "label", children: t("youd_need_to_save_before_additional_collections") }) }))
31728
+ !globalLoading && (usedEntity && newFullPath ? /* @__PURE__ */ jsx(EntityCollectionView$1, { fullPath: newFullPath, pathSegments: newPathSegments, fullIdPath: newFullIdPath, parentCollectionIds: [...parentCollectionIds, collection.id], isSubCollection: true, updateUrl: false, ...subcollection, openEntityMode: layout }) : /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-full h-full p-3", children: /* @__PURE__ */ jsx(Typography, { variant: "label", children: t("youd_need_to_save_before_additional_collections") }) }))
31827
31729
  ] }, `subcol_${subcollectionId}`);
31828
31730
  }).filter(Boolean);
31829
31731
  const onSideTabClick = (value_0) => {
@@ -31859,7 +31761,7 @@ function EntityEditViewInner({
31859
31761
  onSaved?.(res);
31860
31762
  formProps?.onSaved?.(res);
31861
31763
  }, Builder: selectedSecondaryForm?.Builder });
31862
- const subcollectionTabs = subcollections && subcollections.filter((sub) => !groupedViews.includes(sub.id ?? sub.path)).map((subcollection_1) => /* @__PURE__ */ jsx(Tab, { className: "text-sm min-w-[120px]", value: subcollection_1.id ?? subcollection_1.path, children: subcollection_1.name }, `entity_detail_collection_tab_${subcollection_1.name}`));
31764
+ const subcollectionTabs = subcollections && subcollections.filter((sub) => !groupedViews.includes(sub.id ?? sub.path)).map((subcollection_0) => /* @__PURE__ */ jsx(Tab, { className: "text-sm min-w-[120px]", value: subcollection_0.id ?? subcollection_0.path, children: subcollection_0.name }, `entity_detail_collection_tab_${subcollection_0.name}`));
31863
31765
  const customViewTabsStart = resolvedEntityViews.filter((view) => view.position === "start" && !groupedViews.includes(view.key)).map((view_0) => /* @__PURE__ */ jsx(Tab, { className: !view_0.tabComponent ? "text-sm min-w-[120px]" : void 0, value: view_0.key, children: view_0.tabComponent ?? view_0.name }, `entity_detail_collection_tab_${view_0.name}`));
31864
31766
  const customViewTabsEnd = resolvedEntityViews.filter((view_1) => (!view_1.position || view_1.position === "end") && !groupedViews.includes(view_1.key)).map((view_2) => /* @__PURE__ */ jsx(Tab, { className: !view_2.tabComponent ? "text-sm min-w-[120px]" : void 0, value: view_2.key, children: view_2.tabComponent ?? view_2.name }, `entity_detail_collection_tab_${view_2.name}`));
31865
31767
  const viewGroupMenus = collection.viewGroups?.map((group) => {
@@ -31868,17 +31770,13 @@ function EntityEditViewInner({
31868
31770
  group.name,
31869
31771
  /* @__PURE__ */ jsx(ExpandMoreIcon, { className: "ml-1 -mr-1", size: "small" })
31870
31772
  ] }), children: group.views.map((viewId) => {
31871
- const subcollection_2 = subcollections.find((s) => (s.id ?? s.path) === viewId);
31773
+ const subcollection_1 = subcollections.find((s) => (s.id ?? s.path) === viewId);
31872
31774
  const customView_0 = resolvedEntityViews.find((v) => v.key === viewId);
31873
- const name = subcollection_2?.name ?? customView_0?.name ?? viewId;
31775
+ const name = subcollection_1?.name ?? customView_0?.name ?? viewId;
31874
31776
  return /* @__PURE__ */ jsx(MenuItem, { onClick: () => onSideTabClick(viewId), className: selectedTab === viewId ? "bg-surface-accent-100 dark:bg-surface-accent-900" : "", children: name }, `view_group_${group.name}_${viewId}`);
31875
31777
  }) }, `view_group_${group.name}`);
31876
31778
  });
31877
31779
  const shouldShowTopBar = Boolean(barActions) || hasAdditionalViews;
31878
- const subcollectionTitle = layout === "side_panel" && selectedSubcollection && usedEntity ? (() => {
31879
- const subcollectionId_0 = selectedSubcollection.id ?? selectedSubcollection.path;
31880
- return /* @__PURE__ */ jsx(CollectionPathTitle, { path: fullIdPath ? `${fullIdPath}/${encodeEntityId(usedEntity.id)}/${removeInitialAndTrailingSlashes(subcollectionId_0)}` : `${path}/${usedEntity.id}/${removeInitialAndTrailingSlashes(selectedSubcollection.path)}`, name: selectedSubcollection.name, count: subcollectionCounts[subcollectionId_0] ?? (selectedSubcollectionDataSource.countEntities ? null : void 0) });
31881
- })() : null;
31882
31780
  let result = /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col h-full w-full bg-white dark:bg-surface-900", children: [
31883
31781
  shouldShowTopBar && /* @__PURE__ */ jsxs("div", { className: cls("h-14 items-center overflow-hidden w-full border-b pl-2 pr-2 flex gap-2 bg-surface-50 dark:bg-surface-900", defaultBorderMixin), children: [
31884
31782
  barActions?.({
@@ -31887,7 +31785,6 @@ function EntityEditViewInner({
31887
31785
  values: formContext?.values ?? usedEntity?.values ?? {},
31888
31786
  status
31889
31787
  }),
31890
- subcollectionTitle,
31891
31788
  /* @__PURE__ */ jsx("div", { className: "flex-grow" }),
31892
31789
  pluginActionsTop,
31893
31790
  globalLoading && /* @__PURE__ */ jsx("div", { className: "self-center", children: /* @__PURE__ */ jsx(CircularProgress, { size: "small" }) }),
@@ -32139,7 +32036,7 @@ const propsToSidePanel = (props, buildUrlCollectionPath, resolveIdsFrom, smallLa
32139
32036
  };
32140
32037
  };
32141
32038
  function useBuildSideDialogsController() {
32142
- const $ = c(23);
32039
+ const $ = c(21);
32143
32040
  const location = useLocation();
32144
32041
  const navigate = useNavigate();
32145
32042
  let t0;
@@ -32162,78 +32059,46 @@ function useBuildSideDialogsController() {
32162
32059
  const routesCount = useRef(0);
32163
32060
  let t2;
32164
32061
  if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
32165
- t2 = {};
32166
- $[2] = t2;
32167
- } else {
32168
- t2 = $[2];
32169
- }
32170
- const entryKeysOfPanelsWithoutUrl = useRef(t2);
32171
- let t3;
32172
- if ($[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
32173
- t3 = (newPanels) => {
32062
+ t2 = (newPanels) => {
32174
32063
  sidePanelsRef.current = newPanels;
32175
32064
  setSidePanels(newPanels);
32176
32065
  };
32177
- $[3] = t3;
32066
+ $[2] = t2;
32178
32067
  } else {
32179
- t3 = $[3];
32068
+ t2 = $[2];
32180
32069
  }
32181
- const updateSidePanels = t3;
32182
- let t4;
32183
- if ($[4] !== location.key || $[5] !== location.state) {
32184
- t4 = () => {
32070
+ const updateSidePanels = t2;
32071
+ let t3;
32072
+ if ($[3] !== location.state) {
32073
+ t3 = () => {
32185
32074
  const state = location.state;
32186
32075
  const panelKeys = state?.panels ?? [];
32187
- const panelsInHistory = panelKeys.map((key) => routesStore.current[key]).filter(_temp$4);
32188
- const keptPanels = [];
32189
- let matched = 0;
32190
- for (const panel of sidePanelsRef.current) {
32191
- if (panelsInHistory[matched]?.key === panel.key) {
32192
- keptPanels.push(panel);
32193
- matched++;
32194
- } else {
32195
- if (!panel.urlPath && (keptPanels.length > 0 || entryKeysOfPanelsWithoutUrl.current[panel.key] === location.key)) {
32196
- keptPanels.push(panel);
32197
- } else {
32198
- break;
32199
- }
32200
- }
32201
- }
32202
- const newPanels_0 = [...keptPanels, ...panelsInHistory.slice(matched)];
32076
+ const newPanels_0 = panelKeys.map((key) => routesStore.current[key]).filter(_temp$4);
32203
32077
  if (!equal(sidePanelsRef.current.map(_temp2$3), newPanels_0.map(_temp3$2))) {
32204
32078
  updateSidePanels(newPanels_0);
32205
32079
  }
32206
32080
  };
32207
- $[4] = location.key;
32208
- $[5] = location.state;
32081
+ $[3] = location.state;
32082
+ $[4] = t3;
32083
+ } else {
32084
+ t3 = $[4];
32085
+ }
32086
+ let t4;
32087
+ if ($[5] !== location) {
32088
+ t4 = [location];
32089
+ $[5] = location;
32209
32090
  $[6] = t4;
32210
32091
  } else {
32211
32092
  t4 = $[6];
32212
32093
  }
32094
+ useEffect(t3, t4);
32213
32095
  let t5;
32214
- if ($[7] !== location) {
32215
- t5 = [location];
32216
- $[7] = location;
32217
- $[8] = t5;
32218
- } else {
32219
- t5 = $[8];
32220
- }
32221
- useEffect(t4, t5);
32222
- let t6;
32223
- if ($[9] !== location || $[10] !== navigate) {
32224
- t6 = (key_0) => {
32096
+ if ($[7] !== location || $[8] !== navigate) {
32097
+ t5 = () => {
32225
32098
  const currentPanels = sidePanelsRef.current;
32226
32099
  if (currentPanels.length === 0) {
32227
32100
  return;
32228
32101
  }
32229
- const index = key_0 !== void 0 ? currentPanels.findLastIndex((p_2) => p_2.key === key_0) : -1;
32230
- if (index !== -1 && index < currentPanels.length - 1 && !currentPanels[index].urlPath) {
32231
- updateSidePanels(currentPanels.filter((_, i) => i !== index));
32232
- if (routesCount.current > 0) {
32233
- routesCount.current = routesCount.current - 1;
32234
- }
32235
- return;
32236
- }
32237
32102
  const lastSidePanel = currentPanels[currentPanels.length - 1];
32238
32103
  const updatedPanels = [...currentPanels.slice(0, -1)];
32239
32104
  updateSidePanels(updatedPanels);
@@ -32255,31 +32120,28 @@ function useBuildSideDialogsController() {
32255
32120
  }
32256
32121
  }
32257
32122
  };
32258
- $[9] = location;
32259
- $[10] = navigate;
32260
- $[11] = t6;
32123
+ $[7] = location;
32124
+ $[8] = navigate;
32125
+ $[9] = t5;
32261
32126
  } else {
32262
- t6 = $[11];
32127
+ t5 = $[9];
32263
32128
  }
32264
- const close = t6;
32265
- let t7;
32266
- if ($[12] !== location || $[13] !== navigate) {
32267
- t7 = (panelProps) => {
32129
+ const close = t5;
32130
+ let t6;
32131
+ if ($[10] !== location || $[11] !== navigate) {
32132
+ t6 = (panelProps) => {
32268
32133
  const newPanels_1 = Array.isArray(panelProps) ? panelProps : [panelProps];
32269
- newPanels_1.forEach((panel_0) => {
32270
- routesStore.current[panel_0.key] = panel_0;
32271
- if (!panel_0.urlPath) {
32272
- entryKeysOfPanelsWithoutUrl.current[panel_0.key] = location.key;
32273
- }
32134
+ newPanels_1.forEach((panel) => {
32135
+ routesStore.current[panel.key] = panel;
32274
32136
  });
32275
32137
  routesCount.current = routesCount.current + newPanels_1.length;
32276
32138
  const baseLocation_0 = location.state?.base_location ?? location;
32277
32139
  const currentPanels_0 = sidePanelsRef.current;
32278
32140
  const updatedPanels_0 = [...currentPanels_0, ...newPanels_1];
32279
32141
  updateSidePanels(updatedPanels_0);
32280
- newPanels_1.forEach((panel_1) => {
32281
- if (panel_1.urlPath) {
32282
- navigate(panel_1.urlPath, {
32142
+ newPanels_1.forEach((panel_0) => {
32143
+ if (panel_0.urlPath) {
32144
+ navigate(panel_0.urlPath, {
32283
32145
  state: {
32284
32146
  base_location: baseLocation_0,
32285
32147
  panels: updatedPanels_0.map(_temp5)
@@ -32288,30 +32150,27 @@ function useBuildSideDialogsController() {
32288
32150
  }
32289
32151
  });
32290
32152
  };
32291
- $[12] = location;
32292
- $[13] = navigate;
32293
- $[14] = t7;
32153
+ $[10] = location;
32154
+ $[11] = navigate;
32155
+ $[12] = t6;
32294
32156
  } else {
32295
- t7 = $[14];
32157
+ t6 = $[12];
32296
32158
  }
32297
- const open = t7;
32298
- let t8;
32299
- if ($[15] !== location || $[16] !== navigate) {
32300
- t8 = (panelProps_0) => {
32159
+ const open = t6;
32160
+ let t7;
32161
+ if ($[13] !== location || $[14] !== navigate) {
32162
+ t7 = (panelProps_0) => {
32301
32163
  const newPanels_2 = Array.isArray(panelProps_0) ? panelProps_0 : [panelProps_0];
32302
- newPanels_2.forEach((panel_2) => {
32303
- routesStore.current[panel_2.key] = panel_2;
32304
- if (!panel_2.urlPath) {
32305
- entryKeysOfPanelsWithoutUrl.current[panel_2.key] = location.key;
32306
- }
32164
+ newPanels_2.forEach((panel_1) => {
32165
+ routesStore.current[panel_1.key] = panel_1;
32307
32166
  });
32308
32167
  const baseLocation_1 = location.state?.base_location ?? location;
32309
32168
  const currentPanels_1 = sidePanelsRef.current;
32310
32169
  const updatedPanels_1 = [...currentPanels_1.slice(0, -newPanels_2.length), ...newPanels_2];
32311
32170
  updateSidePanels(updatedPanels_1);
32312
- newPanels_2.forEach((panel_3) => {
32313
- if (panel_3.urlPath) {
32314
- navigate(panel_3.urlPath, {
32171
+ newPanels_2.forEach((panel_2) => {
32172
+ if (panel_2.urlPath) {
32173
+ navigate(panel_2.urlPath, {
32315
32174
  replace: true,
32316
32175
  state: {
32317
32176
  base_location: baseLocation_1,
@@ -32321,41 +32180,41 @@ function useBuildSideDialogsController() {
32321
32180
  }
32322
32181
  });
32323
32182
  };
32324
- $[15] = location;
32325
- $[16] = navigate;
32326
- $[17] = t8;
32183
+ $[13] = location;
32184
+ $[14] = navigate;
32185
+ $[15] = t7;
32327
32186
  } else {
32328
- t8 = $[17];
32187
+ t7 = $[15];
32329
32188
  }
32330
- const replace = t8;
32331
- let t9;
32332
- if ($[18] !== close || $[19] !== open || $[20] !== replace || $[21] !== sidePanels) {
32333
- t9 = {
32189
+ const replace = t7;
32190
+ let t8;
32191
+ if ($[16] !== close || $[17] !== open || $[18] !== replace || $[19] !== sidePanels) {
32192
+ t8 = {
32334
32193
  sidePanels,
32335
32194
  setSidePanels: updateSidePanels,
32336
32195
  close,
32337
32196
  open,
32338
32197
  replace
32339
32198
  };
32340
- $[18] = close;
32341
- $[19] = open;
32342
- $[20] = replace;
32343
- $[21] = sidePanels;
32344
- $[22] = t9;
32199
+ $[16] = close;
32200
+ $[17] = open;
32201
+ $[18] = replace;
32202
+ $[19] = sidePanels;
32203
+ $[20] = t8;
32345
32204
  } else {
32346
- t9 = $[22];
32205
+ t8 = $[20];
32347
32206
  }
32348
- return t9;
32349
- }
32350
- function _temp6(p_5) {
32351
- return p_5.key;
32207
+ return t8;
32352
32208
  }
32353
- function _temp5(p_4) {
32209
+ function _temp6(p_4) {
32354
32210
  return p_4.key;
32355
32211
  }
32356
- function _temp4$1(p_3) {
32212
+ function _temp5(p_3) {
32357
32213
  return p_3.key;
32358
32214
  }
32215
+ function _temp4$1(p_2) {
32216
+ return p_2.key;
32217
+ }
32359
32218
  function _temp3$2(p_1) {
32360
32219
  return p_1.key;
32361
32220
  }