@parhelia/core 0.1.12836 → 0.1.12839
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/components/ui/avatar.d.ts +30 -0
- package/dist/components/ui/avatar.js +46 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/config/config.js +9 -2
- package/dist/config/config.js.map +1 -1
- package/dist/editor/GlobalMenuBar.js +2 -1
- package/dist/editor/GlobalMenuBar.js.map +1 -1
- package/dist/editor/client/EditorShell.js +67 -18
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +8 -0
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useEditorWebSocket.d.ts +2 -0
- package/dist/editor/client/hooks/useEditorWebSocket.js +214 -10
- package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
- package/dist/editor/client/hooks/useWorkbox.js +19 -2
- package/dist/editor/client/hooks/useWorkbox.js.map +1 -1
- package/dist/editor/client/realtime/realtimeTransport.d.ts +56 -0
- package/dist/editor/client/realtime/realtimeTransport.js +197 -0
- package/dist/editor/client/realtime/realtimeTransport.js.map +1 -0
- package/dist/editor/menubar/ActiveUsers.js +17 -31
- package/dist/editor/menubar/ActiveUsers.js.map +1 -1
- package/dist/editor/menubar/OpenInNewTabButton.d.ts +15 -0
- package/dist/editor/menubar/OpenInNewTabButton.js +42 -0
- package/dist/editor/menubar/OpenInNewTabButton.js.map +1 -0
- package/dist/editor/menubar/User.js +2 -7
- package/dist/editor/menubar/User.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +48 -3
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
- package/dist/editor/page-editor-chrome/CommentHighlightings.js +180 -44
- package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/InlineEditor.js +145 -6
- package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +40 -53
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +2 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.js +45 -5
- package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +45 -10
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/pageViewContext.js +7 -1
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
- package/dist/editor/reviews/CommentView.js +7 -2
- package/dist/editor/reviews/CommentView.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.js +7 -2
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +7 -2
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/services/agentSubscriptionRegistry.js +12 -13
- package/dist/editor/services/agentSubscriptionRegistry.js.map +1 -1
- package/dist/editor/services/editService.d.ts +2 -0
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/services/systemService.d.ts +9 -0
- package/dist/editor/services/systemService.js +7 -0
- package/dist/editor/services/systemService.js.map +1 -1
- package/dist/editor/services/userResolution.d.ts +18 -0
- package/dist/editor/services/userResolution.js +86 -0
- package/dist/editor/services/userResolution.js.map +1 -0
- package/dist/editor/services/userService.d.ts +8 -0
- package/dist/editor/services/userService.js +26 -0
- package/dist/editor/services/userService.js.map +1 -1
- package/dist/editor/settings/panels/SystemSettingsPanel.d.ts +2 -0
- package/dist/editor/settings/panels/SystemSettingsPanel.js +69 -0
- package/dist/editor/settings/panels/SystemSettingsPanel.js.map +1 -0
- package/dist/editor/settings/panels/UserPreferencesPanel.js +50 -2
- package/dist/editor/settings/panels/UserPreferencesPanel.js.map +1 -1
- package/dist/editor/settings/panels/index.d.ts +1 -0
- package/dist/editor/settings/panels/index.js +1 -0
- package/dist/editor/settings/panels/index.js.map +1 -1
- package/dist/editor/settings/status/coreStatusChecks.js +65 -5
- package/dist/editor/settings/status/coreStatusChecks.js.map +1 -1
- package/dist/editor/setup-wizard/steps/ProviderStep.js +4 -4
- package/dist/editor/setup-wizard/steps/ProviderStep.js.map +1 -1
- package/dist/editor/ui/Section.js +5 -7
- package/dist/editor/ui/Section.js.map +1 -1
- package/dist/editor/ui/SimpleMenu.js +1 -1
- package/dist/editor/ui/SimpleMenu.js.map +1 -1
- package/dist/editor/views/editorSlotContext.js +5 -0
- package/dist/editor/views/editorSlotContext.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- 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.js +2 -1
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import { findFieldElement } from "../utils";
|
|
|
5
5
|
import { cn } from "../../lib/utils";
|
|
6
6
|
import { CommentIcon } from "../ui/Icons";
|
|
7
7
|
import { CommentDisplayPopover } from "../reviews/CommentDisplayPopover";
|
|
8
|
-
import { measureElementRect,
|
|
8
|
+
import { measureElementRect, rectListEquals, toOverlayRect, } from "./overlay/geometry";
|
|
9
9
|
import { getAccessibleIframeDocument } from "./overlay/iframeAccess";
|
|
10
10
|
import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
|
|
11
11
|
function commentMeasurementsEqual(previous, next) {
|
|
@@ -52,7 +52,7 @@ export function CommentHighlightings({ iframe, }) {
|
|
|
52
52
|
let rects = [];
|
|
53
53
|
let isTextRange = false;
|
|
54
54
|
if (fieldElement && range) {
|
|
55
|
-
rects =
|
|
55
|
+
rects = measureVisibleTextRangeRects(iframeDocument, fieldElement, range[0], range[1], metrics);
|
|
56
56
|
isTextRange = rects.length > 0;
|
|
57
57
|
}
|
|
58
58
|
if (rects.length === 0) {
|
|
@@ -80,49 +80,185 @@ export function CommentHighlightings({ iframe, }) {
|
|
|
80
80
|
});
|
|
81
81
|
if (!editContext)
|
|
82
82
|
return null;
|
|
83
|
-
return (
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
? "var(--color-feedback-red)"
|
|
120
|
-
: comment.isResolved
|
|
121
|
-
? "color-mix(in srgb, var(--color-feedback-green) 45%, transparent)"
|
|
122
|
-
: "color-mix(in srgb, var(--color-feedback-blue) 45%, transparent)",
|
|
123
|
-
} }))] }, `${comment.id}-${index}`)));
|
|
124
|
-
}) }));
|
|
83
|
+
return (_jsxs(_Fragment, { children: [_jsx("style", { children: commentHighlightingStyles }), visibleComments.flatMap((comment) => {
|
|
84
|
+
const measurement = measurements[comment.id];
|
|
85
|
+
if (!measurement?.rects.length)
|
|
86
|
+
return [];
|
|
87
|
+
const isSelected = comment.id === editContext.selectedComment?.id;
|
|
88
|
+
return measurement.rects.map((rect, index) => (_jsxs("div", { style: {
|
|
89
|
+
position: "absolute",
|
|
90
|
+
top: rect.y,
|
|
91
|
+
left: rect.x,
|
|
92
|
+
width: rect.width,
|
|
93
|
+
height: rect.height,
|
|
94
|
+
pointerEvents: "none",
|
|
95
|
+
}, children: [index === 0 && (_jsx(CommentDisplayPopover, { comment: comment, onCommentUpdated: () => {
|
|
96
|
+
editContext?.loadComments?.();
|
|
97
|
+
}, children: _jsx("div", { className: "pointer-events-auto absolute -top-5 right-0 h-5 w-5 cursor-pointer", "data-testid": "comment-highlight-icon", onClick: () => {
|
|
98
|
+
editContext?.setSelectedComment(comment);
|
|
99
|
+
editContext?.setScrollIntoView(comment.itemId);
|
|
100
|
+
editContext?.select([comment.itemId]);
|
|
101
|
+
if (comment.fieldId) {
|
|
102
|
+
modifiedFields?.setFocusedField({
|
|
103
|
+
fieldId: comment.fieldId,
|
|
104
|
+
item: {
|
|
105
|
+
id: comment.itemId,
|
|
106
|
+
language: comment.language,
|
|
107
|
+
version: comment.version,
|
|
108
|
+
},
|
|
109
|
+
}, false);
|
|
110
|
+
}
|
|
111
|
+
}, children: _jsx(CommentIcon, { className: cn(comment.isResolved
|
|
112
|
+
? "text-feedback-green hover:text-feedback-green"
|
|
113
|
+
: isSelected
|
|
114
|
+
? "text-feedback-red hover:text-feedback-red"
|
|
115
|
+
: "text-feedback-blue hover:text-feedback-blue") }) }) })), measurement.isTextRange && (_jsx("div", { className: "absolute right-0 -bottom-0.5 left-0 h-2", style: {
|
|
116
|
+
...getCommentUnderlineStyle(comment, isSelected, index),
|
|
117
|
+
} }))] }, `${comment.id}-${index}`)));
|
|
118
|
+
})] }));
|
|
125
119
|
}
|
|
120
|
+
function measureVisibleTextRangeRects(iframeDocument, root, start, end, metrics) {
|
|
121
|
+
const text = root.textContent || "";
|
|
122
|
+
const boundedStart = Math.max(0, Math.min(start, text.length));
|
|
123
|
+
const boundedEnd = Math.max(boundedStart, Math.min(end, text.length));
|
|
124
|
+
if (boundedStart >= boundedEnd)
|
|
125
|
+
return [];
|
|
126
|
+
const rects = [];
|
|
127
|
+
const walker = iframeDocument.createTreeWalker(root, NodeFilter.SHOW_TEXT);
|
|
128
|
+
let absoluteOffset = 0;
|
|
129
|
+
let textNode;
|
|
130
|
+
while ((textNode = walker.nextNode())) {
|
|
131
|
+
const nodeText = textNode.textContent || "";
|
|
132
|
+
const nodeStart = absoluteOffset;
|
|
133
|
+
const nodeEnd = nodeStart + nodeText.length;
|
|
134
|
+
if (nodeEnd > boundedStart && nodeStart < boundedEnd) {
|
|
135
|
+
const localStart = Math.max(0, boundedStart - nodeStart);
|
|
136
|
+
const localEnd = Math.min(nodeText.length, boundedEnd - nodeStart);
|
|
137
|
+
rects.push(...measureVisibleTextNodeRects(iframeDocument, textNode, nodeText, localStart, localEnd, metrics));
|
|
138
|
+
}
|
|
139
|
+
absoluteOffset = nodeEnd;
|
|
140
|
+
if (absoluteOffset >= boundedEnd)
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
return rects;
|
|
144
|
+
}
|
|
145
|
+
function measureVisibleTextNodeRects(iframeDocument, textNode, nodeText, start, end, metrics) {
|
|
146
|
+
const rects = [];
|
|
147
|
+
let cursor = start;
|
|
148
|
+
while (cursor < end) {
|
|
149
|
+
let lineEnd = cursor;
|
|
150
|
+
while (lineEnd < end && !isLineBreak(nodeText[lineEnd])) {
|
|
151
|
+
lineEnd++;
|
|
152
|
+
}
|
|
153
|
+
let visibleStart = cursor;
|
|
154
|
+
while (visibleStart < lineEnd &&
|
|
155
|
+
isHorizontalWhitespace(nodeText[visibleStart])) {
|
|
156
|
+
visibleStart++;
|
|
157
|
+
}
|
|
158
|
+
let visibleEnd = lineEnd;
|
|
159
|
+
while (visibleEnd > visibleStart &&
|
|
160
|
+
isHorizontalWhitespace(nodeText[visibleEnd - 1])) {
|
|
161
|
+
visibleEnd--;
|
|
162
|
+
}
|
|
163
|
+
if (visibleStart < visibleEnd) {
|
|
164
|
+
try {
|
|
165
|
+
const textRange = iframeDocument.createRange();
|
|
166
|
+
textRange.setStart(textNode, visibleStart);
|
|
167
|
+
textRange.setEnd(textNode, visibleEnd);
|
|
168
|
+
rects.push(...Array.from(textRange.getClientRects())
|
|
169
|
+
.filter((rect) => rect.width > 1 && rect.height > 1)
|
|
170
|
+
.map((rect) => toOverlayRect(rect, metrics)));
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// Ignore detached or otherwise invalid text nodes while the iframe mutates.
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
cursor = lineEnd;
|
|
177
|
+
if (nodeText[cursor] === "\r" && nodeText[cursor + 1] === "\n") {
|
|
178
|
+
cursor += 2;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
cursor++;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return rects;
|
|
185
|
+
}
|
|
186
|
+
function isLineBreak(value) {
|
|
187
|
+
return value === "\n" || value === "\r";
|
|
188
|
+
}
|
|
189
|
+
function isHorizontalWhitespace(value) {
|
|
190
|
+
return value === " " || value === "\t" || value === "\f" || value === "\v";
|
|
191
|
+
}
|
|
192
|
+
function getCommentUnderlineStyle(comment, isSelected, index) {
|
|
193
|
+
const color = comment.isResolved
|
|
194
|
+
? "var(--color-feedback-green)"
|
|
195
|
+
: isSelected
|
|
196
|
+
? "var(--color-feedback-red)"
|
|
197
|
+
: "var(--color-feedback-blue)";
|
|
198
|
+
const strength = isSelected ? 62 : 48;
|
|
199
|
+
const textureStrength = isSelected ? 20 : 14;
|
|
200
|
+
const shadowStrength = isSelected ? 24 : 14;
|
|
201
|
+
const offset = (hashString(comment.id) + index * 17) % 64;
|
|
202
|
+
const style = {
|
|
203
|
+
"--comment-squiggle-offset": `${offset}px`,
|
|
204
|
+
background: [
|
|
205
|
+
`radial-gradient(circle at 18% 45%, color-mix(in srgb, ${color} ${textureStrength}%, transparent) 0 1px, transparent 1.5px)`,
|
|
206
|
+
`radial-gradient(circle at 68% 55%, color-mix(in srgb, ${color} ${textureStrength}%, transparent) 0 1px, transparent 1.5px)`,
|
|
207
|
+
`linear-gradient(90deg, color-mix(in srgb, ${color} ${strength}%, transparent), color-mix(in srgb, ${color} ${Math.max(strength - 10, 0)}%, transparent) 45%, color-mix(in srgb, ${color} ${strength}%, transparent))`,
|
|
208
|
+
].join(", "),
|
|
209
|
+
backgroundSize: "15px 8px, 21px 8px, 100% 100%",
|
|
210
|
+
backgroundPosition: `${offset % 15}px 0, -${offset % 21}px 0, 0 0`,
|
|
211
|
+
filter: `drop-shadow(0 1px 1px color-mix(in srgb, ${color} ${shadowStrength}%, transparent))`,
|
|
212
|
+
maskImage: `url("${squiggleUnderlineMask}")`,
|
|
213
|
+
maskRepeat: "repeat-x",
|
|
214
|
+
maskSize: "64px 8px",
|
|
215
|
+
maskPosition: `var(--comment-squiggle-offset) 0`,
|
|
216
|
+
WebkitMaskImage: `url("${squiggleUnderlineMask}")`,
|
|
217
|
+
WebkitMaskRepeat: "repeat-x",
|
|
218
|
+
WebkitMaskSize: "64px 8px",
|
|
219
|
+
WebkitMaskPosition: `var(--comment-squiggle-offset) 0`,
|
|
220
|
+
...(isSelected
|
|
221
|
+
? {
|
|
222
|
+
animation: "parhelia-comment-squiggle-pulse 3.2s ease-in-out infinite, parhelia-comment-squiggle-drift 8s linear infinite",
|
|
223
|
+
willChange: "background-position, mask-position, -webkit-mask-position, filter, opacity",
|
|
224
|
+
}
|
|
225
|
+
: {}),
|
|
226
|
+
};
|
|
227
|
+
return style;
|
|
228
|
+
}
|
|
229
|
+
function hashString(value) {
|
|
230
|
+
let hash = 0;
|
|
231
|
+
for (let i = 0; i < value.length; i++) {
|
|
232
|
+
hash = (hash * 31 + value.charCodeAt(i)) | 0;
|
|
233
|
+
}
|
|
234
|
+
return Math.abs(hash);
|
|
235
|
+
}
|
|
236
|
+
const squiggleUnderlineMask = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='8' viewBox='0 0 64 8'%3E%3Cpath d='M0 4.8 C 2.5 1.4 5.8 1.9 8.7 4.7 C 11.1 7 13.8 6.7 16.2 3.7 C 18.3 1 21.9 1.7 24.4 4.9 C 27.2 8.3 30.1 6 32.7 3.5 C 35 1.2 38 2.4 40.8 5.2 C 43.4 7.8 46.4 6.4 48.9 3.4 C 51.5 0.4 54.6 2.2 56.8 4.6 C 59.3 7.2 62 6.8 64 3.9' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M0 5.7 C 6 4.3 10 5.9 15 4.9 C 20.5 3.8 26 5.6 31 4.7 C 36.5 3.7 41.5 5.4 47 4.6 C 52.5 3.8 58 5.6 64 4.4' fill='none' stroke='black' stroke-opacity='.45' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E";
|
|
237
|
+
const commentHighlightingStyles = `
|
|
238
|
+
@keyframes parhelia-comment-squiggle-pulse {
|
|
239
|
+
0%, 100% {
|
|
240
|
+
opacity: 0.86;
|
|
241
|
+
filter: saturate(1);
|
|
242
|
+
}
|
|
243
|
+
50% {
|
|
244
|
+
opacity: 0.96;
|
|
245
|
+
filter: saturate(1.12) brightness(1.03);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
@keyframes parhelia-comment-squiggle-drift {
|
|
250
|
+
from {
|
|
251
|
+
background-position: 0 0, 0 0, 0 0;
|
|
252
|
+
mask-position: var(--comment-squiggle-offset) 0;
|
|
253
|
+
-webkit-mask-position: var(--comment-squiggle-offset) 0;
|
|
254
|
+
}
|
|
255
|
+
to {
|
|
256
|
+
background-position: 15px 0, -21px 0, 0 0;
|
|
257
|
+
mask-position: calc(var(--comment-squiggle-offset) + 64px) 0;
|
|
258
|
+
-webkit-mask-position: calc(var(--comment-squiggle-offset) + 64px) 0;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
`;
|
|
126
262
|
function resolveCommentRange(comment, fieldElement, iframeDocument) {
|
|
127
263
|
if (comment.rangeStart === undefined || comment.rangeEnd === undefined) {
|
|
128
264
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentHighlightings.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/CommentHighlightings.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommentHighlightings.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/CommentHighlightings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
import { createPortal } from "react-dom";
|
|
4
4
|
import { useEditContext, useFieldsEditContext, useEditContextRef, } from "../client/editContext";
|
|
5
|
-
import { getFieldDescriptorFromElement, hasFieldLock, getSessionWithFieldLock, } from "../utils";
|
|
5
|
+
import { findFieldElement, getFieldDescriptorFromElement, hasFieldLock, getSessionWithFieldLock, } from "../utils";
|
|
6
6
|
import { applyPatch, diffWords } from "diff";
|
|
7
7
|
import { createPatch } from "diff";
|
|
8
8
|
// import { useDebouncedCallback } from "use-debounce";
|
|
@@ -188,6 +188,8 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
188
188
|
const inlineFormatCommandsCacheRef = useRef(new Map());
|
|
189
189
|
const inlineFormatCommandsLoadingRef = useRef(new Set());
|
|
190
190
|
const inlineFormatPointerDownRef = useRef(false);
|
|
191
|
+
const caretUpdateFrameRef = useRef(null);
|
|
192
|
+
const lastSentCaretRef = useRef(null);
|
|
191
193
|
const refreshCompletion = useInlineAiCompletion({
|
|
192
194
|
pageViewContext,
|
|
193
195
|
cursorSpanId,
|
|
@@ -469,6 +471,55 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
469
471
|
element.contains(selection.focusNode));
|
|
470
472
|
};
|
|
471
473
|
const isElementActiveOrSelectedInIframe = (doc, element) => isElementActiveInIframe(doc, element) || isSelectionInsideElement(element);
|
|
474
|
+
const clearRemoteCaretPosition = () => {
|
|
475
|
+
if (caretUpdateFrameRef.current != null) {
|
|
476
|
+
window.cancelAnimationFrame(caretUpdateFrameRef.current);
|
|
477
|
+
caretUpdateFrameRef.current = null;
|
|
478
|
+
}
|
|
479
|
+
if (lastSentCaretRef.current === "clear")
|
|
480
|
+
return;
|
|
481
|
+
context.sendSocketMessage({
|
|
482
|
+
type: "caret-position",
|
|
483
|
+
payload: { offset: null },
|
|
484
|
+
});
|
|
485
|
+
lastSentCaretRef.current = "clear";
|
|
486
|
+
};
|
|
487
|
+
const scheduleCaretPositionUpdate = (element, fieldDescriptor) => {
|
|
488
|
+
if (caretUpdateFrameRef.current != null)
|
|
489
|
+
return;
|
|
490
|
+
caretUpdateFrameRef.current = window.requestAnimationFrame(() => {
|
|
491
|
+
caretUpdateFrameRef.current = null;
|
|
492
|
+
const iframeDocument = getAccessibleIframeDocument(pageViewContext.editorIframe);
|
|
493
|
+
if (!isElementActiveOrSelectedInIframe(iframeDocument, element)) {
|
|
494
|
+
clearRemoteCaretPosition();
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
const selection = getAccessibleIframeSelection(pageViewContext.editorIframe);
|
|
498
|
+
if (!selection || selection.rangeCount === 0 || !selection.isCollapsed) {
|
|
499
|
+
clearRemoteCaretPosition();
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
const caret = saveCaretPosition(element);
|
|
503
|
+
if (!caret || caret.startOffset !== caret.endOffset) {
|
|
504
|
+
clearRemoteCaretPosition();
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
const value = sanitizeEditableValue(element, element.getAttribute("data-is-richtext") === "true");
|
|
508
|
+
const nextKey = `${fieldDescriptor.fieldId}:${fieldDescriptor.item.id}:${fieldDescriptor.item.language}:${fieldDescriptor.item.version}:${caret.startOffset}:${value}`;
|
|
509
|
+
if (lastSentCaretRef.current === nextKey)
|
|
510
|
+
return;
|
|
511
|
+
context.sendSocketMessage({
|
|
512
|
+
type: "caret-position",
|
|
513
|
+
payload: {
|
|
514
|
+
fieldId: fieldDescriptor.fieldId,
|
|
515
|
+
item: fieldDescriptor.item,
|
|
516
|
+
offset: caret.startOffset,
|
|
517
|
+
value,
|
|
518
|
+
},
|
|
519
|
+
});
|
|
520
|
+
lastSentCaretRef.current = nextKey;
|
|
521
|
+
});
|
|
522
|
+
};
|
|
472
523
|
const isInlineFieldBeingEdited = (doc, element) => {
|
|
473
524
|
if (!doc || !element)
|
|
474
525
|
return false;
|
|
@@ -490,11 +541,32 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
490
541
|
selection.removeAllRanges();
|
|
491
542
|
selection.addRange(range);
|
|
492
543
|
};
|
|
544
|
+
function hasRemoteCaretForField({ fieldId, itemId, language, version, }) {
|
|
545
|
+
if (!fieldId || !itemId || !language || version == null)
|
|
546
|
+
return false;
|
|
547
|
+
return Object.values(contextRef.current?.remoteCarets ?? context.remoteCarets).some((caret) => caret.offset != null &&
|
|
548
|
+
caret.fieldId === fieldId &&
|
|
549
|
+
caret.item?.id === itemId &&
|
|
550
|
+
caret.item?.language === language &&
|
|
551
|
+
caret.item?.version === version);
|
|
552
|
+
}
|
|
493
553
|
// Helper: set innerHTML when content changes
|
|
494
554
|
function setInnerHTMLWithStackTrace(element, nextHTML, meta) {
|
|
495
555
|
const prevHTML = element.innerHTML ?? "";
|
|
496
556
|
if (prevHTML === nextHTML)
|
|
497
557
|
return false;
|
|
558
|
+
if (meta.source !== "remote-caret:value" &&
|
|
559
|
+
hasRemoteCaretForField({
|
|
560
|
+
fieldId: meta.fieldId ?? element.getAttribute("data-fieldid"),
|
|
561
|
+
itemId: meta.itemId ?? element.getAttribute("data-itemid"),
|
|
562
|
+
language: meta.language ?? element.getAttribute("data-language"),
|
|
563
|
+
version: meta.version ??
|
|
564
|
+
(element.getAttribute("data-version")
|
|
565
|
+
? parseInt(element.getAttribute("data-version"), 10)
|
|
566
|
+
: null),
|
|
567
|
+
})) {
|
|
568
|
+
return false;
|
|
569
|
+
}
|
|
498
570
|
if (contextRef.current?.mode === "suggestions") {
|
|
499
571
|
const iframeDocument = getAccessibleIframeDocument(pageViewContext.editorIframe);
|
|
500
572
|
const iframeHasFocus = pageViewContext.editorIframe?.ownerDocument.activeElement ===
|
|
@@ -558,6 +630,19 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
558
630
|
// }
|
|
559
631
|
return true;
|
|
560
632
|
}
|
|
633
|
+
function setEditableElementValue(element, nextValue, isRichText, meta) {
|
|
634
|
+
if (isRichText) {
|
|
635
|
+
return setInnerHTMLWithStackTrace(element, nextValue, meta);
|
|
636
|
+
}
|
|
637
|
+
if ((element.innerText ?? "") === nextValue)
|
|
638
|
+
return false;
|
|
639
|
+
isUpdatingRef.current = true;
|
|
640
|
+
element.innerText = nextValue;
|
|
641
|
+
setTimeout(() => {
|
|
642
|
+
isUpdatingRef.current = false;
|
|
643
|
+
}, 0);
|
|
644
|
+
return true;
|
|
645
|
+
}
|
|
561
646
|
function isCurrentInlineEditSource(sourceElement, key) {
|
|
562
647
|
if (!sourceElement.isConnected)
|
|
563
648
|
return false;
|
|
@@ -649,6 +734,41 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
649
734
|
}
|
|
650
735
|
return currentValue;
|
|
651
736
|
};
|
|
737
|
+
useEffect(() => {
|
|
738
|
+
const editorIframe = pageViewContext.editorIframe;
|
|
739
|
+
if (compareView || !editorIframe)
|
|
740
|
+
return;
|
|
741
|
+
context.activeSessions.forEach((session) => {
|
|
742
|
+
if (session.sessionId === context.sessionId || !session.fieldLock)
|
|
743
|
+
return;
|
|
744
|
+
const remoteCaret = context.remoteCarets[session.sessionId];
|
|
745
|
+
if (remoteCaret?.value == null)
|
|
746
|
+
return;
|
|
747
|
+
const caretMatchesLock = remoteCaret.fieldId === session.fieldLock.fieldId &&
|
|
748
|
+
remoteCaret.item?.id === session.fieldLock.item.id &&
|
|
749
|
+
remoteCaret.item?.language === session.fieldLock.item.language &&
|
|
750
|
+
remoteCaret.item?.version === session.fieldLock.item.version;
|
|
751
|
+
if (!caretMatchesLock)
|
|
752
|
+
return;
|
|
753
|
+
const element = findFieldElement(editorIframe, session.fieldLock);
|
|
754
|
+
if (!element || element === modifiedFieldsContext?.inlineEditingFieldElement)
|
|
755
|
+
return;
|
|
756
|
+
setEditableElementValue(element, remoteCaret.value, element.getAttribute("data-is-richtext") === "true", {
|
|
757
|
+
source: "remote-caret:value",
|
|
758
|
+
fieldId: session.fieldLock.fieldId,
|
|
759
|
+
itemId: session.fieldLock.item.id,
|
|
760
|
+
language: session.fieldLock.item.language,
|
|
761
|
+
version: session.fieldLock.item.version,
|
|
762
|
+
});
|
|
763
|
+
});
|
|
764
|
+
}, [
|
|
765
|
+
compareView,
|
|
766
|
+
context.activeSessions,
|
|
767
|
+
context.remoteCarets,
|
|
768
|
+
context.sessionId,
|
|
769
|
+
modifiedFieldsContext?.inlineEditingFieldElement,
|
|
770
|
+
pageViewContext.editorIframe,
|
|
771
|
+
]);
|
|
652
772
|
useEffect(() => {
|
|
653
773
|
if (compareView || context.mode === "preview")
|
|
654
774
|
return;
|
|
@@ -835,6 +955,7 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
835
955
|
fromUserInput: true,
|
|
836
956
|
source: "input",
|
|
837
957
|
});
|
|
958
|
+
scheduleCaretPositionUpdate(element, fieldDescriptor);
|
|
838
959
|
};
|
|
839
960
|
element.addEventListener("input", inputHandler);
|
|
840
961
|
// Setup a more robust mutation observer
|
|
@@ -904,19 +1025,29 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
904
1025
|
};
|
|
905
1026
|
focusIfNeeded();
|
|
906
1027
|
setTimeout(focusIfNeeded, 50);
|
|
1028
|
+
scheduleCaretPositionUpdate(element, fieldDescriptor);
|
|
907
1029
|
// Initial cursor placement
|
|
908
1030
|
// setTimeout(updateCursorSpan, 10);
|
|
909
1031
|
// Add listener for selection changes
|
|
910
1032
|
if (iframeWindow) {
|
|
911
1033
|
const selectionChangeHandler = () => {
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
1034
|
+
scheduleCaretPositionUpdate(element, fieldDescriptor);
|
|
1035
|
+
};
|
|
1036
|
+
const keyOrMouseHandler = () => {
|
|
1037
|
+
scheduleCaretPositionUpdate(element, fieldDescriptor);
|
|
1038
|
+
};
|
|
1039
|
+
const blurHandler = () => {
|
|
1040
|
+
clearRemoteCaretPosition();
|
|
916
1041
|
};
|
|
917
1042
|
iframeWindow.document.addEventListener("selectionchange", selectionChangeHandler);
|
|
1043
|
+
iframeWindow.document.addEventListener("keyup", keyOrMouseHandler);
|
|
1044
|
+
iframeWindow.document.addEventListener("mouseup", keyOrMouseHandler);
|
|
1045
|
+
element.addEventListener("blur", blurHandler);
|
|
918
1046
|
selectionChangeListenerRef.current = () => {
|
|
919
1047
|
iframeWindow.document.removeEventListener("selectionchange", selectionChangeHandler);
|
|
1048
|
+
iframeWindow.document.removeEventListener("keyup", keyOrMouseHandler);
|
|
1049
|
+
iframeWindow.document.removeEventListener("mouseup", keyOrMouseHandler);
|
|
1050
|
+
element.removeEventListener("blur", blurHandler);
|
|
920
1051
|
};
|
|
921
1052
|
mutationObserverRef.current.observe(element, {
|
|
922
1053
|
childList: true, // observe direct children changes
|
|
@@ -940,6 +1071,7 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
940
1071
|
if (cursorElement) {
|
|
941
1072
|
cursorElement.parentNode?.removeChild(cursorElement);
|
|
942
1073
|
}
|
|
1074
|
+
clearRemoteCaretPosition();
|
|
943
1075
|
};
|
|
944
1076
|
}
|
|
945
1077
|
}
|
|
@@ -1053,6 +1185,7 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
1053
1185
|
if (cursorElement) {
|
|
1054
1186
|
cursorElement.parentNode?.removeChild(cursorElement);
|
|
1055
1187
|
}
|
|
1188
|
+
clearRemoteCaretPosition();
|
|
1056
1189
|
};
|
|
1057
1190
|
}, [context.mode, modifiedFieldsContext?.inlineEditingFieldElement]);
|
|
1058
1191
|
function saveCaretPosition(editableElement) {
|
|
@@ -1376,6 +1509,7 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
1376
1509
|
pageViewContext.page,
|
|
1377
1510
|
context.showSuggestedEditsDiff,
|
|
1378
1511
|
context.showSuggestedEdits,
|
|
1512
|
+
context.remoteCarets,
|
|
1379
1513
|
]);
|
|
1380
1514
|
useEffect(() => {
|
|
1381
1515
|
if (!context || compareView)
|
|
@@ -1466,7 +1600,12 @@ function InlineEditorContent({ pageViewContext, compareView, context, }) {
|
|
|
1466
1600
|
});
|
|
1467
1601
|
}
|
|
1468
1602
|
});
|
|
1469
|
-
}, [
|
|
1603
|
+
}, [
|
|
1604
|
+
context.mode,
|
|
1605
|
+
context.showSuggestedEdits,
|
|
1606
|
+
context.suggestedEdits,
|
|
1607
|
+
context.remoteCarets,
|
|
1608
|
+
]);
|
|
1470
1609
|
useEffect(() => {
|
|
1471
1610
|
if (compareView || context.mode === "preview") {
|
|
1472
1611
|
hideInlineFormatOverlay();
|