@harbour-enterprises/superdoc 0.24.0-next.2 → 0.24.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{PdfViewer--Z8scsXq.es.js → PdfViewer-D7C8g2G4.es.js} +1 -1
- package/dist/chunks/{PdfViewer-CYiJzT44.cjs → PdfViewer-kOVuv-4I.cjs} +1 -1
- package/dist/chunks/blank-docx-ABm6XYAA.es.js +4 -0
- package/dist/chunks/blank-docx-DfW3Eeh2.cjs +3 -0
- package/dist/chunks/{index-CBSXpA57.cjs → index-BFKwBQjS.cjs} +12 -4
- package/dist/chunks/{index-CCf_X9Jy.es.js → index-CnEAVnHQ.es.js} +12 -4
- package/dist/chunks/{super-editor.es-CZFQdEKI.cjs → super-editor.es-BmGTQ05x.cjs} +1954 -1216
- package/dist/chunks/{super-editor.es-BFco6Gra.es.js → super-editor.es-CBPoWvjs.es.js} +1954 -1216
- package/dist/core/SuperDoc.d.ts.map +1 -1
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/style.css +32 -31
- package/dist/super-editor/ai-writer.es.js +2 -2
- package/dist/super-editor/chunks/{converter-nWAUAQ83.js → converter-DpPj67OW.js} +1537 -1175
- package/dist/super-editor/chunks/{docx-zipper-B2uMUaj9.js → docx-zipper-6Kc95yG-.js} +1 -1
- package/dist/super-editor/chunks/{editor-DAyiX5AL.js → editor-Dx6AhT5N.js} +454 -57
- package/dist/super-editor/chunks/{toolbar-LmzuO_YJ.js → toolbar-CXSg2lJ9.js} +2 -2
- package/dist/super-editor/converter.es.js +1 -1
- package/dist/super-editor/docx-zipper.es.js +2 -2
- package/dist/super-editor/editor.es.js +3 -3
- package/dist/super-editor/file-zipper.es.js +1 -1
- package/dist/super-editor/style.css +5 -4
- package/dist/super-editor/super-editor/src/core/Editor.d.ts +11 -0
- package/dist/super-editor/super-editor/src/core/helpers/canRenderFont.d.ts +12 -0
- package/dist/super-editor/super-editor/src/core/super-converter/SuperConverter.d.ts +6 -1
- package/dist/super-editor/super-editor/src/core/super-converter/helpers.d.ts +23 -1
- package/dist/super-editor/super-editor/src/core/super-converter/v2/importer/docxImporter.d.ts +3 -1
- package/dist/super-editor/super-editor/src/core/super-converter/v2/importer/tableImporter.d.ts +5 -3
- package/dist/super-editor/super-editor/src/core/super-converter/v2/importer/trackChangesImporter.d.ts +5 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v2/importer/types/index.d.ts +5 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/helpers.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/utils.d.ts +9 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/del/del-translator.d.ts +7 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/del/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/gridSpan/gridSpan-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/gridSpan/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/header/header-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/header/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/headers/headers-translator.d.ts +7 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/headers/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/hideMark/hideMark-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/hideMark/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/ins/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/ins/ins-translator.d.ts +7 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/noWrap/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/noWrap/noWrap-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/shd/shd-translator.d.ts +1 -1
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tc/helpers/translate-table-cell.d.ts +0 -5
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcBorders/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcBorders/tcBorders-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcFitText/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcFitText/tcFitText-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcMar/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcMar/tcMar-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcPr/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcPr/tcPr-translator.d.ts +5 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcW/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tcW/tcW-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/textDirection/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/textDirection/textDirection-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tl2br/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tl2br/tl2br-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tr2bl/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/tr2bl/tr2bl-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/vAlign/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/vAlign/vAlign-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/vMerge/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/w/vMerge/vMerge-translator.d.ts +6 -0
- package/dist/super-editor/super-editor/src/extensions/image/image.d.ts +1 -1
- package/dist/super-editor/super-editor/src/extensions/image/imageHelpers/index.d.ts +1 -0
- package/dist/super-editor/super-editor/src/extensions/image/imageHelpers/legacyAttributes.d.ts +17 -0
- package/dist/super-editor/super-editor/src/extensions/table-cell/table-cell.d.ts +112 -0
- package/dist/super-editor/super-editor.es.js +91 -76
- package/dist/super-editor/toolbar.es.js +2 -2
- package/dist/super-editor.cjs +1 -1
- package/dist/super-editor.es.js +1 -1
- package/dist/superdoc.cjs +3 -3
- package/dist/superdoc.es.js +3 -3
- package/dist/superdoc.umd.js +1964 -1218
- package/dist/superdoc.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/blank-docx-CPqX9RF5.cjs +0 -3
- package/dist/chunks/blank-docx-iwdyG9RH.es.js +0 -4
package/dist/superdoc.umd.js
CHANGED
|
@@ -22832,14 +22832,21 @@
|
|
|
22832
22832
|
function twipsToPixels(twips) {
|
|
22833
22833
|
if (twips == null) return;
|
|
22834
22834
|
const inches = twipsToInches(twips);
|
|
22835
|
+
return inchesToPixels(inches);
|
|
22836
|
+
}
|
|
22837
|
+
function pixelsToTwips(pixels) {
|
|
22838
|
+
const inches = pixelsToInches(pixels);
|
|
22839
|
+
return inchesToTwips(inches);
|
|
22840
|
+
}
|
|
22841
|
+
function inchesToPixels(inches) {
|
|
22835
22842
|
if (inches == null) return;
|
|
22836
22843
|
const pixels = inches * 96;
|
|
22837
22844
|
return Math.round(pixels * 1e3) / 1e3;
|
|
22838
22845
|
}
|
|
22839
|
-
function
|
|
22846
|
+
function pixelsToInches(pixels) {
|
|
22840
22847
|
if (pixels == null) return;
|
|
22841
22848
|
const inches = Number(pixels) / 96;
|
|
22842
|
-
return
|
|
22849
|
+
return inches;
|
|
22843
22850
|
}
|
|
22844
22851
|
function twipsToLines(twips) {
|
|
22845
22852
|
if (twips == null) return;
|
|
@@ -22864,9 +22871,9 @@
|
|
|
22864
22871
|
if (typeof px === "string") px = parseFloat(px);
|
|
22865
22872
|
return Math.round(px * 9525);
|
|
22866
22873
|
}
|
|
22867
|
-
function
|
|
22868
|
-
if (
|
|
22869
|
-
const points = parseFloat(
|
|
22874
|
+
function eighthPointsToPixels(eighthPoints) {
|
|
22875
|
+
if (eighthPoints == null) return;
|
|
22876
|
+
const points = parseFloat(eighthPoints) / 8;
|
|
22870
22877
|
const pixels = points * 1.3333;
|
|
22871
22878
|
return pixels;
|
|
22872
22879
|
}
|
|
@@ -22890,6 +22897,71 @@
|
|
|
22890
22897
|
if (degrees == null) return;
|
|
22891
22898
|
return degrees * 6e4;
|
|
22892
22899
|
}
|
|
22900
|
+
function pixelsToPolygonUnits(pixels) {
|
|
22901
|
+
if (pixels == null) return;
|
|
22902
|
+
const pu = pixels * 96;
|
|
22903
|
+
return Math.round(pu);
|
|
22904
|
+
}
|
|
22905
|
+
function polygonUnitsToPixels(pu) {
|
|
22906
|
+
if (pu == null) return;
|
|
22907
|
+
const pixels = Number(pu) / 96;
|
|
22908
|
+
return Math.round(pixels * 1e3) / 1e3;
|
|
22909
|
+
}
|
|
22910
|
+
function polygonToObj(polygonNode) {
|
|
22911
|
+
if (!polygonNode) return null;
|
|
22912
|
+
const points = [];
|
|
22913
|
+
polygonNode.elements.forEach((element) => {
|
|
22914
|
+
if (["wp:start", "wp:lineTo"].includes(element.name)) {
|
|
22915
|
+
const { x, y: y2 } = element.attributes;
|
|
22916
|
+
points.push([polygonUnitsToPixels(x), polygonUnitsToPixels(y2)]);
|
|
22917
|
+
}
|
|
22918
|
+
});
|
|
22919
|
+
if (points.length > 1) {
|
|
22920
|
+
const firstPoint = points[0];
|
|
22921
|
+
const lastPoint = points[points.length - 1];
|
|
22922
|
+
if (firstPoint[0] === lastPoint[0] && firstPoint[1] === lastPoint[1]) {
|
|
22923
|
+
points.pop();
|
|
22924
|
+
}
|
|
22925
|
+
}
|
|
22926
|
+
return points;
|
|
22927
|
+
}
|
|
22928
|
+
function objToPolygon(points) {
|
|
22929
|
+
if (!points || !Array.isArray(points)) return null;
|
|
22930
|
+
const polygonNode = {
|
|
22931
|
+
name: "wp:wrapPolygon",
|
|
22932
|
+
type: "wp:wrapPolygon",
|
|
22933
|
+
attributes: {
|
|
22934
|
+
edited: "0"
|
|
22935
|
+
},
|
|
22936
|
+
elements: []
|
|
22937
|
+
};
|
|
22938
|
+
points.forEach((point, index2) => {
|
|
22939
|
+
const [x, y2] = point;
|
|
22940
|
+
const tagName = index2 === 0 ? "wp:start" : "wp:lineTo";
|
|
22941
|
+
const pointNode = {
|
|
22942
|
+
name: tagName,
|
|
22943
|
+
type: tagName,
|
|
22944
|
+
attributes: {
|
|
22945
|
+
x: pixelsToPolygonUnits(x),
|
|
22946
|
+
y: pixelsToPolygonUnits(y2)
|
|
22947
|
+
}
|
|
22948
|
+
};
|
|
22949
|
+
polygonNode.elements.push(pointNode);
|
|
22950
|
+
});
|
|
22951
|
+
if (points.length > 0) {
|
|
22952
|
+
const [startX, startY] = points[0];
|
|
22953
|
+
const closePointNode = {
|
|
22954
|
+
name: "wp:lineTo",
|
|
22955
|
+
type: "wp:lineTo",
|
|
22956
|
+
attributes: {
|
|
22957
|
+
x: pixelsToPolygonUnits(startX),
|
|
22958
|
+
y: pixelsToPolygonUnits(startY)
|
|
22959
|
+
}
|
|
22960
|
+
};
|
|
22961
|
+
polygonNode.elements.push(closePointNode);
|
|
22962
|
+
}
|
|
22963
|
+
return polygonNode;
|
|
22964
|
+
}
|
|
22893
22965
|
const getTextIndentExportValue = (indent) => {
|
|
22894
22966
|
const [value, unit] = parseSizeUnit(indent);
|
|
22895
22967
|
const functionsMap = {
|
|
@@ -32205,37 +32277,37 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
32205
32277
|
};
|
|
32206
32278
|
__publicField$2(_NodeTranslator, "translatorTypes", TranslatorTypes);
|
|
32207
32279
|
let NodeTranslator = _NodeTranslator;
|
|
32208
|
-
const encode$
|
|
32280
|
+
const encode$1b = (attributes) => {
|
|
32209
32281
|
return attributes["w:type"];
|
|
32210
32282
|
};
|
|
32211
|
-
const decode$
|
|
32283
|
+
const decode$13 = (attrs) => {
|
|
32212
32284
|
const { lineBreakType } = attrs;
|
|
32213
32285
|
return lineBreakType;
|
|
32214
32286
|
};
|
|
32215
32287
|
const attrConfig$G = Object.freeze({
|
|
32216
32288
|
xmlName: "w:type",
|
|
32217
32289
|
sdName: "lineBreakType",
|
|
32218
|
-
encode: encode$
|
|
32219
|
-
decode: decode$
|
|
32290
|
+
encode: encode$1b,
|
|
32291
|
+
decode: decode$13
|
|
32220
32292
|
});
|
|
32221
|
-
const encode$
|
|
32293
|
+
const encode$1a = (attributes) => {
|
|
32222
32294
|
const xmlAttrValue = attributes["w:clear"];
|
|
32223
32295
|
return xmlAttrValue;
|
|
32224
32296
|
};
|
|
32225
|
-
const decode$
|
|
32297
|
+
const decode$12 = (attrs) => {
|
|
32226
32298
|
const { clear } = attrs;
|
|
32227
32299
|
return clear;
|
|
32228
32300
|
};
|
|
32229
32301
|
const attrConfig$F = Object.freeze({
|
|
32230
32302
|
xmlName: "w:clear",
|
|
32231
32303
|
sdName: "clear",
|
|
32232
|
-
encode: encode$
|
|
32233
|
-
decode: decode$
|
|
32304
|
+
encode: encode$1a,
|
|
32305
|
+
decode: decode$12
|
|
32234
32306
|
});
|
|
32235
|
-
const validXmlAttributes$
|
|
32236
|
-
const XML_NODE_NAME$
|
|
32307
|
+
const validXmlAttributes$p = [attrConfig$G, attrConfig$F];
|
|
32308
|
+
const XML_NODE_NAME$y = "w:br";
|
|
32237
32309
|
const SD_NODE_NAME$h = "lineBreak";
|
|
32238
|
-
const encode$
|
|
32310
|
+
const encode$19 = (_2, encodedAttrs) => {
|
|
32239
32311
|
const isPageBreak = encodedAttrs?.lineBreakType === "page";
|
|
32240
32312
|
const translated = {
|
|
32241
32313
|
type: isPageBreak ? "hardBreak" : "lineBreak"
|
|
@@ -32245,7 +32317,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
32245
32317
|
}
|
|
32246
32318
|
return translated;
|
|
32247
32319
|
};
|
|
32248
|
-
const decode$
|
|
32320
|
+
const decode$11 = (params2, decodedAttrs) => {
|
|
32249
32321
|
const { node } = params2;
|
|
32250
32322
|
if (!node) return;
|
|
32251
32323
|
const wBreak = { name: "w:br" };
|
|
@@ -32262,39 +32334,39 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
32262
32334
|
};
|
|
32263
32335
|
return translated;
|
|
32264
32336
|
};
|
|
32265
|
-
const config$
|
|
32266
|
-
xmlName: XML_NODE_NAME$
|
|
32337
|
+
const config$x = {
|
|
32338
|
+
xmlName: XML_NODE_NAME$y,
|
|
32267
32339
|
sdNodeOrKeyName: SD_NODE_NAME$h,
|
|
32268
32340
|
type: NodeTranslator.translatorTypes.NODE,
|
|
32269
|
-
encode: encode$
|
|
32270
|
-
decode: decode$
|
|
32271
|
-
attributes: validXmlAttributes$
|
|
32341
|
+
encode: encode$19,
|
|
32342
|
+
decode: decode$11,
|
|
32343
|
+
attributes: validXmlAttributes$p
|
|
32272
32344
|
};
|
|
32273
|
-
const translator$
|
|
32274
|
-
const encode$
|
|
32275
|
-
const decode$
|
|
32345
|
+
const translator$1r = NodeTranslator.from(config$x);
|
|
32346
|
+
const encode$18 = (attributes) => attributes?.["w:val"];
|
|
32347
|
+
const decode$10 = (attrs) => attrs?.highlight;
|
|
32276
32348
|
const attrConfig$E = Object.freeze({
|
|
32277
32349
|
xmlName: "w:val",
|
|
32278
32350
|
sdName: "highlight",
|
|
32279
|
-
encode: encode$
|
|
32280
|
-
decode: decode$
|
|
32351
|
+
encode: encode$18,
|
|
32352
|
+
decode: decode$10
|
|
32281
32353
|
});
|
|
32282
|
-
const validXmlAttributes$
|
|
32283
|
-
const XML_NODE_NAME$
|
|
32284
|
-
const SD_ATTR_KEY$
|
|
32354
|
+
const validXmlAttributes$o = [attrConfig$E];
|
|
32355
|
+
const XML_NODE_NAME$x = "w:highlight";
|
|
32356
|
+
const SD_ATTR_KEY$f = "highlight";
|
|
32285
32357
|
const DISABLED_TOKENS = /* @__PURE__ */ new Set(["transparent", "none", "inherit"]);
|
|
32286
|
-
const encode$
|
|
32358
|
+
const encode$17 = (params2, encodedAttrs = {}) => {
|
|
32287
32359
|
const { nodes } = params2;
|
|
32288
32360
|
const node = nodes?.[0];
|
|
32289
32361
|
const value = encodedAttrs.highlight ?? node?.attributes?.["w:val"];
|
|
32290
32362
|
return {
|
|
32291
32363
|
type: "attr",
|
|
32292
|
-
xmlName: XML_NODE_NAME$
|
|
32293
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
32364
|
+
xmlName: XML_NODE_NAME$x,
|
|
32365
|
+
sdNodeOrKeyName: SD_ATTR_KEY$f,
|
|
32294
32366
|
attributes: { "w:val": value ?? null }
|
|
32295
32367
|
};
|
|
32296
32368
|
};
|
|
32297
|
-
const decode
|
|
32369
|
+
const decode$$ = (params2) => {
|
|
32298
32370
|
const attrs = params2?.node?.attrs || {};
|
|
32299
32371
|
const highlightValue = attrs.highlight ?? attrs.color ?? null;
|
|
32300
32372
|
if (!highlightValue) return void 0;
|
|
@@ -32302,14 +32374,14 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
32302
32374
|
if (!normalizedValue) return void 0;
|
|
32303
32375
|
if (DISABLED_TOKENS.has(normalizedValue)) {
|
|
32304
32376
|
return {
|
|
32305
|
-
name: XML_NODE_NAME$
|
|
32377
|
+
name: XML_NODE_NAME$x,
|
|
32306
32378
|
attributes: { "w:val": "none" }
|
|
32307
32379
|
};
|
|
32308
32380
|
}
|
|
32309
32381
|
const keyword = getDocxHighlightKeywordFromHex(highlightValue);
|
|
32310
32382
|
if (keyword) {
|
|
32311
32383
|
return {
|
|
32312
|
-
name: XML_NODE_NAME$
|
|
32384
|
+
name: XML_NODE_NAME$x,
|
|
32313
32385
|
attributes: { "w:val": keyword }
|
|
32314
32386
|
};
|
|
32315
32387
|
}
|
|
@@ -32324,63 +32396,63 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
32324
32396
|
}
|
|
32325
32397
|
};
|
|
32326
32398
|
};
|
|
32327
|
-
const config$
|
|
32328
|
-
xmlName: XML_NODE_NAME$
|
|
32329
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
32399
|
+
const config$w = {
|
|
32400
|
+
xmlName: XML_NODE_NAME$x,
|
|
32401
|
+
sdNodeOrKeyName: SD_ATTR_KEY$f,
|
|
32330
32402
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
32331
|
-
encode: encode$
|
|
32332
|
-
decode: decode
|
|
32333
|
-
attributes: validXmlAttributes$
|
|
32403
|
+
encode: encode$17,
|
|
32404
|
+
decode: decode$$,
|
|
32405
|
+
attributes: validXmlAttributes$o
|
|
32334
32406
|
};
|
|
32335
|
-
const translator$
|
|
32336
|
-
const encode$
|
|
32407
|
+
const translator$1q = NodeTranslator.from(config$w);
|
|
32408
|
+
const encode$16 = (attributes) => {
|
|
32337
32409
|
return attributes["w:val"];
|
|
32338
32410
|
};
|
|
32339
|
-
const decode
|
|
32411
|
+
const decode$_ = (attrs) => {
|
|
32340
32412
|
const { tabSize } = attrs || {};
|
|
32341
32413
|
return tabSize;
|
|
32342
32414
|
};
|
|
32343
32415
|
const attrConfig$D = Object.freeze({
|
|
32344
32416
|
xmlName: "w:val",
|
|
32345
32417
|
sdName: "tabSize",
|
|
32346
|
-
encode: encode$
|
|
32347
|
-
decode: decode
|
|
32418
|
+
encode: encode$16,
|
|
32419
|
+
decode: decode$_
|
|
32348
32420
|
});
|
|
32349
|
-
const encode$
|
|
32421
|
+
const encode$15 = (attributes) => {
|
|
32350
32422
|
return attributes["w:leader"];
|
|
32351
32423
|
};
|
|
32352
|
-
const decode$
|
|
32424
|
+
const decode$Z = (attrs) => {
|
|
32353
32425
|
const { leader } = attrs || {};
|
|
32354
32426
|
return leader;
|
|
32355
32427
|
};
|
|
32356
32428
|
const attrConfig$C = Object.freeze({
|
|
32357
32429
|
xmlName: "w:leader",
|
|
32358
32430
|
sdName: "leader",
|
|
32359
|
-
encode: encode$
|
|
32360
|
-
decode: decode$
|
|
32431
|
+
encode: encode$15,
|
|
32432
|
+
decode: decode$Z
|
|
32361
32433
|
});
|
|
32362
|
-
const encode$
|
|
32434
|
+
const encode$14 = (attributes) => {
|
|
32363
32435
|
return attributes["w:pos"];
|
|
32364
32436
|
};
|
|
32365
|
-
const decode$
|
|
32437
|
+
const decode$Y = (attrs) => {
|
|
32366
32438
|
const { pos } = attrs || {};
|
|
32367
32439
|
return pos;
|
|
32368
32440
|
};
|
|
32369
32441
|
const attrConfig$B = Object.freeze({
|
|
32370
32442
|
xmlName: "w:pos",
|
|
32371
32443
|
sdName: "pos",
|
|
32372
|
-
encode: encode$
|
|
32373
|
-
decode: decode$
|
|
32444
|
+
encode: encode$14,
|
|
32445
|
+
decode: decode$Y
|
|
32374
32446
|
});
|
|
32375
|
-
const validXmlAttributes$
|
|
32376
|
-
const XML_NODE_NAME$
|
|
32447
|
+
const validXmlAttributes$n = [attrConfig$D, attrConfig$B, attrConfig$C];
|
|
32448
|
+
const XML_NODE_NAME$w = "w:tab";
|
|
32377
32449
|
const SD_NODE_NAME$g = "tab";
|
|
32378
|
-
const encode$
|
|
32450
|
+
const encode$13 = (_2, encodedAttrs = {}) => {
|
|
32379
32451
|
const translated = { type: "tab" };
|
|
32380
32452
|
if (encodedAttrs) translated.attrs = { ...encodedAttrs };
|
|
32381
32453
|
return translated;
|
|
32382
32454
|
};
|
|
32383
|
-
const decode$
|
|
32455
|
+
const decode$X = (params2, decodedAttrs = {}) => {
|
|
32384
32456
|
const { node } = params2 || {};
|
|
32385
32457
|
if (!node) return;
|
|
32386
32458
|
const wTab = { name: "w:tab" };
|
|
@@ -32396,15 +32468,15 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
32396
32468
|
}
|
|
32397
32469
|
return translated;
|
|
32398
32470
|
};
|
|
32399
|
-
const config$
|
|
32400
|
-
xmlName: XML_NODE_NAME$
|
|
32471
|
+
const config$v = {
|
|
32472
|
+
xmlName: XML_NODE_NAME$w,
|
|
32401
32473
|
sdNodeOrKeyName: SD_NODE_NAME$g,
|
|
32402
32474
|
type: NodeTranslator.translatorTypes.NODE,
|
|
32403
|
-
encode: encode$
|
|
32404
|
-
decode: decode$
|
|
32405
|
-
attributes: validXmlAttributes$
|
|
32475
|
+
encode: encode$13,
|
|
32476
|
+
decode: decode$X,
|
|
32477
|
+
attributes: validXmlAttributes$n
|
|
32406
32478
|
};
|
|
32407
|
-
const translator$
|
|
32479
|
+
const translator$1p = NodeTranslator.from(config$v);
|
|
32408
32480
|
const mergeTextNodes = (nodes) => {
|
|
32409
32481
|
if (!nodes || !Array.isArray(nodes)) {
|
|
32410
32482
|
return nodes;
|
|
@@ -32630,9 +32702,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
32630
32702
|
const { attributes: a } = el;
|
|
32631
32703
|
if (a["w:val"] === "nil" || a["w:val"] === void 0) return;
|
|
32632
32704
|
let sizePx;
|
|
32633
|
-
if (a["w:sz"] !== void 0) sizePx =
|
|
32705
|
+
if (a["w:sz"] !== void 0) sizePx = eighthPointsToPixels(a["w:sz"]);
|
|
32634
32706
|
let spacePx;
|
|
32635
|
-
if (a["w:space"] !== void 0) spacePx =
|
|
32707
|
+
if (a["w:space"] !== void 0) spacePx = eighthPointsToPixels(a["w:space"]);
|
|
32636
32708
|
result[side] = {
|
|
32637
32709
|
val: a["w:val"],
|
|
32638
32710
|
size: sizePx,
|
|
@@ -32922,91 +32994,91 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
32922
32994
|
}
|
|
32923
32995
|
return schemaNode;
|
|
32924
32996
|
};
|
|
32925
|
-
const encode$
|
|
32997
|
+
const encode$12 = (attributes) => {
|
|
32926
32998
|
return attributes["w:rsidDel"];
|
|
32927
32999
|
};
|
|
32928
|
-
const decode$
|
|
33000
|
+
const decode$W = (attrs) => {
|
|
32929
33001
|
return attrs.rsidDel;
|
|
32930
33002
|
};
|
|
32931
33003
|
const attrConfig$A = Object.freeze({
|
|
32932
33004
|
xmlName: "w:rsidDel",
|
|
32933
33005
|
sdName: "rsidDel",
|
|
32934
|
-
encode: encode$
|
|
32935
|
-
decode: decode$
|
|
33006
|
+
encode: encode$12,
|
|
33007
|
+
decode: decode$W
|
|
32936
33008
|
});
|
|
32937
|
-
const encode$
|
|
33009
|
+
const encode$11 = (attributes) => {
|
|
32938
33010
|
return attributes["w:rsidP"];
|
|
32939
33011
|
};
|
|
32940
|
-
const decode$
|
|
33012
|
+
const decode$V = (attrs) => {
|
|
32941
33013
|
return attrs.rsidP;
|
|
32942
33014
|
};
|
|
32943
33015
|
const attrConfig$z = Object.freeze({
|
|
32944
33016
|
xmlName: "w:rsidP",
|
|
32945
33017
|
sdName: "rsidP",
|
|
32946
|
-
encode: encode$
|
|
32947
|
-
decode: decode$
|
|
33018
|
+
encode: encode$11,
|
|
33019
|
+
decode: decode$V
|
|
32948
33020
|
});
|
|
32949
|
-
const encode$
|
|
33021
|
+
const encode$10 = (attributes) => {
|
|
32950
33022
|
return attributes["w:rsidR"];
|
|
32951
33023
|
};
|
|
32952
|
-
const decode$
|
|
33024
|
+
const decode$U = (attrs) => {
|
|
32953
33025
|
return attrs.rsidR;
|
|
32954
33026
|
};
|
|
32955
33027
|
const attrConfig$y = Object.freeze({
|
|
32956
33028
|
xmlName: "w:rsidR",
|
|
32957
33029
|
sdName: "rsidR",
|
|
32958
|
-
encode: encode$
|
|
32959
|
-
decode: decode$
|
|
33030
|
+
encode: encode$10,
|
|
33031
|
+
decode: decode$U
|
|
32960
33032
|
});
|
|
32961
|
-
const encode
|
|
33033
|
+
const encode$$ = (attributes) => {
|
|
32962
33034
|
return attributes["w:rsidRPr"];
|
|
32963
33035
|
};
|
|
32964
|
-
const decode$
|
|
33036
|
+
const decode$T = (attrs) => {
|
|
32965
33037
|
return attrs.rsidRPr;
|
|
32966
33038
|
};
|
|
32967
33039
|
const attrConfig$x = Object.freeze({
|
|
32968
33040
|
xmlName: "w:rsidRPr",
|
|
32969
33041
|
sdName: "rsidRPr",
|
|
32970
|
-
encode: encode
|
|
32971
|
-
decode: decode$
|
|
33042
|
+
encode: encode$$,
|
|
33043
|
+
decode: decode$T
|
|
32972
33044
|
});
|
|
32973
|
-
const encode
|
|
33045
|
+
const encode$_ = (attributes) => {
|
|
32974
33046
|
return attributes["w:rsidRDefault"];
|
|
32975
33047
|
};
|
|
32976
|
-
const decode$
|
|
33048
|
+
const decode$S = (attrs) => {
|
|
32977
33049
|
return attrs.rsidRDefault;
|
|
32978
33050
|
};
|
|
32979
33051
|
const attrConfig$w = Object.freeze({
|
|
32980
33052
|
xmlName: "w:rsidRDefault",
|
|
32981
33053
|
sdName: "rsidRDefault",
|
|
32982
|
-
encode: encode
|
|
32983
|
-
decode: decode$
|
|
33054
|
+
encode: encode$_,
|
|
33055
|
+
decode: decode$S
|
|
32984
33056
|
});
|
|
32985
|
-
const encode$
|
|
33057
|
+
const encode$Z = (attributes) => {
|
|
32986
33058
|
return attributes["w14:paraId"];
|
|
32987
33059
|
};
|
|
32988
|
-
const decode$
|
|
33060
|
+
const decode$R = (attrs) => {
|
|
32989
33061
|
return attrs.paraId;
|
|
32990
33062
|
};
|
|
32991
33063
|
const attrConfig$v = Object.freeze({
|
|
32992
33064
|
xmlName: "w14:paraId",
|
|
32993
33065
|
sdName: "paraId",
|
|
32994
|
-
encode: encode$
|
|
32995
|
-
decode: decode$
|
|
33066
|
+
encode: encode$Z,
|
|
33067
|
+
decode: decode$R
|
|
32996
33068
|
});
|
|
32997
|
-
const encode$
|
|
33069
|
+
const encode$Y = (attributes) => {
|
|
32998
33070
|
return attributes["w14:textId"];
|
|
32999
33071
|
};
|
|
33000
|
-
const decode$
|
|
33072
|
+
const decode$Q = (attrs) => {
|
|
33001
33073
|
return attrs.textId;
|
|
33002
33074
|
};
|
|
33003
33075
|
const attrConfig$u = Object.freeze({
|
|
33004
33076
|
xmlName: "w14:textId",
|
|
33005
33077
|
sdName: "textId",
|
|
33006
|
-
encode: encode$
|
|
33007
|
-
decode: decode$
|
|
33078
|
+
encode: encode$Y,
|
|
33079
|
+
decode: decode$Q
|
|
33008
33080
|
});
|
|
33009
|
-
const validXmlAttributes$
|
|
33081
|
+
const validXmlAttributes$m = [
|
|
33010
33082
|
attrConfig$v,
|
|
33011
33083
|
attrConfig$u,
|
|
33012
33084
|
attrConfig$y,
|
|
@@ -33015,9 +33087,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33015
33087
|
attrConfig$x,
|
|
33016
33088
|
attrConfig$A
|
|
33017
33089
|
];
|
|
33018
|
-
const XML_NODE_NAME$
|
|
33090
|
+
const XML_NODE_NAME$v = "w:p";
|
|
33019
33091
|
const SD_NODE_NAME$f = "paragraph";
|
|
33020
|
-
const encode$
|
|
33092
|
+
const encode$X = (params2, encodedAttrs = {}) => {
|
|
33021
33093
|
const node = handleParagraphNode$1(params2);
|
|
33022
33094
|
if (!node) return void 0;
|
|
33023
33095
|
if (encodedAttrs && Object.keys(encodedAttrs).length) {
|
|
@@ -33025,7 +33097,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33025
33097
|
}
|
|
33026
33098
|
return node;
|
|
33027
33099
|
};
|
|
33028
|
-
const decode$
|
|
33100
|
+
const decode$P = (params2, decodedAttrs = {}) => {
|
|
33029
33101
|
const translated = translateParagraphNode(params2);
|
|
33030
33102
|
if (!translated) return void 0;
|
|
33031
33103
|
if (decodedAttrs && Object.keys(decodedAttrs).length) {
|
|
@@ -33033,16 +33105,16 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33033
33105
|
}
|
|
33034
33106
|
return translated;
|
|
33035
33107
|
};
|
|
33036
|
-
const config$
|
|
33037
|
-
xmlName: XML_NODE_NAME$
|
|
33108
|
+
const config$u = {
|
|
33109
|
+
xmlName: XML_NODE_NAME$v,
|
|
33038
33110
|
sdNodeOrKeyName: SD_NODE_NAME$f,
|
|
33039
33111
|
type: NodeTranslator.translatorTypes.NODE,
|
|
33040
|
-
encode: encode$
|
|
33041
|
-
decode: decode$
|
|
33042
|
-
attributes: validXmlAttributes$
|
|
33112
|
+
encode: encode$X,
|
|
33113
|
+
decode: decode$P,
|
|
33114
|
+
attributes: validXmlAttributes$m
|
|
33043
33115
|
};
|
|
33044
|
-
const translator$
|
|
33045
|
-
const encode$
|
|
33116
|
+
const translator$1o = NodeTranslator.from(config$u);
|
|
33117
|
+
const encode$W = (attributes) => {
|
|
33046
33118
|
const raw = attributes?.["w:val"];
|
|
33047
33119
|
if (raw === void 0 || raw === null) return void 0;
|
|
33048
33120
|
if (typeof raw === "boolean") return raw;
|
|
@@ -33052,24 +33124,24 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33052
33124
|
if (val === "1" || val === "true" || val === "on") return true;
|
|
33053
33125
|
return void 0;
|
|
33054
33126
|
};
|
|
33055
|
-
const decode$
|
|
33127
|
+
const decode$O = (runProps) => {
|
|
33056
33128
|
if (runProps?.bold === false) return "0";
|
|
33057
33129
|
return void 0;
|
|
33058
33130
|
};
|
|
33059
33131
|
const attrConfig$t = Object.freeze({
|
|
33060
33132
|
xmlName: "w:val",
|
|
33061
33133
|
sdName: "bold",
|
|
33062
|
-
encode: encode$
|
|
33063
|
-
decode: decode$
|
|
33134
|
+
encode: encode$W,
|
|
33135
|
+
decode: decode$O
|
|
33064
33136
|
});
|
|
33065
|
-
const validXmlAttributes$
|
|
33066
|
-
const XML_NODE_NAME$
|
|
33067
|
-
const SD_ATTR_KEY$
|
|
33068
|
-
const encode$
|
|
33137
|
+
const validXmlAttributes$l = [attrConfig$t];
|
|
33138
|
+
const XML_NODE_NAME$u = "w:b";
|
|
33139
|
+
const SD_ATTR_KEY$e = "bold";
|
|
33140
|
+
const encode$V = (params2, encodedAttrs = {}) => {
|
|
33069
33141
|
const { nodes } = params2;
|
|
33070
33142
|
const node = nodes[0];
|
|
33071
33143
|
if (!node) return void 0;
|
|
33072
|
-
const val = encodedAttrs?.[SD_ATTR_KEY$
|
|
33144
|
+
const val = encodedAttrs?.[SD_ATTR_KEY$e];
|
|
33073
33145
|
let attributes;
|
|
33074
33146
|
if (val === false) attributes = { "w:val": "0" };
|
|
33075
33147
|
else if (val === true)
|
|
@@ -33077,85 +33149,85 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33077
33149
|
else attributes = node.attributes || {};
|
|
33078
33150
|
return {
|
|
33079
33151
|
type: "attr",
|
|
33080
|
-
xmlName: XML_NODE_NAME$
|
|
33081
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33152
|
+
xmlName: XML_NODE_NAME$u,
|
|
33153
|
+
sdNodeOrKeyName: SD_ATTR_KEY$e,
|
|
33082
33154
|
attributes
|
|
33083
33155
|
};
|
|
33084
33156
|
};
|
|
33085
|
-
const config$
|
|
33086
|
-
xmlName: XML_NODE_NAME$
|
|
33087
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33157
|
+
const config$t = {
|
|
33158
|
+
xmlName: XML_NODE_NAME$u,
|
|
33159
|
+
sdNodeOrKeyName: SD_ATTR_KEY$e,
|
|
33088
33160
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33089
|
-
encode: encode$
|
|
33090
|
-
attributes: validXmlAttributes$
|
|
33161
|
+
encode: encode$V,
|
|
33162
|
+
attributes: validXmlAttributes$l
|
|
33091
33163
|
};
|
|
33092
|
-
const translator$
|
|
33093
|
-
const XML_NODE_NAME$
|
|
33094
|
-
const SD_ATTR_KEY$
|
|
33095
|
-
const encode$
|
|
33164
|
+
const translator$1n = NodeTranslator.from(config$t);
|
|
33165
|
+
const XML_NODE_NAME$t = "w:i";
|
|
33166
|
+
const SD_ATTR_KEY$d = "italic";
|
|
33167
|
+
const encode$U = (params2) => {
|
|
33096
33168
|
const { nodes } = params2;
|
|
33097
33169
|
const node = nodes?.[0];
|
|
33098
33170
|
if (!node) return void 0;
|
|
33099
33171
|
return {
|
|
33100
33172
|
type: "attr",
|
|
33101
|
-
xmlName: XML_NODE_NAME$
|
|
33102
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33173
|
+
xmlName: XML_NODE_NAME$t,
|
|
33174
|
+
sdNodeOrKeyName: SD_ATTR_KEY$d,
|
|
33103
33175
|
attributes: {
|
|
33104
33176
|
"w:val": node.attributes?.["w:val"] ?? null
|
|
33105
33177
|
}
|
|
33106
33178
|
};
|
|
33107
33179
|
};
|
|
33108
|
-
const config$
|
|
33109
|
-
xmlName: XML_NODE_NAME$
|
|
33110
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33180
|
+
const config$s = {
|
|
33181
|
+
xmlName: XML_NODE_NAME$t,
|
|
33182
|
+
sdNodeOrKeyName: SD_ATTR_KEY$d,
|
|
33111
33183
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33112
|
-
encode: encode$
|
|
33184
|
+
encode: encode$U
|
|
33113
33185
|
};
|
|
33114
|
-
const translator$
|
|
33115
|
-
const encode$
|
|
33116
|
-
const decode$
|
|
33186
|
+
const translator$1m = NodeTranslator.from(config$s);
|
|
33187
|
+
const encode$T = (attributes) => attributes?.["w:val"];
|
|
33188
|
+
const decode$N = (attrs) => attrs?.underline;
|
|
33117
33189
|
const attrConfig$s = Object.freeze({
|
|
33118
33190
|
xmlName: "w:val",
|
|
33119
33191
|
sdName: "underline",
|
|
33120
|
-
encode: encode$
|
|
33121
|
-
decode: decode$
|
|
33192
|
+
encode: encode$T,
|
|
33193
|
+
decode: decode$N
|
|
33122
33194
|
});
|
|
33123
|
-
const encode$
|
|
33124
|
-
const decode$
|
|
33195
|
+
const encode$S = (attributes) => attributes?.["w:color"];
|
|
33196
|
+
const decode$M = (attrs) => attrs?.color;
|
|
33125
33197
|
const attrConfig$r = Object.freeze({
|
|
33126
33198
|
xmlName: "w:color",
|
|
33127
33199
|
sdName: "color",
|
|
33128
|
-
encode: encode$
|
|
33129
|
-
decode: decode$
|
|
33200
|
+
encode: encode$S,
|
|
33201
|
+
decode: decode$M
|
|
33130
33202
|
});
|
|
33131
|
-
const encode$
|
|
33132
|
-
const decode$
|
|
33203
|
+
const encode$R = (attributes) => attributes?.["w:themeColor"];
|
|
33204
|
+
const decode$L = (attrs) => attrs?.themeColor;
|
|
33133
33205
|
const attrConfig$q = Object.freeze({
|
|
33134
33206
|
xmlName: "w:themeColor",
|
|
33135
33207
|
sdName: "themeColor",
|
|
33136
|
-
encode: encode$
|
|
33137
|
-
decode: decode$
|
|
33208
|
+
encode: encode$R,
|
|
33209
|
+
decode: decode$L
|
|
33138
33210
|
});
|
|
33139
|
-
const encode$
|
|
33140
|
-
const decode$
|
|
33211
|
+
const encode$Q = (attributes) => attributes?.["w:themeTint"];
|
|
33212
|
+
const decode$K = (attrs) => attrs?.themeTint;
|
|
33141
33213
|
const attrConfig$p = Object.freeze({
|
|
33142
33214
|
xmlName: "w:themeTint",
|
|
33143
33215
|
sdName: "themeTint",
|
|
33144
|
-
encode: encode$
|
|
33145
|
-
decode: decode$
|
|
33216
|
+
encode: encode$Q,
|
|
33217
|
+
decode: decode$K
|
|
33146
33218
|
});
|
|
33147
|
-
const encode$
|
|
33148
|
-
const decode$
|
|
33219
|
+
const encode$P = (attributes) => attributes?.["w:themeShade"];
|
|
33220
|
+
const decode$J = (attrs) => attrs?.themeShade;
|
|
33149
33221
|
const attrConfig$o = Object.freeze({
|
|
33150
33222
|
xmlName: "w:themeShade",
|
|
33151
33223
|
sdName: "themeShade",
|
|
33152
|
-
encode: encode$
|
|
33153
|
-
decode: decode$
|
|
33224
|
+
encode: encode$P,
|
|
33225
|
+
decode: decode$J
|
|
33154
33226
|
});
|
|
33155
|
-
const validXmlAttributes$
|
|
33156
|
-
const XML_NODE_NAME$
|
|
33157
|
-
const SD_ATTR_KEY$
|
|
33158
|
-
const encode$
|
|
33227
|
+
const validXmlAttributes$k = [attrConfig$s, attrConfig$r, attrConfig$q, attrConfig$p, attrConfig$o];
|
|
33228
|
+
const XML_NODE_NAME$s = "w:u";
|
|
33229
|
+
const SD_ATTR_KEY$c = "underline";
|
|
33230
|
+
const encode$O = (params2, encodedAttrs = {}) => {
|
|
33159
33231
|
const { nodes } = params2;
|
|
33160
33232
|
const node = nodes?.[0];
|
|
33161
33233
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -33171,12 +33243,12 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33171
33243
|
if (themeShade !== void 0 && themeShade !== null) attributes["w:themeShade"] = themeShade;
|
|
33172
33244
|
return {
|
|
33173
33245
|
type: "attr",
|
|
33174
|
-
xmlName: XML_NODE_NAME$
|
|
33175
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33246
|
+
xmlName: XML_NODE_NAME$s,
|
|
33247
|
+
sdNodeOrKeyName: SD_ATTR_KEY$c,
|
|
33176
33248
|
attributes
|
|
33177
33249
|
};
|
|
33178
33250
|
};
|
|
33179
|
-
const decode$
|
|
33251
|
+
const decode$I = (params2) => {
|
|
33180
33252
|
const attrs = params2?.node?.attrs || {};
|
|
33181
33253
|
const underlineType = attrs.underlineType ?? attrs.underline ?? null;
|
|
33182
33254
|
const color = attrs.underlineColor ?? attrs.color ?? null;
|
|
@@ -33194,20 +33266,20 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33194
33266
|
if (themeTint) attributes["w:themeTint"] = themeTint;
|
|
33195
33267
|
if (themeShade) attributes["w:themeShade"] = themeShade;
|
|
33196
33268
|
return {
|
|
33197
|
-
name: XML_NODE_NAME$
|
|
33269
|
+
name: XML_NODE_NAME$s,
|
|
33198
33270
|
attributes
|
|
33199
33271
|
};
|
|
33200
33272
|
};
|
|
33201
|
-
const config$
|
|
33202
|
-
xmlName: XML_NODE_NAME$
|
|
33203
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33273
|
+
const config$r = {
|
|
33274
|
+
xmlName: XML_NODE_NAME$s,
|
|
33275
|
+
sdNodeOrKeyName: SD_ATTR_KEY$c,
|
|
33204
33276
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33205
|
-
encode: encode$
|
|
33206
|
-
decode: decode$
|
|
33207
|
-
attributes: validXmlAttributes$
|
|
33277
|
+
encode: encode$O,
|
|
33278
|
+
decode: decode$I,
|
|
33279
|
+
attributes: validXmlAttributes$k
|
|
33208
33280
|
};
|
|
33209
|
-
const translator$
|
|
33210
|
-
const encode$
|
|
33281
|
+
const translator$1l = NodeTranslator.from(config$r);
|
|
33282
|
+
const encode$N = (attributes) => {
|
|
33211
33283
|
const raw = attributes?.["w:val"];
|
|
33212
33284
|
if (raw === void 0 || raw === null) return void 0;
|
|
33213
33285
|
if (typeof raw === "boolean") return raw;
|
|
@@ -33217,24 +33289,24 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33217
33289
|
if (val === "1" || val === "true" || val === "on") return true;
|
|
33218
33290
|
return void 0;
|
|
33219
33291
|
};
|
|
33220
|
-
const decode$
|
|
33292
|
+
const decode$H = (attrs) => {
|
|
33221
33293
|
if (attrs?.strike === false) return "0";
|
|
33222
33294
|
return void 0;
|
|
33223
33295
|
};
|
|
33224
33296
|
const attrConfig$n = Object.freeze({
|
|
33225
33297
|
xmlName: "w:val",
|
|
33226
33298
|
sdName: "strike",
|
|
33227
|
-
encode: encode$
|
|
33228
|
-
decode: decode$
|
|
33299
|
+
encode: encode$N,
|
|
33300
|
+
decode: decode$H
|
|
33229
33301
|
});
|
|
33230
|
-
const validXmlAttributes$
|
|
33231
|
-
const XML_NODE_NAME$
|
|
33232
|
-
const SD_ATTR_KEY$
|
|
33233
|
-
const encode$
|
|
33302
|
+
const validXmlAttributes$j = [attrConfig$n];
|
|
33303
|
+
const XML_NODE_NAME$r = "w:strike";
|
|
33304
|
+
const SD_ATTR_KEY$b = "strike";
|
|
33305
|
+
const encode$M = (params2, encodedAttrs = {}) => {
|
|
33234
33306
|
const { nodes } = params2;
|
|
33235
33307
|
const node = nodes?.[0];
|
|
33236
33308
|
if (!node) return void 0;
|
|
33237
|
-
const val = encodedAttrs?.[SD_ATTR_KEY$
|
|
33309
|
+
const val = encodedAttrs?.[SD_ATTR_KEY$b];
|
|
33238
33310
|
let attributes;
|
|
33239
33311
|
if (val === false) attributes = { "w:val": "0" };
|
|
33240
33312
|
else if (val === true) attributes = {};
|
|
@@ -33243,55 +33315,55 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33243
33315
|
else if (val === true && attributes["w:val"] === void 0) delete attributes["w:val"];
|
|
33244
33316
|
return {
|
|
33245
33317
|
type: "attr",
|
|
33246
|
-
xmlName: XML_NODE_NAME$
|
|
33247
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33318
|
+
xmlName: XML_NODE_NAME$r,
|
|
33319
|
+
sdNodeOrKeyName: SD_ATTR_KEY$b,
|
|
33248
33320
|
attributes
|
|
33249
33321
|
};
|
|
33250
33322
|
};
|
|
33251
|
-
const config$
|
|
33252
|
-
xmlName: XML_NODE_NAME$
|
|
33253
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33323
|
+
const config$q = {
|
|
33324
|
+
xmlName: XML_NODE_NAME$r,
|
|
33325
|
+
sdNodeOrKeyName: SD_ATTR_KEY$b,
|
|
33254
33326
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33255
|
-
encode: encode$
|
|
33256
|
-
attributes: validXmlAttributes$
|
|
33327
|
+
encode: encode$M,
|
|
33328
|
+
attributes: validXmlAttributes$j
|
|
33257
33329
|
};
|
|
33258
|
-
const translator$
|
|
33259
|
-
const encode$
|
|
33260
|
-
const decode$
|
|
33330
|
+
const translator$1k = NodeTranslator.from(config$q);
|
|
33331
|
+
const encode$L = (attributes) => attributes?.["w:val"];
|
|
33332
|
+
const decode$G = (attrs) => attrs?.color;
|
|
33261
33333
|
const attrConfig$m = Object.freeze({
|
|
33262
33334
|
xmlName: "w:val",
|
|
33263
33335
|
sdName: "color",
|
|
33264
|
-
encode: encode$
|
|
33265
|
-
decode: decode$
|
|
33336
|
+
encode: encode$L,
|
|
33337
|
+
decode: decode$G
|
|
33266
33338
|
});
|
|
33267
|
-
const encode$
|
|
33268
|
-
const decode$
|
|
33339
|
+
const encode$K = (attributes) => attributes?.["w:themeColor"];
|
|
33340
|
+
const decode$F = (attrs) => attrs?.themeColor;
|
|
33269
33341
|
const attrConfig$l = Object.freeze({
|
|
33270
33342
|
xmlName: "w:themeColor",
|
|
33271
33343
|
sdName: "themeColor",
|
|
33272
|
-
encode: encode$
|
|
33273
|
-
decode: decode$
|
|
33344
|
+
encode: encode$K,
|
|
33345
|
+
decode: decode$F
|
|
33274
33346
|
});
|
|
33275
|
-
const encode$
|
|
33276
|
-
const decode$
|
|
33347
|
+
const encode$J = (attributes) => attributes?.["w:themeTint"];
|
|
33348
|
+
const decode$E = (attrs) => attrs?.themeTint;
|
|
33277
33349
|
const attrConfig$k = Object.freeze({
|
|
33278
33350
|
xmlName: "w:themeTint",
|
|
33279
33351
|
sdName: "themeTint",
|
|
33280
|
-
encode: encode$
|
|
33281
|
-
decode: decode$
|
|
33352
|
+
encode: encode$J,
|
|
33353
|
+
decode: decode$E
|
|
33282
33354
|
});
|
|
33283
|
-
const encode$
|
|
33284
|
-
const decode$
|
|
33355
|
+
const encode$I = (attributes) => attributes?.["w:themeShade"];
|
|
33356
|
+
const decode$D = (attrs) => attrs?.themeShade;
|
|
33285
33357
|
const attrConfig$j = Object.freeze({
|
|
33286
33358
|
xmlName: "w:themeShade",
|
|
33287
33359
|
sdName: "themeShade",
|
|
33288
|
-
encode: encode$
|
|
33289
|
-
decode: decode$
|
|
33360
|
+
encode: encode$I,
|
|
33361
|
+
decode: decode$D
|
|
33290
33362
|
});
|
|
33291
|
-
const validXmlAttributes$
|
|
33292
|
-
const XML_NODE_NAME$
|
|
33293
|
-
const SD_ATTR_KEY$
|
|
33294
|
-
const encode$
|
|
33363
|
+
const validXmlAttributes$i = [attrConfig$m, attrConfig$l, attrConfig$k, attrConfig$j];
|
|
33364
|
+
const XML_NODE_NAME$q = "w:color";
|
|
33365
|
+
const SD_ATTR_KEY$a = "color";
|
|
33366
|
+
const encode$H = (params2, encodedAttrs = {}) => {
|
|
33295
33367
|
const { nodes } = params2;
|
|
33296
33368
|
const node = nodes?.[0];
|
|
33297
33369
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -33306,63 +33378,63 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33306
33378
|
if (themeShade !== void 0 && themeShade !== null) attributes["w:themeShade"] = themeShade;
|
|
33307
33379
|
return {
|
|
33308
33380
|
type: "attr",
|
|
33309
|
-
xmlName: XML_NODE_NAME$
|
|
33310
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33381
|
+
xmlName: XML_NODE_NAME$q,
|
|
33382
|
+
sdNodeOrKeyName: SD_ATTR_KEY$a,
|
|
33311
33383
|
attributes
|
|
33312
33384
|
};
|
|
33313
33385
|
};
|
|
33314
|
-
const config$
|
|
33315
|
-
xmlName: XML_NODE_NAME$
|
|
33316
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33386
|
+
const config$p = {
|
|
33387
|
+
xmlName: XML_NODE_NAME$q,
|
|
33388
|
+
sdNodeOrKeyName: SD_ATTR_KEY$a,
|
|
33317
33389
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33318
|
-
encode: encode$
|
|
33319
|
-
attributes: validXmlAttributes$
|
|
33390
|
+
encode: encode$H,
|
|
33391
|
+
attributes: validXmlAttributes$i
|
|
33320
33392
|
};
|
|
33321
|
-
const translator$
|
|
33322
|
-
const encode$
|
|
33323
|
-
const decode$
|
|
33393
|
+
const translator$1j = NodeTranslator.from(config$p);
|
|
33394
|
+
const encode$G = (attributes) => attributes?.["w:eastAsia"];
|
|
33395
|
+
const decode$C = (attrs) => attrs?.eastAsia;
|
|
33324
33396
|
const attrConfig$i = Object.freeze({
|
|
33325
33397
|
xmlName: "w:eastAsia",
|
|
33326
33398
|
sdName: "eastAsia",
|
|
33327
|
-
encode: encode$
|
|
33328
|
-
decode: decode$
|
|
33399
|
+
encode: encode$G,
|
|
33400
|
+
decode: decode$C
|
|
33329
33401
|
});
|
|
33330
|
-
const encode$
|
|
33331
|
-
const decode$
|
|
33402
|
+
const encode$F = (attributes) => attributes?.["w:ascii"];
|
|
33403
|
+
const decode$B = (attrs) => attrs?.ascii;
|
|
33332
33404
|
const attrConfig$h = Object.freeze({
|
|
33333
33405
|
xmlName: "w:ascii",
|
|
33334
33406
|
sdName: "ascii",
|
|
33335
|
-
encode: encode$
|
|
33336
|
-
decode: decode$
|
|
33407
|
+
encode: encode$F,
|
|
33408
|
+
decode: decode$B
|
|
33337
33409
|
});
|
|
33338
|
-
const encode$
|
|
33339
|
-
const decode$
|
|
33410
|
+
const encode$E = (attributes) => attributes?.["w:hAnsi"];
|
|
33411
|
+
const decode$A = (attrs) => attrs?.hAnsi;
|
|
33340
33412
|
const attrConfig$g = Object.freeze({
|
|
33341
33413
|
xmlName: "w:hAnsi",
|
|
33342
33414
|
sdName: "hAnsi",
|
|
33343
|
-
encode: encode$
|
|
33344
|
-
decode: decode$
|
|
33415
|
+
encode: encode$E,
|
|
33416
|
+
decode: decode$A
|
|
33345
33417
|
});
|
|
33346
|
-
const encode$
|
|
33347
|
-
const decode$
|
|
33418
|
+
const encode$D = (attributes) => attributes?.["w:cs"];
|
|
33419
|
+
const decode$z = (attrs) => attrs?.cs;
|
|
33348
33420
|
const attrConfig$f = Object.freeze({
|
|
33349
33421
|
xmlName: "w:cs",
|
|
33350
33422
|
sdName: "cs",
|
|
33351
|
-
encode: encode$
|
|
33352
|
-
decode: decode$
|
|
33423
|
+
encode: encode$D,
|
|
33424
|
+
decode: decode$z
|
|
33353
33425
|
});
|
|
33354
|
-
const encode$
|
|
33355
|
-
const decode$
|
|
33426
|
+
const encode$C = (attributes) => attributes?.["w:val"];
|
|
33427
|
+
const decode$y = (attrs) => attrs?.value;
|
|
33356
33428
|
const attrConfig$e = Object.freeze({
|
|
33357
33429
|
xmlName: "w:val",
|
|
33358
33430
|
sdName: "value",
|
|
33359
|
-
encode: encode$
|
|
33360
|
-
decode: decode$
|
|
33431
|
+
encode: encode$C,
|
|
33432
|
+
decode: decode$y
|
|
33361
33433
|
});
|
|
33362
|
-
const validXmlAttributes$
|
|
33363
|
-
const XML_NODE_NAME$
|
|
33364
|
-
const SD_ATTR_KEY$
|
|
33365
|
-
const encode$
|
|
33434
|
+
const validXmlAttributes$h = [attrConfig$i, attrConfig$h, attrConfig$g, attrConfig$f, attrConfig$e];
|
|
33435
|
+
const XML_NODE_NAME$p = "w:rFonts";
|
|
33436
|
+
const SD_ATTR_KEY$9 = "fontFamily";
|
|
33437
|
+
const encode$B = (params2, encodedAttrs = {}) => {
|
|
33366
33438
|
const { nodes } = params2;
|
|
33367
33439
|
const node = nodes?.[0];
|
|
33368
33440
|
const sourceAttrs = node?.attributes || {};
|
|
@@ -33386,111 +33458,119 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33386
33458
|
attributes["w:val"] = attributes["w:eastAsia"];
|
|
33387
33459
|
}
|
|
33388
33460
|
if (attributes["w:val"] === void 0) delete attributes["w:val"];
|
|
33461
|
+
if (params2.inlineDocumentFonts) {
|
|
33462
|
+
const font = attributes["w:ascii"];
|
|
33463
|
+
if (font) {
|
|
33464
|
+
if (!params2.inlineDocumentFonts.includes(font)) {
|
|
33465
|
+
params2.inlineDocumentFonts.push(font);
|
|
33466
|
+
}
|
|
33467
|
+
}
|
|
33468
|
+
}
|
|
33389
33469
|
return {
|
|
33390
33470
|
type: "attr",
|
|
33391
|
-
xmlName: XML_NODE_NAME$
|
|
33392
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33471
|
+
xmlName: XML_NODE_NAME$p,
|
|
33472
|
+
sdNodeOrKeyName: SD_ATTR_KEY$9,
|
|
33393
33473
|
attributes
|
|
33394
33474
|
};
|
|
33395
33475
|
};
|
|
33396
|
-
const config$
|
|
33397
|
-
xmlName: XML_NODE_NAME$
|
|
33398
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33476
|
+
const config$o = {
|
|
33477
|
+
xmlName: XML_NODE_NAME$p,
|
|
33478
|
+
sdNodeOrKeyName: SD_ATTR_KEY$9,
|
|
33399
33479
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33400
|
-
encode: encode$
|
|
33401
|
-
attributes: validXmlAttributes$
|
|
33480
|
+
encode: encode$B,
|
|
33481
|
+
attributes: validXmlAttributes$h
|
|
33402
33482
|
};
|
|
33403
|
-
const translator$
|
|
33404
|
-
const encode$
|
|
33405
|
-
const decode$
|
|
33483
|
+
const translator$1i = NodeTranslator.from(config$o);
|
|
33484
|
+
const encode$A = (attributes) => attributes?.["w:val"];
|
|
33485
|
+
const decode$x = (attrs) => attrs?.styleId;
|
|
33406
33486
|
const attrConfig$d = Object.freeze({
|
|
33407
33487
|
xmlName: "w:val",
|
|
33408
33488
|
sdName: "styleId",
|
|
33409
|
-
encode: encode$
|
|
33410
|
-
decode: decode$
|
|
33489
|
+
encode: encode$A,
|
|
33490
|
+
decode: decode$x
|
|
33411
33491
|
});
|
|
33412
|
-
const validXmlAttributes$
|
|
33413
|
-
const XML_NODE_NAME$
|
|
33414
|
-
const SD_ATTR_KEY$
|
|
33415
|
-
const encode$
|
|
33492
|
+
const validXmlAttributes$g = [attrConfig$d];
|
|
33493
|
+
const XML_NODE_NAME$o = "w:rStyle";
|
|
33494
|
+
const SD_ATTR_KEY$8 = "styleId";
|
|
33495
|
+
const encode$z = (params2, encodedAttrs = {}) => {
|
|
33416
33496
|
const { nodes } = params2;
|
|
33417
33497
|
const node = nodes?.[0];
|
|
33418
33498
|
const value = encodedAttrs.styleId ?? node?.attributes?.["w:val"];
|
|
33419
33499
|
return {
|
|
33420
33500
|
type: "attr",
|
|
33421
|
-
xmlName: XML_NODE_NAME$
|
|
33422
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33501
|
+
xmlName: XML_NODE_NAME$o,
|
|
33502
|
+
sdNodeOrKeyName: SD_ATTR_KEY$8,
|
|
33423
33503
|
attributes: { "w:val": value ?? null }
|
|
33424
33504
|
};
|
|
33425
33505
|
};
|
|
33426
|
-
const config$
|
|
33427
|
-
xmlName: XML_NODE_NAME$
|
|
33428
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33506
|
+
const config$n = {
|
|
33507
|
+
xmlName: XML_NODE_NAME$o,
|
|
33508
|
+
sdNodeOrKeyName: SD_ATTR_KEY$8,
|
|
33429
33509
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33430
|
-
encode: encode$
|
|
33431
|
-
attributes: validXmlAttributes$
|
|
33510
|
+
encode: encode$z,
|
|
33511
|
+
attributes: validXmlAttributes$g
|
|
33432
33512
|
};
|
|
33433
|
-
const translator$
|
|
33434
|
-
const encode$
|
|
33435
|
-
const decode$
|
|
33513
|
+
const translator$1h = NodeTranslator.from(config$n);
|
|
33514
|
+
const encode$y = (attributes) => attributes?.["w:val"];
|
|
33515
|
+
const decode$w = (attrs) => attrs?.fontSize;
|
|
33436
33516
|
const attrConfig$c = Object.freeze({
|
|
33437
33517
|
xmlName: "w:val",
|
|
33438
33518
|
sdName: "fontSize",
|
|
33439
|
-
encode: encode$
|
|
33440
|
-
decode: decode$
|
|
33519
|
+
encode: encode$y,
|
|
33520
|
+
decode: decode$w
|
|
33441
33521
|
});
|
|
33442
|
-
const validXmlAttributes$
|
|
33443
|
-
const XML_NODE_NAME$
|
|
33444
|
-
const SD_ATTR_KEY$
|
|
33445
|
-
const encode$
|
|
33522
|
+
const validXmlAttributes$f = [attrConfig$c];
|
|
33523
|
+
const XML_NODE_NAME$n = "w:sz";
|
|
33524
|
+
const SD_ATTR_KEY$7 = "fontSize";
|
|
33525
|
+
const encode$x = (params2, encodedAttrs = {}) => {
|
|
33446
33526
|
const { nodes } = params2;
|
|
33447
33527
|
const node = nodes?.[0];
|
|
33448
33528
|
const value = encodedAttrs.fontSize ?? node?.attributes?.["w:val"];
|
|
33449
33529
|
return {
|
|
33450
33530
|
type: "attr",
|
|
33451
|
-
xmlName: XML_NODE_NAME$
|
|
33452
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33531
|
+
xmlName: XML_NODE_NAME$n,
|
|
33532
|
+
sdNodeOrKeyName: SD_ATTR_KEY$7,
|
|
33453
33533
|
attributes: { "w:val": value ?? null }
|
|
33454
33534
|
};
|
|
33455
33535
|
};
|
|
33456
|
-
const config$
|
|
33457
|
-
xmlName: XML_NODE_NAME$
|
|
33458
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33536
|
+
const config$m = {
|
|
33537
|
+
xmlName: XML_NODE_NAME$n,
|
|
33538
|
+
sdNodeOrKeyName: SD_ATTR_KEY$7,
|
|
33459
33539
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33460
|
-
encode: encode$
|
|
33461
|
-
attributes: validXmlAttributes$
|
|
33540
|
+
encode: encode$x,
|
|
33541
|
+
attributes: validXmlAttributes$f
|
|
33462
33542
|
};
|
|
33463
|
-
const translator
|
|
33464
|
-
const encode$
|
|
33465
|
-
const decode$
|
|
33543
|
+
const translator$1g = NodeTranslator.from(config$m);
|
|
33544
|
+
const encode$w = (attributes) => attributes?.["w:val"];
|
|
33545
|
+
const decode$v = (attrs) => attrs?.fontSizeCs;
|
|
33466
33546
|
const attrConfig$b = Object.freeze({
|
|
33467
33547
|
xmlName: "w:val",
|
|
33468
33548
|
sdName: "fontSizeCs",
|
|
33469
|
-
encode: encode$
|
|
33470
|
-
decode: decode$
|
|
33549
|
+
encode: encode$w,
|
|
33550
|
+
decode: decode$v
|
|
33471
33551
|
});
|
|
33472
|
-
const validXmlAttributes$
|
|
33473
|
-
const XML_NODE_NAME$
|
|
33474
|
-
const SD_ATTR_KEY$
|
|
33475
|
-
const encode$
|
|
33552
|
+
const validXmlAttributes$e = [attrConfig$b];
|
|
33553
|
+
const XML_NODE_NAME$m = "w:szCs";
|
|
33554
|
+
const SD_ATTR_KEY$6 = "fontSizeCs";
|
|
33555
|
+
const encode$v = (params2, encodedAttrs = {}) => {
|
|
33476
33556
|
const { nodes } = params2;
|
|
33477
33557
|
const node = nodes?.[0];
|
|
33478
33558
|
const value = encodedAttrs.fontSizeCs ?? node?.attributes?.["w:val"];
|
|
33479
33559
|
return {
|
|
33480
33560
|
type: "attr",
|
|
33481
|
-
xmlName: XML_NODE_NAME$
|
|
33482
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33561
|
+
xmlName: XML_NODE_NAME$m,
|
|
33562
|
+
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
33483
33563
|
attributes: { "w:val": value ?? null }
|
|
33484
33564
|
};
|
|
33485
33565
|
};
|
|
33486
|
-
const config$
|
|
33487
|
-
xmlName: XML_NODE_NAME$
|
|
33488
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33566
|
+
const config$l = {
|
|
33567
|
+
xmlName: XML_NODE_NAME$m,
|
|
33568
|
+
sdNodeOrKeyName: SD_ATTR_KEY$6,
|
|
33489
33569
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33490
|
-
encode: encode$
|
|
33491
|
-
attributes: validXmlAttributes$
|
|
33570
|
+
encode: encode$v,
|
|
33571
|
+
attributes: validXmlAttributes$e
|
|
33492
33572
|
};
|
|
33493
|
-
const translator$
|
|
33573
|
+
const translator$1f = NodeTranslator.from(config$l);
|
|
33494
33574
|
const generateV2HandlerEntity = (handlerName, translator2) => ({
|
|
33495
33575
|
handlerName,
|
|
33496
33576
|
handler: (params2) => {
|
|
@@ -33514,7 +33594,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33514
33594
|
xmlName,
|
|
33515
33595
|
sdNodeOrKeyName: sdName,
|
|
33516
33596
|
encode: ({ nodes }) => {
|
|
33517
|
-
return transformEncode(nodes[0]
|
|
33597
|
+
return transformEncode(nodes[0]?.attributes?.[attrName]) ?? void 0;
|
|
33518
33598
|
},
|
|
33519
33599
|
decode: ({ node }) => {
|
|
33520
33600
|
const value = node.attrs?.[sdName] != null ? transformDecode(node.attrs[sdName]) : void 0;
|
|
@@ -33546,8 +33626,32 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33546
33626
|
xmlName,
|
|
33547
33627
|
sdNodeOrKeyName: sdName,
|
|
33548
33628
|
attributes: [
|
|
33549
|
-
createAttributeHandler(
|
|
33550
|
-
|
|
33629
|
+
createAttributeHandler(
|
|
33630
|
+
"w:val",
|
|
33631
|
+
"val",
|
|
33632
|
+
(v2) => v2 === "nil" ? "none" : v2,
|
|
33633
|
+
(v2) => v2 === "none" ? "nil" : v2
|
|
33634
|
+
),
|
|
33635
|
+
createAttributeHandler(
|
|
33636
|
+
"w:color",
|
|
33637
|
+
"color",
|
|
33638
|
+
(v2) => {
|
|
33639
|
+
if (v2 === "auto") {
|
|
33640
|
+
return null;
|
|
33641
|
+
} else if (v2) {
|
|
33642
|
+
return `#${v2}`;
|
|
33643
|
+
} else {
|
|
33644
|
+
return void 0;
|
|
33645
|
+
}
|
|
33646
|
+
},
|
|
33647
|
+
(v2) => {
|
|
33648
|
+
if (v2) {
|
|
33649
|
+
return v2.replace("#", "");
|
|
33650
|
+
} else {
|
|
33651
|
+
return void 0;
|
|
33652
|
+
}
|
|
33653
|
+
}
|
|
33654
|
+
),
|
|
33551
33655
|
createAttributeHandler("w:themeColor"),
|
|
33552
33656
|
createAttributeHandler("w:themeTint"),
|
|
33553
33657
|
createAttributeHandler("w:themeShade"),
|
|
@@ -33613,6 +33717,37 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33613
33717
|
});
|
|
33614
33718
|
return elements;
|
|
33615
33719
|
}
|
|
33720
|
+
function createNestedPropertiesTranslator(xmlName, sdName, propertyTranslators2, defaultEncodedAttrs = {}) {
|
|
33721
|
+
const propertyTranslatorsByXmlName = {};
|
|
33722
|
+
const propertyTranslatorsBySdName = {};
|
|
33723
|
+
propertyTranslators2.forEach((translator2) => {
|
|
33724
|
+
propertyTranslatorsByXmlName[translator2.xmlName] = translator2;
|
|
33725
|
+
propertyTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
33726
|
+
});
|
|
33727
|
+
return {
|
|
33728
|
+
xmlName,
|
|
33729
|
+
sdNodeOrKeyName: sdName,
|
|
33730
|
+
type: NodeTranslator.translatorTypes.NODE,
|
|
33731
|
+
attributes: [],
|
|
33732
|
+
encode: (params2) => {
|
|
33733
|
+
const { nodes } = params2;
|
|
33734
|
+
const node = nodes[0];
|
|
33735
|
+
const attributes = { ...defaultEncodedAttrs, ...encodeProperties(node, propertyTranslatorsByXmlName) };
|
|
33736
|
+
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
33737
|
+
},
|
|
33738
|
+
decode: (params2) => {
|
|
33739
|
+
const currentValue = params2.node.attrs?.[sdName];
|
|
33740
|
+
const elements = decodeProperties(propertyTranslatorsBySdName, currentValue);
|
|
33741
|
+
const newNode = {
|
|
33742
|
+
name: xmlName,
|
|
33743
|
+
type: "element",
|
|
33744
|
+
attributes: {},
|
|
33745
|
+
elements
|
|
33746
|
+
};
|
|
33747
|
+
return newNode;
|
|
33748
|
+
}
|
|
33749
|
+
};
|
|
33750
|
+
}
|
|
33616
33751
|
const parseBoolean = (value) => value != null ? ["1", "true"].includes(value) : void 0;
|
|
33617
33752
|
const booleanToString = (value) => value != null ? value ? "1" : "0" : void 0;
|
|
33618
33753
|
const parseInteger = (value) => {
|
|
@@ -33624,9 +33759,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33624
33759
|
const intValue = parseInteger(value);
|
|
33625
33760
|
return intValue != void 0 ? String(intValue) : void 0;
|
|
33626
33761
|
};
|
|
33627
|
-
const XML_NODE_NAME$
|
|
33628
|
-
const SD_ATTR_KEY$
|
|
33629
|
-
const encode$
|
|
33762
|
+
const XML_NODE_NAME$l = "w:caps";
|
|
33763
|
+
const SD_ATTR_KEY$5 = "textTransform";
|
|
33764
|
+
const encode$u = (params2, encodedAttrs = {}) => {
|
|
33630
33765
|
const { nodes } = params2;
|
|
33631
33766
|
const node = nodes[0];
|
|
33632
33767
|
if (!node) return void 0;
|
|
@@ -33638,31 +33773,31 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33638
33773
|
}
|
|
33639
33774
|
return {
|
|
33640
33775
|
type: "attr",
|
|
33641
|
-
xmlName: XML_NODE_NAME$
|
|
33642
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33643
|
-
attributes: { [SD_ATTR_KEY$
|
|
33776
|
+
xmlName: XML_NODE_NAME$l,
|
|
33777
|
+
sdNodeOrKeyName: SD_ATTR_KEY$5,
|
|
33778
|
+
attributes: { [SD_ATTR_KEY$5]: result }
|
|
33644
33779
|
};
|
|
33645
33780
|
};
|
|
33646
|
-
const config$
|
|
33647
|
-
xmlName: XML_NODE_NAME$
|
|
33648
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33781
|
+
const config$k = {
|
|
33782
|
+
xmlName: XML_NODE_NAME$l,
|
|
33783
|
+
sdNodeOrKeyName: SD_ATTR_KEY$5,
|
|
33649
33784
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33650
|
-
encode: encode$
|
|
33785
|
+
encode: encode$u,
|
|
33651
33786
|
attributes: [createAttributeHandler("w:val")]
|
|
33652
33787
|
};
|
|
33653
|
-
const translator$
|
|
33788
|
+
const translator$1e = NodeTranslator.from(config$k);
|
|
33654
33789
|
const runPropertyTranslators = Object.freeze({
|
|
33655
|
-
"w:b": translator$
|
|
33656
|
-
"w:i": translator$
|
|
33657
|
-
"w:u": translator$
|
|
33658
|
-
"w:strike": translator$
|
|
33659
|
-
"w:color": translator$
|
|
33660
|
-
"w:highlight": translator$
|
|
33661
|
-
"w:rFonts": translator$
|
|
33662
|
-
"w:rStyle": translator$
|
|
33663
|
-
"w:sz": translator
|
|
33664
|
-
"w:szCs": translator$
|
|
33665
|
-
"w:caps": translator$
|
|
33790
|
+
"w:b": translator$1n,
|
|
33791
|
+
"w:i": translator$1m,
|
|
33792
|
+
"w:u": translator$1l,
|
|
33793
|
+
"w:strike": translator$1k,
|
|
33794
|
+
"w:color": translator$1j,
|
|
33795
|
+
"w:highlight": translator$1q,
|
|
33796
|
+
"w:rFonts": translator$1i,
|
|
33797
|
+
"w:rStyle": translator$1h,
|
|
33798
|
+
"w:sz": translator$1g,
|
|
33799
|
+
"w:szCs": translator$1f,
|
|
33800
|
+
"w:caps": translator$1e
|
|
33666
33801
|
});
|
|
33667
33802
|
const rawRunPropertyXmlNames = Object.freeze(["w:lang", "w:shd"]);
|
|
33668
33803
|
const RAW_CHILD_NAME_SET = new Set(rawRunPropertyXmlNames);
|
|
@@ -33676,9 +33811,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33676
33811
|
attributes: { ...candidate.attributes || {} }
|
|
33677
33812
|
};
|
|
33678
33813
|
};
|
|
33679
|
-
const XML_NODE_NAME$
|
|
33680
|
-
const SD_ATTR_KEY$
|
|
33681
|
-
const encode$
|
|
33814
|
+
const XML_NODE_NAME$k = "w:rPr";
|
|
33815
|
+
const SD_ATTR_KEY$4 = "runProperties";
|
|
33816
|
+
const encode$t = (params2) => {
|
|
33682
33817
|
const { nodes } = params2;
|
|
33683
33818
|
const node = nodes?.[0] || {};
|
|
33684
33819
|
const contents = Array.isArray(node.elements) ? node.elements : [];
|
|
@@ -33712,16 +33847,16 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
33712
33847
|
attributes: runPropsArray
|
|
33713
33848
|
};
|
|
33714
33849
|
};
|
|
33715
|
-
const config$
|
|
33716
|
-
xmlName: XML_NODE_NAME$
|
|
33717
|
-
sdNodeOrKeyName: SD_ATTR_KEY$
|
|
33850
|
+
const config$j = {
|
|
33851
|
+
xmlName: XML_NODE_NAME$k,
|
|
33852
|
+
sdNodeOrKeyName: SD_ATTR_KEY$4,
|
|
33718
33853
|
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
33719
|
-
encode: encode$
|
|
33854
|
+
encode: encode$t
|
|
33720
33855
|
};
|
|
33721
|
-
const translator$
|
|
33856
|
+
const translator$1d = NodeTranslator.from(config$j);
|
|
33722
33857
|
const EAST_ASIAN_CHARACTER_REGEX = /[\u1100-\u11FF\u2E80-\u2EFF\u2F00-\u2FDF\u3040-\u30FF\u3100-\u312F\u3130-\u318F\u31A0-\u31BF\u3400-\u4DBF\u4E00-\u9FFF\uA960-\uA97F\uAC00-\uD7AF\uF900-\uFAFF\uFF00-\uFFEF]/u;
|
|
33723
33858
|
const containsEastAsianCharacters = (text) => EAST_ASIAN_CHARACTER_REGEX.test(text);
|
|
33724
|
-
const collectRunProperties = (params2, rPrNode, translator2 = translator$
|
|
33859
|
+
const collectRunProperties = (params2, rPrNode, translator2 = translator$1d) => {
|
|
33725
33860
|
if (!rPrNode) return { entries: [], hadRPr: false, styleChangeMarks: [] };
|
|
33726
33861
|
const result = translator2.encode({ ...params2, nodes: [rPrNode] }) || {};
|
|
33727
33862
|
let entries = [];
|
|
@@ -34194,7 +34329,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34194
34329
|
}
|
|
34195
34330
|
return runs;
|
|
34196
34331
|
};
|
|
34197
|
-
const XML_NODE_NAME$
|
|
34332
|
+
const XML_NODE_NAME$j = "w:hyperlink";
|
|
34198
34333
|
const SD_NODE_NAME$e = "link";
|
|
34199
34334
|
const _createAttributeHandler = (xmlName, sdName) => ({
|
|
34200
34335
|
xmlName,
|
|
@@ -34202,7 +34337,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34202
34337
|
encode: (attributes) => attributes[xmlName],
|
|
34203
34338
|
decode: (attributes) => attributes[sdName]
|
|
34204
34339
|
});
|
|
34205
|
-
const validXmlAttributes$
|
|
34340
|
+
const validXmlAttributes$d = [
|
|
34206
34341
|
_createAttributeHandler("w:anchor", "anchor"),
|
|
34207
34342
|
_createAttributeHandler("w:docLocation", "docLocation"),
|
|
34208
34343
|
{
|
|
@@ -34215,7 +34350,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34215
34350
|
_createAttributeHandler("r:id", "rId"),
|
|
34216
34351
|
_createAttributeHandler("w:tgtFrame", "target")
|
|
34217
34352
|
];
|
|
34218
|
-
const encode$
|
|
34353
|
+
const encode$s = (params2, encodedAttrs) => {
|
|
34219
34354
|
const { nodes, docx, nodeListHandler } = params2;
|
|
34220
34355
|
const node = nodes[0];
|
|
34221
34356
|
let href = _resolveHref(docx, encodedAttrs);
|
|
@@ -34249,7 +34384,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34249
34384
|
}
|
|
34250
34385
|
return href;
|
|
34251
34386
|
};
|
|
34252
|
-
function decode$
|
|
34387
|
+
function decode$u(params2) {
|
|
34253
34388
|
const { hyperlinkGroup = [params2.node] } = params2.extraParams || {};
|
|
34254
34389
|
const node = hyperlinkGroup[0];
|
|
34255
34390
|
const linkMark = node.marks.find((m2) => m2.type === "link");
|
|
@@ -34298,55 +34433,55 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34298
34433
|
});
|
|
34299
34434
|
return id;
|
|
34300
34435
|
}
|
|
34301
|
-
const config$
|
|
34302
|
-
xmlName: XML_NODE_NAME$
|
|
34436
|
+
const config$i = {
|
|
34437
|
+
xmlName: XML_NODE_NAME$j,
|
|
34303
34438
|
sdNodeOrKeyName: SD_NODE_NAME$e,
|
|
34304
34439
|
type: NodeTranslator.translatorTypes.NODE,
|
|
34305
|
-
encode: encode$
|
|
34306
|
-
decode: decode$
|
|
34307
|
-
attributes: validXmlAttributes$
|
|
34440
|
+
encode: encode$s,
|
|
34441
|
+
decode: decode$u,
|
|
34442
|
+
attributes: validXmlAttributes$d
|
|
34308
34443
|
};
|
|
34309
|
-
const translator$
|
|
34310
|
-
const encode$
|
|
34444
|
+
const translator$1c = NodeTranslator.from(config$i);
|
|
34445
|
+
const encode$r = (attributes) => {
|
|
34311
34446
|
return attributes["w:rsidR"];
|
|
34312
34447
|
};
|
|
34313
|
-
const decode$
|
|
34448
|
+
const decode$t = (attrs) => {
|
|
34314
34449
|
return attrs.rsidR;
|
|
34315
34450
|
};
|
|
34316
34451
|
const attrConfig$a = Object.freeze({
|
|
34317
34452
|
xmlName: "w:rsidR",
|
|
34318
34453
|
sdName: "rsidR",
|
|
34319
|
-
encode: encode$
|
|
34320
|
-
decode: decode$
|
|
34454
|
+
encode: encode$r,
|
|
34455
|
+
decode: decode$t
|
|
34321
34456
|
});
|
|
34322
|
-
const encode$
|
|
34457
|
+
const encode$q = (attributes) => {
|
|
34323
34458
|
return attributes["w:rsidRPr"];
|
|
34324
34459
|
};
|
|
34325
|
-
const decode$
|
|
34460
|
+
const decode$s = (attrs) => {
|
|
34326
34461
|
return attrs.rsidRPr;
|
|
34327
34462
|
};
|
|
34328
34463
|
const attrConfig$9 = Object.freeze({
|
|
34329
34464
|
xmlName: "w:rsidRPr",
|
|
34330
34465
|
sdName: "rsidRPr",
|
|
34331
|
-
encode: encode$
|
|
34332
|
-
decode: decode$
|
|
34466
|
+
encode: encode$q,
|
|
34467
|
+
decode: decode$s
|
|
34333
34468
|
});
|
|
34334
|
-
const encode$
|
|
34469
|
+
const encode$p = (attributes) => {
|
|
34335
34470
|
return attributes["w:rsidDel"];
|
|
34336
34471
|
};
|
|
34337
|
-
const decode$
|
|
34472
|
+
const decode$r = (attrs) => {
|
|
34338
34473
|
return attrs.rsidDel;
|
|
34339
34474
|
};
|
|
34340
34475
|
const attrConfig$8 = Object.freeze({
|
|
34341
34476
|
xmlName: "w:rsidDel",
|
|
34342
34477
|
sdName: "rsidDel",
|
|
34343
|
-
encode: encode$
|
|
34344
|
-
decode: decode$
|
|
34478
|
+
encode: encode$p,
|
|
34479
|
+
decode: decode$r
|
|
34345
34480
|
});
|
|
34346
|
-
const validXmlAttributes$
|
|
34347
|
-
const XML_NODE_NAME$
|
|
34481
|
+
const validXmlAttributes$c = [attrConfig$a, attrConfig$9, attrConfig$8];
|
|
34482
|
+
const XML_NODE_NAME$i = "w:r";
|
|
34348
34483
|
const SD_KEY_NAME = "run";
|
|
34349
|
-
const encode$
|
|
34484
|
+
const encode$o = (params2, encodedAttrs = {}) => {
|
|
34350
34485
|
const { nodes = [], nodeListHandler } = params2 || {};
|
|
34351
34486
|
const runNode = nodes[0];
|
|
34352
34487
|
if (!runNode) return void 0;
|
|
@@ -34394,7 +34529,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34394
34529
|
}
|
|
34395
34530
|
return runNodeResult;
|
|
34396
34531
|
};
|
|
34397
|
-
const decode$
|
|
34532
|
+
const decode$q = (params2, decodedAttrs = {}) => {
|
|
34398
34533
|
const { node } = params2 || {};
|
|
34399
34534
|
if (!node) return void 0;
|
|
34400
34535
|
const isLinkNode = node.marks?.some((m2) => m2.type === "link");
|
|
@@ -34403,7 +34538,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34403
34538
|
...params2.extraParams,
|
|
34404
34539
|
linkProcessed: true
|
|
34405
34540
|
};
|
|
34406
|
-
return translator$
|
|
34541
|
+
return translator$1c.decode({ ...params2, extraParams });
|
|
34407
34542
|
}
|
|
34408
34543
|
const { runNode: runNodeForExport, trackingMarksByType } = prepareRunTrackingContext(node);
|
|
34409
34544
|
const runAttrs = runNodeForExport.attrs || {};
|
|
@@ -34459,7 +34594,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34459
34594
|
runs.push(trackedClone);
|
|
34460
34595
|
return;
|
|
34461
34596
|
}
|
|
34462
|
-
const runWrapper = { name: XML_NODE_NAME$
|
|
34597
|
+
const runWrapper = { name: XML_NODE_NAME$i, elements: [] };
|
|
34463
34598
|
applyBaseRunProps(runWrapper);
|
|
34464
34599
|
if (!Array.isArray(runWrapper.elements)) runWrapper.elements = [];
|
|
34465
34600
|
runWrapper.elements.push(cloneXmlNode(child));
|
|
@@ -34467,7 +34602,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34467
34602
|
});
|
|
34468
34603
|
const trackedRuns = ensureTrackedWrapper(runs, trackingMarksByType);
|
|
34469
34604
|
if (!trackedRuns.length) {
|
|
34470
|
-
const emptyRun = { name: XML_NODE_NAME$
|
|
34605
|
+
const emptyRun = { name: XML_NODE_NAME$i, elements: [] };
|
|
34471
34606
|
applyBaseRunProps(emptyRun);
|
|
34472
34607
|
trackedRuns.push(emptyRun);
|
|
34473
34608
|
}
|
|
@@ -34481,15 +34616,15 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34481
34616
|
}
|
|
34482
34617
|
return trackedRuns;
|
|
34483
34618
|
};
|
|
34484
|
-
const config$
|
|
34485
|
-
xmlName: XML_NODE_NAME$
|
|
34619
|
+
const config$h = {
|
|
34620
|
+
xmlName: XML_NODE_NAME$i,
|
|
34486
34621
|
sdNodeOrKeyName: SD_KEY_NAME,
|
|
34487
34622
|
type: NodeTranslator.translatorTypes.NODE,
|
|
34488
|
-
encode: encode$
|
|
34489
|
-
decode: decode$
|
|
34490
|
-
attributes: validXmlAttributes$
|
|
34623
|
+
encode: encode$o,
|
|
34624
|
+
decode: decode$q,
|
|
34625
|
+
attributes: validXmlAttributes$c
|
|
34491
34626
|
};
|
|
34492
|
-
const translator$
|
|
34627
|
+
const translator$1b = NodeTranslator.from(config$h);
|
|
34493
34628
|
function preProcessVerticalMergeCells(table, { editorSchema }) {
|
|
34494
34629
|
if (!table || !Array.isArray(table.content)) {
|
|
34495
34630
|
return table;
|
|
@@ -34530,13 +34665,13 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34530
34665
|
}
|
|
34531
34666
|
return table;
|
|
34532
34667
|
}
|
|
34533
|
-
const translator$
|
|
34668
|
+
const translator$1a = NodeTranslator.from({
|
|
34534
34669
|
xmlName: "w:cantSplit",
|
|
34535
34670
|
sdNodeOrKeyName: "cantSplit",
|
|
34536
34671
|
encode: ({ nodes }) => ["1", "true"].includes(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
34537
34672
|
decode: ({ node }) => node.attrs?.cantSplit ? { attributes: {} } : void 0
|
|
34538
34673
|
});
|
|
34539
|
-
const translator$
|
|
34674
|
+
const translator$19 = NodeTranslator.from({
|
|
34540
34675
|
xmlName: "w:cnfStyle",
|
|
34541
34676
|
sdNodeOrKeyName: "cnfStyle",
|
|
34542
34677
|
attributes: [
|
|
@@ -34562,8 +34697,8 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34562
34697
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
34563
34698
|
}
|
|
34564
34699
|
});
|
|
34565
|
-
const translator$
|
|
34566
|
-
const translator$
|
|
34700
|
+
const translator$18 = NodeTranslator.from(createSingleAttrPropertyHandler("w:divId"));
|
|
34701
|
+
const translator$17 = NodeTranslator.from(
|
|
34567
34702
|
createSingleAttrPropertyHandler(
|
|
34568
34703
|
"w:gridAfter",
|
|
34569
34704
|
null,
|
|
@@ -34572,7 +34707,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34572
34707
|
(v2) => integerToString(v2)
|
|
34573
34708
|
)
|
|
34574
34709
|
);
|
|
34575
|
-
const translator$
|
|
34710
|
+
const translator$16 = NodeTranslator.from(
|
|
34576
34711
|
createSingleAttrPropertyHandler(
|
|
34577
34712
|
"w:gridBefore",
|
|
34578
34713
|
null,
|
|
@@ -34581,21 +34716,21 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34581
34716
|
(v2) => integerToString(v2)
|
|
34582
34717
|
)
|
|
34583
34718
|
);
|
|
34584
|
-
const translator$
|
|
34719
|
+
const translator$15 = NodeTranslator.from({
|
|
34585
34720
|
xmlName: "w:hidden",
|
|
34586
34721
|
sdNodeOrKeyName: "hidden",
|
|
34587
34722
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
34588
34723
|
decode: ({ node }) => node.attrs.hidden ? { attributes: {} } : void 0
|
|
34589
34724
|
});
|
|
34590
|
-
const translator$
|
|
34591
|
-
const translator$
|
|
34592
|
-
const translator$
|
|
34725
|
+
const translator$14 = NodeTranslator.from(createSingleAttrPropertyHandler("w:jc", "justification"));
|
|
34726
|
+
const translator$13 = NodeTranslator.from(createMeasurementPropertyHandler("w:tblCellSpacing", "tableCellSpacing"));
|
|
34727
|
+
const translator$12 = NodeTranslator.from({
|
|
34593
34728
|
xmlName: "w:tblHeader",
|
|
34594
34729
|
sdNodeOrKeyName: "repeatHeader",
|
|
34595
34730
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
34596
34731
|
decode: ({ node }) => node.attrs.repeatHeader ? { attributes: {} } : void 0
|
|
34597
34732
|
});
|
|
34598
|
-
const translator$
|
|
34733
|
+
const translator$11 = NodeTranslator.from({
|
|
34599
34734
|
xmlName: "w:trHeight",
|
|
34600
34735
|
sdNodeOrKeyName: "rowHeight",
|
|
34601
34736
|
encode: ({ nodes }) => {
|
|
@@ -34622,73 +34757,32 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34622
34757
|
return Object.keys(heightAttrs).length > 0 ? { attributes: heightAttrs } : void 0;
|
|
34623
34758
|
}
|
|
34624
34759
|
});
|
|
34625
|
-
const translator$
|
|
34626
|
-
const translator
|
|
34627
|
-
const
|
|
34628
|
-
|
|
34629
|
-
|
|
34630
|
-
|
|
34631
|
-
|
|
34632
|
-
|
|
34760
|
+
const translator$10 = NodeTranslator.from(createMeasurementPropertyHandler("w:wAfter"));
|
|
34761
|
+
const translator$$ = NodeTranslator.from(createMeasurementPropertyHandler("w:wBefore"));
|
|
34762
|
+
const propertyTranslators$6 = [
|
|
34763
|
+
translator$1a,
|
|
34764
|
+
translator$19,
|
|
34765
|
+
translator$18,
|
|
34766
|
+
translator$17,
|
|
34767
|
+
translator$16,
|
|
34768
|
+
translator$15,
|
|
34769
|
+
translator$14,
|
|
34770
|
+
translator$13,
|
|
34771
|
+
translator$12,
|
|
34772
|
+
translator$11,
|
|
34773
|
+
translator$10,
|
|
34774
|
+
translator$$
|
|
34775
|
+
];
|
|
34776
|
+
const translator$_ = NodeTranslator.from(
|
|
34777
|
+
createNestedPropertiesTranslator("w:trPr", "tableRowProperties", propertyTranslators$6, {
|
|
34633
34778
|
cantSplit: false,
|
|
34634
34779
|
hidden: false,
|
|
34635
34780
|
repeatHeader: false
|
|
34636
|
-
}
|
|
34637
|
-
|
|
34638
|
-
...attributes,
|
|
34639
|
-
...encodeProperties(node, propertyTranslatorsByXmlName$2)
|
|
34640
|
-
};
|
|
34641
|
-
return {
|
|
34642
|
-
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
34643
|
-
xmlName: XML_NODE_NAME$i,
|
|
34644
|
-
sdNodeOrKeyName: SD_ATTR_KEY$4,
|
|
34645
|
-
attributes
|
|
34646
|
-
};
|
|
34647
|
-
};
|
|
34648
|
-
const decode$q = (params2) => {
|
|
34649
|
-
const { tableRowProperties = {} } = params2.node.attrs || {};
|
|
34650
|
-
const elements = decodeProperties(propertyTranslatorsBySdName$2, tableRowProperties);
|
|
34651
|
-
const newNode = {
|
|
34652
|
-
name: "w:trPr",
|
|
34653
|
-
type: "element",
|
|
34654
|
-
attributes: {},
|
|
34655
|
-
elements
|
|
34656
|
-
};
|
|
34657
|
-
return newNode;
|
|
34658
|
-
};
|
|
34659
|
-
const propertyTranslators$3 = [
|
|
34660
|
-
translator$V,
|
|
34661
|
-
translator$U,
|
|
34662
|
-
translator$T,
|
|
34663
|
-
translator$S,
|
|
34664
|
-
translator$R,
|
|
34665
|
-
translator$Q,
|
|
34666
|
-
translator$P,
|
|
34667
|
-
translator$O,
|
|
34668
|
-
translator$N,
|
|
34669
|
-
translator$M,
|
|
34670
|
-
translator$L,
|
|
34671
|
-
translator$K
|
|
34672
|
-
];
|
|
34673
|
-
const propertyTranslatorsByXmlName$2 = {};
|
|
34674
|
-
propertyTranslators$3.forEach((translator2) => {
|
|
34675
|
-
propertyTranslatorsByXmlName$2[translator2.xmlName] = translator2;
|
|
34676
|
-
});
|
|
34677
|
-
const propertyTranslatorsBySdName$2 = {};
|
|
34678
|
-
propertyTranslators$3.forEach((translator2) => {
|
|
34679
|
-
propertyTranslatorsBySdName$2[translator2.sdNodeOrKeyName] = translator2;
|
|
34680
|
-
});
|
|
34681
|
-
const config$f = {
|
|
34682
|
-
xmlName: XML_NODE_NAME$i,
|
|
34683
|
-
sdNodeOrKeyName: SD_ATTR_KEY$4,
|
|
34684
|
-
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
34685
|
-
encode: encode$o,
|
|
34686
|
-
decode: decode$q
|
|
34687
|
-
};
|
|
34688
|
-
const translator$J = NodeTranslator.from(config$f);
|
|
34781
|
+
})
|
|
34782
|
+
);
|
|
34689
34783
|
const XML_NODE_NAME$h = "w:tr";
|
|
34690
34784
|
const SD_NODE_NAME$d = "tableRow";
|
|
34691
|
-
const validXmlAttributes$
|
|
34785
|
+
const validXmlAttributes$b = ["w:rsidDel", "w:rsidR", "w:rsidRPr", "w:rsidTr", "w14:paraId", "w14:textId"].map(
|
|
34692
34786
|
(xmlName) => createAttributeHandler(xmlName)
|
|
34693
34787
|
);
|
|
34694
34788
|
const encode$n = (params2, encodedAttrs) => {
|
|
@@ -34696,10 +34790,10 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34696
34790
|
let tableRowProperties = {};
|
|
34697
34791
|
const tPr = row.elements.find((el) => el.name === "w:trPr");
|
|
34698
34792
|
if (tPr) {
|
|
34699
|
-
|
|
34793
|
+
tableRowProperties = translator$_.encode({
|
|
34700
34794
|
...params2,
|
|
34701
34795
|
nodes: [tPr]
|
|
34702
|
-
})
|
|
34796
|
+
});
|
|
34703
34797
|
}
|
|
34704
34798
|
encodedAttrs["tableRowProperties"] = Object.freeze(tableRowProperties);
|
|
34705
34799
|
encodedAttrs["rowHeight"] = twipsToPixels(tableRowProperties["rowHeight"]?.value);
|
|
@@ -34709,7 +34803,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34709
34803
|
let currentColumnIndex = 0;
|
|
34710
34804
|
const content = cellNodes?.map((n) => {
|
|
34711
34805
|
let columnWidth = gridColumnWidths?.[currentColumnIndex] || null;
|
|
34712
|
-
const result = translator$
|
|
34806
|
+
const result = translator$c.encode({
|
|
34713
34807
|
...params2,
|
|
34714
34808
|
extraParams: {
|
|
34715
34809
|
...params2.extraParams,
|
|
@@ -34743,7 +34837,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34743
34837
|
}
|
|
34744
34838
|
}
|
|
34745
34839
|
tableRowProperties["cantSplit"] = node.attrs["cantSplit"];
|
|
34746
|
-
const trPr = translator$
|
|
34840
|
+
const trPr = translator$_.decode({
|
|
34747
34841
|
...params2,
|
|
34748
34842
|
node: { ...node, attrs: { ...node.attrs, tableRowProperties } }
|
|
34749
34843
|
});
|
|
@@ -34755,22 +34849,22 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34755
34849
|
elements
|
|
34756
34850
|
};
|
|
34757
34851
|
};
|
|
34758
|
-
const config$
|
|
34852
|
+
const config$g = {
|
|
34759
34853
|
xmlName: XML_NODE_NAME$h,
|
|
34760
34854
|
sdNodeOrKeyName: SD_NODE_NAME$d,
|
|
34761
34855
|
type: NodeTranslator.translatorTypes.NODE,
|
|
34762
34856
|
encode: encode$n,
|
|
34763
34857
|
decode: decode$p,
|
|
34764
|
-
attributes: validXmlAttributes$
|
|
34858
|
+
attributes: validXmlAttributes$b
|
|
34765
34859
|
};
|
|
34766
|
-
const translator$
|
|
34767
|
-
const translator$
|
|
34860
|
+
const translator$Z = NodeTranslator.from(config$g);
|
|
34861
|
+
const translator$Y = NodeTranslator.from({
|
|
34768
34862
|
xmlName: "w:bidiVisual",
|
|
34769
34863
|
sdNodeOrKeyName: "rightToLeft",
|
|
34770
34864
|
encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1"),
|
|
34771
34865
|
decode: ({ node }) => node.attrs.rightToLeft ? { attributes: {} } : void 0
|
|
34772
34866
|
});
|
|
34773
|
-
const translator$
|
|
34867
|
+
const translator$X = NodeTranslator.from({
|
|
34774
34868
|
xmlName: "w:shd",
|
|
34775
34869
|
sdNodeOrKeyName: "shading",
|
|
34776
34870
|
attributes: [
|
|
@@ -34792,11 +34886,11 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34792
34886
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
34793
34887
|
}
|
|
34794
34888
|
});
|
|
34795
|
-
const translator$
|
|
34796
|
-
const translator$
|
|
34797
|
-
const translator$
|
|
34798
|
-
const translator$
|
|
34799
|
-
const translator$
|
|
34889
|
+
const translator$W = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblCaption", "caption"));
|
|
34890
|
+
const translator$V = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblDescription", "description"));
|
|
34891
|
+
const translator$U = NodeTranslator.from(createMeasurementPropertyHandler("w:tblInd", "tableIndent"));
|
|
34892
|
+
const translator$T = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblLayout", "tableLayout", "w:type"));
|
|
34893
|
+
const translator$S = NodeTranslator.from({
|
|
34800
34894
|
xmlName: "w:tblLook",
|
|
34801
34895
|
sdNodeOrKeyName: "tblLook",
|
|
34802
34896
|
attributes: ["w:firstColumn", "w:firstRow", "w:lastColumn", "w:lastRow", "w:noHBand", "w:noVBand"].map((attr) => createAttributeHandler(attr, null, parseBoolean, booleanToString)).concat([createAttributeHandler("w:val")]),
|
|
@@ -34808,16 +34902,16 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34808
34902
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
34809
34903
|
}
|
|
34810
34904
|
});
|
|
34811
|
-
const translator$
|
|
34812
|
-
const translator$
|
|
34813
|
-
const translator$
|
|
34905
|
+
const translator$R = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblOverlap", "overlap"));
|
|
34906
|
+
const translator$Q = NodeTranslator.from(createSingleAttrPropertyHandler("w:tblStyle", "tableStyleId"));
|
|
34907
|
+
const translator$P = NodeTranslator.from(
|
|
34814
34908
|
createSingleAttrPropertyHandler("w:tblStyleColBandSize", "tableStyleColBandSize")
|
|
34815
34909
|
);
|
|
34816
|
-
const translator$
|
|
34910
|
+
const translator$O = NodeTranslator.from(
|
|
34817
34911
|
createSingleAttrPropertyHandler("w:tblStyleRowBandSize", "tableStyleRowBandSize")
|
|
34818
34912
|
);
|
|
34819
|
-
const translator$
|
|
34820
|
-
const translator$
|
|
34913
|
+
const translator$N = NodeTranslator.from(createMeasurementPropertyHandler("w:tblW", "tableWidth"));
|
|
34914
|
+
const translator$M = NodeTranslator.from({
|
|
34821
34915
|
xmlName: "w:tblpPr",
|
|
34822
34916
|
sdNodeOrKeyName: "floatingTableProperties",
|
|
34823
34917
|
attributes: ["w:leftFromText", "w:rightFromText", "w:topFromText", "w:bottomFromText", "w:tblpX", "w:tblpY"].map((attr) => createAttributeHandler(attr, null, parseInteger, integerToString)).concat(["w:horzAnchor", "w:vertAnchor", "w:tblpXSpec", "w:tblpYSpec"].map((attr) => createAttributeHandler(attr))),
|
|
@@ -34829,160 +34923,67 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
34829
34923
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
|
|
34830
34924
|
}
|
|
34831
34925
|
});
|
|
34832
|
-
const translator$
|
|
34833
|
-
const translator$
|
|
34834
|
-
const translator$
|
|
34835
|
-
const translator$
|
|
34836
|
-
const translator$
|
|
34837
|
-
const translator$
|
|
34838
|
-
const translator$
|
|
34839
|
-
const translator$
|
|
34840
|
-
const translator$
|
|
34841
|
-
const translator$
|
|
34842
|
-
const translator$
|
|
34843
|
-
const translator$
|
|
34844
|
-
const translator$
|
|
34845
|
-
const translator$
|
|
34846
|
-
const
|
|
34847
|
-
|
|
34848
|
-
|
|
34849
|
-
const { nodes } = params2;
|
|
34850
|
-
const node = nodes[0];
|
|
34851
|
-
const attributes = encodeProperties(node, tblBordersTranslatorsByXmlName);
|
|
34852
|
-
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
34853
|
-
};
|
|
34854
|
-
const decode$o = (params2) => {
|
|
34855
|
-
const { borders = {} } = params2.node.attrs || {};
|
|
34856
|
-
const elements = decodeProperties(tblBordersTranslatorsBySdName, borders);
|
|
34857
|
-
const newNode = {
|
|
34858
|
-
name: "w:tblBorders",
|
|
34859
|
-
type: "element",
|
|
34860
|
-
attributes: {},
|
|
34861
|
-
elements
|
|
34862
|
-
};
|
|
34863
|
-
return newNode;
|
|
34864
|
-
};
|
|
34865
|
-
const propertyTranslators$2 = [
|
|
34866
|
-
translator$u,
|
|
34867
|
-
translator$s,
|
|
34868
|
-
translator$q,
|
|
34869
|
-
translator$p,
|
|
34870
|
-
translator$o,
|
|
34871
|
-
translator$m,
|
|
34872
|
-
translator$k,
|
|
34873
|
-
translator$i
|
|
34874
|
-
];
|
|
34875
|
-
const tblBordersTranslatorsByXmlName = {};
|
|
34876
|
-
const tblBordersTranslatorsBySdName = {};
|
|
34877
|
-
propertyTranslators$2.forEach((translator2) => {
|
|
34878
|
-
tblBordersTranslatorsByXmlName[translator2.xmlName] = translator2;
|
|
34879
|
-
tblBordersTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
34880
|
-
});
|
|
34881
|
-
const translator$g = NodeTranslator.from({
|
|
34882
|
-
xmlName: XML_NODE_NAME$g,
|
|
34883
|
-
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
34884
|
-
type: NodeTranslator.translatorTypes.NODE,
|
|
34885
|
-
attributes: [],
|
|
34886
|
-
encode: encode$m,
|
|
34887
|
-
decode: decode$o
|
|
34888
|
-
});
|
|
34889
|
-
const XML_NODE_NAME$f = "w:tblCellMar";
|
|
34890
|
-
const SD_ATTR_KEY$2 = "cellMargins";
|
|
34891
|
-
const encode$l = (params2) => {
|
|
34892
|
-
const { nodes } = params2;
|
|
34893
|
-
const node = nodes[0];
|
|
34894
|
-
const attributes = encodeProperties(node, propertyTranslatorsByXmlName$1);
|
|
34895
|
-
return Object.keys(attributes).length > 0 ? attributes : void 0;
|
|
34896
|
-
};
|
|
34897
|
-
const decode$n = (params2) => {
|
|
34898
|
-
const { cellMargins = {} } = params2.node.attrs || {};
|
|
34899
|
-
const elements = decodeProperties(propertyTranslatorsBySdName$1, cellMargins);
|
|
34900
|
-
const newNode = {
|
|
34901
|
-
name: XML_NODE_NAME$f,
|
|
34902
|
-
type: "element",
|
|
34903
|
-
attributes: {},
|
|
34904
|
-
elements
|
|
34905
|
-
};
|
|
34906
|
-
return newNode;
|
|
34907
|
-
};
|
|
34908
|
-
const propertyTranslators$1 = [
|
|
34909
|
-
translator$t,
|
|
34910
|
-
translator$r,
|
|
34911
|
-
translator$n,
|
|
34912
|
-
translator$l,
|
|
34913
|
-
translator$j,
|
|
34914
|
-
translator$h
|
|
34915
|
-
];
|
|
34916
|
-
const propertyTranslatorsByXmlName$1 = {};
|
|
34917
|
-
const propertyTranslatorsBySdName$1 = {};
|
|
34918
|
-
propertyTranslators$1.forEach((translator2) => {
|
|
34919
|
-
propertyTranslatorsByXmlName$1[translator2.xmlName] = translator2;
|
|
34920
|
-
propertyTranslatorsBySdName$1[translator2.sdNodeOrKeyName] = translator2;
|
|
34921
|
-
});
|
|
34922
|
-
const translator$f = NodeTranslator.from({
|
|
34923
|
-
xmlName: XML_NODE_NAME$f,
|
|
34924
|
-
sdNodeOrKeyName: SD_ATTR_KEY$2,
|
|
34925
|
-
type: NodeTranslator.translatorTypes.NODE,
|
|
34926
|
-
attributes: [],
|
|
34927
|
-
encode: encode$l,
|
|
34928
|
-
decode: decode$n
|
|
34929
|
-
});
|
|
34930
|
-
const XML_NODE_NAME$e = "w:tblPr";
|
|
34931
|
-
const SD_ATTR_KEY$1 = "tableProperties";
|
|
34932
|
-
const encode$k = (params2) => {
|
|
34933
|
-
const { nodes } = params2;
|
|
34934
|
-
const node = nodes[0];
|
|
34935
|
-
const attributes = encodeProperties(node, propertyTranslatorsByXmlName);
|
|
34936
|
-
return {
|
|
34937
|
-
xmlName: XML_NODE_NAME$e,
|
|
34938
|
-
sdNodeOrKeyName: SD_ATTR_KEY$1,
|
|
34939
|
-
attributes
|
|
34940
|
-
};
|
|
34941
|
-
};
|
|
34942
|
-
const decode$m = (params2) => {
|
|
34943
|
-
const { tableProperties = {} } = params2.node.attrs || {};
|
|
34944
|
-
const elements = decodeProperties(propertyTranslatorsBySdName, tableProperties);
|
|
34945
|
-
const newNode = {
|
|
34946
|
-
name: "w:tblPr",
|
|
34947
|
-
type: "element",
|
|
34948
|
-
attributes: {},
|
|
34949
|
-
elements
|
|
34950
|
-
};
|
|
34951
|
-
return newNode;
|
|
34952
|
-
};
|
|
34953
|
-
const propertyTranslators = [
|
|
34926
|
+
const translator$L = NodeTranslator.from(createBorderPropertyHandler("w:bottom"));
|
|
34927
|
+
const translator$K = NodeTranslator.from(createMeasurementPropertyHandler("w:bottom", "marginBottom"));
|
|
34928
|
+
const translator$J = NodeTranslator.from(createBorderPropertyHandler("w:end"));
|
|
34929
|
+
const translator$I = NodeTranslator.from(createMeasurementPropertyHandler("w:end", "marginEnd"));
|
|
34930
|
+
const translator$H = NodeTranslator.from(createBorderPropertyHandler("w:insideH"));
|
|
34931
|
+
const translator$G = NodeTranslator.from(createBorderPropertyHandler("w:insideV"));
|
|
34932
|
+
const translator$F = NodeTranslator.from(createBorderPropertyHandler("w:left"));
|
|
34933
|
+
const translator$E = NodeTranslator.from(createMeasurementPropertyHandler("w:left", "marginLeft"));
|
|
34934
|
+
const translator$D = NodeTranslator.from(createBorderPropertyHandler("w:right"));
|
|
34935
|
+
const translator$C = NodeTranslator.from(createMeasurementPropertyHandler("w:right", "marginRight"));
|
|
34936
|
+
const translator$B = NodeTranslator.from(createBorderPropertyHandler("w:start"));
|
|
34937
|
+
const translator$A = NodeTranslator.from(createMeasurementPropertyHandler("w:start", "marginStart"));
|
|
34938
|
+
const translator$z = NodeTranslator.from(createBorderPropertyHandler("w:top"));
|
|
34939
|
+
const translator$y = NodeTranslator.from(createMeasurementPropertyHandler("w:top", "marginTop"));
|
|
34940
|
+
const propertyTranslators$5 = [
|
|
34941
|
+
translator$L,
|
|
34942
|
+
translator$J,
|
|
34954
34943
|
translator$H,
|
|
34955
|
-
translator$P,
|
|
34956
34944
|
translator$G,
|
|
34957
34945
|
translator$F,
|
|
34958
|
-
translator$O,
|
|
34959
|
-
translator$E,
|
|
34960
34946
|
translator$D,
|
|
34961
|
-
translator$C,
|
|
34962
34947
|
translator$B,
|
|
34948
|
+
translator$z
|
|
34949
|
+
];
|
|
34950
|
+
const translator$x = NodeTranslator.from(
|
|
34951
|
+
createNestedPropertiesTranslator("w:tblBorders", "borders", propertyTranslators$5)
|
|
34952
|
+
);
|
|
34953
|
+
const propertyTranslators$4 = [
|
|
34954
|
+
translator$K,
|
|
34955
|
+
translator$I,
|
|
34956
|
+
translator$E,
|
|
34957
|
+
translator$C,
|
|
34963
34958
|
translator$A,
|
|
34964
|
-
translator$
|
|
34965
|
-
|
|
34959
|
+
translator$y
|
|
34960
|
+
];
|
|
34961
|
+
const translator$w = NodeTranslator.from(
|
|
34962
|
+
createNestedPropertiesTranslator("w:tblCellMar", "cellMargins", propertyTranslators$4)
|
|
34963
|
+
);
|
|
34964
|
+
const propertyTranslators$3 = [
|
|
34965
|
+
translator$Y,
|
|
34966
|
+
translator$14,
|
|
34967
|
+
translator$X,
|
|
34968
|
+
translator$W,
|
|
34969
|
+
translator$13,
|
|
34970
|
+
translator$V,
|
|
34971
|
+
translator$U,
|
|
34972
|
+
translator$T,
|
|
34973
|
+
translator$S,
|
|
34974
|
+
translator$R,
|
|
34975
|
+
translator$Q,
|
|
34976
|
+
translator$P,
|
|
34977
|
+
translator$O,
|
|
34978
|
+
translator$N,
|
|
34979
|
+
translator$M,
|
|
34966
34980
|
translator$x,
|
|
34967
|
-
translator$w
|
|
34968
|
-
translator$v,
|
|
34969
|
-
translator$g,
|
|
34970
|
-
translator$f
|
|
34981
|
+
translator$w
|
|
34971
34982
|
];
|
|
34972
|
-
const
|
|
34973
|
-
|
|
34974
|
-
|
|
34975
|
-
|
|
34976
|
-
propertyTranslatorsBySdName[translator2.sdNodeOrKeyName] = translator2;
|
|
34977
|
-
});
|
|
34978
|
-
const config$d = {
|
|
34979
|
-
xmlName: XML_NODE_NAME$e,
|
|
34980
|
-
sdNodeOrKeyName: SD_ATTR_KEY$1,
|
|
34981
|
-
encode: encode$k,
|
|
34982
|
-
decode: decode$m
|
|
34983
|
-
};
|
|
34984
|
-
const translator$e = NodeTranslator.from(config$d);
|
|
34985
|
-
const translator$d = NodeTranslator.from(
|
|
34983
|
+
const translator$v = NodeTranslator.from(
|
|
34984
|
+
createNestedPropertiesTranslator("w:tblPr", "tableProperties", propertyTranslators$3)
|
|
34985
|
+
);
|
|
34986
|
+
const translator$u = NodeTranslator.from(
|
|
34986
34987
|
createSingleAttrPropertyHandler("w:gridCol", "col", "w:w", parseInteger, integerToString)
|
|
34987
34988
|
);
|
|
34988
34989
|
const DEFAULT_COLUMN_WIDTH_PX = 100;
|
|
@@ -35032,20 +35033,20 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35032
35033
|
}
|
|
35033
35034
|
return Math.max(fallbackWidthTwips, cellMinWidthTwips);
|
|
35034
35035
|
};
|
|
35035
|
-
const XML_NODE_NAME$
|
|
35036
|
-
const SD_ATTR_KEY = "grid";
|
|
35036
|
+
const XML_NODE_NAME$g = "w:tblGrid";
|
|
35037
|
+
const SD_ATTR_KEY$3 = "grid";
|
|
35037
35038
|
const cellMinWidth = pixelsToTwips(10);
|
|
35038
|
-
const encode$
|
|
35039
|
+
const encode$m = (params2) => {
|
|
35039
35040
|
const { nodes } = params2;
|
|
35040
35041
|
const node = nodes[0];
|
|
35041
|
-
const attributes = encodeProperties(node, { [translator$
|
|
35042
|
+
const attributes = encodeProperties(node, { [translator$u.xmlName]: translator$u }, true);
|
|
35042
35043
|
return {
|
|
35043
|
-
xmlName: XML_NODE_NAME$
|
|
35044
|
-
sdNodeOrKeyName: SD_ATTR_KEY,
|
|
35044
|
+
xmlName: XML_NODE_NAME$g,
|
|
35045
|
+
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
35045
35046
|
attributes
|
|
35046
35047
|
};
|
|
35047
35048
|
};
|
|
35048
|
-
const decode$
|
|
35049
|
+
const decode$o = (params2) => {
|
|
35049
35050
|
const { grid: rawGrid } = params2.node.attrs || {};
|
|
35050
35051
|
const grid = Array.isArray(rawGrid) ? rawGrid : [];
|
|
35051
35052
|
const { firstRow = {} } = params2.extraParams || {};
|
|
@@ -35064,10 +35065,10 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35064
35065
|
numericWidth = fallbackColumnWidthTwips;
|
|
35065
35066
|
}
|
|
35066
35067
|
numericWidth = Math.max(numericWidth, cellMinWidth);
|
|
35067
|
-
const decoded = translator$
|
|
35068
|
+
const decoded = translator$u.decode({
|
|
35068
35069
|
node: { type: (
|
|
35069
35070
|
/** @type {string} */
|
|
35070
|
-
translator$
|
|
35071
|
+
translator$u.sdNodeOrKeyName
|
|
35071
35072
|
), attrs: { col: numericWidth } }
|
|
35072
35073
|
});
|
|
35073
35074
|
if (decoded) elements.push(decoded);
|
|
@@ -35102,19 +35103,19 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35102
35103
|
columnIndex++;
|
|
35103
35104
|
}
|
|
35104
35105
|
const newNode = {
|
|
35105
|
-
name: XML_NODE_NAME$
|
|
35106
|
+
name: XML_NODE_NAME$g,
|
|
35106
35107
|
attributes: {},
|
|
35107
35108
|
elements
|
|
35108
35109
|
};
|
|
35109
35110
|
return newNode;
|
|
35110
35111
|
};
|
|
35111
|
-
const config$
|
|
35112
|
-
xmlName: XML_NODE_NAME$
|
|
35113
|
-
sdNodeOrKeyName: SD_ATTR_KEY,
|
|
35114
|
-
encode: encode$
|
|
35115
|
-
decode: decode$
|
|
35112
|
+
const config$f = {
|
|
35113
|
+
xmlName: XML_NODE_NAME$g,
|
|
35114
|
+
sdNodeOrKeyName: SD_ATTR_KEY$3,
|
|
35115
|
+
encode: encode$m,
|
|
35116
|
+
decode: decode$o
|
|
35116
35117
|
};
|
|
35117
|
-
const translator$
|
|
35118
|
+
const translator$t = NodeTranslator.from(config$f);
|
|
35118
35119
|
const DEFAULT_PAGE_WIDTH_TWIPS = 12240;
|
|
35119
35120
|
const DEFAULT_PAGE_MARGIN_TWIPS = 1440;
|
|
35120
35121
|
const DEFAULT_CONTENT_WIDTH_TWIPS = DEFAULT_PAGE_WIDTH_TWIPS - 2 * DEFAULT_PAGE_MARGIN_TWIPS;
|
|
@@ -35177,19 +35178,19 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35177
35178
|
columnWidths: Array(columnCount).fill(fallbackColumnWidthPx)
|
|
35178
35179
|
};
|
|
35179
35180
|
};
|
|
35180
|
-
const XML_NODE_NAME$
|
|
35181
|
+
const XML_NODE_NAME$f = "w:tbl";
|
|
35181
35182
|
const SD_NODE_NAME$c = "table";
|
|
35182
|
-
const encode$
|
|
35183
|
+
const encode$l = (params2, encodedAttrs) => {
|
|
35183
35184
|
const { nodes } = params2;
|
|
35184
35185
|
const node = nodes[0];
|
|
35185
35186
|
const tblPr = node.elements.find((el) => el.name === "w:tblPr");
|
|
35186
35187
|
if (tblPr) {
|
|
35187
|
-
const encodedProperties = translator$
|
|
35188
|
-
encodedAttrs["tableProperties"] = encodedProperties
|
|
35188
|
+
const encodedProperties = translator$v.encode({ ...params2, nodes: [tblPr] });
|
|
35189
|
+
encodedAttrs["tableProperties"] = encodedProperties || {};
|
|
35189
35190
|
}
|
|
35190
35191
|
const tblGrid = node.elements.find((el) => el.name === "w:tblGrid");
|
|
35191
35192
|
if (tblGrid) {
|
|
35192
|
-
encodedAttrs["grid"] = translator$
|
|
35193
|
+
encodedAttrs["grid"] = translator$t.encode({ ...params2, nodes: [tblGrid] }).attributes;
|
|
35193
35194
|
}
|
|
35194
35195
|
[
|
|
35195
35196
|
"tableStyleId",
|
|
@@ -35256,7 +35257,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35256
35257
|
}
|
|
35257
35258
|
const content = [];
|
|
35258
35259
|
rows.forEach((row) => {
|
|
35259
|
-
const result = translator$
|
|
35260
|
+
const result = translator$Z.encode({
|
|
35260
35261
|
...params2,
|
|
35261
35262
|
nodes: [row],
|
|
35262
35263
|
extraParams: {
|
|
@@ -35275,13 +35276,13 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35275
35276
|
attrs: encodedAttrs
|
|
35276
35277
|
};
|
|
35277
35278
|
};
|
|
35278
|
-
const decode$
|
|
35279
|
+
const decode$n = (params2, decodedAttrs) => {
|
|
35279
35280
|
params2.node = preProcessVerticalMergeCells(params2.node, params2);
|
|
35280
35281
|
const { node } = params2;
|
|
35281
35282
|
const elements = translateChildNodes(params2);
|
|
35282
35283
|
const firstRow = node.content?.find((n) => n.type === "tableRow");
|
|
35283
35284
|
const properties = node.attrs.grid;
|
|
35284
|
-
const element = translator$
|
|
35285
|
+
const element = translator$t.decode({
|
|
35285
35286
|
...params2,
|
|
35286
35287
|
node: { ...node, attrs: { ...node.attrs, grid: properties } },
|
|
35287
35288
|
extraParams: {
|
|
@@ -35291,7 +35292,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35291
35292
|
if (element) elements.unshift(element);
|
|
35292
35293
|
if (node.attrs?.tableProperties) {
|
|
35293
35294
|
const properties2 = { ...node.attrs.tableProperties };
|
|
35294
|
-
const element2 = translator$
|
|
35295
|
+
const element2 = translator$v.decode({
|
|
35295
35296
|
...params2,
|
|
35296
35297
|
node: { ...node, attrs: { ...node.attrs, tableProperties: properties2 } }
|
|
35297
35298
|
});
|
|
@@ -35311,7 +35312,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35311
35312
|
const color = attributes.color;
|
|
35312
35313
|
const size2 = attributes.size;
|
|
35313
35314
|
if (color && color !== "auto") attrs["color"] = color.startsWith("#") ? color : `#${color}`;
|
|
35314
|
-
if (size2 && size2 !== "auto") attrs["size"] =
|
|
35315
|
+
if (size2 && size2 !== "auto") attrs["size"] = eighthPointsToPixels(size2);
|
|
35315
35316
|
const rowBorderNames = ["insideH", "insideV"];
|
|
35316
35317
|
if (rowBorderNames.includes(name)) rowBorders[name] = attrs;
|
|
35317
35318
|
borders[name] = attrs;
|
|
@@ -35357,7 +35358,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35357
35358
|
if (baseTblPr && baseTblPr.elements) {
|
|
35358
35359
|
tblPr.elements.push(...baseTblPr.elements);
|
|
35359
35360
|
}
|
|
35360
|
-
const tableProperties = translator$
|
|
35361
|
+
const tableProperties = translator$v.encode({ ...params2, nodes: [tblPr] });
|
|
35361
35362
|
const { borders, rowBorders } = _processTableBorders(tableProperties.borders || {});
|
|
35362
35363
|
if (borders) stylesToReturn.borders = borders;
|
|
35363
35364
|
if (rowBorders) stylesToReturn.rowBorders = rowBorders;
|
|
@@ -35374,16 +35375,16 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35374
35375
|
}
|
|
35375
35376
|
return stylesToReturn;
|
|
35376
35377
|
}
|
|
35377
|
-
const config$
|
|
35378
|
-
xmlName: XML_NODE_NAME$
|
|
35378
|
+
const config$e = {
|
|
35379
|
+
xmlName: XML_NODE_NAME$f,
|
|
35379
35380
|
sdNodeOrKeyName: SD_NODE_NAME$c,
|
|
35380
35381
|
type: NodeTranslator.translatorTypes.NODE,
|
|
35381
|
-
encode: encode$
|
|
35382
|
-
decode: decode$
|
|
35382
|
+
encode: encode$l,
|
|
35383
|
+
decode: decode$n,
|
|
35383
35384
|
attributes: []
|
|
35384
35385
|
};
|
|
35385
|
-
const translator$
|
|
35386
|
-
const tableNodeHandlerEntity = generateV2HandlerEntity("tableNodeHandler", translator$
|
|
35386
|
+
const translator$s = NodeTranslator.from(config$e);
|
|
35387
|
+
const tableNodeHandlerEntity = generateV2HandlerEntity("tableNodeHandler", translator$s);
|
|
35387
35388
|
function getReferencedTableStyles(tblStyleTag, docx) {
|
|
35388
35389
|
if (!tblStyleTag) return null;
|
|
35389
35390
|
const stylesToReturn = {};
|
|
@@ -35454,7 +35455,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35454
35455
|
const color = attributes["w:color"];
|
|
35455
35456
|
const size2 = attributes["w:sz"];
|
|
35456
35457
|
if (color && color !== "auto") attrs["color"] = color.startsWith("#") ? color : `#${color}`;
|
|
35457
|
-
if (size2 && size2 !== "auto") attrs["size"] =
|
|
35458
|
+
if (size2 && size2 !== "auto") attrs["size"] = eighthPointsToPixels(size2);
|
|
35458
35459
|
const rowBorderNames = ["insideH", "insideV"];
|
|
35459
35460
|
if (rowBorderNames.includes(borderName)) rowBorders[borderName] = attrs;
|
|
35460
35461
|
borders[borderName] = attrs;
|
|
@@ -35464,6 +35465,125 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35464
35465
|
rowBorders
|
|
35465
35466
|
};
|
|
35466
35467
|
}
|
|
35468
|
+
const translator$r = NodeTranslator.from(createMeasurementPropertyHandler("w:tcW", "cellWidth"));
|
|
35469
|
+
const translator$q = NodeTranslator.from(
|
|
35470
|
+
createSingleAttrPropertyHandler(
|
|
35471
|
+
"w:gridSpan",
|
|
35472
|
+
null,
|
|
35473
|
+
"w:val",
|
|
35474
|
+
(v2) => parseInteger(v2) ?? void 0,
|
|
35475
|
+
(v2) => integerToString(v2)
|
|
35476
|
+
)
|
|
35477
|
+
);
|
|
35478
|
+
const translator$p = NodeTranslator.from(createSingleAttrPropertyHandler("w:vMerge"));
|
|
35479
|
+
const translator$o = NodeTranslator.from(createBorderPropertyHandler("w:tl2br"));
|
|
35480
|
+
const translator$n = NodeTranslator.from(createBorderPropertyHandler("w:tr2bl"));
|
|
35481
|
+
const propertyTranslators$2 = [
|
|
35482
|
+
translator$z,
|
|
35483
|
+
translator$B,
|
|
35484
|
+
translator$F,
|
|
35485
|
+
translator$L,
|
|
35486
|
+
translator$J,
|
|
35487
|
+
translator$D,
|
|
35488
|
+
translator$H,
|
|
35489
|
+
translator$G,
|
|
35490
|
+
translator$o,
|
|
35491
|
+
translator$n
|
|
35492
|
+
];
|
|
35493
|
+
const translator$m = NodeTranslator.from(
|
|
35494
|
+
createNestedPropertiesTranslator("w:tcBorders", "borders", propertyTranslators$2)
|
|
35495
|
+
);
|
|
35496
|
+
const translator$l = NodeTranslator.from(
|
|
35497
|
+
createSingleAttrPropertyHandler(
|
|
35498
|
+
"w:noWrap",
|
|
35499
|
+
null,
|
|
35500
|
+
"w:val",
|
|
35501
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
35502
|
+
(v2) => booleanToString(v2)
|
|
35503
|
+
)
|
|
35504
|
+
);
|
|
35505
|
+
const propertyTranslators$1 = [
|
|
35506
|
+
translator$K,
|
|
35507
|
+
translator$I,
|
|
35508
|
+
translator$E,
|
|
35509
|
+
translator$C,
|
|
35510
|
+
translator$A,
|
|
35511
|
+
translator$y
|
|
35512
|
+
];
|
|
35513
|
+
const translator$k = NodeTranslator.from(
|
|
35514
|
+
createNestedPropertiesTranslator("w:tcMar", "cellMargins", propertyTranslators$1)
|
|
35515
|
+
);
|
|
35516
|
+
const translator$j = NodeTranslator.from(createSingleAttrPropertyHandler("w:textDirection"));
|
|
35517
|
+
const translator$i = NodeTranslator.from(
|
|
35518
|
+
createSingleAttrPropertyHandler(
|
|
35519
|
+
"w:tcFitText",
|
|
35520
|
+
null,
|
|
35521
|
+
"w:val",
|
|
35522
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
35523
|
+
(v2) => booleanToString(v2)
|
|
35524
|
+
)
|
|
35525
|
+
);
|
|
35526
|
+
const translator$h = NodeTranslator.from(createSingleAttrPropertyHandler("w:vAlign"));
|
|
35527
|
+
const translator$g = NodeTranslator.from(
|
|
35528
|
+
createSingleAttrPropertyHandler(
|
|
35529
|
+
"w:hideMark",
|
|
35530
|
+
null,
|
|
35531
|
+
"w:val",
|
|
35532
|
+
(v2) => parseBoolean(v2 ?? "true"),
|
|
35533
|
+
(v2) => booleanToString(v2)
|
|
35534
|
+
)
|
|
35535
|
+
);
|
|
35536
|
+
const translator$f = NodeTranslator.from(createSingleAttrPropertyHandler("w:header"));
|
|
35537
|
+
const XML_NODE_NAME$e = "w:headers";
|
|
35538
|
+
const SD_ATTR_KEY$2 = "headers";
|
|
35539
|
+
const encode$k = (params2) => {
|
|
35540
|
+
const { nodes } = params2;
|
|
35541
|
+
const node = nodes[0];
|
|
35542
|
+
const attributes = encodeProperties(node, { [translator$f.xmlName]: translator$f }, true);
|
|
35543
|
+
return {
|
|
35544
|
+
xmlName: XML_NODE_NAME$e,
|
|
35545
|
+
sdNodeOrKeyName: SD_ATTR_KEY$2,
|
|
35546
|
+
attributes
|
|
35547
|
+
};
|
|
35548
|
+
};
|
|
35549
|
+
const decode$m = (params2) => {
|
|
35550
|
+
const { headers = [] } = params2.node.attrs || {};
|
|
35551
|
+
const newNode = {
|
|
35552
|
+
name: XML_NODE_NAME$e,
|
|
35553
|
+
attributes: {},
|
|
35554
|
+
elements: headers.map(
|
|
35555
|
+
(header) => translator$f.decode({
|
|
35556
|
+
node: { type: "header", attrs: header }
|
|
35557
|
+
})
|
|
35558
|
+
)
|
|
35559
|
+
};
|
|
35560
|
+
return newNode;
|
|
35561
|
+
};
|
|
35562
|
+
const config$d = {
|
|
35563
|
+
xmlName: XML_NODE_NAME$e,
|
|
35564
|
+
sdNodeOrKeyName: SD_ATTR_KEY$2,
|
|
35565
|
+
encode: encode$k,
|
|
35566
|
+
decode: decode$m
|
|
35567
|
+
};
|
|
35568
|
+
const translator$e = NodeTranslator.from(config$d);
|
|
35569
|
+
const propertyTranslators = [
|
|
35570
|
+
translator$19,
|
|
35571
|
+
translator$r,
|
|
35572
|
+
translator$q,
|
|
35573
|
+
translator$p,
|
|
35574
|
+
translator$m,
|
|
35575
|
+
translator$X,
|
|
35576
|
+
translator$l,
|
|
35577
|
+
translator$k,
|
|
35578
|
+
translator$j,
|
|
35579
|
+
translator$i,
|
|
35580
|
+
translator$h,
|
|
35581
|
+
translator$g,
|
|
35582
|
+
translator$e
|
|
35583
|
+
];
|
|
35584
|
+
const translator$d = NodeTranslator.from(
|
|
35585
|
+
createNestedPropertiesTranslator("w:tcPr", "tableCellProperties", propertyTranslators)
|
|
35586
|
+
);
|
|
35467
35587
|
function handleTableCellNode({
|
|
35468
35588
|
params: params2,
|
|
35469
35589
|
node,
|
|
@@ -35476,8 +35596,10 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35476
35596
|
allColumnWidths = []
|
|
35477
35597
|
}) {
|
|
35478
35598
|
const { docx, nodeListHandler } = params2;
|
|
35599
|
+
const attributes = {};
|
|
35479
35600
|
const tcPr = node.elements.find((el) => el.name === "w:tcPr");
|
|
35480
|
-
const
|
|
35601
|
+
const tableCellProperties = tcPr ? translator$d.encode({ ...params2, nodes: [tcPr] }) ?? {} : {};
|
|
35602
|
+
attributes["tableCellProperties"] = tableCellProperties;
|
|
35481
35603
|
if (rowBorders?.insideH) {
|
|
35482
35604
|
rowBorders["bottom"] = rowBorders.insideH;
|
|
35483
35605
|
delete rowBorders.insideH;
|
|
@@ -35486,33 +35608,20 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35486
35608
|
rowBorders["right"] = rowBorders.insideV;
|
|
35487
35609
|
delete rowBorders?.insideV;
|
|
35488
35610
|
}
|
|
35489
|
-
|
|
35490
|
-
const
|
|
35491
|
-
|
|
35492
|
-
|
|
35493
|
-
|
|
35611
|
+
if (rowBorders) attributes["borders"] = { ...rowBorders };
|
|
35612
|
+
const inlineBorders = processInlineCellBorders(tableCellProperties.borders, rowBorders);
|
|
35613
|
+
if (inlineBorders) attributes["borders"] = Object.assign(attributes["borders"] || {}, inlineBorders);
|
|
35614
|
+
const colspan = tableCellProperties.gridSpan;
|
|
35615
|
+
if (colspan && !isNaN(parseInt(colspan, 10))) attributes["colspan"] = parseInt(colspan, 10);
|
|
35616
|
+
let width = tableCellProperties.cellWidth?.value ? twipsToPixels(tableCellProperties.cellWidth?.value) : null;
|
|
35617
|
+
const widthType = tableCellProperties.cellWidth?.type;
|
|
35618
|
+
if (widthType) attributes["widthType"] = widthType;
|
|
35494
35619
|
if (!width && columnWidth) width = columnWidth;
|
|
35495
|
-
const vMerge = getTableCellMergeTag(node);
|
|
35496
|
-
const { attributes: vMergeAttrs } = vMerge || {};
|
|
35497
|
-
const backgroundColor = tcPr?.elements?.find((el) => el.name === "w:shd");
|
|
35498
|
-
const background = {
|
|
35499
|
-
color: backgroundColor?.attributes["w:fill"]
|
|
35500
|
-
};
|
|
35501
|
-
const colspanTag = tcPr?.elements?.find((el) => el.name === "w:gridSpan");
|
|
35502
|
-
const colspan = colspanTag?.attributes["w:val"];
|
|
35503
|
-
const marginTag = tcPr?.elements?.find((el) => el.name === "w:tcMar");
|
|
35504
|
-
const verticalAlignTag = tcPr?.elements?.find((el) => el.name === "w:vAlign");
|
|
35505
|
-
const verticalAlign = verticalAlignTag?.attributes["w:val"] || "top";
|
|
35506
|
-
const attributes = {};
|
|
35507
|
-
const referencedStyles = getReferencedTableStyles(styleTag, docx) || {};
|
|
35508
|
-
attributes.cellMargins = getTableCellMargins(marginTag, referencedStyles);
|
|
35509
|
-
const { fontSize: fontSize2, fonts = {} } = referencedStyles;
|
|
35510
|
-
const fontFamily2 = fonts["ascii"];
|
|
35511
35620
|
if (width) {
|
|
35512
35621
|
attributes["colwidth"] = [width];
|
|
35513
35622
|
attributes["widthUnit"] = "px";
|
|
35514
|
-
const defaultColWidths =
|
|
35515
|
-
const hasDefaultColWidths =
|
|
35623
|
+
const defaultColWidths = allColumnWidths;
|
|
35624
|
+
const hasDefaultColWidths = allColumnWidths && allColumnWidths.length > 0;
|
|
35516
35625
|
const colspanNum = parseInt(colspan || 1, 10);
|
|
35517
35626
|
if (colspanNum && colspanNum > 1 && hasDefaultColWidths) {
|
|
35518
35627
|
let colwidth = [];
|
|
@@ -35530,15 +35639,19 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35530
35639
|
}
|
|
35531
35640
|
}
|
|
35532
35641
|
}
|
|
35533
|
-
|
|
35534
|
-
|
|
35535
|
-
|
|
35536
|
-
attributes["
|
|
35642
|
+
const background = {
|
|
35643
|
+
color: tableCellProperties.shading?.fill
|
|
35644
|
+
};
|
|
35645
|
+
if (background.color) attributes["background"] = background;
|
|
35646
|
+
const verticalAlign = tableCellProperties.vAlign;
|
|
35647
|
+
if (verticalAlign) attributes["verticalAlign"] = verticalAlign;
|
|
35648
|
+
const referencedStyles = getReferencedTableStyles(styleTag, docx) || { fontSize: null, fonts: {}, cellMargins: {} };
|
|
35649
|
+
attributes.cellMargins = getTableCellMargins(tableCellProperties.cellMargins, referencedStyles);
|
|
35650
|
+
const { fontSize: fontSize2, fonts = {} } = referencedStyles;
|
|
35651
|
+
const fontFamily2 = fonts["ascii"];
|
|
35537
35652
|
if (fontSize2) attributes["fontSize"] = fontSize2;
|
|
35538
|
-
if (fontFamily2) attributes["fontFamily"] = fontFamily2
|
|
35539
|
-
if (
|
|
35540
|
-
if (inlineBorders) attributes["borders"] = Object.assign(attributes["borders"] || {}, inlineBorders);
|
|
35541
|
-
if (vMergeAttrs && vMergeAttrs["w:val"] === "restart") {
|
|
35653
|
+
if (fontFamily2) attributes["fontFamily"] = fontFamily2;
|
|
35654
|
+
if (tableCellProperties.vMerge === "restart") {
|
|
35542
35655
|
const rows = table.elements.filter((el) => el.name === "w:tr");
|
|
35543
35656
|
const currentRowIndex = rows.findIndex((r2) => r2 === row);
|
|
35544
35657
|
const remainingRows = rows.slice(currentRowIndex + 1);
|
|
@@ -35549,9 +35662,8 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35549
35662
|
const firstCell = remainingRow.elements.findIndex((el) => el.name === "w:tc");
|
|
35550
35663
|
const cellAtIndex = remainingRow.elements[firstCell + cellIndex];
|
|
35551
35664
|
if (!cellAtIndex) break;
|
|
35552
|
-
const
|
|
35553
|
-
|
|
35554
|
-
if (!vMerge2 && !currentCellMergeAttrs || currentCellMergeAttrs && currentCellMergeAttrs["w:val"] === "restart") {
|
|
35665
|
+
const vMerge = getTableCellVMerge(cellAtIndex);
|
|
35666
|
+
if (!vMerge || vMerge === "restart") {
|
|
35555
35667
|
break;
|
|
35556
35668
|
}
|
|
35557
35669
|
rowspan++;
|
|
@@ -35571,69 +35683,52 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35571
35683
|
}
|
|
35572
35684
|
const processInlineCellBorders = (borders, rowBorders) => {
|
|
35573
35685
|
if (!borders) return null;
|
|
35574
|
-
|
|
35575
|
-
|
|
35576
|
-
|
|
35577
|
-
|
|
35578
|
-
|
|
35579
|
-
|
|
35580
|
-
|
|
35581
|
-
|
|
35582
|
-
|
|
35583
|
-
|
|
35584
|
-
|
|
35585
|
-
|
|
35586
|
-
|
|
35587
|
-
|
|
35588
|
-
|
|
35589
|
-
|
|
35590
|
-
|
|
35591
|
-
|
|
35592
|
-
|
|
35593
|
-
|
|
35594
|
-
|
|
35595
|
-
|
|
35596
|
-
const border = Object.assign({}, rowBorders[direction] || {});
|
|
35597
|
-
if (!Object.keys(border)) return null;
|
|
35598
|
-
border["val"] = "none";
|
|
35599
|
-
return border;
|
|
35600
|
-
}
|
|
35601
|
-
return null;
|
|
35686
|
+
return ["bottom", "top", "left", "right"].reduce((acc, direction) => {
|
|
35687
|
+
const borderAttrs = borders[direction];
|
|
35688
|
+
const rowBorderAttrs = rowBorders[direction];
|
|
35689
|
+
if (borderAttrs && borderAttrs["val"] !== "nil") {
|
|
35690
|
+
const color = borderAttrs["color"];
|
|
35691
|
+
let size2 = borderAttrs["size"];
|
|
35692
|
+
if (size2) size2 = eighthPointsToPixels(size2);
|
|
35693
|
+
acc[direction] = { color, size: size2, val: borderAttrs["val"] };
|
|
35694
|
+
return acc;
|
|
35695
|
+
}
|
|
35696
|
+
if (borderAttrs && borderAttrs["val"] === "nil") {
|
|
35697
|
+
const border = Object.assign({}, rowBorderAttrs || {});
|
|
35698
|
+
if (!Object.keys(border).length) {
|
|
35699
|
+
return acc;
|
|
35700
|
+
} else {
|
|
35701
|
+
border["val"] = "none";
|
|
35702
|
+
acc[direction] = border;
|
|
35703
|
+
return acc;
|
|
35704
|
+
}
|
|
35705
|
+
}
|
|
35706
|
+
return acc;
|
|
35707
|
+
}, {});
|
|
35602
35708
|
};
|
|
35603
|
-
const
|
|
35709
|
+
const getTableCellVMerge = (node) => {
|
|
35604
35710
|
const tcPr = node.elements.find((el) => el.name === "w:tcPr");
|
|
35605
35711
|
const vMerge = tcPr?.elements?.find((el) => el.name === "w:vMerge");
|
|
35606
|
-
return
|
|
35607
|
-
|
|
35608
|
-
|
|
35609
|
-
|
|
35610
|
-
const inlineMarginRightTag = marginTag?.elements?.find((el) => el.name === "w:right");
|
|
35611
|
-
const inlineMarginTopTag = marginTag?.elements?.find((el) => el.name === "w:top");
|
|
35612
|
-
const inlineMarginBottomTag = marginTag?.elements?.find((el) => el.name === "w:bottom");
|
|
35613
|
-
const inlineMarginLeftValue = inlineMarginLeftTag?.attributes["w:w"];
|
|
35614
|
-
const inlineMarginRightValue = inlineMarginRightTag?.attributes["w:w"];
|
|
35615
|
-
const inlineMarginTopValue = inlineMarginTopTag?.attributes["w:w"];
|
|
35616
|
-
const inlineMarginBottomValue = inlineMarginBottomTag?.attributes["w:w"];
|
|
35712
|
+
if (!vMerge) return null;
|
|
35713
|
+
return vMerge.attributes?.["w:val"] || "continue";
|
|
35714
|
+
};
|
|
35715
|
+
const getTableCellMargins = (inlineMargins, referencedStyles) => {
|
|
35617
35716
|
const { cellMargins = {} } = referencedStyles;
|
|
35618
|
-
|
|
35619
|
-
|
|
35620
|
-
|
|
35621
|
-
|
|
35622
|
-
|
|
35623
|
-
|
|
35624
|
-
|
|
35625
|
-
|
|
35626
|
-
if (styleValue
|
|
35627
|
-
|
|
35628
|
-
|
|
35629
|
-
|
|
35630
|
-
|
|
35631
|
-
|
|
35632
|
-
|
|
35633
|
-
top: twipsToPixels(resolveMargin(inlineMarginTopValue, marginTopStyle)),
|
|
35634
|
-
bottom: twipsToPixels(resolveMargin(inlineMarginBottomValue, marginBottomStyle))
|
|
35635
|
-
};
|
|
35636
|
-
return margins;
|
|
35717
|
+
return ["left", "right", "top", "bottom"].reduce((acc, direction) => {
|
|
35718
|
+
const key2 = `margin${direction.charAt(0).toUpperCase() + direction.slice(1)}`;
|
|
35719
|
+
const inlineValue = inlineMargins ? inlineMargins?.[key2]?.value : null;
|
|
35720
|
+
const styleValue = cellMargins ? cellMargins[key2] : null;
|
|
35721
|
+
if (inlineValue != null) {
|
|
35722
|
+
acc[direction] = twipsToPixels(inlineValue);
|
|
35723
|
+
} else if (styleValue == null) {
|
|
35724
|
+
acc[direction] = void 0;
|
|
35725
|
+
} else if (typeof styleValue === "object") {
|
|
35726
|
+
acc[direction] = twipsToPixels(styleValue.value);
|
|
35727
|
+
} else {
|
|
35728
|
+
acc[direction] = twipsToPixels(styleValue);
|
|
35729
|
+
}
|
|
35730
|
+
return acc;
|
|
35731
|
+
}, {});
|
|
35637
35732
|
};
|
|
35638
35733
|
function translateTableCell(params2) {
|
|
35639
35734
|
const elements = translateChildNodes({
|
|
@@ -35648,107 +35743,91 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35648
35743
|
};
|
|
35649
35744
|
}
|
|
35650
35745
|
function generateTableCellProperties(node) {
|
|
35651
|
-
const
|
|
35746
|
+
const tableCellProperties = { ...node.attrs?.tableCellProperties || {} };
|
|
35652
35747
|
const { attrs } = node;
|
|
35653
|
-
const { colwidth = [], cellWidthType = "dxa",
|
|
35748
|
+
const { colwidth = [], cellWidthType = "dxa", widthUnit } = attrs;
|
|
35654
35749
|
const colwidthSum = colwidth.reduce((acc, curr) => acc + curr, 0);
|
|
35655
|
-
const
|
|
35656
|
-
|
|
35657
|
-
|
|
35658
|
-
|
|
35659
|
-
|
|
35660
|
-
}
|
|
35661
|
-
};
|
|
35662
|
-
elements.push(cellWidthElement);
|
|
35663
|
-
if (colspan) {
|
|
35664
|
-
const gridSpanElement = {
|
|
35665
|
-
name: "w:gridSpan",
|
|
35666
|
-
attributes: { "w:val": `${colspan}` }
|
|
35750
|
+
const propertiesWidthPixels = twipsToPixels(tableCellProperties.cellWidth?.value);
|
|
35751
|
+
if (propertiesWidthPixels !== colwidthSum) {
|
|
35752
|
+
tableCellProperties["cellWidth"] = {
|
|
35753
|
+
value: widthUnit === "px" ? pixelsToTwips(colwidthSum) : inchesToTwips(colwidthSum),
|
|
35754
|
+
type: cellWidthType
|
|
35667
35755
|
};
|
|
35668
|
-
elements.push(gridSpanElement);
|
|
35669
35756
|
}
|
|
35670
|
-
const {
|
|
35671
|
-
if (
|
|
35672
|
-
|
|
35673
|
-
|
|
35674
|
-
|
|
35675
|
-
|
|
35676
|
-
|
|
35757
|
+
const { colspan } = attrs;
|
|
35758
|
+
if (colspan > 1 && tableCellProperties.gridSpan !== colspan) {
|
|
35759
|
+
tableCellProperties["gridSpan"] = colspan;
|
|
35760
|
+
} else if (!colspan || tableCellProperties?.gridSpan === 1) {
|
|
35761
|
+
delete tableCellProperties.gridSpan;
|
|
35762
|
+
}
|
|
35763
|
+
const { background = {} } = attrs;
|
|
35764
|
+
if (background?.color && tableCellProperties.shading?.fill !== background?.color) {
|
|
35765
|
+
tableCellProperties["shading"] = { fill: background.color };
|
|
35766
|
+
} else if (!background?.color && tableCellProperties?.shading?.fill) {
|
|
35767
|
+
delete tableCellProperties.shading;
|
|
35677
35768
|
}
|
|
35678
35769
|
const { cellMargins } = attrs;
|
|
35679
35770
|
if (cellMargins) {
|
|
35680
|
-
|
|
35681
|
-
|
|
35682
|
-
|
|
35683
|
-
|
|
35684
|
-
|
|
35771
|
+
["left", "right", "top", "bottom"].forEach((side) => {
|
|
35772
|
+
const key2 = `margin${side.charAt(0).toUpperCase() + side.slice(1)}`;
|
|
35773
|
+
if (cellMargins[side] != null) {
|
|
35774
|
+
if (!tableCellProperties.cellMargins) tableCellProperties["cellMargins"] = {};
|
|
35775
|
+
let currentPropertyValuePixels = twipsToPixels(tableCellProperties.cellMargins?.[key2]?.value);
|
|
35776
|
+
if (currentPropertyValuePixels !== cellMargins[side]) {
|
|
35777
|
+
tableCellProperties.cellMargins[key2] = { value: pixelsToTwips(cellMargins[side]), type: "dxa" };
|
|
35778
|
+
}
|
|
35779
|
+
} else if (tableCellProperties?.cellMargins?.[key2]) {
|
|
35780
|
+
delete tableCellProperties.cellMargins[key2];
|
|
35781
|
+
}
|
|
35782
|
+
});
|
|
35685
35783
|
}
|
|
35686
35784
|
const { verticalAlign } = attrs;
|
|
35687
|
-
if (verticalAlign) {
|
|
35688
|
-
|
|
35689
|
-
|
|
35690
|
-
|
|
35691
|
-
|
|
35692
|
-
|
|
35693
|
-
|
|
35694
|
-
|
|
35695
|
-
const vMergeElement = {
|
|
35696
|
-
name: "w:vMerge",
|
|
35697
|
-
type: "element",
|
|
35698
|
-
attributes: { "w:val": "restart" }
|
|
35699
|
-
};
|
|
35700
|
-
elements.push(vMergeElement);
|
|
35785
|
+
if (verticalAlign && verticalAlign !== tableCellProperties.vAlign) {
|
|
35786
|
+
tableCellProperties["vAlign"] = verticalAlign;
|
|
35787
|
+
} else if (!verticalAlign && tableCellProperties?.vAlign) {
|
|
35788
|
+
delete tableCellProperties.vAlign;
|
|
35789
|
+
}
|
|
35790
|
+
const { rowspan } = attrs;
|
|
35791
|
+
if (rowspan && rowspan > 1 && tableCellProperties.vMerge !== "restart") {
|
|
35792
|
+
tableCellProperties["vMerge"] = "restart";
|
|
35701
35793
|
} else if (attrs.continueMerge) {
|
|
35702
|
-
|
|
35703
|
-
|
|
35704
|
-
|
|
35705
|
-
};
|
|
35706
|
-
elements.push(vMergeElement);
|
|
35794
|
+
tableCellProperties["vMerge"] = "continue";
|
|
35795
|
+
} else if (tableCellProperties?.vMerge) {
|
|
35796
|
+
delete tableCellProperties.vMerge;
|
|
35707
35797
|
}
|
|
35708
35798
|
const { borders = {} } = attrs;
|
|
35709
35799
|
if (!!borders && Object.keys(borders).length) {
|
|
35710
|
-
|
|
35711
|
-
|
|
35712
|
-
|
|
35713
|
-
|
|
35714
|
-
|
|
35715
|
-
|
|
35716
|
-
|
|
35717
|
-
|
|
35718
|
-
|
|
35800
|
+
["top", "bottom", "left", "right"].forEach((side) => {
|
|
35801
|
+
if (borders[side]) {
|
|
35802
|
+
let currentPropertyValue = tableCellProperties.borders?.[side];
|
|
35803
|
+
let currentPropertySizePixels = eighthPointsToPixels(currentPropertyValue?.size);
|
|
35804
|
+
let color = borders[side].color;
|
|
35805
|
+
if (borders[side].color && color === "#000000") {
|
|
35806
|
+
color = "auto";
|
|
35807
|
+
}
|
|
35808
|
+
if (currentPropertySizePixels !== borders[side].size || currentPropertyValue?.color !== color || borders[side].val !== currentPropertyValue?.val) {
|
|
35809
|
+
if (!tableCellProperties.borders) tableCellProperties["borders"] = {};
|
|
35810
|
+
tableCellProperties.borders[side] = {
|
|
35811
|
+
size: pixelsToEightPoints(borders[side].size || 0),
|
|
35812
|
+
color,
|
|
35813
|
+
space: borders[side].space || 0,
|
|
35814
|
+
val: borders[side].val || "single"
|
|
35719
35815
|
};
|
|
35720
35816
|
}
|
|
35721
|
-
|
|
35722
|
-
|
|
35723
|
-
|
|
35724
|
-
|
|
35725
|
-
|
|
35726
|
-
|
|
35727
|
-
"w:space": value.space || 0
|
|
35728
|
-
}
|
|
35729
|
-
};
|
|
35730
|
-
})
|
|
35731
|
-
};
|
|
35732
|
-
elements.push(cellBordersElement);
|
|
35817
|
+
} else if (tableCellProperties.borders?.[side]) {
|
|
35818
|
+
delete tableCellProperties.borders[side];
|
|
35819
|
+
}
|
|
35820
|
+
});
|
|
35821
|
+
} else if (tableCellProperties?.borders) {
|
|
35822
|
+
delete tableCellProperties.borders;
|
|
35733
35823
|
}
|
|
35734
|
-
|
|
35735
|
-
|
|
35736
|
-
elements
|
|
35737
|
-
};
|
|
35738
|
-
}
|
|
35739
|
-
function generateCellMargins(cellMargins) {
|
|
35740
|
-
const elements = [];
|
|
35741
|
-
const { top: top2, right: right2, bottom: bottom2, left: left2 } = cellMargins;
|
|
35742
|
-
if (top2 != null) elements.push({ name: "w:top", attributes: { "w:w": pixelsToTwips(top2) } });
|
|
35743
|
-
if (right2 != null) elements.push({ name: "w:right", attributes: { "w:w": pixelsToTwips(right2) } });
|
|
35744
|
-
if (bottom2 != null) elements.push({ name: "w:bottom", attributes: { "w:w": pixelsToTwips(bottom2) } });
|
|
35745
|
-
if (left2 != null) elements.push({ name: "w:left", attributes: { "w:w": pixelsToTwips(left2) } });
|
|
35746
|
-
return elements;
|
|
35824
|
+
const result = translator$d.decode({ node: { ...node, attrs: { ...node.attrs, tableCellProperties } } });
|
|
35825
|
+
return result;
|
|
35747
35826
|
}
|
|
35748
|
-
const XML_NODE_NAME$
|
|
35827
|
+
const XML_NODE_NAME$d = "w:tc";
|
|
35749
35828
|
const SD_NODE_NAME$b = "tableCell";
|
|
35750
|
-
const validXmlAttributes$
|
|
35751
|
-
function encode$
|
|
35829
|
+
const validXmlAttributes$a = [];
|
|
35830
|
+
function encode$j(params2, encodedAttrs) {
|
|
35752
35831
|
const {
|
|
35753
35832
|
node,
|
|
35754
35833
|
table,
|
|
@@ -35775,22 +35854,22 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
35775
35854
|
}
|
|
35776
35855
|
return schemaNode;
|
|
35777
35856
|
}
|
|
35778
|
-
function decode$
|
|
35857
|
+
function decode$l(params2, decodedAttrs) {
|
|
35779
35858
|
const translated = translateTableCell(params2);
|
|
35780
35859
|
if (decodedAttrs && Object.keys(decodedAttrs).length) {
|
|
35781
35860
|
translated.attributes = { ...translated.attributes || {}, ...decodedAttrs };
|
|
35782
35861
|
}
|
|
35783
35862
|
return translated;
|
|
35784
35863
|
}
|
|
35785
|
-
const config$
|
|
35786
|
-
xmlName: XML_NODE_NAME$
|
|
35864
|
+
const config$c = {
|
|
35865
|
+
xmlName: XML_NODE_NAME$d,
|
|
35787
35866
|
sdNodeOrKeyName: SD_NODE_NAME$b,
|
|
35788
35867
|
type: NodeTranslator.translatorTypes.NODE,
|
|
35789
|
-
encode: encode$
|
|
35790
|
-
decode: decode$
|
|
35791
|
-
attributes: validXmlAttributes$
|
|
35868
|
+
encode: encode$j,
|
|
35869
|
+
decode: decode$l,
|
|
35870
|
+
attributes: validXmlAttributes$a
|
|
35792
35871
|
};
|
|
35793
|
-
const translator$
|
|
35872
|
+
const translator$c = NodeTranslator.from(config$c);
|
|
35794
35873
|
function parseTagValueJSON(json) {
|
|
35795
35874
|
if (typeof json !== "string") {
|
|
35796
35875
|
return {};
|
|
@@ -36217,8 +36296,64 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36217
36296
|
const vRelativeFrom = positionVTag?.attributes.relativeFrom;
|
|
36218
36297
|
const alignV = positionVTag?.elements?.find((el) => el.name === "wp:align")?.elements[0]?.text;
|
|
36219
36298
|
const simplePos = node.elements.find((el) => el.name === "wp:simplePos");
|
|
36220
|
-
const
|
|
36221
|
-
|
|
36299
|
+
const wrapNode = isAnchor ? node.elements.find(
|
|
36300
|
+
(el) => ["wp:wrapNone", "wp:wrapSquare", "wp:wrapThrough", "wp:wrapTight", "wp:wrapTopAndBottom"].includes(el.name)
|
|
36301
|
+
) : null;
|
|
36302
|
+
const wrap2 = isAnchor ? { type: wrapNode?.name.slice(7) || "None", attrs: {} } : { type: "Inline" };
|
|
36303
|
+
switch (wrap2.type) {
|
|
36304
|
+
case "Square":
|
|
36305
|
+
wrap2.attrs.wrapText = wrapNode.attributes.wrapText;
|
|
36306
|
+
if ("distB" in (wrapNode.attributes || {})) {
|
|
36307
|
+
wrap2.attrs.distBottom = emuToPixels(wrapNode.attributes.distB);
|
|
36308
|
+
}
|
|
36309
|
+
if ("distL" in (wrapNode.attributes || {})) {
|
|
36310
|
+
wrap2.attrs.distLeft = emuToPixels(wrapNode.attributes.distL);
|
|
36311
|
+
}
|
|
36312
|
+
if ("distR" in (wrapNode.attributes || {})) {
|
|
36313
|
+
wrap2.attrs.distRight = emuToPixels(wrapNode.attributes.distR);
|
|
36314
|
+
}
|
|
36315
|
+
if ("distT" in (wrapNode.attributes || {})) {
|
|
36316
|
+
wrap2.attrs.distTop = emuToPixels(wrapNode.attributes.distT);
|
|
36317
|
+
}
|
|
36318
|
+
break;
|
|
36319
|
+
case "Tight":
|
|
36320
|
+
case "Through": {
|
|
36321
|
+
if ("distL" in (wrapNode.attributes || {})) {
|
|
36322
|
+
wrap2.attrs.distLeft = emuToPixels(wrapNode.attributes.distL);
|
|
36323
|
+
}
|
|
36324
|
+
if ("distR" in (wrapNode.attributes || {})) {
|
|
36325
|
+
wrap2.attrs.distRight = emuToPixels(wrapNode.attributes.distR);
|
|
36326
|
+
}
|
|
36327
|
+
if ("distT" in (wrapNode.attributes || {})) {
|
|
36328
|
+
wrap2.attrs.distTop = emuToPixels(wrapNode.attributes.distT);
|
|
36329
|
+
}
|
|
36330
|
+
if ("distB" in (wrapNode.attributes || {})) {
|
|
36331
|
+
wrap2.attrs.distBottom = emuToPixels(wrapNode.attributes.distB);
|
|
36332
|
+
}
|
|
36333
|
+
if ("wrapText" in (wrapNode.attributes || {})) {
|
|
36334
|
+
wrap2.attrs.wrapText = wrapNode.attributes.wrapText;
|
|
36335
|
+
}
|
|
36336
|
+
const polygon = wrapNode.elements?.find((el) => el.name === "wp:wrapPolygon");
|
|
36337
|
+
if (polygon) {
|
|
36338
|
+
wrap2.attrs.polygon = polygonToObj(polygon);
|
|
36339
|
+
if (polygon.attributes?.edited !== void 0) {
|
|
36340
|
+
wrap2.attrs.polygonEdited = polygon.attributes.edited;
|
|
36341
|
+
}
|
|
36342
|
+
}
|
|
36343
|
+
break;
|
|
36344
|
+
}
|
|
36345
|
+
case "TopAndBottom":
|
|
36346
|
+
if ("distB" in (wrapNode.attributes || {})) {
|
|
36347
|
+
wrap2.attrs.distBottom = emuToPixels(wrapNode.attributes.distB);
|
|
36348
|
+
}
|
|
36349
|
+
if ("distT" in (wrapNode.attributes || {})) {
|
|
36350
|
+
wrap2.attrs.distTop = emuToPixels(wrapNode.attributes.distT);
|
|
36351
|
+
}
|
|
36352
|
+
break;
|
|
36353
|
+
case "None":
|
|
36354
|
+
wrap2.attrs.behindDoc = node.attributes?.behindDoc === "1";
|
|
36355
|
+
break;
|
|
36356
|
+
}
|
|
36222
36357
|
const docPr = node.elements.find((el) => el.name === "wp:docPr");
|
|
36223
36358
|
let anchorData = null;
|
|
36224
36359
|
if (hRelativeFrom || alignH || vRelativeFrom || alignV) {
|
|
@@ -36230,7 +36365,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36230
36365
|
};
|
|
36231
36366
|
}
|
|
36232
36367
|
const marginOffset = {
|
|
36233
|
-
|
|
36368
|
+
horizontal: positionHValue,
|
|
36234
36369
|
top: positionVValue
|
|
36235
36370
|
};
|
|
36236
36371
|
const { attributes: blipAttributes = {} } = blip;
|
|
@@ -36269,10 +36404,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36269
36404
|
y: simplePos.attributes.y
|
|
36270
36405
|
}
|
|
36271
36406
|
},
|
|
36272
|
-
|
|
36273
|
-
wrapText: wrapSquare.attributes.wrapText
|
|
36274
|
-
},
|
|
36275
|
-
wrapTopAndBottom: !!wrapTopAndBottom,
|
|
36407
|
+
wrap: wrap2,
|
|
36276
36408
|
originalPadding: {
|
|
36277
36409
|
distT: attributes["distT"],
|
|
36278
36410
|
distB: attributes["distB"],
|
|
@@ -36620,7 +36752,6 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36620
36752
|
function translateAnchorNode(params2) {
|
|
36621
36753
|
const { attrs } = params2.node;
|
|
36622
36754
|
const anchorElements = [];
|
|
36623
|
-
const wrapElements = [];
|
|
36624
36755
|
if (attrs.simplePos) {
|
|
36625
36756
|
anchorElements.push({
|
|
36626
36757
|
name: "wp:simplePos",
|
|
@@ -36632,10 +36763,10 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36632
36763
|
}
|
|
36633
36764
|
if (attrs.anchorData) {
|
|
36634
36765
|
const hElements = [];
|
|
36635
|
-
if (attrs.marginOffset.
|
|
36766
|
+
if (attrs.marginOffset.horizontal !== void 0) {
|
|
36636
36767
|
hElements.push({
|
|
36637
36768
|
name: "wp:posOffset",
|
|
36638
|
-
elements: [{ type: "text", text: pixelsToEmu(attrs.marginOffset.
|
|
36769
|
+
elements: [{ type: "text", text: pixelsToEmu(attrs.marginOffset.horizontal).toString() }]
|
|
36639
36770
|
});
|
|
36640
36771
|
}
|
|
36641
36772
|
if (attrs.anchorData.alignH) {
|
|
@@ -36668,38 +36799,110 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36668
36799
|
...vElements.length && { elements: vElements }
|
|
36669
36800
|
});
|
|
36670
36801
|
}
|
|
36671
|
-
|
|
36672
|
-
|
|
36673
|
-
|
|
36674
|
-
|
|
36675
|
-
|
|
36676
|
-
|
|
36677
|
-
|
|
36802
|
+
const nodeElements = translateImageNode(params2);
|
|
36803
|
+
const inlineAttrs = {
|
|
36804
|
+
...attrs.originalAttributes || {},
|
|
36805
|
+
...nodeElements.attributes || {}
|
|
36806
|
+
};
|
|
36807
|
+
if (inlineAttrs.relativeHeight == null) {
|
|
36808
|
+
inlineAttrs.relativeHeight = 1;
|
|
36678
36809
|
}
|
|
36679
|
-
if (attrs.
|
|
36680
|
-
|
|
36681
|
-
|
|
36682
|
-
|
|
36810
|
+
if (attrs.originalAttributes?.simplePos !== void 0) {
|
|
36811
|
+
inlineAttrs.simplePos = attrs.originalAttributes.simplePos;
|
|
36812
|
+
} else if (attrs.simplePos !== void 0) {
|
|
36813
|
+
inlineAttrs.simplePos = attrs.simplePos;
|
|
36683
36814
|
}
|
|
36684
|
-
if (
|
|
36685
|
-
|
|
36686
|
-
name: "wp:wrapNone"
|
|
36687
|
-
});
|
|
36815
|
+
if (attrs.originalAttributes?.locked !== void 0) {
|
|
36816
|
+
inlineAttrs.locked = attrs.originalAttributes.locked;
|
|
36688
36817
|
}
|
|
36689
|
-
|
|
36690
|
-
|
|
36691
|
-
|
|
36692
|
-
|
|
36693
|
-
|
|
36694
|
-
|
|
36695
|
-
|
|
36696
|
-
|
|
36697
|
-
|
|
36818
|
+
if (attrs.originalAttributes?.layoutInCell !== void 0) {
|
|
36819
|
+
inlineAttrs.layoutInCell = attrs.originalAttributes.layoutInCell;
|
|
36820
|
+
}
|
|
36821
|
+
if (attrs.originalAttributes?.allowOverlap !== void 0) {
|
|
36822
|
+
inlineAttrs.allowOverlap = attrs.originalAttributes.allowOverlap;
|
|
36823
|
+
}
|
|
36824
|
+
const wrapElement = {
|
|
36825
|
+
name: `wp:wrap${attrs.wrap?.type || "None"}`
|
|
36826
|
+
// Important: wp:anchor will break if no wrapping is specified. We need to use wrapNone.
|
|
36698
36827
|
};
|
|
36828
|
+
switch (attrs.wrap?.type) {
|
|
36829
|
+
case "Square":
|
|
36830
|
+
wrapElement.attributes = {
|
|
36831
|
+
wrapText: attrs.wrap.attrs.wrapText
|
|
36832
|
+
};
|
|
36833
|
+
if ("distBottom" in (attrs.wrap.attrs || {})) {
|
|
36834
|
+
wrapElement.attributes.distB = pixelsToEmu(attrs.wrap.attrs.distBottom);
|
|
36835
|
+
}
|
|
36836
|
+
if ("distLeft" in (attrs.wrap.attrs || {})) {
|
|
36837
|
+
wrapElement.attributes.distL = pixelsToEmu(attrs.wrap.attrs.distLeft);
|
|
36838
|
+
}
|
|
36839
|
+
if ("distRight" in (attrs.wrap.attrs || {})) {
|
|
36840
|
+
wrapElement.attributes.distR = pixelsToEmu(attrs.wrap.attrs.distRight);
|
|
36841
|
+
}
|
|
36842
|
+
if ("distTop" in (attrs.wrap.attrs || {})) {
|
|
36843
|
+
wrapElement.attributes.distT = pixelsToEmu(attrs.wrap.attrs.distTop);
|
|
36844
|
+
}
|
|
36845
|
+
break;
|
|
36846
|
+
case "TopAndBottom": {
|
|
36847
|
+
const attributes = {};
|
|
36848
|
+
let hasKeys = false;
|
|
36849
|
+
if ("distBottom" in (attrs.wrap.attrs || {})) {
|
|
36850
|
+
attributes.distB = pixelsToEmu(attrs.wrap.attrs.distBottom);
|
|
36851
|
+
hasKeys = true;
|
|
36852
|
+
}
|
|
36853
|
+
if ("distTop" in (attrs.wrap.attrs || {})) {
|
|
36854
|
+
attributes.distT = pixelsToEmu(attrs.wrap.attrs.distTop);
|
|
36855
|
+
hasKeys = true;
|
|
36856
|
+
}
|
|
36857
|
+
if (hasKeys) {
|
|
36858
|
+
wrapElement.attributes = attributes;
|
|
36859
|
+
}
|
|
36860
|
+
break;
|
|
36861
|
+
}
|
|
36862
|
+
case "Through":
|
|
36863
|
+
case "Tight": {
|
|
36864
|
+
const attributes = {};
|
|
36865
|
+
if ("distLeft" in (attrs.wrap.attrs || {})) {
|
|
36866
|
+
attributes.distL = pixelsToEmu(attrs.wrap.attrs.distLeft);
|
|
36867
|
+
}
|
|
36868
|
+
if ("distRight" in (attrs.wrap.attrs || {})) {
|
|
36869
|
+
attributes.distR = pixelsToEmu(attrs.wrap.attrs.distRight);
|
|
36870
|
+
}
|
|
36871
|
+
if ("distTop" in (attrs.wrap.attrs || {})) {
|
|
36872
|
+
attributes.distT = pixelsToEmu(attrs.wrap.attrs.distTop);
|
|
36873
|
+
}
|
|
36874
|
+
if ("distBottom" in (attrs.wrap.attrs || {})) {
|
|
36875
|
+
attributes.distB = pixelsToEmu(attrs.wrap.attrs.distBottom);
|
|
36876
|
+
}
|
|
36877
|
+
const wrapText = attrs.wrap.attrs?.wrapText || "bothSides";
|
|
36878
|
+
{
|
|
36879
|
+
attributes.wrapText = wrapText;
|
|
36880
|
+
}
|
|
36881
|
+
if (Object.keys(attributes).length) {
|
|
36882
|
+
wrapElement.attributes = attributes;
|
|
36883
|
+
}
|
|
36884
|
+
if (attrs.wrap.attrs?.polygon) {
|
|
36885
|
+
const polygonNode = objToPolygon(attrs.wrap.attrs.polygon);
|
|
36886
|
+
if (polygonNode) {
|
|
36887
|
+
if (attrs.wrap.attrs?.polygonEdited !== void 0) {
|
|
36888
|
+
polygonNode.attributes = {
|
|
36889
|
+
...polygonNode.attributes || {},
|
|
36890
|
+
edited: String(attrs.wrap.attrs.polygonEdited)
|
|
36891
|
+
};
|
|
36892
|
+
}
|
|
36893
|
+
wrapElement.elements = [polygonNode];
|
|
36894
|
+
}
|
|
36895
|
+
}
|
|
36896
|
+
break;
|
|
36897
|
+
}
|
|
36898
|
+
case "None":
|
|
36899
|
+
inlineAttrs.behindDoc = attrs.wrap.attrs?.behindDoc ? "1" : "0";
|
|
36900
|
+
break;
|
|
36901
|
+
}
|
|
36699
36902
|
const effectIndex = nodeElements.elements.findIndex((el) => el.name === "wp:effectExtent");
|
|
36700
36903
|
const elementsWithWrap = [
|
|
36701
36904
|
...nodeElements.elements.slice(0, effectIndex + 1),
|
|
36702
|
-
|
|
36905
|
+
wrapElement,
|
|
36703
36906
|
...nodeElements.elements.slice(effectIndex + 1)
|
|
36704
36907
|
];
|
|
36705
36908
|
return {
|
|
@@ -36708,32 +36911,32 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36708
36911
|
elements: [...anchorElements, ...elementsWithWrap]
|
|
36709
36912
|
};
|
|
36710
36913
|
}
|
|
36711
|
-
const XML_NODE_NAME$
|
|
36914
|
+
const XML_NODE_NAME$c = "wp:anchor";
|
|
36712
36915
|
const SD_NODE_NAME$a = ["image"];
|
|
36713
|
-
const validXmlAttributes$
|
|
36714
|
-
function encode$
|
|
36916
|
+
const validXmlAttributes$9 = ["distT", "distB", "distL", "distR"].map((xmlName) => createAttributeHandler(xmlName));
|
|
36917
|
+
function encode$i(params2) {
|
|
36715
36918
|
const { node } = params2.extraParams;
|
|
36716
36919
|
if (!node || !node.type) {
|
|
36717
36920
|
return null;
|
|
36718
36921
|
}
|
|
36719
36922
|
return handleAnchorNode(params2);
|
|
36720
36923
|
}
|
|
36721
|
-
function decode$
|
|
36924
|
+
function decode$k(params2) {
|
|
36722
36925
|
const { node } = params2;
|
|
36723
36926
|
if (!node || !node.type) {
|
|
36724
36927
|
return null;
|
|
36725
36928
|
}
|
|
36726
36929
|
return translateAnchorNode(params2);
|
|
36727
36930
|
}
|
|
36728
|
-
const config$
|
|
36729
|
-
xmlName: XML_NODE_NAME$
|
|
36931
|
+
const config$b = {
|
|
36932
|
+
xmlName: XML_NODE_NAME$c,
|
|
36730
36933
|
sdNodeOrKeyName: SD_NODE_NAME$a,
|
|
36731
36934
|
type: NodeTranslator.translatorTypes.NODE,
|
|
36732
|
-
encode: encode$
|
|
36733
|
-
decode: decode$
|
|
36734
|
-
attributes: validXmlAttributes$
|
|
36935
|
+
encode: encode$i,
|
|
36936
|
+
decode: decode$k,
|
|
36937
|
+
attributes: validXmlAttributes$9
|
|
36735
36938
|
};
|
|
36736
|
-
const translator$
|
|
36939
|
+
const translator$b = NodeTranslator.from(config$b);
|
|
36737
36940
|
function handleInlineNode(params2) {
|
|
36738
36941
|
const { node } = params2.extraParams;
|
|
36739
36942
|
if (node.name !== "wp:inline") {
|
|
@@ -36749,41 +36952,41 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36749
36952
|
elements: nodeElements.elements
|
|
36750
36953
|
};
|
|
36751
36954
|
}
|
|
36752
|
-
const XML_NODE_NAME$
|
|
36955
|
+
const XML_NODE_NAME$b = "wp:inline";
|
|
36753
36956
|
const SD_NODE_NAME$9 = ["image"];
|
|
36754
|
-
const validXmlAttributes$
|
|
36755
|
-
function encode$
|
|
36957
|
+
const validXmlAttributes$8 = ["distT", "distB", "distL", "distR"].map((xmlName) => createAttributeHandler(xmlName));
|
|
36958
|
+
function encode$h(params2) {
|
|
36756
36959
|
const { node } = params2.extraParams;
|
|
36757
36960
|
if (!node || !node.type) {
|
|
36758
36961
|
return null;
|
|
36759
36962
|
}
|
|
36760
36963
|
return handleInlineNode(params2);
|
|
36761
36964
|
}
|
|
36762
|
-
function decode$
|
|
36965
|
+
function decode$j(params2) {
|
|
36763
36966
|
const { node } = params2;
|
|
36764
36967
|
if (!node || !node.type) {
|
|
36765
36968
|
return null;
|
|
36766
36969
|
}
|
|
36767
36970
|
return translateInlineNode(params2);
|
|
36768
36971
|
}
|
|
36769
|
-
const config$
|
|
36770
|
-
xmlName: XML_NODE_NAME$
|
|
36972
|
+
const config$a = {
|
|
36973
|
+
xmlName: XML_NODE_NAME$b,
|
|
36771
36974
|
sdNodeOrKeyName: SD_NODE_NAME$9,
|
|
36772
36975
|
type: NodeTranslator.translatorTypes.NODE,
|
|
36773
|
-
encode: encode$
|
|
36774
|
-
decode: decode$
|
|
36775
|
-
attributes: validXmlAttributes$
|
|
36976
|
+
encode: encode$h,
|
|
36977
|
+
decode: decode$j,
|
|
36978
|
+
attributes: validXmlAttributes$8
|
|
36776
36979
|
};
|
|
36777
|
-
const translator$
|
|
36778
|
-
const XML_NODE_NAME$
|
|
36980
|
+
const translator$a = NodeTranslator.from(config$a);
|
|
36981
|
+
const XML_NODE_NAME$a = "w:drawing";
|
|
36779
36982
|
const SD_NODE_NAME$8 = [];
|
|
36780
|
-
const validXmlAttributes$
|
|
36781
|
-
function encode$
|
|
36983
|
+
const validXmlAttributes$7 = [];
|
|
36984
|
+
function encode$g(params2) {
|
|
36782
36985
|
const nodes = params2.nodes;
|
|
36783
36986
|
const node = nodes[0];
|
|
36784
36987
|
const translatorByChildName = {
|
|
36785
|
-
"wp:anchor": translator$
|
|
36786
|
-
"wp:inline": translator$
|
|
36988
|
+
"wp:anchor": translator$b,
|
|
36989
|
+
"wp:inline": translator$a
|
|
36787
36990
|
};
|
|
36788
36991
|
return node.elements.reduce((acc, child) => {
|
|
36789
36992
|
if (acc) return acc;
|
|
@@ -36792,12 +36995,12 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36792
36995
|
return translator2.encode({ ...params2, extraParams: { node: child } }) || acc;
|
|
36793
36996
|
}, null);
|
|
36794
36997
|
}
|
|
36795
|
-
function decode$
|
|
36998
|
+
function decode$i(params2) {
|
|
36796
36999
|
const { node } = params2;
|
|
36797
37000
|
if (!node || !node.type) {
|
|
36798
37001
|
return null;
|
|
36799
37002
|
}
|
|
36800
|
-
const childTranslator = node.attrs.isAnchor ? translator$
|
|
37003
|
+
const childTranslator = node.attrs.isAnchor ? translator$b : translator$a;
|
|
36801
37004
|
const resultNode = childTranslator.decode(params2);
|
|
36802
37005
|
return wrapTextInRun(
|
|
36803
37006
|
{
|
|
@@ -36807,15 +37010,15 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
36807
37010
|
[]
|
|
36808
37011
|
);
|
|
36809
37012
|
}
|
|
36810
|
-
const config$
|
|
36811
|
-
xmlName: XML_NODE_NAME$
|
|
37013
|
+
const config$9 = {
|
|
37014
|
+
xmlName: XML_NODE_NAME$a,
|
|
36812
37015
|
sdNodeOrKeyName: SD_NODE_NAME$8,
|
|
36813
37016
|
type: NodeTranslator.translatorTypes.NODE,
|
|
36814
|
-
encode: encode$
|
|
36815
|
-
decode: decode$
|
|
36816
|
-
attributes: validXmlAttributes$
|
|
37017
|
+
encode: encode$g,
|
|
37018
|
+
decode: decode$i,
|
|
37019
|
+
attributes: validXmlAttributes$7
|
|
36817
37020
|
};
|
|
36818
|
-
const translator$
|
|
37021
|
+
const translator$9 = NodeTranslator.from(config$9);
|
|
36819
37022
|
class CommandService {
|
|
36820
37023
|
/**
|
|
36821
37024
|
* @param {import('./commands/types/index.js').CommandServiceOptions} props
|
|
@@ -38163,7 +38366,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38163
38366
|
return getTextNodeForExport(attrs.displayLabel, [...marks, ...marksFromAttrs], params2);
|
|
38164
38367
|
}
|
|
38165
38368
|
function prepareImageAnnotation(params2, imageSize) {
|
|
38166
|
-
return translator$
|
|
38369
|
+
return translator$9.decode({
|
|
38167
38370
|
...params2,
|
|
38168
38371
|
imageSize
|
|
38169
38372
|
});
|
|
@@ -38478,10 +38681,10 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38478
38681
|
};
|
|
38479
38682
|
return result;
|
|
38480
38683
|
}
|
|
38481
|
-
const XML_NODE_NAME$
|
|
38684
|
+
const XML_NODE_NAME$9 = "w:sdt";
|
|
38482
38685
|
const SD_NODE_NAME$7 = ["fieldAnnotation", "structuredContent", "structuredContentBlock", "documentSection"];
|
|
38483
|
-
const validXmlAttributes$
|
|
38484
|
-
function encode$
|
|
38686
|
+
const validXmlAttributes$6 = [];
|
|
38687
|
+
function encode$f(params2) {
|
|
38485
38688
|
const nodes = params2.nodes;
|
|
38486
38689
|
const node = nodes[0];
|
|
38487
38690
|
const { type: sdtType, handler: handler2 } = sdtNodeTypeStrategy(node);
|
|
@@ -38491,7 +38694,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38491
38694
|
const result = handler2(params2);
|
|
38492
38695
|
return result;
|
|
38493
38696
|
}
|
|
38494
|
-
function decode$
|
|
38697
|
+
function decode$h(params2) {
|
|
38495
38698
|
const { node } = params2;
|
|
38496
38699
|
if (!node || !node.type) {
|
|
38497
38700
|
return null;
|
|
@@ -38509,85 +38712,85 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38509
38712
|
const result = decoder();
|
|
38510
38713
|
return result;
|
|
38511
38714
|
}
|
|
38512
|
-
const config$
|
|
38513
|
-
xmlName: XML_NODE_NAME$
|
|
38715
|
+
const config$8 = {
|
|
38716
|
+
xmlName: XML_NODE_NAME$9,
|
|
38514
38717
|
sdNodeOrKeyName: SD_NODE_NAME$7,
|
|
38515
38718
|
type: NodeTranslator.translatorTypes.NODE,
|
|
38516
|
-
encode: encode$
|
|
38517
|
-
decode: decode$
|
|
38518
|
-
attributes: validXmlAttributes$
|
|
38719
|
+
encode: encode$f,
|
|
38720
|
+
decode: decode$h,
|
|
38721
|
+
attributes: validXmlAttributes$6
|
|
38519
38722
|
};
|
|
38520
|
-
const translator$
|
|
38521
|
-
const encode$
|
|
38723
|
+
const translator$8 = NodeTranslator.from(config$8);
|
|
38724
|
+
const encode$e = (attributes) => {
|
|
38522
38725
|
return attributes["w:id"];
|
|
38523
38726
|
};
|
|
38524
|
-
const decode$
|
|
38727
|
+
const decode$g = (attrs) => {
|
|
38525
38728
|
return attrs.id;
|
|
38526
38729
|
};
|
|
38527
38730
|
const attrConfig$7 = Object.freeze({
|
|
38528
38731
|
xmlName: "w:id",
|
|
38529
38732
|
sdName: "id",
|
|
38530
|
-
encode: encode$
|
|
38531
|
-
decode: decode$
|
|
38733
|
+
encode: encode$e,
|
|
38734
|
+
decode: decode$g
|
|
38532
38735
|
});
|
|
38533
|
-
const encode$
|
|
38736
|
+
const encode$d = (attributes) => {
|
|
38534
38737
|
return attributes["w:name"];
|
|
38535
38738
|
};
|
|
38536
|
-
const decode$
|
|
38739
|
+
const decode$f = (attrs) => {
|
|
38537
38740
|
return attrs.name;
|
|
38538
38741
|
};
|
|
38539
38742
|
const attrConfig$6 = Object.freeze({
|
|
38540
38743
|
xmlName: "w:name",
|
|
38541
38744
|
sdName: "name",
|
|
38542
|
-
encode: encode$
|
|
38543
|
-
decode: decode$
|
|
38745
|
+
encode: encode$d,
|
|
38746
|
+
decode: decode$f
|
|
38544
38747
|
});
|
|
38545
|
-
const encode$
|
|
38748
|
+
const encode$c = (attributes) => {
|
|
38546
38749
|
return attributes["w:colFirst"];
|
|
38547
38750
|
};
|
|
38548
|
-
const decode$
|
|
38751
|
+
const decode$e = (attrs) => {
|
|
38549
38752
|
return attrs.colFirst;
|
|
38550
38753
|
};
|
|
38551
38754
|
const attrConfig$5 = Object.freeze({
|
|
38552
38755
|
xmlName: "w:colFirst",
|
|
38553
38756
|
sdName: "colFirst",
|
|
38554
|
-
encode: encode$
|
|
38555
|
-
decode: decode$
|
|
38757
|
+
encode: encode$c,
|
|
38758
|
+
decode: decode$e
|
|
38556
38759
|
});
|
|
38557
|
-
const encode$
|
|
38760
|
+
const encode$b = (attributes) => {
|
|
38558
38761
|
return attributes["w:colLast"];
|
|
38559
38762
|
};
|
|
38560
|
-
const decode$
|
|
38763
|
+
const decode$d = (attrs) => {
|
|
38561
38764
|
return attrs.colLast;
|
|
38562
38765
|
};
|
|
38563
38766
|
const attrConfig$4 = Object.freeze({
|
|
38564
38767
|
xmlName: "w:colLast",
|
|
38565
38768
|
sdName: "colLast",
|
|
38566
|
-
encode: encode$
|
|
38567
|
-
decode: decode$
|
|
38769
|
+
encode: encode$b,
|
|
38770
|
+
decode: decode$d
|
|
38568
38771
|
});
|
|
38569
|
-
const encode$
|
|
38772
|
+
const encode$a = (attributes) => {
|
|
38570
38773
|
return attributes["w:displacedByCustomXml"];
|
|
38571
38774
|
};
|
|
38572
|
-
const decode$
|
|
38775
|
+
const decode$c = (attrs) => {
|
|
38573
38776
|
return attrs.displacedByCustomXml;
|
|
38574
38777
|
};
|
|
38575
38778
|
const attrConfig$3 = Object.freeze({
|
|
38576
38779
|
xmlName: "w:displacedByCustomXml",
|
|
38577
38780
|
sdName: "displacedByCustomXml",
|
|
38578
|
-
encode: encode$
|
|
38579
|
-
decode: decode$
|
|
38781
|
+
encode: encode$a,
|
|
38782
|
+
decode: decode$c
|
|
38580
38783
|
});
|
|
38581
|
-
const validXmlAttributes$
|
|
38582
|
-
const XML_NODE_NAME$
|
|
38784
|
+
const validXmlAttributes$5 = [attrConfig$7, attrConfig$6, attrConfig$5, attrConfig$4, attrConfig$3];
|
|
38785
|
+
const XML_NODE_NAME$8 = "w:bookmarkStart";
|
|
38583
38786
|
const SD_NODE_NAME$6 = "bookmarkStart";
|
|
38584
|
-
const encode$
|
|
38787
|
+
const encode$9 = (params2, encodedAttrs = {}) => {
|
|
38585
38788
|
return {
|
|
38586
38789
|
type: "bookmarkStart",
|
|
38587
38790
|
attrs: encodedAttrs
|
|
38588
38791
|
};
|
|
38589
38792
|
};
|
|
38590
|
-
const decode$
|
|
38793
|
+
const decode$b = (params2, decodedAttrs = {}) => {
|
|
38591
38794
|
const result = {
|
|
38592
38795
|
name: "w:bookmarkStart",
|
|
38593
38796
|
elements: []
|
|
@@ -38597,49 +38800,49 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38597
38800
|
}
|
|
38598
38801
|
return result;
|
|
38599
38802
|
};
|
|
38600
|
-
const config$
|
|
38601
|
-
xmlName: XML_NODE_NAME$
|
|
38803
|
+
const config$7 = {
|
|
38804
|
+
xmlName: XML_NODE_NAME$8,
|
|
38602
38805
|
sdNodeOrKeyName: SD_NODE_NAME$6,
|
|
38603
38806
|
type: NodeTranslator.translatorTypes.NODE,
|
|
38604
|
-
encode: encode$
|
|
38605
|
-
decode: decode$
|
|
38606
|
-
attributes: validXmlAttributes$
|
|
38807
|
+
encode: encode$9,
|
|
38808
|
+
decode: decode$b,
|
|
38809
|
+
attributes: validXmlAttributes$5
|
|
38607
38810
|
};
|
|
38608
|
-
const translator$
|
|
38609
|
-
const encode$
|
|
38811
|
+
const translator$7 = NodeTranslator.from(config$7);
|
|
38812
|
+
const encode$8 = (attributes) => {
|
|
38610
38813
|
return attributes["w:id"];
|
|
38611
38814
|
};
|
|
38612
|
-
const decode$
|
|
38815
|
+
const decode$a = (attrs) => {
|
|
38613
38816
|
return attrs.id;
|
|
38614
38817
|
};
|
|
38615
38818
|
const attrConfig$2 = Object.freeze({
|
|
38616
38819
|
xmlName: "w:id",
|
|
38617
38820
|
sdName: "id",
|
|
38618
|
-
encode: encode$
|
|
38619
|
-
decode: decode$
|
|
38821
|
+
encode: encode$8,
|
|
38822
|
+
decode: decode$a
|
|
38620
38823
|
});
|
|
38621
|
-
const encode$
|
|
38824
|
+
const encode$7 = (attributes) => {
|
|
38622
38825
|
return attributes["w:displacedByCustomXml"];
|
|
38623
38826
|
};
|
|
38624
|
-
const decode$
|
|
38827
|
+
const decode$9 = (attrs) => {
|
|
38625
38828
|
return attrs.displacedByCustomXml;
|
|
38626
38829
|
};
|
|
38627
38830
|
const attrConfig$1 = Object.freeze({
|
|
38628
38831
|
xmlName: "w:displacedByCustomXml",
|
|
38629
38832
|
sdName: "displacedByCustomXml",
|
|
38630
|
-
encode: encode$
|
|
38631
|
-
decode: decode$
|
|
38833
|
+
encode: encode$7,
|
|
38834
|
+
decode: decode$9
|
|
38632
38835
|
});
|
|
38633
|
-
const validXmlAttributes$
|
|
38634
|
-
const XML_NODE_NAME$
|
|
38836
|
+
const validXmlAttributes$4 = [attrConfig$2, attrConfig$1];
|
|
38837
|
+
const XML_NODE_NAME$7 = "w:bookmarkEnd";
|
|
38635
38838
|
const SD_NODE_NAME$5 = "bookmarkEnd";
|
|
38636
|
-
const encode$
|
|
38839
|
+
const encode$6 = (params2, encodedAttrs = {}) => {
|
|
38637
38840
|
return {
|
|
38638
38841
|
type: "bookmarkEnd",
|
|
38639
38842
|
attrs: encodedAttrs
|
|
38640
38843
|
};
|
|
38641
38844
|
};
|
|
38642
|
-
const decode$
|
|
38845
|
+
const decode$8 = (params2, decodedAttrs = {}) => {
|
|
38643
38846
|
const result = {
|
|
38644
38847
|
name: "w:bookmarkEnd",
|
|
38645
38848
|
elements: []
|
|
@@ -38649,27 +38852,27 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38649
38852
|
}
|
|
38650
38853
|
return result;
|
|
38651
38854
|
};
|
|
38652
|
-
const config$
|
|
38653
|
-
xmlName: XML_NODE_NAME$
|
|
38855
|
+
const config$6 = {
|
|
38856
|
+
xmlName: XML_NODE_NAME$7,
|
|
38654
38857
|
sdNodeOrKeyName: SD_NODE_NAME$5,
|
|
38655
38858
|
type: NodeTranslator.translatorTypes.NODE,
|
|
38656
|
-
encode: encode$
|
|
38657
|
-
decode: decode$
|
|
38658
|
-
attributes: validXmlAttributes$
|
|
38859
|
+
encode: encode$6,
|
|
38860
|
+
decode: decode$8,
|
|
38861
|
+
attributes: validXmlAttributes$4
|
|
38659
38862
|
};
|
|
38660
|
-
const translator$
|
|
38661
|
-
const decode$
|
|
38863
|
+
const translator$6 = NodeTranslator.from(config$6);
|
|
38864
|
+
const decode$7 = (attrs) => attrs?.["w:id"];
|
|
38662
38865
|
const attrConfig = Object.freeze({
|
|
38663
38866
|
xmlName: "w:id",
|
|
38664
38867
|
sdName: "w:id",
|
|
38665
38868
|
// We do not translate it from 'w:id' to 'id' when encoding, so the name is the same
|
|
38666
38869
|
encode: () => {
|
|
38667
38870
|
},
|
|
38668
|
-
decode: decode$
|
|
38871
|
+
decode: decode$7
|
|
38669
38872
|
});
|
|
38670
|
-
const XML_NODE_NAME$
|
|
38873
|
+
const XML_NODE_NAME$6 = "w:commentRange";
|
|
38671
38874
|
const SD_NODE_NAME$4 = "commentRange";
|
|
38672
|
-
const decode$
|
|
38875
|
+
const decode$6 = (params2) => {
|
|
38673
38876
|
const { node, comments, commentsExportType, exportedCommentDefs } = params2;
|
|
38674
38877
|
if (!node) return;
|
|
38675
38878
|
if (!comments) return;
|
|
@@ -38712,19 +38915,19 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38712
38915
|
};
|
|
38713
38916
|
};
|
|
38714
38917
|
const getConfig = (type2) => ({
|
|
38715
|
-
xmlName: `${XML_NODE_NAME$
|
|
38918
|
+
xmlName: `${XML_NODE_NAME$6}${type2}`,
|
|
38716
38919
|
sdNodeOrKeyName: `${SD_NODE_NAME$4}${type2}`,
|
|
38717
38920
|
type: NodeTranslator.translatorTypes.NODE,
|
|
38718
38921
|
encode: () => {
|
|
38719
38922
|
},
|
|
38720
|
-
decode: decode$
|
|
38923
|
+
decode: decode$6,
|
|
38721
38924
|
attributes: [attrConfig]
|
|
38722
38925
|
});
|
|
38723
38926
|
const commentRangeStartTranslator = NodeTranslator.from(getConfig("Start"));
|
|
38724
38927
|
const commentRangeEndTranslator = NodeTranslator.from(getConfig("End"));
|
|
38725
|
-
const XML_NODE_NAME$
|
|
38928
|
+
const XML_NODE_NAME$5 = "sd:pageReference";
|
|
38726
38929
|
const SD_NODE_NAME$3 = "pageReference";
|
|
38727
|
-
const encode$
|
|
38930
|
+
const encode$5 = (params2) => {
|
|
38728
38931
|
const { nodes = [], nodeListHandler } = params2 || {};
|
|
38729
38932
|
const node = nodes[0];
|
|
38730
38933
|
const processedText = nodeListHandler.handler({
|
|
@@ -38741,7 +38944,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38741
38944
|
};
|
|
38742
38945
|
return processedNode;
|
|
38743
38946
|
};
|
|
38744
|
-
const decode$
|
|
38947
|
+
const decode$5 = (params2) => {
|
|
38745
38948
|
const { node } = params2;
|
|
38746
38949
|
const outputMarks = processOutputMarks(node.attrs?.marksAsAttrs || []);
|
|
38747
38950
|
const contentNodes = (node.content ?? []).flatMap((n) => exportSchemaToJson({ ...params2, node: n }));
|
|
@@ -38814,17 +39017,17 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38814
39017
|
];
|
|
38815
39018
|
return translated;
|
|
38816
39019
|
};
|
|
38817
|
-
const config$
|
|
38818
|
-
xmlName: XML_NODE_NAME$
|
|
39020
|
+
const config$5 = {
|
|
39021
|
+
xmlName: XML_NODE_NAME$5,
|
|
38819
39022
|
sdNodeOrKeyName: SD_NODE_NAME$3,
|
|
38820
39023
|
type: NodeTranslator.translatorTypes.NODE,
|
|
38821
|
-
encode: encode$
|
|
38822
|
-
decode: decode$
|
|
39024
|
+
encode: encode$5,
|
|
39025
|
+
decode: decode$5
|
|
38823
39026
|
};
|
|
38824
|
-
const translator$
|
|
38825
|
-
const XML_NODE_NAME$
|
|
39027
|
+
const translator$5 = NodeTranslator.from(config$5);
|
|
39028
|
+
const XML_NODE_NAME$4 = "sd:tableOfContents";
|
|
38826
39029
|
const SD_NODE_NAME$2 = "tableOfContents";
|
|
38827
|
-
const encode$
|
|
39030
|
+
const encode$4 = (params2) => {
|
|
38828
39031
|
const { nodes = [], nodeListHandler } = params2 || {};
|
|
38829
39032
|
const node = nodes[0];
|
|
38830
39033
|
const processedContent = nodeListHandler.handler({
|
|
@@ -38840,7 +39043,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38840
39043
|
};
|
|
38841
39044
|
return processedNode;
|
|
38842
39045
|
};
|
|
38843
|
-
const decode$
|
|
39046
|
+
const decode$4 = (params2) => {
|
|
38844
39047
|
const { node } = params2;
|
|
38845
39048
|
const contentNodes = node.content.map((n) => exportSchemaToJson({ ...params2, node: n }));
|
|
38846
39049
|
const tocBeginElements = [
|
|
@@ -38887,14 +39090,14 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
38887
39090
|
}
|
|
38888
39091
|
return contentNodes;
|
|
38889
39092
|
};
|
|
38890
|
-
const config$
|
|
38891
|
-
xmlName: XML_NODE_NAME$
|
|
39093
|
+
const config$4 = {
|
|
39094
|
+
xmlName: XML_NODE_NAME$4,
|
|
38892
39095
|
sdNodeOrKeyName: SD_NODE_NAME$2,
|
|
38893
39096
|
type: NodeTranslator.translatorTypes.NODE,
|
|
38894
|
-
encode: encode$
|
|
38895
|
-
decode: decode$
|
|
39097
|
+
encode: encode$4,
|
|
39098
|
+
decode: decode$4
|
|
38896
39099
|
};
|
|
38897
|
-
const translator$
|
|
39100
|
+
const translator$4 = NodeTranslator.from(config$4);
|
|
38898
39101
|
function parseInlineStyles(styleString) {
|
|
38899
39102
|
if (!styleString) return {};
|
|
38900
39103
|
return styleString.split(";").filter((style2) => !!style2.trim()).reduce((acc, style2) => {
|
|
@@ -39028,7 +39231,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39028
39231
|
if (mainNode.name === "w:drawing") node = mainNode;
|
|
39029
39232
|
else node = mainNode.elements.find((el) => el.name === "w:drawing");
|
|
39030
39233
|
if (!node) return { nodes: [], consumed: 0 };
|
|
39031
|
-
const schemaNode = translator$
|
|
39234
|
+
const schemaNode = translator$9.encode(params2);
|
|
39032
39235
|
const newNodes = schemaNode ? [schemaNode] : [];
|
|
39033
39236
|
return { nodes: newNodes, consumed: 1 };
|
|
39034
39237
|
};
|
|
@@ -39036,6 +39239,203 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39036
39239
|
handlerName: "drawingNodeHandler",
|
|
39037
39240
|
handler: handleDrawingNode
|
|
39038
39241
|
};
|
|
39242
|
+
const createTrackStyleMark = (marks) => {
|
|
39243
|
+
const trackStyleMark = marks.find((mark) => mark.type === "trackFormat");
|
|
39244
|
+
if (trackStyleMark) {
|
|
39245
|
+
return {
|
|
39246
|
+
type: "element",
|
|
39247
|
+
name: "w:rPrChange",
|
|
39248
|
+
attributes: {
|
|
39249
|
+
"w:id": trackStyleMark.attrs.id,
|
|
39250
|
+
"w:author": trackStyleMark.attrs.author,
|
|
39251
|
+
"w:authorEmail": trackStyleMark.attrs.authorEmail,
|
|
39252
|
+
"w:date": trackStyleMark.attrs.date
|
|
39253
|
+
},
|
|
39254
|
+
elements: trackStyleMark.attrs.before.map((mark) => processOutputMarks([mark])).filter((r2) => r2 !== void 0)
|
|
39255
|
+
};
|
|
39256
|
+
}
|
|
39257
|
+
return void 0;
|
|
39258
|
+
};
|
|
39259
|
+
const XML_NODE_NAME$3 = "w:del";
|
|
39260
|
+
const SD_ATTR_KEY$1 = "trackDelete";
|
|
39261
|
+
const validXmlAttributes$3 = [
|
|
39262
|
+
createAttributeHandler("w:id", "id"),
|
|
39263
|
+
createAttributeHandler("w:date", "date"),
|
|
39264
|
+
createAttributeHandler("w:author", "author"),
|
|
39265
|
+
createAttributeHandler("w:authorEmail", "authorEmail")
|
|
39266
|
+
];
|
|
39267
|
+
const encode$3 = (params2, encodedAttrs = {}) => {
|
|
39268
|
+
const { nodeListHandler, extraParams = {} } = params2;
|
|
39269
|
+
const { node } = extraParams;
|
|
39270
|
+
const subs = nodeListHandler.handler({
|
|
39271
|
+
...params2,
|
|
39272
|
+
insideTrackChange: true,
|
|
39273
|
+
nodes: node.elements,
|
|
39274
|
+
path: [...params2.path || [], node]
|
|
39275
|
+
});
|
|
39276
|
+
encodedAttrs.importedAuthor = `${encodedAttrs.author} (imported)`;
|
|
39277
|
+
subs.forEach((subElement) => {
|
|
39278
|
+
if (subElement.marks === void 0) subElement.marks = [];
|
|
39279
|
+
subElement.marks.push({ type: "trackDelete", attrs: encodedAttrs });
|
|
39280
|
+
});
|
|
39281
|
+
return subs;
|
|
39282
|
+
};
|
|
39283
|
+
function decode$3(params2) {
|
|
39284
|
+
const { node } = params2;
|
|
39285
|
+
if (!node || !node.type) {
|
|
39286
|
+
return null;
|
|
39287
|
+
}
|
|
39288
|
+
const trackingMarks = ["trackInsert", "trackFormat", "trackDelete"];
|
|
39289
|
+
const marks = node.marks;
|
|
39290
|
+
const trackedMark = marks.find((m2) => m2.type === "trackDelete");
|
|
39291
|
+
const trackStyleMark = createTrackStyleMark(marks);
|
|
39292
|
+
node.marks = marks.filter((m2) => !trackingMarks.includes(m2.type));
|
|
39293
|
+
if (trackStyleMark) {
|
|
39294
|
+
node.marks.push(trackStyleMark);
|
|
39295
|
+
}
|
|
39296
|
+
const translatedTextNode = exportSchemaToJson({ ...params2, node });
|
|
39297
|
+
const textNode = translatedTextNode.elements.find((n) => n.name === "w:t");
|
|
39298
|
+
textNode.name = "w:delText";
|
|
39299
|
+
return {
|
|
39300
|
+
name: "w:del",
|
|
39301
|
+
attributes: {
|
|
39302
|
+
"w:id": trackedMark.attrs.id,
|
|
39303
|
+
"w:author": trackedMark.attrs.author,
|
|
39304
|
+
"w:authorEmail": trackedMark.attrs.authorEmail,
|
|
39305
|
+
"w:date": trackedMark.attrs.date
|
|
39306
|
+
},
|
|
39307
|
+
elements: [translatedTextNode]
|
|
39308
|
+
};
|
|
39309
|
+
}
|
|
39310
|
+
const config$3 = {
|
|
39311
|
+
xmlName: XML_NODE_NAME$3,
|
|
39312
|
+
sdNodeOrKeyName: SD_ATTR_KEY$1,
|
|
39313
|
+
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
39314
|
+
encode: encode$3,
|
|
39315
|
+
decode: decode$3,
|
|
39316
|
+
attributes: validXmlAttributes$3
|
|
39317
|
+
};
|
|
39318
|
+
const translator$3 = NodeTranslator.from(config$3);
|
|
39319
|
+
const XML_NODE_NAME$2 = "w:ins";
|
|
39320
|
+
const SD_ATTR_KEY = "trackInsert";
|
|
39321
|
+
const validXmlAttributes$2 = [
|
|
39322
|
+
createAttributeHandler("w:id", "id"),
|
|
39323
|
+
createAttributeHandler("w:date", "date"),
|
|
39324
|
+
createAttributeHandler("w:author", "author"),
|
|
39325
|
+
createAttributeHandler("w:authorEmail", "authorEmail")
|
|
39326
|
+
];
|
|
39327
|
+
const encode$2 = (params2, encodedAttrs = {}) => {
|
|
39328
|
+
const { nodeListHandler, extraParams = {} } = params2;
|
|
39329
|
+
const { node } = extraParams;
|
|
39330
|
+
const subs = nodeListHandler.handler({
|
|
39331
|
+
...params2,
|
|
39332
|
+
insideTrackChange: true,
|
|
39333
|
+
nodes: node.elements,
|
|
39334
|
+
path: [...params2.path || [], node]
|
|
39335
|
+
});
|
|
39336
|
+
encodedAttrs.importedAuthor = `${encodedAttrs.author} (imported)`;
|
|
39337
|
+
subs.forEach((subElement) => {
|
|
39338
|
+
if (subElement.marks === void 0) subElement.marks = [];
|
|
39339
|
+
subElement.marks.push({ type: "trackInsert", attrs: encodedAttrs });
|
|
39340
|
+
});
|
|
39341
|
+
return subs;
|
|
39342
|
+
};
|
|
39343
|
+
function decode$2(params2) {
|
|
39344
|
+
const { node } = params2;
|
|
39345
|
+
if (!node || !node.type) {
|
|
39346
|
+
return null;
|
|
39347
|
+
}
|
|
39348
|
+
const trackingMarks = ["trackInsert", "trackFormat", "trackDelete"];
|
|
39349
|
+
const marks = node.marks;
|
|
39350
|
+
const trackedMark = marks.find((m2) => m2.type === "trackInsert");
|
|
39351
|
+
const trackStyleMark = createTrackStyleMark(marks);
|
|
39352
|
+
node.marks = marks.filter((m2) => !trackingMarks.includes(m2.type));
|
|
39353
|
+
if (trackStyleMark) {
|
|
39354
|
+
node.marks.push(trackStyleMark);
|
|
39355
|
+
}
|
|
39356
|
+
const translatedTextNode = exportSchemaToJson({ ...params2, node });
|
|
39357
|
+
return {
|
|
39358
|
+
name: "w:ins",
|
|
39359
|
+
attributes: {
|
|
39360
|
+
"w:id": trackedMark.attrs.id,
|
|
39361
|
+
"w:author": trackedMark.attrs.author,
|
|
39362
|
+
"w:authorEmail": trackedMark.attrs.authorEmail,
|
|
39363
|
+
"w:date": trackedMark.attrs.date
|
|
39364
|
+
},
|
|
39365
|
+
elements: [translatedTextNode]
|
|
39366
|
+
};
|
|
39367
|
+
}
|
|
39368
|
+
const config$2 = {
|
|
39369
|
+
xmlName: XML_NODE_NAME$2,
|
|
39370
|
+
sdNodeOrKeyName: SD_ATTR_KEY,
|
|
39371
|
+
type: NodeTranslator.translatorTypes.ATTRIBUTE,
|
|
39372
|
+
encode: encode$2,
|
|
39373
|
+
decode: decode$2,
|
|
39374
|
+
attributes: validXmlAttributes$2
|
|
39375
|
+
};
|
|
39376
|
+
const translator$2 = NodeTranslator.from(config$2);
|
|
39377
|
+
const isTrackChangeElement = (node) => node?.name === "w:del" || node?.name === "w:ins";
|
|
39378
|
+
const unwrapTrackChangeNode = (node) => {
|
|
39379
|
+
if (!node) {
|
|
39380
|
+
return null;
|
|
39381
|
+
}
|
|
39382
|
+
if (isTrackChangeElement(node)) {
|
|
39383
|
+
return node;
|
|
39384
|
+
}
|
|
39385
|
+
if (node.name === "w:sdt") {
|
|
39386
|
+
const content = node.elements?.find((element) => element.name === "w:sdtContent");
|
|
39387
|
+
if (!content?.elements?.length) {
|
|
39388
|
+
return null;
|
|
39389
|
+
}
|
|
39390
|
+
for (const child of content.elements) {
|
|
39391
|
+
const trackChange = unwrapTrackChangeNode(child);
|
|
39392
|
+
if (trackChange) {
|
|
39393
|
+
return trackChange;
|
|
39394
|
+
}
|
|
39395
|
+
}
|
|
39396
|
+
}
|
|
39397
|
+
return null;
|
|
39398
|
+
};
|
|
39399
|
+
const handleTrackChangeNode = (params2) => {
|
|
39400
|
+
const { nodes } = params2;
|
|
39401
|
+
if (nodes.length === 0) {
|
|
39402
|
+
return { nodes: [], consumed: 0 };
|
|
39403
|
+
}
|
|
39404
|
+
const mainNode = unwrapTrackChangeNode(nodes[0]);
|
|
39405
|
+
if (!mainNode) {
|
|
39406
|
+
return { nodes: [], consumed: 0 };
|
|
39407
|
+
}
|
|
39408
|
+
let result;
|
|
39409
|
+
const translatorParams = {
|
|
39410
|
+
...params2,
|
|
39411
|
+
nodes: [mainNode]
|
|
39412
|
+
};
|
|
39413
|
+
switch (mainNode.name) {
|
|
39414
|
+
case "w:del":
|
|
39415
|
+
result = translator$3.encode({
|
|
39416
|
+
extraParams: {
|
|
39417
|
+
node: mainNode
|
|
39418
|
+
},
|
|
39419
|
+
...translatorParams
|
|
39420
|
+
});
|
|
39421
|
+
break;
|
|
39422
|
+
case "w:ins":
|
|
39423
|
+
result = translator$2.encode({
|
|
39424
|
+
extraParams: {
|
|
39425
|
+
node: mainNode
|
|
39426
|
+
},
|
|
39427
|
+
...translatorParams
|
|
39428
|
+
});
|
|
39429
|
+
break;
|
|
39430
|
+
}
|
|
39431
|
+
return { nodes: result, consumed: 1 };
|
|
39432
|
+
};
|
|
39433
|
+
const trackChangeNodeHandlerEntity = {
|
|
39434
|
+
handlerName: "trackChangeNodeHandler",
|
|
39435
|
+
handler: handleTrackChangeNode
|
|
39436
|
+
};
|
|
39437
|
+
const hyperlinkNodeHandlerEntity = generateV2HandlerEntity("hyperlinkNodeHandler", translator$1c);
|
|
39438
|
+
const runNodeHandlerEntity = generateV2HandlerEntity("runNodeHandler", translator$1b);
|
|
39039
39439
|
function parseProperties(node) {
|
|
39040
39440
|
const marks = [];
|
|
39041
39441
|
const unknownMarks = [];
|
|
@@ -39087,51 +39487,6 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39087
39487
|
const isPropertiesElement = (element) => {
|
|
39088
39488
|
return !!SuperConverter.propertyTypes[element.name || element.type];
|
|
39089
39489
|
};
|
|
39090
|
-
const handleTrackChangeNode = (params2) => {
|
|
39091
|
-
const { nodes, nodeListHandler } = params2;
|
|
39092
|
-
if (nodes.length === 0 || !(nodes[0].name === "w:del" || nodes[0].name === "w:ins" || nodes[0].name === "w:sdt")) {
|
|
39093
|
-
return { nodes: [], consumed: 0 };
|
|
39094
|
-
}
|
|
39095
|
-
const mainNode = nodes[0];
|
|
39096
|
-
let node;
|
|
39097
|
-
if (["w:ins", "w:del"].includes(mainNode.name)) {
|
|
39098
|
-
node = mainNode;
|
|
39099
|
-
} else {
|
|
39100
|
-
const sdtContent = mainNode.elements.find((el) => el.name === "w:sdtContent");
|
|
39101
|
-
const trackedChange = sdtContent?.elements.find((el) => ["w:ins", "w:del"].includes(el.name));
|
|
39102
|
-
if (trackedChange) node = trackedChange;
|
|
39103
|
-
}
|
|
39104
|
-
if (!node) {
|
|
39105
|
-
return { nodes: [], consumed: 0 };
|
|
39106
|
-
}
|
|
39107
|
-
const { name } = node;
|
|
39108
|
-
const { attributes, elements } = parseProperties(node);
|
|
39109
|
-
const subs = nodeListHandler.handler({
|
|
39110
|
-
...params2,
|
|
39111
|
-
insideTrackChange: true,
|
|
39112
|
-
nodes: elements,
|
|
39113
|
-
path: [...params2.path || [], node]
|
|
39114
|
-
});
|
|
39115
|
-
const changeType = name === "w:del" ? TrackDeleteMarkName : TrackInsertMarkName;
|
|
39116
|
-
const mappedAttributes = {
|
|
39117
|
-
id: attributes["w:id"],
|
|
39118
|
-
date: attributes["w:date"],
|
|
39119
|
-
author: attributes["w:author"],
|
|
39120
|
-
authorEmail: attributes["w:authorEmail"],
|
|
39121
|
-
importedAuthor: `${attributes["w:author"]} (imported)`
|
|
39122
|
-
};
|
|
39123
|
-
subs.forEach((subElement) => {
|
|
39124
|
-
if (subElement.marks === void 0) subElement.marks = [];
|
|
39125
|
-
subElement.marks.push({ type: changeType, attrs: mappedAttributes });
|
|
39126
|
-
});
|
|
39127
|
-
return { nodes: subs, consumed: 1 };
|
|
39128
|
-
};
|
|
39129
|
-
const trackChangeNodeHandlerEntity = {
|
|
39130
|
-
handlerName: "trackChangeNodeHandler",
|
|
39131
|
-
handler: handleTrackChangeNode
|
|
39132
|
-
};
|
|
39133
|
-
const hyperlinkNodeHandlerEntity = generateV2HandlerEntity("hyperlinkNodeHandler", translator$X);
|
|
39134
|
-
const runNodeHandlerEntity = generateV2HandlerEntity("runNodeHandler", translator$W);
|
|
39135
39490
|
const handleTextNode = (params2) => {
|
|
39136
39491
|
const { nodes, insideTrackChange } = params2;
|
|
39137
39492
|
if (nodes.length === 0 || !(nodes[0].name === "w:t" || insideTrackChange && nodes[0].name === "w:delText")) {
|
|
@@ -39172,7 +39527,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39172
39527
|
if (nodes.length === 0 || nodes[0].name !== "w:p") {
|
|
39173
39528
|
return { nodes: [], consumed: 0 };
|
|
39174
39529
|
}
|
|
39175
|
-
const schemaNode = translator$
|
|
39530
|
+
const schemaNode = translator$1o.encode(params2);
|
|
39176
39531
|
const newNodes = schemaNode ? [schemaNode] : [];
|
|
39177
39532
|
return { nodes: newNodes, consumed: 1 };
|
|
39178
39533
|
};
|
|
@@ -39185,7 +39540,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39185
39540
|
if (nodes.length === 0 || nodes[0].name !== "w:sdt") {
|
|
39186
39541
|
return { nodes: [], consumed: 0 };
|
|
39187
39542
|
}
|
|
39188
|
-
const result = translator$
|
|
39543
|
+
const result = translator$8.encode(params2);
|
|
39189
39544
|
if (!result) {
|
|
39190
39545
|
return { nodes: [], consumed: 0 };
|
|
39191
39546
|
}
|
|
@@ -39275,7 +39630,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39275
39630
|
if (nodes.length === 0 || nodes[0].name !== "w:br") {
|
|
39276
39631
|
return { nodes: [], consumed: 0 };
|
|
39277
39632
|
}
|
|
39278
|
-
const result = translator$
|
|
39633
|
+
const result = translator$1r.encode(params2);
|
|
39279
39634
|
if (!result) return { nodes: [], consumed: 0 };
|
|
39280
39635
|
return {
|
|
39281
39636
|
nodes: [result],
|
|
@@ -39347,7 +39702,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39347
39702
|
if (isCustomMarkBookmark(nodes[0], params2.editor)) {
|
|
39348
39703
|
return handleBookmarkNode(params2);
|
|
39349
39704
|
}
|
|
39350
|
-
const node = translator$
|
|
39705
|
+
const node = translator$7.encode(params2);
|
|
39351
39706
|
if (!node) return { nodes: [], consumed: 0 };
|
|
39352
39707
|
return { nodes: [node], consumed: 1 };
|
|
39353
39708
|
};
|
|
@@ -39379,7 +39734,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39379
39734
|
if (!nodes.length || nodes[0].name !== "w:bookmarkEnd") {
|
|
39380
39735
|
return { nodes: [], consumed: 0 };
|
|
39381
39736
|
}
|
|
39382
|
-
const node = translator$
|
|
39737
|
+
const node = translator$6.encode(params2);
|
|
39383
39738
|
if (!node) return { nodes: [], consumed: 0 };
|
|
39384
39739
|
return { nodes: [node], consumed: 1 };
|
|
39385
39740
|
};
|
|
@@ -39512,7 +39867,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39512
39867
|
handlerName: "autoTotalPageCountEntity",
|
|
39513
39868
|
handler: handleAutoTotalPageNumber
|
|
39514
39869
|
};
|
|
39515
|
-
const pageReferenceEntity = generateV2HandlerEntity("pageReferenceNodeHandler", translator$
|
|
39870
|
+
const pageReferenceEntity = generateV2HandlerEntity("pageReferenceNodeHandler", translator$5);
|
|
39516
39871
|
const handlePictNode = (params2) => {
|
|
39517
39872
|
const { nodes } = params2;
|
|
39518
39873
|
if (!nodes.length || nodes[0].name !== "w:p") {
|
|
@@ -39874,14 +40229,14 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
39874
40229
|
if (!nodes.length || nodes[0].name !== "w:tab") {
|
|
39875
40230
|
return { nodes: [], consumed: 0 };
|
|
39876
40231
|
}
|
|
39877
|
-
const node = translator$
|
|
40232
|
+
const node = translator$1p.encode(params2);
|
|
39878
40233
|
return { nodes: [node], consumed: 1 };
|
|
39879
40234
|
};
|
|
39880
40235
|
const tabNodeEntityHandler = {
|
|
39881
40236
|
handlerName: "w:tabTranslator",
|
|
39882
40237
|
handler: handleTabNode
|
|
39883
40238
|
};
|
|
39884
|
-
const tableOfContentsHandlerEntity = generateV2HandlerEntity("tableOfContentsHandler", translator$
|
|
40239
|
+
const tableOfContentsHandlerEntity = generateV2HandlerEntity("tableOfContentsHandler", translator$4);
|
|
39885
40240
|
function preProcessPageInstruction(nodesToCombine) {
|
|
39886
40241
|
const pageNumNode = {
|
|
39887
40242
|
name: "sd:autoPageNumber",
|
|
@@ -40126,12 +40481,14 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
40126
40481
|
const content = pruneIgnoredNodes(contentElements);
|
|
40127
40482
|
const comments = importCommentData({ docx, converter, editor });
|
|
40128
40483
|
const lists = {};
|
|
40484
|
+
const inlineDocumentFonts = [];
|
|
40129
40485
|
let parsedContent = nodeListHandler.handler({
|
|
40130
40486
|
nodes: content,
|
|
40131
40487
|
nodeListHandler,
|
|
40132
40488
|
docx,
|
|
40133
40489
|
converter,
|
|
40134
40490
|
editor,
|
|
40491
|
+
inlineDocumentFonts,
|
|
40135
40492
|
lists,
|
|
40136
40493
|
path: []
|
|
40137
40494
|
});
|
|
@@ -40154,6 +40511,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
40154
40511
|
savedTagsToRestore: node,
|
|
40155
40512
|
pageStyles: getDocumentStyles(node, docx, converter, editor),
|
|
40156
40513
|
comments,
|
|
40514
|
+
inlineDocumentFonts,
|
|
40157
40515
|
linkedStyles: getStyleDefinitions(docx),
|
|
40158
40516
|
numbering: getNumberingDefinitions(docx)
|
|
40159
40517
|
};
|
|
@@ -40217,6 +40575,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
40217
40575
|
filename,
|
|
40218
40576
|
parentStyleId,
|
|
40219
40577
|
lists,
|
|
40578
|
+
inlineDocumentFonts,
|
|
40220
40579
|
path = []
|
|
40221
40580
|
}) => {
|
|
40222
40581
|
if (!elements || !elements.length) return [];
|
|
@@ -40243,6 +40602,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
40243
40602
|
filename,
|
|
40244
40603
|
parentStyleId,
|
|
40245
40604
|
lists,
|
|
40605
|
+
inlineDocumentFonts,
|
|
40246
40606
|
path
|
|
40247
40607
|
});
|
|
40248
40608
|
},
|
|
@@ -40822,7 +41182,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
40822
41182
|
const XML_NODE_NAME = "w:pict";
|
|
40823
41183
|
const SD_NODE_NAME = ["shapeContainer", "contentBlock"];
|
|
40824
41184
|
const validXmlAttributes = [];
|
|
40825
|
-
function encode$
|
|
41185
|
+
function encode$1c(params2) {
|
|
40826
41186
|
const { node, pNode } = params2.extraParams;
|
|
40827
41187
|
const { type: pictType, handler: handler2 } = pictNodeTypeStrategy(node);
|
|
40828
41188
|
if (!handler2 || pictType === "unknown") {
|
|
@@ -40854,7 +41214,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
40854
41214
|
xmlName: XML_NODE_NAME,
|
|
40855
41215
|
sdNodeOrKeyName: SD_NODE_NAME,
|
|
40856
41216
|
type: NodeTranslator.translatorTypes.NODE,
|
|
40857
|
-
encode: encode$
|
|
41217
|
+
encode: encode$1c,
|
|
40858
41218
|
decode,
|
|
40859
41219
|
attributes: validXmlAttributes
|
|
40860
41220
|
};
|
|
@@ -40930,35 +41290,35 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
40930
41290
|
doc: translateDocumentNode,
|
|
40931
41291
|
body: translateBodyNode,
|
|
40932
41292
|
heading: translateHeadingNode,
|
|
40933
|
-
paragraph: translator$
|
|
40934
|
-
run: translator$
|
|
41293
|
+
paragraph: translator$1o,
|
|
41294
|
+
run: translator$1b,
|
|
40935
41295
|
text: translateTextNode,
|
|
40936
41296
|
bulletList: translateList,
|
|
40937
41297
|
orderedList: translateList,
|
|
40938
|
-
lineBreak: translator$
|
|
40939
|
-
table: translator$
|
|
40940
|
-
tableRow: translator$
|
|
40941
|
-
tableCell: translator$
|
|
40942
|
-
bookmarkStart: translator$
|
|
40943
|
-
bookmarkEnd: translator$
|
|
40944
|
-
fieldAnnotation: translator$
|
|
40945
|
-
tab: translator$
|
|
40946
|
-
image: translator$
|
|
40947
|
-
hardBreak: translator$
|
|
41298
|
+
lineBreak: translator$1r,
|
|
41299
|
+
table: translator$s,
|
|
41300
|
+
tableRow: translator$Z,
|
|
41301
|
+
tableCell: translator$c,
|
|
41302
|
+
bookmarkStart: translator$7,
|
|
41303
|
+
bookmarkEnd: translator$6,
|
|
41304
|
+
fieldAnnotation: translator$8,
|
|
41305
|
+
tab: translator$1p,
|
|
41306
|
+
image: translator$9,
|
|
41307
|
+
hardBreak: translator$1r,
|
|
40948
41308
|
commentRangeStart: commentRangeStartTranslator,
|
|
40949
41309
|
commentRangeEnd: commentRangeEndTranslator,
|
|
40950
41310
|
commentReference: () => null,
|
|
40951
41311
|
shapeContainer: translator,
|
|
40952
41312
|
shapeTextbox: translator,
|
|
40953
41313
|
contentBlock: translator,
|
|
40954
|
-
structuredContent: translator$
|
|
40955
|
-
structuredContentBlock: translator$
|
|
40956
|
-
documentPartObject: translator$
|
|
40957
|
-
documentSection: translator$
|
|
41314
|
+
structuredContent: translator$8,
|
|
41315
|
+
structuredContentBlock: translator$8,
|
|
41316
|
+
documentPartObject: translator$8,
|
|
41317
|
+
documentSection: translator$8,
|
|
40958
41318
|
"page-number": translatePageNumberNode,
|
|
40959
41319
|
"total-page-number": translateTotalPageNumberNode,
|
|
40960
|
-
pageReference: translator$
|
|
40961
|
-
tableOfContents: translator$
|
|
41320
|
+
pageReference: translator$5,
|
|
41321
|
+
tableOfContents: translator$4
|
|
40962
41322
|
};
|
|
40963
41323
|
let handler2 = router[type2];
|
|
40964
41324
|
if (handler2 && "decode" in handler2 && typeof handler2.decode === "function") {
|
|
@@ -41294,62 +41654,22 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
41294
41654
|
function translateTextNode(params2) {
|
|
41295
41655
|
const { node, extraParams } = params2;
|
|
41296
41656
|
const trackedMarks = [TrackInsertMarkName, TrackDeleteMarkName];
|
|
41297
|
-
const
|
|
41298
|
-
if (
|
|
41657
|
+
const trackedMark = node.marks?.find((m2) => trackedMarks.includes(m2.type));
|
|
41658
|
+
if (trackedMark) {
|
|
41659
|
+
switch (trackedMark.type) {
|
|
41660
|
+
case "trackDelete":
|
|
41661
|
+
return translator$3.decode(params2);
|
|
41662
|
+
case "trackInsert":
|
|
41663
|
+
return translator$2.decode(params2);
|
|
41664
|
+
}
|
|
41665
|
+
}
|
|
41299
41666
|
const isLinkNode = node.marks?.some((m2) => m2.type === "link");
|
|
41300
41667
|
if (isLinkNode && !extraParams?.linkProcessed) {
|
|
41301
|
-
return translator$
|
|
41668
|
+
return translator$1c.decode(params2);
|
|
41302
41669
|
}
|
|
41303
41670
|
const { text, marks = [] } = node;
|
|
41304
41671
|
return getTextNodeForExport(text, marks, params2);
|
|
41305
41672
|
}
|
|
41306
|
-
function createTrackStyleMark(marks) {
|
|
41307
|
-
const trackStyleMark = marks.find((mark) => mark.type === TrackFormatMarkName);
|
|
41308
|
-
if (trackStyleMark) {
|
|
41309
|
-
const markElement = {
|
|
41310
|
-
type: "element",
|
|
41311
|
-
name: "w:rPrChange",
|
|
41312
|
-
attributes: {
|
|
41313
|
-
"w:id": trackStyleMark.attrs.id,
|
|
41314
|
-
"w:author": trackStyleMark.attrs.author,
|
|
41315
|
-
"w:authorEmail": trackStyleMark.attrs.authorEmail,
|
|
41316
|
-
"w:date": trackStyleMark.attrs.date
|
|
41317
|
-
},
|
|
41318
|
-
elements: trackStyleMark.attrs.before.map((mark) => processOutputMarks([mark])).filter((r2) => r2 !== void 0)
|
|
41319
|
-
};
|
|
41320
|
-
return markElement;
|
|
41321
|
-
}
|
|
41322
|
-
return void 0;
|
|
41323
|
-
}
|
|
41324
|
-
function translateTrackedNode(params2) {
|
|
41325
|
-
const { node } = params2;
|
|
41326
|
-
const marks = node.marks;
|
|
41327
|
-
const trackingMarks = [TrackInsertMarkName, TrackDeleteMarkName, TrackFormatMarkName];
|
|
41328
|
-
const trackedMark = marks.find((m2) => trackingMarks.includes(m2.type));
|
|
41329
|
-
const isInsert = trackedMark.type === TrackInsertMarkName;
|
|
41330
|
-
const trackStyleMark = createTrackStyleMark(marks);
|
|
41331
|
-
node.marks = marks.filter((m2) => !trackingMarks.includes(m2.type));
|
|
41332
|
-
if (trackStyleMark) {
|
|
41333
|
-
node.marks.push(trackStyleMark);
|
|
41334
|
-
}
|
|
41335
|
-
const translatedTextNode = exportSchemaToJson({ ...params2, node });
|
|
41336
|
-
if (!isInsert) {
|
|
41337
|
-
const textNode = translatedTextNode.elements.find((n) => n.name === "w:t");
|
|
41338
|
-
textNode.name = "w:delText";
|
|
41339
|
-
}
|
|
41340
|
-
const trackedNode = {
|
|
41341
|
-
name: isInsert ? "w:ins" : "w:del",
|
|
41342
|
-
type: "element",
|
|
41343
|
-
attributes: {
|
|
41344
|
-
"w:id": trackedMark.attrs.id,
|
|
41345
|
-
"w:author": trackedMark.attrs.author,
|
|
41346
|
-
"w:authorEmail": trackedMark.attrs.authorEmail,
|
|
41347
|
-
"w:date": trackedMark.attrs.date
|
|
41348
|
-
},
|
|
41349
|
-
elements: [translatedTextNode]
|
|
41350
|
-
};
|
|
41351
|
-
return trackedNode;
|
|
41352
|
-
}
|
|
41353
41673
|
function wrapTextInRun(nodeOrNodes, marks) {
|
|
41354
41674
|
let elements = [];
|
|
41355
41675
|
if (Array.isArray(nodeOrNodes)) elements = nodeOrNodes;
|
|
@@ -41605,7 +41925,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
41605
41925
|
markElement.type = "element";
|
|
41606
41926
|
break;
|
|
41607
41927
|
case "underline": {
|
|
41608
|
-
const translated = translator$
|
|
41928
|
+
const translated = translator$1l.decode({
|
|
41609
41929
|
node: {
|
|
41610
41930
|
attrs: {
|
|
41611
41931
|
underlineType: attrs.underlineType ?? attrs.underline ?? null,
|
|
@@ -41669,7 +41989,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
41669
41989
|
break;
|
|
41670
41990
|
case "highlight": {
|
|
41671
41991
|
const highlightValue = attrs.color ?? attrs.highlight ?? null;
|
|
41672
|
-
const translated = translator$
|
|
41992
|
+
const translated = translator$1q.decode({ node: { attrs: { highlight: highlightValue } } });
|
|
41673
41993
|
return translated || {};
|
|
41674
41994
|
}
|
|
41675
41995
|
case "link":
|
|
@@ -42048,6 +42368,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
42048
42368
|
this.fonts = params2?.fonts || {};
|
|
42049
42369
|
this.addedMedia = {};
|
|
42050
42370
|
this.comments = [];
|
|
42371
|
+
this.inlineDocumentFonts = [];
|
|
42051
42372
|
this.docHiglightColors = /* @__PURE__ */ new Set([]);
|
|
42052
42373
|
this.xml = params2?.xml;
|
|
42053
42374
|
this.declaration = null;
|
|
@@ -42334,6 +42655,23 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
42334
42655
|
return result;
|
|
42335
42656
|
}
|
|
42336
42657
|
getDocumentFonts() {
|
|
42658
|
+
const inlineDocumentFonts = [...new Set(this.inlineDocumentFonts || [])];
|
|
42659
|
+
const fontTable = this.convertedXml["word/fontTable.xml"];
|
|
42660
|
+
if (!fontTable) {
|
|
42661
|
+
return inlineDocumentFonts;
|
|
42662
|
+
}
|
|
42663
|
+
const wFonts = fontTable.elements?.find((element) => element.name === "w:fonts");
|
|
42664
|
+
if (!wFonts) {
|
|
42665
|
+
return inlineDocumentFonts;
|
|
42666
|
+
}
|
|
42667
|
+
if (!wFonts.elements) {
|
|
42668
|
+
return inlineDocumentFonts;
|
|
42669
|
+
}
|
|
42670
|
+
const fontsInFontTable = wFonts.elements.filter((element) => element.name === "w:font").map((element) => element.attributes["w:name"]);
|
|
42671
|
+
const allFonts = [...inlineDocumentFonts, ...fontsInFontTable];
|
|
42672
|
+
return [...new Set(allFonts)];
|
|
42673
|
+
}
|
|
42674
|
+
getFontFaceImportString() {
|
|
42337
42675
|
const fontTable = this.convertedXml["word/fontTable.xml"];
|
|
42338
42676
|
if (!fontTable || !Object.keys(this.fonts).length) return;
|
|
42339
42677
|
const fonts = fontTable.elements.find((el) => el.name === "w:fonts");
|
|
@@ -42347,6 +42685,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
42347
42685
|
const rels = this.convertedXml["word/_rels/fontTable.xml.rels"];
|
|
42348
42686
|
const relationships = rels?.elements.find((el) => el.name === "Relationships") || {};
|
|
42349
42687
|
const { elements } = relationships;
|
|
42688
|
+
const fontsImported = [];
|
|
42350
42689
|
let styleString = "";
|
|
42351
42690
|
for (const font of fontsToInclude) {
|
|
42352
42691
|
const filePath = elements.find((el) => el.attributes.Id === font.attributes["r:id"])?.attributes?.Target;
|
|
@@ -42363,6 +42702,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
42363
42702
|
const isItalic = font.name.includes("Italic");
|
|
42364
42703
|
const isLight = font.name.includes("Light");
|
|
42365
42704
|
const fontWeight = isNormal ? "normal" : isBold ? "bold" : isLight ? "200" : "normal";
|
|
42705
|
+
if (!fontsImported.includes(font.fontFamily)) {
|
|
42706
|
+
fontsImported.push(font.fontFamily);
|
|
42707
|
+
}
|
|
42366
42708
|
styleString += `
|
|
42367
42709
|
@font-face {
|
|
42368
42710
|
font-style: ${isItalic ? "italic" : "normal"};
|
|
@@ -42373,7 +42715,10 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
42373
42715
|
}
|
|
42374
42716
|
`;
|
|
42375
42717
|
}
|
|
42376
|
-
return
|
|
42718
|
+
return {
|
|
42719
|
+
styleString,
|
|
42720
|
+
fontsImported
|
|
42721
|
+
};
|
|
42377
42722
|
}
|
|
42378
42723
|
getDocumentInternalId() {
|
|
42379
42724
|
const settingsLocation = "word/settings.xml";
|
|
@@ -42428,6 +42773,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
42428
42773
|
this.numbering = result.numbering;
|
|
42429
42774
|
this.comments = result.comments;
|
|
42430
42775
|
this.linkedStyles = result.linkedStyles;
|
|
42776
|
+
this.inlineDocumentFonts = result.inlineDocumentFonts;
|
|
42431
42777
|
return result.pmDoc;
|
|
42432
42778
|
} else {
|
|
42433
42779
|
return null;
|
|
@@ -45389,7 +45735,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
45389
45735
|
var __privateAdd$1 = (obj, member, value) => member.has(obj) ? __typeError$1("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
45390
45736
|
var __privateSet = (obj, member, value, setter) => (__accessCheck$1(obj, member, "write to private field"), member.set(obj, value), value);
|
|
45391
45737
|
var __privateMethod$1 = (obj, member, method) => (__accessCheck$1(obj, member, "access private method"), method);
|
|
45392
|
-
var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
|
|
45738
|
+
var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, checkFonts_fn, determineUnsupportedFontsWithLocalFonts_fn, determineUnsupportedFontsWithCanvas_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
|
|
45393
45739
|
var GOOD_LEAF_SIZE = 200;
|
|
45394
45740
|
var RopeSequence = function RopeSequence2() {
|
|
45395
45741
|
};
|
|
@@ -58458,6 +58804,29 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
58458
58804
|
}
|
|
58459
58805
|
return false;
|
|
58460
58806
|
};
|
|
58807
|
+
function canRenderFont(fontName, fallbackFont = "sans-serif") {
|
|
58808
|
+
const _canRenderFont = (fontName2, fallbackFont2) => {
|
|
58809
|
+
const canvas = document.createElement("canvas");
|
|
58810
|
+
const ctx2 = canvas.getContext("2d");
|
|
58811
|
+
ctx2.textBaseline = "top";
|
|
58812
|
+
const text = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
58813
|
+
ctx2.font = `72px ${fallbackFont2}`;
|
|
58814
|
+
const initialTextMeasurement = ctx2.measureText(text);
|
|
58815
|
+
const fallbackWidth = initialTextMeasurement.width;
|
|
58816
|
+
const fallbackHeight = initialTextMeasurement.actualBoundingBoxDescent;
|
|
58817
|
+
ctx2.font = `72px "${fontName2}", ${fallbackFont2}`;
|
|
58818
|
+
const customTextMeasurement = ctx2.measureText(text);
|
|
58819
|
+
const customFontWidth = customTextMeasurement.width;
|
|
58820
|
+
const customFontHeight = customTextMeasurement.actualBoundingBoxDescent;
|
|
58821
|
+
const isAvailable = customFontWidth !== fallbackWidth || customFontHeight !== fallbackHeight;
|
|
58822
|
+
return isAvailable;
|
|
58823
|
+
};
|
|
58824
|
+
if (_canRenderFont(fontName, fallbackFont)) {
|
|
58825
|
+
return true;
|
|
58826
|
+
}
|
|
58827
|
+
const oppositeFallbackFont = fallbackFont === "sans-serif" ? "serif" : "sans-serif";
|
|
58828
|
+
return _canRenderFont(fontName, oppositeFallbackFont);
|
|
58829
|
+
}
|
|
58461
58830
|
const { findChildren: findChildren$3 } = helpers;
|
|
58462
58831
|
function getAllFieldAnnotations(state2) {
|
|
58463
58832
|
let fieldAnnotations = findChildren$3(state2.doc, (node) => node.type.name === "fieldAnnotation");
|
|
@@ -59507,6 +59876,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
59507
59876
|
__publicField$1(this, "schema");
|
|
59508
59877
|
__publicField$1(this, "view");
|
|
59509
59878
|
__publicField$1(this, "isFocused", false);
|
|
59879
|
+
__publicField$1(this, "fontsImported", []);
|
|
59510
59880
|
__publicField$1(this, "options", {
|
|
59511
59881
|
element: null,
|
|
59512
59882
|
selector: null,
|
|
@@ -59567,6 +59937,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
59567
59937
|
onPaginationUpdate: () => null,
|
|
59568
59938
|
onException: () => null,
|
|
59569
59939
|
onListDefinitionsChange: () => null,
|
|
59940
|
+
onFontsResolved: null,
|
|
59570
59941
|
// async (file) => url;
|
|
59571
59942
|
handleImageUpload: null,
|
|
59572
59943
|
// telemetry
|
|
@@ -60543,6 +60914,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
60543
60914
|
this.emit("beforeCreate", { editor: this });
|
|
60544
60915
|
this.on("contentError", this.options.onContentError);
|
|
60545
60916
|
this.mount(this.options.element);
|
|
60917
|
+
if (!this.options.isHeadless) {
|
|
60918
|
+
__privateMethod$1(this, _Editor_instances, checkFonts_fn).call(this);
|
|
60919
|
+
}
|
|
60546
60920
|
this.on("create", this.options.onCreate);
|
|
60547
60921
|
this.on("update", this.options.onUpdate);
|
|
60548
60922
|
this.on("selectionUpdate", this.options.onSelectionUpdate);
|
|
@@ -60690,13 +61064,74 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
60690
61064
|
}
|
|
60691
61065
|
};
|
|
60692
61066
|
initFonts_fn = function() {
|
|
60693
|
-
const
|
|
60694
|
-
if (styleString?.length) {
|
|
61067
|
+
const results = this.converter.getFontFaceImportString();
|
|
61068
|
+
if (results?.styleString?.length) {
|
|
60695
61069
|
const style2 = document.createElement("style");
|
|
60696
|
-
style2.textContent = styleString;
|
|
61070
|
+
style2.textContent = results.styleString;
|
|
60697
61071
|
document.head.appendChild(style2);
|
|
61072
|
+
this.fontsImported = results.fontsImported;
|
|
60698
61073
|
}
|
|
60699
61074
|
};
|
|
61075
|
+
checkFonts_fn = async function() {
|
|
61076
|
+
if (!this.options.onFontsResolved || typeof this.options.onFontsResolved !== "function") {
|
|
61077
|
+
return;
|
|
61078
|
+
}
|
|
61079
|
+
if (this.options.isHeadless) {
|
|
61080
|
+
return;
|
|
61081
|
+
}
|
|
61082
|
+
const fontsUsedInDocument = this.converter.getDocumentFonts();
|
|
61083
|
+
if (!("queryLocalFonts" in window)) {
|
|
61084
|
+
console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
|
|
61085
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
|
|
61086
|
+
this.options.onFontsResolved({
|
|
61087
|
+
documentFonts: fontsUsedInDocument,
|
|
61088
|
+
unsupportedFonts
|
|
61089
|
+
});
|
|
61090
|
+
return;
|
|
61091
|
+
}
|
|
61092
|
+
const localFontAccess = await navigator.permissions.query({ name: "local-fonts" });
|
|
61093
|
+
if (localFontAccess.state === "denied") {
|
|
61094
|
+
console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
|
|
61095
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
|
|
61096
|
+
this.options.onFontsResolved({
|
|
61097
|
+
documentFonts: fontsUsedInDocument,
|
|
61098
|
+
unsupportedFonts
|
|
61099
|
+
});
|
|
61100
|
+
return;
|
|
61101
|
+
}
|
|
61102
|
+
try {
|
|
61103
|
+
const localFonts = await window.queryLocalFonts();
|
|
61104
|
+
const uniqueLocalFonts = [...new Set(localFonts.map((font) => font.family))];
|
|
61105
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithLocalFonts_fn).call(this, fontsUsedInDocument, uniqueLocalFonts);
|
|
61106
|
+
this.options.onFontsResolved({
|
|
61107
|
+
documentFonts: fontsUsedInDocument,
|
|
61108
|
+
unsupportedFonts
|
|
61109
|
+
});
|
|
61110
|
+
} catch {
|
|
61111
|
+
console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
|
|
61112
|
+
const unsupportedFonts = __privateMethod$1(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
|
|
61113
|
+
this.options.onFontsResolved({
|
|
61114
|
+
documentFonts: fontsUsedInDocument,
|
|
61115
|
+
unsupportedFonts
|
|
61116
|
+
});
|
|
61117
|
+
}
|
|
61118
|
+
};
|
|
61119
|
+
determineUnsupportedFontsWithLocalFonts_fn = function(fonts, localFonts) {
|
|
61120
|
+
const unsupportedFonts = fonts.filter((font) => {
|
|
61121
|
+
const isLocalFont = localFonts.includes(font);
|
|
61122
|
+
const isFontImported = this.fontsImported.includes(font);
|
|
61123
|
+
return !isLocalFont && !isFontImported;
|
|
61124
|
+
});
|
|
61125
|
+
return unsupportedFonts;
|
|
61126
|
+
};
|
|
61127
|
+
determineUnsupportedFontsWithCanvas_fn = function(fonts) {
|
|
61128
|
+
const unsupportedFonts = fonts.filter((font) => {
|
|
61129
|
+
const canRender = canRenderFont(font);
|
|
61130
|
+
const isFontImported = this.fontsImported.includes(font);
|
|
61131
|
+
return !canRender && !isFontImported;
|
|
61132
|
+
});
|
|
61133
|
+
return unsupportedFonts;
|
|
61134
|
+
};
|
|
60700
61135
|
createSchema_fn = function() {
|
|
60701
61136
|
this.schema = this.extensionService.schema;
|
|
60702
61137
|
};
|
|
@@ -69453,6 +69888,15 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
69453
69888
|
widthUnit: {
|
|
69454
69889
|
default: "px",
|
|
69455
69890
|
rendered: false
|
|
69891
|
+
},
|
|
69892
|
+
/**
|
|
69893
|
+
* @category Attribute
|
|
69894
|
+
* @param {TableCellProperties} tableCellProperties - Properties for the table cell.
|
|
69895
|
+
* @see {@link https://ecma-international.org/publications-and-standards/standards/ecma-376/} "Fundamentals And Markup Language Reference", page 463
|
|
69896
|
+
*/
|
|
69897
|
+
tableCellProperties: {
|
|
69898
|
+
default: null,
|
|
69899
|
+
rendered: false
|
|
69456
69900
|
}
|
|
69457
69901
|
};
|
|
69458
69902
|
},
|
|
@@ -71612,6 +72056,58 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
71612
72056
|
}
|
|
71613
72057
|
});
|
|
71614
72058
|
};
|
|
72059
|
+
const normalizeWrap = (attrs = {}) => {
|
|
72060
|
+
const wrap2 = attrs.wrap;
|
|
72061
|
+
if (wrap2?.type && wrap2.type !== "Inline") {
|
|
72062
|
+
return {
|
|
72063
|
+
type: wrap2.type,
|
|
72064
|
+
attrs: wrap2.attrs ?? {}
|
|
72065
|
+
};
|
|
72066
|
+
}
|
|
72067
|
+
if (wrap2?.type === "Inline" && Object.keys(wrap2.attrs ?? {}).length) {
|
|
72068
|
+
return {
|
|
72069
|
+
type: "Inline",
|
|
72070
|
+
attrs: wrap2.attrs
|
|
72071
|
+
};
|
|
72072
|
+
}
|
|
72073
|
+
if (!wrap2 && attrs.wrapText) {
|
|
72074
|
+
return {
|
|
72075
|
+
type: "Square",
|
|
72076
|
+
attrs: {
|
|
72077
|
+
wrapText: attrs.wrapText
|
|
72078
|
+
}
|
|
72079
|
+
};
|
|
72080
|
+
}
|
|
72081
|
+
if (!wrap2 && attrs.wrapTopAndBottom) {
|
|
72082
|
+
return {
|
|
72083
|
+
type: "TopAndBottom",
|
|
72084
|
+
attrs: {}
|
|
72085
|
+
};
|
|
72086
|
+
}
|
|
72087
|
+
if (wrap2?.type === "Inline") {
|
|
72088
|
+
return {
|
|
72089
|
+
type: "Inline",
|
|
72090
|
+
attrs: wrap2.attrs ?? {}
|
|
72091
|
+
};
|
|
72092
|
+
}
|
|
72093
|
+
return {
|
|
72094
|
+
type: "Inline",
|
|
72095
|
+
attrs: {}
|
|
72096
|
+
};
|
|
72097
|
+
};
|
|
72098
|
+
const normalizeMarginOffset = (marginOffset = {}) => {
|
|
72099
|
+
const { left: left2, horizontal, ...rest } = marginOffset;
|
|
72100
|
+
return {
|
|
72101
|
+
...rest,
|
|
72102
|
+
horizontal: horizontal ?? left2
|
|
72103
|
+
};
|
|
72104
|
+
};
|
|
72105
|
+
const getNormalizedImageAttrs = (attrs = {}) => {
|
|
72106
|
+
return {
|
|
72107
|
+
wrap: normalizeWrap(attrs),
|
|
72108
|
+
marginOffset: normalizeMarginOffset(attrs.marginOffset ?? {})
|
|
72109
|
+
};
|
|
72110
|
+
};
|
|
71615
72111
|
const ImagePositionPluginKey = new PluginKey("ImagePosition");
|
|
71616
72112
|
const ImagePositionPlugin = ({ editor }) => {
|
|
71617
72113
|
const { view } = editor;
|
|
@@ -71659,7 +72155,8 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
71659
72155
|
let style2 = "";
|
|
71660
72156
|
let className = "";
|
|
71661
72157
|
const { vRelativeFrom, alignH } = node.attrs.anchorData;
|
|
71662
|
-
const { size: size2, padding
|
|
72158
|
+
const { size: size2, padding } = node.attrs;
|
|
72159
|
+
const { marginOffset } = getNormalizedImageAttrs(node.attrs);
|
|
71663
72160
|
const pageBreak = findPreviousDomNodeWithClass(view, pos, "pagination-break-wrapper");
|
|
71664
72161
|
if (pageBreak) {
|
|
71665
72162
|
switch (alignH) {
|
|
@@ -71776,7 +72273,24 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
71776
72273
|
rendered: false
|
|
71777
72274
|
},
|
|
71778
72275
|
originalAttributes: { rendered: false },
|
|
71779
|
-
|
|
72276
|
+
/**
|
|
72277
|
+
* @category Attribute
|
|
72278
|
+
* @param {Object} wrap - Wrapping options
|
|
72279
|
+
* @param {string} wrap.type - Wrap type: "None", "Square", "Through", "Tight", "TopAndBottom", "Inline"
|
|
72280
|
+
* @param {Object} [wrap.attrs] - Wrap attributes (only allowed attributes for the given type will be accepted)
|
|
72281
|
+
* @param {string} [wrap.attrs.wrapText] - Text wrapping mode for Square type: "bothSides", "largest", "left", "right"
|
|
72282
|
+
* @param {number} [wrap.attrs.distTop] - Top distance in pixels
|
|
72283
|
+
* @param {number} [wrap.attrs.distBottom] - Bottom distance in pixels
|
|
72284
|
+
* @param {number} [wrap.attrs.distLeft] - Left distance in pixels
|
|
72285
|
+
* @param {number} [wrap.attrs.distRight] - Right distance in pixels
|
|
72286
|
+
* @param {Array} [wrap.attrs.polygon] - Polygon points for Through/Tight types: [[x1,y1], [x2,y2], ...]
|
|
72287
|
+
* @param {boolean} [wrap.attrs.behindDoc] - Whether image should be behind document text (for wrapNone)
|
|
72288
|
+
*/
|
|
72289
|
+
wrap: {
|
|
72290
|
+
default: { type: "Inline" },
|
|
72291
|
+
rendered: false
|
|
72292
|
+
// Handled in main renderDOM
|
|
72293
|
+
},
|
|
71780
72294
|
anchorData: {
|
|
71781
72295
|
default: null,
|
|
71782
72296
|
rendered: false
|
|
@@ -71822,7 +72336,6 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
71822
72336
|
* @private
|
|
71823
72337
|
*/
|
|
71824
72338
|
simplePos: { rendered: false },
|
|
71825
|
-
wrapText: { rendered: false },
|
|
71826
72339
|
extension: { rendered: false },
|
|
71827
72340
|
size: {
|
|
71828
72341
|
default: {},
|
|
@@ -71838,55 +72351,13 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
71838
72351
|
},
|
|
71839
72352
|
padding: {
|
|
71840
72353
|
default: {},
|
|
71841
|
-
|
|
71842
|
-
|
|
71843
|
-
const { rotation } = transformData;
|
|
71844
|
-
const { height, width } = size2;
|
|
71845
|
-
if (rotation && height && width) {
|
|
71846
|
-
const { horizontal, vertical } = getRotationMargins(width, height, rotation);
|
|
71847
|
-
left2 += horizontal;
|
|
71848
|
-
right2 += horizontal;
|
|
71849
|
-
top2 += vertical;
|
|
71850
|
-
bottom2 += vertical;
|
|
71851
|
-
}
|
|
71852
|
-
let style2 = "";
|
|
71853
|
-
if (left2 && marginOffset?.left == null) style2 += `margin-left: ${left2}px;`;
|
|
71854
|
-
if (top2 && marginOffset?.top == null) style2 += `margin-top: ${top2}px;`;
|
|
71855
|
-
if (bottom2) style2 += `margin-bottom: ${bottom2}px;`;
|
|
71856
|
-
if (right2) style2 += `margin-right: ${right2}px;`;
|
|
71857
|
-
return { style: style2 };
|
|
71858
|
-
}
|
|
72354
|
+
rendered: false
|
|
72355
|
+
// Handled in main renderDOM
|
|
71859
72356
|
},
|
|
71860
72357
|
marginOffset: {
|
|
71861
72358
|
default: {},
|
|
71862
|
-
|
|
71863
|
-
|
|
71864
|
-
const hasMarginOffsets = marginOffset?.left != null || marginOffset?.top != null;
|
|
71865
|
-
if (!hasAnchorData && !hasMarginOffsets) return {};
|
|
71866
|
-
const relativeFromPageV = anchorData?.vRelativeFrom === "page";
|
|
71867
|
-
const maxMarginV = 500;
|
|
71868
|
-
const baseLeft = marginOffset?.left ?? 0;
|
|
71869
|
-
const baseTop = marginOffset?.top ?? 0;
|
|
71870
|
-
let rotationLeft = 0;
|
|
71871
|
-
let rotationTop = 0;
|
|
71872
|
-
const { rotation } = transformData ?? {};
|
|
71873
|
-
const { height, width } = size2 ?? {};
|
|
71874
|
-
if (rotation && height && width) {
|
|
71875
|
-
const { horizontal, vertical } = getRotationMargins(width, height, rotation);
|
|
71876
|
-
rotationLeft = horizontal;
|
|
71877
|
-
rotationTop = vertical;
|
|
71878
|
-
}
|
|
71879
|
-
const left2 = baseLeft + rotationLeft;
|
|
71880
|
-
const top2 = baseTop + rotationTop;
|
|
71881
|
-
let style2 = "";
|
|
71882
|
-
if (left2) style2 += `margin-left: ${left2}px;`;
|
|
71883
|
-
if (top2) {
|
|
71884
|
-
if (relativeFromPageV && top2 >= maxMarginV) style2 += `margin-top: ${maxMarginV}px;`;
|
|
71885
|
-
else style2 += `margin-top: ${top2}px;`;
|
|
71886
|
-
}
|
|
71887
|
-
if (!style2) return {};
|
|
71888
|
-
return { style: style2 };
|
|
71889
|
-
}
|
|
72359
|
+
rendered: false
|
|
72360
|
+
// Handled in main renderDOM
|
|
71890
72361
|
},
|
|
71891
72362
|
style: {
|
|
71892
72363
|
default: null,
|
|
@@ -71905,8 +72376,181 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
71905
72376
|
}
|
|
71906
72377
|
];
|
|
71907
72378
|
},
|
|
71908
|
-
renderDOM({ htmlAttributes }) {
|
|
71909
|
-
|
|
72379
|
+
renderDOM({ node, htmlAttributes }) {
|
|
72380
|
+
const { wrap: wrap2, marginOffset } = getNormalizedImageAttrs(node.attrs);
|
|
72381
|
+
const { anchorData, padding, transformData = {}, size: size2 = { width: 0, height: 0 } } = node.attrs;
|
|
72382
|
+
const margin = {
|
|
72383
|
+
left: 0,
|
|
72384
|
+
right: 0,
|
|
72385
|
+
top: 0,
|
|
72386
|
+
bottom: 0
|
|
72387
|
+
};
|
|
72388
|
+
let centered = false;
|
|
72389
|
+
let floatRight = false;
|
|
72390
|
+
let baseHorizontal = marginOffset?.horizontal || 0;
|
|
72391
|
+
let style2 = "";
|
|
72392
|
+
if (padding) {
|
|
72393
|
+
if (padding.left) margin.left += padding.left;
|
|
72394
|
+
if (padding.right) margin.right += padding.right;
|
|
72395
|
+
if (padding.top) margin.top += padding.top;
|
|
72396
|
+
if (padding.bottom) margin.bottom += padding.bottom;
|
|
72397
|
+
}
|
|
72398
|
+
const { rotation } = transformData;
|
|
72399
|
+
const { height, width } = size2;
|
|
72400
|
+
if (rotation && height && width) {
|
|
72401
|
+
const { horizontal, vertical } = getRotationMargins(width, height, rotation);
|
|
72402
|
+
margin.left += horizontal;
|
|
72403
|
+
margin.right += horizontal;
|
|
72404
|
+
margin.top += vertical;
|
|
72405
|
+
margin.bottom += vertical;
|
|
72406
|
+
}
|
|
72407
|
+
if (wrap2 && wrap2.type) {
|
|
72408
|
+
const { type: type2, attrs = {} } = wrap2;
|
|
72409
|
+
switch (type2) {
|
|
72410
|
+
case "None":
|
|
72411
|
+
style2 += "position: absolute;";
|
|
72412
|
+
if (attrs.behindDoc) {
|
|
72413
|
+
style2 += "z-index: -1;";
|
|
72414
|
+
} else {
|
|
72415
|
+
style2 += "z-index: 1;";
|
|
72416
|
+
}
|
|
72417
|
+
break;
|
|
72418
|
+
case "Square":
|
|
72419
|
+
style2 += "shape-outside: border-box; clear: both;";
|
|
72420
|
+
if (attrs.wrapText === "right") {
|
|
72421
|
+
style2 += "float: left;";
|
|
72422
|
+
} else if (attrs.wrapText === "left") {
|
|
72423
|
+
style2 += "float: right;";
|
|
72424
|
+
floatRight = true;
|
|
72425
|
+
} else if (["largest", "bothSides"].includes(attrs.wrapText)) {
|
|
72426
|
+
const pageStyles2 = this.editor?.converter?.pageStyles;
|
|
72427
|
+
if (pageStyles2?.pageSize && pageStyles2?.pageMargins && size2.width) {
|
|
72428
|
+
const pageWidth = inchesToPixels(pageStyles2.pageSize.width);
|
|
72429
|
+
const leftMargin = inchesToPixels(pageStyles2.pageMargins.left);
|
|
72430
|
+
const rightMargin = inchesToPixels(pageStyles2.pageMargins.right);
|
|
72431
|
+
const contentWidth = pageWidth - leftMargin - rightMargin;
|
|
72432
|
+
const imageWidth = size2.width + (attrs.distLeft || 0) + (attrs.distRight || 0);
|
|
72433
|
+
const leftSpace = marginOffset.horizontal;
|
|
72434
|
+
const rightSpace = contentWidth - leftSpace - imageWidth;
|
|
72435
|
+
if (rightSpace < 0) {
|
|
72436
|
+
style2 += "float: left;";
|
|
72437
|
+
} else if (rightSpace > leftSpace) {
|
|
72438
|
+
style2 += "float: left;";
|
|
72439
|
+
} else {
|
|
72440
|
+
style2 += "float: right;";
|
|
72441
|
+
floatRight = true;
|
|
72442
|
+
baseHorizontal = rightSpace;
|
|
72443
|
+
}
|
|
72444
|
+
} else {
|
|
72445
|
+
style2 += "float: left;";
|
|
72446
|
+
}
|
|
72447
|
+
}
|
|
72448
|
+
if (attrs.distTop) margin.top += attrs.distTop;
|
|
72449
|
+
if (attrs.distBottom) margin.bottom += attrs.distBottom;
|
|
72450
|
+
if (attrs.distLeft) margin.left += attrs.distLeft;
|
|
72451
|
+
if (attrs.distRight) margin.right += attrs.distRight;
|
|
72452
|
+
break;
|
|
72453
|
+
case "Through":
|
|
72454
|
+
case "Tight":
|
|
72455
|
+
style2 += "clear: both;";
|
|
72456
|
+
const pageStyles = this.editor?.converter?.pageStyles;
|
|
72457
|
+
if (pageStyles?.pageSize && pageStyles?.pageMargins && size2.width) {
|
|
72458
|
+
const pageWidth = inchesToPixels(pageStyles.pageSize.width);
|
|
72459
|
+
const leftMargin = inchesToPixels(pageStyles.pageMargins.left);
|
|
72460
|
+
const rightMargin = inchesToPixels(pageStyles.pageMargins.right);
|
|
72461
|
+
const contentWidth = pageWidth - leftMargin - rightMargin;
|
|
72462
|
+
const imageWidth = size2.width + (attrs.distLeft || 0) + (attrs.distRight || 0);
|
|
72463
|
+
const leftSpace = marginOffset.horizontal;
|
|
72464
|
+
const rightSpace = contentWidth - leftSpace - imageWidth;
|
|
72465
|
+
if (rightSpace < 0) {
|
|
72466
|
+
style2 += "float: left;";
|
|
72467
|
+
} else if (rightSpace > leftSpace) {
|
|
72468
|
+
style2 += "float: left;";
|
|
72469
|
+
} else {
|
|
72470
|
+
style2 += "float: right;";
|
|
72471
|
+
floatRight = true;
|
|
72472
|
+
baseHorizontal = rightSpace;
|
|
72473
|
+
}
|
|
72474
|
+
} else {
|
|
72475
|
+
style2 += "float: left;";
|
|
72476
|
+
}
|
|
72477
|
+
if (attrs.distTop) margin.top += attrs.distTop;
|
|
72478
|
+
if (attrs.distBottom) margin.bottom += attrs.distBottom;
|
|
72479
|
+
if (attrs.distLeft) margin.left += attrs.distLeft;
|
|
72480
|
+
if (attrs.distRight) margin.right += attrs.distRight;
|
|
72481
|
+
if (attrs.polygon) {
|
|
72482
|
+
let horizontalOffset = floatRight ? attrs.polygon[0][0] || 0 : marginOffset.horizontal + 15;
|
|
72483
|
+
let maxX = 0;
|
|
72484
|
+
let minX = 0;
|
|
72485
|
+
let minY = 0;
|
|
72486
|
+
let maxY = 0;
|
|
72487
|
+
attrs.polygon.forEach(([x, y2]) => {
|
|
72488
|
+
if (floatRight && x < horizontalOffset) horizontalOffset = x;
|
|
72489
|
+
if (x > maxX) maxX = x;
|
|
72490
|
+
if (x < minX) minX = x;
|
|
72491
|
+
if (y2 > maxY) maxY = y2;
|
|
72492
|
+
if (y2 < minY) minY = y2;
|
|
72493
|
+
});
|
|
72494
|
+
const originalWidth = maxX - minX;
|
|
72495
|
+
const originalHeight = maxY - minY;
|
|
72496
|
+
const scaleWidth = Math.min(1, size2.width / originalWidth);
|
|
72497
|
+
const scaleHeight = Math.min(1, size2.height / originalHeight);
|
|
72498
|
+
const verticalOffset = Math.max(0, marginOffset.top);
|
|
72499
|
+
const points = attrs.polygon.map(([x, y2]) => `${horizontalOffset + x * scaleWidth}px ${verticalOffset + y2 * scaleHeight}px`).join(", ");
|
|
72500
|
+
style2 += `shape-outside: polygon(${points});`;
|
|
72501
|
+
}
|
|
72502
|
+
break;
|
|
72503
|
+
case "TopAndBottom":
|
|
72504
|
+
style2 += "display: block; clear: both;";
|
|
72505
|
+
if (attrs.distTop) margin.top += attrs.distTop;
|
|
72506
|
+
if (attrs.distBottom) margin.bottom += attrs.distBottom;
|
|
72507
|
+
centered = true;
|
|
72508
|
+
break;
|
|
72509
|
+
}
|
|
72510
|
+
}
|
|
72511
|
+
const hasAnchorData = Boolean(anchorData);
|
|
72512
|
+
const hasMarginOffsets = marginOffset?.horizontal != null || marginOffset?.top != null;
|
|
72513
|
+
if (hasAnchorData || hasMarginOffsets) {
|
|
72514
|
+
const relativeFromPageV = anchorData?.vRelativeFrom === "page";
|
|
72515
|
+
const maxMarginV = 500;
|
|
72516
|
+
const baseTop = Math.max(0, marginOffset?.top ?? 0);
|
|
72517
|
+
let rotationHorizontal = 0;
|
|
72518
|
+
let rotationTop = 0;
|
|
72519
|
+
const { rotation: rotation2 } = transformData ?? {};
|
|
72520
|
+
const { height: height2, width: width2 } = size2 ?? {};
|
|
72521
|
+
if (rotation2 && height2 && width2) {
|
|
72522
|
+
const { horizontal: horizontal2, vertical } = getRotationMargins(width2, height2, rotation2);
|
|
72523
|
+
rotationHorizontal = horizontal2;
|
|
72524
|
+
rotationTop = vertical;
|
|
72525
|
+
}
|
|
72526
|
+
const horizontal = baseHorizontal + rotationHorizontal;
|
|
72527
|
+
const top2 = baseTop + rotationTop;
|
|
72528
|
+
if (horizontal) {
|
|
72529
|
+
if (floatRight) {
|
|
72530
|
+
margin.right += horizontal;
|
|
72531
|
+
} else {
|
|
72532
|
+
margin.left += horizontal;
|
|
72533
|
+
}
|
|
72534
|
+
}
|
|
72535
|
+
if (top2) {
|
|
72536
|
+
if (relativeFromPageV && top2 >= maxMarginV) margin.top += maxMarginV;
|
|
72537
|
+
else margin.top += top2;
|
|
72538
|
+
}
|
|
72539
|
+
}
|
|
72540
|
+
if (centered) {
|
|
72541
|
+
style2 += "margin-left: auto; margin-right: auto;";
|
|
72542
|
+
} else {
|
|
72543
|
+
if (margin.left) style2 += `margin-left: ${margin.left}px;`;
|
|
72544
|
+
if (margin.right) style2 += `margin-right: ${margin.right}px;`;
|
|
72545
|
+
}
|
|
72546
|
+
if (margin.top) style2 += `margin-top: ${margin.top}px;`;
|
|
72547
|
+
if (margin.bottom) style2 += `margin-bottom: ${margin.bottom}px;`;
|
|
72548
|
+
const finalAttributes = { ...htmlAttributes };
|
|
72549
|
+
if (style2) {
|
|
72550
|
+
const existingStyle = finalAttributes.style || "";
|
|
72551
|
+
finalAttributes.style = existingStyle + (existingStyle ? " " : "") + style2;
|
|
72552
|
+
}
|
|
72553
|
+
return ["img", Attribute.mergeAttributes(this.options.htmlAttributes, finalAttributes)];
|
|
71910
72554
|
},
|
|
71911
72555
|
addCommands() {
|
|
71912
72556
|
return {
|
|
@@ -71928,6 +72572,85 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
71928
72572
|
type: this.name,
|
|
71929
72573
|
attrs: options
|
|
71930
72574
|
});
|
|
72575
|
+
},
|
|
72576
|
+
/**
|
|
72577
|
+
* Set the wrapping mode and attributes for the selected image
|
|
72578
|
+
* @category Command
|
|
72579
|
+
* @param {Object} options - Wrapping options
|
|
72580
|
+
* @param {string} options.type - Wrap type: "None", "Square", "Through", "Tight", "TopAndBottom", "Inline"
|
|
72581
|
+
* @param {Object} [options.attrs] - Wrap attributes (only allowed attributes for the given type will be accepted)
|
|
72582
|
+
* @param {string} [options.attrs.wrapText] - Text wrapping mode for Square type: "bothSides", "largest", "left", "right"
|
|
72583
|
+
* @param {number} [options.attrs.distTop] - Top distance in pixels
|
|
72584
|
+
* @param {number} [options.attrs.distBottom] - Bottom distance in pixels
|
|
72585
|
+
* @param {number} [options.attrs.distLeft] - Left distance in pixels
|
|
72586
|
+
* @param {number} [options.attrs.distRight] - Right distance in pixels
|
|
72587
|
+
* @param {Array} [options.attrs.polygon] - Polygon points for Through/Tight types: [[x1,y1], [x2,y2], ...]
|
|
72588
|
+
* @param {boolean} [options.attrs.behindDoc] - Whether image should be behind document text (for wrapNone)
|
|
72589
|
+
* @example
|
|
72590
|
+
* // No wrapping, behind document
|
|
72591
|
+
* editor.commands.setWrapping({ type: 'None', attrs: {behindDoc: true} })
|
|
72592
|
+
*
|
|
72593
|
+
* // Square wrapping on both sides with distances
|
|
72594
|
+
* editor.commands.setWrapping({
|
|
72595
|
+
* type: 'Square',
|
|
72596
|
+
* attrs: {
|
|
72597
|
+
* wrapText: 'bothSides',
|
|
72598
|
+
* distTop: 10,
|
|
72599
|
+
* distBottom: 10,
|
|
72600
|
+
* distLeft: 10,
|
|
72601
|
+
* distRight: 10
|
|
72602
|
+
* }
|
|
72603
|
+
* })
|
|
72604
|
+
*
|
|
72605
|
+
* // Tight wrapping with polygon
|
|
72606
|
+
* editor.commands.setWrapping({
|
|
72607
|
+
* type: 'Tight',
|
|
72608
|
+
* attrs: {
|
|
72609
|
+
* polygon: [[0, 0], [100, 0], [100, 100], [0, 100]]
|
|
72610
|
+
* }
|
|
72611
|
+
* })
|
|
72612
|
+
*
|
|
72613
|
+
* // Top and bottom wrapping
|
|
72614
|
+
* editor.commands.setWrapping({
|
|
72615
|
+
* type: 'TopAndBottom',
|
|
72616
|
+
* attrs: {
|
|
72617
|
+
* distTop: 15,
|
|
72618
|
+
* distBottom: 15
|
|
72619
|
+
* }
|
|
72620
|
+
* })
|
|
72621
|
+
*/
|
|
72622
|
+
setWrapping: (options) => ({ chain, state: state2 }) => {
|
|
72623
|
+
const { selection } = state2;
|
|
72624
|
+
const { $from } = selection;
|
|
72625
|
+
const node = $from.nodeAfter;
|
|
72626
|
+
if (!node || node.type.name !== this.name) {
|
|
72627
|
+
return false;
|
|
72628
|
+
}
|
|
72629
|
+
const { type: type2, attrs = {} } = options;
|
|
72630
|
+
const allowedAttrs = {};
|
|
72631
|
+
const allowedAttributes = {
|
|
72632
|
+
None: ["behindDoc"],
|
|
72633
|
+
Square: ["wrapText", "distTop", "distBottom", "distLeft", "distRight"],
|
|
72634
|
+
Through: ["distTop", "distBottom", "distLeft", "distRight", "polygon"],
|
|
72635
|
+
Tight: ["distTop", "distBottom", "distLeft", "distRight", "polygon"],
|
|
72636
|
+
TopAndBottom: ["distTop", "distBottom"],
|
|
72637
|
+
Inline: []
|
|
72638
|
+
};
|
|
72639
|
+
const allowedForType = allowedAttributes[type2] || [];
|
|
72640
|
+
Object.keys(attrs).forEach((key2) => {
|
|
72641
|
+
if (allowedForType.includes(key2)) {
|
|
72642
|
+
allowedAttrs[key2] = attrs[key2];
|
|
72643
|
+
}
|
|
72644
|
+
});
|
|
72645
|
+
const updatedAttrs = {
|
|
72646
|
+
...node.attrs,
|
|
72647
|
+
wrap: {
|
|
72648
|
+
type: type2,
|
|
72649
|
+
attrs: allowedAttrs
|
|
72650
|
+
},
|
|
72651
|
+
isAnchor: type2 !== "Inline"
|
|
72652
|
+
};
|
|
72653
|
+
return chain().updateAttributes(this.name, updatedAttrs).run();
|
|
71931
72654
|
}
|
|
71932
72655
|
};
|
|
71933
72656
|
},
|
|
@@ -94883,7 +95606,7 @@ ${style2}
|
|
|
94883
95606
|
}
|
|
94884
95607
|
};
|
|
94885
95608
|
const GenericPopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$2$1, [["__scopeId", "data-v-cbddcc0f"]]);
|
|
94886
|
-
const BlankDOCX$1 = "data:application/octet-stream;base64,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";
|
|
95609
|
+
const BlankDOCX$1 = "data:application/octet-stream;base64,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";
|
|
94887
95610
|
const _hoisted_1$1$1 = { class: "super-editor-container" };
|
|
94888
95611
|
const _hoisted_2$a = {
|
|
94889
95612
|
key: 1,
|
|
@@ -95276,74 +95999,89 @@ ${style2}
|
|
|
95276
95999
|
const SuperInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-4d5cff52"]]);
|
|
95277
96000
|
const additionalHandlers = Object.freeze({
|
|
95278
96001
|
"mc:AlternateContent": translator$1,
|
|
95279
|
-
"sd:pageReference": translator$
|
|
95280
|
-
"sd:tableOfContents": translator$
|
|
95281
|
-
"w:b": translator$
|
|
95282
|
-
"w:bidiVisual": translator$
|
|
95283
|
-
"w:bookmarkEnd": translator$
|
|
95284
|
-
"w:bookmarkStart": translator$
|
|
95285
|
-
"w:bottom": translator$
|
|
95286
|
-
"w:br": translator$
|
|
95287
|
-
"w:cantSplit": translator$
|
|
95288
|
-
"w:cnfStyle": translator$
|
|
95289
|
-
"w:color": translator$
|
|
95290
|
-
"w:divId": translator$
|
|
95291
|
-
"w:drawing": translator$
|
|
95292
|
-
"w:end": translator$
|
|
95293
|
-
"w:gridAfter": translator$
|
|
95294
|
-
"w:gridBefore": translator$
|
|
95295
|
-
"w:gridCol": translator$
|
|
95296
|
-
"w:hidden": translator$
|
|
95297
|
-
"w:highlight": translator$
|
|
95298
|
-
"w:hyperlink": translator$
|
|
95299
|
-
"w:i": translator$
|
|
95300
|
-
"w:insideH": translator$
|
|
95301
|
-
"w:insideV": translator$
|
|
95302
|
-
"w:jc": translator$
|
|
95303
|
-
"w:left": translator$
|
|
95304
|
-
"w:p": translator$
|
|
95305
|
-
"w:r": translator$
|
|
95306
|
-
"w:rFonts": translator$
|
|
95307
|
-
"w:rPr": translator$
|
|
95308
|
-
"w:rStyle": translator$
|
|
95309
|
-
"w:right": translator$
|
|
95310
|
-
"w:sdt": translator$
|
|
95311
|
-
"w:shd": translator$
|
|
95312
|
-
"w:start": translator$
|
|
95313
|
-
"w:strike": translator$
|
|
95314
|
-
"w:sz": translator
|
|
95315
|
-
"w:szCs": translator$
|
|
95316
|
-
"w:tab": translator$
|
|
95317
|
-
"w:tbl": translator$
|
|
95318
|
-
"w:tblBorders": translator$
|
|
95319
|
-
"w:tblCaption": translator$
|
|
95320
|
-
"w:tblCellMar": translator$
|
|
95321
|
-
"w:tblCellSpacing": translator$
|
|
95322
|
-
"w:tblDescription": translator$
|
|
95323
|
-
"w:tblGrid": translator$
|
|
95324
|
-
"w:tblHeader": translator$
|
|
95325
|
-
"w:tblInd": translator$
|
|
95326
|
-
"w:tblLayout": translator$
|
|
95327
|
-
"w:tblLook": translator$
|
|
95328
|
-
"w:tblOverlap": translator$
|
|
95329
|
-
"w:tblPr": translator$
|
|
95330
|
-
"w:tblStyle": translator$
|
|
95331
|
-
"w:tblStyleColBandSize": translator$
|
|
95332
|
-
"w:tblStyleRowBandSize": translator$
|
|
95333
|
-
"w:tblW": translator$
|
|
95334
|
-
"w:tblpPr": translator$
|
|
95335
|
-
"w:tc": translator$
|
|
95336
|
-
"w:top": translator$
|
|
95337
|
-
"w:tr": translator$
|
|
95338
|
-
"w:trHeight": translator$
|
|
95339
|
-
"w:trPr": translator$
|
|
95340
|
-
"w:u": translator$
|
|
95341
|
-
"w:wAfter": translator$
|
|
95342
|
-
"w:wBefore": translator
|
|
95343
|
-
"wp:anchor": translator$
|
|
95344
|
-
"wp:inline": translator$
|
|
96002
|
+
"sd:pageReference": translator$5,
|
|
96003
|
+
"sd:tableOfContents": translator$4,
|
|
96004
|
+
"w:b": translator$1n,
|
|
96005
|
+
"w:bidiVisual": translator$Y,
|
|
96006
|
+
"w:bookmarkEnd": translator$6,
|
|
96007
|
+
"w:bookmarkStart": translator$7,
|
|
96008
|
+
"w:bottom": translator$L,
|
|
96009
|
+
"w:br": translator$1r,
|
|
96010
|
+
"w:cantSplit": translator$1a,
|
|
96011
|
+
"w:cnfStyle": translator$19,
|
|
96012
|
+
"w:color": translator$1j,
|
|
96013
|
+
"w:divId": translator$18,
|
|
96014
|
+
"w:drawing": translator$9,
|
|
96015
|
+
"w:end": translator$J,
|
|
96016
|
+
"w:gridAfter": translator$17,
|
|
96017
|
+
"w:gridBefore": translator$16,
|
|
96018
|
+
"w:gridCol": translator$u,
|
|
96019
|
+
"w:hidden": translator$15,
|
|
96020
|
+
"w:highlight": translator$1q,
|
|
96021
|
+
"w:hyperlink": translator$1c,
|
|
96022
|
+
"w:i": translator$1m,
|
|
96023
|
+
"w:insideH": translator$H,
|
|
96024
|
+
"w:insideV": translator$G,
|
|
96025
|
+
"w:jc": translator$14,
|
|
96026
|
+
"w:left": translator$F,
|
|
96027
|
+
"w:p": translator$1o,
|
|
96028
|
+
"w:r": translator$1b,
|
|
96029
|
+
"w:rFonts": translator$1i,
|
|
96030
|
+
"w:rPr": translator$1d,
|
|
96031
|
+
"w:rStyle": translator$1h,
|
|
96032
|
+
"w:right": translator$D,
|
|
96033
|
+
"w:sdt": translator$8,
|
|
96034
|
+
"w:shd": translator$X,
|
|
96035
|
+
"w:start": translator$B,
|
|
96036
|
+
"w:strike": translator$1k,
|
|
96037
|
+
"w:sz": translator$1g,
|
|
96038
|
+
"w:szCs": translator$1f,
|
|
96039
|
+
"w:tab": translator$1p,
|
|
96040
|
+
"w:tbl": translator$s,
|
|
96041
|
+
"w:tblBorders": translator$x,
|
|
96042
|
+
"w:tblCaption": translator$W,
|
|
96043
|
+
"w:tblCellMar": translator$w,
|
|
96044
|
+
"w:tblCellSpacing": translator$13,
|
|
96045
|
+
"w:tblDescription": translator$V,
|
|
96046
|
+
"w:tblGrid": translator$t,
|
|
96047
|
+
"w:tblHeader": translator$12,
|
|
96048
|
+
"w:tblInd": translator$U,
|
|
96049
|
+
"w:tblLayout": translator$T,
|
|
96050
|
+
"w:tblLook": translator$S,
|
|
96051
|
+
"w:tblOverlap": translator$R,
|
|
96052
|
+
"w:tblPr": translator$v,
|
|
96053
|
+
"w:tblStyle": translator$Q,
|
|
96054
|
+
"w:tblStyleColBandSize": translator$P,
|
|
96055
|
+
"w:tblStyleRowBandSize": translator$O,
|
|
96056
|
+
"w:tblW": translator$N,
|
|
96057
|
+
"w:tblpPr": translator$M,
|
|
96058
|
+
"w:tc": translator$c,
|
|
96059
|
+
"w:top": translator$z,
|
|
96060
|
+
"w:tr": translator$Z,
|
|
96061
|
+
"w:trHeight": translator$11,
|
|
96062
|
+
"w:trPr": translator$_,
|
|
96063
|
+
"w:u": translator$1l,
|
|
96064
|
+
"w:wAfter": translator$10,
|
|
96065
|
+
"w:wBefore": translator$$,
|
|
96066
|
+
"wp:anchor": translator$b,
|
|
96067
|
+
"wp:inline": translator$a,
|
|
95345
96068
|
"w:commentRangeStart": commentRangeStartTranslator,
|
|
95346
|
-
"w:commentRangeEnd": commentRangeEndTranslator
|
|
96069
|
+
"w:commentRangeEnd": commentRangeEndTranslator,
|
|
96070
|
+
"w:vMerge": translator$p,
|
|
96071
|
+
"w:gridSpan": translator$q,
|
|
96072
|
+
"w:vAlign": translator$h,
|
|
96073
|
+
"w:noWrap": translator$l,
|
|
96074
|
+
"w:tcFitText": translator$i,
|
|
96075
|
+
"w:tcW": translator$r,
|
|
96076
|
+
"w:hideMark": translator$g,
|
|
96077
|
+
"w:textDirection": translator$j,
|
|
96078
|
+
"w:tl2br": translator$o,
|
|
96079
|
+
"w:tr2bl": translator$n,
|
|
96080
|
+
"w:header": translator$f,
|
|
96081
|
+
"w:headers": translator$e,
|
|
96082
|
+
"w:tcBorders": translator$m,
|
|
96083
|
+
"w:tcMar": translator$k,
|
|
96084
|
+
"w:tcPr": translator$d
|
|
95347
96085
|
});
|
|
95348
96086
|
const baseHandlers = {
|
|
95349
96087
|
...runPropertyTranslators,
|
|
@@ -95690,7 +96428,7 @@ ${style2}
|
|
|
95690
96428
|
this.errors = [];
|
|
95691
96429
|
}
|
|
95692
96430
|
}
|
|
95693
|
-
const BlankDOCX = "data:application/octet-stream;base64,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";
|
|
96431
|
+
const BlankDOCX = "data:application/octet-stream;base64,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";
|
|
95694
96432
|
function getDefaultExportFromCjs(x) {
|
|
95695
96433
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
95696
96434
|
}
|
|
@@ -111890,6 +112628,9 @@ ${style2}
|
|
|
111890
112628
|
const onEditorListdefinitionsChange = (params2) => {
|
|
111891
112629
|
proxy.$superdoc.emit("list-definitions-change", params2);
|
|
111892
112630
|
};
|
|
112631
|
+
const onFontsResolved = (params2) => {
|
|
112632
|
+
proxy.$superdoc.emit("fonts-resolved", params2);
|
|
112633
|
+
};
|
|
111893
112634
|
const editorOptions = (doc2) => {
|
|
111894
112635
|
const options = {
|
|
111895
112636
|
isDebug: proxy.$superdoc.config.isDebug || false,
|
|
@@ -111922,6 +112663,7 @@ ${style2}
|
|
|
111922
112663
|
onCommentsUpdate: onEditorCommentsUpdate,
|
|
111923
112664
|
onCommentLocationsUpdate: onEditorCommentLocationsUpdate,
|
|
111924
112665
|
onListDefinitionsChange: onEditorListdefinitionsChange,
|
|
112666
|
+
onFontsResolved: proxy?.$superdoc?.config?.onFontsResolved ? onFontsResolved : null,
|
|
111925
112667
|
onTransaction: onEditorTransaction,
|
|
111926
112668
|
ydoc: doc2.ydoc,
|
|
111927
112669
|
collaborationProvider: doc2.provider || null,
|
|
@@ -112300,7 +113042,7 @@ ${style2}
|
|
|
112300
113042
|
};
|
|
112301
113043
|
}
|
|
112302
113044
|
};
|
|
112303
|
-
const App = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-
|
|
113045
|
+
const App = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-6de7ff3a"]]);
|
|
112304
113046
|
const createSuperdocVueApp = () => {
|
|
112305
113047
|
const app = createApp(App);
|
|
112306
113048
|
const pinia = createPinia();
|
|
@@ -112381,6 +113123,7 @@ ${style2}
|
|
|
112381
113123
|
onException: () => null,
|
|
112382
113124
|
onListDefinitionsChange: () => null,
|
|
112383
113125
|
onTransaction: () => null,
|
|
113126
|
+
onFontsResolved: null,
|
|
112384
113127
|
// Image upload handler
|
|
112385
113128
|
// async (file) => url;
|
|
112386
113129
|
handleImageUpload: null,
|
|
@@ -112555,6 +113298,9 @@ ${style2}
|
|
|
112555
113298
|
this.on("content-error", this.onContentError);
|
|
112556
113299
|
this.on("exception", this.config.onException);
|
|
112557
113300
|
this.on("list-definitions-change", this.config.onListDefinitionsChange);
|
|
113301
|
+
if (this.config.onFontsResolved) {
|
|
113302
|
+
this.on("fonts-resolved", this.config.onFontsResolved);
|
|
113303
|
+
}
|
|
112558
113304
|
}
|
|
112559
113305
|
/**
|
|
112560
113306
|
* Initialize collaboration if configured
|