@parhelia/core 0.2.12773 → 0.2.12776
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/editor/ConcurrentUserLimitDialog.d.ts +2 -1
- package/dist/editor/ConcurrentUserLimitDialog.js +26 -11
- package/dist/editor/ConcurrentUserLimitDialog.js.map +1 -1
- package/dist/editor/FieldList.js +45 -4
- package/dist/editor/FieldList.js.map +1 -1
- package/dist/editor/FieldListField.js +4 -2
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/PictureCropper.js +1 -1
- package/dist/editor/PictureCropper.js.map +1 -1
- package/dist/editor/ai/bridgeInlineTextReplace.d.ts +16 -0
- package/dist/editor/ai/bridgeInlineTextReplace.js +31 -0
- package/dist/editor/ai/bridgeInlineTextReplace.js.map +1 -0
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.js +2 -2
- package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +9 -14
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.js +1 -5
- package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
- package/dist/editor/bridge/protocol.d.ts +6 -0
- package/dist/editor/bridge/protocol.js.map +1 -1
- package/dist/editor/client/EditorShell.js +59 -18
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +4 -1
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useEditorWebSocket.d.ts +1 -0
- package/dist/editor/client/hooks/useEditorWebSocket.js +1 -0
- package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +1 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.js +17 -5
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/operations.d.ts +1 -1
- package/dist/editor/client/operations.js +61 -54
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/suggestedEditFieldQueue.d.ts +2 -0
- package/dist/editor/client/suggestedEditFieldQueue.js +16 -0
- package/dist/editor/client/suggestedEditFieldQueue.js.map +1 -0
- package/dist/editor/client/waitForEditOperationTerminal.d.ts +2 -0
- package/dist/editor/client/waitForEditOperationTerminal.js +3 -5
- package/dist/editor/client/waitForEditOperationTerminal.js.map +1 -1
- package/dist/editor/commands/deleteVersionCommand.js +1 -1
- package/dist/editor/commands/deleteVersionCommand.js.map +1 -1
- package/dist/editor/commands/itemCommands.js +31 -1
- package/dist/editor/commands/itemCommands.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +14 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
- package/dist/editor/menubar/VersionSelector.js +0 -1
- package/dist/editor/menubar/VersionSelector.js.map +1 -1
- package/dist/editor/notifications/NotificationCenter.js +21 -3
- package/dist/editor/notifications/NotificationCenter.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +12 -9
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +119 -27
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionVariantSwitcher.d.ts +6 -0
- package/dist/editor/page-editor-chrome/SuggestionVariantSwitcher.js +23 -0
- package/dist/editor/page-editor-chrome/SuggestionVariantSwitcher.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +8 -1
- package/dist/editor/page-editor-chrome/overlay/geometry.js +30 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +3 -0
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +38 -11
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +1 -1
- package/dist/editor/page-viewer/EditorForm.js +6 -1
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +87 -37
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +8 -0
- package/dist/editor/page-viewer/bridgeFieldPatch.js +25 -0
- package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -1
- package/dist/editor/page-viewer/bridgeInlineEditSession.d.ts +2 -0
- package/dist/editor/page-viewer/bridgeInlineEditSession.js +35 -5
- package/dist/editor/page-viewer/bridgeInlineEditSession.js.map +1 -1
- package/dist/editor/personalization/PersonalizationPanel.js +93 -29
- package/dist/editor/personalization/PersonalizationPanel.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.js +30 -64
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +76 -57
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/applySuggestedEditActions.d.ts +21 -0
- package/dist/editor/reviews/applySuggestedEditActions.js +242 -0
- package/dist/editor/reviews/applySuggestedEditActions.js.map +1 -0
- package/dist/editor/reviews/feedbackScrollTarget.js +3 -2
- package/dist/editor/reviews/feedbackScrollTarget.js.map +1 -1
- package/dist/editor/reviews/suggestedEditState.js +12 -1
- package/dist/editor/reviews/suggestedEditState.js.map +1 -1
- package/dist/editor/reviews/suggestionDisplayValue.d.ts +38 -1
- package/dist/editor/reviews/suggestionDisplayValue.js +99 -21
- package/dist/editor/reviews/suggestionDisplayValue.js.map +1 -1
- package/dist/editor/reviews/suggestionPatch.d.ts +10 -0
- package/dist/editor/reviews/suggestionPatch.js +17 -0
- package/dist/editor/reviews/suggestionPatch.js.map +1 -0
- package/dist/editor/reviews/useMultiReview.js +9 -0
- package/dist/editor/reviews/useMultiReview.js.map +1 -1
- package/dist/editor/services/contentService.d.ts +1 -9
- package/dist/editor/services/contentService.js.map +1 -1
- package/dist/editor/services/editService.d.ts +1 -0
- package/dist/editor/services/editService.js +10 -6
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/services/suggestedEditsService.d.ts +17 -5
- package/dist/editor/services/suggestedEditsService.js +23 -5
- package/dist/editor/services/suggestedEditsService.js.map +1 -1
- package/dist/editor/services/systemService.d.ts +1 -2
- package/dist/editor/services/systemService.js +0 -3
- package/dist/editor/services/systemService.js.map +1 -1
- package/dist/editor/sidebar/DictionaryEditor.js +8 -8
- package/dist/editor/sidebar/DictionaryEditor.js.map +1 -1
- package/dist/editor/ui/SharedFolderSelectorDialog.js +17 -3
- package/dist/editor/ui/SharedFolderSelectorDialog.js.map +1 -1
- package/dist/editor/version-diff/versionDiffTargets.js +2 -1
- package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/ModernSplashScreen.d.ts +1 -1
- package/dist/splash-screen/ModernSplashScreen.js +1 -1
- package/dist/types.d.ts +11 -5
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/editor/bridge/protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GACzC,yBAAkC,CAAC;AAsBrC,MAAM,CAAC,MAAM,+BAA+B,GAAkB;IAC5D,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAuCF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,iEAAiE;IACjE,mEAAmE;IACnE,WAAW,EAAE,aAAa;IAC1B,8EAA8E;IAC9E,iEAAiE;IACjE,WAAW,EAAE,aAAa;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/editor/bridge/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ import { toast } from "sonner";
|
|
|
5
5
|
import { isPerfTraceActive, perfTracePaintStep, perfTraceStep, } from "../perfTrace";
|
|
6
6
|
import { EditContextProvider, FieldsEditContextProvider, OperationsContextProvider, SelectionContextProvider, useEditContext, } from "./editContext";
|
|
7
7
|
import { aggregateModifiedFieldsFromStores, areModifiedFieldSnapshotsEqual, FieldModificationStore, } from "./fieldModificationStore";
|
|
8
|
-
import { SplashScreenAgentProvider } from "../../splash-screen/SplashScreenAgentContext";
|
|
9
8
|
import { useRouter, useSearchParams, usePathname } from "./navigation";
|
|
10
9
|
import { findComponent, getComponentById } from "../componentTreeHelper";
|
|
11
10
|
import { getOperationsContext } from "./operations";
|
|
@@ -50,6 +49,7 @@ import { useDebouncedCallback } from "use-debounce";
|
|
|
50
49
|
import { useKeyboardNavigation } from "../utils/keyboardNavigation";
|
|
51
50
|
import { Toaster } from "../../components/ui/sonner";
|
|
52
51
|
import { Tour } from "../../tour/Tour";
|
|
52
|
+
import { buildBridgeInsertTextCommand } from "../ai/bridgeInlineTextReplace";
|
|
53
53
|
import { GuidanceOverlay } from "../ai/GuidanceOverlay";
|
|
54
54
|
import { AgentDialogHandler } from "../ai/dialogs";
|
|
55
55
|
import { setActiveAgentConversation } from "../ai/useActiveAgentConversation";
|
|
@@ -655,7 +655,16 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
655
655
|
// decisions that depend on a suggestion's comment thread (e.g. auto-deleting
|
|
656
656
|
// a reverted no-op suggestion) must not run on the initial empty array.
|
|
657
657
|
const [commentsLoaded, setCommentsLoaded] = useState(false);
|
|
658
|
-
const [suggestedEdits,
|
|
658
|
+
const [suggestedEdits, setSuggestedEditsState] = useState([]);
|
|
659
|
+
const suggestedEditsRef = useRef([]);
|
|
660
|
+
const setSuggestedEdits = useCallback((action) => {
|
|
661
|
+
const next = typeof action === "function" ? action(suggestedEditsRef.current) : action;
|
|
662
|
+
suggestedEditsRef.current = next;
|
|
663
|
+
setSuggestedEditsState(next);
|
|
664
|
+
}, []);
|
|
665
|
+
const getCurrentSuggestedEdits = useCallback(() => suggestedEditsRef.current, []);
|
|
666
|
+
const [suggestionVariantSelection, setSuggestionVariantSelection] = useState({});
|
|
667
|
+
const suggestionVariantItemIdentityRef = useRef("");
|
|
659
668
|
const [showSuggestedEdits, setShowSuggestedEdits] = useState(false);
|
|
660
669
|
const [showSuggestedEditsDiff, setShowSuggestedEditsDiff] = useState(false);
|
|
661
670
|
const [showVersionDiffHighlighting, setShowVersionDiffHighlighting] = useState(false);
|
|
@@ -1656,8 +1665,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1656
1665
|
// rendering-host focusout event can be lost when its framework replaces
|
|
1657
1666
|
// the focused node under load, so selection state must independently
|
|
1658
1667
|
// uphold the lock invariant instead of leaving a stale server lock.
|
|
1659
|
-
if (event.data.componentIds.length === 0 &&
|
|
1660
|
-
focusedFieldRef.current) {
|
|
1668
|
+
if (event.data.componentIds.length === 0 && focusedFieldRef.current) {
|
|
1661
1669
|
setFocusedField(undefined);
|
|
1662
1670
|
setLockedField(undefined);
|
|
1663
1671
|
void releaseFieldLocks(sessionId);
|
|
@@ -1843,6 +1851,11 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1843
1851
|
useEffect(() => {
|
|
1844
1852
|
if (!currentItemDescriptor)
|
|
1845
1853
|
return;
|
|
1854
|
+
const identity = `${currentItemDescriptor.id}:${currentItemDescriptor.language}:${currentItemDescriptor.version}`;
|
|
1855
|
+
if (suggestionVariantItemIdentityRef.current !== identity) {
|
|
1856
|
+
suggestionVariantItemIdentityRef.current = identity;
|
|
1857
|
+
setSuggestionVariantSelection({});
|
|
1858
|
+
}
|
|
1846
1859
|
const prevId = previousItemIdRef.current;
|
|
1847
1860
|
const currentId = currentItemDescriptor.id;
|
|
1848
1861
|
// Only release locks if we're navigating from one page to another
|
|
@@ -3959,6 +3972,18 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3959
3972
|
lastTextSelectionRangeRef.current = undefined;
|
|
3960
3973
|
return;
|
|
3961
3974
|
}
|
|
3975
|
+
// Canvas selections come from the bridge without a replaceText
|
|
3976
|
+
// callback, and their text is the rendered selection — the raw field
|
|
3977
|
+
// value (HTML in rich text fields, untransformed text otherwise)
|
|
3978
|
+
// need not contain it. Let the host replace the restored selection
|
|
3979
|
+
// natively instead of splicing the raw value below.
|
|
3980
|
+
const bridgeInsertCommand = buildBridgeInsertTextCommand(rangeToReplace, newText);
|
|
3981
|
+
if (bridgeInsertCommand &&
|
|
3982
|
+
activePageViewContextRef.current?.requestBridgeRichTextCommand?.(bridgeInsertCommand)) {
|
|
3983
|
+
setSelectedRange(undefined);
|
|
3984
|
+
lastTextSelectionRangeRef.current = undefined;
|
|
3985
|
+
return;
|
|
3986
|
+
}
|
|
3962
3987
|
const fieldToReplace = focusedField ??
|
|
3963
3988
|
(rangeToReplace?.fieldId &&
|
|
3964
3989
|
rangeToReplace.itemId &&
|
|
@@ -3989,6 +4014,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3989
4014
|
const actualPosition = currentValue.indexOf(originalSelectedText);
|
|
3990
4015
|
if (actualPosition === -1) {
|
|
3991
4016
|
console.error("Failed to find selected text in field value");
|
|
4017
|
+
toast.warning("Could not apply the generated text", {
|
|
4018
|
+
description: "The selected text could not be located in the field. Re-select the text and try again.",
|
|
4019
|
+
});
|
|
3992
4020
|
return;
|
|
3993
4021
|
}
|
|
3994
4022
|
newValue =
|
|
@@ -4573,10 +4601,14 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4573
4601
|
document.removeEventListener("focusin", handlePointerDown, true);
|
|
4574
4602
|
};
|
|
4575
4603
|
}, []);
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4604
|
+
// The active page model is the permission authority for page editing. The
|
|
4605
|
+
// shell-level item can briefly lag behind it while slots initialise, which
|
|
4606
|
+
// must not leave the field form editable after the canvas is already read-only.
|
|
4607
|
+
const permissionItem = page?.item ?? item;
|
|
4608
|
+
const isReadOnly = !permissionItem ||
|
|
4609
|
+
!permissionItem.canWriteItem ||
|
|
4610
|
+
!permissionItem.canWriteLanguage ||
|
|
4611
|
+
!permissionItem.canWriteWorkflow ||
|
|
4580
4612
|
// Block editing until server acknowledges client-info for the current item
|
|
4581
4613
|
(currentItemDescriptor ? !isClientInfoAcknowledged : false);
|
|
4582
4614
|
// Calculate visible workspaces based on settings from Sitecore
|
|
@@ -4601,8 +4633,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4601
4633
|
}
|
|
4602
4634
|
}, [searchParams, isInitialLoad, activePageViewContext]);
|
|
4603
4635
|
useEffect(() => {
|
|
4604
|
-
if (typeof window === "undefined"
|
|
4605
|
-
|
|
4636
|
+
if (typeof window === "undefined") {
|
|
4637
|
+
return;
|
|
4638
|
+
}
|
|
4639
|
+
const exposeViewportTestApi = process.env.PARHELIA_DEV_MODE === "true" ||
|
|
4640
|
+
window.localStorage?.getItem("__parheliaViewportTestApi") === "true";
|
|
4641
|
+
if (!exposeViewportTestApi) {
|
|
4606
4642
|
return;
|
|
4607
4643
|
}
|
|
4608
4644
|
window.__parheliaViewportTestApi = {
|
|
@@ -5252,6 +5288,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5252
5288
|
setStatusMessage,
|
|
5253
5289
|
suggestedEdits,
|
|
5254
5290
|
setSuggestedEdits,
|
|
5291
|
+
getCurrentSuggestedEdits,
|
|
5292
|
+
suggestionVariantSelection,
|
|
5293
|
+
setSuggestionVariantSelection,
|
|
5255
5294
|
showSuggestedEdits,
|
|
5256
5295
|
setShowSuggestedEdits,
|
|
5257
5296
|
showSuggestedEditsDiff,
|
|
@@ -5413,6 +5452,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5413
5452
|
selectedSuggestedEdit,
|
|
5414
5453
|
comments,
|
|
5415
5454
|
commentsLoaded,
|
|
5455
|
+
suggestedEdits,
|
|
5456
|
+
suggestionVariantSelection,
|
|
5416
5457
|
availableCommentTags,
|
|
5417
5458
|
loadComments,
|
|
5418
5459
|
loadSuggestedEdits,
|
|
@@ -5778,13 +5819,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5778
5819
|
window.history.replaceState(getCurrentHistoryState(), "", newUrl);
|
|
5779
5820
|
}, configuration: configuration, restoredFromUrl: tourRestoredRef.current })), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(GuidanceOverlay, {}) }), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(AgentDialogHandler, {}) })] }));
|
|
5780
5821
|
const showRefreshSpinner = editContext.isRefreshing && !activePageViewContext.iframeSupportsRefresh;
|
|
5781
|
-
return (_jsx(LicenseProvider, { initialLicenseStatus: initialLicenseStatus, initialStatusLoaded: initialLicenseStatusLoaded, children: _jsx("div", { className: `editor h-full w-full`, children: _jsx(OperationsContextProvider, { value: operationsContext.context, children: _jsx(FieldsEditContextProvider, { value: fieldsEditContext, children: _jsx(EditContextProvider, { value: editContext, children:
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5822
|
+
return (_jsx(LicenseProvider, { initialLicenseStatus: initialLicenseStatus, initialStatusLoaded: initialLicenseStatusLoaded, children: _jsx("div", { className: `editor h-full w-full`, children: _jsx(OperationsContextProvider, { value: operationsContext.context, children: _jsx(FieldsEditContextProvider, { value: fieldsEditContext, children: _jsx(EditContextProvider, { value: editContext, children: _jsxs(SelectionContextProvider, { value: selectionContextValue, children: [_jsx(DevModeIndicator, {}), startupChecks.state === "loading" && _jsx(EditorLoadingOverlay, {}), showRefreshSpinner && (_jsx("div", { className: "text-neutral-grey-50 pointer-events-none fixed right-0 bottom-0 flex h-24 w-24 items-center justify-center opacity-50 select-none", children: _jsx(Spinner, {}) })), (currentWorkspace.id === "agents" ||
|
|
5823
|
+
currentWorkspace.id === "taskboard" ||
|
|
5824
|
+
currentWorkspace.id === "translation-management") &&
|
|
5825
|
+
showAgentsWorkspaceEditor && (_jsx(AgentsSlotContextBridgeHost, { slots: editorSlots })), startupChecks.state !== "loading" && (children || editorUi), startupChecks.state !== "loading" && dialog, _jsx(Toaster, { position: "top-center" }), " ", _jsx(ConfirmationDialog, { ref: confirmationDialogRef }), _jsx(ConcurrentUserLimitDialog, { open: concurrentUserLimitError !== null, onOpenChange: (open) => {
|
|
5826
|
+
if (!open) {
|
|
5827
|
+
setConcurrentUserLimitError(null);
|
|
5828
|
+
}
|
|
5829
|
+
}, sessionId: sessionId, backendReachable: concurrentUserLimitError?.backendReachable ?? true, currentUsers: concurrentUserLimitError?.currentUsers ?? 0, maxUsers: concurrentUserLimitError?.maxUsers ?? 0, message: concurrentUserLimitError?.message ?? "", onRetry: handleRetryConnection, isAdministrator: userInfo.user.isAdministrator === true }), _jsx(QuickItemSwitcher, { visible: quickSwitcherVisible, entries: quickSwitcherEntries.slice(0, 5), selectedIndex: quickSwitcherSelectedIndex, onSelect: handleQuickSwitcherSelect, onClose: () => setQuickSwitcherVisible(false) }), _jsx(EditContextMenu, { ref: contextMenuRef, onOpenChange: handleContextMenuOpenChange }), _jsx(EditorFormHintPopover, {}), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(InlineAiTrigger, {}) }), media.mediaSelectorVisible && (_jsx(MediaSelector, { language: editContext.currentItemDescriptor.language, visible: media.mediaSelectorVisible, onHide: media.handleHide, onMediaSelected: media.onMediaSelect, selectedIdPath: media.selectedMediaIdPath, mode: media.mediaSelectorMode, initialSearchTerm: media.initialSearchTerm })), _jsx(FieldEditorPopup, { ref: fieldEditorPopupRef }), _jsx(LicenseOverlay, {}), _jsx(SessionExpiredOverlay, {})] }) }) }) }) }) }));
|
|
5789
5830
|
}
|
|
5790
5831
|
//# sourceMappingURL=EditorShell.js.map
|