@rebasepro/admin 0.16.0 → 0.16.1-canary.g2d1aec8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CollectionEditorDialog-D2Vf4C3-.js → CollectionEditorDialog-Cec5jU6R.js} +7 -3
- package/dist/{CollectionEditorDialog-D2Vf4C3-.js.map → CollectionEditorDialog-Cec5jU6R.js.map} +1 -1
- package/dist/{PropertyEditView-D3NBsK9_.js → PropertyEditView-BuSPZwnQ.js} +2 -2
- package/dist/{PropertyEditView-D3NBsK9_.js.map → PropertyEditView-BuSPZwnQ.js.map} +1 -1
- package/dist/{RouterCollectionsStudioView-hPB54l3Q.js → RouterCollectionsStudioView-BiNFpEii.js} +4 -4
- package/dist/{RouterCollectionsStudioView-hPB54l3Q.js.map → RouterCollectionsStudioView-BiNFpEii.js.map} +1 -1
- package/dist/SchemaChangeDialog-WKIbzS6P.js +327 -0
- package/dist/SchemaChangeDialog-WKIbzS6P.js.map +1 -0
- package/dist/collection_editor/ConfigControllerProvider.d.ts +4 -4
- package/dist/collection_editor/_cms_internals.d.ts +23 -23
- package/dist/collection_editor/api/index.d.ts +1 -1
- package/dist/collection_editor/extensibility_types.d.ts +1 -1
- package/dist/collection_editor/index.d.ts +21 -21
- package/dist/collection_editor/liveSchemaClient.d.ts +170 -0
- package/dist/collection_editor/serializable_utils.d.ts +1 -1
- package/dist/collection_editor/types/collection_editor_controller.d.ts +1 -1
- package/dist/collection_editor/types/config_controller.d.ts +11 -0
- package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/AIModifiedPathsContext.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +4 -4
- package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/RouterCollectionStudioView.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/RouterCollectionsStudioView.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/SchemaChangeDialog.d.ts +66 -0
- package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/import/clean_import_data.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/properties/conditions/index.d.ts +6 -6
- package/dist/collection_editor/useCollectionEditorController.d.ts +1 -1
- package/dist/collection_editor/useCollectionsConfigController.d.ts +1 -1
- package/dist/collection_editor/useJsonCollectionsConfigController.d.ts +2 -2
- package/dist/collection_editor/useLiveSchemaEditing.d.ts +71 -0
- package/dist/collection_editor/useLocalCollectionsConfigController.d.ts +1 -1
- package/dist/collection_editor_ui.d.ts +12 -12
- package/dist/collection_editor_ui.js +4 -4
- package/dist/components/CollectionTableBinding/CollectionTableBinding.d.ts +1 -1
- package/dist/components/CollectionTableBinding/PropertyTableCell.d.ts +1 -1
- package/dist/components/CollectionTableBinding/fields/TableStorageUpload.d.ts +1 -1
- package/dist/components/CollectionTableBinding/index.d.ts +5 -5
- package/dist/components/CollectionTableBinding/internal/popup_field/PopupFormField.d.ts +1 -1
- package/dist/components/CollectionViewBinding/SlotValue.d.ts +2 -2
- package/dist/components/CollectionViewBinding/hooks/useKanbanDragAndDrop.d.ts +1 -1
- package/dist/components/EditFormActions.d.ts +1 -1
- package/dist/components/EditViewBinding.d.ts +3 -3
- package/dist/components/EntityInspector.d.ts +1 -1
- package/dist/components/EntityPreviewBinding.d.ts +1 -1
- package/dist/components/EntityViewBinding.d.ts +1 -1
- package/dist/components/HomePage/index.d.ts +4 -4
- package/dist/components/PropertyCollectionView.d.ts +1 -1
- package/dist/components/ReferenceWidget.d.ts +1 -1
- package/dist/components/admin/index.d.ts +1 -1
- package/dist/components/app/AppBar.d.ts +1 -1
- package/dist/components/app/index.d.ts +4 -4
- package/dist/components/common/index.d.ts +1 -1
- package/dist/components/field_configs.d.ts +1 -1
- package/dist/components/history/EntityHistoryEntry.d.ts +2 -2
- package/dist/components/history/index.d.ts +5 -5
- package/dist/components/index.d.ts +45 -45
- package/dist/data_export/export/index.d.ts +4 -4
- package/dist/data_export/index.d.ts +1 -1
- package/dist/data_import/components/DataNewPropertiesMapping.d.ts +1 -1
- package/dist/data_import/components/ImportSaveInProgress.d.ts +1 -1
- package/dist/data_import/components/index.d.ts +4 -4
- package/dist/data_import/hooks/index.d.ts +1 -1
- package/dist/data_import/hooks/useImportConfig.d.ts +1 -1
- package/dist/data_import/import/ImportCollectionAction.d.ts +1 -1
- package/dist/data_import/import/index.d.ts +1 -1
- package/dist/data_import/index.d.ts +5 -5
- package/dist/data_import/types/index.d.ts +1 -1
- package/dist/data_import/utils/file_to_json.d.ts +1 -1
- package/dist/data_import/utils/index.d.ts +5 -5
- package/dist/editor/components/SlashCommandMenu.d.ts +2 -2
- package/dist/editor/components/index.d.ts +5 -5
- package/dist/editor/editor.d.ts +2 -2
- package/dist/editor/index.d.ts +2 -2
- package/dist/editor/nodeViews/ImageComponent.d.ts +1 -1
- package/dist/editor/nodeViews/TaskItemComponent.d.ts +1 -1
- package/dist/editor/types.d.ts +1 -1
- package/dist/{export-oauWlxuu.js → export-BItpoIu0.js} +2 -2
- package/dist/{export-oauWlxuu.js.map → export-BItpoIu0.js.map} +1 -1
- package/dist/form/EntityForm.d.ts +1 -1
- package/dist/form/EntityFormActions.d.ts +1 -1
- package/dist/form/EntityFormBinding.d.ts +1 -1
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/StorageItemPreview.d.ts +1 -1
- package/dist/form/components/index.d.ts +6 -6
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BinaryFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/GeopointFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/MultiSelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MultipleRelationFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/RelationFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/VectorFieldBinding.d.ts +1 -1
- package/dist/form/index.d.ts +24 -24
- package/dist/{history-C2cqc0bw.js → history-C7WF14VR.js} +2 -2
- package/dist/{history-C2cqc0bw.js.map → history-C7WF14VR.js.map} +1 -1
- package/dist/hooks/index.d.ts +16 -16
- package/dist/hooks/navigation/contexts/index.d.ts +3 -3
- package/dist/hooks/useBuildSideDialogsController.d.ts +1 -1
- package/dist/hooks/useSelectionDialog.d.ts +1 -1
- package/dist/{import-Bxv5JPm-.js → import-CZgNAlcd.js} +2 -2
- package/dist/{import-Bxv5JPm-.js.map → import-CZgNAlcd.js.map} +1 -1
- package/dist/index.d.ts +17 -15
- package/dist/index.js +238 -21
- package/dist/index.js.map +1 -1
- package/dist/preview/PropertyPreview.d.ts +1 -1
- package/dist/preview/components/ArrayEnumPreview.d.ts +1 -1
- package/dist/preview/components/BooleanPreview.d.ts +1 -1
- package/dist/preview/components/ImagePreview.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +1 -1
- package/dist/preview/components/RelationPreview.d.ts +1 -1
- package/dist/preview/components/StorageThumbnail.d.ts +1 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -2
- package/dist/preview/components/UserPreview.d.ts +1 -1
- package/dist/preview/index.d.ts +24 -24
- package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOfRelationsPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +1 -1
- package/dist/preview/property_previews/MapPropertyPreview.d.ts +1 -1
- package/dist/preview/property_previews/NumberPropertyPreview.d.ts +1 -1
- package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +1 -1
- package/dist/preview/property_previews/StringPropertyPreview.d.ts +1 -1
- package/dist/preview/util.d.ts +1 -1
- package/dist/routes/index.d.ts +2 -2
- package/dist/types/components/EntityFormActionsProps.d.ts +2 -2
- package/dist/types/components/EntityFormProps.d.ts +3 -3
- package/dist/types/components/index.d.ts +3 -3
- package/dist/types/fields.d.ts +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/util/index.d.ts +5 -5
- package/dist/{util-C4qsI1QV.js → util-wrBH4QSB.js} +130 -7
- package/dist/util-wrBH4QSB.js.map +1 -0
- package/package.json +10 -10
- package/src/collection_editor/ConfigControllerProvider.tsx +5 -0
- package/src/collection_editor/liveSchemaClient.ts +272 -0
- package/src/collection_editor/types/config_controller.tsx +11 -0
- package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +10 -0
- package/src/collection_editor/ui/collection_editor/SchemaChangeDialog.tsx +368 -0
- package/src/collection_editor/useLiveSchemaEditing.tsx +285 -0
- package/src/collection_editor/useLocalCollectionsConfigController.tsx +109 -10
- package/src/index.ts +6 -0
- package/dist/util-C4qsI1QV.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import { i as PropertySelectEntry, n as ImportCollectionAction, r as ImportDataPreview } from "./import-
|
|
3
|
-
import { a as MAX_EXPORT_ROWS, c as downloadDataAsCsv, d as escapeCsvFormula, f as getEntityCSVExportableData, i as EXPORT_PAGE_SIZE, l as downloadEntitiesExport, n as ExportCollectionAction, o as fetchAllEntitiesForExport, p as getEntityJsonExportableData, r as BasicExportAction, s as downloadBlob, u as entryToCSVRow } from "./export-
|
|
1
|
+
import { $ as useBuildCollectionRegistryController, $n as getEntityTitlePropertyKeyForEntity, $t as getCollectionBySlugWithin, A as getFieldId, An as NumberPropertyPreview, Ar as isRelationProperty, At as flattenEntry, B as MapFieldBinding, Bn as RelationPreview, Bt as parseCsvRows, C as EntityFormBinding, Cn as ReadOnlyFieldBinding, Cr as getDefaultPropertiesOrder, Ct as CollectionViewActions, D as getDefaultFieldConfig, Dn as ArrayOfMapsPreview, Dr as getPropertyInPath, Dt as ImportNewPropertyFieldPreview, E as DEFAULT_FIELD_CONFIGS, En as FieldHelperText, Er as getPropertiesWithPropertiesOrder, Et as useCollectionEditorDialogsState, F as SelectFieldBinding, Fn as ArrayOneOfPreview, Ft as IMPORT_BATCH_SIZE, G as useSelectionDialog, Gn as SidePanelControllerContext, Gt as SearchIconsView, H as DateTimeFieldBinding, Hn as InlineEntityListPreview, Ht as unflattenObject, I as RepeatFieldBinding, In as ArrayOfStringsPreview, It as saveImportedEntities, J as useBuildUrlController, Jn as useCollectionRegistryController, Jt as BreadcrumbsProvider, K as SelectionTableBinding, Kn as useSidePanel, Kt as FieldCaption, L as ReferenceFieldBinding, Ln as ArrayPropertyEnumPreview, Lt as ImportFileUpload, M as TextFieldBinding, Mn as DatePreview, Mt as getInferenceType, N as SwitchFieldBinding, Nn as KeyValuePreview, Nt as useImportConfig, O as getDefaultFieldId, On as PropertyPreview, Or as getResolvedPropertyInPath, Ot as DataNewPropertiesMapping, P as StorageUploadFieldBinding, Pn as MapPropertyPreview, Pt as ImportSaveInProgress, Q as useResolvedCollections, Qn as getEntityTitlePropertyKey, Qt as addInitialSlash, R as MultiSelectFieldBinding, Rn as ArrayEnumPreview, Rt as convertFileToJson, S as isSchemaChangeCancelled, Sn as useClearRestoreValue, Sr as getBracketNotation, St as EntityCardBinding, T as PropertyFieldBinding, Tn as LabelWithIcon, Tr as getIconForWidget, Tt as ConfigControllerProvider, U as BlockFieldBinding, Un as ReferencePreview, Ut as ArrayContainer, V as KeyValueFieldBinding, Vn as ArrayOfReferencesPreview, Vt as parseCsvToObjects, W as ArrayOfReferencesFieldBinding, Wn as EntityPreviewBinding, Wt as PropertyConfigBadge, X as useTopLevelNavigation, Xn as useResolvedUser, Xt as resolveEntityView, Y as useBuildNavigationStateController, Yn as getUserLabel, Yt as resolveEntityAction, Z as useResolvedViews, Zn as getEntityPreviewKeys, Zt as mergeEntityActions, _ as useCollectionsConfigController, _n as useNavigationStateController, _r as FieldBlock, _t as resetPasswordAction, a as namespaceToPropertiesPath, an as resolveCollectionPathIds, ar as SkeletonPropertyComponent, at as useBuildSidePanel, b as asUnavailable, bn as SelectableTableContext, br as spanClass, bt as EntityViewBinding, c as buildCollectionGenerationCallback, cn as useSelectionController, cr as renderSkeletonImageThumbnail, ct as extractTouchedValues, d as fromSerializableCollectionConfigs, dn as SelectableTable, dr as ImagePreview, dt as removeEmptyContainers, en as getCollectionPathsCombinations, er as ArrayPropertyPreview, et as useHistory, f as fromSerializableProperties, fn as CollectionRowActions, fr as sanitizeUrl, ft as zodToFormErrors, g as toSerializableProperty, gn as NavigationStateContext, gr as RecordMeta, gt as editEntityAction, h as toSerializableProperties, hn as useUrlController, hr as FormRail, ht as deleteEntityAction, i as namespaceToPropertiesOrderPath, in as removeTrailingSlash, ir as StorageThumbnailInternal, it as getEntityViewWidth, j as VectorFieldBinding, jn as BooleanPreview, jt as processValueMapping, k as getFieldConfig, kn as UserPreview, kr as isReferenceProperty, kt as convertDataToEntity, l as validateCollectionJson, ln as VirtualTableInput, lr as renderSkeletonText, lt as getChanges, m as toSerializableCollectionConfig, mn as UrlContext, mr as FormSections, mt as copyEntityAction, n as getFullIdPath, nn as removeInitialAndTrailingSlashes, nr as EnumValuesChip, nt as useResolvedNavigationFrom, o as CollectionGenerationApiError, on as resolveOpenEntityMode, or as renderSkeletonCaptionText, ot as EditViewBinding, p as fromSerializableProperty, pn as useAdminContext, pr as EmptyValue, pt as CollectionViewBinding, q as SideDialogs, qn as CollectionRegistryContext, qt as useBreadcrumbsController, r as idToPropertiesPath, rn as removeInitialSlash, rr as StorageThumbnail, rt as buildSidePanelsFromUrl, s as DEFAULT_COLLECTION_GENERATION_ENDPOINT, sn as resolveViewMode, sr as renderSkeletonIcon, t as getFullId, tn as getLastSegment, tr as StringPropertyPreview, tt as resolveNavigationFrom, u as fromSerializableCollectionConfig, un as CollectionTableBinding, ur as UrlComponentPreview, ut as getInitialEntityValues, v as LiveSchemaError, vn as useSideDialogsController, vr as LABEL_ICON_SIZE, vt as CreationResultDialog, w as EntityForm, wn as LabelWithIconAndTooltip, wr as getIconForProperty, wt as useCollectionEditorController, x as createLiveSchemaClient, xn as ArrayCustomShapedFieldBinding, xr as PropertyIdCopyTooltip, xt as CollectionCardViewBinding, y as SchemaChangeCancelled, yn as SideDialogsControllerContext, yr as isSelfLabellingProperty, yt as DetailViewBinding, z as MarkdownEditorFieldBinding, zn as ArrayOfStorageComponentsPreview, zt as detectCsvDelimiter } from "./util-wrBH4QSB.js";
|
|
2
|
+
import { i as PropertySelectEntry, n as ImportCollectionAction, r as ImportDataPreview } from "./import-CZgNAlcd.js";
|
|
3
|
+
import { a as MAX_EXPORT_ROWS, c as downloadDataAsCsv, d as escapeCsvFormula, f as getEntityCSVExportableData, i as EXPORT_PAGE_SIZE, l as downloadEntitiesExport, n as ExportCollectionAction, o as fetchAllEntitiesForExport, p as getEntityJsonExportableData, r as BasicExportAction, s as downloadBlob, u as entryToCSVRow } from "./export-BItpoIu0.js";
|
|
4
4
|
import React, { Suspense, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
5
5
|
import { deepEqual } from "fast-equals";
|
|
6
6
|
import { Avatar, Button, Card, CenteredView, ChevronDownIcon, ChevronsLeftIcon, ChevronsRightIcon, Chip, CircularProgressCenter, Collapse, Container, Dialog, DialogActions, DialogContent, DialogTitle, ErrorBoundary, ExpandablePanel, IconButton, LogOutIcon, Markdown, Menu, MenuIcon, MenuItem, MoonIcon, PencilIcon, SearchBar, SettingsIcon, Sheet, Skeleton, StarIcon, SunIcon, SunMoonIcon, TextField, Tooltip, Typography, cls, defaultBorderMixin, iconSize, lazyChunk } from "@rebasepro/ui";
|
|
@@ -1492,6 +1492,167 @@ function RebaseAuthGate({ children }) {
|
|
|
1492
1492
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
1493
1493
|
}
|
|
1494
1494
|
//#endregion
|
|
1495
|
+
//#region src/collection_editor/useLiveSchemaEditing.tsx
|
|
1496
|
+
/**
|
|
1497
|
+
* The plan-then-confirm flow, as a hook.
|
|
1498
|
+
*
|
|
1499
|
+
* Owns three things that belong together and nothing else: whether the backend
|
|
1500
|
+
* can edit its schema, the plan for the change somebody is making, and the
|
|
1501
|
+
* dialog they confirm it in. The config controller calls `reviewChange` and
|
|
1502
|
+
* awaits it; everything about *how* the confirmation happens stays here.
|
|
1503
|
+
*
|
|
1504
|
+
* ## Why `reviewChange` returns a promise that can reject
|
|
1505
|
+
*
|
|
1506
|
+
* Because the editor needs to know. A save that was cancelled must not leave
|
|
1507
|
+
* the form thinking it succeeded — the collection on screen would then differ
|
|
1508
|
+
* from the one on disk, and the next save would be computed from the wrong
|
|
1509
|
+
* `before`. Rejecting with {@link SchemaChangeCancelled} is how "the person
|
|
1510
|
+
* said no" reaches the caller as an outcome rather than as silence.
|
|
1511
|
+
*/
|
|
1512
|
+
/**
|
|
1513
|
+
* Loaded when a change is actually being reviewed, not before.
|
|
1514
|
+
*
|
|
1515
|
+
* This hook is reached from the collections config controller, which is
|
|
1516
|
+
* constructed on every admin boot — so a static import would put the dialog and
|
|
1517
|
+
* the `@rebasepro/ui` surface it draws on into the **eager** bundle: everything
|
|
1518
|
+
* a browser downloads before the login screen paints. It cost 14 kB there, for
|
|
1519
|
+
* a dialog most sessions never open. The bundle budget caught it.
|
|
1520
|
+
*/
|
|
1521
|
+
var SchemaChangeDialog = lazyChunk(() => import("./SchemaChangeDialog-WKIbzS6P.js").then((m) => ({ default: m.SchemaChangeDialog })));
|
|
1522
|
+
function useLiveSchemaEditing(options) {
|
|
1523
|
+
const { baseUrl, authKey, writeSourceOnly } = options;
|
|
1524
|
+
const optionsRef = useRef(options);
|
|
1525
|
+
optionsRef.current = options;
|
|
1526
|
+
const client = useMemo(() => options.client ?? createLiveSchemaClient({
|
|
1527
|
+
baseUrl,
|
|
1528
|
+
getAuthToken: () => optionsRef.current.getAuthToken?.() ?? null
|
|
1529
|
+
}), [baseUrl, options.client]);
|
|
1530
|
+
const [status, setStatus] = useState();
|
|
1531
|
+
const [pending, setPending] = useState();
|
|
1532
|
+
const [plan, setPlan] = useState();
|
|
1533
|
+
const [planError, setPlanError] = useState();
|
|
1534
|
+
const [result, setResult] = useState();
|
|
1535
|
+
const [applying, setApplying] = useState(false);
|
|
1536
|
+
const [applyError, setApplyError] = useState();
|
|
1537
|
+
const probe = useRef(void 0);
|
|
1538
|
+
/** Which review a plan response belongs to. See `reviewChange`. */
|
|
1539
|
+
const reviewToken = useRef(0);
|
|
1540
|
+
const ready = useCallback(() => {
|
|
1541
|
+
const key = [client, authKey];
|
|
1542
|
+
const current = probe.current;
|
|
1543
|
+
if (!current || current.key[0] !== key[0] || current.key[1] !== key[1]) probe.current = {
|
|
1544
|
+
key,
|
|
1545
|
+
promise: client.status()
|
|
1546
|
+
};
|
|
1547
|
+
return probe.current.promise;
|
|
1548
|
+
}, [client, authKey]);
|
|
1549
|
+
useEffect(() => {
|
|
1550
|
+
let cancelled = false;
|
|
1551
|
+
ready().then((answer) => {
|
|
1552
|
+
if (!cancelled) setStatus(answer);
|
|
1553
|
+
});
|
|
1554
|
+
return () => {
|
|
1555
|
+
cancelled = true;
|
|
1556
|
+
};
|
|
1557
|
+
}, [ready]);
|
|
1558
|
+
const clear = useCallback(() => {
|
|
1559
|
+
setPending(void 0);
|
|
1560
|
+
setPlan(void 0);
|
|
1561
|
+
setPlanError(void 0);
|
|
1562
|
+
setResult(void 0);
|
|
1563
|
+
setApplyError(void 0);
|
|
1564
|
+
setApplying(false);
|
|
1565
|
+
}, []);
|
|
1566
|
+
const reviewChange = useCallback((change) => {
|
|
1567
|
+
return new Promise((resolve, reject) => {
|
|
1568
|
+
setPending((previous) => {
|
|
1569
|
+
previous?.reject(new SchemaChangeCancelled());
|
|
1570
|
+
return {
|
|
1571
|
+
change,
|
|
1572
|
+
resolve,
|
|
1573
|
+
reject
|
|
1574
|
+
};
|
|
1575
|
+
});
|
|
1576
|
+
const token = ++reviewToken.current;
|
|
1577
|
+
setPlan(void 0);
|
|
1578
|
+
setPlanError(void 0);
|
|
1579
|
+
setResult(void 0);
|
|
1580
|
+
setApplyError(void 0);
|
|
1581
|
+
setApplying(false);
|
|
1582
|
+
client.plan(change).then((answer) => {
|
|
1583
|
+
if (token === reviewToken.current) setPlan(answer);
|
|
1584
|
+
}, (err) => {
|
|
1585
|
+
if (token !== reviewToken.current) return;
|
|
1586
|
+
setPlanError(err instanceof LiveSchemaError || err instanceof Error ? err.message : String(err));
|
|
1587
|
+
});
|
|
1588
|
+
});
|
|
1589
|
+
}, [client]);
|
|
1590
|
+
const onConfirm = useCallback(() => {
|
|
1591
|
+
if (!pending) return;
|
|
1592
|
+
setApplying(true);
|
|
1593
|
+
setApplyError(void 0);
|
|
1594
|
+
client.apply(pending.change).then((answer) => {
|
|
1595
|
+
setResult(answer);
|
|
1596
|
+
setApplying(false);
|
|
1597
|
+
pending.resolve();
|
|
1598
|
+
setPending(void 0);
|
|
1599
|
+
}, (err) => {
|
|
1600
|
+
setApplying(false);
|
|
1601
|
+
setApplyError(err instanceof Error ? err.message : String(err));
|
|
1602
|
+
});
|
|
1603
|
+
}, [client, pending]);
|
|
1604
|
+
const onSourceOnly = useCallback(() => {
|
|
1605
|
+
if (!pending || !writeSourceOnly) return;
|
|
1606
|
+
setApplying(true);
|
|
1607
|
+
setApplyError(void 0);
|
|
1608
|
+
const settle = pending;
|
|
1609
|
+
writeSourceOnly(settle.change).then(() => {
|
|
1610
|
+
clear();
|
|
1611
|
+
settle.resolve();
|
|
1612
|
+
}, (err) => {
|
|
1613
|
+
setApplying(false);
|
|
1614
|
+
setApplyError(err instanceof Error ? err.message : String(err));
|
|
1615
|
+
});
|
|
1616
|
+
}, [
|
|
1617
|
+
pending,
|
|
1618
|
+
writeSourceOnly,
|
|
1619
|
+
clear
|
|
1620
|
+
]);
|
|
1621
|
+
const onClose = useCallback(() => {
|
|
1622
|
+
if (applying) return;
|
|
1623
|
+
const settle = pending;
|
|
1624
|
+
clear();
|
|
1625
|
+
if (settle && !result) settle.reject(new SchemaChangeCancelled());
|
|
1626
|
+
}, [
|
|
1627
|
+
applying,
|
|
1628
|
+
pending,
|
|
1629
|
+
result,
|
|
1630
|
+
clear
|
|
1631
|
+
]);
|
|
1632
|
+
const open = Boolean(pending) || Boolean(result);
|
|
1633
|
+
return {
|
|
1634
|
+
status,
|
|
1635
|
+
ready,
|
|
1636
|
+
reviewChange,
|
|
1637
|
+
dialog: open ? /* @__PURE__ */ jsx(Suspense, {
|
|
1638
|
+
fallback: null,
|
|
1639
|
+
children: /* @__PURE__ */ jsx(SchemaChangeDialog, {
|
|
1640
|
+
open,
|
|
1641
|
+
collectionId: pending?.change.collectionId ?? "",
|
|
1642
|
+
plan,
|
|
1643
|
+
planError,
|
|
1644
|
+
result,
|
|
1645
|
+
applying,
|
|
1646
|
+
applyError,
|
|
1647
|
+
onConfirm,
|
|
1648
|
+
onSourceOnly: writeSourceOnly ? onSourceOnly : void 0,
|
|
1649
|
+
onClose,
|
|
1650
|
+
applyRefusedBecause: status && !status.canApply ? status.applyRefusedBecause : void 0
|
|
1651
|
+
})
|
|
1652
|
+
}) : null
|
|
1653
|
+
};
|
|
1654
|
+
}
|
|
1655
|
+
//#endregion
|
|
1495
1656
|
//#region src/collection_editor/useLocalCollectionsConfigController.tsx
|
|
1496
1657
|
/**
|
|
1497
1658
|
* The guess this hook used to make on its own.
|
|
@@ -1584,43 +1745,97 @@ function useLocalCollectionsConfigController(clientOrUrl, baseCollections = [],
|
|
|
1584
1745
|
forcedReadOnly,
|
|
1585
1746
|
authKey
|
|
1586
1747
|
]);
|
|
1748
|
+
const liveSchema = useLiveSchemaEditing({
|
|
1749
|
+
baseUrl: `${String(clientBaseUrl).replace(/\/$/, "")}${clientApiPath}/admin/schema`,
|
|
1750
|
+
getAuthToken: resolveToken,
|
|
1751
|
+
authKey,
|
|
1752
|
+
writeSourceOnly: async ({ collectionId, collection }) => {
|
|
1753
|
+
await request("/collection/save", {
|
|
1754
|
+
collectionId,
|
|
1755
|
+
collectionData: collection
|
|
1756
|
+
});
|
|
1757
|
+
}
|
|
1758
|
+
});
|
|
1759
|
+
/**
|
|
1760
|
+
* Perform a write, through the live editor when there is one.
|
|
1761
|
+
*
|
|
1762
|
+
* `sourceOnly` is the write this controller has always done. It stays the
|
|
1763
|
+
* whole behaviour on a backend that cannot edit its schema — a bundle
|
|
1764
|
+
* deployment, a non-Postgres driver, a version too old to be asked — so
|
|
1765
|
+
* nothing about the editor depends on the feature being there.
|
|
1766
|
+
*/
|
|
1767
|
+
const write = async (collectionId, collection, sourceOnly) => {
|
|
1768
|
+
if (!(await liveSchema.ready()).enabled) return sourceOnly();
|
|
1769
|
+
await liveSchema.reviewChange({
|
|
1770
|
+
collectionId,
|
|
1771
|
+
collection
|
|
1772
|
+
});
|
|
1773
|
+
};
|
|
1587
1774
|
const readOnly = forcedReadOnly ?? (availability.state === "known" ? !availability.enabled : buildModeGuess());
|
|
1588
1775
|
const readOnlyReason = availability.state === "known" && availability.reason ? availability.reason : "Collections can only be edited against a backend running the schema editor, which is off in production.";
|
|
1776
|
+
const findCollection = (id) => parsedCollections.find((c) => c.id === id || c.slug === id);
|
|
1777
|
+
/**
|
|
1778
|
+
* The whole collection as it should end up.
|
|
1779
|
+
*
|
|
1780
|
+
* Live editing computes the proposed state by replacing one collection in
|
|
1781
|
+
* the set, so it needs all of it: handed a patch, it would read every
|
|
1782
|
+
* property the patch does not mention as a removal and refuse the change.
|
|
1783
|
+
* A collection this does not recognise is a new one, and the patch is the
|
|
1784
|
+
* whole of it.
|
|
1785
|
+
*/
|
|
1786
|
+
const wholeCollection = (id, patch) => {
|
|
1787
|
+
const current = findCollection(id);
|
|
1788
|
+
return current ? {
|
|
1789
|
+
...current,
|
|
1790
|
+
...patch
|
|
1791
|
+
} : patch;
|
|
1792
|
+
};
|
|
1589
1793
|
return useMemo(() => ({
|
|
1590
1794
|
loading: false,
|
|
1591
1795
|
readOnly,
|
|
1592
1796
|
readOnlyReason,
|
|
1593
1797
|
collections: parsedCollections,
|
|
1798
|
+
dialog: liveSchema.dialog,
|
|
1594
1799
|
getCollection: (id) => {
|
|
1595
|
-
const found =
|
|
1800
|
+
const found = findCollection(id);
|
|
1596
1801
|
if (found) return found;
|
|
1597
1802
|
throw Error(`Collection ${id} not found in local mode`);
|
|
1598
1803
|
},
|
|
1599
1804
|
saveCollection: async ({ id, collectionData }) => {
|
|
1600
|
-
await request("/collection/save", {
|
|
1805
|
+
await write(id, collectionData, () => request("/collection/save", {
|
|
1601
1806
|
collectionId: id,
|
|
1602
1807
|
collectionData
|
|
1603
|
-
});
|
|
1808
|
+
}));
|
|
1604
1809
|
},
|
|
1605
1810
|
updateCollection: async ({ id, collectionData }) => {
|
|
1606
|
-
await request("/collection/save", {
|
|
1811
|
+
await write(id, wholeCollection(id, collectionData), () => request("/collection/save", {
|
|
1607
1812
|
collectionId: id,
|
|
1608
1813
|
collectionData
|
|
1609
|
-
});
|
|
1814
|
+
}));
|
|
1610
1815
|
},
|
|
1611
1816
|
deleteCollection: async ({ id }) => {
|
|
1612
1817
|
await request("/collection/delete", { collectionId: id });
|
|
1613
1818
|
},
|
|
1614
1819
|
saveProperty: async ({ path, propertyKey, property, newPropertiesOrder }) => {
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
propertyKey
|
|
1618
|
-
|
|
1820
|
+
const properties = {
|
|
1821
|
+
...findCollection(path)?.properties ?? {},
|
|
1822
|
+
[propertyKey]: property
|
|
1823
|
+
};
|
|
1824
|
+
const proposed = wholeCollection(path, {
|
|
1825
|
+
properties,
|
|
1826
|
+
...newPropertiesOrder ? { propertiesOrder: newPropertiesOrder } : {}
|
|
1619
1827
|
});
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1828
|
+
await write(path, proposed, async () => {
|
|
1829
|
+
await request("/property/save", {
|
|
1830
|
+
collectionId: path,
|
|
1831
|
+
propertyKey,
|
|
1832
|
+
propertyConfig: property
|
|
1833
|
+
});
|
|
1834
|
+
if (newPropertiesOrder) await request("/collection/save", {
|
|
1835
|
+
collectionId: path,
|
|
1836
|
+
collectionData: { propertiesOrder: newPropertiesOrder },
|
|
1837
|
+
partial: true
|
|
1838
|
+
});
|
|
1624
1839
|
});
|
|
1625
1840
|
},
|
|
1626
1841
|
deleteProperty: async ({ path, propertyKey, newPropertiesOrder }) => {
|
|
@@ -1650,14 +1865,16 @@ function useLocalCollectionsConfigController(clientOrUrl, baseCollections = [],
|
|
|
1650
1865
|
parsedCollections,
|
|
1651
1866
|
readOnly,
|
|
1652
1867
|
readOnlyReason,
|
|
1653
|
-
options?.getAuthToken
|
|
1868
|
+
options?.getAuthToken,
|
|
1869
|
+
liveSchema.dialog,
|
|
1870
|
+
liveSchema.status
|
|
1654
1871
|
]);
|
|
1655
1872
|
}
|
|
1656
1873
|
//#endregion
|
|
1657
1874
|
//#region src/components/RebaseNavigation.tsx
|
|
1658
1875
|
var EMPTY_PLUGINS = [];
|
|
1659
1876
|
var EMPTY_COLLECTIONS = [];
|
|
1660
|
-
var CollectionsStudioView = lazyChunk(() => import("./RouterCollectionsStudioView-
|
|
1877
|
+
var CollectionsStudioView = lazyChunk(() => import("./RouterCollectionsStudioView-BiNFpEii.js").then((n) => n.n).then((m) => ({ default: m.RouterCollectionsStudioView })));
|
|
1661
1878
|
/**
|
|
1662
1879
|
* Navigation layer — builds and provides all admin navigation controllers:
|
|
1663
1880
|
* collection registry, URL controller, navigation state, side entity,
|
|
@@ -2889,8 +3106,8 @@ function ContentHomePage({ additionalActions, additionalChildrenStart, additiona
|
|
|
2889
3106
|
}
|
|
2890
3107
|
//#endregion
|
|
2891
3108
|
//#region src/components/CollectionEditorDialogs.tsx
|
|
2892
|
-
var CollectionEditorDialog = lazyChunk(() => import("./CollectionEditorDialog-
|
|
2893
|
-
var PropertyFormDialog = lazyChunk(() => import("./PropertyEditView-
|
|
3109
|
+
var CollectionEditorDialog = lazyChunk(() => import("./CollectionEditorDialog-Cec5jU6R.js").then((n) => n.r).then((m) => ({ default: m.CollectionEditorDialog })));
|
|
3110
|
+
var PropertyFormDialog = lazyChunk(() => import("./PropertyEditView-BuSPZwnQ.js").then((n) => n.t).then((m) => ({ default: m.PropertyFormDialog })));
|
|
2894
3111
|
/**
|
|
2895
3112
|
* Renders the CollectionEditorDialog and PropertyFormDialog inside
|
|
2896
3113
|
* the RebaseShell tree where admin-internal contexts
|
|
@@ -3500,6 +3717,6 @@ function MissingReferenceWidget({ path: pathProp }) {
|
|
|
3500
3717
|
});
|
|
3501
3718
|
}
|
|
3502
3719
|
//#endregion
|
|
3503
|
-
export { AdminModeSyncer, AppBar, ArrayContainer, ArrayCustomShapedFieldBinding, ArrayEnumPreview, ArrayOfMapsPreview, ArrayOfReferencesFieldBinding, ArrayOfReferencesPreview, ArrayOfStorageComponentsPreview, ArrayOfStringsPreview, ArrayOneOfPreview, ArrayPropertyEnumPreview, ArrayPropertyPreview, BasicExportAction, BlockFieldBinding, BooleanPreview, CollectionCardViewBinding, CollectionGenerationApiError, CollectionPanel, CollectionRegistryContext, CollectionRowActions, CollectionTableBinding, CollectionViewActions, CollectionViewBinding, CreationResultDialog, CustomViewRoute, DEFAULT_COLLECTION_GENERATION_ENDPOINT, DEFAULT_FIELD_CONFIGS, DataNewPropertiesMapping, DatePreview, DateTimeFieldBinding, DefaultDrawer, Drawer, DrawerFooterActions, DrawerNavigationGroup, DrawerNavigationItem, EXPORT_PAGE_SIZE, EmptyValue, EntityCardBinding, EntityForm, EntityFormBinding, EntityPreviewBinding, EntityViewBinding, EnumValuesChip, ExportCollectionAction, FieldBlock, FieldCaption, FieldHelperText, FormRail, FormSections, IMPORT_BATCH_SIZE, ImagePreview, ImportCollectionAction, ImportDataPreview, ImportFileUpload, ImportNewPropertyFieldPreview, ImportSaveInProgress, InlineEntityListPreview, KeyValueFieldBinding, KeyValuePreview, LABEL_ICON_SIZE, LabelWithIcon, LabelWithIconAndTooltip, MAX_EXPORT_ROWS, MapFieldBinding, MapPropertyPreview, MarkdownEditorFieldBinding, MissingReferenceWidget, MultiSelectFieldBinding, NavigationStateContext, NumberPropertyPreview, PropertyConfigBadge, PropertyFieldBinding, PropertyIdCopyTooltip, PropertyPreview, PropertySelectEntry, ReadOnlyFieldBinding, RebaseAdmin, RebaseAuthGate, RebaseLayout, RebaseNavigation, RebaseRoute, RebaseRouteDefs, RebaseShell, RecordMeta, ReferenceFieldBinding, ReferencePreview, ReferenceWidget, RelationPreview, RepeatFieldBinding, Scaffold, SearchIconsView, SelectFieldBinding, SelectableTable, SelectableTableContext, SelectionTableBinding, SideDialogs, SidePanelControllerContext, SidePanelProvider, SkeletonPropertyComponent, StorageThumbnail, StorageThumbnailInternal, StorageUploadFieldBinding, StringPropertyPreview, SwitchFieldBinding, TextFieldBinding, UrlComponentPreview, UrlContext, UserPreview, VectorFieldBinding, VirtualTableInput, addInitialSlash, buildCollectionGenerationCallback, buildSidePanelsFromUrl, convertDataToEntity, convertFileToJson, copyEntityAction, createStaticDataController, deleteEntityAction, detectCsvDelimiter, downloadBlob, downloadDataAsCsv, downloadEntitiesExport, editEntityAction, entryToCSVRow, escapeCsvFormula, extractTouchedValues, fetchAllEntitiesForExport, flattenEntry, fromSerializableCollectionConfig, fromSerializableCollectionConfigs, fromSerializableProperties, fromSerializableProperty, getBracketNotation, getChanges, getCollectionBySlugWithin, getCollectionPathsCombinations, getDefaultFieldConfig, getDefaultFieldId, getDefaultPropertiesOrder, getEntityCSVExportableData, getEntityJsonExportableData, getEntityPreviewKeys, getEntityTitlePropertyKey, getEntityTitlePropertyKeyForEntity, getEntityViewWidth, getFieldConfig, getFieldId, getFullId, getFullIdPath, getIconForProperty, getIconForWidget, getInferenceType, getInitialEntityValues, getLastSegment, getPropertiesWithPropertiesOrder, getPropertyInPath, getResolvedPropertyInPath, getUserLabel, idToPropertiesPath, isReferenceProperty, isRelationProperty, isSelfLabellingProperty, mapPropertiesToConfigs, mapPropertyToConfig, mergeEntityActions, namespaceToPropertiesOrderPath, namespaceToPropertiesPath, parseCsvRows, parseCsvToObjects, processValueMapping, removeEmptyContainers, removeInitialAndTrailingSlashes, removeInitialSlash, removeTrailingSlash, renderSkeletonCaptionText, renderSkeletonIcon, renderSkeletonImageThumbnail, renderSkeletonText, resetPasswordAction, resolveCollectionPathIds, resolveEntityAction, resolveEntityView, resolveNavigationFrom, sanitizeUrl, saveImportedEntities, spanClass, toSerializableCollectionConfig, toSerializableProperties, toSerializableProperty, unflattenObject, useAdminContext, useApp, useBreadcrumbsController, useBuildCollectionRegistryController, useBuildNavigationStateController, useBuildSidePanel, useBuildUrlController, useClearRestoreValue, useCollectionDataController, useCollectionEditorController, useCollectionRegistryController, useCollectionsConfigController, useHistory, useImportConfig, useJsonCollectionsConfigController, useLocalCollectionsConfigController, useNavigationStateController, useResolvedCollections, useResolvedNavigationFrom, useResolvedUser, useResolvedViews, useSelectionController, useSelectionDialog, useSideDialogsController, useSidePanel, useTopLevelNavigation, useUrlController, validateCollectionJson, zodToFormErrors };
|
|
3720
|
+
export { AdminModeSyncer, AppBar, ArrayContainer, ArrayCustomShapedFieldBinding, ArrayEnumPreview, ArrayOfMapsPreview, ArrayOfReferencesFieldBinding, ArrayOfReferencesPreview, ArrayOfStorageComponentsPreview, ArrayOfStringsPreview, ArrayOneOfPreview, ArrayPropertyEnumPreview, ArrayPropertyPreview, BasicExportAction, BlockFieldBinding, BooleanPreview, CollectionCardViewBinding, CollectionGenerationApiError, CollectionPanel, CollectionRegistryContext, CollectionRowActions, CollectionTableBinding, CollectionViewActions, CollectionViewBinding, CreationResultDialog, CustomViewRoute, DEFAULT_COLLECTION_GENERATION_ENDPOINT, DEFAULT_FIELD_CONFIGS, DataNewPropertiesMapping, DatePreview, DateTimeFieldBinding, DefaultDrawer, Drawer, DrawerFooterActions, DrawerNavigationGroup, DrawerNavigationItem, EXPORT_PAGE_SIZE, EmptyValue, EntityCardBinding, EntityForm, EntityFormBinding, EntityPreviewBinding, EntityViewBinding, EnumValuesChip, ExportCollectionAction, FieldBlock, FieldCaption, FieldHelperText, FormRail, FormSections, IMPORT_BATCH_SIZE, ImagePreview, ImportCollectionAction, ImportDataPreview, ImportFileUpload, ImportNewPropertyFieldPreview, ImportSaveInProgress, InlineEntityListPreview, KeyValueFieldBinding, KeyValuePreview, LABEL_ICON_SIZE, LabelWithIcon, LabelWithIconAndTooltip, LiveSchemaError, MAX_EXPORT_ROWS, MapFieldBinding, MapPropertyPreview, MarkdownEditorFieldBinding, MissingReferenceWidget, MultiSelectFieldBinding, NavigationStateContext, NumberPropertyPreview, PropertyConfigBadge, PropertyFieldBinding, PropertyIdCopyTooltip, PropertyPreview, PropertySelectEntry, ReadOnlyFieldBinding, RebaseAdmin, RebaseAuthGate, RebaseLayout, RebaseNavigation, RebaseRoute, RebaseRouteDefs, RebaseShell, RecordMeta, ReferenceFieldBinding, ReferencePreview, ReferenceWidget, RelationPreview, RepeatFieldBinding, Scaffold, SchemaChangeCancelled, SearchIconsView, SelectFieldBinding, SelectableTable, SelectableTableContext, SelectionTableBinding, SideDialogs, SidePanelControllerContext, SidePanelProvider, SkeletonPropertyComponent, StorageThumbnail, StorageThumbnailInternal, StorageUploadFieldBinding, StringPropertyPreview, SwitchFieldBinding, TextFieldBinding, UrlComponentPreview, UrlContext, UserPreview, VectorFieldBinding, VirtualTableInput, addInitialSlash, asUnavailable, buildCollectionGenerationCallback, buildSidePanelsFromUrl, convertDataToEntity, convertFileToJson, copyEntityAction, createLiveSchemaClient, createStaticDataController, deleteEntityAction, detectCsvDelimiter, downloadBlob, downloadDataAsCsv, downloadEntitiesExport, editEntityAction, entryToCSVRow, escapeCsvFormula, extractTouchedValues, fetchAllEntitiesForExport, flattenEntry, fromSerializableCollectionConfig, fromSerializableCollectionConfigs, fromSerializableProperties, fromSerializableProperty, getBracketNotation, getChanges, getCollectionBySlugWithin, getCollectionPathsCombinations, getDefaultFieldConfig, getDefaultFieldId, getDefaultPropertiesOrder, getEntityCSVExportableData, getEntityJsonExportableData, getEntityPreviewKeys, getEntityTitlePropertyKey, getEntityTitlePropertyKeyForEntity, getEntityViewWidth, getFieldConfig, getFieldId, getFullId, getFullIdPath, getIconForProperty, getIconForWidget, getInferenceType, getInitialEntityValues, getLastSegment, getPropertiesWithPropertiesOrder, getPropertyInPath, getResolvedPropertyInPath, getUserLabel, idToPropertiesPath, isReferenceProperty, isRelationProperty, isSchemaChangeCancelled, isSelfLabellingProperty, mapPropertiesToConfigs, mapPropertyToConfig, mergeEntityActions, namespaceToPropertiesOrderPath, namespaceToPropertiesPath, parseCsvRows, parseCsvToObjects, processValueMapping, removeEmptyContainers, removeInitialAndTrailingSlashes, removeInitialSlash, removeTrailingSlash, renderSkeletonCaptionText, renderSkeletonIcon, renderSkeletonImageThumbnail, renderSkeletonText, resetPasswordAction, resolveCollectionPathIds, resolveEntityAction, resolveEntityView, resolveNavigationFrom, sanitizeUrl, saveImportedEntities, spanClass, toSerializableCollectionConfig, toSerializableProperties, toSerializableProperty, unflattenObject, useAdminContext, useApp, useBreadcrumbsController, useBuildCollectionRegistryController, useBuildNavigationStateController, useBuildSidePanel, useBuildUrlController, useClearRestoreValue, useCollectionDataController, useCollectionEditorController, useCollectionRegistryController, useCollectionsConfigController, useHistory, useImportConfig, useJsonCollectionsConfigController, useLiveSchemaEditing, useLocalCollectionsConfigController, useNavigationStateController, useResolvedCollections, useResolvedNavigationFrom, useResolvedUser, useResolvedViews, useSelectionController, useSelectionDialog, useSideDialogsController, useSidePanel, useTopLevelNavigation, useUrlController, validateCollectionJson, zodToFormErrors };
|
|
3504
3721
|
|
|
3505
3722
|
//# sourceMappingURL=index.js.map
|