@harbour-enterprises/superdoc 1.0.0-beta.93 → 1.0.0-beta.94
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-DDlUqq8s.es.js → PdfViewer-BR7hR5hX.es.js} +1 -1
- package/dist/chunks/{PdfViewer-DbMCgjlc.cjs → PdfViewer-CC_fv7lS.cjs} +1 -1
- package/dist/chunks/{index-Cyp2JwAE-BDSzsvVr.cjs → index-BstIHBcW-6lPNsqaA.cjs} +1 -1
- package/dist/chunks/{index-Cyp2JwAE-C4V2XscX.es.js → index-BstIHBcW-BxKvjs-R.es.js} +1 -1
- package/dist/chunks/{index-CIyFPdjr.cjs → index-DHRt1tCk.cjs} +3 -3
- package/dist/chunks/{index-D1G3HZnw.es.js → index-JAE9iqTX.es.js} +3 -3
- package/dist/chunks/{super-editor.es-BLW0IRfr.es.js → super-editor.es-C1RjP_IO.es.js} +163 -22
- package/dist/chunks/{super-editor.es-CZ_EMz2h.cjs → super-editor.es-DXKgM3JR.cjs} +163 -22
- package/dist/super-editor/ai-writer.es.js +2 -2
- package/dist/super-editor/chunks/{converter-CvPb50HR.js → converter-CIgfC-et.js} +1 -1
- package/dist/super-editor/chunks/{docx-zipper-BWUuyGDp.js → docx-zipper-AQa91HPZ.js} +1 -1
- package/dist/super-editor/chunks/{editor-CsWOz21v.js → editor-6Tyu_6Nf.js} +164 -23
- package/dist/super-editor/chunks/{index-Cyp2JwAE.js → index-BstIHBcW.js} +1 -1
- package/dist/super-editor/chunks/{toolbar-DjWypz4_.js → toolbar-yzD6N9Br.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/super-editor.es.js +6 -6
- 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 +165 -24
- package/dist/superdoc.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { y as defineComponent, z as h, O as Transition, a0 as process$1, J as watchEffect, a as computed, r as ref, j as onMounted, W as onUnmounted, b as createElementBlock, o as openBlock, f as createBaseVNode, e as createCommentVNode, u as createVNode, v as unref } from "./vue-Dysv_7z5.es.js";
|
|
2
|
-
import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-
|
|
2
|
+
import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-JAE9iqTX.es.js";
|
|
3
3
|
function self(vars) {
|
|
4
4
|
const {
|
|
5
5
|
opacityDisabled,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const vue = require("./vue-jWLMl8Ts.cjs");
|
|
4
|
-
const superdoc = require("./index-
|
|
4
|
+
const superdoc = require("./index-DHRt1tCk.cjs");
|
|
5
5
|
function self(vars) {
|
|
6
6
|
const {
|
|
7
7
|
opacityDisabled,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const superEditor_es = require("./super-editor.es-
|
|
3
|
+
const superEditor_es = require("./super-editor.es-DXKgM3JR.cjs");
|
|
4
4
|
const indexCvBqQJbG = require("./index-CvBqQJbG-Dwm0THD7.cjs");
|
|
5
5
|
function bail(error) {
|
|
6
6
|
if (error) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const superEditor_es = require("./super-editor.es-
|
|
2
|
+
const superEditor_es = require("./super-editor.es-DXKgM3JR.cjs");
|
|
3
3
|
const blankDocx = require("./blank-docx-DfW3Eeh2.cjs");
|
|
4
4
|
const eventemitter3 = require("./eventemitter3-DQmQUge-.cjs");
|
|
5
5
|
const provider = require("@hocuspocus/provider");
|
|
@@ -17268,7 +17268,7 @@ const _sfc_main = {
|
|
|
17268
17268
|
__name: "SuperDoc",
|
|
17269
17269
|
emits: ["selection-update"],
|
|
17270
17270
|
setup(__props, { emit: __emit }) {
|
|
17271
|
-
const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-
|
|
17271
|
+
const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-CC_fv7lS.cjs")));
|
|
17272
17272
|
const superdocStore = useSuperdocStore();
|
|
17273
17273
|
const commentsStore = useCommentsStore();
|
|
17274
17274
|
const {
|
|
@@ -18157,7 +18157,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
|
|
|
18157
18157
|
this.config.colors = shuffleArray(this.config.colors);
|
|
18158
18158
|
this.userColorMap = /* @__PURE__ */ new Map();
|
|
18159
18159
|
this.colorIndex = 0;
|
|
18160
|
-
this.version = "1.0.0-beta.
|
|
18160
|
+
this.version = "1.0.0-beta.94";
|
|
18161
18161
|
this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
|
|
18162
18162
|
this.superdocId = config.superdocId || uuid.v4();
|
|
18163
18163
|
this.colors = this.config.colors;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, P as PresentationEditor, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-
|
|
1
|
+
import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, P as PresentationEditor, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-C1RjP_IO.es.js";
|
|
2
2
|
import { B as BlankDOCX } from "./blank-docx-ABm6XYAA.es.js";
|
|
3
3
|
import { E as EventEmitter } from "./eventemitter3-CcXAdeql.es.js";
|
|
4
4
|
import { HocuspocusProvider, HocuspocusProviderWebsocket } from "@hocuspocus/provider";
|
|
@@ -17251,7 +17251,7 @@ const _sfc_main = {
|
|
|
17251
17251
|
__name: "SuperDoc",
|
|
17252
17252
|
emits: ["selection-update"],
|
|
17253
17253
|
setup(__props, { emit: __emit }) {
|
|
17254
|
-
const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-
|
|
17254
|
+
const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-BR7hR5hX.es.js"));
|
|
17255
17255
|
const superdocStore = useSuperdocStore();
|
|
17256
17256
|
const commentsStore = useCommentsStore();
|
|
17257
17257
|
const {
|
|
@@ -18140,7 +18140,7 @@ class SuperDoc extends EventEmitter {
|
|
|
18140
18140
|
this.config.colors = shuffleArray(this.config.colors);
|
|
18141
18141
|
this.userColorMap = /* @__PURE__ */ new Map();
|
|
18142
18142
|
this.colorIndex = 0;
|
|
18143
|
-
this.version = "1.0.0-beta.
|
|
18143
|
+
this.version = "1.0.0-beta.94";
|
|
18144
18144
|
this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
|
|
18145
18145
|
this.superdocId = config.superdocId || v4();
|
|
18146
18146
|
this.colors = this.config.colors;
|
|
@@ -42380,7 +42380,7 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
42380
42380
|
static getStoredSuperdocVersion(docx) {
|
|
42381
42381
|
return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
|
|
42382
42382
|
}
|
|
42383
|
-
static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.
|
|
42383
|
+
static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.94") {
|
|
42384
42384
|
return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
|
|
42385
42385
|
}
|
|
42386
42386
|
/**
|
|
@@ -56530,12 +56530,12 @@ const findTrackedMarkBetween = ({
|
|
|
56530
56530
|
const { doc: doc2 } = tr;
|
|
56531
56531
|
const startPos = Math.max(from2 - offset2, 0);
|
|
56532
56532
|
const endPos = Math.min(to + offset2, doc2.content.size);
|
|
56533
|
-
let markFound;
|
|
56534
|
-
|
|
56533
|
+
let markFound = null;
|
|
56534
|
+
const tryMatch = (node, pos) => {
|
|
56535
56535
|
if (!node || node?.nodeSize === void 0) {
|
|
56536
56536
|
return;
|
|
56537
56537
|
}
|
|
56538
|
-
const mark = node.marks
|
|
56538
|
+
const mark = node.marks?.find(
|
|
56539
56539
|
(mark2) => mark2.type.name === markName && Object.keys(attrs).every((attr) => mark2.attrs[attr] === attrs[attr])
|
|
56540
56540
|
);
|
|
56541
56541
|
if (mark && !markFound) {
|
|
@@ -56544,24 +56544,36 @@ const findTrackedMarkBetween = ({
|
|
|
56544
56544
|
to: pos + node.nodeSize,
|
|
56545
56545
|
mark
|
|
56546
56546
|
};
|
|
56547
|
+
return false;
|
|
56547
56548
|
}
|
|
56549
|
+
};
|
|
56550
|
+
doc2.nodesBetween(startPos, endPos, (node, pos) => {
|
|
56551
|
+
return tryMatch(node, pos);
|
|
56548
56552
|
});
|
|
56549
|
-
const
|
|
56550
|
-
|
|
56551
|
-
|
|
56552
|
-
|
|
56553
|
-
|
|
56554
|
-
|
|
56555
|
-
|
|
56556
|
-
);
|
|
56557
|
-
|
|
56558
|
-
|
|
56559
|
-
|
|
56560
|
-
to: endPos + node.nodeSize,
|
|
56561
|
-
mark
|
|
56562
|
-
};
|
|
56553
|
+
const inspectAroundPosition = (pos) => {
|
|
56554
|
+
if (pos < 0 || pos > doc2.content.size) {
|
|
56555
|
+
return;
|
|
56556
|
+
}
|
|
56557
|
+
const resolved = doc2.resolve(pos);
|
|
56558
|
+
const before = resolved.nodeBefore;
|
|
56559
|
+
if (before?.type?.name === "run") {
|
|
56560
|
+
const beforeStart = Math.max(pos - before.nodeSize, 0);
|
|
56561
|
+
const node = before.content?.content?.[0];
|
|
56562
|
+
if (node?.type?.name === "text") {
|
|
56563
|
+
tryMatch(node, beforeStart);
|
|
56563
56564
|
}
|
|
56564
56565
|
}
|
|
56566
|
+
const after = resolved.nodeAfter;
|
|
56567
|
+
if (after?.type?.name === "run") {
|
|
56568
|
+
const node = after.content?.content?.[0];
|
|
56569
|
+
if (node?.type?.name === "text") {
|
|
56570
|
+
tryMatch(node, pos);
|
|
56571
|
+
}
|
|
56572
|
+
}
|
|
56573
|
+
};
|
|
56574
|
+
if (!markFound) {
|
|
56575
|
+
inspectAroundPosition(startPos);
|
|
56576
|
+
inspectAroundPosition(endPos);
|
|
56565
56577
|
}
|
|
56566
56578
|
return markFound;
|
|
56567
56579
|
};
|
|
@@ -59586,7 +59598,7 @@ const isHeadless = (editor) => {
|
|
|
59586
59598
|
const shouldSkipNodeView = (editor) => {
|
|
59587
59599
|
return isHeadless(editor);
|
|
59588
59600
|
};
|
|
59589
|
-
const summaryVersion = "1.0.0-beta.
|
|
59601
|
+
const summaryVersion = "1.0.0-beta.94";
|
|
59590
59602
|
const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
|
|
59591
59603
|
const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
|
|
59592
59604
|
function mapAttributes(attrs) {
|
|
@@ -60375,7 +60387,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
60375
60387
|
{ default: remarkStringify },
|
|
60376
60388
|
{ default: remarkGfm }
|
|
60377
60389
|
] = await Promise.all([
|
|
60378
|
-
import("./index-
|
|
60390
|
+
import("./index-BstIHBcW-BxKvjs-R.es.js"),
|
|
60379
60391
|
import("./index-DRCvimau-Cw339678.es.js"),
|
|
60380
60392
|
import("./index-C_x_N6Uh-DJn8hIEt.es.js"),
|
|
60381
60393
|
import("./index-D_sWOSiG-DE96TaT5.es.js"),
|
|
@@ -60580,7 +60592,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
60580
60592
|
* Process collaboration migrations
|
|
60581
60593
|
*/
|
|
60582
60594
|
processCollaborationMigrations() {
|
|
60583
|
-
console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.
|
|
60595
|
+
console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.94");
|
|
60584
60596
|
if (!this.options.ydoc) return;
|
|
60585
60597
|
const metaMap = this.options.ydoc.getMap("meta");
|
|
60586
60598
|
let docVersion = metaMap.get("version");
|
|
@@ -77457,7 +77469,9 @@ const deriveBlockVersion = (block) => {
|
|
|
77457
77469
|
textRun.letterSpacing != null ? textRun.letterSpacing : "",
|
|
77458
77470
|
textRun.pmStart ?? "",
|
|
77459
77471
|
textRun.pmEnd ?? "",
|
|
77460
|
-
textRun.token ?? ""
|
|
77472
|
+
textRun.token ?? "",
|
|
77473
|
+
// Tracked changes - force re-render when added or removed tracked change
|
|
77474
|
+
textRun.trackedChange ? 1 : 0
|
|
77461
77475
|
].join(",");
|
|
77462
77476
|
}).join("|");
|
|
77463
77477
|
const attrs = block.attrs;
|
|
@@ -85007,6 +85021,104 @@ async function measureParagraphBlock(block, maxWidth) {
|
|
|
85007
85021
|
const wordStartChar = charPosInRun;
|
|
85008
85022
|
const wordEndNoSpace = charPosInRun + word.length;
|
|
85009
85023
|
const wordEndWithSpace = charPosInRun + (isLastWord ? word.length : word.length + 1);
|
|
85024
|
+
const effectiveMaxWidth = currentLine ? currentLine.maxWidth : getEffectiveWidth(lines.length === 0 ? initialAvailableWidth : contentWidth);
|
|
85025
|
+
if (wordOnlyWidth > effectiveMaxWidth && word.length > 1) {
|
|
85026
|
+
if (currentLine && currentLine.width > 0 && currentLine.segments.length > 0) {
|
|
85027
|
+
const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
|
|
85028
|
+
const { spaceCount: _sc, ...lineBase } = currentLine;
|
|
85029
|
+
const completedLine = { ...lineBase, ...metrics };
|
|
85030
|
+
addBarTabsToLine(completedLine);
|
|
85031
|
+
lines.push(completedLine);
|
|
85032
|
+
tabStopCursor = 0;
|
|
85033
|
+
pendingTabAlignment = null;
|
|
85034
|
+
currentLine = null;
|
|
85035
|
+
}
|
|
85036
|
+
const lineMaxWidth = getEffectiveWidth(lines.length === 0 ? initialAvailableWidth : contentWidth);
|
|
85037
|
+
const hasTabOnlyLine = currentLine && currentLine.segments.length === 0 && currentLine.width > 0;
|
|
85038
|
+
const remainingWidthAfterTab = hasTabOnlyLine ? currentLine.maxWidth - currentLine.width : lineMaxWidth;
|
|
85039
|
+
const chunkWidth = hasTabOnlyLine ? Math.max(remainingWidthAfterTab, lineMaxWidth * 0.25) : lineMaxWidth;
|
|
85040
|
+
const chunks = breakWordIntoChunks(word, chunkWidth - WIDTH_FUDGE_PX, font, ctx2, run2);
|
|
85041
|
+
let chunkCharOffset = wordStartChar;
|
|
85042
|
+
for (let chunkIndex = 0; chunkIndex < chunks.length; chunkIndex++) {
|
|
85043
|
+
const chunk = chunks[chunkIndex];
|
|
85044
|
+
const chunkStartChar = chunkCharOffset;
|
|
85045
|
+
const chunkEndChar = chunkCharOffset + chunk.text.length;
|
|
85046
|
+
const isLastChunk = chunkIndex === chunks.length - 1;
|
|
85047
|
+
const isFirstChunk = chunkIndex === 0;
|
|
85048
|
+
if (isFirstChunk && hasTabOnlyLine && currentLine) {
|
|
85049
|
+
currentLine.toRun = runIndex;
|
|
85050
|
+
currentLine.toChar = chunkEndChar;
|
|
85051
|
+
currentLine.width = roundValue(currentLine.width + chunk.width);
|
|
85052
|
+
currentLine.maxFontSize = Math.max(currentLine.maxFontSize, run2.fontSize);
|
|
85053
|
+
currentLine.maxFontInfo = getFontInfoFromRun(run2);
|
|
85054
|
+
currentLine.segments.push({
|
|
85055
|
+
runIndex,
|
|
85056
|
+
fromChar: chunkStartChar,
|
|
85057
|
+
toChar: chunkEndChar,
|
|
85058
|
+
width: chunk.width
|
|
85059
|
+
});
|
|
85060
|
+
if (isLastChunk) {
|
|
85061
|
+
const ls = run2.letterSpacing ?? 0;
|
|
85062
|
+
if (!isLastWord && currentLine.width + spaceWidth <= currentLine.maxWidth - WIDTH_FUDGE_PX) {
|
|
85063
|
+
currentLine.toChar = wordEndWithSpace;
|
|
85064
|
+
currentLine.width = roundValue(currentLine.width + spaceWidth + ls);
|
|
85065
|
+
charPosInRun = wordEndWithSpace;
|
|
85066
|
+
currentLine.spaceCount += 1;
|
|
85067
|
+
} else {
|
|
85068
|
+
charPosInRun = wordEndWithSpace;
|
|
85069
|
+
}
|
|
85070
|
+
} else {
|
|
85071
|
+
const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
|
|
85072
|
+
const { spaceCount: _sc, ...lineBase } = currentLine;
|
|
85073
|
+
const completedLine = { ...lineBase, ...metrics };
|
|
85074
|
+
addBarTabsToLine(completedLine);
|
|
85075
|
+
lines.push(completedLine);
|
|
85076
|
+
tabStopCursor = 0;
|
|
85077
|
+
pendingTabAlignment = null;
|
|
85078
|
+
currentLine = null;
|
|
85079
|
+
}
|
|
85080
|
+
} else if (isLastChunk) {
|
|
85081
|
+
currentLine = {
|
|
85082
|
+
fromRun: runIndex,
|
|
85083
|
+
fromChar: chunkStartChar,
|
|
85084
|
+
toRun: runIndex,
|
|
85085
|
+
toChar: chunkEndChar,
|
|
85086
|
+
width: chunk.width,
|
|
85087
|
+
maxFontSize: run2.fontSize,
|
|
85088
|
+
maxFontInfo: getFontInfoFromRun(run2),
|
|
85089
|
+
maxWidth: getEffectiveWidth(contentWidth),
|
|
85090
|
+
segments: [{ runIndex, fromChar: chunkStartChar, toChar: chunkEndChar, width: chunk.width }],
|
|
85091
|
+
spaceCount: 0
|
|
85092
|
+
};
|
|
85093
|
+
const ls = run2.letterSpacing ?? 0;
|
|
85094
|
+
if (!isLastWord && currentLine.width + spaceWidth <= currentLine.maxWidth - WIDTH_FUDGE_PX) {
|
|
85095
|
+
currentLine.toChar = wordEndWithSpace;
|
|
85096
|
+
currentLine.width = roundValue(currentLine.width + spaceWidth + ls);
|
|
85097
|
+
charPosInRun = wordEndWithSpace;
|
|
85098
|
+
currentLine.spaceCount += 1;
|
|
85099
|
+
} else {
|
|
85100
|
+
charPosInRun = wordEndWithSpace;
|
|
85101
|
+
}
|
|
85102
|
+
} else {
|
|
85103
|
+
const chunkLineMaxWidth = getEffectiveWidth(lines.length === 0 ? initialAvailableWidth : contentWidth);
|
|
85104
|
+
const metrics = calculateTypographyMetrics(run2.fontSize, spacing, getFontInfoFromRun(run2));
|
|
85105
|
+
const chunkLine = {
|
|
85106
|
+
fromRun: runIndex,
|
|
85107
|
+
fromChar: chunkStartChar,
|
|
85108
|
+
toRun: runIndex,
|
|
85109
|
+
toChar: chunkEndChar,
|
|
85110
|
+
width: chunk.width,
|
|
85111
|
+
maxWidth: chunkLineMaxWidth,
|
|
85112
|
+
segments: [{ runIndex, fromChar: chunkStartChar, toChar: chunkEndChar, width: chunk.width }],
|
|
85113
|
+
...metrics
|
|
85114
|
+
};
|
|
85115
|
+
addBarTabsToLine(chunkLine);
|
|
85116
|
+
lines.push(chunkLine);
|
|
85117
|
+
}
|
|
85118
|
+
chunkCharOffset = chunkEndChar;
|
|
85119
|
+
}
|
|
85120
|
+
continue;
|
|
85121
|
+
}
|
|
85010
85122
|
if (!currentLine) {
|
|
85011
85123
|
currentLine = {
|
|
85012
85124
|
fromRun: runIndex,
|
|
@@ -85585,6 +85697,35 @@ const measureRunWidth = (text, font, ctx2, run2) => {
|
|
|
85585
85697
|
const width = getMeasuredTextWidth(text, font, letterSpacing, ctx2);
|
|
85586
85698
|
return roundValue(width);
|
|
85587
85699
|
};
|
|
85700
|
+
const breakWordIntoChunks = (word, maxWidth, font, ctx2, run2) => {
|
|
85701
|
+
const chunks = [];
|
|
85702
|
+
if (maxWidth <= 0) {
|
|
85703
|
+
for (const char of word) {
|
|
85704
|
+
const charWidth = measureRunWidth(char, font, ctx2, run2);
|
|
85705
|
+
chunks.push({ text: char, width: charWidth });
|
|
85706
|
+
}
|
|
85707
|
+
return chunks;
|
|
85708
|
+
}
|
|
85709
|
+
let currentChunk = "";
|
|
85710
|
+
let currentWidth = 0;
|
|
85711
|
+
for (let i = 0; i < word.length; i++) {
|
|
85712
|
+
const char = word[i];
|
|
85713
|
+
const testChunk = currentChunk + char;
|
|
85714
|
+
const testWidth = measureRunWidth(testChunk, font, ctx2, run2);
|
|
85715
|
+
if (testWidth > maxWidth && currentChunk.length > 0) {
|
|
85716
|
+
chunks.push({ text: currentChunk, width: currentWidth });
|
|
85717
|
+
currentChunk = char;
|
|
85718
|
+
currentWidth = measureRunWidth(char, font, ctx2, run2);
|
|
85719
|
+
} else {
|
|
85720
|
+
currentChunk = testChunk;
|
|
85721
|
+
currentWidth = testWidth;
|
|
85722
|
+
}
|
|
85723
|
+
}
|
|
85724
|
+
if (currentChunk.length > 0) {
|
|
85725
|
+
chunks.push({ text: currentChunk, width: currentWidth });
|
|
85726
|
+
}
|
|
85727
|
+
return chunks;
|
|
85728
|
+
};
|
|
85588
85729
|
const appendSegment = (segments, runIndex, fromChar, toChar, width, x2) => {
|
|
85589
85730
|
if (!segments) return;
|
|
85590
85731
|
const last = segments[segments.length - 1];
|
|
@@ -42397,7 +42397,7 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
42397
42397
|
static getStoredSuperdocVersion(docx) {
|
|
42398
42398
|
return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
|
|
42399
42399
|
}
|
|
42400
|
-
static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.
|
|
42400
|
+
static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.94") {
|
|
42401
42401
|
return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
|
|
42402
42402
|
}
|
|
42403
42403
|
/**
|
|
@@ -56547,12 +56547,12 @@ const findTrackedMarkBetween = ({
|
|
|
56547
56547
|
const { doc: doc2 } = tr;
|
|
56548
56548
|
const startPos = Math.max(from2 - offset2, 0);
|
|
56549
56549
|
const endPos = Math.min(to + offset2, doc2.content.size);
|
|
56550
|
-
let markFound;
|
|
56551
|
-
|
|
56550
|
+
let markFound = null;
|
|
56551
|
+
const tryMatch = (node, pos) => {
|
|
56552
56552
|
if (!node || node?.nodeSize === void 0) {
|
|
56553
56553
|
return;
|
|
56554
56554
|
}
|
|
56555
|
-
const mark = node.marks
|
|
56555
|
+
const mark = node.marks?.find(
|
|
56556
56556
|
(mark2) => mark2.type.name === markName && Object.keys(attrs).every((attr) => mark2.attrs[attr] === attrs[attr])
|
|
56557
56557
|
);
|
|
56558
56558
|
if (mark && !markFound) {
|
|
@@ -56561,24 +56561,36 @@ const findTrackedMarkBetween = ({
|
|
|
56561
56561
|
to: pos + node.nodeSize,
|
|
56562
56562
|
mark
|
|
56563
56563
|
};
|
|
56564
|
+
return false;
|
|
56564
56565
|
}
|
|
56566
|
+
};
|
|
56567
|
+
doc2.nodesBetween(startPos, endPos, (node, pos) => {
|
|
56568
|
+
return tryMatch(node, pos);
|
|
56565
56569
|
});
|
|
56566
|
-
const
|
|
56567
|
-
|
|
56568
|
-
|
|
56569
|
-
|
|
56570
|
-
|
|
56571
|
-
|
|
56572
|
-
|
|
56573
|
-
);
|
|
56574
|
-
|
|
56575
|
-
|
|
56576
|
-
|
|
56577
|
-
to: endPos + node.nodeSize,
|
|
56578
|
-
mark
|
|
56579
|
-
};
|
|
56570
|
+
const inspectAroundPosition = (pos) => {
|
|
56571
|
+
if (pos < 0 || pos > doc2.content.size) {
|
|
56572
|
+
return;
|
|
56573
|
+
}
|
|
56574
|
+
const resolved = doc2.resolve(pos);
|
|
56575
|
+
const before = resolved.nodeBefore;
|
|
56576
|
+
if (before?.type?.name === "run") {
|
|
56577
|
+
const beforeStart = Math.max(pos - before.nodeSize, 0);
|
|
56578
|
+
const node = before.content?.content?.[0];
|
|
56579
|
+
if (node?.type?.name === "text") {
|
|
56580
|
+
tryMatch(node, beforeStart);
|
|
56580
56581
|
}
|
|
56581
56582
|
}
|
|
56583
|
+
const after = resolved.nodeAfter;
|
|
56584
|
+
if (after?.type?.name === "run") {
|
|
56585
|
+
const node = after.content?.content?.[0];
|
|
56586
|
+
if (node?.type?.name === "text") {
|
|
56587
|
+
tryMatch(node, pos);
|
|
56588
|
+
}
|
|
56589
|
+
}
|
|
56590
|
+
};
|
|
56591
|
+
if (!markFound) {
|
|
56592
|
+
inspectAroundPosition(startPos);
|
|
56593
|
+
inspectAroundPosition(endPos);
|
|
56582
56594
|
}
|
|
56583
56595
|
return markFound;
|
|
56584
56596
|
};
|
|
@@ -59603,7 +59615,7 @@ const isHeadless = (editor) => {
|
|
|
59603
59615
|
const shouldSkipNodeView = (editor) => {
|
|
59604
59616
|
return isHeadless(editor);
|
|
59605
59617
|
};
|
|
59606
|
-
const summaryVersion = "1.0.0-beta.
|
|
59618
|
+
const summaryVersion = "1.0.0-beta.94";
|
|
59607
59619
|
const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
|
|
59608
59620
|
const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
|
|
59609
59621
|
function mapAttributes(attrs) {
|
|
@@ -60392,7 +60404,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
60392
60404
|
{ default: remarkStringify },
|
|
60393
60405
|
{ default: remarkGfm }
|
|
60394
60406
|
] = await Promise.all([
|
|
60395
|
-
Promise.resolve().then(() => require("./index-
|
|
60407
|
+
Promise.resolve().then(() => require("./index-BstIHBcW-6lPNsqaA.cjs")),
|
|
60396
60408
|
Promise.resolve().then(() => require("./index-DRCvimau-H4Ck3S9a.cjs")),
|
|
60397
60409
|
Promise.resolve().then(() => require("./index-C_x_N6Uh-Db3CUJMX.cjs")),
|
|
60398
60410
|
Promise.resolve().then(() => require("./index-D_sWOSiG-BtDZzJ6I.cjs")),
|
|
@@ -60597,7 +60609,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
60597
60609
|
* Process collaboration migrations
|
|
60598
60610
|
*/
|
|
60599
60611
|
processCollaborationMigrations() {
|
|
60600
|
-
console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.
|
|
60612
|
+
console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.94");
|
|
60601
60613
|
if (!this.options.ydoc) return;
|
|
60602
60614
|
const metaMap = this.options.ydoc.getMap("meta");
|
|
60603
60615
|
let docVersion = metaMap.get("version");
|
|
@@ -77474,7 +77486,9 @@ const deriveBlockVersion = (block) => {
|
|
|
77474
77486
|
textRun.letterSpacing != null ? textRun.letterSpacing : "",
|
|
77475
77487
|
textRun.pmStart ?? "",
|
|
77476
77488
|
textRun.pmEnd ?? "",
|
|
77477
|
-
textRun.token ?? ""
|
|
77489
|
+
textRun.token ?? "",
|
|
77490
|
+
// Tracked changes - force re-render when added or removed tracked change
|
|
77491
|
+
textRun.trackedChange ? 1 : 0
|
|
77478
77492
|
].join(",");
|
|
77479
77493
|
}).join("|");
|
|
77480
77494
|
const attrs = block.attrs;
|
|
@@ -85024,6 +85038,104 @@ async function measureParagraphBlock(block, maxWidth) {
|
|
|
85024
85038
|
const wordStartChar = charPosInRun;
|
|
85025
85039
|
const wordEndNoSpace = charPosInRun + word.length;
|
|
85026
85040
|
const wordEndWithSpace = charPosInRun + (isLastWord ? word.length : word.length + 1);
|
|
85041
|
+
const effectiveMaxWidth = currentLine ? currentLine.maxWidth : getEffectiveWidth(lines.length === 0 ? initialAvailableWidth : contentWidth);
|
|
85042
|
+
if (wordOnlyWidth > effectiveMaxWidth && word.length > 1) {
|
|
85043
|
+
if (currentLine && currentLine.width > 0 && currentLine.segments.length > 0) {
|
|
85044
|
+
const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
|
|
85045
|
+
const { spaceCount: _sc, ...lineBase } = currentLine;
|
|
85046
|
+
const completedLine = { ...lineBase, ...metrics };
|
|
85047
|
+
addBarTabsToLine(completedLine);
|
|
85048
|
+
lines.push(completedLine);
|
|
85049
|
+
tabStopCursor = 0;
|
|
85050
|
+
pendingTabAlignment = null;
|
|
85051
|
+
currentLine = null;
|
|
85052
|
+
}
|
|
85053
|
+
const lineMaxWidth = getEffectiveWidth(lines.length === 0 ? initialAvailableWidth : contentWidth);
|
|
85054
|
+
const hasTabOnlyLine = currentLine && currentLine.segments.length === 0 && currentLine.width > 0;
|
|
85055
|
+
const remainingWidthAfterTab = hasTabOnlyLine ? currentLine.maxWidth - currentLine.width : lineMaxWidth;
|
|
85056
|
+
const chunkWidth = hasTabOnlyLine ? Math.max(remainingWidthAfterTab, lineMaxWidth * 0.25) : lineMaxWidth;
|
|
85057
|
+
const chunks = breakWordIntoChunks(word, chunkWidth - WIDTH_FUDGE_PX, font, ctx2, run2);
|
|
85058
|
+
let chunkCharOffset = wordStartChar;
|
|
85059
|
+
for (let chunkIndex = 0; chunkIndex < chunks.length; chunkIndex++) {
|
|
85060
|
+
const chunk = chunks[chunkIndex];
|
|
85061
|
+
const chunkStartChar = chunkCharOffset;
|
|
85062
|
+
const chunkEndChar = chunkCharOffset + chunk.text.length;
|
|
85063
|
+
const isLastChunk = chunkIndex === chunks.length - 1;
|
|
85064
|
+
const isFirstChunk = chunkIndex === 0;
|
|
85065
|
+
if (isFirstChunk && hasTabOnlyLine && currentLine) {
|
|
85066
|
+
currentLine.toRun = runIndex;
|
|
85067
|
+
currentLine.toChar = chunkEndChar;
|
|
85068
|
+
currentLine.width = roundValue(currentLine.width + chunk.width);
|
|
85069
|
+
currentLine.maxFontSize = Math.max(currentLine.maxFontSize, run2.fontSize);
|
|
85070
|
+
currentLine.maxFontInfo = getFontInfoFromRun(run2);
|
|
85071
|
+
currentLine.segments.push({
|
|
85072
|
+
runIndex,
|
|
85073
|
+
fromChar: chunkStartChar,
|
|
85074
|
+
toChar: chunkEndChar,
|
|
85075
|
+
width: chunk.width
|
|
85076
|
+
});
|
|
85077
|
+
if (isLastChunk) {
|
|
85078
|
+
const ls = run2.letterSpacing ?? 0;
|
|
85079
|
+
if (!isLastWord && currentLine.width + spaceWidth <= currentLine.maxWidth - WIDTH_FUDGE_PX) {
|
|
85080
|
+
currentLine.toChar = wordEndWithSpace;
|
|
85081
|
+
currentLine.width = roundValue(currentLine.width + spaceWidth + ls);
|
|
85082
|
+
charPosInRun = wordEndWithSpace;
|
|
85083
|
+
currentLine.spaceCount += 1;
|
|
85084
|
+
} else {
|
|
85085
|
+
charPosInRun = wordEndWithSpace;
|
|
85086
|
+
}
|
|
85087
|
+
} else {
|
|
85088
|
+
const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
|
|
85089
|
+
const { spaceCount: _sc, ...lineBase } = currentLine;
|
|
85090
|
+
const completedLine = { ...lineBase, ...metrics };
|
|
85091
|
+
addBarTabsToLine(completedLine);
|
|
85092
|
+
lines.push(completedLine);
|
|
85093
|
+
tabStopCursor = 0;
|
|
85094
|
+
pendingTabAlignment = null;
|
|
85095
|
+
currentLine = null;
|
|
85096
|
+
}
|
|
85097
|
+
} else if (isLastChunk) {
|
|
85098
|
+
currentLine = {
|
|
85099
|
+
fromRun: runIndex,
|
|
85100
|
+
fromChar: chunkStartChar,
|
|
85101
|
+
toRun: runIndex,
|
|
85102
|
+
toChar: chunkEndChar,
|
|
85103
|
+
width: chunk.width,
|
|
85104
|
+
maxFontSize: run2.fontSize,
|
|
85105
|
+
maxFontInfo: getFontInfoFromRun(run2),
|
|
85106
|
+
maxWidth: getEffectiveWidth(contentWidth),
|
|
85107
|
+
segments: [{ runIndex, fromChar: chunkStartChar, toChar: chunkEndChar, width: chunk.width }],
|
|
85108
|
+
spaceCount: 0
|
|
85109
|
+
};
|
|
85110
|
+
const ls = run2.letterSpacing ?? 0;
|
|
85111
|
+
if (!isLastWord && currentLine.width + spaceWidth <= currentLine.maxWidth - WIDTH_FUDGE_PX) {
|
|
85112
|
+
currentLine.toChar = wordEndWithSpace;
|
|
85113
|
+
currentLine.width = roundValue(currentLine.width + spaceWidth + ls);
|
|
85114
|
+
charPosInRun = wordEndWithSpace;
|
|
85115
|
+
currentLine.spaceCount += 1;
|
|
85116
|
+
} else {
|
|
85117
|
+
charPosInRun = wordEndWithSpace;
|
|
85118
|
+
}
|
|
85119
|
+
} else {
|
|
85120
|
+
const chunkLineMaxWidth = getEffectiveWidth(lines.length === 0 ? initialAvailableWidth : contentWidth);
|
|
85121
|
+
const metrics = calculateTypographyMetrics(run2.fontSize, spacing, getFontInfoFromRun(run2));
|
|
85122
|
+
const chunkLine = {
|
|
85123
|
+
fromRun: runIndex,
|
|
85124
|
+
fromChar: chunkStartChar,
|
|
85125
|
+
toRun: runIndex,
|
|
85126
|
+
toChar: chunkEndChar,
|
|
85127
|
+
width: chunk.width,
|
|
85128
|
+
maxWidth: chunkLineMaxWidth,
|
|
85129
|
+
segments: [{ runIndex, fromChar: chunkStartChar, toChar: chunkEndChar, width: chunk.width }],
|
|
85130
|
+
...metrics
|
|
85131
|
+
};
|
|
85132
|
+
addBarTabsToLine(chunkLine);
|
|
85133
|
+
lines.push(chunkLine);
|
|
85134
|
+
}
|
|
85135
|
+
chunkCharOffset = chunkEndChar;
|
|
85136
|
+
}
|
|
85137
|
+
continue;
|
|
85138
|
+
}
|
|
85027
85139
|
if (!currentLine) {
|
|
85028
85140
|
currentLine = {
|
|
85029
85141
|
fromRun: runIndex,
|
|
@@ -85602,6 +85714,35 @@ const measureRunWidth = (text, font, ctx2, run2) => {
|
|
|
85602
85714
|
const width = getMeasuredTextWidth(text, font, letterSpacing, ctx2);
|
|
85603
85715
|
return roundValue(width);
|
|
85604
85716
|
};
|
|
85717
|
+
const breakWordIntoChunks = (word, maxWidth, font, ctx2, run2) => {
|
|
85718
|
+
const chunks = [];
|
|
85719
|
+
if (maxWidth <= 0) {
|
|
85720
|
+
for (const char of word) {
|
|
85721
|
+
const charWidth = measureRunWidth(char, font, ctx2, run2);
|
|
85722
|
+
chunks.push({ text: char, width: charWidth });
|
|
85723
|
+
}
|
|
85724
|
+
return chunks;
|
|
85725
|
+
}
|
|
85726
|
+
let currentChunk = "";
|
|
85727
|
+
let currentWidth = 0;
|
|
85728
|
+
for (let i = 0; i < word.length; i++) {
|
|
85729
|
+
const char = word[i];
|
|
85730
|
+
const testChunk = currentChunk + char;
|
|
85731
|
+
const testWidth = measureRunWidth(testChunk, font, ctx2, run2);
|
|
85732
|
+
if (testWidth > maxWidth && currentChunk.length > 0) {
|
|
85733
|
+
chunks.push({ text: currentChunk, width: currentWidth });
|
|
85734
|
+
currentChunk = char;
|
|
85735
|
+
currentWidth = measureRunWidth(char, font, ctx2, run2);
|
|
85736
|
+
} else {
|
|
85737
|
+
currentChunk = testChunk;
|
|
85738
|
+
currentWidth = testWidth;
|
|
85739
|
+
}
|
|
85740
|
+
}
|
|
85741
|
+
if (currentChunk.length > 0) {
|
|
85742
|
+
chunks.push({ text: currentChunk, width: currentWidth });
|
|
85743
|
+
}
|
|
85744
|
+
return chunks;
|
|
85745
|
+
};
|
|
85605
85746
|
const appendSegment = (segments, runIndex, fromChar, toChar, width, x2) => {
|
|
85606
85747
|
if (!segments) return;
|
|
85607
85748
|
const last = segments[segments.length - 1];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, onMounted, onUnmounted, computed, createElementBlock, openBlock, withModifiers, createElementVNode, withDirectives, unref, vModelText, createCommentVNode, nextTick } from "vue";
|
|
2
|
-
import { T as TextSelection } from "./chunks/converter-
|
|
3
|
-
import { _ as _export_sfc } from "./chunks/editor-
|
|
2
|
+
import { T as TextSelection } from "./chunks/converter-CIgfC-et.js";
|
|
3
|
+
import { _ as _export_sfc } from "./chunks/editor-6Tyu_6Nf.js";
|
|
4
4
|
const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
|
|
5
5
|
const SYSTEM_PROMPT = "You are an expert copywriter and you are immersed in a document editor. You are to provide document related text responses based on the user prompts. Only write what is asked for. Do not provide explanations. Try to keep placeholders as short as possible. Do not output your prompt. Your instructions are: ";
|
|
6
6
|
async function baseInsightsFetch(payload, options = {}) {
|
|
@@ -42697,7 +42697,7 @@ const _SuperConverter = class _SuperConverter {
|
|
|
42697
42697
|
static getStoredSuperdocVersion(docx) {
|
|
42698
42698
|
return _SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
|
|
42699
42699
|
}
|
|
42700
|
-
static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.0.0-beta.
|
|
42700
|
+
static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.0.0-beta.94") {
|
|
42701
42701
|
return _SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version, false);
|
|
42702
42702
|
}
|
|
42703
42703
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as process$1, aJ as commonjsGlobal, B as Buffer, aK as getDefaultExportFromCjs, aL as getContentTypesFromXml, aM as xmljs } from "./converter-
|
|
1
|
+
import { p as process$1, aJ as commonjsGlobal, B as Buffer, aK as getDefaultExportFromCjs, aL as getContentTypesFromXml, aM as xmljs } from "./converter-CIgfC-et.js";
|
|
2
2
|
function commonjsRequire(path) {
|
|
3
3
|
throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
4
4
|
}
|