@superdoc-dev/cli 0.7.0-next.1 → 0.7.0-next.11
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 +421 -103
- 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-DZzZDECe.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 = `UEsDBBQAAAAIAAAAIQAykW9XXgEAAKUFAAATABwAW0NvbnRlbnRfVHlwZXNdLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAAC1lMtqwzAQRfeF/oPRNthKuiilxMmij2UbaPoBijRORPVCmrz+vuM4NaWkMeSxMcgz994zQsxwvLEmW0FM2ruSDYo+y8BJr7Sbl+xz+po/sCyhcEoY76BkW0hsPLq9GU63AVJGapdKtkAMj5wnuQArUuEDOKpUPlqBdIxzHoT8EnPgd/3+PZfeITjMsfZgo+EzVGJpMHvZ0O+GJIJJLHtqGuuskokQjJYCqc5XTv1JyfcJBSl3PWmhQ+pRA+MHE+rK/wF73TtdTdQKsomI+CYsdfG1j4orL5eWlMVxmwOcvqq0hFZfu4XoJaREd25N0Vas0K7XxeGWdgaRlJcHaa07IRJuDaTLEzS+3fGASIJrAOydOxHWMPu4GsUv806QinKnYmbg8hitdScE0hqA5js4m2NncyySOifRh0RrJZ4w9s/eqNU5DRwgoj7+6tpEsj57PqhXkgJ1IJvvluzoG1BLAwQKAAAAAACTZE1bAAAAAAAAAAAAAAAACQAcAGRvY1Byb3BzL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhACEYr1llAQAAxQIAABAAHABkb2NQcm9wcy9hcHAueG1sVVQJAAMw0M4SMNDOEnV4CwABBPUBAAAEFAAAAJ1STU/DMAy9I/Efqt63dBwmNHlBaAhx4GPSCpyjxG0j0iRKson9e5wVSoEbOdnP9st7TuDqvTfFAUPUzq7LxbwqC7TSKW3bdflc384uyyImYZUwzuK6PGIsr/j5GWyD8xiSxlgQhY3rskvJrxiLssNexDmVLVUaF3qRKA0tc02jJd44ue/RJnZRVUuG7wmtQjXzI2E5MK4O6b+kysmsL77UR098HGrsvREJ+WOeNHPlUg9sRKF2SZha98grgscEtqLFyBfAhgBeXVAx9wwBbDoRhEy0vwxOMrj23mgpEu2VP2gZXHRNKp5OYos8DWzaAmRgh3IfdDpmqmkK99ri6YIhIFVBtEH47gROMthJYXBD1nkjTERg3wBsXO+FJTo2RsT3Fp997W7yFj5HfoITi686dTsvJP4yO8FhRygqUj8KGAG4o8cIJrPTrG1RffX8LeT1vQy/ki+W84rOaV9fGLkevwv/AFBLAwQUAAAACAAAACEACvOn+GYBAADtAgAAEQAcAGRvY1Byb3BzL2NvcmUueG1sVVQJAAMw0M4SMNDOEnV4CwABBPUBAAAEFAAAAJ2SXU+DMBSG7038D6T3UGBqDAGWTLMrZ0yc0XhX27Otjn6k7cb27y0wmMRdeXc+nvP29G3z6UFUwR6M5UoWKIliFICkinG5LtDbch7eo8A6IhmplIQCHcGiaXl9lVOdUWXgxSgNxnGwgVeSNqO6QBvndIaxpRsQxEaekL65UkYQ51OzxprQLVkDTuP4DgtwhBFHcCMY6kERnSQZHST1zlStAKMYKhAgncVJlOAz68AIe3Gg7fwiBXdHDRfRvjnQB8sHsK7rqJ60qN8/wR+Lp9f2qiGXjVcUUJkzmjnuKihzfA59ZHdf30BdVx4SH1MDxClTPnO6DWZgJKlapq83jm/hWCvDrJ8eZR5jYKnh2vl37LRHBU9XxLqFf9gVBzY7jo/5224mDOx58y/KtCWGND+Z3K0GLPDmZJ2Vfed98vC4nKMyjdObMEnD5G6Zpll8m8XxZ7PdaP4sKE4L/FuxF+gMGn/Q8gdQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAYAHABfcmVscy9VVAkAA4Yc7WiHHO1odXgLAAEE9QEAAAQUAAAAUEsDBBQAAAAIAAAAIQAekRq36QAAAE4CAAALABwAX3JlbHMvLnJlbHNVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAArZLBasMwDEDvg/2D0b1R2sEYo04vY9DbGNkHCFtJTBPb2GrX/v082NgCXelhR8vS05PQenOcRnXglF3wGpZVDYq9Cdb5XsNb+7x4AJWFvKUxeNZw4gyb5vZm/cojSSnKg4tZFYrPGgaR+IiYzcAT5SpE9uWnC2kiKc/UYySzo55xVdf3mH4zoJkx1dZqSFt7B6o9Rb6GHbrOGX4KZj+xlzMtkI/C3rJdxFTqk7gyjWop9SwabDAvJZyRYqwKGvC80ep6o7+nxYmFLAmhCYkv+3xmXBJa/ueK5hk/Nu8hWbRf4W8bnF1B8wFQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAUAHAB3b3JkL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAoWRNW+xw0GIQAgAAtAcAABIAHAB3b3JkL2ZvbnRUYWJsZS54bWxVVAkAA54c7WieHO1odXgLAAEE9QEAAAQUAAAAvZPBbqMwEIbvlfoOlu8NhpA0RSFV222kvexh1T6AY0ywFtvI44Tk7dcYiBSyuy3tqiCEGf75mPnHLO8PskR7bkBoleJwQjDiiulMqG2KX1/WNwuMwFKV0VIrnuIjB3y/ur5a1kmulQXk8hUkkqW4sLZKggBYwSWFia64ci9zbSS17tFsA0nNr111w7SsqBUbUQp7DCJC5vj6CrmjZZn3oHSeC8a/abaTXFkPCQwvHVYrKEQFZ8j6Pcham6wymnEA170sW6ikQp2zwviCJgUzGnRuJ663rjbPc4yQ+JUsB5TZOEr0Z8qc8cM40KIDBS7zAiaycbD5CSayIexjZQ0p2W4UJ5r2FTW3Jn0IhMxmxThmP8GgyaWWFhSKCywf1+/sxDxKNwgkWfJ9q7Shm9KR3CZDbosgD0btZJobaieO+j6Qdwiv2mK6nxLViaLSUV6E5IB+8Br91JKqXtZJK6o08NCp97RMMWkanZMpmZHYXZFbxTg4T2EFNcDtKYUMBTmVojz2743/6kBSCcuKXrGnRjQdD0Ugtk6ygw1J8TMhJHper3EbCVP85CK3i9ljF4maSvxx10WmpwhpIsxz/GPYcpjnnDT915dB6+Bf/HzSOyO4aRx908tb59+d97TxMv60l1Jn3PzbzFwcePYRJ+PpVzv54MZevunho9uPsfewPT/rIdQC4P/sx4evdrFfwuo3UEsDBBQAAAAIAAAAIQCWFrgr1QIAAIgLAAARABwAd29yZC9kb2N1bWVudC54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAApZZbb9sgFMffJ+07WH5v8S1OYjWttGab+jCpWrcPQIDEqAYsILd9+h3s+LJ5qxz3CXPg/PjDORxz93AShXdg2nAlV354G/gek0RRLncr/+ePLzcL3zMWS4oLJdnKPzPjP9x//HB3zKgie8Gk9QAhTXYsycrPrS0zhAzJmcDmVnCilVFbe0uUQGq75YSho9IURUEYVF+lVoQZA+s9YnnAxr/gyGkcjWp8BGcHTBDJsbbs1DHCqyEztESLISiaAIIdRuEQFV+NSpFTNQAlk0CgakCaTSP9Y3PpNFI0JM2nkeIhaTGNNEgnMUxwVTIJg1ulBbbQ1TsksH7dlzcALrHlG15wewZmkDYYzOXrBEXg1RJETK8mzJFQlBUxbShq5e+1zC7+N62/k57V/pem9WDFuGVhuSViJ1sY2/jqMWdXu68vhaU6NaRZAeeopMl52VYHMZUGg3kDObx1AAdR+G1lC0detf+VtnUdhg44Rv4ldqKolb9NDIMR0XSI1mOMhD/XbJQIyOBu4UlH0zvccGTxaQDRAJASNvJn0TAWFwYi3e12HD7yWjWctOVw2uNME9MD0P1ViChudLjGufdYhlqaX4drYoScL7Y4xybvE9l1G5y1uLPonXe5e9+l+qrVvuxo/H20p668HuV1GwzSvyNYmveJeclxCVVXkOxpJ5XGmwIUwVXz4LZ4VQS8Ol1d49U3wGti7VUJ5Lmq5d/DO22j6Nm1JQwkWYk1foI0T8JlmqTz0K+s8Jezzhoks+VivpyBNYM3If0OJkiveD3/1JqetTPGYZA8fm6Na7bF+8IOpz/3JiMnwzBin/VYfiV89/ILBqFihVGUBG4iJHQ4W8A3qid8w45oFRTWMKmnaL7LbdfdKGuV6PoF2/ZGc4Ypg3XnUdXdKmV73d3eVt3LckQVBqymxITVcyozvIe/aheSrOCSPXNLQGWcVqOo2Xf1WUcEdU/o+99QSwMEFAAAAAgAAAAhAMrnZYorBAAAvgwAABEAHAB3b3JkL3NldHRpbmdzLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAAC1V22PmzgQ/n7S/QfE58uG1ySLmq3yervV5lqVre6zAZNYa2Nkm03T0/33GwwO9BZVSav9hJln5pnxeGYM795/ZdR6wUISXsxt98axLVykPCPFfm5/edqOZrYlFSoyRHmB5/YJS/v93e+/vTtGEisFatICikJGLJ3bB6XKaDyW6QEzJG94iQsAcy4YUvAq9mOGxHNVjlLOSqRIQihRp7HnOBO7peFzuxJF1FKMGEkFlzxXtUnE85ykuH0YC3GJ38ZkzdOK4UJpj2OBKcTAC3kgpTRs7GfZADwYkpcfbeKFUaN3dJ0LtnvkIjtbXBJebVAKnmIp4YAYNQGSonMcvCI6+74B3+0WNRWYu45e9SMPryPwXhFMUvz1Oo5ZyzEGyz4Pya7jmZx5SNbj+blgegRZdRWF55s46kdt3uOSmcoO19GZMxrXtkihA5KHPiO+boPhme7EunxLekkFNtAjSQQSp375sTR62BdcoIRCOFCGFlSSpaOzmqOsH1ZTHZbJg6WTa9/B1PnGObOOUYlFCq0HI8tz7HENQMHzPFZIAVEkS0ypnmEpxQj8HqO9QAymj5FomwznqKLqCSWx4iUovSDY3tRQpgckUKqwiEuUAtuKF0pwavQy/hdXK5hkAhqttdBzrVvFzYwEiwIx2PB3c2/HM1xHVgly+cnYxrsb9l3+3xGHmS5Ihp/qRMfqRPEWgo/JN7wosg+VVAQY9fT7hQh+FAAuas8foTSeTiXeYqQqSNMbOdMnsaWk3BEhuHgoMqiNN3NG8hwLcECg1nZQPkTwo87zPUYZXKVv5LeS+G9Qhs70n6Asn5dcKc7uT+UBcv1rJ6nrfdwvX/ggyKRZfOZcnVVhbPnr6bKJtEYvQXzXCVabQWTibN1hm0XgO/4gsnLXbjCMhLPlaggJboOJuxhCJqG3CcIhZLH0Zv5sCFku3Wk4iKxW/srfDiIbZz28n83Km04HY9vees7tpj2d9kxYVH9qfBJmVTe2xRqLFWKJIMja1R8j41ojEc9LUhg8wTClcR+Jq8SAo1EDSIYo3UKJGcBp5BmR5Rrnek13SOw73lZDDEphyn44c9VTG4s/Ba/KBj0KVDYNa1TcIGgtSaEeCTNyWSWxsSrgXulBVZF9fBE6T116jpGCBtCD7xHpRtK6uBh9idtGoyKumwTvUFk2vZbs3blNyf6g3Lo9FLxl8M2qX5K912KexrwG0y8orXcG2u2ik3lG1tPzjczvZIGRBZ0sNLKwk02MbFLLDjBdBVx1z9D2ZlnLc04pP+LsvsNficwlmBI48fjEku5uu2kwSiTMoRKuQcWFwf7QmBtEGU8f6vs6aOT+YhGuF860gUN9fSo9qiC1n3G+RBJnLWZMw8b0n8nEmbjuajYKZpvb0WYaBKOZu7wdTafO1PW3rufPnH/bPjA/Hnf/AVBLAwQUAAAACAAAACEA24Vsw30EAACXHQAAEgAcAHdvcmQvbnVtYmVyaW5nLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAADNmc1u4zYQx+8F+g6CgB4Tifq2sM4iySZFFttF0U3RMy3RlhB+CBRlx9d9mT5CH2tfoaRkyXLkxJIctz4pJjk/zQxnyL+dDx+fCdaWiOcpo1MdXJq6hmjE4pQupvqfj/cXga7lAtIYYkbRVF+jXP949fNPH1YhLcgMcblQkwyah6ssmuqJEFloGHmUIALzS5JGnOVsLi4jRgw2n6cRMlaMx4ZlArP8K+MsQnkuObeQLmGub3DRcz9azOFKGiugY0QJ5AI9bxlgMMQ1JkbQBVkjQDJCC3RR9mCUZyivOiBnFEh61SG540h7gvPGkawuyR9HsrukYBypU06kW+AsQ1ROzhknUMiPfGEQyJ+K7EKCMyjSWYpTsZZM06sxMKVPIzySVg2B2PFggm8QFiNsxzWFTfWC03Bjf9HYK9fDyn7zaCwQ7vda+bqJgZ4FzkVty/vkrjL/xKKCICrKrBkcYZlHRvMkzZrTgYylycmkhizfSsCSYL052UDPVnvtaPtUbcMW2Mf9zd4RXHn+NhGYPXZTIRqLPi7svrP2hMgK3r54VGpayQU9D58aYHUAXoR6XhY1I9gwjGjb3YqT9myrmuM1nDRuccY50wLExSCEZdd+qIcyb7HyWMTJMFy9R4ayhQImME/aRDQsQLfBrUkr39niuKb6lbMi29LS42gP2+N1RYcFaHovdzDLj3PmWwIzeeqSKHxYUMbhDEuPZKtpslu0cge0qlzVQ6s6QKv3WisLSFOnln4lhRqc5YLDSHwtiLbz6UFWuxR8khlyJFUeV4OVprueC8RvOIJPaomi0Fy9LVxCeQUAD1jejenrhpohBRbpF7RE+HGdoXpNsp7xNP5NzWE1V60VJMP1Chfc3Tp3ZlDN4KWaSOWjcioUGZb3remYE9M0QelD6WPjRGUnZeg9aQZnBcZINMRHeQfVUz++/9OMf47qUYzmm+XZ71w9UqrCVMNT3bdKTxJIF6Ugtj1TrTWaxXzzuGdU5Cq5eZTKOvy2JjOGS9NrmbedgZRKcIzmUGZmAyspRunYy0yATibsckTeZ/JSXCK14ujMsKF5AY4zLjG3rOAp4tpXtGpl58VolHcXDsua1cma+/5Z+/H976F5s4A3Lm9/ydXqO1neytru2LAE2Xsa7AQJGtxwVhD83x3nnGXHyTycdce5Z9pxjj3yCH/vjvPOtONcc+RR/n4d559lx7n+yLP6P+q44Ew7znNGHuHHd5yxo24PSl8wRvq6gW8C++b6OOl7d+c5wL91+kjf+57bGKMoJRDv3cdfwOU7a9+echVMRhYlZivEvyAh92J/RNbgiA6p1p5aEtwcE9IfjEC6PyJ7X0Q8XSQDBCUIeoTUVX/3I0N6s+acwTt0SP71VGynKzp3cEiHhFtPOXWyovOGF11HU/Uquq4AOknR+YN36JAC6ilaTld0wfCQDmiXnoriZEU3GV50HVnxStF1NQAt737auvPVD2dhXJQ/q5WDMlTHn3jWy5/LHpprv34X3cO09jGdwHWB7wDwOhO0mUbrH6pX/wJQSwMEFAAAAAgAAAAhAL5+dmJWAQAA0AMAABQAHAB3b3JkL3dlYlNldHRpbmdzLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAACd01FvwiAQAOD3JfsPhHelumlMYzVZFpe9LEu2/QAKV0sGXAO46n79aLWuiy92T0DLfbnjYLneG02+wHmFNqOTcUIJWIFS2W1GP943owUlPnAruUYLGT2Ap+vV7c2yTmvI3yCEuNOTqFifGpHRMoQqZcyLEgz3Y6zAxp8FOsNDXLotM9x97qqRQFPxoHKlVTiwaZLM6Ylx1yhYFErAI4qdARvaeOZARxGtL1XlO62+RqvRycqhAO9jPUYfPcOVPTOT+wvIKOHQYxHGsZhTRi0VwydJOzP6F5gNA6YXwFzAfpixOBksRvYdJYc587OjZM/5XzI9QO4GEdO7Lo9maMJ7lpdBlsO4rkesieWBl9yXfRGGFTg7cwfTnLcR6fPWouO5jlK8QSReAtLC5NiFZiDHxpKuBNKeC13FJ4ZVUEZ9wwbdg8Pag2PNZ6411q8vT3HB/rzD1Q9QSwMEFAAAAAgAAAAhAD+v4WZfDwAADaYAAA8AHAB3b3JkL3N0eWxlcy54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAA3Z1tc9s2Esff38x9B45e9V6ksp5lT92O7STnzCWpWzvX1xAJWaj5oCOpOO6nPwB8EKUlKC64UdRMZlqL4v4I4L+7xIIU+dMvXwLf+czjREThZW/w41nP4aEbeSJ8vOx9enj7at5zkpSFHvOjkF/2XnjS++Xnf/7jp+eLJH3xeeJIQJhcBO5lb5Wm64t+P3FXPGDJj9Gah/LLZRQHLJUf48d+wOKnzfqVGwVrloqF8EX60h+enU17OSZuQ4mWS+Hy15G7CXiYavt+zH1JjMJkJdZJQXtuQ3uOYm8dRy5PEtnpwM94ARNhiRmMASgQbhwl0TL9UXYmb5FGSfPBmf4r8LeACQ4wBICpy7/gGPOc0ZeWVY7wcJxpyRFehWPXmArA26AQw1HRDvU/ZV5hJV7qrXC4QqO+smUpW7FkVSVyXAcnJe4lUOMduBfvHsMoZgtfkqQHOdIJHA12MhXU/5xMWKfogqPHpfezjC4vcl/zJdv4aaI+xndx/jH/pP/3NgrTxHm+YIkrxGXvKhZMDvHzBWdJepUI9iBbLg8fCNmS26swEerLlfqjsrObXPYeRCBD+SN/dn6PAhY6P1xH3otzc/+vXl8d6InHodzzM/Mve8NsU/JXuWFcbLlJ9rf5LHwstvHw1af7ausqmxbCk01i8av7K204GF/44pGlm1g2S33ShCwRxd6N7Db/km5k++XO/Xw8+vujtC4/ZXvtDalMGDJ93GdZTH7Ll+8j94l796n84rJ31ss2fnp3F4solpnqsnd+nm+854G4FZ7Hw8qO4Up4/I8VDz8l3Ntu/+2tzjb5BjfahPLv0WyqZfYT780Xl69V7pLfhkzp9VEZaG02Yntwbf6/AjbIB7jOfsWZSuDOYB9xjkYMlUVS6W09c7PX9wH6QKNjHWh8rANNjnWg6bEONDvWgebHOtD51z6QCD2Z3wf1hwHUQxxDNKI5hmBDcwyxhOYYQgXNMUQCmmNwdDTH4MdojsFNEZw0ck1eWHH2kcHbm7mHzxF23MOnBDvu4TOAHfdwwrfjHs7vdtzD6dyOezh723EPJ2s8N5tqOe9kmIVp5yhbRlEaRil31PS0M42FkqWrWhqeOunxmKSTBJgss+Un4s40l+nPhz1k0u18nqqCzomWzlI8quKkc8N5+Jn70Zo7zPMkjxAYc1k+GUbExqdjvuQxD11O6dh0UF+E3Ak3wYLAN9fskYzFQ494+AoiSVIoHZpt0pUKEkHg1AFz44hgzsLI8sN7kXQfKwVxrje+z4lYH2lcTLO61wYa07000JjulYHGdC8MKppRDVFOIxqpnEY0YDmNaNwy/6Qat5xGNG45jWjcclr3cXsQqc/3Zx2D9mt3N36UUCS8e/EY6vXTzqR8zdS5YzF7jNl65ahl54MzLfRx9JLzA8U5rSRRzeu1i6hVZxFuug/oDo0quEoeUXiVPKIAK3ndQ+yDnCarCdotTT1zv1mktUHbviq4Z/4mm9B2jzaWdvewbQC8FXFCFgb1WAIP/qims7dEU71tK7s3bMvqHlb7WYm0eTmSoJV+5D7RpOHblzWPZVn21Jn0NvL96Jl7dMT7NI4yX6uG/HDYOuTfBOsVS0QCEO1P9cUdDM4Htu7coTufiZBGtzevAiZ8h24Gcfvw4b3zEK1VmakGhgZ4HaVpFJAx85XAH/7gi3/RNPBKFsHhC1Fvr4iWhzTsRhCcZDJS5BGR5DRThILkHKp5/+Evi4jFHg3tLubZTUMpJyLes2DtU8WWzIvPMv8QzIY0778sFmpdiCqoHkhglWXDZLP4k7vdU93HyCFZGfp1k+r1Rz3V7X61dwfXfZqwg+s+RdBqytOD8l+Czu7gund2B0fV2RufJYkwXkK15lF1t+BR97d78ZfzIj+KlxufbgALINkIFkCyIYz8TRAmlD3WPMIOax51fwldRvMIluQ079+x8MjE0DAqJTSMSgYNo9JAw0gF6H6HTgXW/TadCqz7vToZjGgKUIFR+Rnp6Z/oKk8FRuVnGkblZxpG5WcaRuVno9cOXy7lJJjuFFNBUvlcBUl3oglTHqyjmMUvRMg3Pn9kBAukGe0ujpbq1yRRmN3ETTGd3SxSysl2hqMS+Q++IGuaYlG2i2BFlPl+FBGtrW1PONpy9961Q2b65xydm3DnM5evIt/jsaFPjfXy/Zq5Ai6dtr9Y8l48rlLnflWu9lcx07ODlkXBvmN2+IB1Yz4dNl5m8sQmKBoKf0wxHbU3HgLj8WHj7Uxix3LS0hIec3rYcjtL3rGctbSEx5y3tBwBy6Z4eM3ip1pHmDX5T1njGZxv1nhhvjCuPWyTI5WWdS44a/KinVBxrlxXXS2A6rSLGbN9u+Ax22OiyEzBhJOZ0jquzIimAPudfxZJ7Rr1gevf5d0TIO+PW2fO3zZRCi5TD9v/qOudnDiFCXdqOaP2F652sox5HFunGzOidd4xI1onIDOiVSYymqNSkpnSOjeZEa2TlBmBzlbwjIDLVtAel62gvU22ghSbbNVhFmBGtJ4OmBHoQIUIdKB2mCmYEahABeZWgQop6ECFCHSgQgQ6UOEEDBeo0B4XqNDeJlAhxSZQIQUdqBCBDlSIQAcqRKADFSLQgWo5tzeaWwUqpKADFSLQgQoR6EAddwxUaI8LVGhvE6iQYhOokIIOVIhABypEoAMVItCBChHoQIUIVKACc6tAhRR0oEIEOlAhAh2ok46BCu1xgQrtbQIVUmwCFVLQgQoR6ECFCHSgQgQ6UCECHagQgQpUYG4VqJCCDlSIQAcqRKADddoxUKE9LlChvU2gQopNoEIKOlAhAh2oEIEOVIhABypEoAMVIlCBCsytAhVS0IEKEehAhYgm/8wvUZpusx/gVz2Nd+wjfueTNer36k+5d9ZQ26OKVplZ7X+LcB1FT07tDw9Ho/YQsfBFpJeoDZfVq9wZ+sLnrzfNv/Bp8RiPtl3Jfwuhr5kC+LitJVhTGTe5fNUSFHnjJk+vWoJZ57gp+1YtwWlw3JR0dVwWN6XI0xEwbkozFeOBwbwpW1fM4RA35eiKIRzhpsxcMYQD3JSPK4YTRyXnfetJy3GalveXAkKTO1YIMzOhyS2hVsa1/daimQlt1TMT2spoJqD0NGLwwppRaIXNKDupYZhhpbYPVDMBKzUkWEkNMPZSQ5S11BBlJzVMjFipIQErtX1yNhOspAYYe6khylpqiLKTGp7KsFJDAlZqSMBK3fGEbMTYSw1R1lJDlJ3UcHKHlRoSsFJDAlZqSLCSGmDspYYoa6khyk5qUCWjpYYErNSQgJUaEqykBhh7qSHKWmqIapJar6LYV0sVc9wkrGKIOyFXDHHJuWJoUS1VrC2rpQrBslqCWtlVS1XR7Kqlqnp21VJVRrtqCehpVy3VCmtXLdUqbFctmaXGVUt1UtsHql21VCc1rloySo2rlhqlxlVLjVLjqiWz1LhqqU5qXLVUJ7V9crarloxS46qlRqlx1VKj1LhqySw1rlqqkxpXLdVJjauW6qTueEK2q5YapcZVS41S46ols9S4aqlOaly1VCc1rlqqkxpXLRmlxlVLjVLjqqVGqXHVkllqXLVUJzWuWqqTGlct1UmNq5aMUuOqpUapcdVSo9S4aumDNBEEj4C6D1icOnTPi7tlySpl3R9O+CmMeRL5n7nn0Hb1PaqX/eed118ptn6dn9w/lWOmnoBe+bmSlz0BNgfqHd955WuqlLFqiZO/5yvfrBucX67NjqgNDxyqhOfXigcAv325lT7Cgsle/RrWHTxUD0as2a4cotheHOZmxeLs262rFvuc7/fl+SJO1Avcsq/Pzoaj0evZdbbXOns12xPn64/y+P3ig9SHJ/pTkv2AVpov1DPF5AiMpvq3V2yZ8viyN8+jNsqe2vT+s18eKZcuP0btW+CKV76xPyuvfNt/H5z68k2+TX2vXwlXa+kmaWXztfBE1jhXRXnZrrfj2VT7ht5ZZ4DLHtPxv92sbkpR9xm8zQjbF8gVF5urL5AbF30tXu1m4zxDo/MMKZ1n2MJ5tmGZ7bcTlF/ZvQYt3WvwfbrXaAjdK9vW0b1GRvcaUbrX6Dtxr2Gzex1yomO4ynAOXSXb1tFVxkZXGVO6yvjEXWVe9ZSx0VNGX8dTRPbfm4TEbzp6xMToERNKj5h8Hx4xPs3c0dEHpkYfmFL6wPTEfcAs++ToiWByrv7tO4F609LWBR6EeoPv1ZTAA2ZGD5hResDsb+sB0yME/pE1nxs1n1NqPj8pzaGys6PH9nCm/rXR+TXFnO/cqPM5pc7nJ67z/AgRTK+sKweVufkD1Q3rX/mLkcon++jXIu1rbnh7kkGvQTu9zO1O1SpsQ5v1Km3jwl3+sHaTQ7X2qHThZ1LLP96FyqGe83fYZy31vrBeseMN9/0PLNs7Wpt39fkyzb4dnM1rvl9kr4Qw2sf62oER0N9tTL/shHm8s5dE5j9qMa6T6keGweHOHiXWcaRb+rC7SeTQ6OXe/fbtrIHut/K2WG51tnlmL3HVxoEpXQ0OpCpz8vle1qO6LHciJR02SjokknSIO/t8/wp3WXFEKjxqVHhEpPDoayn8d1/0Q6o1blRrTKTW+NTUOvbCG1KVSaMqEyJVJqemysnpMG3UYUqkw/TUdDjqahRSklmjJDMiSWanJslpiTBvFGFOJML81EQ46koOUpLzRknOiSQ5PzVJvslyWvZgi/2xzrZSrKNpUtMi2iAv2FBrZNtF7r0L4656fcWXdMP8/En6jctjxyyBtk3W3XpV9PuJx+XgbifLZXqcwunzhDgRbiWqdYOu4VbxJbP6p1m2Hl+z+iAtX6K9L1D5BUWoFrDGaB1YRGu4CbI/hA/vhyq/BDE9mB64Je+bTECAVwwm36Lm3RHL5BZdQ3fXvczecOJzxq8sWX3MZq8B2Fcm20oRrZrUFKpDmztrD92ANige3venW3BUEcvj2khtmGSOz9S/NhpS18PbgasVp2vMVBQ2a3IwYI46cvUOrC6fbN+rsT9We6/dOOTRcChGYwv3FPpSl7pQpZ6R12LO19Jdyk7nD44rn2a3323wuDuco9R4BOqEetg7jnifVT4W9Ylu920oFAmverimvDeyKSjW117lAqneL5GelL9X+y91j5yTZUeuJ61OPuyW6+PlpdSvfKT+tmeHfhgxKjJ7NcbmU90afWU3+0SS/L/peijwo0bX7Xo62AmSAx57cnHfmCO3z9Y0DeB2j65Zsrjmh8qSi+yo+WglMqn4N2xNM3ZgSjmpH9Hir+Tn/wNQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAHAB3b3JkL3RoZW1lL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhAGeA/LSbBgAAzSAAABUAHAB3b3JkL3RoZW1lL3RoZW1lMS54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAA7VlPb9s2FL8P2HcgdHf1x5IsBXUL/23XJm3RpB16ZGRaYkyJAkknMYoCQ3vaZcCAbthlwG47DMMKrMCKXfZhCrTYug8xSnZs0abatE23AksMxCL5e48/vvf4+ExdvHycEnCIGMc0axv2BcsAKIvoCGdx27izN2wEBuACZiNIaIbaxgxx4/KlTz+5CLdEglIEpHzGt2DbSITIt0yTR7Ib8gs0R5kcG1OWQiGbLDZHDB5JvSkxHcvyzRTizAAZTKXam+MxjhDYK1Qal06UD4j8lwledESE7UbljFWJEjua2MUXn/EeYeAQkrYh5xnRoz10LAxAIBdyoG1Y5Z9hXrpoLoWIqJGtyA3Lv4XcQmA0cUo5Fu8vBa2BE7j2Ur8z17+JGwTFZ6mvBMAokiu1N7C251uBs8BWQPNHje6wZTdVfEV/c1N/6HcdV8E3V3h3c43DcND3FLy7wnsb+I7ldMOmgvdWeH8D7w46LWeg4EtQQnA22UT7rSDwF+glZEzJVS089H2r1V/AVyizEl1z+UzUxVoKDygbSkDpXChwBsQsR2MYSVwnF5SDPuY5gTMD5DCjXHZbjm3LwHMtZ/kpLQ63EKxIz7sivtFV8AE8YjgXbeOa1GpUIC+ePXv+8Onzh789f/To+cNfwDaOE6GRuwqzuCr36sev//7+C/DXrz+8evyNHs+r+Jc/f/ny9z9ep14otL598vLpkxffffXnT4818A6D+1X4Hk4RBzfQEbhNU7lAzQRon72dxF4CcVWik8UcZrCQ0aAHIlHQN2aQQA2ui1Q73mUyXeiAV6YHCuHdhE0F1gCvJ6kC3KGUdCnTrul6MVfVCtMs1k/OplXcbQgPdXP31rw8mOYy7rFOZS9BCs1bRLocxihDAhRjdIKQRuwexopdd3DEKKdjAe5h0IVYa5I9vC/0QldxKv0y0xGU/lZss3MXdCnRqe+jQxUp9wYkOpWIKGa8AqcCplrGMCVV5DYUiY7k7oxFisG5kJ6OEaFgMEKc62RusplC9zqUeUvr9h0yS1UkE3iiQ25DSqvIPp30EpjmWs44S6rYz/hEhigEt6jQkqDqDina0g8wq3X3XYzE2+3tOzIN6QOkGJky3ZZAVN2PMzKGSKe8w1IlxXYY1kZHdxorob2NEIFHcIQQuPOZDk9zqid9LZFZ5SrS2eYaVGO1aGeIy1qpKG40jsVcCdldFNMaPjuztcQzg1kKWZ3mGxM1ZAb7TG5GXbySaKKkUsyKTasncZOn8FRabyVQCauizfXxOmPZ2+4xKXPwDjLorWVkYj+1bfYgQfqA2YMYbOvSrRSZ6kWK7VSKTbVyY3XTrtxgrhU9Kc7eUAH9N5XPB6t5zr7aqUso6zVOHW69sulRNsIff2HTh9PsFpJnyXldc17X/B/rmrr9fF7NnFcz59XMv1bNrAoYs3rZU2pJa29+xpiQXTEjaJuXpQ+Xe380lJ1loxRaXjTliXxcTKfgYgbLZ8Co+ByLZDeBuZzGLmeI+UJ1zEFOuSyfjFrdZfE1TXfoaHGPZ5/cbUoBKFb9lrfsl6WamPf6rdVF6FJ92Yp5lYBXKj09icpkKommhkSreToStnVWLEINi8B+HQuz4hV5OAFYXIt77pyRDDcZ0qPCT3P5E++euafrjKku29EsL3TPzNMKiUq4qSQqYZjIw2O9+4x9HYZ6VztaGq3gQ/ja3MwNJFNb4EjuuaYn1UQwbxtj+bNJPqa51MeLTAVJnLWNSCwM/S6ZJWdc9CFP5rByaL7+FAvEAMGpjPWqG0i24mY7LevjJRdaH5/lzHUno/EYRaKmZ9WUY3Ml2tH3BBcNOpWkd5PREdgnU3YbSkN5Lbsw4AhzsbTmCLNKcK+suJauFltReQO02qKQ5AlcnCjVZD6Hl89LOpV1lEzXV2XqTLgfD8/i1H2z0FrSrDlAWrVZ7MMd8hVWTT0rT5vrwsB6/Snx/gdChVqgp9bUU6s7O86wIKhM59fYzan15nueButRa1bqyrK18XKb7h/IyO/LanVKBJ9fkB3L8rt38lpyngnK3pPscizAlOG2cd/yOm7P8XoNK/AGDbfpWo3A6zQbHc9r2gPPtvpd54E0ikhS25vPPZQ/9sls8e6+7N94f5+elNoXIpqatKyDzVK4fH9vO/Xv7wGWlrnvO8OwGXb9RtjsDBtuvxs0wp7fbfT9Xqs/7Pe8IBw+MMBhCXY7zZ7rD4KGb/d6Dde3CvpB2Gi5jtNxW51g4HYeLGwtV37yfWLektelfwBQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAHAB3b3JkL19yZWxzL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhALO+ix3+AAAAtgMAABwAHAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzVVQJAAMw0M4SiBztaHV4CwABBPUBAAAEFAAAAK2TzWrDMBCE74W+g9h7LTttQwmRcymBXFv3AWR7/UP1Y6RNWr99RUoShwbTg44zYme+hdV6860VO6DzvTUCsiQFhqaydW9aAR/F9uEFmCdpaqmsQQEjetjk93frN1SSwpDv+sGzkGK8gI5oWHHuqw619Ikd0ISXxjotKUjX8kFWn7JFvkjTJXfTDMivMtmuFuB29SOwYhzwP9m2afoKX22112joRgX3SBQ28yFTuhZJwMlJQhbw2wiLqAg0KpwCHPVcfRaz3ux1iS5sfCE4W3MQy5gQFGbxAnCUv2Y2x/Ack6GxhgpZqgnH2ZqDeIoJ8YXl+5+TnJgnEH712/IfUEsBAh4DFAAAAAgAAAAhADKRb1deAQAApQUAABMAGAAAAAAAAQAAAKSBAAAAAFtDb250ZW50X1R5cGVzXS54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTZE1bAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UGrAQAAZG9jUHJvcHMvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhACEYr1llAQAAxQIAABAAGAAAAAAAAQAAAKSB7gEAAGRvY1Byb3BzL2FwcC54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEACvOn+GYBAADtAgAAEQAYAAAAAAABAAAApIGdAwAAZG9jUHJvcHMvY29yZS54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTZE1bAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UFOBQAAX3JlbHMvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhAB6RGrfpAAAATgIAAAsAGAAAAAAAAQAAAKSBjgUAAF9yZWxzLy5yZWxzVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAk2RNWwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BvAYAAHdvcmQvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAoWRNW+xw0GIQAgAAtAcAABIAGAAAAAAAAQAAAKSB+wYAAHdvcmQvZm9udFRhYmxlLnhtbFVUBQADnhztaHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQCWFrgr1QIAAIgLAAARABgAAAAAAAEAAACkgVcJAAB3b3JkL2RvY3VtZW50LnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQDK52WKKwQAAL4MAAARABgAAAAAAAEAAACkgXcMAAB3b3JkL3NldHRpbmdzLnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQDbhWzDfQQAAJcdAAASABgAAAAAAAEAAACkge0QAAB3b3JkL251bWJlcmluZy54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEAvn52YlYBAADQAwAAFAAYAAAAAAABAAAApIG2FQAAd29yZC93ZWJTZXR0aW5ncy54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEAP6/hZl8PAAANpgAADwAYAAAAAAABAAAApIFaFwAAd29yZC9zdHlsZXMueG1sVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BAicAAHdvcmQvdGhlbWUvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhAGeA/LSbBgAAzSAAABUAGAAAAAAAAQAAAKSBRycAAHdvcmQvdGhlbWUvdGhlbWUxLnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJNkTVsAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQTEuAAB3b3JkL19yZWxzL1VUBQADhhztaHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQCzvosd/gAAALYDAAAcABgAAAAAAAEAAACkgXYuAAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsFBgAAAAARABEAqQUAAMovAAAAAA==`, 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$15 = "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$15, 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$14 = "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$14, "mfrac");
|
|
277266
|
+
const numRow = doc$12.createElementNS(MATHML_NS$14, "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$14, "mrow");
|
|
277165
277270
|
denRow.appendChild(convertChildren(den?.elements ?? []));
|
|
277166
277271
|
frac.appendChild(denRow);
|
|
277167
277272
|
return frac;
|
|
277168
|
-
}, MATHML_NS$
|
|
277273
|
+
}, MATHML_NS$13 = "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$13, 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$13, "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$13, "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$12 = "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$12, "mrow");
|
|
277292
|
+
const functionNameRow = doc$12.createElementNS(MATHML_NS$12, "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$12, "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$12, "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$11 = "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$11, "mrow");
|
|
277315
|
+
const begin = doc$12.createElementNS(MATHML_NS$11, "mo");
|
|
277211
277316
|
begin.textContent = beginDelimiter;
|
|
277212
277317
|
wrapper.appendChild(begin);
|
|
277213
277318
|
let renderedCount = 0;
|
|
@@ -277216,81 +277321,237 @@ 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$11, "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$11, "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$11, "mo");
|
|
277229
277334
|
end$1.textContent = endDelimiter;
|
|
277230
277335
|
wrapper.appendChild(end$1);
|
|
277231
277336
|
return wrapper;
|
|
277232
|
-
}, MATHML_NS$
|
|
277337
|
+
}, MATHML_NS$10 = "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$10, "msub");
|
|
277342
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$10, "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$10, "mrow");
|
|
277241
277346
|
subRow.appendChild(convertChildren(sub?.elements ?? []));
|
|
277242
277347
|
msub.appendChild(subRow);
|
|
277243
277348
|
return msub;
|
|
277244
|
-
}, MATHML_NS$
|
|
277349
|
+
}, MATHML_NS$9 = "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$9, "msup");
|
|
277354
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$9, "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$9, "mrow");
|
|
277253
277358
|
supRow.appendChild(convertChildren(sup?.elements ?? []));
|
|
277254
277359
|
msup.appendChild(supRow);
|
|
277255
277360
|
return msup;
|
|
277256
|
-
}, MATHML_NS$
|
|
277361
|
+
}, MATHML_NS$8 = "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$8, "msubsup");
|
|
277367
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$8, "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$8, "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$8, "mrow");
|
|
277269
277374
|
supRow.appendChild(convertChildren(sup?.elements ?? []));
|
|
277270
277375
|
msubsup.appendChild(supRow);
|
|
277271
277376
|
return msubsup;
|
|
277272
|
-
}, MATHML_NS$
|
|
277377
|
+
}, MATHML_NS$7 = "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$7, "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$7, "mover");
|
|
277391
|
+
mover.setAttribute("accent", "true");
|
|
277392
|
+
mover.appendChild(baseRow);
|
|
277393
|
+
const mo = doc$12.createElementNS(MATHML_NS$7, "mo");
|
|
277394
|
+
mo.setAttribute("stretchy", "true");
|
|
277395
|
+
mo.textContent = renderChar;
|
|
277396
|
+
mover.appendChild(mo);
|
|
277397
|
+
return mover;
|
|
277398
|
+
}, MATHML_NS$6 = "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$6, "mmultiscripts");
|
|
277404
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$6, "mrow");
|
|
277405
|
+
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277406
|
+
mmultiscripts.appendChild(baseRow);
|
|
277407
|
+
mmultiscripts.appendChild(doc$12.createElementNS(MATHML_NS$6, "mprescripts"));
|
|
277408
|
+
const subRow = doc$12.createElementNS(MATHML_NS$6, "mrow");
|
|
277409
|
+
subRow.appendChild(convertChildren(sub?.elements ?? []));
|
|
277410
|
+
mmultiscripts.appendChild(subRow);
|
|
277411
|
+
const supRow = doc$12.createElementNS(MATHML_NS$6, "mrow");
|
|
277412
|
+
supRow.appendChild(convertChildren(sup?.elements ?? []));
|
|
277413
|
+
mmultiscripts.appendChild(supRow);
|
|
277414
|
+
return mmultiscripts;
|
|
277415
|
+
}, MATHML_NS$5 = "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$5, "mtable");
|
|
277430
|
+
mtable.setAttribute("columnalign", "left");
|
|
277431
|
+
for (const row2 of rows) {
|
|
277432
|
+
const mtr = doc$12.createElementNS(MATHML_NS$5, "mtr");
|
|
277433
|
+
const mtd = doc$12.createElementNS(MATHML_NS$5, "mtd");
|
|
277434
|
+
const mrow = doc$12.createElementNS(MATHML_NS$5, "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$4 = "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$4, "msqrt");
|
|
277451
|
+
const radicandRow$1 = doc$12.createElementNS(MATHML_NS$4, "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$4, "mroot");
|
|
277457
|
+
const radicandRow = doc$12.createElementNS(MATHML_NS$4, "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$4, "mrow");
|
|
277291
277461
|
degRow.appendChild(convertChildren(deg?.elements ?? []));
|
|
277292
277462
|
mroot.appendChild(degRow);
|
|
277293
277463
|
return mroot;
|
|
277464
|
+
}, MATHML_NS$3 = "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$3, "munder");
|
|
277469
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$3, "mrow");
|
|
277470
|
+
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277471
|
+
munder.appendChild(baseRow);
|
|
277472
|
+
const limRow = doc$12.createElementNS(MATHML_NS$3, "mrow");
|
|
277473
|
+
limRow.appendChild(convertChildren(lim?.elements ?? []));
|
|
277474
|
+
munder.appendChild(limRow);
|
|
277475
|
+
return munder;
|
|
277476
|
+
}, MATHML_NS$2 = "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$2, "mover");
|
|
277481
|
+
const baseRow = doc$12.createElementNS(MATHML_NS$2, "mrow");
|
|
277482
|
+
baseRow.appendChild(convertChildren(base5?.elements ?? []));
|
|
277483
|
+
mover.appendChild(baseRow);
|
|
277484
|
+
const limRow = doc$12.createElementNS(MATHML_NS$2, "mrow");
|
|
277485
|
+
limRow.appendChild(convertChildren(lim?.elements ?? []));
|
|
277486
|
+
mover.appendChild(limRow);
|
|
277487
|
+
return mover;
|
|
277488
|
+
}, MATHML_NS$1 = "http://www.w3.org/1998/Math/MathML", DEFAULT_NARY_CHAR = "∫", INTEGRAL_CHARS, convertNary = (node3, doc$12, convertChildren) => {
|
|
277489
|
+
const elements = node3.elements ?? [];
|
|
277490
|
+
const naryPr = elements.find((e) => e.name === "m:naryPr");
|
|
277491
|
+
const sub = elements.find((e) => e.name === "m:sub");
|
|
277492
|
+
const sup = elements.find((e) => e.name === "m:sup");
|
|
277493
|
+
const body = elements.find((e) => e.name === "m:e");
|
|
277494
|
+
const chr = naryPr?.elements?.find((e) => e.name === "m:chr");
|
|
277495
|
+
const limLoc = naryPr?.elements?.find((e) => e.name === "m:limLoc");
|
|
277496
|
+
const subHide = naryPr?.elements?.find((e) => e.name === "m:subHide");
|
|
277497
|
+
const supHide = naryPr?.elements?.find((e) => e.name === "m:supHide");
|
|
277498
|
+
const grow = naryPr?.elements?.find((e) => e.name === "m:grow");
|
|
277499
|
+
const opChar = chr === undefined ? DEFAULT_NARY_CHAR : chr.attributes?.["m:val"] ?? "";
|
|
277500
|
+
const limLocVal = limLoc?.attributes?.["m:val"];
|
|
277501
|
+
const isUndOvr = limLocVal === "undOvr" || limLoc !== undefined && limLocVal === undefined || limLoc === undefined && opChar !== "" && !INTEGRAL_CHARS.test(opChar);
|
|
277502
|
+
const isStOnOffTrue = (el) => el !== undefined && (el.attributes?.["m:val"] === "1" || el.attributes?.["m:val"] === "on" || el.attributes?.["m:val"] === "true" || !el.attributes);
|
|
277503
|
+
const subHidden = isStOnOffTrue(subHide);
|
|
277504
|
+
const supHidden = isStOnOffTrue(supHide);
|
|
277505
|
+
const stripCtrl = (el) => (el?.elements ?? []).filter((e) => e.name !== "m:ctrlPr");
|
|
277506
|
+
const subChildren = stripCtrl(sub);
|
|
277507
|
+
const supChildren = stripCtrl(sup);
|
|
277508
|
+
const promotedToSup = subHidden && !supHidden ? subChildren : [];
|
|
277509
|
+
const promotedToSub = supHidden && !subHidden ? supChildren : [];
|
|
277510
|
+
const renderSubChildren = subHidden ? [] : [...subChildren, ...promotedToSub];
|
|
277511
|
+
const renderSupChildren = supHidden ? [] : [...promotedToSup, ...supChildren];
|
|
277512
|
+
const hasSub = renderSubChildren.length > 0 || sub !== undefined && !subHidden;
|
|
277513
|
+
const hasSup = renderSupChildren.length > 0 || sup !== undefined && !supHidden;
|
|
277514
|
+
const growOff = grow !== undefined && !isStOnOffTrue(grow);
|
|
277515
|
+
const mo = doc$12.createElementNS(MATHML_NS$1, "mo");
|
|
277516
|
+
mo.textContent = opChar;
|
|
277517
|
+
if (growOff) {
|
|
277518
|
+
mo.setAttribute("largeop", "false");
|
|
277519
|
+
mo.setAttribute("stretchy", "false");
|
|
277520
|
+
}
|
|
277521
|
+
let operatorEl;
|
|
277522
|
+
if (hasSub && hasSup) {
|
|
277523
|
+
const tag = isUndOvr ? "munderover" : "msubsup";
|
|
277524
|
+
operatorEl = doc$12.createElementNS(MATHML_NS$1, tag);
|
|
277525
|
+
operatorEl.appendChild(mo);
|
|
277526
|
+
const subRow = doc$12.createElementNS(MATHML_NS$1, "mrow");
|
|
277527
|
+
subRow.appendChild(convertChildren(renderSubChildren));
|
|
277528
|
+
operatorEl.appendChild(subRow);
|
|
277529
|
+
const supRow = doc$12.createElementNS(MATHML_NS$1, "mrow");
|
|
277530
|
+
supRow.appendChild(convertChildren(renderSupChildren));
|
|
277531
|
+
operatorEl.appendChild(supRow);
|
|
277532
|
+
} else if (hasSub) {
|
|
277533
|
+
const tag = isUndOvr ? "munder" : "msub";
|
|
277534
|
+
operatorEl = doc$12.createElementNS(MATHML_NS$1, tag);
|
|
277535
|
+
operatorEl.appendChild(mo);
|
|
277536
|
+
const subRow = doc$12.createElementNS(MATHML_NS$1, "mrow");
|
|
277537
|
+
subRow.appendChild(convertChildren(renderSubChildren));
|
|
277538
|
+
operatorEl.appendChild(subRow);
|
|
277539
|
+
} else if (hasSup) {
|
|
277540
|
+
const tag = isUndOvr ? "mover" : "msup";
|
|
277541
|
+
operatorEl = doc$12.createElementNS(MATHML_NS$1, tag);
|
|
277542
|
+
operatorEl.appendChild(mo);
|
|
277543
|
+
const supRow = doc$12.createElementNS(MATHML_NS$1, "mrow");
|
|
277544
|
+
supRow.appendChild(convertChildren(renderSupChildren));
|
|
277545
|
+
operatorEl.appendChild(supRow);
|
|
277546
|
+
} else
|
|
277547
|
+
operatorEl = mo;
|
|
277548
|
+
const wrapper = doc$12.createElementNS(MATHML_NS$1, "mrow");
|
|
277549
|
+
wrapper.appendChild(operatorEl);
|
|
277550
|
+
const bodyRow = doc$12.createElementNS(MATHML_NS$1, "mrow");
|
|
277551
|
+
bodyRow.appendChild(convertChildren(body?.elements ?? []));
|
|
277552
|
+
if (bodyRow.childNodes.length > 0)
|
|
277553
|
+
wrapper.appendChild(bodyRow);
|
|
277554
|
+
return wrapper;
|
|
277294
277555
|
}, 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
277556
|
if (typeof value !== "string")
|
|
277296
277557
|
return null;
|
|
@@ -280596,6 +280857,7 @@ var Node$13 = class Node$14 {
|
|
|
280596
280857
|
const rawMeasures = cellMeasure.blocks ?? (cellMeasure.paragraph ? [cellMeasure.paragraph] : []);
|
|
280597
280858
|
const cellBlockMeasures = (Array.isArray(rawMeasures) ? rawMeasures : []).filter((m$1) => m$1 != null && typeof m$1 === "object" && ("kind" in m$1));
|
|
280598
280859
|
let blockStartY = 0;
|
|
280860
|
+
let blockStartGlobalLines = 0;
|
|
280599
280861
|
const getBlockHeight = (m$1) => {
|
|
280600
280862
|
if (!m$1)
|
|
280601
280863
|
return 0;
|
|
@@ -280639,10 +280901,12 @@ var Node$13 = class Node$14 {
|
|
|
280639
280901
|
cellBlock: paragraphBlock,
|
|
280640
280902
|
cellMeasure: paragraphMeasure,
|
|
280641
280903
|
localX: Math.max(0, cellLocalX),
|
|
280642
|
-
localY: Math.max(0, localYWithinBlock)
|
|
280904
|
+
localY: Math.max(0, localYWithinBlock),
|
|
280905
|
+
blockStartGlobal: blockStartGlobalLines
|
|
280643
280906
|
};
|
|
280644
280907
|
}
|
|
280645
280908
|
blockStartY = blockEndY;
|
|
280909
|
+
blockStartGlobalLines += paragraphMeasure.lines.length;
|
|
280646
280910
|
}
|
|
280647
280911
|
}
|
|
280648
280912
|
return null;
|
|
@@ -280688,29 +280952,38 @@ var Node$13 = class Node$14 {
|
|
|
280688
280952
|
for (let i4 = 0;i4 < absoluteLineIndex; i4 += 1)
|
|
280689
280953
|
height += measure.lines[i4]?.lineHeight ?? 0;
|
|
280690
280954
|
return height;
|
|
280691
|
-
}, mapPmToX = (block, line, offset$1, fragmentWidth, alignmentOverride) => {
|
|
280955
|
+
}, mapPmToX = (block, line, offset$1, fragmentWidth, alignmentOverride, isFirstLine, markerTextWidth) => {
|
|
280692
280956
|
if (fragmentWidth <= 0 || line.width <= 0)
|
|
280693
280957
|
return 0;
|
|
280694
280958
|
let paraIndentLeft = 0;
|
|
280695
280959
|
let paraIndentRight = 0;
|
|
280696
280960
|
let effectiveLeft = 0;
|
|
280961
|
+
let isListParagraph = false;
|
|
280962
|
+
let wl;
|
|
280697
280963
|
if (block.kind === "paragraph") {
|
|
280698
280964
|
const indentLeft = typeof block.attrs?.indent?.left === "number" ? block.attrs.indent.left : 0;
|
|
280699
280965
|
const indentRight = typeof block.attrs?.indent?.right === "number" ? block.attrs.indent.right : 0;
|
|
280700
280966
|
paraIndentLeft = Number.isFinite(indentLeft) ? indentLeft : 0;
|
|
280701
280967
|
paraIndentRight = Number.isFinite(indentRight) ? indentRight : 0;
|
|
280702
280968
|
effectiveLeft = paraIndentLeft;
|
|
280703
|
-
|
|
280704
|
-
|
|
280969
|
+
wl = getWordLayoutConfig(block);
|
|
280970
|
+
isListParagraph = Boolean(block.attrs?.numberingProperties) || Boolean(wl?.marker);
|
|
280971
|
+
if (isListParagraph) {
|
|
280705
280972
|
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
280973
|
if (typeof explicitTextStart === "number" && explicitTextStart > paraIndentLeft)
|
|
280707
280974
|
effectiveLeft = explicitTextStart;
|
|
280708
280975
|
}
|
|
280709
280976
|
}
|
|
280710
280977
|
const totalIndent = effectiveLeft + paraIndentRight;
|
|
280711
|
-
|
|
280978
|
+
let availableWidth = Math.max(0, fragmentWidth - totalIndent);
|
|
280712
280979
|
if (totalIndent > fragmentWidth)
|
|
280713
280980
|
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.`);
|
|
280981
|
+
const hasRenderedMarkerText = isListParagraph && (markerTextWidth ?? 0) > 0;
|
|
280982
|
+
if (isFirstLine && block.kind === "paragraph" && !hasRenderedMarkerText) {
|
|
280983
|
+
const suppressFLI = block.attrs?.suppressFirstLineIndent === true;
|
|
280984
|
+
const firstLineOffset = getFirstLineIndentOffset(block.attrs?.indent, suppressFLI);
|
|
280985
|
+
availableWidth = adjustAvailableWidthForTextIndent(availableWidth, firstLineOffset, line.maxWidth);
|
|
280986
|
+
}
|
|
280714
280987
|
return measureCharacterX(block, line, offset$1, availableWidth, alignmentOverride);
|
|
280715
280988
|
}, WORD_CHARACTER_REGEX, EpochPositionMapper = class {
|
|
280716
280989
|
#currentEpoch = 0;
|
|
@@ -287394,12 +287667,12 @@ var Node$13 = class Node$14 {
|
|
|
287394
287667
|
return;
|
|
287395
287668
|
console.log(...args$1);
|
|
287396
287669
|
}, 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
|
|
287670
|
+
var init_src_DZzZDECe_es = __esm(() => {
|
|
287398
287671
|
init_rolldown_runtime_Bg48TavK_es();
|
|
287399
|
-
|
|
287672
|
+
init_SuperConverter_CWhofwLf_es();
|
|
287400
287673
|
init_jszip_C49i9kUs_es();
|
|
287401
287674
|
init_uuid_qzgm05fK_es();
|
|
287402
|
-
|
|
287675
|
+
init_create_headless_toolbar_C2iuH72Y_es();
|
|
287403
287676
|
init_constants_CGhJRd87_es();
|
|
287404
287677
|
init_dist_B8HfvhaK_es();
|
|
287405
287678
|
init_unified_Dsuw2be5_es();
|
|
@@ -313132,27 +313405,57 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
313132
313405
|
"⊆",
|
|
313133
313406
|
"⊇"
|
|
313134
313407
|
]);
|
|
313408
|
+
STY_TO_VARIANT = {
|
|
313409
|
+
p: "normal",
|
|
313410
|
+
b: "bold",
|
|
313411
|
+
i: "italic",
|
|
313412
|
+
bi: "bold-italic"
|
|
313413
|
+
};
|
|
313414
|
+
SCR_TO_VARIANT = {
|
|
313415
|
+
roman: "normal",
|
|
313416
|
+
script: "script",
|
|
313417
|
+
fraktur: "fraktur",
|
|
313418
|
+
"double-struck": "double-struck",
|
|
313419
|
+
"sans-serif": "sans-serif",
|
|
313420
|
+
monospace: "monospace"
|
|
313421
|
+
};
|
|
313422
|
+
COMBINING_TO_SPACING = {
|
|
313423
|
+
"̀": "`",
|
|
313424
|
+
"́": "´",
|
|
313425
|
+
"̂": "^",
|
|
313426
|
+
"̃": "~",
|
|
313427
|
+
"̄": "¯",
|
|
313428
|
+
"̆": "˘",
|
|
313429
|
+
"̇": "˙",
|
|
313430
|
+
"̈": "¨",
|
|
313431
|
+
"̊": "˚",
|
|
313432
|
+
"̋": "˝",
|
|
313433
|
+
"̌": "ˇ",
|
|
313434
|
+
"⃖": "←",
|
|
313435
|
+
"⃗": "→"
|
|
313436
|
+
};
|
|
313437
|
+
INTEGRAL_CHARS = /^[\u222B-\u2233]$/;
|
|
313135
313438
|
MATH_OBJECT_REGISTRY = {
|
|
313136
313439
|
"m:r": convertMathRun,
|
|
313440
|
+
"m:acc": convertAccent,
|
|
313137
313441
|
"m:bar": convertBar,
|
|
313138
313442
|
"m:d": convertDelimiter,
|
|
313443
|
+
"m:eqArr": convertEquationArray,
|
|
313139
313444
|
"m:f": convertFraction,
|
|
313140
313445
|
"m:func": convertFunction,
|
|
313446
|
+
"m:limLow": convertLowerLimit,
|
|
313447
|
+
"m:limUpp": convertUpperLimit,
|
|
313448
|
+
"m:nary": convertNary,
|
|
313449
|
+
"m:rad": convertRadical,
|
|
313141
313450
|
"m:sSub": convertSubscript,
|
|
313142
313451
|
"m:sSup": convertSuperscript,
|
|
313143
313452
|
"m:sSubSup": convertSubSuperscript,
|
|
313144
|
-
"m:
|
|
313453
|
+
"m:sPre": convertPreSubSuperscript,
|
|
313145
313454
|
"m:borderBox": null,
|
|
313146
313455
|
"m:box": null,
|
|
313147
|
-
"m:eqArr": null,
|
|
313148
313456
|
"m:groupChr": null,
|
|
313149
|
-
"m:limLow": null,
|
|
313150
|
-
"m:limUpp": null,
|
|
313151
313457
|
"m:m": null,
|
|
313152
|
-
"m:
|
|
313153
|
-
"m:phant": null,
|
|
313154
|
-
"m:rad": convertRadical,
|
|
313155
|
-
"m:sPre": null
|
|
313458
|
+
"m:phant": null
|
|
313156
313459
|
};
|
|
313157
313460
|
ARGUMENT_ELEMENTS = new Set([
|
|
313158
313461
|
"m:e",
|
|
@@ -314570,10 +314873,12 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
314570
314873
|
let availableWidthOverride = line.maxWidth != null ? Math.min(line.maxWidth, fallbackAvailableWidth) : fallbackAvailableWidth;
|
|
314571
314874
|
if (shouldUseResolvedListTextStart)
|
|
314572
314875
|
availableWidthOverride = fragment2.width - listFirstLineTextStartPx - Math.max(0, paraIndentRight);
|
|
314876
|
+
const isFirstLine = index2 === 0 && !fragment2.continuesFromPrev;
|
|
314877
|
+
const isListFirstLine = Boolean(hasListFirstLineMarker && fragment2.markerTextWidth);
|
|
314878
|
+
if (isFirstLine && !isListFirstLine && !hasExplicitSegmentPositioning)
|
|
314879
|
+
availableWidthOverride = adjustAvailableWidthForTextIndent(availableWidthOverride, firstLineOffset, line.maxWidth);
|
|
314573
314880
|
const shouldSkipJustifyForLastLine = index2 === lines.length - 1 && !fragment2.continuesOnNext && !paragraphEndsWithLineBreak;
|
|
314574
314881
|
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
314882
|
if (!isListFirstLine) {
|
|
314578
314883
|
if (hasExplicitSegmentPositioning) {
|
|
314579
314884
|
if (isFirstLine && firstLineOffset !== 0) {
|
|
@@ -322121,11 +322426,11 @@ var init_zipper_DbkgrypV_es = __esm(() => {
|
|
|
322121
322426
|
|
|
322122
322427
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
322123
322428
|
var init_super_editor_es = __esm(() => {
|
|
322124
|
-
|
|
322125
|
-
|
|
322429
|
+
init_src_DZzZDECe_es();
|
|
322430
|
+
init_SuperConverter_CWhofwLf_es();
|
|
322126
322431
|
init_jszip_C49i9kUs_es();
|
|
322127
322432
|
init_xml_js_CqGKpaft_es();
|
|
322128
|
-
|
|
322433
|
+
init_create_headless_toolbar_C2iuH72Y_es();
|
|
322129
322434
|
init_constants_CGhJRd87_es();
|
|
322130
322435
|
init_dist_B8HfvhaK_es();
|
|
322131
322436
|
init_unified_Dsuw2be5_es();
|
|
@@ -373875,6 +374180,11 @@ var init_operation_params = __esm(() => {
|
|
|
373875
374180
|
description: "Room/document identifier. Defaults to session ID if omitted."
|
|
373876
374181
|
},
|
|
373877
374182
|
tokenEnv: { type: "string", description: "Environment variable name containing the auth token." },
|
|
374183
|
+
params: {
|
|
374184
|
+
type: "object",
|
|
374185
|
+
description: "Custom query parameters appended to the WebSocket URL. Values must be strings. Reserved keys: token.",
|
|
374186
|
+
additionalProperties: { type: "string" }
|
|
374187
|
+
},
|
|
373878
374188
|
syncTimeoutMs: { type: "number", description: "Max time (ms) to wait for initial sync." },
|
|
373879
374189
|
onMissing: {
|
|
373880
374190
|
type: "string",
|
|
@@ -374751,7 +375061,7 @@ function validateValueAgainstTypeSpec(value2, schema, path2) {
|
|
|
374751
375061
|
throw new CliError("VALIDATION_ERROR", `${path2}.${key2} is required.`);
|
|
374752
375062
|
}
|
|
374753
375063
|
}
|
|
374754
|
-
const propertyEntries = Object.entries(schema.properties);
|
|
375064
|
+
const propertyEntries = schema.properties ? Object.entries(schema.properties) : [];
|
|
374755
375065
|
const shouldRestrictUnknownKeys = propertyEntries.length > 0 || required.length > 0;
|
|
374756
375066
|
if (shouldRestrictUnknownKeys) {
|
|
374757
375067
|
const knownKeys = new Set(propertyEntries.map(([key2]) => key2));
|
|
@@ -374824,7 +375134,8 @@ function validateResponseValueAgainstTypeSpec(value2, schema, path2) {
|
|
|
374824
375134
|
throw new CliError("VALIDATION_ERROR", `${path2}.${key2} is required.`);
|
|
374825
375135
|
}
|
|
374826
375136
|
}
|
|
374827
|
-
|
|
375137
|
+
const properties = schema.properties ?? {};
|
|
375138
|
+
for (const [key2, propSchema] of Object.entries(properties)) {
|
|
374828
375139
|
if (!Object.prototype.hasOwnProperty.call(value2, key2))
|
|
374829
375140
|
continue;
|
|
374830
375141
|
validateResponseValueAgainstTypeSpec(value2[key2], propSchema, `${path2}.${key2}`);
|
|
@@ -382569,9 +382880,16 @@ var init_version2 = () => {};
|
|
|
382569
382880
|
|
|
382570
382881
|
// src/host/session-pool.ts
|
|
382571
382882
|
import { createHash as createHash4 } from "node:crypto";
|
|
382883
|
+
function stableStringify4(value2) {
|
|
382884
|
+
if (value2 === null || typeof value2 !== "object")
|
|
382885
|
+
return JSON.stringify(value2);
|
|
382886
|
+
if (Array.isArray(value2))
|
|
382887
|
+
return `[${value2.map(stableStringify4).join(",")}]`;
|
|
382888
|
+
const entries3 = Object.keys(value2).sort().map((key2) => `${JSON.stringify(key2)}:${stableStringify4(value2[key2])}`);
|
|
382889
|
+
return `{${entries3.join(",")}}`;
|
|
382890
|
+
}
|
|
382572
382891
|
function profileToFingerprint(profile) {
|
|
382573
|
-
|
|
382574
|
-
return createHash4("sha256").update(sortedJson).digest("hex");
|
|
382892
|
+
return createHash4("sha256").update(stableStringify4(profile)).digest("hex");
|
|
382575
382893
|
}
|
|
382576
382894
|
function createSessionLocks() {
|
|
382577
382895
|
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.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"superdoc": "./dist/index.js"
|
|
@@ -25,20 +25,20 @@
|
|
|
25
25
|
"@types/ws": "^8.5.13",
|
|
26
26
|
"typescript": "^5.9.2",
|
|
27
27
|
"@superdoc/document-api": "0.0.1",
|
|
28
|
+
"@superdoc/super-editor": "0.0.1",
|
|
28
29
|
"@superdoc/pm-adapter": "0.0.0",
|
|
29
|
-
"superdoc": "1.
|
|
30
|
-
"@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.11",
|
|
38
|
+
"@superdoc-dev/cli-darwin-x64": "0.7.0-next.11",
|
|
39
|
+
"@superdoc-dev/cli-linux-x64": "0.7.0-next.11",
|
|
40
|
+
"@superdoc-dev/cli-windows-x64": "0.7.0-next.11",
|
|
41
|
+
"@superdoc-dev/cli-linux-arm64": "0.7.0-next.11"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"predev": "node scripts/ensure-superdoc-build.js",
|