@superdoc-dev/cli 0.7.0-next.1 → 0.7.0-next.10
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/index.js +352 -102
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -19530,6 +19530,27 @@ function expectOptionalEnvVarName(value, path) {
|
|
|
19530
19530
|
}
|
|
19531
19531
|
return value;
|
|
19532
19532
|
}
|
|
19533
|
+
function expectOptionalWebSocketParams(value, path) {
|
|
19534
|
+
if (value == null)
|
|
19535
|
+
return;
|
|
19536
|
+
if (!isRecord3(value)) {
|
|
19537
|
+
throw new CliError("VALIDATION_ERROR", `${path} must be an object of string key-value pairs.`);
|
|
19538
|
+
}
|
|
19539
|
+
const result = {};
|
|
19540
|
+
for (const [key, val] of Object.entries(value)) {
|
|
19541
|
+
if (key.trim().length === 0) {
|
|
19542
|
+
throw new CliError("VALIDATION_ERROR", `${path} keys must be non-empty strings.`);
|
|
19543
|
+
}
|
|
19544
|
+
if (RESERVED_WEBSOCKET_PARAM_KEYS.has(key)) {
|
|
19545
|
+
throw new CliError("VALIDATION_ERROR", `${path}.${key} is reserved; the collaboration token is set automatically from tokenEnv.`);
|
|
19546
|
+
}
|
|
19547
|
+
if (typeof val !== "string") {
|
|
19548
|
+
throw new CliError("VALIDATION_ERROR", `${path}.${key} must be a string.`);
|
|
19549
|
+
}
|
|
19550
|
+
result[key] = val;
|
|
19551
|
+
}
|
|
19552
|
+
return result;
|
|
19553
|
+
}
|
|
19533
19554
|
function parseOnMissing(value) {
|
|
19534
19555
|
if (value == null)
|
|
19535
19556
|
return;
|
|
@@ -19562,15 +19583,13 @@ function parseWebSocketInput(raw) {
|
|
|
19562
19583
|
if ("token" in raw) {
|
|
19563
19584
|
throw new CliError("VALIDATION_ERROR", "collaboration.token is not supported in v1; use collaboration.tokenEnv.");
|
|
19564
19585
|
}
|
|
19565
|
-
if ("params" in raw) {
|
|
19566
|
-
throw new CliError("VALIDATION_ERROR", "collaboration.params is not supported in v1.");
|
|
19567
|
-
}
|
|
19568
19586
|
const providerType = normalizeProviderType(raw.providerType, "collaboration.providerType");
|
|
19569
19587
|
return {
|
|
19570
19588
|
providerType,
|
|
19571
19589
|
url: expectNonEmptyString(raw.url, "collaboration.url").trim(),
|
|
19572
19590
|
documentId: raw.documentId != null ? expectNonEmptyString(raw.documentId, "collaboration.documentId") : undefined,
|
|
19573
19591
|
tokenEnv: expectOptionalEnvVarName(raw.tokenEnv, "collaboration.tokenEnv"),
|
|
19592
|
+
params: expectOptionalWebSocketParams(raw.params, "collaboration.params"),
|
|
19574
19593
|
...parseSharedFields(raw)
|
|
19575
19594
|
};
|
|
19576
19595
|
}
|
|
@@ -19588,7 +19607,7 @@ function parseLiveblocksInput(raw) {
|
|
|
19588
19607
|
throw new CliError("VALIDATION_ERROR", "collaboration.token is not supported in v1.");
|
|
19589
19608
|
}
|
|
19590
19609
|
if ("params" in raw) {
|
|
19591
|
-
throw new CliError("VALIDATION_ERROR", "collaboration.params is not supported
|
|
19610
|
+
throw new CliError("VALIDATION_ERROR", "collaboration.params is not supported for Liveblocks.");
|
|
19592
19611
|
}
|
|
19593
19612
|
if ("headers" in raw) {
|
|
19594
19613
|
throw new CliError("VALIDATION_ERROR", "collaboration.headers is not supported; use authHeadersEnv for custom auth headers.");
|
|
@@ -19647,7 +19666,7 @@ function buildShorthandCollaborationInput(params) {
|
|
|
19647
19666
|
...params
|
|
19648
19667
|
});
|
|
19649
19668
|
}
|
|
19650
|
-
var DEFAULT_SHORTHAND_COLLABORATION_PROVIDER_TYPE = "y-websocket", WEBSOCKET_ALLOWED_KEYS, LIVEBLOCKS_ALLOWED_KEYS;
|
|
19669
|
+
var DEFAULT_SHORTHAND_COLLABORATION_PROVIDER_TYPE = "y-websocket", WEBSOCKET_ALLOWED_KEYS, RESERVED_WEBSOCKET_PARAM_KEYS, LIVEBLOCKS_ALLOWED_KEYS;
|
|
19651
19670
|
var init_parse = __esm(() => {
|
|
19652
19671
|
init_errors();
|
|
19653
19672
|
init_guards();
|
|
@@ -19657,10 +19676,12 @@ var init_parse = __esm(() => {
|
|
|
19657
19676
|
"url",
|
|
19658
19677
|
"documentId",
|
|
19659
19678
|
"tokenEnv",
|
|
19679
|
+
"params",
|
|
19660
19680
|
"syncTimeoutMs",
|
|
19661
19681
|
"onMissing",
|
|
19662
19682
|
"bootstrapSettlingMs"
|
|
19663
19683
|
]);
|
|
19684
|
+
RESERVED_WEBSOCKET_PARAM_KEYS = new Set(["token"]);
|
|
19664
19685
|
LIVEBLOCKS_ALLOWED_KEYS = new Set([
|
|
19665
19686
|
"providerType",
|
|
19666
19687
|
"roomId",
|
|
@@ -19680,6 +19701,7 @@ function resolveWebSocketProfile(input, sessionId) {
|
|
|
19680
19701
|
url: input.url,
|
|
19681
19702
|
documentId: input.documentId?.trim() || sessionId,
|
|
19682
19703
|
tokenEnv: input.tokenEnv,
|
|
19704
|
+
params: input.params,
|
|
19683
19705
|
syncTimeoutMs: input.syncTimeoutMs,
|
|
19684
19706
|
onMissing: input.onMissing,
|
|
19685
19707
|
bootstrapSettlingMs: input.bootstrapSettlingMs
|
|
@@ -41219,9 +41241,13 @@ function createWebSocketRuntime(profile) {
|
|
|
41219
41241
|
const syncTimeoutMs = profile.syncTimeoutMs ?? DEFAULT_SYNC_TIMEOUT_MS;
|
|
41220
41242
|
let provider;
|
|
41221
41243
|
if (profile.providerType === "y-websocket") {
|
|
41222
|
-
const
|
|
41244
|
+
const params3 = { ...profile.params ?? {} };
|
|
41223
41245
|
if (token) {
|
|
41224
|
-
|
|
41246
|
+
params3.token = token;
|
|
41247
|
+
}
|
|
41248
|
+
const providerOptions = {};
|
|
41249
|
+
if (Object.keys(params3).length > 0) {
|
|
41250
|
+
providerOptions.params = params3;
|
|
41225
41251
|
}
|
|
41226
41252
|
provider = new WebsocketProvider(profile.url, profile.documentId, ydoc, providerOptions);
|
|
41227
41253
|
} else {
|
|
@@ -41230,6 +41256,7 @@ function createWebSocketRuntime(profile) {
|
|
|
41230
41256
|
document: ydoc,
|
|
41231
41257
|
name: profile.documentId,
|
|
41232
41258
|
token: token ?? "",
|
|
41259
|
+
parameters: profile.params,
|
|
41233
41260
|
preserveConnection: false
|
|
41234
41261
|
});
|
|
41235
41262
|
}
|
|
@@ -41356,6 +41383,21 @@ function normalizeSharedFields(record) {
|
|
|
41356
41383
|
bootstrapSettlingMs: typeof record.bootstrapSettlingMs === "number" ? record.bootstrapSettlingMs : undefined
|
|
41357
41384
|
};
|
|
41358
41385
|
}
|
|
41386
|
+
function normalizeWebSocketParams(value) {
|
|
41387
|
+
if (value == null)
|
|
41388
|
+
return;
|
|
41389
|
+
if (!isRecord3(value))
|
|
41390
|
+
return null;
|
|
41391
|
+
const result = {};
|
|
41392
|
+
for (const [key, val] of Object.entries(value)) {
|
|
41393
|
+
if (typeof key !== "string" || key.length === 0)
|
|
41394
|
+
return null;
|
|
41395
|
+
if (typeof val !== "string")
|
|
41396
|
+
return null;
|
|
41397
|
+
result[key] = val;
|
|
41398
|
+
}
|
|
41399
|
+
return result;
|
|
41400
|
+
}
|
|
41359
41401
|
function normalizeWebSocketProfile(record) {
|
|
41360
41402
|
const { providerType, url: url2, documentId, tokenEnv } = record;
|
|
41361
41403
|
if (typeof url2 !== "string" || url2.length === 0)
|
|
@@ -41367,11 +41409,15 @@ function normalizeWebSocketProfile(record) {
|
|
|
41367
41409
|
const shared = normalizeSharedFields(record);
|
|
41368
41410
|
if (!shared)
|
|
41369
41411
|
return;
|
|
41412
|
+
const params3 = normalizeWebSocketParams(record.params);
|
|
41413
|
+
if (params3 === null)
|
|
41414
|
+
return;
|
|
41370
41415
|
return {
|
|
41371
41416
|
providerType,
|
|
41372
41417
|
url: url2,
|
|
41373
41418
|
documentId,
|
|
41374
41419
|
tokenEnv: typeof tokenEnv === "string" ? tokenEnv : undefined,
|
|
41420
|
+
params: params3,
|
|
41375
41421
|
...shared
|
|
41376
41422
|
};
|
|
41377
41423
|
}
|
|
@@ -65352,7 +65398,7 @@ var init_remark_gfm_BhnWr3yf_es = __esm(() => {
|
|
|
65352
65398
|
emptyOptions2 = {};
|
|
65353
65399
|
});
|
|
65354
65400
|
|
|
65355
|
-
// ../../packages/superdoc/dist/chunks/SuperConverter-
|
|
65401
|
+
// ../../packages/superdoc/dist/chunks/SuperConverter-CWhofwLf.es.js
|
|
65356
65402
|
function getExtensionConfigField(extension$1, field, context = { name: "" }) {
|
|
65357
65403
|
const fieldValue = extension$1.config[field];
|
|
65358
65404
|
if (typeof fieldValue === "function")
|
|
@@ -110976,6 +111022,21 @@ var isRegExp = (value) => {
|
|
|
110976
111022
|
const runType = newState.schema.nodes.run;
|
|
110977
111023
|
if (!runType)
|
|
110978
111024
|
return null;
|
|
111025
|
+
const removedKeys = /* @__PURE__ */ new Set;
|
|
111026
|
+
transactions.forEach((t) => {
|
|
111027
|
+
t.steps.forEach((step$1) => {
|
|
111028
|
+
const jsonStep = step$1.toJSON?.();
|
|
111029
|
+
if (jsonStep?.stepType !== "removeMark" || !jsonStep.mark?.type)
|
|
111030
|
+
return;
|
|
111031
|
+
if (jsonStep.mark.type === "textStyle")
|
|
111032
|
+
Object.entries(jsonStep.mark.attrs || {}).forEach(([key, value]) => {
|
|
111033
|
+
if (value != null)
|
|
111034
|
+
removedKeys.add(key);
|
|
111035
|
+
});
|
|
111036
|
+
else
|
|
111037
|
+
removedKeys.add(jsonStep.mark.type);
|
|
111038
|
+
});
|
|
111039
|
+
});
|
|
110979
111040
|
const preservedDerivedKeys = /* @__PURE__ */ new Set;
|
|
110980
111041
|
const preferExistingKeys = /* @__PURE__ */ new Set;
|
|
110981
111042
|
transactions.forEach((transaction) => {
|
|
@@ -111044,9 +111105,13 @@ var isRegExp = (value) => {
|
|
|
111044
111105
|
if (!runProperties)
|
|
111045
111106
|
runProperties = {};
|
|
111046
111107
|
lostKeys.forEach((k) => {
|
|
111108
|
+
if (removedKeys.has(k))
|
|
111109
|
+
return;
|
|
111047
111110
|
if (runNode.attrs?.runProperties?.[k] !== undefined)
|
|
111048
111111
|
runProperties[k] = runNode.attrs.runProperties[k];
|
|
111049
111112
|
});
|
|
111113
|
+
if (runProperties && Object.keys(runProperties).length === 0)
|
|
111114
|
+
runProperties = null;
|
|
111050
111115
|
}
|
|
111051
111116
|
}
|
|
111052
111117
|
const { inlineKeys: newInlineKeys, overrideKeys: newOverrideKeys } = computeSegmentKeys(runProperties, segments[0]);
|
|
@@ -116990,7 +117055,7 @@ var isRegExp = (value) => {
|
|
|
116990
117055
|
if (id2)
|
|
116991
117056
|
return trackedChanges.filter(({ mark }) => mark.attrs.id === id2);
|
|
116992
117057
|
return trackedChanges;
|
|
116993
|
-
}, DERIVED_ID_LENGTH = 24, groupedCache, SDT_NODE_NAMES, SDT_BLOCK_NAME = "structuredContentBlock", VALID_CONTROL_TYPES, VALID_LOCK_MODES2, VALID_APPEARANCES, FIELD_LIKE_SDT_TYPES, liveDocumentCountsCache, BIBLIOGRAPHY_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/bibliography", CUSTOM_XML_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml", CUSTOM_XML_PROPS_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps", DEFAULT_SELECTED_STYLE = "/APA.XSL", DEFAULT_STYLE_NAME = "APA", DEFAULT_VERSION = "6", API_TO_OOXML_SOURCE_TYPE, OOXML_TO_API_SOURCE_TYPE, SIMPLE_FIELD_TO_XML_TAG, XML_TAG_TO_SIMPLE_FIELD, import_lib2, FONT_FAMILY_FALLBACKS, DEFAULT_GENERIC_FALLBACK = "sans-serif", DEFAULT_FONT_SIZE_PT = 10, CURRENT_APP_VERSION = "1.
|
|
117058
|
+
}, DERIVED_ID_LENGTH = 24, groupedCache, SDT_NODE_NAMES, SDT_BLOCK_NAME = "structuredContentBlock", VALID_CONTROL_TYPES, VALID_LOCK_MODES2, VALID_APPEARANCES, FIELD_LIKE_SDT_TYPES, liveDocumentCountsCache, BIBLIOGRAPHY_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/bibliography", CUSTOM_XML_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml", CUSTOM_XML_PROPS_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps", DEFAULT_SELECTED_STYLE = "/APA.XSL", DEFAULT_STYLE_NAME = "APA", DEFAULT_VERSION = "6", API_TO_OOXML_SOURCE_TYPE, OOXML_TO_API_SOURCE_TYPE, SIMPLE_FIELD_TO_XML_TAG, XML_TAG_TO_SIMPLE_FIELD, import_lib2, FONT_FAMILY_FALLBACKS, DEFAULT_GENERIC_FALLBACK = "sans-serif", DEFAULT_FONT_SIZE_PT = 10, CURRENT_APP_VERSION = "1.26.0", collectRunDefaultProperties = (runProps, { allowOverrideTypeface = true, allowOverrideSize = true, themeResolver, state }) => {
|
|
116994
117059
|
if (!runProps?.elements?.length || !state)
|
|
116995
117060
|
return;
|
|
116996
117061
|
const fontsNode = runProps.elements.find((el) => el.name === "w:rFonts");
|
|
@@ -117024,7 +117089,7 @@ var isRegExp = (value) => {
|
|
|
117024
117089
|
state.kern = kernNode.attributes["w:val"];
|
|
117025
117090
|
}
|
|
117026
117091
|
}, SuperConverter;
|
|
117027
|
-
var
|
|
117092
|
+
var init_SuperConverter_CWhofwLf_es = __esm(() => {
|
|
117028
117093
|
init_rolldown_runtime_Bg48TavK_es();
|
|
117029
117094
|
init_jszip_C49i9kUs_es();
|
|
117030
117095
|
init_xml_js_CqGKpaft_es();
|
|
@@ -154220,7 +154285,7 @@ var init_SuperConverter_DWRVjawM_es = __esm(() => {
|
|
|
154220
154285
|
};
|
|
154221
154286
|
});
|
|
154222
154287
|
|
|
154223
|
-
// ../../packages/superdoc/dist/chunks/create-headless-toolbar-
|
|
154288
|
+
// ../../packages/superdoc/dist/chunks/create-headless-toolbar-C2iuH72Y.es.js
|
|
154224
154289
|
function parseSizeUnit(val = "0") {
|
|
154225
154290
|
const length3 = val.toString() || "0";
|
|
154226
154291
|
const value = Number.parseFloat(length3);
|
|
@@ -155831,8 +155896,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
|
|
|
155831
155896
|
return false;
|
|
155832
155897
|
return Boolean(checker(attrs));
|
|
155833
155898
|
};
|
|
155834
|
-
var
|
|
155835
|
-
|
|
155899
|
+
var init_create_headless_toolbar_C2iuH72Y_es = __esm(() => {
|
|
155900
|
+
init_SuperConverter_CWhofwLf_es();
|
|
155836
155901
|
init_constants_CGhJRd87_es();
|
|
155837
155902
|
init_dist_B8HfvhaK_es();
|
|
155838
155903
|
CSS_DIMENSION_REGEX = /[\d-.]+(\w+)$/;
|
|
@@ -204270,7 +204335,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
|
|
|
204270
204335
|
init_remark_gfm_BhnWr3yf_es();
|
|
204271
204336
|
});
|
|
204272
204337
|
|
|
204273
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
204338
|
+
// ../../packages/superdoc/dist/chunks/src-CZB4kJvn.es.js
|
|
204274
204339
|
function deleteProps(obj, propOrProps) {
|
|
204275
204340
|
const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
|
|
204276
204341
|
const removeNested = (target, pathParts, index2 = 0) => {
|
|
@@ -204558,6 +204623,16 @@ function shouldApplyJustify(params$1) {
|
|
|
204558
204623
|
return false;
|
|
204559
204624
|
return true;
|
|
204560
204625
|
}
|
|
204626
|
+
function getFirstLineIndentOffset(indent2, suppressFirstLineIndent) {
|
|
204627
|
+
if (suppressFirstLineIndent)
|
|
204628
|
+
return 0;
|
|
204629
|
+
return (indent2?.firstLine ?? 0) - (indent2?.hanging ?? 0);
|
|
204630
|
+
}
|
|
204631
|
+
function adjustAvailableWidthForTextIndent(availableWidth, textIndentOffset, lineMaxWidth) {
|
|
204632
|
+
if (textIndentOffset !== 0 && (textIndentOffset < 0 || lineMaxWidth == null))
|
|
204633
|
+
return Math.max(0, availableWidth - textIndentOffset);
|
|
204634
|
+
return availableWidth;
|
|
204635
|
+
}
|
|
204561
204636
|
function calculateJustifySpacing(params$1) {
|
|
204562
204637
|
const { lineWidth, availableWidth, spaceCount, shouldJustify } = params$1;
|
|
204563
204638
|
if (!shouldJustify)
|
|
@@ -204901,7 +204976,7 @@ function prosemirrorToYXmlFragment(doc$12, xmlFragment) {
|
|
|
204901
204976
|
}
|
|
204902
204977
|
function getSuperdocVersion() {
|
|
204903
204978
|
try {
|
|
204904
|
-
return "1.
|
|
204979
|
+
return "1.26.0";
|
|
204905
204980
|
} catch {
|
|
204906
204981
|
return "unknown";
|
|
204907
204982
|
}
|
|
@@ -245411,6 +245486,18 @@ function classifyMathText(text5) {
|
|
|
245411
245486
|
return "mo";
|
|
245412
245487
|
return "mi";
|
|
245413
245488
|
}
|
|
245489
|
+
function resolveMathVariant(rPr) {
|
|
245490
|
+
const elements = rPr?.elements ?? [];
|
|
245491
|
+
const sty = elements.find((el) => el.name === "m:sty")?.attributes?.["m:val"];
|
|
245492
|
+
if (sty && STY_TO_VARIANT[sty])
|
|
245493
|
+
return STY_TO_VARIANT[sty];
|
|
245494
|
+
const scr = elements.find((el) => el.name === "m:scr")?.attributes?.["m:val"];
|
|
245495
|
+
if (scr && SCR_TO_VARIANT[scr])
|
|
245496
|
+
return SCR_TO_VARIANT[scr];
|
|
245497
|
+
if (elements.some((el) => el.name === "m:nor"))
|
|
245498
|
+
return "normal";
|
|
245499
|
+
return null;
|
|
245500
|
+
}
|
|
245414
245501
|
function forceNormalMathVariant(root3) {
|
|
245415
245502
|
root3.querySelectorAll("mi").forEach((identifier) => {
|
|
245416
245503
|
identifier.setAttribute("mathvariant", "normal");
|
|
@@ -245920,6 +246007,7 @@ function resolveParagraphContent(fragment2, block, measure) {
|
|
|
245920
246007
|
if (!hasExplicitSegmentPositioning)
|
|
245921
246008
|
textIndentPx = firstLineOffset;
|
|
245922
246009
|
}
|
|
246010
|
+
availableWidth = adjustAvailableWidthForTextIndent(availableWidth, textIndentPx, line.maxWidth);
|
|
245923
246011
|
const indentLeft = paraIndent?.left ?? 0;
|
|
245924
246012
|
const firstLine = paraIndent?.firstLine ?? 0;
|
|
245925
246013
|
const hanging = paraIndent?.hanging ?? 0;
|
|
@@ -250900,11 +250988,11 @@ function remeasureParagraph(block, maxWidth, firstLineIndent = 0) {
|
|
|
250900
250988
|
const indentRight = Math.max(0, rawIndentRight);
|
|
250901
250989
|
const indentFirstLine = Math.max(0, indent2?.firstLine ?? 0);
|
|
250902
250990
|
const indentHanging = Math.max(0, indent2?.hanging ?? 0);
|
|
250903
|
-
const baseFirstLineOffset = firstLineIndent || indentFirstLine - indentHanging;
|
|
250904
|
-
const rawFirstLineOffset = baseFirstLineOffset;
|
|
250991
|
+
const baseFirstLineOffset = attrs?.suppressFirstLineIndent === true ? 0 : firstLineIndent || indentFirstLine - indentHanging;
|
|
250905
250992
|
const clampedFirstLineOffset = Math.max(0, baseFirstLineOffset);
|
|
250906
|
-
const
|
|
250907
|
-
const
|
|
250993
|
+
const hasNegativeLeftIndent = rawIndentLeft < 0;
|
|
250994
|
+
const allowNegativeFirstLineOffset = !wordLayout?.marker && !hasNegativeLeftIndent && baseFirstLineOffset < 0;
|
|
250995
|
+
const effectiveFirstLineOffset = wordLayout?.marker ? 0 : allowNegativeFirstLineOffset ? baseFirstLineOffset : clampedFirstLineOffset;
|
|
250908
250996
|
const contentWidth = Math.max(1, maxWidth - indentLeft - indentRight);
|
|
250909
250997
|
const textStartPx = wordLayout?.textStartPx;
|
|
250910
250998
|
let measuredMarkerTextWidth;
|
|
@@ -250926,7 +251014,7 @@ function remeasureParagraph(block, maxWidth, firstLineIndent = 0) {
|
|
|
250926
251014
|
while (currentRun < runs2.length) {
|
|
250927
251015
|
const isFirstLine = lines.length === 0;
|
|
250928
251016
|
const effectiveMaxWidth = Math.max(1, isFirstLine ? firstLineWidth : contentWidth);
|
|
250929
|
-
const effectiveIndent = isFirstLine ? indentLeft +
|
|
251017
|
+
const effectiveIndent = isFirstLine ? indentLeft + baseFirstLineOffset : indentLeft;
|
|
250930
251018
|
const startRun = currentRun;
|
|
250931
251019
|
const startChar = currentChar;
|
|
250932
251020
|
let width = 0;
|
|
@@ -251104,7 +251192,7 @@ function remeasureParagraph(block, maxWidth, firstLineIndent = 0) {
|
|
|
251104
251192
|
const hasTabRun = runs2.some((run2) => run2?.kind === "tab");
|
|
251105
251193
|
const hasTextTab = runs2.some((run2) => run2?.kind === "text" && typeof run2.text === "string" && run2.text.includes("\t"));
|
|
251106
251194
|
if (hasTabRun || hasTextTab)
|
|
251107
|
-
applyTabLayoutToLines(lines, runs2, tabStops, decimalSeparator, indentLeft,
|
|
251195
|
+
applyTabLayoutToLines(lines, runs2, tabStops, decimalSeparator, indentLeft, baseFirstLineOffset);
|
|
251108
251196
|
const totalHeight = lines.reduce((s2, l) => s2 + l.lineHeight, 0);
|
|
251109
251197
|
const marker = wordLayout?.marker;
|
|
251110
251198
|
return {
|
|
@@ -252458,10 +252546,16 @@ function clickToPositionGeometry(layout, blocks2, measures, containerPoint, opti
|
|
|
252458
252546
|
const indentLeft = typeof block.attrs?.indent?.left === "number" ? block.attrs.indent.left : 0;
|
|
252459
252547
|
const indentRight = typeof block.attrs?.indent?.right === "number" ? block.attrs.indent.right : 0;
|
|
252460
252548
|
const totalIndent = (Number.isFinite(indentLeft) ? indentLeft : 0) + (Number.isFinite(indentRight) ? indentRight : 0);
|
|
252461
|
-
|
|
252549
|
+
let availableWidth = Math.max(0, fragment2.width - totalIndent);
|
|
252462
252550
|
if (totalIndent > fragment2.width)
|
|
252463
252551
|
console.warn(`[clickToPosition] Paragraph indents (${totalIndent}px) exceed fragment width (${fragment2.width}px) for block ${fragment2.blockId}. This may indicate a layout miscalculation. Available width clamped to 0.`);
|
|
252464
252552
|
const isListItem$1 = (fragment2.markerWidth ?? measure.marker?.markerWidth ?? 0) > 0;
|
|
252553
|
+
const hasRenderedMarkerText = isListItem$1 && Boolean(fragment2.markerTextWidth);
|
|
252554
|
+
if (lineIndex === 0 && !fragment2.continuesFromPrev && !hasRenderedMarkerText) {
|
|
252555
|
+
const suppressFLI = block.attrs?.suppressFirstLineIndent === true;
|
|
252556
|
+
const firstLineOffset = getFirstLineIndentOffset(block.attrs?.indent, suppressFLI);
|
|
252557
|
+
availableWidth = adjustAvailableWidthForTextIndent(availableWidth, firstLineOffset, line.maxWidth);
|
|
252558
|
+
}
|
|
252465
252559
|
const isJustified = block.attrs?.alignment === "justify";
|
|
252466
252560
|
const alignmentOverride = isListItem$1 && !isJustified ? "left" : undefined;
|
|
252467
252561
|
const pos = mapPointToPm(block, line, pageRelativePoint.x - fragment2.x, isRTL, availableWidth, alignmentOverride);
|
|
@@ -252502,10 +252596,17 @@ function clickToPositionGeometry(layout, blocks2, measures, containerPoint, opti
|
|
|
252502
252596
|
const indentLeft = typeof cellBlock.attrs?.indent?.left === "number" ? cellBlock.attrs.indent.left : 0;
|
|
252503
252597
|
const indentRight = typeof cellBlock.attrs?.indent?.right === "number" ? cellBlock.attrs.indent.right : 0;
|
|
252504
252598
|
const totalIndent = (Number.isFinite(indentLeft) ? indentLeft : 0) + (Number.isFinite(indentRight) ? indentRight : 0);
|
|
252505
|
-
|
|
252599
|
+
let availableWidth = Math.max(0, tableHit.fragment.width - totalIndent);
|
|
252506
252600
|
if (totalIndent > tableHit.fragment.width)
|
|
252507
252601
|
console.warn(`[clickToPosition:table] Paragraph indents (${totalIndent}px) exceed fragment width (${tableHit.fragment.width}px) for block ${tableHit.fragment.blockId}. This may indicate a layout miscalculation. Available width clamped to 0.`);
|
|
252508
252602
|
const isListItem$1 = (cellMeasure.marker?.markerWidth ?? 0) > 0;
|
|
252603
|
+
const cellLineStart = tableHit.fragment.partialRow?.fromLineByCell?.[tableHit.cellColIndex] ?? 0;
|
|
252604
|
+
const localStartLine = Math.max(0, cellLineStart - tableHit.blockStartGlobal);
|
|
252605
|
+
if (lineIndex === 0 && localStartLine === 0 && !isListItem$1) {
|
|
252606
|
+
const suppressFLI = cellBlock.attrs?.suppressFirstLineIndent === true;
|
|
252607
|
+
const firstLineOffset = getFirstLineIndentOffset(cellBlock.attrs?.indent, suppressFLI);
|
|
252608
|
+
availableWidth = adjustAvailableWidthForTextIndent(availableWidth, firstLineOffset, line.maxWidth);
|
|
252609
|
+
}
|
|
252509
252610
|
const isJustified = cellBlock.attrs?.alignment === "justify";
|
|
252510
252611
|
const pos = mapPointToPm(cellBlock, line, localX, isRTL, availableWidth, isListItem$1 && !isJustified ? "left" : undefined);
|
|
252511
252612
|
if (pos != null)
|
|
@@ -252581,15 +252682,17 @@ function selectionToRects(layout, blocks2, measures, from$1, to, geometryHelper)
|
|
|
252581
252682
|
const isListItemFlag = isListItem2(markerWidth, block);
|
|
252582
252683
|
const isJustified = block.attrs?.alignment === "justify";
|
|
252583
252684
|
const alignmentOverride = isListItemFlag && !isJustified ? "left" : undefined;
|
|
252584
|
-
const
|
|
252585
|
-
const
|
|
252685
|
+
const isFirstLine = index2 === fragment2.fromLine && !fragment2.continuesFromPrev;
|
|
252686
|
+
const fragmentMarkerTextWidth = fragment2.markerTextWidth ?? measure.marker?.markerTextWidth ?? undefined;
|
|
252687
|
+
const startX = mapPmToX(block, line, charOffsetFrom, fragment2.width, alignmentOverride, isFirstLine, fragmentMarkerTextWidth);
|
|
252688
|
+
const endX = mapPmToX(block, line, charOffsetTo, fragment2.width, alignmentOverride, isFirstLine, fragmentMarkerTextWidth);
|
|
252586
252689
|
const indent2 = extractParagraphIndent(block.attrs?.indent);
|
|
252587
252690
|
const wordLayout = getWordLayoutConfig(block);
|
|
252588
252691
|
const indentAdjust = calculateTextStartIndent({
|
|
252589
|
-
isFirstLine
|
|
252692
|
+
isFirstLine,
|
|
252590
252693
|
isListItem: isListItemFlag,
|
|
252591
252694
|
markerWidth,
|
|
252592
|
-
markerTextWidth:
|
|
252695
|
+
markerTextWidth: fragmentMarkerTextWidth,
|
|
252593
252696
|
paraIndentLeft: indent2.left,
|
|
252594
252697
|
firstLineIndent: indent2.firstLine,
|
|
252595
252698
|
hangingIndent: indent2.hanging,
|
|
@@ -252753,13 +252856,15 @@ function selectionToRects(layout, blocks2, measures, from$1, to, geometryHelper)
|
|
|
252753
252856
|
const charOffsetFrom = pmPosToCharOffset(info.block, line, sliceFrom);
|
|
252754
252857
|
const charOffsetTo = pmPosToCharOffset(info.block, line, sliceTo);
|
|
252755
252858
|
const availableWidth = Math.max(1, cellMeasure.width - padding.left - padding.right);
|
|
252756
|
-
const
|
|
252757
|
-
const
|
|
252859
|
+
const isFirstLine = index2 === 0;
|
|
252860
|
+
const cellMarkerTextWidth = info.measure?.marker?.markerTextWidth ?? undefined;
|
|
252861
|
+
const startX = mapPmToX(info.block, line, charOffsetFrom, availableWidth, alignmentOverride, isFirstLine, cellMarkerTextWidth);
|
|
252862
|
+
const endX = mapPmToX(info.block, line, charOffsetTo, availableWidth, alignmentOverride, isFirstLine, cellMarkerTextWidth);
|
|
252758
252863
|
const textIndentAdjust = calculateTextStartIndent({
|
|
252759
|
-
isFirstLine
|
|
252864
|
+
isFirstLine,
|
|
252760
252865
|
isListItem: cellIsListItem,
|
|
252761
252866
|
markerWidth: paragraphMarkerWidth,
|
|
252762
|
-
markerTextWidth:
|
|
252867
|
+
markerTextWidth: cellMarkerTextWidth,
|
|
252763
252868
|
paraIndentLeft: cellIndent.left,
|
|
252764
252869
|
firstLineIndent: cellIndent.firstLine,
|
|
252765
252870
|
hangingIndent: cellIndent.hanging,
|
|
@@ -258842,7 +258947,7 @@ async function measureParagraphBlock(block, maxWidth) {
|
|
|
258842
258947
|
const hanging = indent2?.hanging ?? 0;
|
|
258843
258948
|
const isWordLayoutList = Boolean(wordLayout?.marker);
|
|
258844
258949
|
const rawFirstLineOffset = block.attrs?.suppressFirstLineIndent === true ? 0 : firstLine - hanging;
|
|
258845
|
-
const firstLineOffset = isWordLayoutList ? 0 : !isWordLayoutList && !(indentLeft < 0
|
|
258950
|
+
const firstLineOffset = isWordLayoutList ? 0 : !isWordLayoutList && !(indentLeft < 0) && rawFirstLineOffset < 0 ? rawFirstLineOffset : Math.max(0, rawFirstLineOffset);
|
|
258846
258951
|
const contentWidth = Math.max(1, maxWidth - indentLeft - indentRight);
|
|
258847
258952
|
const bodyContentWidth = contentWidth;
|
|
258848
258953
|
let initialAvailableWidth;
|
|
@@ -273471,7 +273576,7 @@ var Node$13 = class Node$14 {
|
|
|
273471
273576
|
domAvailabilityCache = false;
|
|
273472
273577
|
return false;
|
|
273473
273578
|
}
|
|
273474
|
-
}, summaryVersion = "1.
|
|
273579
|
+
}, summaryVersion = "1.26.0", nodeKeys, markKeys, transformListsInCopiedContent = (html3) => {
|
|
273475
273580
|
const container = document.createElement("div");
|
|
273476
273581
|
container.innerHTML = html3;
|
|
273477
273582
|
const result = [];
|
|
@@ -273796,7 +273901,7 @@ var Node$13 = class Node$14 {
|
|
|
273796
273901
|
console.warn("Failed to initialize developer tools:", error3);
|
|
273797
273902
|
}
|
|
273798
273903
|
}
|
|
273799
|
-
}, BLANK_DOCX_BASE64 = `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`, BLANK_DOCX_DATA_URI, TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, BULLET_FORMATS$1, LOCK_MODE_TO_SDT_LOCK, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, CSS_NAMED_COLORS, V3_PREFIX = "text:", V4_PREFIX = "text:v4:", HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, HEADING_STYLE_PATTERN, registry, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, DEBUG_TEXT_REWRITE, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", CONTENT_CAPABILITIES, INLINE_CAPABILITIES, SDT_LOCK_TO_LOCK_MODE, BODY_LOCATOR2, STUB_WHERE, EMPTY_RESOLUTION, CONTAINER_NODE_TYPES, VALID_EDGE_NODE_TYPES3, SUPPORTED_DELETE_NODE_TYPES3, REJECTED_DELETE_NODE_TYPES3, TEXT_PREVIEW_MAX_LENGTH = 80, RANGE_DELETE_SAFE_NODE_TYPES, HEADING_PATTERN, FALLBACK_STORE_KEY = "__documentApiComments", REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SCHEMA_NODE_GATES, schemaGatedIds, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, TEXT_STYLE_CHARACTER_STYLE_ATTR = "styleId", DIRECT_FORMATTING_MARK_NAMES, ALIGNMENT_TO_JUSTIFICATION, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, PRESET_KIND_MAP, NUMBERING_PART = "word/numbering.xml", DEFAULT_PRESET_FOR_KIND, _setValueDelegate, PREVIEW_TEXT_MAX_LENGTH = 2000, BLOCK_PREVIEW_MAX_LENGTH = 200, EDGE_NODE_TYPES$1, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, SETTINGS_PART$1 = "word/settings.xml", WORD_DEFAULT_TBL_LOOK, FLAG_TO_OOXML_KEY, INVERTED_FLAGS, XML_KEY_TO_STYLE_OPTION, CLEARED_BORDER_OOXML, TABLE_MARGIN_KEY_GROUPS, TABLE_ADAPTER_DISPATCH, ROW_TARGETED_TABLE_OPS, registered = false, STYLES_PART_ID = "word/styles.xml", stylesPartDescriptor, settingsPartDescriptor, RELS_PART_ID2 = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", relsPartDescriptor, HISTORY_UNSAFE_OPS, CANONICAL_COMMENT_IGNORED_KEYS, INITIAL_HASH, ROUND_CONSTANTS, V1_COVERAGE, V2_COVERAGE, SNAPSHOT_VERSION_V2 = "sd-diff-snapshot/v2", PAYLOAD_VERSION_V1 = "sd-diff-payload/v1", PAYLOAD_VERSION_V2 = "sd-diff-payload/v2", ENGINE_ID = "super-editor", STAGED_CONVERTER_KEYS, DiffServiceError, DEFAULT_LEVEL = 1, SWITCH_PATTERN, TOC_BOOKMARK_PREFIX = "_Toc", DEFAULT_RIGHT_TAB_POS = 9350, TAB_LEADER_MAP, NO_ENTRIES_PLACEHOLDER, TC_LEVEL_MIN = 1, TC_LEVEL_MAX = 9, ALLOWED_WRAP_ATTRS, WRAP_TYPES_SUPPORTING_SIDE, WRAP_TYPES_SUPPORTING_DISTANCES, RELATIVE_HEIGHT_MIN = 0, RELATIVE_HEIGHT_MAX = 4294967295, FORBIDDEN_RAW_PATCH_NAMES, CONTROL_TYPE_SDT_PR_ELEMENTS, DEFAULT_CHECKBOX_SYMBOL_FONT2 = "MS Gothic", DEFAULT_CHECKBOX_CHECKED_HEX2 = "2612", DEFAULT_CHECKBOX_UNCHECKED_HEX2 = "2610", VARIANT_ORDER, KIND_ORDER, HEADER_RELATIONSHIP_TYPE3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", DOCUMENT_RELS_PATH2 = "word/_rels/document.xml.rels", HEADER_FILE_PATTERN2, FOOTER_FILE_PATTERN2, SETTINGS_PART, SPECIAL_NOTE_TYPES, RESTART_POLICY_TO_OOXML, VALID_DISPLAYS, REFERENCE_BLOCK_PREFIX, CAPTION_STYLE_NAMES, CAPTION_PARAGRAPH_STYLE_ID = "Caption", CAPTION_FORMAT_TO_OOXML, DOCUMENT_STAT_FIELD_TYPES, TOA_LEADER_REVERSE_MAP, EDGE_NODE_TYPES, CONTENT_TYPES_PART_ID = "[Content_Types].xml", CONTENT_TYPES_NS = "http://schemas.openxmlformats.org/package/2006/content-types", contentTypesPartDescriptor, empty_exports, init_empty, CURRENT_APP_VERSION2 = "1.25.0", PIXELS_PER_INCH2 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, cloneExtensionInstance = (extension3) => {
|
|
273904
|
+
}, BLANK_DOCX_BASE64 = `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`, BLANK_DOCX_DATA_URI, TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, BULLET_FORMATS$1, LOCK_MODE_TO_SDT_LOCK, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, CSS_NAMED_COLORS, V3_PREFIX = "text:", V4_PREFIX = "text:v4:", HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, HEADING_STYLE_PATTERN, registry, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, DEBUG_TEXT_REWRITE, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", CONTENT_CAPABILITIES, INLINE_CAPABILITIES, SDT_LOCK_TO_LOCK_MODE, BODY_LOCATOR2, STUB_WHERE, EMPTY_RESOLUTION, CONTAINER_NODE_TYPES, VALID_EDGE_NODE_TYPES3, SUPPORTED_DELETE_NODE_TYPES3, REJECTED_DELETE_NODE_TYPES3, TEXT_PREVIEW_MAX_LENGTH = 80, RANGE_DELETE_SAFE_NODE_TYPES, HEADING_PATTERN, FALLBACK_STORE_KEY = "__documentApiComments", REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SCHEMA_NODE_GATES, schemaGatedIds, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, TEXT_STYLE_CHARACTER_STYLE_ATTR = "styleId", DIRECT_FORMATTING_MARK_NAMES, ALIGNMENT_TO_JUSTIFICATION, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, PRESET_KIND_MAP, NUMBERING_PART = "word/numbering.xml", DEFAULT_PRESET_FOR_KIND, _setValueDelegate, PREVIEW_TEXT_MAX_LENGTH = 2000, BLOCK_PREVIEW_MAX_LENGTH = 200, EDGE_NODE_TYPES$1, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, SETTINGS_PART$1 = "word/settings.xml", WORD_DEFAULT_TBL_LOOK, FLAG_TO_OOXML_KEY, INVERTED_FLAGS, XML_KEY_TO_STYLE_OPTION, CLEARED_BORDER_OOXML, TABLE_MARGIN_KEY_GROUPS, TABLE_ADAPTER_DISPATCH, ROW_TARGETED_TABLE_OPS, registered = false, STYLES_PART_ID = "word/styles.xml", stylesPartDescriptor, settingsPartDescriptor, RELS_PART_ID2 = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", relsPartDescriptor, HISTORY_UNSAFE_OPS, CANONICAL_COMMENT_IGNORED_KEYS, INITIAL_HASH, ROUND_CONSTANTS, V1_COVERAGE, V2_COVERAGE, SNAPSHOT_VERSION_V2 = "sd-diff-snapshot/v2", PAYLOAD_VERSION_V1 = "sd-diff-payload/v1", PAYLOAD_VERSION_V2 = "sd-diff-payload/v2", ENGINE_ID = "super-editor", STAGED_CONVERTER_KEYS, DiffServiceError, DEFAULT_LEVEL = 1, SWITCH_PATTERN, TOC_BOOKMARK_PREFIX = "_Toc", DEFAULT_RIGHT_TAB_POS = 9350, TAB_LEADER_MAP, NO_ENTRIES_PLACEHOLDER, TC_LEVEL_MIN = 1, TC_LEVEL_MAX = 9, ALLOWED_WRAP_ATTRS, WRAP_TYPES_SUPPORTING_SIDE, WRAP_TYPES_SUPPORTING_DISTANCES, RELATIVE_HEIGHT_MIN = 0, RELATIVE_HEIGHT_MAX = 4294967295, FORBIDDEN_RAW_PATCH_NAMES, CONTROL_TYPE_SDT_PR_ELEMENTS, DEFAULT_CHECKBOX_SYMBOL_FONT2 = "MS Gothic", DEFAULT_CHECKBOX_CHECKED_HEX2 = "2612", DEFAULT_CHECKBOX_UNCHECKED_HEX2 = "2610", VARIANT_ORDER, KIND_ORDER, HEADER_RELATIONSHIP_TYPE3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", DOCUMENT_RELS_PATH2 = "word/_rels/document.xml.rels", HEADER_FILE_PATTERN2, FOOTER_FILE_PATTERN2, SETTINGS_PART, SPECIAL_NOTE_TYPES, RESTART_POLICY_TO_OOXML, VALID_DISPLAYS, REFERENCE_BLOCK_PREFIX, CAPTION_STYLE_NAMES, CAPTION_PARAGRAPH_STYLE_ID = "Caption", CAPTION_FORMAT_TO_OOXML, DOCUMENT_STAT_FIELD_TYPES, TOA_LEADER_REVERSE_MAP, EDGE_NODE_TYPES, CONTENT_TYPES_PART_ID = "[Content_Types].xml", CONTENT_TYPES_NS = "http://schemas.openxmlformats.org/package/2006/content-types", contentTypesPartDescriptor, empty_exports, init_empty, CURRENT_APP_VERSION2 = "1.26.0", PIXELS_PER_INCH2 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, cloneExtensionInstance = (extension3) => {
|
|
273800
273905
|
const extensionLike = extension3;
|
|
273801
273906
|
const config2 = extensionLike?.config;
|
|
273802
273907
|
const ExtensionCtor = extensionLike?.constructor;
|
|
@@ -277134,7 +277239,7 @@ var Node$13 = class Node$14 {
|
|
|
277134
277239
|
}
|
|
277135
277240
|
element3.style.textAlign = resolveTextAlign(attrs?.alignment, rtl);
|
|
277136
277241
|
return rtl;
|
|
277137
|
-
}, shouldUseSegmentPositioning = (hasExplicitPositioning, hasSegments, isRtl) => hasExplicitPositioning && hasSegments && !isRtl, MATHML_NS$
|
|
277242
|
+
}, shouldUseSegmentPositioning = (hasExplicitPositioning, hasSegments, isRtl) => hasExplicitPositioning && hasSegments && !isRtl, MATHML_NS$14 = "http://www.w3.org/1998/Math/MathML", OPERATOR_CHARS, STY_TO_VARIANT, SCR_TO_VARIANT, convertMathRun = (node3, doc$12) => {
|
|
277138
277243
|
const elements = node3.elements ?? [];
|
|
277139
277244
|
let text5 = "";
|
|
277140
277245
|
for (const child of elements)
|
|
@@ -277146,68 +277251,68 @@ var Node$13 = class Node$14 {
|
|
|
277146
277251
|
}
|
|
277147
277252
|
if (!text5)
|
|
277148
277253
|
return null;
|
|
277149
|
-
const
|
|
277254
|
+
const variant = resolveMathVariant(elements.find((el$1) => el$1.name === "m:rPr"));
|
|
277150
277255
|
const tag = classifyMathText(text5);
|
|
277151
|
-
const el = doc$12.createElementNS(MATHML_NS$
|
|
277256
|
+
const el = doc$12.createElementNS(MATHML_NS$14, tag);
|
|
277152
277257
|
el.textContent = text5;
|
|
277153
|
-
if (
|
|
277154
|
-
el.setAttribute("mathvariant",
|
|
277258
|
+
if (variant)
|
|
277259
|
+
el.setAttribute("mathvariant", variant);
|
|
277155
277260
|
return el;
|
|
277156
|
-
}, MATHML_NS$
|
|
277261
|
+
}, MATHML_NS$13 = "http://www.w3.org/1998/Math/MathML", convertFraction = (node3, doc$12, convertChildren) => {
|
|
277157
277262
|
const elements = node3.elements ?? [];
|
|
277158
277263
|
const num = elements.find((e) => e.name === "m:num");
|
|
277159
277264
|
const den = elements.find((e) => e.name === "m:den");
|
|
277160
|
-
const frac = doc$12.createElementNS(MATHML_NS$
|
|
277161
|
-
const numRow = doc$12.createElementNS(MATHML_NS$
|
|
277265
|
+
const frac = doc$12.createElementNS(MATHML_NS$13, "mfrac");
|
|
277266
|
+
const numRow = doc$12.createElementNS(MATHML_NS$13, "mrow");
|
|
277162
277267
|
numRow.appendChild(convertChildren(num?.elements ?? []));
|
|
277163
277268
|
frac.appendChild(numRow);
|
|
277164
|
-
const denRow = doc$12.createElementNS(MATHML_NS$
|
|
277269
|
+
const denRow = doc$12.createElementNS(MATHML_NS$13, "mrow");
|
|
277165
277270
|
denRow.appendChild(convertChildren(den?.elements ?? []));
|
|
277166
277271
|
frac.appendChild(denRow);
|
|
277167
277272
|
return frac;
|
|
277168
|
-
}, MATHML_NS$
|
|
277273
|
+
}, MATHML_NS$12 = "http://www.w3.org/1998/Math/MathML", convertBar = (node3, doc$12, convertChildren) => {
|
|
277169
277274
|
const elements = node3.elements ?? [];
|
|
277170
277275
|
const isUnder = elements.find((e) => e.name === "m:barPr")?.elements?.find((e) => e.name === "m:pos")?.attributes?.["m:val"] !== "top";
|
|
277171
277276
|
const base5 = elements.find((e) => e.name === "m:e");
|
|
277172
|
-
const wrapper = doc$12.createElementNS(MATHML_NS$
|
|
277277
|
+
const wrapper = doc$12.createElementNS(MATHML_NS$12, isUnder ? "munder" : "mover");
|
|
277173
277278
|
const baseContent = convertChildren(base5?.elements ?? []);
|
|
277174
|
-
const mrow = doc$12.createElementNS(MATHML_NS$
|
|
277279
|
+
const mrow = doc$12.createElementNS(MATHML_NS$12, "mrow");
|
|
277175
277280
|
mrow.appendChild(baseContent);
|
|
277176
277281
|
wrapper.appendChild(mrow);
|
|
277177
|
-
const accent = doc$12.createElementNS(MATHML_NS$
|
|
277282
|
+
const accent = doc$12.createElementNS(MATHML_NS$12, "mo");
|
|
277178
277283
|
accent.setAttribute("stretchy", "true");
|
|
277179
277284
|
accent.textContent = "‾";
|
|
277180
277285
|
wrapper.appendChild(accent);
|
|
277181
277286
|
return wrapper;
|
|
277182
|
-
}, MATHML_NS$
|
|
277287
|
+
}, MATHML_NS$11 = "http://www.w3.org/1998/Math/MathML", FUNCTION_APPLY_OPERATOR = "", convertFunction = (node3, doc$12, convertChildren) => {
|
|
277183
277288
|
const elements = node3.elements ?? [];
|
|
277184
277289
|
const functionName = elements.find((element3) => element3.name === "m:fName");
|
|
277185
277290
|
const argument = elements.find((element3) => element3.name === "m:e");
|
|
277186
|
-
const wrapper = doc$12.createElementNS(MATHML_NS$
|
|
277187
|
-
const functionNameRow = doc$12.createElementNS(MATHML_NS$
|
|
277291
|
+
const wrapper = doc$12.createElementNS(MATHML_NS$11, "mrow");
|
|
277292
|
+
const functionNameRow = doc$12.createElementNS(MATHML_NS$11, "mrow");
|
|
277188
277293
|
functionNameRow.appendChild(convertChildren(functionName?.elements ?? []));
|
|
277189
277294
|
forceNormalMathVariant(functionNameRow);
|
|
277190
277295
|
if (functionNameRow.childNodes.length > 0)
|
|
277191
277296
|
wrapper.appendChild(functionNameRow);
|
|
277192
|
-
const argumentRow = doc$12.createElementNS(MATHML_NS$
|
|
277297
|
+
const argumentRow = doc$12.createElementNS(MATHML_NS$11, "mrow");
|
|
277193
277298
|
argumentRow.appendChild(convertChildren(argument?.elements ?? []));
|
|
277194
277299
|
if (functionNameRow.childNodes.length > 0 && argumentRow.childNodes.length > 0) {
|
|
277195
|
-
const applyOperator = doc$12.createElementNS(MATHML_NS$
|
|
277300
|
+
const applyOperator = doc$12.createElementNS(MATHML_NS$11, "mo");
|
|
277196
277301
|
applyOperator.textContent = FUNCTION_APPLY_OPERATOR;
|
|
277197
277302
|
wrapper.appendChild(applyOperator);
|
|
277198
277303
|
}
|
|
277199
277304
|
if (argumentRow.childNodes.length > 0)
|
|
277200
277305
|
wrapper.appendChild(argumentRow);
|
|
277201
277306
|
return wrapper.childNodes.length > 0 ? wrapper : null;
|
|
277202
|
-
}, MATHML_NS$
|
|
277307
|
+
}, MATHML_NS$10 = "http://www.w3.org/1998/Math/MathML", DEFAULT_BEGIN_DELIMITER = "(", DEFAULT_END_DELIMITER = ")", DEFAULT_SEPARATOR_DELIMITER = "│", convertDelimiter = (node3, doc$12, convertChildren) => {
|
|
277203
277308
|
const elements = node3.elements ?? [];
|
|
277204
277309
|
const delimiterProps = elements.find((element3) => element3.name === "m:dPr");
|
|
277205
277310
|
const expressions = elements.filter((element3) => element3.name === "m:e");
|
|
277206
277311
|
const beginDelimiter = getDelimiterValue(delimiterProps, "m:begChr", DEFAULT_BEGIN_DELIMITER);
|
|
277207
277312
|
const endDelimiter = getDelimiterValue(delimiterProps, "m:endChr", DEFAULT_END_DELIMITER);
|
|
277208
277313
|
const separatorDelimiter = getDelimiterValue(delimiterProps, "m:sepChr", DEFAULT_SEPARATOR_DELIMITER);
|
|
277209
|
-
const wrapper = doc$12.createElementNS(MATHML_NS$
|
|
277210
|
-
const begin = doc$12.createElementNS(MATHML_NS$
|
|
277314
|
+
const wrapper = doc$12.createElementNS(MATHML_NS$10, "mrow");
|
|
277315
|
+
const begin = doc$12.createElementNS(MATHML_NS$10, "mo");
|
|
277211
277316
|
begin.textContent = beginDelimiter;
|
|
277212
277317
|
wrapper.appendChild(begin);
|
|
277213
277318
|
let renderedCount = 0;
|
|
@@ -277216,81 +277321,170 @@ var Node$13 = class Node$14 {
|
|
|
277216
277321
|
if (fragment2.childNodes.length === 0)
|
|
277217
277322
|
continue;
|
|
277218
277323
|
if (renderedCount > 0) {
|
|
277219
|
-
const separator = doc$12.createElementNS(MATHML_NS$
|
|
277324
|
+
const separator = doc$12.createElementNS(MATHML_NS$10, "mo");
|
|
277220
277325
|
separator.textContent = separatorDelimiter;
|
|
277221
277326
|
wrapper.appendChild(separator);
|
|
277222
277327
|
}
|
|
277223
|
-
const group = doc$12.createElementNS(MATHML_NS$
|
|
277328
|
+
const group = doc$12.createElementNS(MATHML_NS$10, "mrow");
|
|
277224
277329
|
group.appendChild(fragment2);
|
|
277225
277330
|
wrapper.appendChild(group);
|
|
277226
277331
|
renderedCount++;
|
|
277227
277332
|
}
|
|
277228
|
-
const end$1 = doc$12.createElementNS(MATHML_NS$
|
|
277333
|
+
const end$1 = doc$12.createElementNS(MATHML_NS$10, "mo");
|
|
277229
277334
|
end$1.textContent = endDelimiter;
|
|
277230
277335
|
wrapper.appendChild(end$1);
|
|
277231
277336
|
return wrapper;
|
|
277232
|
-
}, MATHML_NS$
|
|
277337
|
+
}, MATHML_NS$9 = "http://www.w3.org/1998/Math/MathML", convertSubscript = (node3, doc$12, convertChildren) => {
|
|
277233
277338
|
const elements = node3.elements ?? [];
|
|
277234
277339
|
const base5 = elements.find((e) => e.name === "m:e");
|
|
277235
277340
|
const sub = elements.find((e) => e.name === "m:sub");
|
|
277236
|
-
const msub = doc$12.createElementNS(MATHML_NS$
|
|
277237
|
-
const baseRow = doc$12.createElementNS(MATHML_NS$
|
|
277341
|
+
const msub = doc$12.createElementNS(MATHML_NS$9, "msub");
|
|
277342
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$9, "mrow");
|
|
277238
277343
|
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277239
277344
|
msub.appendChild(baseRow);
|
|
277240
|
-
const subRow = doc$12.createElementNS(MATHML_NS$
|
|
277345
|
+
const subRow = doc$12.createElementNS(MATHML_NS$9, "mrow");
|
|
277241
277346
|
subRow.appendChild(convertChildren(sub?.elements ?? []));
|
|
277242
277347
|
msub.appendChild(subRow);
|
|
277243
277348
|
return msub;
|
|
277244
|
-
}, MATHML_NS$
|
|
277349
|
+
}, MATHML_NS$8 = "http://www.w3.org/1998/Math/MathML", convertSuperscript = (node3, doc$12, convertChildren) => {
|
|
277245
277350
|
const elements = node3.elements ?? [];
|
|
277246
277351
|
const base5 = elements.find((e) => e.name === "m:e");
|
|
277247
277352
|
const sup = elements.find((e) => e.name === "m:sup");
|
|
277248
|
-
const msup = doc$12.createElementNS(MATHML_NS$
|
|
277249
|
-
const baseRow = doc$12.createElementNS(MATHML_NS$
|
|
277353
|
+
const msup = doc$12.createElementNS(MATHML_NS$8, "msup");
|
|
277354
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$8, "mrow");
|
|
277250
277355
|
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277251
277356
|
msup.appendChild(baseRow);
|
|
277252
|
-
const supRow = doc$12.createElementNS(MATHML_NS$
|
|
277357
|
+
const supRow = doc$12.createElementNS(MATHML_NS$8, "mrow");
|
|
277253
277358
|
supRow.appendChild(convertChildren(sup?.elements ?? []));
|
|
277254
277359
|
msup.appendChild(supRow);
|
|
277255
277360
|
return msup;
|
|
277256
|
-
}, MATHML_NS$
|
|
277361
|
+
}, MATHML_NS$7 = "http://www.w3.org/1998/Math/MathML", convertSubSuperscript = (node3, doc$12, convertChildren) => {
|
|
277257
277362
|
const elements = node3.elements ?? [];
|
|
277258
277363
|
const base5 = elements.find((e) => e.name === "m:e");
|
|
277259
277364
|
const sub = elements.find((e) => e.name === "m:sub");
|
|
277260
277365
|
const sup = elements.find((e) => e.name === "m:sup");
|
|
277261
|
-
const msubsup = doc$12.createElementNS(MATHML_NS$
|
|
277262
|
-
const baseRow = doc$12.createElementNS(MATHML_NS$
|
|
277366
|
+
const msubsup = doc$12.createElementNS(MATHML_NS$7, "msubsup");
|
|
277367
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$7, "mrow");
|
|
277263
277368
|
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277264
277369
|
msubsup.appendChild(baseRow);
|
|
277265
|
-
const subRow = doc$12.createElementNS(MATHML_NS$
|
|
277370
|
+
const subRow = doc$12.createElementNS(MATHML_NS$7, "mrow");
|
|
277266
277371
|
subRow.appendChild(convertChildren(sub?.elements ?? []));
|
|
277267
277372
|
msubsup.appendChild(subRow);
|
|
277268
|
-
const supRow = doc$12.createElementNS(MATHML_NS$
|
|
277373
|
+
const supRow = doc$12.createElementNS(MATHML_NS$7, "mrow");
|
|
277269
277374
|
supRow.appendChild(convertChildren(sup?.elements ?? []));
|
|
277270
277375
|
msubsup.appendChild(supRow);
|
|
277271
277376
|
return msubsup;
|
|
277272
|
-
}, MATHML_NS$
|
|
277377
|
+
}, MATHML_NS$6 = "http://www.w3.org/1998/Math/MathML", DEFAULT_ACCENT_CHAR = "̂", COMBINING_TO_SPACING, convertAccent = (node3, doc$12, convertChildren) => {
|
|
277378
|
+
const elements = node3.elements ?? [];
|
|
277379
|
+
const base5 = elements.find((e) => e.name === "m:e");
|
|
277380
|
+
if (!base5)
|
|
277381
|
+
return null;
|
|
277382
|
+
const chr = elements.find((e) => e.name === "m:accPr")?.elements?.find((e) => e.name === "m:chr");
|
|
277383
|
+
const rawVal = chr?.attributes?.["m:val"];
|
|
277384
|
+
const accentChar = chr === undefined ? DEFAULT_ACCENT_CHAR : rawVal && rawVal.length > 0 ? rawVal : "";
|
|
277385
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$6, "mrow");
|
|
277386
|
+
baseRow.appendChild(convertChildren(base5.elements ?? []));
|
|
277387
|
+
if (!accentChar)
|
|
277388
|
+
return baseRow;
|
|
277389
|
+
const renderChar = COMBINING_TO_SPACING[accentChar] ?? accentChar;
|
|
277390
|
+
const mover = doc$12.createElementNS(MATHML_NS$6, "mover");
|
|
277391
|
+
mover.setAttribute("accent", "true");
|
|
277392
|
+
mover.appendChild(baseRow);
|
|
277393
|
+
const mo = doc$12.createElementNS(MATHML_NS$6, "mo");
|
|
277394
|
+
mo.setAttribute("stretchy", "true");
|
|
277395
|
+
mo.textContent = renderChar;
|
|
277396
|
+
mover.appendChild(mo);
|
|
277397
|
+
return mover;
|
|
277398
|
+
}, MATHML_NS$5 = "http://www.w3.org/1998/Math/MathML", convertPreSubSuperscript = (node3, doc$12, convertChildren) => {
|
|
277399
|
+
const elements = node3.elements ?? [];
|
|
277400
|
+
const base5 = elements.find((e) => e.name === "m:e");
|
|
277401
|
+
const sub = elements.find((e) => e.name === "m:sub");
|
|
277402
|
+
const sup = elements.find((e) => e.name === "m:sup");
|
|
277403
|
+
const mmultiscripts = doc$12.createElementNS(MATHML_NS$5, "mmultiscripts");
|
|
277404
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$5, "mrow");
|
|
277405
|
+
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277406
|
+
mmultiscripts.appendChild(baseRow);
|
|
277407
|
+
mmultiscripts.appendChild(doc$12.createElementNS(MATHML_NS$5, "mprescripts"));
|
|
277408
|
+
const subRow = doc$12.createElementNS(MATHML_NS$5, "mrow");
|
|
277409
|
+
subRow.appendChild(convertChildren(sub?.elements ?? []));
|
|
277410
|
+
mmultiscripts.appendChild(subRow);
|
|
277411
|
+
const supRow = doc$12.createElementNS(MATHML_NS$5, "mrow");
|
|
277412
|
+
supRow.appendChild(convertChildren(sup?.elements ?? []));
|
|
277413
|
+
mmultiscripts.appendChild(supRow);
|
|
277414
|
+
return mmultiscripts;
|
|
277415
|
+
}, MATHML_NS$4 = "http://www.w3.org/1998/Math/MathML", stripAlignmentMarkers = (nodes) => nodes.map((node3) => {
|
|
277416
|
+
if (node3?.type === "text" && typeof node3.text === "string" && node3.text.includes("&"))
|
|
277417
|
+
return {
|
|
277418
|
+
...node3,
|
|
277419
|
+
text: node3.text.replace(/&/g, "")
|
|
277420
|
+
};
|
|
277421
|
+
if (node3?.elements)
|
|
277422
|
+
return {
|
|
277423
|
+
...node3,
|
|
277424
|
+
elements: stripAlignmentMarkers(node3.elements)
|
|
277425
|
+
};
|
|
277426
|
+
return node3;
|
|
277427
|
+
}), convertEquationArray = (node3, doc$12, convertChildren) => {
|
|
277428
|
+
const rows = (node3.elements ?? []).filter((e) => e.name === "m:e");
|
|
277429
|
+
const mtable = doc$12.createElementNS(MATHML_NS$4, "mtable");
|
|
277430
|
+
mtable.setAttribute("columnalign", "left");
|
|
277431
|
+
for (const row2 of rows) {
|
|
277432
|
+
const mtr = doc$12.createElementNS(MATHML_NS$4, "mtr");
|
|
277433
|
+
const mtd = doc$12.createElementNS(MATHML_NS$4, "mtd");
|
|
277434
|
+
const mrow = doc$12.createElementNS(MATHML_NS$4, "mrow");
|
|
277435
|
+
const cleanedChildren = stripAlignmentMarkers(row2.elements ?? []);
|
|
277436
|
+
mrow.appendChild(convertChildren(cleanedChildren));
|
|
277437
|
+
mtd.appendChild(mrow);
|
|
277438
|
+
mtr.appendChild(mtd);
|
|
277439
|
+
mtable.appendChild(mtr);
|
|
277440
|
+
}
|
|
277441
|
+
return mtable.childNodes.length > 0 ? mtable : null;
|
|
277442
|
+
}, MATHML_NS$3 = "http://www.w3.org/1998/Math/MathML", convertRadical = (node3, doc$12, convertChildren) => {
|
|
277273
277443
|
const elements = node3.elements ?? [];
|
|
277274
277444
|
const radPr = elements.find((e) => e.name === "m:radPr");
|
|
277275
277445
|
const deg = elements.find((e) => e.name === "m:deg");
|
|
277276
277446
|
const radicand = elements.find((e) => e.name === "m:e");
|
|
277277
277447
|
const degHideEl = radPr?.elements?.find((e) => e.name === "m:degHide");
|
|
277278
277448
|
const degHideVal = degHideEl?.attributes?.["m:val"];
|
|
277279
|
-
if (degHideEl !== undefined && degHideVal !== "0" && degHideVal !== "false" || !deg) {
|
|
277280
|
-
const msqrt = doc$12.createElementNS(MATHML_NS$
|
|
277281
|
-
const radicandRow$1 = doc$12.createElementNS(MATHML_NS$
|
|
277449
|
+
if (degHideEl !== undefined && degHideVal !== "0" && degHideVal !== "false" && degHideVal !== "off" || !deg || (deg.elements ?? []).length === 0) {
|
|
277450
|
+
const msqrt = doc$12.createElementNS(MATHML_NS$3, "msqrt");
|
|
277451
|
+
const radicandRow$1 = doc$12.createElementNS(MATHML_NS$3, "mrow");
|
|
277282
277452
|
radicandRow$1.appendChild(convertChildren(radicand?.elements ?? []));
|
|
277283
277453
|
msqrt.appendChild(radicandRow$1);
|
|
277284
277454
|
return msqrt;
|
|
277285
277455
|
}
|
|
277286
|
-
const mroot = doc$12.createElementNS(MATHML_NS$
|
|
277287
|
-
const radicandRow = doc$12.createElementNS(MATHML_NS$
|
|
277456
|
+
const mroot = doc$12.createElementNS(MATHML_NS$3, "mroot");
|
|
277457
|
+
const radicandRow = doc$12.createElementNS(MATHML_NS$3, "mrow");
|
|
277288
277458
|
radicandRow.appendChild(convertChildren(radicand?.elements ?? []));
|
|
277289
277459
|
mroot.appendChild(radicandRow);
|
|
277290
|
-
const degRow = doc$12.createElementNS(MATHML_NS$
|
|
277460
|
+
const degRow = doc$12.createElementNS(MATHML_NS$3, "mrow");
|
|
277291
277461
|
degRow.appendChild(convertChildren(deg?.elements ?? []));
|
|
277292
277462
|
mroot.appendChild(degRow);
|
|
277293
277463
|
return mroot;
|
|
277464
|
+
}, MATHML_NS$2 = "http://www.w3.org/1998/Math/MathML", convertLowerLimit = (node3, doc$12, convertChildren) => {
|
|
277465
|
+
const elements = node3.elements ?? [];
|
|
277466
|
+
const base5 = elements.find((e) => e.name === "m:e");
|
|
277467
|
+
const lim = elements.find((e) => e.name === "m:lim");
|
|
277468
|
+
const munder = doc$12.createElementNS(MATHML_NS$2, "munder");
|
|
277469
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$2, "mrow");
|
|
277470
|
+
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277471
|
+
munder.appendChild(baseRow);
|
|
277472
|
+
const limRow = doc$12.createElementNS(MATHML_NS$2, "mrow");
|
|
277473
|
+
limRow.appendChild(convertChildren(lim?.elements ?? []));
|
|
277474
|
+
munder.appendChild(limRow);
|
|
277475
|
+
return munder;
|
|
277476
|
+
}, MATHML_NS$1 = "http://www.w3.org/1998/Math/MathML", convertUpperLimit = (node3, doc$12, convertChildren) => {
|
|
277477
|
+
const elements = node3.elements ?? [];
|
|
277478
|
+
const base5 = elements.find((e) => e.name === "m:e");
|
|
277479
|
+
const lim = elements.find((e) => e.name === "m:lim");
|
|
277480
|
+
const mover = doc$12.createElementNS(MATHML_NS$1, "mover");
|
|
277481
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$1, "mrow");
|
|
277482
|
+
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277483
|
+
mover.appendChild(baseRow);
|
|
277484
|
+
const limRow = doc$12.createElementNS(MATHML_NS$1, "mrow");
|
|
277485
|
+
limRow.appendChild(convertChildren(lim?.elements ?? []));
|
|
277486
|
+
mover.appendChild(limRow);
|
|
277487
|
+
return mover;
|
|
277294
277488
|
}, MATHML_NS = "http://www.w3.org/1998/Math/MathML", MATH_OBJECT_REGISTRY, ARGUMENT_ELEMENTS, LIST_MARKER_GAP$1 = 8, DEFAULT_PAGE_HEIGHT_PX = 1056, DEFAULT_VIRTUALIZED_PAGE_GAP = 72, LINK_DATASET_KEYS, MAX_HREF_LENGTH = 2048, SAFE_ANCHOR_PATTERN, MAX_DATA_URL_LENGTH, VALID_IMAGE_DATA_URL, MAX_RESIZE_MULTIPLIER = 3, FALLBACK_MAX_DIMENSION = 1000, MIN_IMAGE_DIMENSION = 20, AMBIGUOUS_LINK_PATTERNS, linkMetrics, TRACK_CHANGE_BASE_CLASS, TRACK_CHANGE_MODIFIER_CLASS, LINK_TARGET_SET, normalizeAnchor$1 = (value) => {
|
|
277295
277489
|
if (typeof value !== "string")
|
|
277296
277490
|
return null;
|
|
@@ -280596,6 +280790,7 @@ var Node$13 = class Node$14 {
|
|
|
280596
280790
|
const rawMeasures = cellMeasure.blocks ?? (cellMeasure.paragraph ? [cellMeasure.paragraph] : []);
|
|
280597
280791
|
const cellBlockMeasures = (Array.isArray(rawMeasures) ? rawMeasures : []).filter((m$1) => m$1 != null && typeof m$1 === "object" && ("kind" in m$1));
|
|
280598
280792
|
let blockStartY = 0;
|
|
280793
|
+
let blockStartGlobalLines = 0;
|
|
280599
280794
|
const getBlockHeight = (m$1) => {
|
|
280600
280795
|
if (!m$1)
|
|
280601
280796
|
return 0;
|
|
@@ -280639,10 +280834,12 @@ var Node$13 = class Node$14 {
|
|
|
280639
280834
|
cellBlock: paragraphBlock,
|
|
280640
280835
|
cellMeasure: paragraphMeasure,
|
|
280641
280836
|
localX: Math.max(0, cellLocalX),
|
|
280642
|
-
localY: Math.max(0, localYWithinBlock)
|
|
280837
|
+
localY: Math.max(0, localYWithinBlock),
|
|
280838
|
+
blockStartGlobal: blockStartGlobalLines
|
|
280643
280839
|
};
|
|
280644
280840
|
}
|
|
280645
280841
|
blockStartY = blockEndY;
|
|
280842
|
+
blockStartGlobalLines += paragraphMeasure.lines.length;
|
|
280646
280843
|
}
|
|
280647
280844
|
}
|
|
280648
280845
|
return null;
|
|
@@ -280688,29 +280885,38 @@ var Node$13 = class Node$14 {
|
|
|
280688
280885
|
for (let i4 = 0;i4 < absoluteLineIndex; i4 += 1)
|
|
280689
280886
|
height += measure.lines[i4]?.lineHeight ?? 0;
|
|
280690
280887
|
return height;
|
|
280691
|
-
}, mapPmToX = (block, line, offset$1, fragmentWidth, alignmentOverride) => {
|
|
280888
|
+
}, mapPmToX = (block, line, offset$1, fragmentWidth, alignmentOverride, isFirstLine, markerTextWidth) => {
|
|
280692
280889
|
if (fragmentWidth <= 0 || line.width <= 0)
|
|
280693
280890
|
return 0;
|
|
280694
280891
|
let paraIndentLeft = 0;
|
|
280695
280892
|
let paraIndentRight = 0;
|
|
280696
280893
|
let effectiveLeft = 0;
|
|
280894
|
+
let isListParagraph = false;
|
|
280895
|
+
let wl;
|
|
280697
280896
|
if (block.kind === "paragraph") {
|
|
280698
280897
|
const indentLeft = typeof block.attrs?.indent?.left === "number" ? block.attrs.indent.left : 0;
|
|
280699
280898
|
const indentRight = typeof block.attrs?.indent?.right === "number" ? block.attrs.indent.right : 0;
|
|
280700
280899
|
paraIndentLeft = Number.isFinite(indentLeft) ? indentLeft : 0;
|
|
280701
280900
|
paraIndentRight = Number.isFinite(indentRight) ? indentRight : 0;
|
|
280702
280901
|
effectiveLeft = paraIndentLeft;
|
|
280703
|
-
|
|
280704
|
-
|
|
280902
|
+
wl = getWordLayoutConfig(block);
|
|
280903
|
+
isListParagraph = Boolean(block.attrs?.numberingProperties) || Boolean(wl?.marker);
|
|
280904
|
+
if (isListParagraph) {
|
|
280705
280905
|
const explicitTextStart = typeof wl?.marker?.textStartX === "number" && Number.isFinite(wl.marker.textStartX) ? wl.marker.textStartX : typeof wl?.textStartPx === "number" && Number.isFinite(wl.textStartPx) ? wl.textStartPx : undefined;
|
|
280706
280906
|
if (typeof explicitTextStart === "number" && explicitTextStart > paraIndentLeft)
|
|
280707
280907
|
effectiveLeft = explicitTextStart;
|
|
280708
280908
|
}
|
|
280709
280909
|
}
|
|
280710
280910
|
const totalIndent = effectiveLeft + paraIndentRight;
|
|
280711
|
-
|
|
280911
|
+
let availableWidth = Math.max(0, fragmentWidth - totalIndent);
|
|
280712
280912
|
if (totalIndent > fragmentWidth)
|
|
280713
280913
|
console.warn(`[mapPmToX] Paragraph indents (${totalIndent}px) exceed fragment width (${fragmentWidth}px) for block ${block.id}. This may indicate a layout miscalculation. Available width clamped to 0.`);
|
|
280914
|
+
const hasRenderedMarkerText = isListParagraph && (markerTextWidth ?? 0) > 0;
|
|
280915
|
+
if (isFirstLine && block.kind === "paragraph" && !hasRenderedMarkerText) {
|
|
280916
|
+
const suppressFLI = block.attrs?.suppressFirstLineIndent === true;
|
|
280917
|
+
const firstLineOffset = getFirstLineIndentOffset(block.attrs?.indent, suppressFLI);
|
|
280918
|
+
availableWidth = adjustAvailableWidthForTextIndent(availableWidth, firstLineOffset, line.maxWidth);
|
|
280919
|
+
}
|
|
280714
280920
|
return measureCharacterX(block, line, offset$1, availableWidth, alignmentOverride);
|
|
280715
280921
|
}, WORD_CHARACTER_REGEX, EpochPositionMapper = class {
|
|
280716
280922
|
#currentEpoch = 0;
|
|
@@ -287394,12 +287600,12 @@ var Node$13 = class Node$14 {
|
|
|
287394
287600
|
return;
|
|
287395
287601
|
console.log(...args$1);
|
|
287396
287602
|
}, HEADER_FOOTER_INIT_BUDGET_MS = 200, MAX_ZOOM_WARNING_THRESHOLD = 10, MAX_SELECTION_RECTS_PER_USER = 100, SEMANTIC_RESIZE_DEBOUNCE_MS = 120, MIN_SEMANTIC_CONTENT_WIDTH_PX = 1, GLOBAL_PERFORMANCE, PresentationEditor, ICONS, TEXTS, tableActionsOptions;
|
|
287397
|
-
var
|
|
287603
|
+
var init_src_CZB4kJvn_es = __esm(() => {
|
|
287398
287604
|
init_rolldown_runtime_Bg48TavK_es();
|
|
287399
|
-
|
|
287605
|
+
init_SuperConverter_CWhofwLf_es();
|
|
287400
287606
|
init_jszip_C49i9kUs_es();
|
|
287401
287607
|
init_uuid_qzgm05fK_es();
|
|
287402
|
-
|
|
287608
|
+
init_create_headless_toolbar_C2iuH72Y_es();
|
|
287403
287609
|
init_constants_CGhJRd87_es();
|
|
287404
287610
|
init_dist_B8HfvhaK_es();
|
|
287405
287611
|
init_unified_Dsuw2be5_es();
|
|
@@ -313132,27 +313338,56 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
313132
313338
|
"⊆",
|
|
313133
313339
|
"⊇"
|
|
313134
313340
|
]);
|
|
313341
|
+
STY_TO_VARIANT = {
|
|
313342
|
+
p: "normal",
|
|
313343
|
+
b: "bold",
|
|
313344
|
+
i: "italic",
|
|
313345
|
+
bi: "bold-italic"
|
|
313346
|
+
};
|
|
313347
|
+
SCR_TO_VARIANT = {
|
|
313348
|
+
roman: "normal",
|
|
313349
|
+
script: "script",
|
|
313350
|
+
fraktur: "fraktur",
|
|
313351
|
+
"double-struck": "double-struck",
|
|
313352
|
+
"sans-serif": "sans-serif",
|
|
313353
|
+
monospace: "monospace"
|
|
313354
|
+
};
|
|
313355
|
+
COMBINING_TO_SPACING = {
|
|
313356
|
+
"̀": "`",
|
|
313357
|
+
"́": "´",
|
|
313358
|
+
"̂": "^",
|
|
313359
|
+
"̃": "~",
|
|
313360
|
+
"̄": "¯",
|
|
313361
|
+
"̆": "˘",
|
|
313362
|
+
"̇": "˙",
|
|
313363
|
+
"̈": "¨",
|
|
313364
|
+
"̊": "˚",
|
|
313365
|
+
"̋": "˝",
|
|
313366
|
+
"̌": "ˇ",
|
|
313367
|
+
"⃖": "←",
|
|
313368
|
+
"⃗": "→"
|
|
313369
|
+
};
|
|
313135
313370
|
MATH_OBJECT_REGISTRY = {
|
|
313136
313371
|
"m:r": convertMathRun,
|
|
313372
|
+
"m:acc": convertAccent,
|
|
313137
313373
|
"m:bar": convertBar,
|
|
313138
313374
|
"m:d": convertDelimiter,
|
|
313375
|
+
"m:eqArr": convertEquationArray,
|
|
313139
313376
|
"m:f": convertFraction,
|
|
313140
313377
|
"m:func": convertFunction,
|
|
313378
|
+
"m:limLow": convertLowerLimit,
|
|
313379
|
+
"m:limUpp": convertUpperLimit,
|
|
313380
|
+
"m:rad": convertRadical,
|
|
313141
313381
|
"m:sSub": convertSubscript,
|
|
313142
313382
|
"m:sSup": convertSuperscript,
|
|
313143
313383
|
"m:sSubSup": convertSubSuperscript,
|
|
313144
|
-
"m:
|
|
313384
|
+
"m:sPre": convertPreSubSuperscript,
|
|
313145
313385
|
"m:borderBox": null,
|
|
313146
313386
|
"m:box": null,
|
|
313147
|
-
"m:eqArr": null,
|
|
313148
313387
|
"m:groupChr": null,
|
|
313149
|
-
"m:limLow": null,
|
|
313150
|
-
"m:limUpp": null,
|
|
313151
313388
|
"m:m": null,
|
|
313152
313389
|
"m:nary": null,
|
|
313153
|
-
"m:phant": null
|
|
313154
|
-
"m:rad": convertRadical,
|
|
313155
|
-
"m:sPre": null
|
|
313390
|
+
"m:phant": null
|
|
313156
313391
|
};
|
|
313157
313392
|
ARGUMENT_ELEMENTS = new Set([
|
|
313158
313393
|
"m:e",
|
|
@@ -314570,10 +314805,12 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
314570
314805
|
let availableWidthOverride = line.maxWidth != null ? Math.min(line.maxWidth, fallbackAvailableWidth) : fallbackAvailableWidth;
|
|
314571
314806
|
if (shouldUseResolvedListTextStart)
|
|
314572
314807
|
availableWidthOverride = fragment2.width - listFirstLineTextStartPx - Math.max(0, paraIndentRight);
|
|
314808
|
+
const isFirstLine = index2 === 0 && !fragment2.continuesFromPrev;
|
|
314809
|
+
const isListFirstLine = Boolean(hasListFirstLineMarker && fragment2.markerTextWidth);
|
|
314810
|
+
if (isFirstLine && !isListFirstLine && !hasExplicitSegmentPositioning)
|
|
314811
|
+
availableWidthOverride = adjustAvailableWidthForTextIndent(availableWidthOverride, firstLineOffset, line.maxWidth);
|
|
314573
314812
|
const shouldSkipJustifyForLastLine = index2 === lines.length - 1 && !fragment2.continuesOnNext && !paragraphEndsWithLineBreak;
|
|
314574
314813
|
const lineEl = this.renderLine(block, line, context, availableWidthOverride, fragment2.fromLine + index2, shouldSkipJustifyForLastLine, shouldUseResolvedListTextStart ? listFirstLineTextStartPx : undefined);
|
|
314575
|
-
const isListFirstLine = Boolean(hasListFirstLineMarker && fragment2.markerTextWidth);
|
|
314576
|
-
const isFirstLine = index2 === 0 && !fragment2.continuesFromPrev;
|
|
314577
314814
|
if (!isListFirstLine) {
|
|
314578
314815
|
if (hasExplicitSegmentPositioning) {
|
|
314579
314816
|
if (isFirstLine && firstLineOffset !== 0) {
|
|
@@ -322121,11 +322358,11 @@ var init_zipper_DbkgrypV_es = __esm(() => {
|
|
|
322121
322358
|
|
|
322122
322359
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
322123
322360
|
var init_super_editor_es = __esm(() => {
|
|
322124
|
-
|
|
322125
|
-
|
|
322361
|
+
init_src_CZB4kJvn_es();
|
|
322362
|
+
init_SuperConverter_CWhofwLf_es();
|
|
322126
322363
|
init_jszip_C49i9kUs_es();
|
|
322127
322364
|
init_xml_js_CqGKpaft_es();
|
|
322128
|
-
|
|
322365
|
+
init_create_headless_toolbar_C2iuH72Y_es();
|
|
322129
322366
|
init_constants_CGhJRd87_es();
|
|
322130
322367
|
init_dist_B8HfvhaK_es();
|
|
322131
322368
|
init_unified_Dsuw2be5_es();
|
|
@@ -373875,6 +374112,11 @@ var init_operation_params = __esm(() => {
|
|
|
373875
374112
|
description: "Room/document identifier. Defaults to session ID if omitted."
|
|
373876
374113
|
},
|
|
373877
374114
|
tokenEnv: { type: "string", description: "Environment variable name containing the auth token." },
|
|
374115
|
+
params: {
|
|
374116
|
+
type: "object",
|
|
374117
|
+
description: "Custom query parameters appended to the WebSocket URL. Values must be strings. Reserved keys: token.",
|
|
374118
|
+
additionalProperties: { type: "string" }
|
|
374119
|
+
},
|
|
373878
374120
|
syncTimeoutMs: { type: "number", description: "Max time (ms) to wait for initial sync." },
|
|
373879
374121
|
onMissing: {
|
|
373880
374122
|
type: "string",
|
|
@@ -374751,7 +374993,7 @@ function validateValueAgainstTypeSpec(value2, schema, path2) {
|
|
|
374751
374993
|
throw new CliError("VALIDATION_ERROR", `${path2}.${key2} is required.`);
|
|
374752
374994
|
}
|
|
374753
374995
|
}
|
|
374754
|
-
const propertyEntries = Object.entries(schema.properties);
|
|
374996
|
+
const propertyEntries = schema.properties ? Object.entries(schema.properties) : [];
|
|
374755
374997
|
const shouldRestrictUnknownKeys = propertyEntries.length > 0 || required.length > 0;
|
|
374756
374998
|
if (shouldRestrictUnknownKeys) {
|
|
374757
374999
|
const knownKeys = new Set(propertyEntries.map(([key2]) => key2));
|
|
@@ -374824,7 +375066,8 @@ function validateResponseValueAgainstTypeSpec(value2, schema, path2) {
|
|
|
374824
375066
|
throw new CliError("VALIDATION_ERROR", `${path2}.${key2} is required.`);
|
|
374825
375067
|
}
|
|
374826
375068
|
}
|
|
374827
|
-
|
|
375069
|
+
const properties = schema.properties ?? {};
|
|
375070
|
+
for (const [key2, propSchema] of Object.entries(properties)) {
|
|
374828
375071
|
if (!Object.prototype.hasOwnProperty.call(value2, key2))
|
|
374829
375072
|
continue;
|
|
374830
375073
|
validateResponseValueAgainstTypeSpec(value2[key2], propSchema, `${path2}.${key2}`);
|
|
@@ -382569,9 +382812,16 @@ var init_version2 = () => {};
|
|
|
382569
382812
|
|
|
382570
382813
|
// src/host/session-pool.ts
|
|
382571
382814
|
import { createHash as createHash4 } from "node:crypto";
|
|
382815
|
+
function stableStringify4(value2) {
|
|
382816
|
+
if (value2 === null || typeof value2 !== "object")
|
|
382817
|
+
return JSON.stringify(value2);
|
|
382818
|
+
if (Array.isArray(value2))
|
|
382819
|
+
return `[${value2.map(stableStringify4).join(",")}]`;
|
|
382820
|
+
const entries3 = Object.keys(value2).sort().map((key2) => `${JSON.stringify(key2)}:${stableStringify4(value2[key2])}`);
|
|
382821
|
+
return `{${entries3.join(",")}}`;
|
|
382822
|
+
}
|
|
382572
382823
|
function profileToFingerprint(profile) {
|
|
382573
|
-
|
|
382574
|
-
return createHash4("sha256").update(sortedJson).digest("hex");
|
|
382824
|
+
return createHash4("sha256").update(stableStringify4(profile)).digest("hex");
|
|
382575
382825
|
}
|
|
382576
382826
|
function createSessionLocks() {
|
|
382577
382827
|
const locks = new Map;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdoc-dev/cli",
|
|
3
|
-
"version": "0.7.0-next.
|
|
3
|
+
"version": "0.7.0-next.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"superdoc": "./dist/index.js"
|
|
@@ -26,19 +26,19 @@
|
|
|
26
26
|
"typescript": "^5.9.2",
|
|
27
27
|
"@superdoc/document-api": "0.0.1",
|
|
28
28
|
"@superdoc/pm-adapter": "0.0.0",
|
|
29
|
-
"superdoc": "
|
|
30
|
-
"
|
|
29
|
+
"@superdoc/super-editor": "0.0.1",
|
|
30
|
+
"superdoc": "1.26.0"
|
|
31
31
|
},
|
|
32
32
|
"module": "src/index.ts",
|
|
33
33
|
"publishConfig": {
|
|
34
34
|
"access": "public"
|
|
35
35
|
},
|
|
36
36
|
"optionalDependencies": {
|
|
37
|
-
"@superdoc-dev/cli-darwin-arm64": "0.7.0-next.
|
|
38
|
-
"@superdoc-dev/cli-darwin-x64": "0.7.0-next.
|
|
39
|
-
"@superdoc-dev/cli-linux-x64": "0.7.0-next.
|
|
40
|
-
"@superdoc-dev/cli-
|
|
41
|
-
"@superdoc-dev/cli-
|
|
37
|
+
"@superdoc-dev/cli-darwin-arm64": "0.7.0-next.10",
|
|
38
|
+
"@superdoc-dev/cli-darwin-x64": "0.7.0-next.10",
|
|
39
|
+
"@superdoc-dev/cli-linux-x64": "0.7.0-next.10",
|
|
40
|
+
"@superdoc-dev/cli-windows-x64": "0.7.0-next.10",
|
|
41
|
+
"@superdoc-dev/cli-linux-arm64": "0.7.0-next.10"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"predev": "node scripts/ensure-superdoc-build.js",
|