@harbour-enterprises/superdoc 0.21.0-next.7 → 0.21.0
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/chunks/{PdfViewer-B8R1j6LP.es.js → PdfViewer-D3zo7tPo.es.js} +1 -1
- package/dist/chunks/{PdfViewer-DWWRw_re.cjs → PdfViewer-OZDJ7gwT.cjs} +1 -1
- package/dist/chunks/{index-Bpp8Ruyf.cjs → index-CfYf4T_z.cjs} +3 -4
- package/dist/chunks/{index-CLGEbkfW.es.js → index-MzW5BVNd.es.js} +3 -4
- package/dist/chunks/{super-editor.es-DWm41myg.es.js → super-editor.es-Bntob7Wd.es.js} +761 -1155
- package/dist/chunks/{super-editor.es-aBw27Tag.cjs → super-editor.es-U-GVCd_F.cjs} +761 -1155
- package/dist/core/types/index.d.ts +0 -8
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/style.css +27 -32
- package/dist/super-editor/ai-writer.es.js +2 -2
- package/dist/super-editor/chunks/{converter-DYAHhSrg.js → converter-3xnF_NHq.js} +643 -773
- package/dist/super-editor/chunks/{docx-zipper-BDbCmfbE.js → docx-zipper-CZdELYi-.js} +1 -1
- package/dist/super-editor/chunks/{editor-VW8eKYoK.js → editor-BqYH4kDD.js} +2 -4
- package/dist/super-editor/chunks/{toolbar-B1up5fYV.js → toolbar-TkaE2kKM.js} +2 -2
- package/dist/super-editor/converter.es.js +1 -1
- package/dist/super-editor/docx-zipper.es.js +2 -2
- package/dist/super-editor/editor.es.js +3 -3
- package/dist/super-editor/file-zipper.es.js +1 -1
- package/dist/super-editor/src/components/slash-menu/menuItems.d.ts +1 -5
- package/dist/super-editor/src/components/slash-menu/utils.d.ts +2 -9
- package/dist/super-editor/src/extensions/run-item/index.d.ts +1 -0
- package/dist/super-editor/src/extensions/run-item/run-item.d.ts +26 -0
- package/dist/super-editor/src/tests/helpers/helpers.d.ts +0 -1
- package/dist/super-editor/style.css +0 -5
- package/dist/super-editor/super-editor.es.js +151 -452
- package/dist/super-editor/toolbar.es.js +2 -2
- package/dist/super-editor.cjs +1 -1
- package/dist/super-editor.es.js +1 -1
- package/dist/superdoc.cjs +2 -2
- package/dist/superdoc.es.js +2 -2
- package/dist/superdoc.umd.js +762 -1157
- package/dist/superdoc.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/super-editor/src/components/slash-menu/tests/testHelpers.d.ts +0 -466
- package/dist/super-editor/src/core/commands/__tests__/schemaWithLists.d.ts +0 -2
- package/dist/super-editor/src/core/commands/__tests__/testHelpers.d.ts +0 -4
- package/dist/super-editor/src/core/commands/__tests__/testSchema.d.ts +0 -2
- package/dist/super-editor/src/core/commands/tests/commandTestUtils.d.ts +0 -7
- package/dist/super-editor/src/core/commands/tests/test-schema.d.ts +0 -2
- package/dist/super-editor/src/core/super-converter/v3/handlers/mc/altermateContent/alternate-content-translator.d.ts +0 -6
- package/dist/super-editor/src/core/super-converter/v3/handlers/mc/altermateContent/index.d.ts +0 -1
|
@@ -9,14 +9,14 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
|
|
|
9
9
|
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
10
10
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
11
11
|
var _SuperToolbar_instances, initToolbarGroups_fn, _interceptedCommands, makeToolbarItems_fn, initDefaultFonts_fn, updateHighlightColors_fn, deactivateAll_fn, updateToolbarHistory_fn, runCommandWithArgumentOnly_fn;
|
|
12
|
-
import { av as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, ay as vClickOutside, H as findParentNode, az as getActiveFormatting, ap as isInTable, aA as readFromClipboard, aB as handleClipboardPaste, aC as getFileObject, aD as runPropertyTranslators, aE as translator, aF as translator$1, aG as translator$2, aH as translator$3, aI as translator$4, aJ as translator$5, aK as translator$6, aL as translator$7, aM as translator$8, aN as translator$9, aO as translator$a, aP as translator$b, aQ as translator$c, aR as translator$d, aS as translator$e, aT as translator$f, aU as translator$g, aV as translator$h, aW as translator$i, aX as translator$j, aY as translator$k, aZ as translator$l, a_ as translator$m, a$ as translator$n, b0 as translator$o, b1 as translator$p,
|
|
13
|
-
import {
|
|
14
|
-
import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, y as yUndoPluginKey, f as undoDepth, h as redoDepth, S as SlashMenuPluginKey, E as Editor, i as getStarterExtensions, P as Placeholder, j as getRichTextExtensions, M as Mark, k as Extension, A as Attribute, N as Node } from "./chunks/editor-
|
|
15
|
-
import { n, C, o, T, l, p, m } from "./chunks/editor-
|
|
12
|
+
import { av as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, ay as vClickOutside, H as findParentNode, az as getActiveFormatting, ap as isInTable, aA as readFromClipboard, aB as handleClipboardPaste, aC as getFileObject, aD as runPropertyTranslators, aE as translator, aF as translator$1, aG as translator$2, aH as translator$3, aI as translator$4, aJ as translator$5, aK as translator$6, aL as translator$7, aM as translator$8, aN as translator$9, aO as translator$a, aP as translator$b, aQ as translator$c, aR as translator$d, aS as translator$e, aT as translator$f, aU as translator$g, aV as translator$h, aW as translator$i, aX as translator$j, aY as translator$k, aZ as translator$l, a_ as translator$m, a$ as translator$n, b0 as translator$o, b1 as translator$p, a as Plugin } from "./chunks/converter-3xnF_NHq.js";
|
|
13
|
+
import { b2, a5, i, a2 } from "./chunks/converter-3xnF_NHq.js";
|
|
14
|
+
import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, y as yUndoPluginKey, f as undoDepth, h as redoDepth, S as SlashMenuPluginKey, E as Editor, i as getStarterExtensions, P as Placeholder, j as getRichTextExtensions, M as Mark, k as Extension, A as Attribute, N as Node } from "./chunks/editor-BqYH4kDD.js";
|
|
15
|
+
import { n, C, o, T, l, p, m } from "./chunks/editor-BqYH4kDD.js";
|
|
16
16
|
import { ref, onMounted, createElementBlock, openBlock, normalizeClass, unref, Fragment, renderList, createElementVNode, withModifiers, toDisplayString, createCommentVNode, normalizeStyle, computed, watch, withDirectives, withKeys, vModelText, createTextVNode, createVNode, h, createApp, markRaw, nextTick, onBeforeUnmount, reactive, onUnmounted, renderSlot, shallowRef, createBlock, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps } from "vue";
|
|
17
|
-
import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, m as magicWandIcon, p as plusIconSvg, a as trashIconSvg, l as linkIconSvg, b as tableIconSvg, c as scissorsIconSvg, d as copyIconSvg, e as pasteIconSvg, f as borderNoneIconSvg, g as arrowsToDotIconSvg, h as arrowsLeftRightIconSvg, w as wrenchIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-
|
|
17
|
+
import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, m as magicWandIcon, p as plusIconSvg, a as trashIconSvg, l as linkIconSvg, b as tableIconSvg, c as scissorsIconSvg, d as copyIconSvg, e as pasteIconSvg, f as borderNoneIconSvg, g as arrowsToDotIconSvg, h as arrowsLeftRightIconSvg, w as wrenchIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-TkaE2kKM.js";
|
|
18
18
|
import AIWriter from "./ai-writer.es.js";
|
|
19
|
-
import { D } from "./chunks/docx-zipper-
|
|
19
|
+
import { D } from "./chunks/docx-zipper-CZdELYi-.js";
|
|
20
20
|
import { createZip } from "./file-zipper.es.js";
|
|
21
21
|
var eventemitter3 = { exports: {} };
|
|
22
22
|
var hasRequiredEventemitter3;
|
|
@@ -3208,115 +3208,6 @@ runCommandWithArgumentOnly_fn = function({ item, argument, noArgumentCallback =
|
|
|
3208
3208
|
this.updateToolbarState();
|
|
3209
3209
|
}
|
|
3210
3210
|
};
|
|
3211
|
-
const onMarginClickCursorChange = (event, editor) => {
|
|
3212
|
-
const y = event.clientY;
|
|
3213
|
-
const x = event.clientX;
|
|
3214
|
-
const { view } = editor;
|
|
3215
|
-
const editorRect = view.dom.getBoundingClientRect();
|
|
3216
|
-
let coords = {
|
|
3217
|
-
left: 0,
|
|
3218
|
-
top: y
|
|
3219
|
-
};
|
|
3220
|
-
let isRightMargin = false;
|
|
3221
|
-
if (x > editorRect.right) {
|
|
3222
|
-
coords.left = editorRect.left + editorRect.width - 1;
|
|
3223
|
-
isRightMargin = true;
|
|
3224
|
-
} else if (x < editorRect.left) {
|
|
3225
|
-
coords.left = editorRect.left;
|
|
3226
|
-
}
|
|
3227
|
-
const pos = view.posAtCoords(coords)?.pos;
|
|
3228
|
-
if (pos) {
|
|
3229
|
-
let cursorPos = pos;
|
|
3230
|
-
if (isRightMargin) {
|
|
3231
|
-
const $pos = view.state.doc.resolve(pos);
|
|
3232
|
-
const charOffset = $pos.textOffset;
|
|
3233
|
-
const node = view.state.doc.nodeAt(pos);
|
|
3234
|
-
const text = node?.text;
|
|
3235
|
-
const charAtPos = text?.charAt(charOffset);
|
|
3236
|
-
cursorPos = node?.isText && charAtPos !== " " ? pos - 1 : pos;
|
|
3237
|
-
}
|
|
3238
|
-
const transaction = view.state.tr.setSelection(TextSelection$1.create(view.state.doc, cursorPos));
|
|
3239
|
-
view.dispatch(transaction);
|
|
3240
|
-
view.focus();
|
|
3241
|
-
}
|
|
3242
|
-
};
|
|
3243
|
-
const checkNodeSpecificClicks = (editor, event, popoverControls) => {
|
|
3244
|
-
if (!editor) return;
|
|
3245
|
-
if (selectionHasNodeOrMark(editor.view.state, "link", { requireEnds: true })) {
|
|
3246
|
-
popoverControls.component = LinkInput;
|
|
3247
|
-
popoverControls.position = {
|
|
3248
|
-
left: `${event.clientX - editor.element.getBoundingClientRect().left}px`,
|
|
3249
|
-
top: `${event.clientY - editor.element.getBoundingClientRect().top + 15}px`
|
|
3250
|
-
};
|
|
3251
|
-
popoverControls.props = {
|
|
3252
|
-
showInput: true
|
|
3253
|
-
};
|
|
3254
|
-
popoverControls.visible = true;
|
|
3255
|
-
}
|
|
3256
|
-
};
|
|
3257
|
-
function selectionHasNodeOrMark(state, name, options = {}) {
|
|
3258
|
-
const { requireEnds = false } = options;
|
|
3259
|
-
const $from = state.selection.$from;
|
|
3260
|
-
const $to = state.selection.$to;
|
|
3261
|
-
if (requireEnds) {
|
|
3262
|
-
for (let d = $from.depth; d > 0; d--) {
|
|
3263
|
-
if ($from.node(d).type.name === name) {
|
|
3264
|
-
return true;
|
|
3265
|
-
}
|
|
3266
|
-
}
|
|
3267
|
-
for (let d = $to.depth; d > 0; d--) {
|
|
3268
|
-
if ($to.node(d).type.name === name) {
|
|
3269
|
-
return true;
|
|
3270
|
-
}
|
|
3271
|
-
}
|
|
3272
|
-
} else {
|
|
3273
|
-
for (let d = $from.depth; d > 0; d--) {
|
|
3274
|
-
if ($from.node(d).type.name === name) {
|
|
3275
|
-
return true;
|
|
3276
|
-
}
|
|
3277
|
-
}
|
|
3278
|
-
}
|
|
3279
|
-
const markType = state.schema.marks[name];
|
|
3280
|
-
if (markType) {
|
|
3281
|
-
const { from, to, empty } = state.selection;
|
|
3282
|
-
if (requireEnds) {
|
|
3283
|
-
const fromMarks = markType.isInSet($from.marks());
|
|
3284
|
-
const toMarks = markType.isInSet($to.marks());
|
|
3285
|
-
if (fromMarks || toMarks) {
|
|
3286
|
-
return true;
|
|
3287
|
-
}
|
|
3288
|
-
if (empty && markType.isInSet(state.storedMarks || $from.marks())) {
|
|
3289
|
-
return true;
|
|
3290
|
-
}
|
|
3291
|
-
} else {
|
|
3292
|
-
if (empty) {
|
|
3293
|
-
if (markType.isInSet(state.storedMarks || $from.marks())) {
|
|
3294
|
-
return true;
|
|
3295
|
-
}
|
|
3296
|
-
} else {
|
|
3297
|
-
let hasMark = false;
|
|
3298
|
-
state.doc.nodesBetween(from, to, (node) => {
|
|
3299
|
-
if (markType.isInSet(node.marks)) {
|
|
3300
|
-
hasMark = true;
|
|
3301
|
-
return false;
|
|
3302
|
-
}
|
|
3303
|
-
});
|
|
3304
|
-
if (hasMark) return true;
|
|
3305
|
-
}
|
|
3306
|
-
}
|
|
3307
|
-
}
|
|
3308
|
-
return false;
|
|
3309
|
-
}
|
|
3310
|
-
function moveCursorToMouseEvent(event, editor) {
|
|
3311
|
-
const { view } = editor;
|
|
3312
|
-
const coords = { left: event.clientX, top: event.clientY };
|
|
3313
|
-
const pos = view.posAtCoords(coords)?.pos;
|
|
3314
|
-
if (typeof pos === "number") {
|
|
3315
|
-
const tr = view.state.tr.setSelection(TextSelection$1.create(view.state.doc, pos));
|
|
3316
|
-
view.dispatch(tr);
|
|
3317
|
-
view.focus();
|
|
3318
|
-
}
|
|
3319
|
-
}
|
|
3320
3211
|
const ICONS = {
|
|
3321
3212
|
addRowBefore: plusIconSvg,
|
|
3322
3213
|
addRowAfter: plusIconSvg,
|
|
@@ -3516,30 +3407,6 @@ const getPropsByItemId = (itemId, props) => {
|
|
|
3516
3407
|
return baseProps;
|
|
3517
3408
|
}
|
|
3518
3409
|
};
|
|
3519
|
-
function normalizeClipboardContent(rawClipboardContent) {
|
|
3520
|
-
if (!rawClipboardContent) {
|
|
3521
|
-
return {
|
|
3522
|
-
html: null,
|
|
3523
|
-
text: null,
|
|
3524
|
-
hasContent: false,
|
|
3525
|
-
raw: null
|
|
3526
|
-
};
|
|
3527
|
-
}
|
|
3528
|
-
const html = typeof rawClipboardContent.html === "string" ? rawClipboardContent.html : null;
|
|
3529
|
-
const text = typeof rawClipboardContent.text === "string" ? rawClipboardContent.text : null;
|
|
3530
|
-
const hasHtml = !!html && html.trim().length > 0;
|
|
3531
|
-
const hasText = !!text && text.length > 0;
|
|
3532
|
-
const isObject = typeof rawClipboardContent === "object" && rawClipboardContent !== null;
|
|
3533
|
-
const fragmentSize = typeof rawClipboardContent.size === "number" ? rawClipboardContent.size : null;
|
|
3534
|
-
const nestedSize = isObject && rawClipboardContent.content && typeof rawClipboardContent.content.size === "number" ? rawClipboardContent.content.size : null;
|
|
3535
|
-
const hasFragmentContent = (fragmentSize ?? nestedSize ?? 0) > 0;
|
|
3536
|
-
return {
|
|
3537
|
-
html,
|
|
3538
|
-
text,
|
|
3539
|
-
hasContent: hasHtml || hasText || hasFragmentContent,
|
|
3540
|
-
raw: rawClipboardContent
|
|
3541
|
-
};
|
|
3542
|
-
}
|
|
3543
3410
|
async function getEditorContext(editor, event) {
|
|
3544
3411
|
const { view } = editor;
|
|
3545
3412
|
const { state } = view;
|
|
@@ -3555,144 +3422,123 @@ async function getEditorContext(editor, event) {
|
|
|
3555
3422
|
pos = from;
|
|
3556
3423
|
node = state.doc.nodeAt(pos);
|
|
3557
3424
|
}
|
|
3558
|
-
const
|
|
3559
|
-
const clipboardContent = normalizeClipboardContent(rawClipboardContent);
|
|
3560
|
-
const structureFromResolvedPos = pos !== null ? getStructureFromResolvedPos(state, pos) : null;
|
|
3561
|
-
const isInTable2 = structureFromResolvedPos?.isInTable ?? selectionHasNodeOrMark(state, "table", { requireEnds: true });
|
|
3562
|
-
const isInList = structureFromResolvedPos?.isInList ?? (selectionHasNodeOrMark(state, "bulletList", { requireEnds: false }) || selectionHasNodeOrMark(state, "orderedList", { requireEnds: false }));
|
|
3563
|
-
const isInSectionNode = structureFromResolvedPos?.isInSectionNode ?? selectionHasNodeOrMark(state, "documentSection", { requireEnds: true });
|
|
3564
|
-
const currentNodeType = node?.type?.name || null;
|
|
3565
|
-
const activeMarks = [];
|
|
3566
|
-
if (event && pos !== null) {
|
|
3567
|
-
const $pos = state.doc.resolve(pos);
|
|
3568
|
-
if ($pos.marks && typeof $pos.marks === "function") {
|
|
3569
|
-
$pos.marks().forEach((mark) => activeMarks.push(mark.type.name));
|
|
3570
|
-
}
|
|
3571
|
-
if (node && node.marks) {
|
|
3572
|
-
node.marks.forEach((mark) => activeMarks.push(mark.type.name));
|
|
3573
|
-
}
|
|
3574
|
-
} else {
|
|
3575
|
-
state.storedMarks?.forEach((mark) => activeMarks.push(mark.type.name));
|
|
3576
|
-
state.selection.$head.marks().forEach((mark) => activeMarks.push(mark.type.name));
|
|
3577
|
-
}
|
|
3578
|
-
const isTrackedChange = activeMarks.includes("trackInsert") || activeMarks.includes("trackDelete");
|
|
3579
|
-
let trackedChangeId = null;
|
|
3580
|
-
if (isTrackedChange && event && pos !== null) {
|
|
3581
|
-
const $pos = state.doc.resolve(pos);
|
|
3582
|
-
const marksAtPos = $pos.marks();
|
|
3583
|
-
const trackedMark = marksAtPos.find((mark) => mark.type.name === "trackInsert" || mark.type.name === "trackDelete");
|
|
3584
|
-
if (trackedMark) {
|
|
3585
|
-
trackedChangeId = trackedMark.attrs.id;
|
|
3586
|
-
}
|
|
3587
|
-
}
|
|
3588
|
-
const cursorCoords = pos ? view.coordsAtPos(pos) : null;
|
|
3589
|
-
const cursorPosition = cursorCoords ? {
|
|
3590
|
-
x: cursorCoords.left,
|
|
3591
|
-
y: cursorCoords.top
|
|
3592
|
-
} : null;
|
|
3425
|
+
const clipboardContent = await readFromClipboard(state);
|
|
3593
3426
|
return {
|
|
3594
|
-
|
|
3427
|
+
editor,
|
|
3595
3428
|
selectedText,
|
|
3596
|
-
hasSelection: !empty,
|
|
3597
|
-
selectionStart: from,
|
|
3598
|
-
selectionEnd: to,
|
|
3599
|
-
// Document structure
|
|
3600
|
-
isInTable: isInTable2,
|
|
3601
|
-
isInList,
|
|
3602
|
-
isInSectionNode,
|
|
3603
|
-
currentNodeType,
|
|
3604
|
-
activeMarks,
|
|
3605
|
-
// Document state
|
|
3606
|
-
isTrackedChange,
|
|
3607
|
-
trackedChangeId,
|
|
3608
|
-
documentMode: editor.options?.documentMode || "editing",
|
|
3609
|
-
canUndo: computeCanUndo(editor, state),
|
|
3610
|
-
canRedo: computeCanRedo(editor, state),
|
|
3611
|
-
isEditable: editor.isEditable,
|
|
3612
|
-
// Clipboard
|
|
3613
|
-
clipboardContent,
|
|
3614
|
-
// Position and trigger info
|
|
3615
|
-
cursorPosition,
|
|
3616
3429
|
pos,
|
|
3617
3430
|
node,
|
|
3618
3431
|
event,
|
|
3619
|
-
|
|
3620
|
-
editor
|
|
3432
|
+
clipboardContent
|
|
3621
3433
|
};
|
|
3622
3434
|
}
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
3632
|
-
|
|
3435
|
+
const onMarginClickCursorChange = (event, editor) => {
|
|
3436
|
+
const y = event.clientY;
|
|
3437
|
+
const x = event.clientX;
|
|
3438
|
+
const { view } = editor;
|
|
3439
|
+
const editorRect = view.dom.getBoundingClientRect();
|
|
3440
|
+
let coords = {
|
|
3441
|
+
left: 0,
|
|
3442
|
+
top: y
|
|
3443
|
+
};
|
|
3444
|
+
let isRightMargin = false;
|
|
3445
|
+
if (x > editorRect.right) {
|
|
3446
|
+
coords.left = editorRect.left + editorRect.width - 1;
|
|
3447
|
+
isRightMargin = true;
|
|
3448
|
+
} else if (x < editorRect.left) {
|
|
3449
|
+
coords.left = editorRect.left;
|
|
3633
3450
|
}
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3451
|
+
const pos = view.posAtCoords(coords)?.pos;
|
|
3452
|
+
if (pos) {
|
|
3453
|
+
let cursorPos = pos;
|
|
3454
|
+
if (isRightMargin) {
|
|
3455
|
+
const $pos = view.state.doc.resolve(pos);
|
|
3456
|
+
const charOffset = $pos.textOffset;
|
|
3457
|
+
const node = view.state.doc.nodeAt(pos);
|
|
3458
|
+
const text = node?.text;
|
|
3459
|
+
const charAtPos = text?.charAt(charOffset);
|
|
3460
|
+
cursorPos = node?.isText && charAtPos !== " " ? pos - 1 : pos;
|
|
3640
3461
|
}
|
|
3462
|
+
const transaction = view.state.tr.setSelection(TextSelection$1.create(view.state.doc, cursorPos));
|
|
3463
|
+
view.dispatch(transaction);
|
|
3464
|
+
view.focus();
|
|
3641
3465
|
}
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3466
|
+
};
|
|
3467
|
+
const checkNodeSpecificClicks = (editor, event, popoverControls) => {
|
|
3468
|
+
if (!editor) return;
|
|
3469
|
+
if (selectionHasNodeOrMark(editor.view.state, "link", { requireEnds: true })) {
|
|
3470
|
+
popoverControls.component = LinkInput;
|
|
3471
|
+
popoverControls.position = {
|
|
3472
|
+
left: `${event.clientX - editor.element.getBoundingClientRect().left}px`,
|
|
3473
|
+
top: `${event.clientY - editor.element.getBoundingClientRect().top + 15}px`
|
|
3474
|
+
};
|
|
3475
|
+
popoverControls.props = {
|
|
3476
|
+
showInput: true
|
|
3477
|
+
};
|
|
3478
|
+
popoverControls.visible = true;
|
|
3647
3479
|
}
|
|
3648
|
-
}
|
|
3649
|
-
function
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3480
|
+
};
|
|
3481
|
+
function selectionHasNodeOrMark(state, name, options = {}) {
|
|
3482
|
+
const { requireEnds = false } = options;
|
|
3483
|
+
const $from = state.selection.$from;
|
|
3484
|
+
const $to = state.selection.$to;
|
|
3485
|
+
if (requireEnds) {
|
|
3486
|
+
for (let d = $from.depth; d > 0; d--) {
|
|
3487
|
+
if ($from.node(d).type.name === name) {
|
|
3488
|
+
return true;
|
|
3655
3489
|
}
|
|
3656
|
-
} catch (error) {
|
|
3657
|
-
console.warn("[SlashMenu] Unable to determine redo availability via editor.can():", error);
|
|
3658
3490
|
}
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3491
|
+
for (let d = $to.depth; d > 0; d--) {
|
|
3492
|
+
if ($to.node(d).type.name === name) {
|
|
3493
|
+
return true;
|
|
3494
|
+
}
|
|
3495
|
+
}
|
|
3496
|
+
} else {
|
|
3497
|
+
for (let d = $from.depth; d > 0; d--) {
|
|
3498
|
+
if ($from.node(d).type.name === name) {
|
|
3499
|
+
return true;
|
|
3500
|
+
}
|
|
3666
3501
|
}
|
|
3667
3502
|
}
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3503
|
+
const markType = state.schema.marks[name];
|
|
3504
|
+
if (markType) {
|
|
3505
|
+
const { from, to, empty } = state.selection;
|
|
3506
|
+
if (requireEnds) {
|
|
3507
|
+
const fromMarks = markType.isInSet($from.marks());
|
|
3508
|
+
const toMarks = markType.isInSet($to.marks());
|
|
3509
|
+
if (fromMarks || toMarks) {
|
|
3510
|
+
return true;
|
|
3511
|
+
}
|
|
3512
|
+
if (empty && markType.isInSet(state.storedMarks || $from.marks())) {
|
|
3513
|
+
return true;
|
|
3514
|
+
}
|
|
3515
|
+
} else {
|
|
3516
|
+
if (empty) {
|
|
3517
|
+
if (markType.isInSet(state.storedMarks || $from.marks())) {
|
|
3518
|
+
return true;
|
|
3519
|
+
}
|
|
3520
|
+
} else {
|
|
3521
|
+
let hasMark = false;
|
|
3522
|
+
state.doc.nodesBetween(from, to, (node) => {
|
|
3523
|
+
if (markType.isInSet(node.marks)) {
|
|
3524
|
+
hasMark = true;
|
|
3525
|
+
return false;
|
|
3526
|
+
}
|
|
3527
|
+
});
|
|
3528
|
+
if (hasMark) return true;
|
|
3529
|
+
}
|
|
3530
|
+
}
|
|
3673
3531
|
}
|
|
3532
|
+
return false;
|
|
3674
3533
|
}
|
|
3675
|
-
function
|
|
3676
|
-
|
|
3677
|
-
}
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
const
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
ancestors.add($pos.node(depth).type.name);
|
|
3684
|
-
}
|
|
3685
|
-
const isInList = ancestors.has("bulletList") || ancestors.has("orderedList");
|
|
3686
|
-
const isInTable2 = ancestors.has("table") || ancestors.has("tableRow") || ancestors.has("tableCell") || ancestors.has("tableHeader");
|
|
3687
|
-
const isInSectionNode = ancestors.has("documentSection");
|
|
3688
|
-
return {
|
|
3689
|
-
isInTable: isInTable2,
|
|
3690
|
-
isInList,
|
|
3691
|
-
isInSectionNode
|
|
3692
|
-
};
|
|
3693
|
-
} catch (error) {
|
|
3694
|
-
console.warn("[SlashMenu] Unable to resolve position for structural context:", error);
|
|
3695
|
-
return null;
|
|
3534
|
+
function moveCursorToMouseEvent(event, editor) {
|
|
3535
|
+
const { view } = editor;
|
|
3536
|
+
const coords = { left: event.clientX, top: event.clientY };
|
|
3537
|
+
const pos = view.posAtCoords(coords)?.pos;
|
|
3538
|
+
if (typeof pos === "number") {
|
|
3539
|
+
const tr = view.state.tr.setSelection(TextSelection$1.create(view.state.doc, pos));
|
|
3540
|
+
view.dispatch(tr);
|
|
3541
|
+
view.focus();
|
|
3696
3542
|
}
|
|
3697
3543
|
}
|
|
3698
3544
|
const isModuleEnabled = (editorOptions, moduleName) => {
|
|
@@ -3706,52 +3552,8 @@ const isModuleEnabled = (editorOptions, moduleName) => {
|
|
|
3706
3552
|
return true;
|
|
3707
3553
|
}
|
|
3708
3554
|
};
|
|
3709
|
-
function applyCustomMenuConfiguration(defaultSections, context) {
|
|
3710
|
-
const { editor } = context;
|
|
3711
|
-
const slashMenuConfig = editor.options?.slashMenuConfig;
|
|
3712
|
-
if (!slashMenuConfig) {
|
|
3713
|
-
return defaultSections;
|
|
3714
|
-
}
|
|
3715
|
-
let sections = [];
|
|
3716
|
-
if (slashMenuConfig.includeDefaultItems !== false) {
|
|
3717
|
-
sections = [...defaultSections];
|
|
3718
|
-
}
|
|
3719
|
-
if (slashMenuConfig.customItems && Array.isArray(slashMenuConfig.customItems)) {
|
|
3720
|
-
sections = [...sections, ...slashMenuConfig.customItems];
|
|
3721
|
-
}
|
|
3722
|
-
if (typeof slashMenuConfig.menuProvider === "function") {
|
|
3723
|
-
try {
|
|
3724
|
-
sections = slashMenuConfig.menuProvider(context, sections) || sections;
|
|
3725
|
-
} catch (error) {
|
|
3726
|
-
console.warn("[SlashMenu] Error in custom menuProvider:", error);
|
|
3727
|
-
}
|
|
3728
|
-
}
|
|
3729
|
-
return sections;
|
|
3730
|
-
}
|
|
3731
|
-
function filterCustomItems(sections, context) {
|
|
3732
|
-
return sections.map((section) => {
|
|
3733
|
-
const filteredItems = section.items.filter((item) => {
|
|
3734
|
-
if (typeof item.showWhen === "function") {
|
|
3735
|
-
try {
|
|
3736
|
-
return item.showWhen(context);
|
|
3737
|
-
} catch (error) {
|
|
3738
|
-
console.warn(`[SlashMenu] Error in showWhen for item ${item.id}:`, error);
|
|
3739
|
-
return false;
|
|
3740
|
-
}
|
|
3741
|
-
}
|
|
3742
|
-
return true;
|
|
3743
|
-
});
|
|
3744
|
-
return {
|
|
3745
|
-
...section,
|
|
3746
|
-
items: filteredItems
|
|
3747
|
-
};
|
|
3748
|
-
}).filter((section) => section.items.length > 0);
|
|
3749
|
-
}
|
|
3750
3555
|
function getItems(context) {
|
|
3751
3556
|
const { editor, selectedText, trigger, clipboardContent } = context;
|
|
3752
|
-
const clipboardHasContent = Boolean(
|
|
3753
|
-
clipboardContent?.hasContent || clipboardContent?.html || clipboardContent?.text || typeof clipboardContent?.size === "number" && clipboardContent.size > 0 || clipboardContent && typeof clipboardContent?.content?.size === "number" && clipboardContent.content.size > 0 || clipboardContent?.raw && typeof clipboardContent.raw.size === "number" && clipboardContent.raw.size > 0 || clipboardContent?.raw && typeof clipboardContent.raw?.content?.size === "number" && clipboardContent.raw.content.size > 0
|
|
3754
|
-
);
|
|
3755
3557
|
const isInTable2 = selectionHasNodeOrMark(editor.view.state, "table", { requireEnds: true });
|
|
3756
3558
|
const isInSectionNode = selectionHasNodeOrMark(editor.view.state, "documentSection", { requireEnds: true });
|
|
3757
3559
|
const sections = [
|
|
@@ -3888,13 +3690,12 @@ function getItems(context) {
|
|
|
3888
3690
|
]
|
|
3889
3691
|
}
|
|
3890
3692
|
];
|
|
3891
|
-
|
|
3892
|
-
const filteredSections = allSections.map((section) => {
|
|
3693
|
+
const filteredSections = sections.map((section) => {
|
|
3893
3694
|
const filteredItems = section.items.filter((item) => {
|
|
3894
3695
|
if (item.requiresModule && !isModuleEnabled(editor?.options, item.requiresModule)) return false;
|
|
3895
3696
|
if (item.requiresSelection && !selectedText) return false;
|
|
3896
3697
|
if (!item.allowedTriggers.includes(trigger)) return false;
|
|
3897
|
-
if (item.requiresClipboard && !
|
|
3698
|
+
if (item.requiresClipboard && !clipboardContent) return false;
|
|
3898
3699
|
if (item.requiresTableParent && !isInTable2 || item.id === "insert-table" && isInTable2) return false;
|
|
3899
3700
|
if (item.requiresSectionParent && !isInSectionNode) return false;
|
|
3900
3701
|
return true;
|
|
@@ -3904,8 +3705,7 @@ function getItems(context) {
|
|
|
3904
3705
|
items: filteredItems
|
|
3905
3706
|
};
|
|
3906
3707
|
}).filter((section) => section.items.length > 0);
|
|
3907
|
-
|
|
3908
|
-
return finalSections;
|
|
3708
|
+
return filteredSections;
|
|
3909
3709
|
}
|
|
3910
3710
|
const _hoisted_1$3 = { class: "slash-menu-items" };
|
|
3911
3711
|
const _hoisted_2$1 = {
|
|
@@ -3940,7 +3740,6 @@ const _sfc_main$4 = {
|
|
|
3940
3740
|
const menuRef = ref(null);
|
|
3941
3741
|
const sections = ref([]);
|
|
3942
3742
|
const selectedId = ref(null);
|
|
3943
|
-
const currentContext = ref(null);
|
|
3944
3743
|
const handleEditorUpdate = () => {
|
|
3945
3744
|
if (!props.editor?.isEditable && isOpen.value) {
|
|
3946
3745
|
closeMenu({ restoreCursor: false });
|
|
@@ -3986,44 +3785,6 @@ const _sfc_main$4 = {
|
|
|
3986
3785
|
selectedId.value = newItems[0].id;
|
|
3987
3786
|
}
|
|
3988
3787
|
});
|
|
3989
|
-
const customItemRefs = /* @__PURE__ */ new Map();
|
|
3990
|
-
const setCustomItemRef = (el, item) => {
|
|
3991
|
-
if (el && item.render) {
|
|
3992
|
-
customItemRefs.set(item.id, { element: el, item });
|
|
3993
|
-
nextTick(() => {
|
|
3994
|
-
renderCustomItem(item.id);
|
|
3995
|
-
});
|
|
3996
|
-
}
|
|
3997
|
-
};
|
|
3998
|
-
const renderCustomItem = async (itemId) => {
|
|
3999
|
-
const refData = customItemRefs.get(itemId);
|
|
4000
|
-
if (!refData || refData.element.hasCustomContent) return;
|
|
4001
|
-
const { element, item } = refData;
|
|
4002
|
-
try {
|
|
4003
|
-
if (!currentContext.value) {
|
|
4004
|
-
currentContext.value = await getEditorContext(props.editor);
|
|
4005
|
-
}
|
|
4006
|
-
const context = currentContext.value;
|
|
4007
|
-
const customElement = item.render(context);
|
|
4008
|
-
if (customElement instanceof HTMLElement) {
|
|
4009
|
-
element.innerHTML = "";
|
|
4010
|
-
element.appendChild(customElement);
|
|
4011
|
-
element.hasCustomContent = true;
|
|
4012
|
-
}
|
|
4013
|
-
} catch (error) {
|
|
4014
|
-
console.warn(`[SlashMenu] Error rendering custom item ${itemId}:`, error);
|
|
4015
|
-
element.innerHTML = `<span>${item.label || "Custom Item"}</span>`;
|
|
4016
|
-
element.hasCustomContent = true;
|
|
4017
|
-
}
|
|
4018
|
-
};
|
|
4019
|
-
const cleanupCustomItems = () => {
|
|
4020
|
-
customItemRefs.forEach((refData) => {
|
|
4021
|
-
if (refData.element) {
|
|
4022
|
-
refData.element.hasCustomContent = false;
|
|
4023
|
-
}
|
|
4024
|
-
});
|
|
4025
|
-
customItemRefs.clear();
|
|
4026
|
-
};
|
|
4027
3788
|
const handleGlobalKeyDown = (event) => {
|
|
4028
3789
|
if (event.key === "Escape") {
|
|
4029
3790
|
event.preventDefault();
|
|
@@ -4074,23 +3835,22 @@ const _sfc_main$4 = {
|
|
|
4074
3835
|
return;
|
|
4075
3836
|
}
|
|
4076
3837
|
event.preventDefault();
|
|
4077
|
-
const context = await getEditorContext(props.editor, event);
|
|
4078
|
-
currentContext.value = context;
|
|
4079
|
-
sections.value = getItems({ ...context, trigger: "click" });
|
|
4080
|
-
selectedId.value = flattenedItems.value[0]?.id || null;
|
|
4081
|
-
searchQuery.value = "";
|
|
4082
3838
|
props.editor.view.dispatch(
|
|
4083
3839
|
props.editor.view.state.tr.setMeta(SlashMenuPluginKey, {
|
|
4084
3840
|
type: "open",
|
|
4085
|
-
pos:
|
|
3841
|
+
pos: props.editor.view.state.selection.from,
|
|
4086
3842
|
clientX: event.clientX,
|
|
4087
3843
|
clientY: event.clientY
|
|
4088
3844
|
})
|
|
4089
3845
|
);
|
|
3846
|
+
searchQuery.value = "";
|
|
3847
|
+
const context = await getEditorContext(props.editor, event);
|
|
3848
|
+
sections.value = getItems({ ...context, trigger: "click" });
|
|
3849
|
+
selectedId.value = flattenedItems.value[0]?.id || null;
|
|
4090
3850
|
};
|
|
4091
3851
|
const executeCommand = async (item) => {
|
|
4092
3852
|
if (props.editor) {
|
|
4093
|
-
item.action ? await item.action(props.editor
|
|
3853
|
+
item.action ? await item.action(props.editor) : null;
|
|
4094
3854
|
if (item.component) {
|
|
4095
3855
|
menuRef.value;
|
|
4096
3856
|
const componentProps = getPropsByItemId(item.id, props);
|
|
@@ -4108,7 +3868,7 @@ const _sfc_main$4 = {
|
|
|
4108
3868
|
const closeMenu = (options = { restoreCursor: true }) => {
|
|
4109
3869
|
if (props.editor?.view) {
|
|
4110
3870
|
const pluginState = SlashMenuPluginKey.getState(props.editor.view.state);
|
|
4111
|
-
const anchorPos = pluginState
|
|
3871
|
+
const { anchorPos } = pluginState;
|
|
4112
3872
|
props.editor.view.dispatch(
|
|
4113
3873
|
props.editor.view.state.tr.setMeta(SlashMenuPluginKey, {
|
|
4114
3874
|
type: "close"
|
|
@@ -4121,8 +3881,6 @@ const _sfc_main$4 = {
|
|
|
4121
3881
|
props.editor.view.dispatch(tr);
|
|
4122
3882
|
props.editor.view.focus();
|
|
4123
3883
|
}
|
|
4124
|
-
cleanupCustomItems();
|
|
4125
|
-
currentContext.value = null;
|
|
4126
3884
|
isOpen.value = false;
|
|
4127
3885
|
searchQuery.value = "";
|
|
4128
3886
|
sections.value = [];
|
|
@@ -4139,29 +3897,19 @@ const _sfc_main$4 = {
|
|
|
4139
3897
|
isOpen.value = true;
|
|
4140
3898
|
menuPosition.value = event.menuPosition;
|
|
4141
3899
|
searchQuery.value = "";
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
sections.value = getItems({ ...context, trigger: "slash" });
|
|
4146
|
-
selectedId.value = flattenedItems.value[0]?.id || null;
|
|
4147
|
-
} else if (sections.value.length === 0) {
|
|
4148
|
-
const trigger = currentContext.value.event?.type === "contextmenu" ? "click" : "slash";
|
|
4149
|
-
sections.value = getItems({ ...currentContext.value, trigger });
|
|
4150
|
-
selectedId.value = flattenedItems.value[0]?.id || null;
|
|
4151
|
-
}
|
|
3900
|
+
const context = await getEditorContext(props.editor);
|
|
3901
|
+
sections.value = getItems({ ...context, trigger: "slash" });
|
|
3902
|
+
selectedId.value = flattenedItems.value[0]?.id || null;
|
|
4152
3903
|
});
|
|
4153
3904
|
props.editor.view.dom.addEventListener("contextmenu", handleRightClick);
|
|
4154
3905
|
props.editor.on("slashMenu:close", () => {
|
|
4155
|
-
cleanupCustomItems();
|
|
4156
3906
|
isOpen.value = false;
|
|
4157
3907
|
searchQuery.value = "";
|
|
4158
|
-
currentContext.value = null;
|
|
4159
3908
|
});
|
|
4160
3909
|
});
|
|
4161
3910
|
onBeforeUnmount(() => {
|
|
4162
3911
|
document.removeEventListener("keydown", handleGlobalKeyDown);
|
|
4163
3912
|
document.removeEventListener("mousedown", handleGlobalOutsideClick);
|
|
4164
|
-
cleanupCustomItems();
|
|
4165
3913
|
if (props.editor) {
|
|
4166
3914
|
try {
|
|
4167
3915
|
props.editor.off("slashMenu:open");
|
|
@@ -4208,19 +3956,12 @@ const _sfc_main$4 = {
|
|
|
4208
3956
|
class: normalizeClass(["slash-menu-item", { "is-selected": item.id === selectedId.value }]),
|
|
4209
3957
|
onClick: ($event) => executeCommand(item)
|
|
4210
3958
|
}, [
|
|
4211
|
-
item.
|
|
3959
|
+
item.icon ? (openBlock(), createElementBlock("span", {
|
|
4212
3960
|
key: 0,
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
item.icon ? (openBlock(), createElementBlock("span", {
|
|
4218
|
-
key: 0,
|
|
4219
|
-
class: "slash-menu-item-icon",
|
|
4220
|
-
innerHTML: item.icon
|
|
4221
|
-
}, null, 8, _hoisted_4)) : createCommentVNode("", true),
|
|
4222
|
-
createElementVNode("span", null, toDisplayString(item.label), 1)
|
|
4223
|
-
], 64))
|
|
3961
|
+
class: "slash-menu-item-icon",
|
|
3962
|
+
innerHTML: item.icon
|
|
3963
|
+
}, null, 8, _hoisted_4)) : createCommentVNode("", true),
|
|
3964
|
+
createElementVNode("span", null, toDisplayString(item.label), 1)
|
|
4224
3965
|
], 10, _hoisted_3$1);
|
|
4225
3966
|
}), 128))
|
|
4226
3967
|
], 64);
|
|
@@ -4915,76 +4656,34 @@ const _sfc_main = {
|
|
|
4915
4656
|
}
|
|
4916
4657
|
};
|
|
4917
4658
|
const SuperInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4d5cff52"]]);
|
|
4918
|
-
const additionalHandlers = Object.freeze({
|
|
4919
|
-
"mc:AlternateContent": translator$10,
|
|
4920
|
-
"w:b": translator$$,
|
|
4921
|
-
"w:bidiVisual": translator$_,
|
|
4922
|
-
"w:bookmarkEnd": translator$Z,
|
|
4923
|
-
"w:bookmarkStart": translator$Y,
|
|
4924
|
-
"w:bottom": translator$X,
|
|
4925
|
-
"w:br": translator$W,
|
|
4926
|
-
"w:cantSplit": translator$V,
|
|
4927
|
-
"w:cnfStyle": translator$U,
|
|
4928
|
-
"w:color": translator$T,
|
|
4929
|
-
"w:divId": translator$S,
|
|
4930
|
-
"w:drawing": translator$R,
|
|
4931
|
-
"w:end": translator$Q,
|
|
4932
|
-
"w:gridAfter": translator$P,
|
|
4933
|
-
"w:gridBefore": translator$O,
|
|
4934
|
-
"w:gridCol": translator$N,
|
|
4935
|
-
"w:hidden": translator$M,
|
|
4936
|
-
"w:highlight": translator$L,
|
|
4937
|
-
"w:hyperlink": translator$K,
|
|
4938
|
-
"w:i": translator$J,
|
|
4939
|
-
"w:insideH": translator$I,
|
|
4940
|
-
"w:insideV": translator$H,
|
|
4941
|
-
"w:jc": translator$G,
|
|
4942
|
-
"w:left": translator$F,
|
|
4943
|
-
"w:p": translator$E,
|
|
4944
|
-
"w:r": translator$D,
|
|
4945
|
-
"w:rFonts": translator$C,
|
|
4946
|
-
"w:rPr": translator$B,
|
|
4947
|
-
"w:rStyle": translator$A,
|
|
4948
|
-
"w:right": translator$z,
|
|
4949
|
-
"w:sdt": translator$y,
|
|
4950
|
-
"w:shd": translator$x,
|
|
4951
|
-
"w:start": translator$w,
|
|
4952
|
-
"w:strike": translator$v,
|
|
4953
|
-
"w:sz": translator$u,
|
|
4954
|
-
"w:szCs": translator$t,
|
|
4955
|
-
"w:tab": translator$s,
|
|
4956
|
-
"w:tbl": translator$r,
|
|
4957
|
-
"w:tblBorders": translator$q,
|
|
4958
|
-
"w:tblCaption": translator$p,
|
|
4959
|
-
"w:tblCellMar": translator$o,
|
|
4960
|
-
"w:tblCellSpacing": translator$n,
|
|
4961
|
-
"w:tblDescription": translator$m,
|
|
4962
|
-
"w:tblGrid": translator$l,
|
|
4963
|
-
"w:tblHeader": translator$k,
|
|
4964
|
-
"w:tblInd": translator$j,
|
|
4965
|
-
"w:tblLayout": translator$i,
|
|
4966
|
-
"w:tblLook": translator$h,
|
|
4967
|
-
"w:tblOverlap": translator$g,
|
|
4968
|
-
"w:tblPr": translator$f,
|
|
4969
|
-
"w:tblStyle": translator$e,
|
|
4970
|
-
"w:tblStyleColBandSize": translator$d,
|
|
4971
|
-
"w:tblStyleRowBandSize": translator$c,
|
|
4972
|
-
"w:tblW": translator$b,
|
|
4973
|
-
"w:tblpPr": translator$a,
|
|
4974
|
-
"w:tc": translator$9,
|
|
4975
|
-
"w:top": translator$8,
|
|
4976
|
-
"w:tr": translator$7,
|
|
4977
|
-
"w:trHeight": translator$6,
|
|
4978
|
-
"w:trPr": translator$5,
|
|
4979
|
-
"w:u": translator$4,
|
|
4980
|
-
"w:wAfter": translator$3,
|
|
4981
|
-
"w:wBefore": translator$2,
|
|
4982
|
-
"wp:anchor": translator$1,
|
|
4983
|
-
"wp:inline": translator
|
|
4984
|
-
});
|
|
4985
4659
|
const baseHandlers = {
|
|
4986
4660
|
...runPropertyTranslators,
|
|
4987
|
-
|
|
4661
|
+
"w:br": translator$p,
|
|
4662
|
+
"w:cantSplit": translator$o,
|
|
4663
|
+
"w:cnfStyle": translator$n,
|
|
4664
|
+
"w:divId": translator$m,
|
|
4665
|
+
"w:gridAfter": translator$l,
|
|
4666
|
+
"w:gridBefore": translator$k,
|
|
4667
|
+
"w:hidden": translator$j,
|
|
4668
|
+
"w:hyperlink": translator$i,
|
|
4669
|
+
"w:jc": translator$h,
|
|
4670
|
+
"w:p": translator$g,
|
|
4671
|
+
"w:r": translator$f,
|
|
4672
|
+
"w:rPr": translator$e,
|
|
4673
|
+
"w:sdt": translator$d,
|
|
4674
|
+
"w:tab": translator$c,
|
|
4675
|
+
"w:tblCellSpacing": translator$b,
|
|
4676
|
+
"w:tblHeader": translator$a,
|
|
4677
|
+
"w:tc": translator$9,
|
|
4678
|
+
"w:tr": translator$8,
|
|
4679
|
+
"w:trHeight": translator$7,
|
|
4680
|
+
"w:trPr": translator$6,
|
|
4681
|
+
"w:wAfter": translator$5,
|
|
4682
|
+
"w:wBefore": translator$4,
|
|
4683
|
+
"wp:anchor": translator$3,
|
|
4684
|
+
"wp:inline": translator$2,
|
|
4685
|
+
"w:bookmarkStart": translator$1,
|
|
4686
|
+
"w:bookmarkEnd": translator
|
|
4988
4687
|
};
|
|
4989
4688
|
const registeredHandlers = Object.freeze(baseHandlers);
|
|
4990
4689
|
const Extensions = {
|
|
@@ -4997,7 +4696,7 @@ const Extensions = {
|
|
|
4997
4696
|
export {
|
|
4998
4697
|
AIWriter,
|
|
4999
4698
|
n as AnnotatorHelpers,
|
|
5000
|
-
|
|
4699
|
+
b2 as BasicUpload,
|
|
5001
4700
|
C as CommentsPluginKey,
|
|
5002
4701
|
D as DocxZipper,
|
|
5003
4702
|
Editor,
|