This commit is contained in:
2026-01-27 00:59:37 +01:00
parent 348149722e
commit f239694a4c
2 changed files with 45 additions and 20 deletions

View File

@@ -1 +1 @@
1.1.12
1.1.13

View File

@@ -429,14 +429,8 @@
const body = editor.Canvas && editor.Canvas.getBody && editor.Canvas.getBody();
if (!body || body.__bridgeBlurLoggerBound) return;
body.__bridgeBlurLoggerBound = true;
const logBlur = (evt) => {
const target = evt && evt.target;
if (!target) return;
const isEditable = !!(target.isContentEditable || (target.getAttribute && target.getAttribute('contenteditable') === 'true'));
if (!isEditable) return;
const selected = editor.getSelected && editor.getSelected();
const selectedEl = selected && selected.view && selected.view.el;
const inSelected = !!(selectedEl && (selectedEl === target || selectedEl.contains(target)));
const focusSnapshots = new WeakMap();
const buildSnapshot = (target, selected, selectedEl, editorHtml) => {
let modelContent = '';
try {
modelContent = selected && selected.get ? String(selected.get('content') || '') : '';
@@ -445,27 +439,58 @@
try {
viewOuter = selectedEl ? String(selectedEl.outerHTML || '') : '';
} catch {}
return {
tag: target && target.tagName,
htmlLen: String(target && target.innerHTML || '').length,
textLen: String(target && target.textContent || '').length,
modelType: selected && selected.get ? selected.get('type') : undefined,
modelId: selected && (selected.getId ? selected.getId() : selected.get && selected.get('id')),
modelContentLen: modelContent.length,
modelContent: modelContent.slice(0, 1000),
viewOuterLen: viewOuter.length,
viewOuter: viewOuter.slice(0, 1000),
editorHtmlLen: editorHtml.length,
editorHtml: editorHtml.slice(0, 1000),
};
};
const logBlur = (evt) => {
const target = evt && evt.target;
if (!target) return;
const isEditable = !!(target.isContentEditable || (target.getAttribute && target.getAttribute('contenteditable') === 'true'));
if (!isEditable) return;
const selected = editor.getSelected && editor.getSelected();
const selectedEl = selected && selected.view && selected.view.el;
const inSelected = !!(selectedEl && (selectedEl === target || selectedEl.contains(target)));
let editorHtml = '';
try {
editorHtml = editor && typeof editor.getHtml === 'function' ? String(editor.getHtml() || '') : '';
} catch {}
try {
const before = focusSnapshots.get(target);
const after = buildSnapshot(target, selected, selectedEl, editorHtml);
console.warn('[BLUR LOG]', {
tag: target.tagName,
htmlLen: String(target.innerHTML || '').length,
textLen: String(target.textContent || '').length,
modelType: selected && selected.get ? selected.get('type') : undefined,
modelId: selected && (selected.getId ? selected.getId() : selected.get && selected.get('id')),
modelContentLen: modelContent.length,
modelContent: modelContent.slice(0, 1000),
inSelected,
viewOuterLen: viewOuter.length,
viewOuter: viewOuter.slice(0, 1000),
editorHtmlLen: editorHtml.length,
editorHtml: editorHtml.slice(0, 1000),
before,
after,
});
} catch {}
};
const logFocus = (evt) => {
const target = evt && evt.target;
if (!target) return;
const isEditable = !!(target.isContentEditable || (target.getAttribute && target.getAttribute('contenteditable') === 'true'));
if (!isEditable) return;
const selected = editor.getSelected && editor.getSelected();
const selectedEl = selected && selected.view && selected.view.el;
let editorHtml = '';
try {
editorHtml = editor && typeof editor.getHtml === 'function' ? String(editor.getHtml() || '') : '';
} catch {}
try {
focusSnapshots.set(target, buildSnapshot(target, selected, selectedEl, editorHtml));
} catch {}
};
body.addEventListener('focusin', logFocus, true);
body.addEventListener('blur', logBlur, true);
body.addEventListener('focusout', logBlur, true);
});