@rebasepro/admin 0.16.0 → 0.16.1-canary.g0d7af95
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-Dt_Wv20U.js} +7 -3
- package/dist/{CollectionEditorDialog-D2Vf4C3-.js.map → CollectionEditorDialog-Dt_Wv20U.js.map} +1 -1
- package/dist/{PropertyEditView-D3NBsK9_.js → PropertyEditView-C4IltWX5.js} +2 -2
- package/dist/{PropertyEditView-D3NBsK9_.js.map → PropertyEditView-C4IltWX5.js.map} +1 -1
- package/dist/{RouterCollectionsStudioView-hPB54l3Q.js → RouterCollectionsStudioView-C-BHWJ0J.js} +4 -4
- package/dist/{RouterCollectionsStudioView-hPB54l3Q.js.map → RouterCollectionsStudioView-C-BHWJ0J.js.map} +1 -1
- package/dist/SchemaChangeDialog-DceT8QFX.js +394 -0
- package/dist/SchemaChangeDialog-DceT8QFX.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 +182 -0
- package/dist/collection_editor/serializable_types.d.ts +0 -1
- 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 +85 -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/DrawerNavigationGroup.d.ts +0 -9
- package/dist/components/DrawerNavigationItem.d.ts +0 -4
- 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/RelationSelector.d.ts +0 -2
- 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-CF1-p5nY.js} +2 -2
- package/dist/{export-oauWlxuu.js.map → export-CF1-p5nY.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-BoT8GhO1.js} +2 -2
- package/dist/{history-C2cqc0bw.js.map → history-BoT8GhO1.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-Dg4X01sA.js} +2 -2
- package/dist/{import-Bxv5JPm-.js.map → import-Dg4X01sA.js.map} +1 -1
- package/dist/index.d.ts +17 -15
- package/dist/index.js +262 -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/previews.d.ts +2 -2
- package/dist/{util-C4qsI1QV.js → util-DUIsQ2zh.js} +132 -9
- package/dist/util-DUIsQ2zh.js.map +1 -0
- package/package.json +11 -11
- package/src/collection_editor/ConfigControllerProvider.tsx +5 -0
- package/src/collection_editor/liveSchemaClient.ts +285 -0
- package/src/collection_editor/serializable_types.ts +0 -1
- package/src/collection_editor/serializable_utils.ts +0 -1
- 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 +470 -0
- package/src/collection_editor/useLiveSchemaEditing.tsx +315 -0
- package/src/collection_editor/useLocalCollectionsConfigController.tsx +109 -10
- package/src/components/DrawerNavigationGroup.tsx +0 -9
- package/src/components/DrawerNavigationItem.tsx +0 -4
- package/src/components/RelationSelector.tsx +0 -2
- package/src/data_import/utils/data.ts +1 -1
- package/src/data_import/utils/file_to_json.ts +0 -3
- package/src/index.ts +6 -0
- package/src/util/previews.ts +4 -2
- 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 ArrayPropertyPreview, $t as getCollectionPathsCombinations, A as getFieldId, An as BooleanPreview, At as flattenEntry, B as MapFieldBinding, Bn as ArrayOfReferencesPreview, Bt as parseCsvRows, C as EntityFormBinding, Cn as LabelWithIconAndTooltip, Cr as getIconForProperty, Ct as CollectionViewActions, D as getDefaultFieldConfig, Dn as PropertyPreview, Dr as getResolvedPropertyInPath, Dt as ImportNewPropertyFieldPreview, E as DEFAULT_FIELD_CONFIGS, En as ArrayOfMapsPreview, Er as getPropertyInPath, Et as useCollectionEditorDialogsState, F as SelectFieldBinding, Fn as ArrayOfStringsPreview, Ft as IMPORT_BATCH_SIZE, G as useSelectionDialog, Gn as useSidePanel, Gt as FieldCaption, H as DateTimeFieldBinding, Hn as ReferencePreview, Ht as ArrayContainer, I as RepeatFieldBinding, In as ArrayPropertyEnumPreview, It as saveImportedEntities, J as useBuildUrlController, Jn as getUserLabel, Jt as resolveEntityAction, K as SelectionTableBinding, Kn as CollectionRegistryContext, Kt as useBreadcrumbsController, L as ReferenceFieldBinding, Ln as ArrayEnumPreview, Lt as ImportFileUpload, M as TextFieldBinding, Mn as KeyValuePreview, Mt as getInferenceType, N as SwitchFieldBinding, Nn as MapPropertyPreview, Nt as useImportConfig, O as getDefaultFieldId, On as UserPreview, Or as isReferenceProperty, Ot as DataNewPropertiesMapping, P as StorageUploadFieldBinding, Pn as ArrayOneOfPreview, Pt as ImportSaveInProgress, Q as useResolvedCollections, Qn as getEntityTitlePropertyKeyForEntity, Qt as getCollectionBySlugWithin, R as MultiSelectFieldBinding, Rn as ArrayOfStorageComponentsPreview, Rt as convertFileToJson, S as isSchemaChangeCancelled, Sn as ReadOnlyFieldBinding, Sr as getDefaultPropertiesOrder, St as EntityCardBinding, T as PropertyFieldBinding, Tn as FieldHelperText, Tr as getPropertiesWithPropertiesOrder, Tt as ConfigControllerProvider, U as BlockFieldBinding, Un as EntityPreviewBinding, Ut as PropertyConfigBadge, V as KeyValueFieldBinding, Vn as InlineEntityListPreview, Vt as parseCsvToObjects, W as ArrayOfReferencesFieldBinding, Wn as SidePanelControllerContext, Wt as SearchIconsView, X as useTopLevelNavigation, Xn as getEntityPreviewKeys, Xt as mergeEntityActions, Y as useBuildNavigationStateController, Yn as useResolvedUser, Yt as resolveEntityView, Z as useResolvedViews, Zn as getEntityTitlePropertyKey, Zt as addInitialSlash, _ as useCollectionsConfigController, _n as useSideDialogsController, _r as LABEL_ICON_SIZE, _t as resetPasswordAction, a as namespaceToPropertiesPath, an as resolveOpenEntityMode, ar as renderSkeletonCaptionText, at as useBuildSidePanel, b as asUnavailable, bn as ArrayCustomShapedFieldBinding, br as PropertyIdCopyTooltip, bt as EntityViewBinding, c as buildCollectionGenerationCallback, cn as VirtualTableInput, cr as renderSkeletonText, ct as extractTouchedValues, d as fromSerializableCollectionConfigs, dn as CollectionRowActions, dr as sanitizeUrl, dt as removeEmptyContainers, en as getLastSegment, er as StringPropertyPreview, et as useHistory, f as fromSerializableProperties, fn as useAdminContext, fr as EmptyValue, ft as zodToFormErrors, g as toSerializableProperty, gn as useNavigationStateController, gr as FieldBlock, gt as editEntityAction, h as toSerializableProperties, hn as NavigationStateContext, hr as RecordMeta, ht as deleteEntityAction, i as namespaceToPropertiesOrderPath, in as resolveCollectionPathIds, ir as SkeletonPropertyComponent, it as getEntityViewWidth, j as VectorFieldBinding, jn as DatePreview, jt as processValueMapping, k as getFieldConfig, kn as NumberPropertyPreview, kr as isRelationProperty, kt as convertDataToEntity, l as validateCollectionJson, ln as CollectionTableBinding, lr as UrlComponentPreview, lt as getChanges, m as toSerializableCollectionConfig, mn as useUrlController, mr as FormRail, mt as copyEntityAction, n as getFullIdPath, nn as removeInitialSlash, nr as StorageThumbnail, nt as useResolvedNavigationFrom, o as CollectionGenerationApiError, on as resolveViewMode, or as renderSkeletonIcon, ot as EditViewBinding, p as fromSerializableProperty, pn as UrlContext, pr as FormSections, pt as CollectionViewBinding, q as SideDialogs, qn as useCollectionRegistryController, qt as BreadcrumbsProvider, r as idToPropertiesPath, rn as removeTrailingSlash, rr as StorageThumbnailInternal, rt as buildSidePanelsFromUrl, s as DEFAULT_COLLECTION_GENERATION_ENDPOINT, sn as useSelectionController, sr as renderSkeletonImageThumbnail, t as getFullId, tn as removeInitialAndTrailingSlashes, tr as EnumValuesChip, tt as resolveNavigationFrom, u as fromSerializableCollectionConfig, un as SelectableTable, ur as ImagePreview, ut as getInitialEntityValues, v as LiveSchemaError, vn as SideDialogsControllerContext, vr as isSelfLabellingProperty, vt as CreationResultDialog, w as EntityForm, wn as LabelWithIcon, wr as getIconForWidget, wt as useCollectionEditorController, x as createLiveSchemaClient, xn as useClearRestoreValue, xr as getBracketNotation, xt as CollectionCardViewBinding, y as SchemaChangeCancelled, yn as SelectableTableContext, yr as spanClass, yt as DetailViewBinding, z as MarkdownEditorFieldBinding, zn as RelationPreview, zt as detectCsvDelimiter } from "./util-DUIsQ2zh.js";
|
|
2
|
+
import { i as PropertySelectEntry, n as ImportCollectionAction, r as ImportDataPreview } from "./import-Dg4X01sA.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-CF1-p5nY.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,191 @@ 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-DceT8QFX.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
|
+
/**
|
|
1559
|
+
* Ask what the change would do, and ignore an answer that arrives late.
|
|
1560
|
+
*
|
|
1561
|
+
* Separate from `reviewChange` so it can be issued *again* without starting
|
|
1562
|
+
* a new review: a plan that failed on a dropped connection should cost a
|
|
1563
|
+
* click, not the whole wizard — the person has already filled in the form,
|
|
1564
|
+
* and making them do it twice for a transient failure is the kind of thing
|
|
1565
|
+
* that teaches people to distrust the preview.
|
|
1566
|
+
*/
|
|
1567
|
+
const requestPlan = useCallback(async (change) => {
|
|
1568
|
+
const token = ++reviewToken.current;
|
|
1569
|
+
try {
|
|
1570
|
+
const answer = await client.plan(change);
|
|
1571
|
+
if (token === reviewToken.current) setPlan(answer);
|
|
1572
|
+
} catch (err) {
|
|
1573
|
+
if (token !== reviewToken.current) return;
|
|
1574
|
+
setPlanError(err instanceof LiveSchemaError || err instanceof Error ? err.message : String(err));
|
|
1575
|
+
}
|
|
1576
|
+
}, [client]);
|
|
1577
|
+
const onRetry = useCallback(() => {
|
|
1578
|
+
if (!pending) return;
|
|
1579
|
+
setPlanError(void 0);
|
|
1580
|
+
setPlan(void 0);
|
|
1581
|
+
requestPlan(pending.change);
|
|
1582
|
+
}, [pending, requestPlan]);
|
|
1583
|
+
const clear = useCallback(() => {
|
|
1584
|
+
setPending(void 0);
|
|
1585
|
+
setPlan(void 0);
|
|
1586
|
+
setPlanError(void 0);
|
|
1587
|
+
setResult(void 0);
|
|
1588
|
+
setApplyError(void 0);
|
|
1589
|
+
setApplying(false);
|
|
1590
|
+
}, []);
|
|
1591
|
+
const reviewChange = useCallback((change) => {
|
|
1592
|
+
return new Promise((resolve, reject) => {
|
|
1593
|
+
setPending((previous) => {
|
|
1594
|
+
previous?.reject(new SchemaChangeCancelled());
|
|
1595
|
+
return {
|
|
1596
|
+
change,
|
|
1597
|
+
resolve,
|
|
1598
|
+
reject
|
|
1599
|
+
};
|
|
1600
|
+
});
|
|
1601
|
+
setPlan(void 0);
|
|
1602
|
+
setPlanError(void 0);
|
|
1603
|
+
setResult(void 0);
|
|
1604
|
+
setApplyError(void 0);
|
|
1605
|
+
setApplying(false);
|
|
1606
|
+
requestPlan(change);
|
|
1607
|
+
});
|
|
1608
|
+
}, [requestPlan]);
|
|
1609
|
+
const onConfirm = useCallback(() => {
|
|
1610
|
+
if (!pending) return;
|
|
1611
|
+
setApplying(true);
|
|
1612
|
+
setApplyError(void 0);
|
|
1613
|
+
client.apply(pending.change).then((answer) => {
|
|
1614
|
+
setResult(answer);
|
|
1615
|
+
setApplying(false);
|
|
1616
|
+
pending.resolve();
|
|
1617
|
+
setPending(void 0);
|
|
1618
|
+
}, (err) => {
|
|
1619
|
+
setApplying(false);
|
|
1620
|
+
setApplyError(err instanceof Error ? err.message : String(err));
|
|
1621
|
+
});
|
|
1622
|
+
}, [client, pending]);
|
|
1623
|
+
const onSourceOnly = useCallback(() => {
|
|
1624
|
+
if (!pending || !writeSourceOnly) return;
|
|
1625
|
+
setApplying(true);
|
|
1626
|
+
setApplyError(void 0);
|
|
1627
|
+
const settle = pending;
|
|
1628
|
+
writeSourceOnly(settle.change).then(() => {
|
|
1629
|
+
clear();
|
|
1630
|
+
settle.resolve();
|
|
1631
|
+
}, (err) => {
|
|
1632
|
+
setApplying(false);
|
|
1633
|
+
setApplyError(err instanceof Error ? err.message : String(err));
|
|
1634
|
+
});
|
|
1635
|
+
}, [
|
|
1636
|
+
pending,
|
|
1637
|
+
writeSourceOnly,
|
|
1638
|
+
clear
|
|
1639
|
+
]);
|
|
1640
|
+
const onClose = useCallback(() => {
|
|
1641
|
+
if (applying) return;
|
|
1642
|
+
const settle = pending;
|
|
1643
|
+
clear();
|
|
1644
|
+
if (settle && !result) settle.reject(new SchemaChangeCancelled());
|
|
1645
|
+
}, [
|
|
1646
|
+
applying,
|
|
1647
|
+
pending,
|
|
1648
|
+
result,
|
|
1649
|
+
clear
|
|
1650
|
+
]);
|
|
1651
|
+
const open = Boolean(pending) || Boolean(result);
|
|
1652
|
+
return {
|
|
1653
|
+
status,
|
|
1654
|
+
ready,
|
|
1655
|
+
reviewChange,
|
|
1656
|
+
dialog: open ? /* @__PURE__ */ jsx(Suspense, {
|
|
1657
|
+
fallback: null,
|
|
1658
|
+
children: /* @__PURE__ */ jsx(SchemaChangeDialog, {
|
|
1659
|
+
open,
|
|
1660
|
+
collectionId: pending?.change.collectionId ?? "",
|
|
1661
|
+
plan,
|
|
1662
|
+
planError,
|
|
1663
|
+
result,
|
|
1664
|
+
applying,
|
|
1665
|
+
applyError,
|
|
1666
|
+
onConfirm,
|
|
1667
|
+
onRetry: planError ? onRetry : void 0,
|
|
1668
|
+
onSourceOnly: writeSourceOnly ? onSourceOnly : void 0,
|
|
1669
|
+
onClose,
|
|
1670
|
+
applyRefusedBecause: status && !status.canApply ? status.applyRefusedBecause : void 0,
|
|
1671
|
+
target: status && {
|
|
1672
|
+
repository: status.repository,
|
|
1673
|
+
branch: status.branch
|
|
1674
|
+
}
|
|
1675
|
+
})
|
|
1676
|
+
}) : null
|
|
1677
|
+
};
|
|
1678
|
+
}
|
|
1679
|
+
//#endregion
|
|
1495
1680
|
//#region src/collection_editor/useLocalCollectionsConfigController.tsx
|
|
1496
1681
|
/**
|
|
1497
1682
|
* The guess this hook used to make on its own.
|
|
@@ -1584,43 +1769,97 @@ function useLocalCollectionsConfigController(clientOrUrl, baseCollections = [],
|
|
|
1584
1769
|
forcedReadOnly,
|
|
1585
1770
|
authKey
|
|
1586
1771
|
]);
|
|
1772
|
+
const liveSchema = useLiveSchemaEditing({
|
|
1773
|
+
baseUrl: `${String(clientBaseUrl).replace(/\/$/, "")}${clientApiPath}/admin/schema`,
|
|
1774
|
+
getAuthToken: resolveToken,
|
|
1775
|
+
authKey,
|
|
1776
|
+
writeSourceOnly: async ({ collectionId, collection }) => {
|
|
1777
|
+
await request("/collection/save", {
|
|
1778
|
+
collectionId,
|
|
1779
|
+
collectionData: collection
|
|
1780
|
+
});
|
|
1781
|
+
}
|
|
1782
|
+
});
|
|
1783
|
+
/**
|
|
1784
|
+
* Perform a write, through the live editor when there is one.
|
|
1785
|
+
*
|
|
1786
|
+
* `sourceOnly` is the write this controller has always done. It stays the
|
|
1787
|
+
* whole behaviour on a backend that cannot edit its schema — a bundle
|
|
1788
|
+
* deployment, a non-Postgres driver, a version too old to be asked — so
|
|
1789
|
+
* nothing about the editor depends on the feature being there.
|
|
1790
|
+
*/
|
|
1791
|
+
const write = async (collectionId, collection, sourceOnly) => {
|
|
1792
|
+
if (!(await liveSchema.ready()).enabled) return sourceOnly();
|
|
1793
|
+
await liveSchema.reviewChange({
|
|
1794
|
+
collectionId,
|
|
1795
|
+
collection
|
|
1796
|
+
});
|
|
1797
|
+
};
|
|
1587
1798
|
const readOnly = forcedReadOnly ?? (availability.state === "known" ? !availability.enabled : buildModeGuess());
|
|
1588
1799
|
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.";
|
|
1800
|
+
const findCollection = (id) => parsedCollections.find((c) => c.id === id || c.slug === id);
|
|
1801
|
+
/**
|
|
1802
|
+
* The whole collection as it should end up.
|
|
1803
|
+
*
|
|
1804
|
+
* Live editing computes the proposed state by replacing one collection in
|
|
1805
|
+
* the set, so it needs all of it: handed a patch, it would read every
|
|
1806
|
+
* property the patch does not mention as a removal and refuse the change.
|
|
1807
|
+
* A collection this does not recognise is a new one, and the patch is the
|
|
1808
|
+
* whole of it.
|
|
1809
|
+
*/
|
|
1810
|
+
const wholeCollection = (id, patch) => {
|
|
1811
|
+
const current = findCollection(id);
|
|
1812
|
+
return current ? {
|
|
1813
|
+
...current,
|
|
1814
|
+
...patch
|
|
1815
|
+
} : patch;
|
|
1816
|
+
};
|
|
1589
1817
|
return useMemo(() => ({
|
|
1590
1818
|
loading: false,
|
|
1591
1819
|
readOnly,
|
|
1592
1820
|
readOnlyReason,
|
|
1593
1821
|
collections: parsedCollections,
|
|
1822
|
+
dialog: liveSchema.dialog,
|
|
1594
1823
|
getCollection: (id) => {
|
|
1595
|
-
const found =
|
|
1824
|
+
const found = findCollection(id);
|
|
1596
1825
|
if (found) return found;
|
|
1597
1826
|
throw Error(`Collection ${id} not found in local mode`);
|
|
1598
1827
|
},
|
|
1599
1828
|
saveCollection: async ({ id, collectionData }) => {
|
|
1600
|
-
await request("/collection/save", {
|
|
1829
|
+
await write(id, collectionData, () => request("/collection/save", {
|
|
1601
1830
|
collectionId: id,
|
|
1602
1831
|
collectionData
|
|
1603
|
-
});
|
|
1832
|
+
}));
|
|
1604
1833
|
},
|
|
1605
1834
|
updateCollection: async ({ id, collectionData }) => {
|
|
1606
|
-
await request("/collection/save", {
|
|
1835
|
+
await write(id, wholeCollection(id, collectionData), () => request("/collection/save", {
|
|
1607
1836
|
collectionId: id,
|
|
1608
1837
|
collectionData
|
|
1609
|
-
});
|
|
1838
|
+
}));
|
|
1610
1839
|
},
|
|
1611
1840
|
deleteCollection: async ({ id }) => {
|
|
1612
1841
|
await request("/collection/delete", { collectionId: id });
|
|
1613
1842
|
},
|
|
1614
1843
|
saveProperty: async ({ path, propertyKey, property, newPropertiesOrder }) => {
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
propertyKey
|
|
1618
|
-
|
|
1844
|
+
const properties = {
|
|
1845
|
+
...findCollection(path)?.properties ?? {},
|
|
1846
|
+
[propertyKey]: property
|
|
1847
|
+
};
|
|
1848
|
+
const proposed = wholeCollection(path, {
|
|
1849
|
+
properties,
|
|
1850
|
+
...newPropertiesOrder ? { propertiesOrder: newPropertiesOrder } : {}
|
|
1619
1851
|
});
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1852
|
+
await write(path, proposed, async () => {
|
|
1853
|
+
await request("/property/save", {
|
|
1854
|
+
collectionId: path,
|
|
1855
|
+
propertyKey,
|
|
1856
|
+
propertyConfig: property
|
|
1857
|
+
});
|
|
1858
|
+
if (newPropertiesOrder) await request("/collection/save", {
|
|
1859
|
+
collectionId: path,
|
|
1860
|
+
collectionData: { propertiesOrder: newPropertiesOrder },
|
|
1861
|
+
partial: true
|
|
1862
|
+
});
|
|
1624
1863
|
});
|
|
1625
1864
|
},
|
|
1626
1865
|
deleteProperty: async ({ path, propertyKey, newPropertiesOrder }) => {
|
|
@@ -1650,14 +1889,16 @@ function useLocalCollectionsConfigController(clientOrUrl, baseCollections = [],
|
|
|
1650
1889
|
parsedCollections,
|
|
1651
1890
|
readOnly,
|
|
1652
1891
|
readOnlyReason,
|
|
1653
|
-
options?.getAuthToken
|
|
1892
|
+
options?.getAuthToken,
|
|
1893
|
+
liveSchema.dialog,
|
|
1894
|
+
liveSchema.status
|
|
1654
1895
|
]);
|
|
1655
1896
|
}
|
|
1656
1897
|
//#endregion
|
|
1657
1898
|
//#region src/components/RebaseNavigation.tsx
|
|
1658
1899
|
var EMPTY_PLUGINS = [];
|
|
1659
1900
|
var EMPTY_COLLECTIONS = [];
|
|
1660
|
-
var CollectionsStudioView = lazyChunk(() => import("./RouterCollectionsStudioView-
|
|
1901
|
+
var CollectionsStudioView = lazyChunk(() => import("./RouterCollectionsStudioView-C-BHWJ0J.js").then((n) => n.n).then((m) => ({ default: m.RouterCollectionsStudioView })));
|
|
1661
1902
|
/**
|
|
1662
1903
|
* Navigation layer — builds and provides all admin navigation controllers:
|
|
1663
1904
|
* collection registry, URL controller, navigation state, side entity,
|
|
@@ -2889,8 +3130,8 @@ function ContentHomePage({ additionalActions, additionalChildrenStart, additiona
|
|
|
2889
3130
|
}
|
|
2890
3131
|
//#endregion
|
|
2891
3132
|
//#region src/components/CollectionEditorDialogs.tsx
|
|
2892
|
-
var CollectionEditorDialog = lazyChunk(() => import("./CollectionEditorDialog-
|
|
2893
|
-
var PropertyFormDialog = lazyChunk(() => import("./PropertyEditView-
|
|
3133
|
+
var CollectionEditorDialog = lazyChunk(() => import("./CollectionEditorDialog-Dt_Wv20U.js").then((n) => n.r).then((m) => ({ default: m.CollectionEditorDialog })));
|
|
3134
|
+
var PropertyFormDialog = lazyChunk(() => import("./PropertyEditView-C4IltWX5.js").then((n) => n.t).then((m) => ({ default: m.PropertyFormDialog })));
|
|
2894
3135
|
/**
|
|
2895
3136
|
* Renders the CollectionEditorDialog and PropertyFormDialog inside
|
|
2896
3137
|
* the RebaseShell tree where admin-internal contexts
|
|
@@ -3500,6 +3741,6 @@ function MissingReferenceWidget({ path: pathProp }) {
|
|
|
3500
3741
|
});
|
|
3501
3742
|
}
|
|
3502
3743
|
//#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,
|
|
3744
|
+
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, 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
3745
|
|
|
3505
3746
|
//# sourceMappingURL=index.js.map
|