@superdoc-dev/cli 0.3.0-next.15 → 0.3.0-next.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +918 -270
- package/package.json +9 -9
package/dist/index.js
CHANGED
|
@@ -1372,8 +1372,8 @@ var init_operation_definitions = __esm(() => {
|
|
|
1372
1372
|
},
|
|
1373
1373
|
info: {
|
|
1374
1374
|
memberPath: "info",
|
|
1375
|
-
description: "Return document summary info including word, character, paragraph, heading, table, image, comment, tracked-change, SDT-field, and
|
|
1376
|
-
expectedResult: "Returns a DocumentInfo object with counts (words, characters, paragraphs, headings, tables, images, comments, trackedChanges, sdtFields, lists), document outline, capability flags, and revision.",
|
|
1375
|
+
description: "Return document summary info including word, character, paragraph, heading, table, image, comment, tracked-change, SDT-field, list, and page counts, plus outline and capabilities.",
|
|
1376
|
+
expectedResult: "Returns a DocumentInfo object with counts (words, characters, paragraphs, headings, tables, images, comments, trackedChanges, sdtFields, lists, and optionally pages when pagination is active), document outline, capability flags, and revision.",
|
|
1377
1377
|
requiresDocumentContext: true,
|
|
1378
1378
|
metadata: readOperation(),
|
|
1379
1379
|
referenceDocPath: "info.mdx",
|
|
@@ -8026,7 +8026,8 @@ var init_schemas = __esm(() => {
|
|
|
8026
8026
|
comments: { type: "integer" },
|
|
8027
8027
|
trackedChanges: { type: "integer" },
|
|
8028
8028
|
sdtFields: { type: "integer" },
|
|
8029
|
-
lists: { type: "integer" }
|
|
8029
|
+
lists: { type: "integer" },
|
|
8030
|
+
pages: { type: "integer" }
|
|
8030
8031
|
}, [
|
|
8031
8032
|
"words",
|
|
8032
8033
|
"characters",
|
|
@@ -39075,7 +39076,7 @@ var init_remark_gfm_z_sDF4ss_es = __esm(() => {
|
|
|
39075
39076
|
emptyOptions2 = {};
|
|
39076
39077
|
});
|
|
39077
39078
|
|
|
39078
|
-
// ../../packages/superdoc/dist/chunks/SuperConverter-
|
|
39079
|
+
// ../../packages/superdoc/dist/chunks/SuperConverter-hvBoS9gB.es.js
|
|
39079
39080
|
function getExtensionConfigField(extension$1, field, context = { name: "" }) {
|
|
39080
39081
|
const fieldValue = extension$1.config[field];
|
|
39081
39082
|
if (typeof fieldValue === "function")
|
|
@@ -45659,6 +45660,14 @@ function createStrictTogglePropertyHandler(xmlName, sdName = null) {
|
|
|
45659
45660
|
}
|
|
45660
45661
|
};
|
|
45661
45662
|
}
|
|
45663
|
+
function stripUnsupportedTableIdentityAttributes(attrs) {
|
|
45664
|
+
if (!attrs || typeof attrs !== "object")
|
|
45665
|
+
return {};
|
|
45666
|
+
const filteredAttrs = { ...attrs };
|
|
45667
|
+
for (const attrName of UNSUPPORTED_TABLE_IDENTITY_ATTRS)
|
|
45668
|
+
delete filteredAttrs[attrName];
|
|
45669
|
+
return filteredAttrs;
|
|
45670
|
+
}
|
|
45662
45671
|
function createMeasurementPropertyHandler(xmlName, sdName = null) {
|
|
45663
45672
|
if (!sdName)
|
|
45664
45673
|
sdName = xmlName.split(":")[1];
|
|
@@ -47891,10 +47900,11 @@ function encode$48(params, encodedAttrs) {
|
|
|
47891
47900
|
}
|
|
47892
47901
|
function decode$50(params, decodedAttrs) {
|
|
47893
47902
|
const translated = translateTableCell(params);
|
|
47894
|
-
|
|
47903
|
+
const filteredDecodedAttrs = stripUnsupportedTableIdentityAttributes(decodedAttrs);
|
|
47904
|
+
if (Object.keys(filteredDecodedAttrs).length)
|
|
47895
47905
|
translated.attributes = {
|
|
47896
47906
|
...translated.attributes || {},
|
|
47897
|
-
...
|
|
47907
|
+
...filteredDecodedAttrs
|
|
47898
47908
|
};
|
|
47899
47909
|
return translated;
|
|
47900
47910
|
}
|
|
@@ -64353,50 +64363,103 @@ function toIdentityValue(value) {
|
|
|
64353
64363
|
if (typeof value === "number" && Number.isFinite(value))
|
|
64354
64364
|
return String(value);
|
|
64355
64365
|
}
|
|
64356
|
-
function
|
|
64366
|
+
function getBlockIdentityAttrs(node3) {
|
|
64357
64367
|
if (!node3 || typeof node3 !== "object")
|
|
64358
|
-
return;
|
|
64359
|
-
|
|
64360
|
-
|
|
64361
|
-
|
|
64368
|
+
return [];
|
|
64369
|
+
return BLOCK_IDENTITY_ATTRS[node3.type] ?? [];
|
|
64370
|
+
}
|
|
64371
|
+
function getExplicitIdentityEntries(node3) {
|
|
64372
|
+
const attrPriority = getBlockIdentityAttrs(node3);
|
|
64373
|
+
if (attrPriority.length === 0)
|
|
64374
|
+
return [];
|
|
64362
64375
|
const attrs = typeof node3.attrs === "object" && node3.attrs ? node3.attrs : {};
|
|
64376
|
+
const identityEntries = [];
|
|
64363
64377
|
for (const attr of attrPriority) {
|
|
64364
64378
|
const value = toIdentityValue(attrs[attr]);
|
|
64365
64379
|
if (value)
|
|
64366
|
-
|
|
64367
|
-
|
|
64368
|
-
|
|
64369
|
-
};
|
|
64380
|
+
identityEntries.push({
|
|
64381
|
+
attr,
|
|
64382
|
+
value
|
|
64383
|
+
});
|
|
64370
64384
|
}
|
|
64385
|
+
return identityEntries;
|
|
64371
64386
|
}
|
|
64372
|
-
function
|
|
64373
|
-
|
|
64374
|
-
|
|
64375
|
-
|
|
64376
|
-
|
|
64387
|
+
function groupIdentityEntriesByValue(identityEntries) {
|
|
64388
|
+
const groupsByValue = /* @__PURE__ */ new Map;
|
|
64389
|
+
for (const entry of identityEntries) {
|
|
64390
|
+
const existingGroup = groupsByValue.get(entry.value);
|
|
64391
|
+
if (existingGroup) {
|
|
64392
|
+
existingGroup.attrs.push(entry.attr);
|
|
64393
|
+
continue;
|
|
64394
|
+
}
|
|
64395
|
+
groupsByValue.set(entry.value, {
|
|
64396
|
+
value: entry.value,
|
|
64397
|
+
attrs: [entry.attr]
|
|
64398
|
+
});
|
|
64399
|
+
}
|
|
64400
|
+
return [...groupsByValue.values()];
|
|
64377
64401
|
}
|
|
64378
|
-
function
|
|
64402
|
+
function shouldSynthesizeParaId(node3) {
|
|
64403
|
+
return Boolean(node3 && typeof node3 === "object" && SYNTHETIC_PARA_ID_TYPES.has(node3.type));
|
|
64404
|
+
}
|
|
64405
|
+
function collectExplicitBlockIdentities(node3, reservedIds) {
|
|
64379
64406
|
if (!node3 || typeof node3 !== "object")
|
|
64380
64407
|
return;
|
|
64381
|
-
const
|
|
64382
|
-
|
|
64383
|
-
|
|
64384
|
-
|
|
64385
|
-
|
|
64386
|
-
|
|
64387
|
-
|
|
64388
|
-
|
|
64389
|
-
|
|
64390
|
-
|
|
64391
|
-
|
|
64408
|
+
const identityEntries = getExplicitIdentityEntries(node3);
|
|
64409
|
+
for (const { value } of groupIdentityEntriesByValue(identityEntries))
|
|
64410
|
+
reservedIds.add(value);
|
|
64411
|
+
if (Array.isArray(node3.content))
|
|
64412
|
+
node3.content.forEach((child) => collectExplicitBlockIdentities(child, reservedIds));
|
|
64413
|
+
}
|
|
64414
|
+
function createDeterministicDocxIdAllocator(reservedIds) {
|
|
64415
|
+
let nextValue = 1;
|
|
64416
|
+
return () => {
|
|
64417
|
+
while (nextValue <= MAX_DOCX_ID) {
|
|
64418
|
+
const id = nextValue.toString(16).toUpperCase().padStart(DOCX_ID_LENGTH, "0");
|
|
64419
|
+
nextValue += 1;
|
|
64420
|
+
if (reservedIds.has(id))
|
|
64421
|
+
continue;
|
|
64422
|
+
reservedIds.add(id);
|
|
64423
|
+
return id;
|
|
64424
|
+
}
|
|
64425
|
+
throw new Error("Unable to allocate a unique synthetic DOCX block id.");
|
|
64426
|
+
};
|
|
64427
|
+
}
|
|
64428
|
+
function setBlockIdentity(node3, attrName, value) {
|
|
64429
|
+
node3.attrs = {
|
|
64430
|
+
...node3.attrs ?? {},
|
|
64431
|
+
[attrName]: value
|
|
64432
|
+
};
|
|
64433
|
+
}
|
|
64434
|
+
function normalizeBlockIdentitiesInNode(node3, seenIds, allocateDocxId) {
|
|
64435
|
+
if (!node3 || typeof node3 !== "object")
|
|
64436
|
+
return;
|
|
64437
|
+
const groupedIdentities = groupIdentityEntriesByValue(getExplicitIdentityEntries(node3));
|
|
64438
|
+
if (groupedIdentities.length > 0)
|
|
64439
|
+
for (const identityGroup of groupedIdentities)
|
|
64440
|
+
if (seenIds.has(identityGroup.value)) {
|
|
64441
|
+
const replacementId = allocateDocxId();
|
|
64442
|
+
for (const attr of identityGroup.attrs)
|
|
64443
|
+
setBlockIdentity(node3, attr, replacementId);
|
|
64444
|
+
seenIds.add(replacementId);
|
|
64445
|
+
} else
|
|
64446
|
+
seenIds.add(identityGroup.value);
|
|
64447
|
+
else if (shouldSynthesizeParaId(node3)) {
|
|
64448
|
+
const syntheticParaId = allocateDocxId();
|
|
64449
|
+
setBlockIdentity(node3, "paraId", syntheticParaId);
|
|
64450
|
+
seenIds.add(syntheticParaId);
|
|
64451
|
+
}
|
|
64392
64452
|
if (Array.isArray(node3.content))
|
|
64393
|
-
node3.content.forEach((child) =>
|
|
64453
|
+
node3.content.forEach((child) => normalizeBlockIdentitiesInNode(child, seenIds, allocateDocxId));
|
|
64394
64454
|
}
|
|
64395
64455
|
function normalizeDuplicateBlockIdentitiesInContent(content$2 = []) {
|
|
64396
64456
|
if (!Array.isArray(content$2) || content$2.length === 0)
|
|
64397
64457
|
return content$2;
|
|
64398
|
-
const
|
|
64399
|
-
content$2.forEach((node3) =>
|
|
64458
|
+
const reservedIds = /* @__PURE__ */ new Set;
|
|
64459
|
+
content$2.forEach((node3) => collectExplicitBlockIdentities(node3, reservedIds));
|
|
64460
|
+
const allocateDocxId = createDeterministicDocxIdAllocator(reservedIds);
|
|
64461
|
+
const seenIds = /* @__PURE__ */ new Set;
|
|
64462
|
+
content$2.forEach((node3) => normalizeBlockIdentitiesInNode(node3, seenIds, allocateDocxId));
|
|
64400
64463
|
return content$2;
|
|
64401
64464
|
}
|
|
64402
64465
|
function patchNumberingDefinitions(docx) {
|
|
@@ -68563,7 +68626,7 @@ var isRegExp = (value) => {
|
|
|
68563
68626
|
consumed: 1
|
|
68564
68627
|
};
|
|
68565
68628
|
}
|
|
68566
|
-
}), createSingleIntegerPropertyHandler = (xmlName, sdName = null) => createSingleAttrPropertyHandler(xmlName, sdName, "w:val", parseInteger, integerToString), parseMeasurementValue = (value, type) => {
|
|
68629
|
+
}), createSingleIntegerPropertyHandler = (xmlName, sdName = null) => createSingleAttrPropertyHandler(xmlName, sdName, "w:val", parseInteger, integerToString), UNSUPPORTED_TABLE_IDENTITY_ATTRS, parseMeasurementValue = (value, type) => {
|
|
68567
68630
|
if (value == null)
|
|
68568
68631
|
return;
|
|
68569
68632
|
const strValue = String(value);
|
|
@@ -79226,7 +79289,7 @@ var isRegExp = (value) => {
|
|
|
79226
79289
|
}
|
|
79227
79290
|
return {
|
|
79228
79291
|
name: "w:tbl",
|
|
79229
|
-
attributes: decodedAttrs
|
|
79292
|
+
attributes: stripUnsupportedTableIdentityAttributes(decodedAttrs),
|
|
79230
79293
|
elements
|
|
79231
79294
|
};
|
|
79232
79295
|
}, config$23, translator$8, encode$40 = (attributes) => {
|
|
@@ -81432,7 +81495,7 @@ var isRegExp = (value) => {
|
|
|
81432
81495
|
nodes: [translator$3.encode(params)],
|
|
81433
81496
|
consumed: 1
|
|
81434
81497
|
};
|
|
81435
|
-
}, tabNodeEntityHandler, footnoteReferenceHandlerEntity, tableNodeHandlerEntity, tableOfContentsHandlerEntity, indexHandlerEntity, indexEntryHandlerEntity, commentRangeStartHandlerEntity, commentRangeEndHandlerEntity, permStartHandlerEntity, permEndHandlerEntity, PARAGRAPH_IDENTITY_ATTRS, TABLE_IDENTITY_ATTRS, DEFAULT_BLOCK_IDENTITY_ATTRS, BLOCK_IDENTITY_ATTRS, WORD_2012_NAMESPACE = "http://schemas.microsoft.com/office/word/2012/wordml", deepClone = (value) => JSON.parse(JSON.stringify(value)), getNumberingRoot = (numberingXml) => {
|
|
81498
|
+
}, tabNodeEntityHandler, footnoteReferenceHandlerEntity, tableNodeHandlerEntity, tableOfContentsHandlerEntity, indexHandlerEntity, indexEntryHandlerEntity, commentRangeStartHandlerEntity, commentRangeEndHandlerEntity, permStartHandlerEntity, permEndHandlerEntity, PARAGRAPH_IDENTITY_ATTRS, TABLE_IDENTITY_ATTRS, DEFAULT_BLOCK_IDENTITY_ATTRS, SYNTHETIC_PARA_ID_TYPES, DOCX_ID_LENGTH = 8, MAX_DOCX_ID = 4294967295, BLOCK_IDENTITY_ATTRS, WORD_2012_NAMESPACE = "http://schemas.microsoft.com/office/word/2012/wordml", deepClone = (value) => JSON.parse(JSON.stringify(value)), getNumberingRoot = (numberingXml) => {
|
|
81436
81499
|
if (!numberingXml?.elements?.length)
|
|
81437
81500
|
return null;
|
|
81438
81501
|
return numberingXml.elements.find((el) => el?.name === "w:numbering") || numberingXml.elements[0] || null;
|
|
@@ -82459,7 +82522,7 @@ var isRegExp = (value) => {
|
|
|
82459
82522
|
state.kern = kernNode.attributes["w:val"];
|
|
82460
82523
|
}
|
|
82461
82524
|
}, SuperConverter;
|
|
82462
|
-
var
|
|
82525
|
+
var init_SuperConverter_hvBoS9gB_es = __esm(() => {
|
|
82463
82526
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
82464
82527
|
init_jszip_ChlR43oI_es();
|
|
82465
82528
|
init_xml_js_BtmJ6bNs_es();
|
|
@@ -85553,8 +85616,8 @@ var init_SuperConverter_ClF1lbF9_es = __esm(() => {
|
|
|
85553
85616
|
},
|
|
85554
85617
|
info: {
|
|
85555
85618
|
memberPath: "info",
|
|
85556
|
-
description: "Return document summary info including word, character, paragraph, heading, table, image, comment, tracked-change, SDT-field, and
|
|
85557
|
-
expectedResult: "Returns a DocumentInfo object with counts (words, characters, paragraphs, headings, tables, images, comments, trackedChanges, sdtFields, lists), document outline, capability flags, and revision.",
|
|
85619
|
+
description: "Return document summary info including word, character, paragraph, heading, table, image, comment, tracked-change, SDT-field, list, and page counts, plus outline and capabilities.",
|
|
85620
|
+
expectedResult: "Returns a DocumentInfo object with counts (words, characters, paragraphs, headings, tables, images, comments, trackedChanges, sdtFields, lists, and optionally pages when pagination is active), document outline, capability flags, and revision.",
|
|
85558
85621
|
requiresDocumentContext: true,
|
|
85559
85622
|
metadata: readOperation2(),
|
|
85560
85623
|
referenceDocPath: "info.mdx",
|
|
@@ -91637,7 +91700,8 @@ var init_SuperConverter_ClF1lbF9_es = __esm(() => {
|
|
|
91637
91700
|
comments: { type: "integer" },
|
|
91638
91701
|
trackedChanges: { type: "integer" },
|
|
91639
91702
|
sdtFields: { type: "integer" },
|
|
91640
|
-
lists: { type: "integer" }
|
|
91703
|
+
lists: { type: "integer" },
|
|
91704
|
+
pages: { type: "integer" }
|
|
91641
91705
|
}, [
|
|
91642
91706
|
"words",
|
|
91643
91707
|
"characters",
|
|
@@ -95779,6 +95843,7 @@ var init_SuperConverter_ClF1lbF9_es = __esm(() => {
|
|
|
95779
95843
|
"authorities"
|
|
95780
95844
|
];
|
|
95781
95845
|
_buffers = /* @__PURE__ */ new Map;
|
|
95846
|
+
UNSUPPORTED_TABLE_IDENTITY_ATTRS = ["w14:paraId", "w14:textId"];
|
|
95782
95847
|
translator$41 = NodeTranslator.from(createStrictTogglePropertyHandler("w:b", "bold"));
|
|
95783
95848
|
translator$45 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:bCs", "boldCs"));
|
|
95784
95849
|
translator$43 = NodeTranslator.from(createBorderPropertyHandler("w:bdr", "borders"));
|
|
@@ -116747,6 +116812,7 @@ var init_SuperConverter_ClF1lbF9_es = __esm(() => {
|
|
|
116747
116812
|
"blockId",
|
|
116748
116813
|
"paraId"
|
|
116749
116814
|
];
|
|
116815
|
+
SYNTHETIC_PARA_ID_TYPES = new Set(["paragraph", "tableRow"]);
|
|
116750
116816
|
BLOCK_IDENTITY_ATTRS = {
|
|
116751
116817
|
paragraph: PARAGRAPH_IDENTITY_ATTRS,
|
|
116752
116818
|
heading: DEFAULT_BLOCK_IDENTITY_ATTRS,
|
|
@@ -144256,7 +144322,7 @@ var init_remark_gfm_CjV8kaUy_es = __esm(() => {
|
|
|
144256
144322
|
init_remark_gfm_z_sDF4ss_es();
|
|
144257
144323
|
});
|
|
144258
144324
|
|
|
144259
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
144325
|
+
// ../../packages/superdoc/dist/chunks/src-BAlN4OvK.es.js
|
|
144260
144326
|
function deleteProps(obj, propOrProps) {
|
|
144261
144327
|
const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
|
|
144262
144328
|
const removeNested = (target, pathParts, index2 = 0) => {
|
|
@@ -147165,7 +147231,7 @@ function normalizeExcerpt(text5) {
|
|
|
147165
147231
|
const trimmed = text5.replace(/\s+/g, " ").trim();
|
|
147166
147232
|
return trimmed.length ? trimmed : undefined;
|
|
147167
147233
|
}
|
|
147168
|
-
function stableHash$
|
|
147234
|
+
function stableHash$2(input2) {
|
|
147169
147235
|
let hash$3 = 2166136261;
|
|
147170
147236
|
for (let index2 = 0;index2 < input2.length; index2 += 1) {
|
|
147171
147237
|
hash$3 ^= input2.charCodeAt(index2);
|
|
@@ -147174,11 +147240,39 @@ function stableHash$1(input2) {
|
|
|
147174
147240
|
return (hash$3 >>> 0).toString(16).padStart(8, "0");
|
|
147175
147241
|
}
|
|
147176
147242
|
function buildFallbackTocNodeId(node3, pos) {
|
|
147177
|
-
return `toc-auto-${stableHash$
|
|
147243
|
+
return `toc-auto-${stableHash$2(`${pos}:${typeof node3.attrs?.instruction === "string" ? node3.attrs.instruction : ""}`)}`;
|
|
147178
147244
|
}
|
|
147179
147245
|
function resolvePublicTocNodeId(node3, pos) {
|
|
147180
147246
|
return buildFallbackTocNodeId(node3, pos);
|
|
147181
147247
|
}
|
|
147248
|
+
function stableHash$1(input2) {
|
|
147249
|
+
let hash$3 = 2166136261;
|
|
147250
|
+
for (let index2 = 0;index2 < input2.length; index2 += 1) {
|
|
147251
|
+
hash$3 ^= input2.charCodeAt(index2);
|
|
147252
|
+
hash$3 = Math.imul(hash$3, 16777619);
|
|
147253
|
+
}
|
|
147254
|
+
return (hash$3 >>> 0).toString(16).padStart(8, "0");
|
|
147255
|
+
}
|
|
147256
|
+
function toTableLikeBlockNodeType(nodeType) {
|
|
147257
|
+
if (nodeType === "table")
|
|
147258
|
+
return "table";
|
|
147259
|
+
if (nodeType === "tableCell")
|
|
147260
|
+
return "tableCell";
|
|
147261
|
+
}
|
|
147262
|
+
function serializeTraversalPath(path2, pos) {
|
|
147263
|
+
if (Array.isArray(path2) && path2.length > 0)
|
|
147264
|
+
return `path:${path2.join(".")}`;
|
|
147265
|
+
return `pos:${pos}`;
|
|
147266
|
+
}
|
|
147267
|
+
function isVolatileRuntimeBlockId(id2) {
|
|
147268
|
+
return typeof id2 === "string" && UUID_LIKE_PATTERN.test(id2);
|
|
147269
|
+
}
|
|
147270
|
+
function buildFallbackTableNodeId(nodeType, pos, path2) {
|
|
147271
|
+
const tableLikeType = toTableLikeBlockNodeType(nodeType);
|
|
147272
|
+
if (!tableLikeType)
|
|
147273
|
+
return;
|
|
147274
|
+
return `${TABLE_LIKE_PREFIX[tableLikeType]}-${stableHash$1(`${tableLikeType}:${serializeTraversalPath(path2, pos)}`)}`;
|
|
147275
|
+
}
|
|
147182
147276
|
function isListItem$1(attrs) {
|
|
147183
147277
|
const numbering = attrs?.paragraphProperties?.numberingProperties;
|
|
147184
147278
|
if (numbering && (numbering.numId != null || numbering.ilvl != null))
|
|
@@ -147228,7 +147322,16 @@ function mapBlockNodeType(node3) {
|
|
|
147228
147322
|
return;
|
|
147229
147323
|
}
|
|
147230
147324
|
}
|
|
147231
|
-
function
|
|
147325
|
+
function resolveLegacyTableIdentity(attrs) {
|
|
147326
|
+
return toId(attrs.paraId) ?? toId(attrs.blockId) ?? toId(attrs.id) ?? toId(attrs.uuid);
|
|
147327
|
+
}
|
|
147328
|
+
function resolveRuntimeTableIdentity(nodeType, attrs, pos, path2) {
|
|
147329
|
+
const sdBlockId = toId(attrs.sdBlockId);
|
|
147330
|
+
if (sdBlockId && !isVolatileRuntimeBlockId(sdBlockId))
|
|
147331
|
+
return sdBlockId;
|
|
147332
|
+
return buildFallbackTableNodeId(nodeType, pos, path2);
|
|
147333
|
+
}
|
|
147334
|
+
function resolveBlockNodeId(node3, pos, nodeType, path2) {
|
|
147232
147335
|
if (node3.type.name === "paragraph") {
|
|
147233
147336
|
const attrs$1 = node3.attrs;
|
|
147234
147337
|
return toId(attrs$1?.paraId) ?? toId(attrs$1?.sdBlockId);
|
|
@@ -147237,8 +147340,10 @@ function resolveBlockNodeId(node3, pos, nodeType) {
|
|
|
147237
147340
|
return resolvePublicTocNodeId(node3, pos);
|
|
147238
147341
|
const attrs = node3.attrs ?? {};
|
|
147239
147342
|
const typeName = node3.type.name;
|
|
147240
|
-
if (typeName === "
|
|
147343
|
+
if (typeName === "tableRow")
|
|
147241
147344
|
return toId(attrs.paraId) ?? toId(attrs.sdBlockId) ?? toId(attrs.blockId) ?? toId(attrs.id) ?? toId(attrs.uuid);
|
|
147345
|
+
if (typeName === "table" || typeName === "tableCell" || typeName === "tableHeader")
|
|
147346
|
+
return resolveLegacyTableIdentity(attrs) ?? resolveRuntimeTableIdentity(nodeType, attrs, pos, path2);
|
|
147242
147347
|
return toId(attrs.blockId) ?? toId(attrs.id) ?? toId(attrs.paraId) ?? toId(attrs.uuid) ?? toId(attrs.sdBlockId);
|
|
147243
147348
|
}
|
|
147244
147349
|
function toBlockAddress(candidate) {
|
|
@@ -147259,6 +147364,8 @@ function buildBlockIndex(editor) {
|
|
|
147259
147364
|
const candidates = [];
|
|
147260
147365
|
const byId = /* @__PURE__ */ new Map;
|
|
147261
147366
|
const ambiguous = /* @__PURE__ */ new Set;
|
|
147367
|
+
const pathByNode = /* @__PURE__ */ new WeakMap;
|
|
147368
|
+
pathByNode.set(editor.state.doc, []);
|
|
147262
147369
|
function registerKey(key$1, candidate) {
|
|
147263
147370
|
if (byId.has(key$1)) {
|
|
147264
147371
|
ambiguous.add(key$1);
|
|
@@ -147266,11 +147373,15 @@ function buildBlockIndex(editor) {
|
|
|
147266
147373
|
} else if (!ambiguous.has(key$1))
|
|
147267
147374
|
byId.set(key$1, candidate);
|
|
147268
147375
|
}
|
|
147269
|
-
editor.state.doc.descendants((node3, pos) => {
|
|
147376
|
+
editor.state.doc.descendants((node3, pos, parent, index2) => {
|
|
147377
|
+
const parentPath = parent ? pathByNode.get(parent) ?? [] : [];
|
|
147378
|
+
const path2 = typeof index2 === "number" && Number.isInteger(index2) && index2 >= 0 ? [...parentPath, index2] : undefined;
|
|
147379
|
+
if (path2)
|
|
147380
|
+
pathByNode.set(node3, path2);
|
|
147270
147381
|
const nodeType = mapBlockNodeType(node3);
|
|
147271
147382
|
if (!nodeType)
|
|
147272
147383
|
return;
|
|
147273
|
-
const nodeId = resolveBlockNodeId(node3, pos, nodeType);
|
|
147384
|
+
const nodeId = resolveBlockNodeId(node3, pos, nodeType, path2);
|
|
147274
147385
|
if (!nodeId)
|
|
147275
147386
|
return;
|
|
147276
147387
|
const candidate = {
|
|
@@ -151769,15 +151880,6 @@ function requireEditorCommand(command$1, operationName) {
|
|
|
151769
151880
|
return command$1;
|
|
151770
151881
|
throw new DocumentApiAdapterError("CAPABILITY_UNAVAILABLE", `${operationName} command is not available.`, { reason: "missing_command" });
|
|
151771
151882
|
}
|
|
151772
|
-
function requireSchemaMark(editor, markName, operationName) {
|
|
151773
|
-
const mark2 = editor.schema?.marks?.[markName];
|
|
151774
|
-
if (mark2)
|
|
151775
|
-
return mark2;
|
|
151776
|
-
throw new DocumentApiAdapterError("CAPABILITY_UNAVAILABLE", `${operationName} requires the "${markName}" mark.`, {
|
|
151777
|
-
reason: "missing_mark",
|
|
151778
|
-
markName
|
|
151779
|
-
});
|
|
151780
|
-
}
|
|
151781
151883
|
function ensureTrackedCapability(editor, config2) {
|
|
151782
151884
|
if (typeof editor.commands?.insertTrackedChange !== "function")
|
|
151783
151885
|
throw new DocumentApiAdapterError("CAPABILITY_UNAVAILABLE", `${config2.operation} requires the insertTrackedChange command.`, { reason: "missing_command" });
|
|
@@ -153933,14 +154035,15 @@ function resolveListItem(editor, address2) {
|
|
|
153933
154035
|
function getLiveDocumentCounts(editor) {
|
|
153934
154036
|
const currentDoc = editor.state.doc;
|
|
153935
154037
|
const cached = liveDocumentCountsCache.get(editor);
|
|
154038
|
+
const pages = countPages(editor);
|
|
153936
154039
|
if (cached && cached.doc === currentDoc)
|
|
153937
|
-
return cloneLiveDocumentCounts(cached.counts);
|
|
154040
|
+
return cloneLiveDocumentCounts(cached.counts, pages);
|
|
153938
154041
|
const counts = computeLiveDocumentCounts(editor);
|
|
153939
154042
|
liveDocumentCountsCache.set(editor, {
|
|
153940
154043
|
doc: currentDoc,
|
|
153941
154044
|
counts
|
|
153942
154045
|
});
|
|
153943
|
-
return cloneLiveDocumentCounts(counts);
|
|
154046
|
+
return cloneLiveDocumentCounts(counts, pages);
|
|
153944
154047
|
}
|
|
153945
154048
|
function computeLiveDocumentCounts(editor) {
|
|
153946
154049
|
const text5 = getTextAdapter(editor, {});
|
|
@@ -153961,8 +154064,11 @@ function computeLiveDocumentCounts(editor) {
|
|
|
153961
154064
|
lists: countLists(editor, blockIndex)
|
|
153962
154065
|
};
|
|
153963
154066
|
}
|
|
153964
|
-
function cloneLiveDocumentCounts(counts) {
|
|
153965
|
-
return
|
|
154067
|
+
function cloneLiveDocumentCounts(counts, pages) {
|
|
154068
|
+
return pages != null ? {
|
|
154069
|
+
...counts,
|
|
154070
|
+
pages
|
|
154071
|
+
} : { ...counts };
|
|
153966
154072
|
}
|
|
153967
154073
|
function countWordsFromText(text5) {
|
|
153968
154074
|
const matches2 = text5.trim().match(/\S+/g);
|
|
@@ -154063,6 +154169,9 @@ function resolveVisibleListLevel(item) {
|
|
|
154063
154169
|
return item.level;
|
|
154064
154170
|
return item.path && item.path.length > 0 ? item.path.length - 1 : undefined;
|
|
154065
154171
|
}
|
|
154172
|
+
function countPages(editor) {
|
|
154173
|
+
return editor.currentTotalPages;
|
|
154174
|
+
}
|
|
154066
154175
|
function clampHeadingLevel(value) {
|
|
154067
154176
|
if (typeof value !== "number" || !Number.isFinite(value))
|
|
154068
154177
|
return 1;
|
|
@@ -154156,7 +154265,16 @@ function isInlinePropertyAvailable(editor, property) {
|
|
|
154156
154265
|
if (property.storage === "mark") {
|
|
154157
154266
|
if (property.carrier.storage !== "mark")
|
|
154158
154267
|
return false;
|
|
154159
|
-
|
|
154268
|
+
const markName = property.carrier.markName;
|
|
154269
|
+
if (!hasMarkCapability(editor, markName))
|
|
154270
|
+
return false;
|
|
154271
|
+
if (markName === "textStyle" && property.carrier.textStyleAttr) {
|
|
154272
|
+
const textStyleMark = editor.schema.marks.textStyle;
|
|
154273
|
+
const markAttrs = textStyleMark?.spec?.attrs ?? textStyleMark?.attrs;
|
|
154274
|
+
if (!markAttrs || !Object.prototype.hasOwnProperty.call(markAttrs, property.carrier.textStyleAttr))
|
|
154275
|
+
return false;
|
|
154276
|
+
}
|
|
154277
|
+
return true;
|
|
154160
154278
|
}
|
|
154161
154279
|
return Boolean(editor.schema?.nodes?.run);
|
|
154162
154280
|
}
|
|
@@ -157172,6 +157290,82 @@ function collectBlockIds(fragment2) {
|
|
|
157172
157290
|
}
|
|
157173
157291
|
return ids;
|
|
157174
157292
|
}
|
|
157293
|
+
function getSchemaMarks(editor) {
|
|
157294
|
+
return editor.schema?.marks ?? editor.state.schema?.marks ?? {};
|
|
157295
|
+
}
|
|
157296
|
+
function getSchemaNodes(editor) {
|
|
157297
|
+
return editor.state.schema?.nodes ?? editor.schema?.nodes ?? {};
|
|
157298
|
+
}
|
|
157299
|
+
function getMarkAttrs(markType) {
|
|
157300
|
+
if (!markType || typeof markType !== "object")
|
|
157301
|
+
return;
|
|
157302
|
+
const specAttrs = markType.spec?.attrs;
|
|
157303
|
+
if (specAttrs && typeof specAttrs === "object")
|
|
157304
|
+
return specAttrs;
|
|
157305
|
+
const attrs = markType.attrs;
|
|
157306
|
+
if (attrs && typeof attrs === "object")
|
|
157307
|
+
return attrs;
|
|
157308
|
+
}
|
|
157309
|
+
function getInlinePropertyCapabilityIssue(editor, keys$1, operationName = "format.apply") {
|
|
157310
|
+
const schemaMarks = getSchemaMarks(editor);
|
|
157311
|
+
const requiredTextStyleAttrs = /* @__PURE__ */ new Set;
|
|
157312
|
+
let requiresRunNode = false;
|
|
157313
|
+
for (const key$1 of keys$1) {
|
|
157314
|
+
const entry = INLINE_PROPERTY_BY_KEY2[key$1];
|
|
157315
|
+
if (!entry)
|
|
157316
|
+
continue;
|
|
157317
|
+
if (entry.storage === "mark") {
|
|
157318
|
+
const carrier = entry.carrier;
|
|
157319
|
+
if (carrier.storage !== "mark")
|
|
157320
|
+
continue;
|
|
157321
|
+
if (!schemaMarks[carrier.markName])
|
|
157322
|
+
return {
|
|
157323
|
+
code: "CAPABILITY_UNAVAILABLE",
|
|
157324
|
+
message: `${operationName} requires the "${carrier.markName}" mark.`,
|
|
157325
|
+
details: {
|
|
157326
|
+
reason: "missing_mark",
|
|
157327
|
+
markName: carrier.markName
|
|
157328
|
+
}
|
|
157329
|
+
};
|
|
157330
|
+
if (carrier.markName === "textStyle" && carrier.textStyleAttr)
|
|
157331
|
+
requiredTextStyleAttrs.add(carrier.textStyleAttr);
|
|
157332
|
+
continue;
|
|
157333
|
+
}
|
|
157334
|
+
requiresRunNode = true;
|
|
157335
|
+
}
|
|
157336
|
+
if (requiredTextStyleAttrs.size > 0) {
|
|
157337
|
+
const markAttrs = getMarkAttrs(schemaMarks.textStyle);
|
|
157338
|
+
for (const attr of requiredTextStyleAttrs)
|
|
157339
|
+
if (!markAttrs || !Object.prototype.hasOwnProperty.call(markAttrs, attr))
|
|
157340
|
+
return {
|
|
157341
|
+
code: "CAPABILITY_UNAVAILABLE",
|
|
157342
|
+
message: `${operationName} requires the "${attr}" attribute on the textStyle mark.`,
|
|
157343
|
+
details: {
|
|
157344
|
+
reason: "missing_mark_attribute",
|
|
157345
|
+
markName: "textStyle",
|
|
157346
|
+
attribute: attr
|
|
157347
|
+
}
|
|
157348
|
+
};
|
|
157349
|
+
}
|
|
157350
|
+
if (requiresRunNode && !getSchemaNodes(editor).run)
|
|
157351
|
+
return {
|
|
157352
|
+
code: "CAPABILITY_UNAVAILABLE",
|
|
157353
|
+
message: `${operationName} requires a run node in the schema.`
|
|
157354
|
+
};
|
|
157355
|
+
}
|
|
157356
|
+
function getTrackedInlinePropertySupportIssue(keys$1, operationName = "format.apply") {
|
|
157357
|
+
const unsupportedTrackedKeys = keys$1.filter((key$1) => INLINE_PROPERTY_BY_KEY2[key$1]?.tracked === false);
|
|
157358
|
+
if (unsupportedTrackedKeys.length === 0)
|
|
157359
|
+
return;
|
|
157360
|
+
return {
|
|
157361
|
+
code: "CAPABILITY_UNAVAILABLE",
|
|
157362
|
+
message: `${operationName} tracked mode is not available for: ${unsupportedTrackedKeys.join(", ")}`,
|
|
157363
|
+
details: {
|
|
157364
|
+
keys: unsupportedTrackedKeys,
|
|
157365
|
+
changeMode: "tracked"
|
|
157366
|
+
}
|
|
157367
|
+
};
|
|
157368
|
+
}
|
|
157175
157369
|
function editorHasDom(editor) {
|
|
157176
157370
|
const opts = editor.options;
|
|
157177
157371
|
return !!(opts?.document ?? opts?.mockDocument ?? (typeof document !== "undefined" ? document : null));
|
|
@@ -157355,38 +157549,16 @@ function writeWrapper(editor, request, options) {
|
|
|
157355
157549
|
}), resolved.resolution);
|
|
157356
157550
|
}
|
|
157357
157551
|
function ensureInlinePropertyCapabilities(editor, keys$1) {
|
|
157358
|
-
|
|
157359
|
-
|
|
157360
|
-
|
|
157361
|
-
|
|
157362
|
-
if (!entry)
|
|
157363
|
-
continue;
|
|
157364
|
-
if (entry.storage === "mark") {
|
|
157365
|
-
const carrier = entry.carrier;
|
|
157366
|
-
if (carrier.storage !== "mark")
|
|
157367
|
-
continue;
|
|
157368
|
-
if (carrier.markName === "textStyle") {
|
|
157369
|
-
requiresTextStyle = true;
|
|
157370
|
-
continue;
|
|
157371
|
-
}
|
|
157372
|
-
requireSchemaMark(editor, carrier.markName, "format.apply");
|
|
157373
|
-
continue;
|
|
157374
|
-
}
|
|
157375
|
-
requiresRunNode = true;
|
|
157376
|
-
}
|
|
157377
|
-
if (requiresTextStyle)
|
|
157378
|
-
requireSchemaMark(editor, "textStyle", "format.apply");
|
|
157379
|
-
if (requiresRunNode && !editor.state.schema.nodes.run)
|
|
157380
|
-
throw new DocumentApiAdapterError("CAPABILITY_UNAVAILABLE", "format.apply requires a run node in the schema.");
|
|
157552
|
+
const issue = getInlinePropertyCapabilityIssue(editor, keys$1);
|
|
157553
|
+
if (!issue)
|
|
157554
|
+
return;
|
|
157555
|
+
throw new DocumentApiAdapterError(issue.code, issue.message, issue.details);
|
|
157381
157556
|
}
|
|
157382
157557
|
function ensureTrackedInlinePropertySupport(keys$1) {
|
|
157383
|
-
const
|
|
157384
|
-
if (
|
|
157558
|
+
const issue = getTrackedInlinePropertySupportIssue(keys$1);
|
|
157559
|
+
if (!issue)
|
|
157385
157560
|
return;
|
|
157386
|
-
throw new DocumentApiAdapterError(
|
|
157387
|
-
keys: unsupportedTrackedKeys,
|
|
157388
|
-
changeMode: "tracked"
|
|
157389
|
-
});
|
|
157561
|
+
throw new DocumentApiAdapterError(issue.code, issue.message, issue.details);
|
|
157390
157562
|
}
|
|
157391
157563
|
function buildSelectionWhere(request) {
|
|
157392
157564
|
if (request.target)
|
|
@@ -159940,7 +160112,7 @@ function collectTopLevelBlocks(editor) {
|
|
|
159940
160112
|
const nodeType = mapBlockNodeType(child);
|
|
159941
160113
|
const pos = offset$1;
|
|
159942
160114
|
if (nodeType) {
|
|
159943
|
-
const nodeId = resolveBlockNodeId(child, pos, nodeType);
|
|
160115
|
+
const nodeId = resolveBlockNodeId(child, pos, nodeType, [i4]);
|
|
159944
160116
|
if (nodeId)
|
|
159945
160117
|
results.push({
|
|
159946
160118
|
node: child,
|
|
@@ -162078,6 +162250,9 @@ function toTableFailure(code7, message, details) {
|
|
|
162078
162250
|
}
|
|
162079
162251
|
};
|
|
162080
162252
|
}
|
|
162253
|
+
function generateDocxHexId() {
|
|
162254
|
+
return Array.from({ length: DOCX_HEX_ID_LENGTH }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
162255
|
+
}
|
|
162081
162256
|
function findSettingsRoot(part) {
|
|
162082
162257
|
if (part.name === "w:settings")
|
|
162083
162258
|
return part;
|
|
@@ -162151,16 +162326,13 @@ function setOddEvenHeadersFooters(settingsRoot, enabled) {
|
|
|
162151
162326
|
settingsRoot.elements = elements.filter((entry) => entry.name !== "w:evenAndOddHeaders");
|
|
162152
162327
|
return hadFlag !== hasOddEvenHeadersFooters(settingsRoot);
|
|
162153
162328
|
}
|
|
162154
|
-
function generateParaId() {
|
|
162155
|
-
return Array.from({ length: 8 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
162156
|
-
}
|
|
162157
162329
|
function createSeparatorParagraph(schema) {
|
|
162158
162330
|
const paragraphType = schema.nodes.paragraph;
|
|
162159
162331
|
if (!paragraphType)
|
|
162160
162332
|
return null;
|
|
162161
162333
|
const separatorAttrs = {
|
|
162162
162334
|
sdBlockId: v4_default(),
|
|
162163
|
-
paraId:
|
|
162335
|
+
paraId: generateDocxHexId()
|
|
162164
162336
|
};
|
|
162165
162337
|
return paragraphType.createAndFill(separatorAttrs) ?? paragraphType.createAndFill();
|
|
162166
162338
|
}
|
|
@@ -163313,22 +163485,15 @@ function tablesConvertFromTextAdapter(editor, input2, options) {
|
|
|
163313
163485
|
const text5 = cells[c] ?? "";
|
|
163314
163486
|
const content3 = text5 ? schema.text(text5) : undefined;
|
|
163315
163487
|
const para = schema.nodes.paragraph.createAndFill(null, content3);
|
|
163316
|
-
tableCells.push(schema.nodes.tableCell.createAndFill({
|
|
163317
|
-
sdBlockId: v4_default(),
|
|
163318
|
-
paraId: generateParaId()
|
|
163319
|
-
}, para));
|
|
163488
|
+
tableCells.push(schema.nodes.tableCell.createAndFill({ sdBlockId: v4_default() }, para));
|
|
163320
163489
|
}
|
|
163321
163490
|
tableRows.push(schema.nodes.tableRow.createAndFill({
|
|
163322
163491
|
sdBlockId: v4_default(),
|
|
163323
|
-
paraId:
|
|
163492
|
+
paraId: generateDocxHexId()
|
|
163324
163493
|
}, tableCells));
|
|
163325
163494
|
}
|
|
163326
163495
|
const tableId = v4_default();
|
|
163327
|
-
const
|
|
163328
|
-
const tableNode = schema.nodes.table.create({
|
|
163329
|
-
sdBlockId: tableId,
|
|
163330
|
-
paraId: tableParaId
|
|
163331
|
-
}, tableRows);
|
|
163496
|
+
const tableNode = schema.nodes.table.create({ sdBlockId: tableId }, tableRows);
|
|
163332
163497
|
const startPos = paragraphs[0].pos;
|
|
163333
163498
|
const lastP = paragraphs[paragraphs.length - 1];
|
|
163334
163499
|
const endPos = lastP.pos + lastP.node.nodeSize;
|
|
@@ -163456,10 +163621,7 @@ function tablesInsertCellAdapter(editor, input2, options) {
|
|
|
163456
163621
|
return toTableFailure("INVALID_TARGET", "Cell insertion with shiftRight is not supported for merged cells in this version.");
|
|
163457
163622
|
const makeEmptyCell = (preferHeader = false) => {
|
|
163458
163623
|
const candidateType = preferHeader ? schema.nodes.tableHeader ?? schema.nodes.tableCell : schema.nodes.tableCell;
|
|
163459
|
-
return candidateType.createAndFill({
|
|
163460
|
-
sdBlockId: v4_default(),
|
|
163461
|
-
paraId: generateParaId()
|
|
163462
|
-
}) ?? candidateType.createAndFill();
|
|
163624
|
+
return candidateType.createAndFill({ sdBlockId: v4_default() }) ?? candidateType.createAndFill();
|
|
163463
163625
|
};
|
|
163464
163626
|
const overflowRowCells = [];
|
|
163465
163627
|
for (let col = 0;col < map$12.width; col++) {
|
|
@@ -163470,7 +163632,7 @@ function tablesInsertCellAdapter(editor, input2, options) {
|
|
|
163470
163632
|
const overflowRowAttrs = {
|
|
163471
163633
|
...tableNode.child(Math.max(0, map$12.height - 1)).attrs ?? {},
|
|
163472
163634
|
sdBlockId: v4_default(),
|
|
163473
|
-
paraId:
|
|
163635
|
+
paraId: generateDocxHexId()
|
|
163474
163636
|
};
|
|
163475
163637
|
const overflowRow = schema.nodes.tableRow.createAndFill(overflowRowAttrs, overflowRowCells) ?? schema.nodes.tableRow.create(overflowRowAttrs, overflowRowCells);
|
|
163476
163638
|
if (!overflowRow)
|
|
@@ -164439,13 +164601,11 @@ function createTableAdapter(editor, input2, options) {
|
|
|
164439
164601
|
};
|
|
164440
164602
|
}
|
|
164441
164603
|
const tableId = v4_default();
|
|
164442
|
-
const paraId = generateParaId();
|
|
164443
164604
|
if (!insertTableAt$1({
|
|
164444
164605
|
pos: insertAt,
|
|
164445
164606
|
rows: input2.rows,
|
|
164446
164607
|
columns: input2.columns,
|
|
164447
164608
|
sdBlockId: tableId,
|
|
164448
|
-
paraId,
|
|
164449
164609
|
tracked: mode === "tracked"
|
|
164450
164610
|
}))
|
|
164451
164611
|
return {
|
|
@@ -164858,6 +165018,17 @@ function executeTextStep(ctx$1, targets, step3, rangeExecutor, spanExecutor) {
|
|
|
164858
165018
|
data
|
|
164859
165019
|
};
|
|
164860
165020
|
}
|
|
165021
|
+
function ensureFormatStepCapabilities(ctx$1, step3) {
|
|
165022
|
+
const inlineKeys = Object.keys(step3.args.inline);
|
|
165023
|
+
const capabilityIssue = getInlinePropertyCapabilityIssue(ctx$1.editor, inlineKeys, step3.op);
|
|
165024
|
+
if (capabilityIssue)
|
|
165025
|
+
throw planError(capabilityIssue.code, capabilityIssue.message, step3.id, capabilityIssue.details);
|
|
165026
|
+
if (ctx$1.changeMode !== "tracked")
|
|
165027
|
+
return;
|
|
165028
|
+
const trackedIssue = getTrackedInlinePropertySupportIssue(inlineKeys, step3.op);
|
|
165029
|
+
if (trackedIssue)
|
|
165030
|
+
throw planError(trackedIssue.code, trackedIssue.message, step3.id, trackedIssue.details);
|
|
165031
|
+
}
|
|
164861
165032
|
function buildTableInput(op, blockId, args$1) {
|
|
164862
165033
|
const { target: _target, nodeId: _n, tableTarget: _tableTarget, tableNodeId: _t$1, ...safeArgs } = args$1;
|
|
164863
165034
|
if (TABLE_SCOPED_OPS.has(op)) {
|
|
@@ -164883,7 +165054,10 @@ function registerBuiltInExecutors() {
|
|
|
164883
165054
|
registerStepExecutor("text.rewrite", { execute: (ctx$1, targets, step3) => executeTextStep(ctx$1, targets, step3, (e, tr, t, s2, m$1) => executeTextRewrite(e, tr, t, s2, m$1), (e, tr, t, s2, m$1) => executeSpanTextRewrite(e, tr, t, s2, m$1)) });
|
|
164884
165055
|
registerStepExecutor("text.insert", { execute: (ctx$1, targets, step3) => executeTextStep(ctx$1, targets, step3, (e, tr, t, s2, m$1) => executeTextInsert(e, tr, t, s2, m$1)) });
|
|
164885
165056
|
registerStepExecutor("text.delete", { execute: (ctx$1, targets, step3) => executeTextStep(ctx$1, targets, step3, (e, tr, t, s2, m$1) => executeTextDelete(e, tr, t, s2, m$1), (e, tr, t, s2, m$1) => executeSpanTextDelete(e, tr, t, s2, m$1)) });
|
|
164886
|
-
registerStepExecutor("format.apply", { execute: (ctx$1, targets, step3) =>
|
|
165057
|
+
registerStepExecutor("format.apply", { execute: (ctx$1, targets, step3) => {
|
|
165058
|
+
ensureFormatStepCapabilities(ctx$1, step3);
|
|
165059
|
+
return executeTextStep(ctx$1, targets, step3, (e, tr, t, s2, m$1) => executeStyleApply3(e, tr, t, s2, m$1), (e, tr, t, s2, m$1) => executeSpanStyleApply(e, tr, t, s2, m$1));
|
|
165060
|
+
} });
|
|
164887
165061
|
registerStepExecutor("create.paragraph", { execute: (ctx$1, targets, step3) => executeCreateStep(ctx$1.editor, ctx$1.tr, step3, targets, ctx$1.mapping) });
|
|
164888
165062
|
registerStepExecutor("create.heading", { execute: (ctx$1, targets, step3) => executeCreateStep(ctx$1.editor, ctx$1.tr, step3, targets, ctx$1.mapping) });
|
|
164889
165063
|
registerStepExecutor("domain.command", { execute(ctx$1, _targets, step3) {
|
|
@@ -168652,6 +168826,130 @@ function applyTcPatch(existing, patch3) {
|
|
|
168652
168826
|
function areTcConfigsEqual(a2, b$1) {
|
|
168653
168827
|
return serializeTcInstruction(a2) === serializeTcInstruction(b$1);
|
|
168654
168828
|
}
|
|
168829
|
+
function generateTocBookmarkName(blockId) {
|
|
168830
|
+
return `${TOC_BOOKMARK_PREFIX}${encodeBlockId(blockId)}`;
|
|
168831
|
+
}
|
|
168832
|
+
function encodeBlockId(input2) {
|
|
168833
|
+
let result = "";
|
|
168834
|
+
for (let i4 = 0;i4 < input2.length; i4++) {
|
|
168835
|
+
const ch = input2[i4];
|
|
168836
|
+
if (ch === "_")
|
|
168837
|
+
result += "__";
|
|
168838
|
+
else if (ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z" || ch >= "0" && ch <= "9")
|
|
168839
|
+
result += ch;
|
|
168840
|
+
else
|
|
168841
|
+
result += `_${ch.charCodeAt(0).toString(16).padStart(2, "0")}`;
|
|
168842
|
+
}
|
|
168843
|
+
return result;
|
|
168844
|
+
}
|
|
168845
|
+
function syncTocBookmarks(editor, sources) {
|
|
168846
|
+
const { schema, doc: doc$12 } = editor.state;
|
|
168847
|
+
if (!schema.nodes.bookmarkStart || !schema.nodes.bookmarkEnd)
|
|
168848
|
+
return;
|
|
168849
|
+
const needed = deduplicateByBlockId(sources);
|
|
168850
|
+
const existing = collectExistingTocBookmarkNames(doc$12);
|
|
168851
|
+
const missing = needed.filter((t) => !existing.has(t.bookmarkName));
|
|
168852
|
+
if (missing.length === 0)
|
|
168853
|
+
return;
|
|
168854
|
+
const insertions = resolveInsertionTargets(missing, buildBlockIdPositionMap(doc$12), doc$12);
|
|
168855
|
+
if (insertions.length === 0)
|
|
168856
|
+
return;
|
|
168857
|
+
const { tr } = editor.state;
|
|
168858
|
+
let nextId = findMaxBookmarkId(doc$12) + 1;
|
|
168859
|
+
for (const { bookmarkName, contentStart, contentEnd } of insertions) {
|
|
168860
|
+
const bookmarkId = String(nextId++);
|
|
168861
|
+
const endNode = schema.nodes.bookmarkEnd.create({ id: bookmarkId });
|
|
168862
|
+
const startNode = schema.nodes.bookmarkStart.create({
|
|
168863
|
+
name: bookmarkName,
|
|
168864
|
+
id: bookmarkId
|
|
168865
|
+
});
|
|
168866
|
+
tr.insert(tr.mapping.map(contentStart), startNode);
|
|
168867
|
+
tr.insert(tr.mapping.map(contentEnd), endNode);
|
|
168868
|
+
}
|
|
168869
|
+
if (tr.docChanged)
|
|
168870
|
+
dispatchTransaction$2(editor, tr);
|
|
168871
|
+
}
|
|
168872
|
+
function deduplicateByBlockId(sources) {
|
|
168873
|
+
const seenBlockIds = /* @__PURE__ */ new Set;
|
|
168874
|
+
const claimedNames = /* @__PURE__ */ new Map;
|
|
168875
|
+
const targets = [];
|
|
168876
|
+
for (const { sdBlockId } of sources) {
|
|
168877
|
+
if (seenBlockIds.has(sdBlockId))
|
|
168878
|
+
continue;
|
|
168879
|
+
seenBlockIds.add(sdBlockId);
|
|
168880
|
+
const bookmarkName = generateTocBookmarkName(sdBlockId);
|
|
168881
|
+
const existingOwner = claimedNames.get(bookmarkName);
|
|
168882
|
+
if (existingOwner !== undefined && existingOwner !== sdBlockId)
|
|
168883
|
+
continue;
|
|
168884
|
+
claimedNames.set(bookmarkName, sdBlockId);
|
|
168885
|
+
targets.push({
|
|
168886
|
+
blockId: sdBlockId,
|
|
168887
|
+
bookmarkName
|
|
168888
|
+
});
|
|
168889
|
+
}
|
|
168890
|
+
return targets;
|
|
168891
|
+
}
|
|
168892
|
+
function collectExistingTocBookmarkNames(doc$12) {
|
|
168893
|
+
const names = /* @__PURE__ */ new Set;
|
|
168894
|
+
doc$12.descendants((node3) => {
|
|
168895
|
+
if (node3.type.name === "bookmarkStart") {
|
|
168896
|
+
const name = node3.attrs?.name;
|
|
168897
|
+
if (name?.startsWith(TOC_BOOKMARK_PREFIX))
|
|
168898
|
+
names.add(name);
|
|
168899
|
+
}
|
|
168900
|
+
return true;
|
|
168901
|
+
});
|
|
168902
|
+
return names;
|
|
168903
|
+
}
|
|
168904
|
+
function buildBlockIdPositionMap(doc$12) {
|
|
168905
|
+
const map$12 = /* @__PURE__ */ new Map;
|
|
168906
|
+
doc$12.descendants((node3, pos) => {
|
|
168907
|
+
if (node3.type.name === "paragraph") {
|
|
168908
|
+
const id2 = node3.attrs?.sdBlockId ?? node3.attrs?.paraId;
|
|
168909
|
+
if (id2 && !map$12.has(id2))
|
|
168910
|
+
map$12.set(id2, pos);
|
|
168911
|
+
}
|
|
168912
|
+
return true;
|
|
168913
|
+
});
|
|
168914
|
+
return map$12;
|
|
168915
|
+
}
|
|
168916
|
+
function resolveInsertionTargets(missing, positions, doc$12) {
|
|
168917
|
+
const result = [];
|
|
168918
|
+
for (const { blockId, bookmarkName } of missing) {
|
|
168919
|
+
const pos = positions.get(blockId);
|
|
168920
|
+
if (pos === undefined)
|
|
168921
|
+
continue;
|
|
168922
|
+
const node3 = doc$12.nodeAt(pos);
|
|
168923
|
+
if (!node3 || node3.type.name !== "paragraph")
|
|
168924
|
+
continue;
|
|
168925
|
+
result.push({
|
|
168926
|
+
bookmarkName,
|
|
168927
|
+
contentStart: pos + 1,
|
|
168928
|
+
contentEnd: pos + node3.nodeSize - 1
|
|
168929
|
+
});
|
|
168930
|
+
}
|
|
168931
|
+
result.sort((a2, b$1) => b$1.contentStart - a2.contentStart);
|
|
168932
|
+
return result;
|
|
168933
|
+
}
|
|
168934
|
+
function findMaxBookmarkId(doc$12) {
|
|
168935
|
+
let maxId = -1;
|
|
168936
|
+
doc$12.descendants((node3) => {
|
|
168937
|
+
if (node3.type.name !== "bookmarkStart" && node3.type.name !== "bookmarkEnd")
|
|
168938
|
+
return true;
|
|
168939
|
+
const raw = node3.attrs?.id;
|
|
168940
|
+
const id2 = typeof raw === "string" ? parseInt(raw, 10) : typeof raw === "number" ? raw : NaN;
|
|
168941
|
+
if (!isNaN(id2) && id2 > maxId)
|
|
168942
|
+
maxId = id2;
|
|
168943
|
+
return true;
|
|
168944
|
+
});
|
|
168945
|
+
return maxId;
|
|
168946
|
+
}
|
|
168947
|
+
function dispatchTransaction$2(editor, tr) {
|
|
168948
|
+
if (typeof editor.dispatch === "function")
|
|
168949
|
+
editor.dispatch(tr);
|
|
168950
|
+
else if (typeof editor.view?.dispatch === "function")
|
|
168951
|
+
editor.view.dispatch(tr);
|
|
168952
|
+
}
|
|
168655
168953
|
function collectTocSources(doc$12, config2) {
|
|
168656
168954
|
const sources = [];
|
|
168657
168955
|
const { outlineLevels, useAppliedOutlineLevel, tcFieldIdentifier, tcFieldLevels } = config2.source;
|
|
@@ -168742,7 +169040,7 @@ function buildEntryParagraph(source, config2) {
|
|
|
168742
169040
|
textNode.marks = [{
|
|
168743
169041
|
type: "link",
|
|
168744
169042
|
attrs: {
|
|
168745
|
-
anchor: source.sdBlockId,
|
|
169043
|
+
anchor: generateTocBookmarkName(source.sdBlockId),
|
|
168746
169044
|
rId: null,
|
|
168747
169045
|
history: true
|
|
168748
169046
|
}
|
|
@@ -168941,8 +169239,12 @@ function sanitizeTocContentForSchema(content3, editor) {
|
|
|
168941
169239
|
});
|
|
168942
169240
|
}
|
|
168943
169241
|
function materializeTocContent(doc$12, config2, editor) {
|
|
168944
|
-
const
|
|
168945
|
-
|
|
169242
|
+
const sources = collectTocSources(doc$12, config2);
|
|
169243
|
+
const entryParagraphs = buildTocEntryParagraphs(sources, config2);
|
|
169244
|
+
return {
|
|
169245
|
+
content: sanitizeTocContentForSchema(entryParagraphs.length > 0 ? entryParagraphs : NO_ENTRIES_PLACEHOLDER, editor),
|
|
169246
|
+
sources
|
|
169247
|
+
};
|
|
168946
169248
|
}
|
|
168947
169249
|
function tocConfigureWrapper(editor, input2, options) {
|
|
168948
169250
|
rejectTrackedMode("toc.configure", options);
|
|
@@ -168952,7 +169254,7 @@ function tocConfigureWrapper(editor, input2, options) {
|
|
|
168952
169254
|
const instruction = serializeTocInstruction(patched);
|
|
168953
169255
|
const rightAlignChanged = input2.patch.rightAlignPageNumbers !== undefined && input2.patch.rightAlignPageNumbers !== resolved.node.attrs?.rightAlignPageNumbers;
|
|
168954
169256
|
const effectiveRightAlign = input2.patch.rightAlignPageNumbers ?? resolved.node.attrs?.rightAlignPageNumbers;
|
|
168955
|
-
const nextContent = materializeTocContent(editor.state.doc, withRightAlign(patched, effectiveRightAlign), editor);
|
|
169257
|
+
const { content: nextContent, sources } = materializeTocContent(editor.state.doc, withRightAlign(patched, effectiveRightAlign), editor);
|
|
168956
169258
|
if (areTocConfigsEqual(currentConfig, patched) && !rightAlignChanged)
|
|
168957
169259
|
return tocFailure("NO_OP", "Configuration patch produced no change.");
|
|
168958
169260
|
if (options?.dryRun)
|
|
@@ -168985,6 +169287,7 @@ function tocConfigureWrapper(editor, input2, options) {
|
|
|
168985
169287
|
}
|
|
168986
169288
|
}, options?.expectedRevision)))
|
|
168987
169289
|
return tocFailure("NO_OP", "Configuration change could not be applied.");
|
|
169290
|
+
syncTocBookmarks(editor, sources);
|
|
168988
169291
|
return tocSuccess(resolvePostMutationTocId(editor.state.doc, commandNodeId));
|
|
168989
169292
|
}
|
|
168990
169293
|
function tocUpdateWrapper(editor, input2, options) {
|
|
@@ -168997,13 +169300,13 @@ function tocUpdateAll(editor, input2, options) {
|
|
|
168997
169300
|
const resolved = resolveTocTarget(editor.state.doc, input2.target);
|
|
168998
169301
|
const config2 = parseTocInstruction(resolved.node.attrs?.instruction ?? "");
|
|
168999
169302
|
const rightAlign = resolved.node.attrs?.rightAlignPageNumbers;
|
|
169000
|
-
const content3 = materializeTocContent(editor.state.doc, withRightAlign(config2, rightAlign), editor);
|
|
169303
|
+
const { content: content3, sources } = materializeTocContent(editor.state.doc, withRightAlign(config2, rightAlign), editor);
|
|
169001
169304
|
if (isTocContentUnchanged(resolved.node, content3))
|
|
169002
169305
|
return tocFailure("NO_OP", "TOC update produced no change.");
|
|
169003
169306
|
if (options?.dryRun)
|
|
169004
169307
|
return tocSuccess(resolved.nodeId);
|
|
169005
169308
|
const command$1 = editor.commands?.replaceTableOfContentsContentById;
|
|
169006
|
-
|
|
169309
|
+
if (!receiptApplied$9(typeof command$1 === "function" ? runTocCommand(editor, command$1, {
|
|
169007
169310
|
sdBlockId: resolved.commandNodeId ?? resolved.nodeId,
|
|
169008
169311
|
content: content3
|
|
169009
169312
|
}, options?.expectedRevision) : runTocAction(editor, () => {
|
|
@@ -169017,7 +169320,10 @@ function tocUpdateAll(editor, input2, options) {
|
|
|
169017
169320
|
} catch {
|
|
169018
169321
|
return false;
|
|
169019
169322
|
}
|
|
169020
|
-
}, options?.expectedRevision))
|
|
169323
|
+
}, options?.expectedRevision)))
|
|
169324
|
+
return tocFailure("NO_OP", "TOC update produced no change.");
|
|
169325
|
+
syncTocBookmarks(editor, sources);
|
|
169326
|
+
return tocSuccess(resolved.nodeId);
|
|
169021
169327
|
}
|
|
169022
169328
|
function getPageMap(editor) {
|
|
169023
169329
|
const storage = editor.storage;
|
|
@@ -169136,7 +169442,7 @@ function createTableOfContentsWrapper(editor, input2, options) {
|
|
|
169136
169442
|
pos = resolveCreateAnchor(editor, at.target, at.kind).pos;
|
|
169137
169443
|
const config2 = input2.config ? applyTocPatchTyped(DEFAULT_TOC_CONFIG, input2.config) : DEFAULT_TOC_CONFIG;
|
|
169138
169444
|
const instruction = serializeTocInstruction(config2);
|
|
169139
|
-
const content3 = materializeTocContent(editor.state.doc, withRightAlign(config2, input2.config?.rightAlignPageNumbers), editor);
|
|
169445
|
+
const { content: content3, sources } = materializeTocContent(editor.state.doc, withRightAlign(config2, input2.config?.rightAlignPageNumbers), editor);
|
|
169140
169446
|
const sdBlockId = v4_default();
|
|
169141
169447
|
if (options?.dryRun)
|
|
169142
169448
|
return {
|
|
@@ -169180,6 +169486,7 @@ function createTableOfContentsWrapper(editor, input2, options) {
|
|
|
169180
169486
|
message: "Table of contents could not be inserted at the requested location."
|
|
169181
169487
|
}
|
|
169182
169488
|
};
|
|
169489
|
+
syncTocBookmarks(editor, sources);
|
|
169183
169490
|
return {
|
|
169184
169491
|
success: true,
|
|
169185
169492
|
toc: buildTocAddress(resolvePostMutationTocId(editor.state.doc, sdBlockId))
|
|
@@ -200735,15 +201042,15 @@ var Node$13 = class Node$14 {
|
|
|
200735
201042
|
return false;
|
|
200736
201043
|
if ($from.parent.type.name !== "run")
|
|
200737
201044
|
return false;
|
|
200738
|
-
let dispatchTransaction$
|
|
201045
|
+
let dispatchTransaction$3 = null;
|
|
200739
201046
|
if (view?.dispatch)
|
|
200740
|
-
dispatchTransaction$
|
|
201047
|
+
dispatchTransaction$3 = view.dispatch.bind(view);
|
|
200741
201048
|
else if (editor?.dispatch)
|
|
200742
|
-
dispatchTransaction$
|
|
200743
|
-
if (!dispatchTransaction$
|
|
201049
|
+
dispatchTransaction$3 = editor.dispatch.bind(editor);
|
|
201050
|
+
if (!dispatchTransaction$3)
|
|
200744
201051
|
return false;
|
|
200745
201052
|
const handled = splitBlockPatch(state, (transaction) => {
|
|
200746
|
-
dispatchTransaction$
|
|
201053
|
+
dispatchTransaction$3(transaction);
|
|
200747
201054
|
}, editor);
|
|
200748
201055
|
if (handled)
|
|
200749
201056
|
tr.setMeta("preventDispatch", true);
|
|
@@ -205406,11 +205713,11 @@ var Node$13 = class Node$14 {
|
|
|
205406
205713
|
this.eventListenerCleanups = [];
|
|
205407
205714
|
this.resizeTimeoutId = null;
|
|
205408
205715
|
}
|
|
205409
|
-
attach({ element: element3, state, editorProps = {}, dispatchTransaction: dispatchTransaction$
|
|
205716
|
+
attach({ element: element3, state, editorProps = {}, dispatchTransaction: dispatchTransaction$3, handleClick: handleClick$1 }) {
|
|
205410
205717
|
this.view?.destroy();
|
|
205411
205718
|
this.view = new EditorView(element3, {
|
|
205412
205719
|
...editorProps && typeof editorProps === "object" ? editorProps : {},
|
|
205413
|
-
dispatchTransaction: dispatchTransaction$
|
|
205720
|
+
dispatchTransaction: dispatchTransaction$3,
|
|
205414
205721
|
state,
|
|
205415
205722
|
handleClick: handleClick$1
|
|
205416
205723
|
});
|
|
@@ -205632,7 +205939,7 @@ var Node$13 = class Node$14 {
|
|
|
205632
205939
|
console.warn("Failed to initialize developer tools:", error);
|
|
205633
205940
|
}
|
|
205634
205941
|
}
|
|
205635
|
-
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, DocumentApiAdapterError, ALIAS_ELIGIBLE_TYPES, TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, SectionType, DEFAULT_PARAGRAPH_SECTION_TYPE, DEFAULT_BODY_SECTION_TYPE, TWIPS_PER_INCH$2 = 1440, PX_PER_INCH$2 = 96, DEFAULT_COLUMN_GAP_INCHES = 0.5, OOXML_PCT_DIVISOR = 5000, SPACE_CHARS, isAtomicRunKind = (kind) => kind === "image" || kind === "lineBreak" || kind === "break" || kind === "tab" || kind === "fieldAnnotation", isImageLikeRun = (run2) => {
|
|
205942
|
+
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, TABLE_LIKE_PREFIX, UUID_LIKE_PATTERN, DocumentApiAdapterError, ALIAS_ELIGIBLE_TYPES, TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, SectionType, DEFAULT_PARAGRAPH_SECTION_TYPE, DEFAULT_BODY_SECTION_TYPE, TWIPS_PER_INCH$2 = 1440, PX_PER_INCH$2 = 96, DEFAULT_COLUMN_GAP_INCHES = 0.5, OOXML_PCT_DIVISOR = 5000, SPACE_CHARS, isAtomicRunKind = (kind) => kind === "image" || kind === "lineBreak" || kind === "break" || kind === "tab" || kind === "fieldAnnotation", isImageLikeRun = (run2) => {
|
|
205636
205943
|
if (!run2 || typeof run2 !== "object")
|
|
205637
205944
|
return false;
|
|
205638
205945
|
return typeof run2.src === "string";
|
|
@@ -205651,7 +205958,7 @@ var Node$13 = class Node$14 {
|
|
|
205651
205958
|
return;
|
|
205652
205959
|
const candidate = run2.pmEnd;
|
|
205653
205960
|
return typeof candidate === "number" ? candidate : undefined;
|
|
205654
|
-
}, engines_exports, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, cacheByEditor, OBJECT_REPLACEMENT_CHAR = "", LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH$2 = 96, BULLET_FORMATS$1, LOCK_MODE_TO_SDT_LOCK, SDT_NODE_NAMES, SDT_BLOCK_NAME = "structuredContentBlock", VALID_CONTROL_TYPES, VALID_LOCK_MODES, VALID_APPEARANCES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, CSS_NAMED_COLORS, HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, DERIVED_ID_LENGTH = 24, groupedCache, FIELD_LIKE_SDT_TYPES, liveDocumentCountsCache, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SCHEMA_NODE_GATES, schemaGatedIds, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", CONTENT_CAPABILITIES, INLINE_CAPABILITIES, SDT_LOCK_TO_LOCK_MODE, STUB_WHERE, EMPTY_RESOLUTION, CONTAINER_NODE_TYPES, VALID_EDGE_NODE_TYPES3, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, ALIGNMENT_TO_JUSTIFICATION, SUPPORTED_DELETE_NODE_TYPES3, REJECTED_DELETE_NODE_TYPES3, TEXT_PREVIEW_MAX_LENGTH = 80, RANGE_DELETE_SAFE_NODE_TYPES, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, NUMBERING_PART = "word/numbering.xml", DEFAULT_PRESET_FOR_KIND, PREVIEW_TEXT_MAX_LENGTH = 2000, BLOCK_PREVIEW_MAX_LENGTH = 200, EDGE_NODE_TYPES, SETTINGS_PART_PATH = "word/settings.xml", POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, SETTINGS_PART = "word/settings.xml", TABLE_ADAPTER_DISPATCH, ROW_OPS, TABLE_SCOPED_OPS, registered = false, STYLES_PART_ID = "word/styles.xml", stylesPartDescriptor, settingsPartDescriptor, RELS_PART_ID2 = "word/_rels/document.xml.rels", RELS_XMLNS$1 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE$2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE$2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", relsPartDescriptor, DOCUMENT_RELS_PATH$1 = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", WORDPROCESSINGML_XMLNS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", OFFICE_DOCUMENT_RELS_XMLNS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", RELATIONSHIP_ID_PATTERN, HEADER_FILE_PATTERN$1, FOOTER_FILE_PATTERN$1, HISTORY_UNSAFE_OPS, IGNORED_ATTRIBUTE_KEYS, TRACK_CHANGE_MARK_NAMES, TRACK_CHANGE_IGNORED_ATTRIBUTE_KEYS, VOLATILE_PARAGRAPH_ATTRS, VOLATILE_IMAGE_ORIGINAL_ATTR_KEYS, SIMILARITY_THRESHOLD = 0.65, MIN_LENGTH_FOR_SIMILARITY = 4, COMMENT_ATTRS_DIFF_IGNORED_KEYS, setNestedValue = (target, path2, value) => {
|
|
205961
|
+
}, engines_exports, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, cacheByEditor, OBJECT_REPLACEMENT_CHAR = "", LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH$2 = 96, BULLET_FORMATS$1, LOCK_MODE_TO_SDT_LOCK, SDT_NODE_NAMES, SDT_BLOCK_NAME = "structuredContentBlock", VALID_CONTROL_TYPES, VALID_LOCK_MODES, VALID_APPEARANCES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, CSS_NAMED_COLORS, HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, DERIVED_ID_LENGTH = 24, groupedCache, FIELD_LIKE_SDT_TYPES, liveDocumentCountsCache, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SCHEMA_NODE_GATES, schemaGatedIds, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", CONTENT_CAPABILITIES, INLINE_CAPABILITIES, SDT_LOCK_TO_LOCK_MODE, STUB_WHERE, EMPTY_RESOLUTION, CONTAINER_NODE_TYPES, VALID_EDGE_NODE_TYPES3, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, ALIGNMENT_TO_JUSTIFICATION, SUPPORTED_DELETE_NODE_TYPES3, REJECTED_DELETE_NODE_TYPES3, TEXT_PREVIEW_MAX_LENGTH = 80, RANGE_DELETE_SAFE_NODE_TYPES, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, NUMBERING_PART = "word/numbering.xml", DEFAULT_PRESET_FOR_KIND, PREVIEW_TEXT_MAX_LENGTH = 2000, BLOCK_PREVIEW_MAX_LENGTH = 200, EDGE_NODE_TYPES, DOCX_HEX_ID_LENGTH = 8, SETTINGS_PART_PATH = "word/settings.xml", POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, SETTINGS_PART = "word/settings.xml", TABLE_ADAPTER_DISPATCH, ROW_OPS, TABLE_SCOPED_OPS, registered = false, STYLES_PART_ID = "word/styles.xml", stylesPartDescriptor, settingsPartDescriptor, RELS_PART_ID2 = "word/_rels/document.xml.rels", RELS_XMLNS$1 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE$2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE$2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", relsPartDescriptor, DOCUMENT_RELS_PATH$1 = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", WORDPROCESSINGML_XMLNS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", OFFICE_DOCUMENT_RELS_XMLNS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", RELATIONSHIP_ID_PATTERN, HEADER_FILE_PATTERN$1, FOOTER_FILE_PATTERN$1, HISTORY_UNSAFE_OPS, IGNORED_ATTRIBUTE_KEYS, TRACK_CHANGE_MARK_NAMES, TRACK_CHANGE_IGNORED_ATTRIBUTE_KEYS, VOLATILE_PARAGRAPH_ATTRS, VOLATILE_IMAGE_ORIGINAL_ATTR_KEYS, SIMILARITY_THRESHOLD = 0.65, MIN_LENGTH_FOR_SIMILARITY = 4, COMMENT_ATTRS_DIFF_IGNORED_KEYS, setNestedValue = (target, path2, value) => {
|
|
205655
205962
|
if (!path2.includes(".")) {
|
|
205656
205963
|
target[path2] = value;
|
|
205657
205964
|
return;
|
|
@@ -205785,7 +206092,7 @@ var Node$13 = class Node$14 {
|
|
|
205785
206092
|
type: mark2.type.name,
|
|
205786
206093
|
attrs: mark2.attrs ?? {}
|
|
205787
206094
|
}));
|
|
205788
|
-
}, CANONICAL_COMMENT_IGNORED_KEYS, INITIAL_HASH, ROUND_CONSTANTS, V1_COVERAGE, SNAPSHOT_VERSION3 = "sd-diff-snapshot/v1", PAYLOAD_VERSION3 = "sd-diff-payload/v1", ENGINE_ID = "super-editor", STAGED_CONVERTER_KEYS, DiffServiceError, DEFAULT_LEVEL = 1, SWITCH_PATTERN, DEFAULT_RIGHT_TAB_POS = 9350, TAB_LEADER_MAP, NO_ENTRIES_PLACEHOLDER, TC_LEVEL_MIN = 1, TC_LEVEL_MAX = 9, DEFAULT_MIME_TYPE = "application/octet-stream", simpleHash2 = (str) => {
|
|
206095
|
+
}, CANONICAL_COMMENT_IGNORED_KEYS, INITIAL_HASH, ROUND_CONSTANTS, V1_COVERAGE, SNAPSHOT_VERSION3 = "sd-diff-snapshot/v1", PAYLOAD_VERSION3 = "sd-diff-payload/v1", ENGINE_ID = "super-editor", STAGED_CONVERTER_KEYS, DiffServiceError, DEFAULT_LEVEL = 1, SWITCH_PATTERN, TOC_BOOKMARK_PREFIX = "_Toc", DEFAULT_RIGHT_TAB_POS = 9350, TAB_LEADER_MAP, NO_ENTRIES_PLACEHOLDER, TC_LEVEL_MIN = 1, TC_LEVEL_MAX = 9, DEFAULT_MIME_TYPE = "application/octet-stream", simpleHash2 = (str) => {
|
|
205789
206096
|
let hash$3 = 0;
|
|
205790
206097
|
for (let i4 = 0;i4 < str.length; i4++) {
|
|
205791
206098
|
const char = str.charCodeAt(i4);
|
|
@@ -220827,7 +221134,10 @@ var Node$13 = class Node$14 {
|
|
|
220827
221134
|
for (let index2 = 0;index2 < rowsCount; index2++) {
|
|
220828
221135
|
const isHeader = withHeaderRow && index2 === 0;
|
|
220829
221136
|
const cellsToInsert = isHeader ? headerCells : cells;
|
|
220830
|
-
const rowAttrs =
|
|
221137
|
+
const rowAttrs = {
|
|
221138
|
+
...isHeader ? { tableRowProperties: { repeatHeader: true } } : {},
|
|
221139
|
+
paraId: generateDocxHexId()
|
|
221140
|
+
};
|
|
220831
221141
|
rows.push(types3.tableRow.createChecked(rowAttrs, cellsToInsert));
|
|
220832
221142
|
}
|
|
220833
221143
|
return types3.table.createChecked(tableAttrsOverride, rows);
|
|
@@ -224673,9 +224983,9 @@ var Node$13 = class Node$14 {
|
|
|
224673
224983
|
return false;
|
|
224674
224984
|
return Boolean(checker(attrs));
|
|
224675
224985
|
}, SuperToolbar, ICONS, TEXTS, tableActionsOptions;
|
|
224676
|
-
var
|
|
224986
|
+
var init_src_BAlN4OvK_es = __esm(() => {
|
|
224677
224987
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
224678
|
-
|
|
224988
|
+
init_SuperConverter_hvBoS9gB_es();
|
|
224679
224989
|
init_jszip_ChlR43oI_es();
|
|
224680
224990
|
init_uuid_qzgm05fK_es();
|
|
224681
224991
|
init_constants_ep1_Gwqi_es();
|
|
@@ -231601,6 +231911,11 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
231601
231911
|
"spanning",
|
|
231602
231912
|
"code"
|
|
231603
231913
|
];
|
|
231914
|
+
TABLE_LIKE_PREFIX = {
|
|
231915
|
+
table: "table-auto",
|
|
231916
|
+
tableCell: "cell-auto"
|
|
231917
|
+
};
|
|
231918
|
+
UUID_LIKE_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
231604
231919
|
DocumentApiAdapterError = class DocumentApiAdapterError2 extends Error {
|
|
231605
231920
|
constructor(code7, message, details) {
|
|
231606
231921
|
super(message);
|
|
@@ -248397,7 +248712,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
248397
248712
|
}
|
|
248398
248713
|
return true;
|
|
248399
248714
|
},
|
|
248400
|
-
insertTableAt: ({ pos, rows, columns, sdBlockId,
|
|
248715
|
+
insertTableAt: ({ pos, rows, columns, sdBlockId, tracked } = {}) => ({ tr, state, dispatch, editor }) => {
|
|
248401
248716
|
const tableType = state.schema.nodes.table;
|
|
248402
248717
|
const tableRowType = state.schema.nodes.tableRow;
|
|
248403
248718
|
const tableCellType = state.schema.nodes.tableCell;
|
|
@@ -248410,22 +248725,18 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
248410
248725
|
if (!Number.isInteger(columns) || columns < 1)
|
|
248411
248726
|
return false;
|
|
248412
248727
|
try {
|
|
248413
|
-
const genParaId = () => Array.from({ length: 8 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
248414
248728
|
const widths = computeColumnWidths(editor, columns);
|
|
248415
248729
|
const rowNodes = [];
|
|
248416
248730
|
for (let r$1 = 0;r$1 < rows; r$1++) {
|
|
248417
248731
|
const cellNodes = [];
|
|
248418
248732
|
for (let c = 0;c < columns; c++) {
|
|
248419
|
-
const cellAttrs = {
|
|
248420
|
-
paraId: genParaId(),
|
|
248421
|
-
...widths ? { colwidth: [widths[c]] } : {}
|
|
248422
|
-
};
|
|
248733
|
+
const cellAttrs = widths ? { colwidth: [widths[c]] } : {};
|
|
248423
248734
|
const cell2 = tableCellType.createAndFill(cellAttrs);
|
|
248424
248735
|
if (!cell2)
|
|
248425
248736
|
return false;
|
|
248426
248737
|
cellNodes.push(cell2);
|
|
248427
248738
|
}
|
|
248428
|
-
const row2 = tableRowType.createChecked(
|
|
248739
|
+
const row2 = tableRowType.createChecked({ paraId: generateDocxHexId() }, cellNodes);
|
|
248429
248740
|
rowNodes.push(row2);
|
|
248430
248741
|
}
|
|
248431
248742
|
const resolved = normalizeNewTableAttrs(editor);
|
|
@@ -248433,8 +248744,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
248433
248744
|
...resolved.tableStyleId ? { tableStyleId: resolved.tableStyleId } : {},
|
|
248434
248745
|
...resolved.borders ? { borders: resolved.borders } : {},
|
|
248435
248746
|
...resolved.tableProperties ? { tableProperties: resolved.tableProperties } : {},
|
|
248436
|
-
...sdBlockId ? { sdBlockId } : {}
|
|
248437
|
-
...paraId ? { paraId } : {}
|
|
248747
|
+
...sdBlockId ? { sdBlockId } : {}
|
|
248438
248748
|
};
|
|
248439
248749
|
const tableNode = tableType.createChecked(tableAttrs, rowNodes);
|
|
248440
248750
|
if (dispatch) {
|
|
@@ -248442,7 +248752,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
248442
248752
|
const makeSep = () => {
|
|
248443
248753
|
const attrs = {
|
|
248444
248754
|
sdBlockId: v4_default(),
|
|
248445
|
-
paraId:
|
|
248755
|
+
paraId: generateDocxHexId()
|
|
248446
248756
|
};
|
|
248447
248757
|
return state.schema.nodes.paragraph.createAndFill(attrs);
|
|
248448
248758
|
};
|
|
@@ -257761,8 +258071,8 @@ var init_zipper_DqXT7uTa_es = __esm(() => {
|
|
|
257761
258071
|
|
|
257762
258072
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
257763
258073
|
var init_super_editor_es = __esm(() => {
|
|
257764
|
-
|
|
257765
|
-
|
|
258074
|
+
init_src_BAlN4OvK_es();
|
|
258075
|
+
init_SuperConverter_hvBoS9gB_es();
|
|
257766
258076
|
init_jszip_ChlR43oI_es();
|
|
257767
258077
|
init_xml_js_BtmJ6bNs_es();
|
|
257768
258078
|
init_constants_ep1_Gwqi_es();
|
|
@@ -257825,6 +258135,48 @@ function resolvePublicTocNodeId2(node3, pos) {
|
|
|
257825
258135
|
return buildFallbackTocNodeId2(node3, pos);
|
|
257826
258136
|
}
|
|
257827
258137
|
|
|
258138
|
+
// ../../packages/super-editor/src/document-api-adapters/helpers/table-node-id.ts
|
|
258139
|
+
function stableHash3(input2) {
|
|
258140
|
+
let hash2 = 2166136261;
|
|
258141
|
+
for (let index2 = 0;index2 < input2.length; index2 += 1) {
|
|
258142
|
+
hash2 ^= input2.charCodeAt(index2);
|
|
258143
|
+
hash2 = Math.imul(hash2, 16777619);
|
|
258144
|
+
}
|
|
258145
|
+
return (hash2 >>> 0).toString(16).padStart(8, "0");
|
|
258146
|
+
}
|
|
258147
|
+
function toTableLikeBlockNodeType2(nodeType) {
|
|
258148
|
+
if (nodeType === "table")
|
|
258149
|
+
return "table";
|
|
258150
|
+
if (nodeType === "tableCell")
|
|
258151
|
+
return "tableCell";
|
|
258152
|
+
return;
|
|
258153
|
+
}
|
|
258154
|
+
function serializeTraversalPath2(path2, pos) {
|
|
258155
|
+
if (Array.isArray(path2) && path2.length > 0) {
|
|
258156
|
+
return `path:${path2.join(".")}`;
|
|
258157
|
+
}
|
|
258158
|
+
return `pos:${pos}`;
|
|
258159
|
+
}
|
|
258160
|
+
function isVolatileRuntimeBlockId2(id2) {
|
|
258161
|
+
return typeof id2 === "string" && UUID_LIKE_PATTERN2.test(id2);
|
|
258162
|
+
}
|
|
258163
|
+
function buildFallbackTableNodeId2(nodeType, pos, path2) {
|
|
258164
|
+
const tableLikeType = toTableLikeBlockNodeType2(nodeType);
|
|
258165
|
+
if (!tableLikeType)
|
|
258166
|
+
return;
|
|
258167
|
+
const prefix2 = TABLE_LIKE_PREFIX2[tableLikeType];
|
|
258168
|
+
const source = serializeTraversalPath2(path2, pos);
|
|
258169
|
+
return `${prefix2}-${stableHash3(`${tableLikeType}:${source}`)}`;
|
|
258170
|
+
}
|
|
258171
|
+
var TABLE_LIKE_PREFIX2, UUID_LIKE_PATTERN2;
|
|
258172
|
+
var init_table_node_id = __esm(() => {
|
|
258173
|
+
TABLE_LIKE_PREFIX2 = {
|
|
258174
|
+
table: "table-auto",
|
|
258175
|
+
tableCell: "cell-auto"
|
|
258176
|
+
};
|
|
258177
|
+
UUID_LIKE_PATTERN2 = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
258178
|
+
});
|
|
258179
|
+
|
|
257828
258180
|
// ../../packages/super-editor/src/document-api-adapters/errors.ts
|
|
257829
258181
|
var DocumentApiAdapterError3;
|
|
257830
258182
|
var init_errors3 = __esm(() => {
|
|
@@ -257892,7 +258244,17 @@ function mapBlockNodeType2(node3) {
|
|
|
257892
258244
|
return;
|
|
257893
258245
|
}
|
|
257894
258246
|
}
|
|
257895
|
-
function
|
|
258247
|
+
function resolveLegacyTableIdentity2(attrs) {
|
|
258248
|
+
return toId2(attrs.paraId) ?? toId2(attrs.blockId) ?? toId2(attrs.id) ?? toId2(attrs.uuid);
|
|
258249
|
+
}
|
|
258250
|
+
function resolveRuntimeTableIdentity2(nodeType, attrs, pos, path2) {
|
|
258251
|
+
const sdBlockId = toId2(attrs.sdBlockId);
|
|
258252
|
+
if (sdBlockId && !isVolatileRuntimeBlockId2(sdBlockId)) {
|
|
258253
|
+
return sdBlockId;
|
|
258254
|
+
}
|
|
258255
|
+
return buildFallbackTableNodeId2(nodeType, pos, path2);
|
|
258256
|
+
}
|
|
258257
|
+
function resolveBlockNodeId2(node3, pos, nodeType, path2) {
|
|
257896
258258
|
if (node3.type.name === "paragraph") {
|
|
257897
258259
|
const attrs2 = node3.attrs;
|
|
257898
258260
|
return toId2(attrs2?.paraId) ?? toId2(attrs2?.sdBlockId);
|
|
@@ -257902,9 +258264,12 @@ function resolveBlockNodeId2(node3, pos, nodeType) {
|
|
|
257902
258264
|
}
|
|
257903
258265
|
const attrs = node3.attrs ?? {};
|
|
257904
258266
|
const typeName = node3.type.name;
|
|
257905
|
-
if (typeName === "
|
|
258267
|
+
if (typeName === "tableRow") {
|
|
257906
258268
|
return toId2(attrs.paraId) ?? toId2(attrs.sdBlockId) ?? toId2(attrs.blockId) ?? toId2(attrs.id) ?? toId2(attrs.uuid);
|
|
257907
258269
|
}
|
|
258270
|
+
if (typeName === "table" || typeName === "tableCell" || typeName === "tableHeader") {
|
|
258271
|
+
return resolveLegacyTableIdentity2(attrs) ?? resolveRuntimeTableIdentity2(nodeType, attrs, pos, path2);
|
|
258272
|
+
}
|
|
257908
258273
|
return toId2(attrs.blockId) ?? toId2(attrs.id) ?? toId2(attrs.paraId) ?? toId2(attrs.uuid) ?? toId2(attrs.sdBlockId);
|
|
257909
258274
|
}
|
|
257910
258275
|
function toBlockAddress2(candidate) {
|
|
@@ -257927,6 +258292,8 @@ function buildBlockIndex2(editor) {
|
|
|
257927
258292
|
const candidates = [];
|
|
257928
258293
|
const byId = new Map;
|
|
257929
258294
|
const ambiguous = new Set;
|
|
258295
|
+
const pathByNode = new WeakMap;
|
|
258296
|
+
pathByNode.set(editor.state.doc, []);
|
|
257930
258297
|
function registerKey(key2, candidate) {
|
|
257931
258298
|
if (byId.has(key2)) {
|
|
257932
258299
|
ambiguous.add(key2);
|
|
@@ -257935,11 +258302,16 @@ function buildBlockIndex2(editor) {
|
|
|
257935
258302
|
byId.set(key2, candidate);
|
|
257936
258303
|
}
|
|
257937
258304
|
}
|
|
257938
|
-
editor.state.doc.descendants((node3, pos) => {
|
|
258305
|
+
editor.state.doc.descendants((node3, pos, parent, index2) => {
|
|
258306
|
+
const parentPath = parent ? pathByNode.get(parent) ?? [] : [];
|
|
258307
|
+
const path2 = typeof index2 === "number" && Number.isInteger(index2) && index2 >= 0 ? [...parentPath, index2] : undefined;
|
|
258308
|
+
if (path2) {
|
|
258309
|
+
pathByNode.set(node3, path2);
|
|
258310
|
+
}
|
|
257939
258311
|
const nodeType = mapBlockNodeType2(node3);
|
|
257940
258312
|
if (!nodeType)
|
|
257941
258313
|
return;
|
|
257942
|
-
const nodeId = resolveBlockNodeId2(node3, pos, nodeType);
|
|
258314
|
+
const nodeId = resolveBlockNodeId2(node3, pos, nodeType, path2);
|
|
257943
258315
|
if (!nodeId)
|
|
257944
258316
|
return;
|
|
257945
258317
|
const candidate = {
|
|
@@ -258034,6 +258406,7 @@ function findBlockByPos2(index2, pos) {
|
|
|
258034
258406
|
}
|
|
258035
258407
|
var SUPPORTED_BLOCK_NODE_TYPES, ALIAS_ELIGIBLE_TYPES2;
|
|
258036
258408
|
var init_node_address_resolver = __esm(() => {
|
|
258409
|
+
init_table_node_id();
|
|
258037
258410
|
init_errors3();
|
|
258038
258411
|
SUPPORTED_BLOCK_NODE_TYPES = new Set([
|
|
258039
258412
|
"paragraph",
|
|
@@ -266880,15 +267253,6 @@ function requireEditorCommand2(command2, operationName) {
|
|
|
266880
267253
|
reason: "missing_command"
|
|
266881
267254
|
});
|
|
266882
267255
|
}
|
|
266883
|
-
function requireSchemaMark2(editor, markName, operationName) {
|
|
266884
|
-
const mark2 = editor.schema?.marks?.[markName];
|
|
266885
|
-
if (mark2)
|
|
266886
|
-
return mark2;
|
|
266887
|
-
throw new DocumentApiAdapterError3("CAPABILITY_UNAVAILABLE", `${operationName} requires the "${markName}" mark.`, {
|
|
266888
|
-
reason: "missing_mark",
|
|
266889
|
-
markName
|
|
266890
|
-
});
|
|
266891
|
-
}
|
|
266892
267256
|
function ensureTrackedCapability2(editor, config2) {
|
|
266893
267257
|
if (typeof editor.commands?.insertTrackedChange !== "function") {
|
|
266894
267258
|
throw new DocumentApiAdapterError3("CAPABILITY_UNAVAILABLE", `${config2.operation} requires the insertTrackedChange command.`, { reason: "missing_command" });
|
|
@@ -280842,6 +281206,15 @@ function createStrictTogglePropertyHandler2(xmlName, sdName = null) {
|
|
|
280842
281206
|
}
|
|
280843
281207
|
};
|
|
280844
281208
|
}
|
|
281209
|
+
function stripUnsupportedTableIdentityAttributes2(attrs) {
|
|
281210
|
+
if (!attrs || typeof attrs !== "object")
|
|
281211
|
+
return {};
|
|
281212
|
+
const filteredAttrs = { ...attrs };
|
|
281213
|
+
for (const attrName of UNSUPPORTED_TABLE_IDENTITY_ATTRS2) {
|
|
281214
|
+
delete filteredAttrs[attrName];
|
|
281215
|
+
}
|
|
281216
|
+
return filteredAttrs;
|
|
281217
|
+
}
|
|
280845
281218
|
function createMeasurementPropertyHandler2(xmlName, sdName = null) {
|
|
280846
281219
|
if (!sdName)
|
|
280847
281220
|
sdName = xmlName.split(":")[1];
|
|
@@ -281088,7 +281461,7 @@ var generateV2HandlerEntity2 = (handlerName, translator2) => ({
|
|
|
281088
281461
|
consumed: 1
|
|
281089
281462
|
};
|
|
281090
281463
|
}
|
|
281091
|
-
}), createSingleIntegerPropertyHandler2 = (xmlName, sdName = null) => createSingleAttrPropertyHandler2(xmlName, sdName, "w:val", parseInteger2, integerToString2), parseMeasurementValue2 = (value, type) => {
|
|
281464
|
+
}), createSingleIntegerPropertyHandler2 = (xmlName, sdName = null) => createSingleAttrPropertyHandler2(xmlName, sdName, "w:val", parseInteger2, integerToString2), UNSUPPORTED_TABLE_IDENTITY_ATTRS2, parseMeasurementValue2 = (value, type) => {
|
|
281092
281465
|
if (value == null)
|
|
281093
281466
|
return;
|
|
281094
281467
|
const strValue = String(value);
|
|
@@ -281126,6 +281499,7 @@ var init_utils = __esm(() => {
|
|
|
281126
281499
|
init_node_translator2();
|
|
281127
281500
|
init_src();
|
|
281128
281501
|
init_import_diagnostics();
|
|
281502
|
+
UNSUPPORTED_TABLE_IDENTITY_ATTRS2 = ["w14:paraId", "w14:textId"];
|
|
281129
281503
|
});
|
|
281130
281504
|
|
|
281131
281505
|
// ../../packages/super-editor/src/core/super-converter/v3/handlers/w/nsid/nsid-translator.js
|
|
@@ -291677,8 +292051,9 @@ function encode32(params3, encodedAttrs) {
|
|
|
291677
292051
|
}
|
|
291678
292052
|
function decode33(params3, decodedAttrs) {
|
|
291679
292053
|
const translated = translateTableCell2(params3);
|
|
291680
|
-
|
|
291681
|
-
|
|
292054
|
+
const filteredDecodedAttrs = stripUnsupportedTableIdentityAttributes2(decodedAttrs);
|
|
292055
|
+
if (Object.keys(filteredDecodedAttrs).length) {
|
|
292056
|
+
translated.attributes = { ...translated.attributes || {}, ...filteredDecodedAttrs };
|
|
291682
292057
|
}
|
|
291683
292058
|
return translated;
|
|
291684
292059
|
}
|
|
@@ -313418,7 +313793,7 @@ var validXmlAttributes10, XML_NODE_NAME17 = "w:tbl", SD_NODE_NAME13 = "table", I
|
|
|
313418
313793
|
}
|
|
313419
313794
|
return {
|
|
313420
313795
|
name: "w:tbl",
|
|
313421
|
-
attributes: decodedAttrs
|
|
313796
|
+
attributes: stripUnsupportedTableIdentityAttributes2(decodedAttrs),
|
|
313422
313797
|
elements
|
|
313423
313798
|
};
|
|
313424
313799
|
}, config17, translator172;
|
|
@@ -318157,56 +318532,113 @@ function toIdentityValue2(value) {
|
|
|
318157
318532
|
return String(value);
|
|
318158
318533
|
return;
|
|
318159
318534
|
}
|
|
318160
|
-
function
|
|
318535
|
+
function getBlockIdentityAttrs2(node4) {
|
|
318161
318536
|
if (!node4 || typeof node4 !== "object")
|
|
318162
|
-
return;
|
|
318163
|
-
|
|
318164
|
-
|
|
318165
|
-
|
|
318537
|
+
return [];
|
|
318538
|
+
return BLOCK_IDENTITY_ATTRS2[node4.type] ?? [];
|
|
318539
|
+
}
|
|
318540
|
+
function getExplicitIdentityEntries2(node4) {
|
|
318541
|
+
const attrPriority = getBlockIdentityAttrs2(node4);
|
|
318542
|
+
if (attrPriority.length === 0)
|
|
318543
|
+
return [];
|
|
318166
318544
|
const attrs = typeof node4.attrs === "object" && node4.attrs ? node4.attrs : {};
|
|
318545
|
+
const identityEntries = [];
|
|
318167
318546
|
for (const attr of attrPriority) {
|
|
318168
318547
|
const value = toIdentityValue2(attrs[attr]);
|
|
318169
|
-
if (value)
|
|
318170
|
-
|
|
318548
|
+
if (value) {
|
|
318549
|
+
identityEntries.push({ attr, value });
|
|
318550
|
+
}
|
|
318171
318551
|
}
|
|
318172
|
-
return;
|
|
318552
|
+
return identityEntries;
|
|
318173
318553
|
}
|
|
318174
|
-
function
|
|
318175
|
-
|
|
318176
|
-
|
|
318177
|
-
|
|
318554
|
+
function groupIdentityEntriesByValue2(identityEntries) {
|
|
318555
|
+
const groupsByValue = new Map;
|
|
318556
|
+
for (const entry of identityEntries) {
|
|
318557
|
+
const existingGroup = groupsByValue.get(entry.value);
|
|
318558
|
+
if (existingGroup) {
|
|
318559
|
+
existingGroup.attrs.push(entry.attr);
|
|
318560
|
+
continue;
|
|
318561
|
+
}
|
|
318562
|
+
groupsByValue.set(entry.value, {
|
|
318563
|
+
value: entry.value,
|
|
318564
|
+
attrs: [entry.attr]
|
|
318565
|
+
});
|
|
318178
318566
|
}
|
|
318179
|
-
return
|
|
318567
|
+
return [...groupsByValue.values()];
|
|
318568
|
+
}
|
|
318569
|
+
function shouldSynthesizeParaId2(node4) {
|
|
318570
|
+
return Boolean(node4 && typeof node4 === "object" && SYNTHETIC_PARA_ID_TYPES2.has(node4.type));
|
|
318180
318571
|
}
|
|
318181
|
-
function
|
|
318572
|
+
function collectExplicitBlockIdentities2(node4, reservedIds) {
|
|
318182
318573
|
if (!node4 || typeof node4 !== "object")
|
|
318183
318574
|
return;
|
|
318184
|
-
const
|
|
318185
|
-
|
|
318186
|
-
|
|
318187
|
-
|
|
318188
|
-
|
|
318189
|
-
|
|
318190
|
-
|
|
318191
|
-
|
|
318575
|
+
const identityEntries = getExplicitIdentityEntries2(node4);
|
|
318576
|
+
for (const { value } of groupIdentityEntriesByValue2(identityEntries)) {
|
|
318577
|
+
reservedIds.add(value);
|
|
318578
|
+
}
|
|
318579
|
+
if (Array.isArray(node4.content)) {
|
|
318580
|
+
node4.content.forEach((child) => collectExplicitBlockIdentities2(child, reservedIds));
|
|
318581
|
+
}
|
|
318582
|
+
}
|
|
318583
|
+
function createDeterministicDocxIdAllocator2(reservedIds) {
|
|
318584
|
+
let nextValue = 1;
|
|
318585
|
+
return () => {
|
|
318586
|
+
while (nextValue <= MAX_DOCX_ID2) {
|
|
318587
|
+
const id2 = nextValue.toString(16).toUpperCase().padStart(DOCX_ID_LENGTH2, "0");
|
|
318588
|
+
nextValue += 1;
|
|
318589
|
+
if (reservedIds.has(id2))
|
|
318590
|
+
continue;
|
|
318591
|
+
reservedIds.add(id2);
|
|
318592
|
+
return id2;
|
|
318192
318593
|
}
|
|
318594
|
+
throw new Error("Unable to allocate a unique synthetic DOCX block id.");
|
|
318595
|
+
};
|
|
318596
|
+
}
|
|
318597
|
+
function setBlockIdentity2(node4, attrName, value) {
|
|
318598
|
+
node4.attrs = { ...node4.attrs ?? {}, [attrName]: value };
|
|
318599
|
+
}
|
|
318600
|
+
function normalizeBlockIdentitiesInNode2(node4, seenIds, allocateDocxId) {
|
|
318601
|
+
if (!node4 || typeof node4 !== "object")
|
|
318602
|
+
return;
|
|
318603
|
+
const identityEntries = getExplicitIdentityEntries2(node4);
|
|
318604
|
+
const groupedIdentities = groupIdentityEntriesByValue2(identityEntries);
|
|
318605
|
+
if (groupedIdentities.length > 0) {
|
|
318606
|
+
for (const identityGroup of groupedIdentities) {
|
|
318607
|
+
if (seenIds.has(identityGroup.value)) {
|
|
318608
|
+
const replacementId = allocateDocxId();
|
|
318609
|
+
for (const attr of identityGroup.attrs) {
|
|
318610
|
+
setBlockIdentity2(node4, attr, replacementId);
|
|
318611
|
+
}
|
|
318612
|
+
seenIds.add(replacementId);
|
|
318613
|
+
} else {
|
|
318614
|
+
seenIds.add(identityGroup.value);
|
|
318615
|
+
}
|
|
318616
|
+
}
|
|
318617
|
+
} else if (shouldSynthesizeParaId2(node4)) {
|
|
318618
|
+
const syntheticParaId = allocateDocxId();
|
|
318619
|
+
setBlockIdentity2(node4, "paraId", syntheticParaId);
|
|
318620
|
+
seenIds.add(syntheticParaId);
|
|
318193
318621
|
}
|
|
318194
318622
|
if (Array.isArray(node4.content)) {
|
|
318195
|
-
node4.content.forEach((child) =>
|
|
318623
|
+
node4.content.forEach((child) => normalizeBlockIdentitiesInNode2(child, seenIds, allocateDocxId));
|
|
318196
318624
|
}
|
|
318197
318625
|
}
|
|
318198
318626
|
function normalizeDuplicateBlockIdentitiesInContent2(content4 = []) {
|
|
318199
318627
|
if (!Array.isArray(content4) || content4.length === 0)
|
|
318200
318628
|
return content4;
|
|
318201
|
-
const
|
|
318202
|
-
content4.forEach((node4) =>
|
|
318629
|
+
const reservedIds = new Set;
|
|
318630
|
+
content4.forEach((node4) => collectExplicitBlockIdentities2(node4, reservedIds));
|
|
318631
|
+
const allocateDocxId = createDeterministicDocxIdAllocator2(reservedIds);
|
|
318632
|
+
const seenIds = new Set;
|
|
318633
|
+
content4.forEach((node4) => normalizeBlockIdentitiesInNode2(node4, seenIds, allocateDocxId));
|
|
318203
318634
|
return content4;
|
|
318204
318635
|
}
|
|
318205
|
-
var PARAGRAPH_IDENTITY_ATTRS2, TABLE_IDENTITY_ATTRS2, DEFAULT_BLOCK_IDENTITY_ATTRS2, BLOCK_IDENTITY_ATTRS2;
|
|
318636
|
+
var PARAGRAPH_IDENTITY_ATTRS2, TABLE_IDENTITY_ATTRS2, DEFAULT_BLOCK_IDENTITY_ATTRS2, SYNTHETIC_PARA_ID_TYPES2, DOCX_ID_LENGTH2 = 8, MAX_DOCX_ID2 = 4294967295, BLOCK_IDENTITY_ATTRS2;
|
|
318206
318637
|
var init_normalizeDuplicateBlockIdentitiesInContent = __esm(() => {
|
|
318207
318638
|
PARAGRAPH_IDENTITY_ATTRS2 = ["sdBlockId", "paraId"];
|
|
318208
318639
|
TABLE_IDENTITY_ATTRS2 = ["sdBlockId", "paraId", "blockId"];
|
|
318209
318640
|
DEFAULT_BLOCK_IDENTITY_ATTRS2 = ["sdBlockId", "blockId", "paraId"];
|
|
318641
|
+
SYNTHETIC_PARA_ID_TYPES2 = new Set(["paragraph", "tableRow"]);
|
|
318210
318642
|
BLOCK_IDENTITY_ATTRS2 = {
|
|
318211
318643
|
paragraph: PARAGRAPH_IDENTITY_ATTRS2,
|
|
318212
318644
|
heading: DEFAULT_BLOCK_IDENTITY_ATTRS2,
|
|
@@ -328174,12 +328606,13 @@ var init_list_item_resolver = __esm(() => {
|
|
|
328174
328606
|
function getLiveDocumentCounts2(editor) {
|
|
328175
328607
|
const currentDoc = editor.state.doc;
|
|
328176
328608
|
const cached = liveDocumentCountsCache2.get(editor);
|
|
328609
|
+
const pages = countPages2(editor);
|
|
328177
328610
|
if (cached && cached.doc === currentDoc) {
|
|
328178
|
-
return cloneLiveDocumentCounts2(cached.counts);
|
|
328611
|
+
return cloneLiveDocumentCounts2(cached.counts, pages);
|
|
328179
328612
|
}
|
|
328180
328613
|
const counts = computeLiveDocumentCounts2(editor);
|
|
328181
328614
|
liveDocumentCountsCache2.set(editor, { doc: currentDoc, counts });
|
|
328182
|
-
return cloneLiveDocumentCounts2(counts);
|
|
328615
|
+
return cloneLiveDocumentCounts2(counts, pages);
|
|
328183
328616
|
}
|
|
328184
328617
|
function computeLiveDocumentCounts2(editor) {
|
|
328185
328618
|
const text9 = getTextAdapter2(editor, {});
|
|
@@ -328200,8 +328633,8 @@ function computeLiveDocumentCounts2(editor) {
|
|
|
328200
328633
|
lists: countLists2(editor, blockIndex)
|
|
328201
328634
|
};
|
|
328202
328635
|
}
|
|
328203
|
-
function cloneLiveDocumentCounts2(counts) {
|
|
328204
|
-
return { ...counts };
|
|
328636
|
+
function cloneLiveDocumentCounts2(counts, pages) {
|
|
328637
|
+
return pages != null ? { ...counts, pages } : { ...counts };
|
|
328205
328638
|
}
|
|
328206
328639
|
function countWordsFromText2(text9) {
|
|
328207
328640
|
const matches3 = text9.trim().match(/\S+/g);
|
|
@@ -328306,6 +328739,9 @@ function resolveVisibleListLevel2(item) {
|
|
|
328306
328739
|
}
|
|
328307
328740
|
return item.path && item.path.length > 0 ? item.path.length - 1 : undefined;
|
|
328308
328741
|
}
|
|
328742
|
+
function countPages2(editor) {
|
|
328743
|
+
return editor.currentTotalPages;
|
|
328744
|
+
}
|
|
328309
328745
|
var FIELD_LIKE_SDT_TYPES2, liveDocumentCountsCache2;
|
|
328310
328746
|
var init_live_document_counts = __esm(() => {
|
|
328311
328747
|
init_index_cache();
|
|
@@ -328418,8 +328854,16 @@ function isInlinePropertyAvailable2(editor, property) {
|
|
|
328418
328854
|
if (property.storage === "mark") {
|
|
328419
328855
|
if (property.carrier.storage !== "mark")
|
|
328420
328856
|
return false;
|
|
328421
|
-
const markName = property.carrier.markName
|
|
328422
|
-
|
|
328857
|
+
const markName = property.carrier.markName;
|
|
328858
|
+
if (!hasMarkCapability2(editor, markName))
|
|
328859
|
+
return false;
|
|
328860
|
+
if (markName === "textStyle" && property.carrier.textStyleAttr) {
|
|
328861
|
+
const textStyleMark = editor.schema.marks.textStyle;
|
|
328862
|
+
const markAttrs = textStyleMark?.spec?.attrs ?? textStyleMark?.attrs;
|
|
328863
|
+
if (!markAttrs || !Object.prototype.hasOwnProperty.call(markAttrs, property.carrier.textStyleAttr))
|
|
328864
|
+
return false;
|
|
328865
|
+
}
|
|
328866
|
+
return true;
|
|
328423
328867
|
}
|
|
328424
328868
|
return Boolean(editor.schema?.nodes?.run);
|
|
328425
328869
|
}
|
|
@@ -331951,6 +332395,84 @@ var init_structural_write_engine = __esm(() => {
|
|
|
331951
332395
|
init_nesting_guard();
|
|
331952
332396
|
});
|
|
331953
332397
|
|
|
332398
|
+
// ../../packages/super-editor/src/document-api-adapters/plan-engine/inline-property-guards.ts
|
|
332399
|
+
function getSchemaMarks2(editor) {
|
|
332400
|
+
return editor.schema?.marks ?? editor.state.schema?.marks ?? {};
|
|
332401
|
+
}
|
|
332402
|
+
function getSchemaNodes2(editor) {
|
|
332403
|
+
return editor.state.schema?.nodes ?? editor.schema?.nodes ?? {};
|
|
332404
|
+
}
|
|
332405
|
+
function getMarkAttrs2(markType) {
|
|
332406
|
+
if (!markType || typeof markType !== "object")
|
|
332407
|
+
return;
|
|
332408
|
+
const specAttrs = markType.spec?.attrs;
|
|
332409
|
+
if (specAttrs && typeof specAttrs === "object")
|
|
332410
|
+
return specAttrs;
|
|
332411
|
+
const attrs = markType.attrs;
|
|
332412
|
+
if (attrs && typeof attrs === "object")
|
|
332413
|
+
return attrs;
|
|
332414
|
+
return;
|
|
332415
|
+
}
|
|
332416
|
+
function getInlinePropertyCapabilityIssue2(editor, keys7, operationName = "format.apply") {
|
|
332417
|
+
const schemaMarks = getSchemaMarks2(editor);
|
|
332418
|
+
const requiredTextStyleAttrs = new Set;
|
|
332419
|
+
let requiresRunNode = false;
|
|
332420
|
+
for (const key2 of keys7) {
|
|
332421
|
+
const entry = INLINE_PROPERTY_BY_KEY[key2];
|
|
332422
|
+
if (!entry)
|
|
332423
|
+
continue;
|
|
332424
|
+
if (entry.storage === "mark") {
|
|
332425
|
+
const carrier = entry.carrier;
|
|
332426
|
+
if (carrier.storage !== "mark")
|
|
332427
|
+
continue;
|
|
332428
|
+
if (!schemaMarks[carrier.markName]) {
|
|
332429
|
+
return {
|
|
332430
|
+
code: "CAPABILITY_UNAVAILABLE",
|
|
332431
|
+
message: `${operationName} requires the "${carrier.markName}" mark.`,
|
|
332432
|
+
details: { reason: "missing_mark", markName: carrier.markName }
|
|
332433
|
+
};
|
|
332434
|
+
}
|
|
332435
|
+
if (carrier.markName === "textStyle" && carrier.textStyleAttr) {
|
|
332436
|
+
requiredTextStyleAttrs.add(carrier.textStyleAttr);
|
|
332437
|
+
}
|
|
332438
|
+
continue;
|
|
332439
|
+
}
|
|
332440
|
+
requiresRunNode = true;
|
|
332441
|
+
}
|
|
332442
|
+
if (requiredTextStyleAttrs.size > 0) {
|
|
332443
|
+
const markAttrs = getMarkAttrs2(schemaMarks.textStyle);
|
|
332444
|
+
for (const attr of requiredTextStyleAttrs) {
|
|
332445
|
+
if (!markAttrs || !Object.prototype.hasOwnProperty.call(markAttrs, attr)) {
|
|
332446
|
+
return {
|
|
332447
|
+
code: "CAPABILITY_UNAVAILABLE",
|
|
332448
|
+
message: `${operationName} requires the "${attr}" attribute on the textStyle mark.`,
|
|
332449
|
+
details: { reason: "missing_mark_attribute", markName: "textStyle", attribute: attr }
|
|
332450
|
+
};
|
|
332451
|
+
}
|
|
332452
|
+
}
|
|
332453
|
+
}
|
|
332454
|
+
if (requiresRunNode && !getSchemaNodes2(editor).run) {
|
|
332455
|
+
return {
|
|
332456
|
+
code: "CAPABILITY_UNAVAILABLE",
|
|
332457
|
+
message: `${operationName} requires a run node in the schema.`
|
|
332458
|
+
};
|
|
332459
|
+
}
|
|
332460
|
+
return;
|
|
332461
|
+
}
|
|
332462
|
+
function getTrackedInlinePropertySupportIssue2(keys7, operationName = "format.apply") {
|
|
332463
|
+
const unsupportedTrackedKeys = keys7.filter((key2) => INLINE_PROPERTY_BY_KEY[key2]?.tracked === false);
|
|
332464
|
+
if (unsupportedTrackedKeys.length === 0)
|
|
332465
|
+
return;
|
|
332466
|
+
return {
|
|
332467
|
+
code: "CAPABILITY_UNAVAILABLE",
|
|
332468
|
+
message: `${operationName} tracked mode is not available for: ${unsupportedTrackedKeys.join(", ")}`,
|
|
332469
|
+
details: { keys: unsupportedTrackedKeys, changeMode: "tracked" }
|
|
332470
|
+
};
|
|
332471
|
+
}
|
|
332472
|
+
var init_inline_property_guards = __esm(() => {
|
|
332473
|
+
init_src();
|
|
332474
|
+
});
|
|
332475
|
+
|
|
331954
332476
|
// ../../packages/super-editor/src/document-api-adapters/plan-engine/plan-wrappers.ts
|
|
331955
332477
|
function editorHasDom2(editor) {
|
|
331956
332478
|
const opts = editor.options;
|
|
@@ -332128,37 +332650,16 @@ function writeWrapper2(editor, request, options) {
|
|
|
332128
332650
|
return mapPlanReceiptToTextReceipt2(receipt2, resolved.resolution);
|
|
332129
332651
|
}
|
|
332130
332652
|
function ensureInlinePropertyCapabilities2(editor, keys7) {
|
|
332131
|
-
|
|
332132
|
-
|
|
332133
|
-
|
|
332134
|
-
|
|
332135
|
-
if (!entry)
|
|
332136
|
-
continue;
|
|
332137
|
-
if (entry.storage === "mark") {
|
|
332138
|
-
const carrier = entry.carrier;
|
|
332139
|
-
if (carrier.storage !== "mark")
|
|
332140
|
-
continue;
|
|
332141
|
-
if (carrier.markName === "textStyle") {
|
|
332142
|
-
requiresTextStyle = true;
|
|
332143
|
-
continue;
|
|
332144
|
-
}
|
|
332145
|
-
requireSchemaMark2(editor, carrier.markName, "format.apply");
|
|
332146
|
-
continue;
|
|
332147
|
-
}
|
|
332148
|
-
requiresRunNode = true;
|
|
332149
|
-
}
|
|
332150
|
-
if (requiresTextStyle) {
|
|
332151
|
-
requireSchemaMark2(editor, "textStyle", "format.apply");
|
|
332152
|
-
}
|
|
332153
|
-
if (requiresRunNode && !editor.state.schema.nodes.run) {
|
|
332154
|
-
throw new DocumentApiAdapterError3("CAPABILITY_UNAVAILABLE", "format.apply requires a run node in the schema.");
|
|
332155
|
-
}
|
|
332653
|
+
const issue = getInlinePropertyCapabilityIssue2(editor, keys7);
|
|
332654
|
+
if (!issue)
|
|
332655
|
+
return;
|
|
332656
|
+
throw new DocumentApiAdapterError3(issue.code, issue.message, issue.details);
|
|
332156
332657
|
}
|
|
332157
332658
|
function ensureTrackedInlinePropertySupport2(keys7) {
|
|
332158
|
-
const
|
|
332159
|
-
if (
|
|
332659
|
+
const issue = getTrackedInlinePropertySupportIssue2(keys7);
|
|
332660
|
+
if (!issue)
|
|
332160
332661
|
return;
|
|
332161
|
-
throw new DocumentApiAdapterError3(
|
|
332662
|
+
throw new DocumentApiAdapterError3(issue.code, issue.message, issue.details);
|
|
332162
332663
|
}
|
|
332163
332664
|
function buildSelectionWhere2(request) {
|
|
332164
332665
|
if (request.target) {
|
|
@@ -332856,6 +333357,7 @@ var init_plan_wrappers = __esm(() => {
|
|
|
332856
333357
|
init_selection_target_resolver();
|
|
332857
333358
|
init_index_cache();
|
|
332858
333359
|
init_node_address_resolver();
|
|
333360
|
+
init_inline_property_guards();
|
|
332859
333361
|
STUB_WHERE2 = {
|
|
332860
333362
|
by: "select",
|
|
332861
333363
|
select: { type: "text", pattern: "", mode: "exact" },
|
|
@@ -334754,7 +335256,7 @@ function collectTopLevelBlocks2(editor) {
|
|
|
334754
335256
|
const nodeType = mapBlockNodeType2(child);
|
|
334755
335257
|
const pos = offset2;
|
|
334756
335258
|
if (nodeType) {
|
|
334757
|
-
const nodeId = resolveBlockNodeId2(child, pos, nodeType);
|
|
335259
|
+
const nodeId = resolveBlockNodeId2(child, pos, nodeType, [i5]);
|
|
334758
335260
|
if (nodeId) {
|
|
334759
335261
|
results.push({ node: child, pos, end: pos + child.nodeSize, nodeType, nodeId });
|
|
334760
335262
|
}
|
|
@@ -336872,6 +337374,12 @@ var init_table_target_resolver = __esm(() => {
|
|
|
336872
337374
|
init_errors3();
|
|
336873
337375
|
});
|
|
336874
337376
|
|
|
337377
|
+
// ../../packages/super-editor/src/utils/generateDocxHexId.js
|
|
337378
|
+
function generateDocxHexId2() {
|
|
337379
|
+
return Array.from({ length: DOCX_HEX_ID_LENGTH2 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
337380
|
+
}
|
|
337381
|
+
var DOCX_HEX_ID_LENGTH2 = 8;
|
|
337382
|
+
|
|
336875
337383
|
// ../../packages/super-editor/src/document-api-adapters/document-settings.ts
|
|
336876
337384
|
function findSettingsRoot2(part) {
|
|
336877
337385
|
if (part.name === "w:settings")
|
|
@@ -336950,16 +337458,13 @@ function setOddEvenHeadersFooters2(settingsRoot, enabled) {
|
|
|
336950
337458
|
var SETTINGS_PART_PATH2 = "word/settings.xml";
|
|
336951
337459
|
|
|
336952
337460
|
// ../../packages/super-editor/src/document-api-adapters/tables-adapter.ts
|
|
336953
|
-
function generateParaId2() {
|
|
336954
|
-
return Array.from({ length: 8 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
336955
|
-
}
|
|
336956
337461
|
function createSeparatorParagraph2(schema) {
|
|
336957
337462
|
const paragraphType = schema.nodes.paragraph;
|
|
336958
337463
|
if (!paragraphType)
|
|
336959
337464
|
return null;
|
|
336960
337465
|
const separatorAttrs = {
|
|
336961
337466
|
sdBlockId: v42(),
|
|
336962
|
-
paraId:
|
|
337467
|
+
paraId: generateDocxHexId2()
|
|
336963
337468
|
};
|
|
336964
337469
|
return paragraphType.createAndFill(separatorAttrs) ?? paragraphType.createAndFill();
|
|
336965
337470
|
}
|
|
@@ -338114,18 +338619,16 @@ function tablesConvertFromTextAdapter2(editor, input2, options) {
|
|
|
338114
338619
|
const content5 = text9 ? schema.text(text9) : undefined;
|
|
338115
338620
|
const para = schema.nodes.paragraph.createAndFill(null, content5);
|
|
338116
338621
|
tableCells.push(schema.nodes.tableCell.createAndFill({
|
|
338117
|
-
sdBlockId: v42()
|
|
338118
|
-
paraId: generateParaId2()
|
|
338622
|
+
sdBlockId: v42()
|
|
338119
338623
|
}, para));
|
|
338120
338624
|
}
|
|
338121
338625
|
tableRows.push(schema.nodes.tableRow.createAndFill({
|
|
338122
338626
|
sdBlockId: v42(),
|
|
338123
|
-
paraId:
|
|
338627
|
+
paraId: generateDocxHexId2()
|
|
338124
338628
|
}, tableCells));
|
|
338125
338629
|
}
|
|
338126
338630
|
const tableId = v42();
|
|
338127
|
-
const
|
|
338128
|
-
const tableNode = schema.nodes.table.create({ sdBlockId: tableId, paraId: tableParaId }, tableRows);
|
|
338631
|
+
const tableNode = schema.nodes.table.create({ sdBlockId: tableId }, tableRows);
|
|
338129
338632
|
const startPos = paragraphs[0].pos;
|
|
338130
338633
|
const lastP = paragraphs[paragraphs.length - 1];
|
|
338131
338634
|
const endPos = lastP.pos + lastP.node.nodeSize;
|
|
@@ -338266,8 +338769,7 @@ function tablesInsertCellAdapter2(editor, input2, options) {
|
|
|
338266
338769
|
const makeEmptyCell = (preferHeader = false) => {
|
|
338267
338770
|
const candidateType = preferHeader ? schema.nodes.tableHeader ?? schema.nodes.tableCell : schema.nodes.tableCell;
|
|
338268
338771
|
return candidateType.createAndFill({
|
|
338269
|
-
sdBlockId: v42()
|
|
338270
|
-
paraId: generateParaId2()
|
|
338772
|
+
sdBlockId: v42()
|
|
338271
338773
|
}) ?? candidateType.createAndFill();
|
|
338272
338774
|
};
|
|
338273
338775
|
const overflowRowCells = [];
|
|
@@ -338280,7 +338782,7 @@ function tablesInsertCellAdapter2(editor, input2, options) {
|
|
|
338280
338782
|
const overflowRowAttrs = {
|
|
338281
338783
|
...templateRowAttrs,
|
|
338282
338784
|
sdBlockId: v42(),
|
|
338283
|
-
paraId:
|
|
338785
|
+
paraId: generateDocxHexId2()
|
|
338284
338786
|
};
|
|
338285
338787
|
const overflowRow = schema.nodes.tableRow.createAndFill(overflowRowAttrs, overflowRowCells) ?? schema.nodes.tableRow.create(overflowRowAttrs, overflowRowCells);
|
|
338286
338788
|
if (!overflowRow) {
|
|
@@ -339232,13 +339734,11 @@ function createTableAdapter2(editor, input2, options) {
|
|
|
339232
339734
|
};
|
|
339233
339735
|
}
|
|
339234
339736
|
const tableId = v42();
|
|
339235
|
-
const paraId = generateParaId2();
|
|
339236
339737
|
const didApply = insertTableAt2({
|
|
339237
339738
|
pos: insertAt,
|
|
339238
339739
|
rows: input2.rows,
|
|
339239
339740
|
columns: input2.columns,
|
|
339240
339741
|
sdBlockId: tableId,
|
|
339241
|
-
paraId,
|
|
339242
339742
|
tracked: mode === "tracked"
|
|
339243
339743
|
});
|
|
339244
339744
|
if (!didApply) {
|
|
@@ -339663,6 +340163,19 @@ function executeTextStep2(ctx2, targets, step3, rangeExecutor, spanExecutor) {
|
|
|
339663
340163
|
};
|
|
339664
340164
|
return { stepId: step3.id, op: step3.op, effect: effect2, matchCount: targets.length, data };
|
|
339665
340165
|
}
|
|
340166
|
+
function ensureFormatStepCapabilities2(ctx2, step3) {
|
|
340167
|
+
const inlineKeys = Object.keys(step3.args.inline);
|
|
340168
|
+
const capabilityIssue = getInlinePropertyCapabilityIssue2(ctx2.editor, inlineKeys, step3.op);
|
|
340169
|
+
if (capabilityIssue) {
|
|
340170
|
+
throw planError2(capabilityIssue.code, capabilityIssue.message, step3.id, capabilityIssue.details);
|
|
340171
|
+
}
|
|
340172
|
+
if (ctx2.changeMode !== "tracked")
|
|
340173
|
+
return;
|
|
340174
|
+
const trackedIssue = getTrackedInlinePropertySupportIssue2(inlineKeys, step3.op);
|
|
340175
|
+
if (trackedIssue) {
|
|
340176
|
+
throw planError2(trackedIssue.code, trackedIssue.message, step3.id, trackedIssue.details);
|
|
340177
|
+
}
|
|
340178
|
+
}
|
|
339666
340179
|
function buildTableInput2(op, blockId, args3) {
|
|
339667
340180
|
const { target: _target, nodeId: _n, tableTarget: _tableTarget, tableNodeId: _t2, ...safeArgs } = args3;
|
|
339668
340181
|
if (TABLE_SCOPED_OPS2.has(op)) {
|
|
@@ -339687,7 +340200,10 @@ function registerBuiltInExecutors2() {
|
|
|
339687
340200
|
execute: (ctx2, targets, step3) => executeTextStep2(ctx2, targets, step3, (e, tr, t, s2, m2) => executeTextDelete2(e, tr, t, s2, m2), (e, tr, t, s2, m2) => executeSpanTextDelete2(e, tr, t, s2, m2))
|
|
339688
340201
|
});
|
|
339689
340202
|
registerStepExecutor2("format.apply", {
|
|
339690
|
-
execute: (ctx2, targets, step3) =>
|
|
340203
|
+
execute: (ctx2, targets, step3) => {
|
|
340204
|
+
ensureFormatStepCapabilities2(ctx2, step3);
|
|
340205
|
+
return executeTextStep2(ctx2, targets, step3, (e, tr, t, s2, m2) => executeStyleApply4(e, tr, t, s2, m2), (e, tr, t, s2, m2) => executeSpanStyleApply2(e, tr, t, s2, m2));
|
|
340206
|
+
}
|
|
339691
340207
|
});
|
|
339692
340208
|
registerStepExecutor2("create.paragraph", {
|
|
339693
340209
|
execute: (ctx2, targets, step3) => executeCreateStep2(ctx2.editor, ctx2.tr, step3, targets, ctx2.mapping)
|
|
@@ -339914,6 +340430,7 @@ var TABLE_ADAPTER_DISPATCH2, ROW_OPS2, TABLE_SCOPED_OPS2, registered2 = false;
|
|
|
339914
340430
|
var init_register_executors = __esm(() => {
|
|
339915
340431
|
init_executor_registry();
|
|
339916
340432
|
init_errors4();
|
|
340433
|
+
init_inline_property_guards();
|
|
339917
340434
|
init_executor();
|
|
339918
340435
|
init_structural_write_engine();
|
|
339919
340436
|
init_tables_adapter();
|
|
@@ -344342,6 +344859,131 @@ var init_tc_switches = __esm(() => {
|
|
|
344342
344859
|
SWITCH_PATTERN3 = /\\([a-z])(?:\s*(?:"([^"]*)"|([^\s\\]+)))?/gi;
|
|
344343
344860
|
});
|
|
344344
344861
|
|
|
344862
|
+
// ../../packages/super-editor/src/document-api-adapters/helpers/toc-bookmark-sync.ts
|
|
344863
|
+
function generateTocBookmarkName2(blockId) {
|
|
344864
|
+
return `${TOC_BOOKMARK_PREFIX2}${encodeBlockId2(blockId)}`;
|
|
344865
|
+
}
|
|
344866
|
+
function encodeBlockId2(input2) {
|
|
344867
|
+
let result = "";
|
|
344868
|
+
for (let i5 = 0;i5 < input2.length; i5++) {
|
|
344869
|
+
const ch = input2[i5];
|
|
344870
|
+
if (ch === "_") {
|
|
344871
|
+
result += "__";
|
|
344872
|
+
} else if (ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z" || ch >= "0" && ch <= "9") {
|
|
344873
|
+
result += ch;
|
|
344874
|
+
} else {
|
|
344875
|
+
result += `_${ch.charCodeAt(0).toString(16).padStart(2, "0")}`;
|
|
344876
|
+
}
|
|
344877
|
+
}
|
|
344878
|
+
return result;
|
|
344879
|
+
}
|
|
344880
|
+
function syncTocBookmarks2(editor, sources) {
|
|
344881
|
+
const { schema, doc: doc4 } = editor.state;
|
|
344882
|
+
if (!schema.nodes.bookmarkStart || !schema.nodes.bookmarkEnd)
|
|
344883
|
+
return;
|
|
344884
|
+
const needed = deduplicateByBlockId2(sources);
|
|
344885
|
+
const existing = collectExistingTocBookmarkNames2(doc4);
|
|
344886
|
+
const missing = needed.filter((t) => !existing.has(t.bookmarkName));
|
|
344887
|
+
if (missing.length === 0)
|
|
344888
|
+
return;
|
|
344889
|
+
const paragraphPositions = buildBlockIdPositionMap2(doc4);
|
|
344890
|
+
const insertions = resolveInsertionTargets2(missing, paragraphPositions, doc4);
|
|
344891
|
+
if (insertions.length === 0)
|
|
344892
|
+
return;
|
|
344893
|
+
const { tr } = editor.state;
|
|
344894
|
+
let nextId = findMaxBookmarkId2(doc4) + 1;
|
|
344895
|
+
for (const { bookmarkName, contentStart, contentEnd } of insertions) {
|
|
344896
|
+
const bookmarkId = String(nextId++);
|
|
344897
|
+
const endNode = schema.nodes.bookmarkEnd.create({ id: bookmarkId });
|
|
344898
|
+
const startNode = schema.nodes.bookmarkStart.create({ name: bookmarkName, id: bookmarkId });
|
|
344899
|
+
tr.insert(tr.mapping.map(contentStart), startNode);
|
|
344900
|
+
tr.insert(tr.mapping.map(contentEnd), endNode);
|
|
344901
|
+
}
|
|
344902
|
+
if (tr.docChanged) {
|
|
344903
|
+
dispatchTransaction2(editor, tr);
|
|
344904
|
+
}
|
|
344905
|
+
}
|
|
344906
|
+
function deduplicateByBlockId2(sources) {
|
|
344907
|
+
const seenBlockIds = new Set;
|
|
344908
|
+
const claimedNames = new Map;
|
|
344909
|
+
const targets = [];
|
|
344910
|
+
for (const { sdBlockId } of sources) {
|
|
344911
|
+
if (seenBlockIds.has(sdBlockId))
|
|
344912
|
+
continue;
|
|
344913
|
+
seenBlockIds.add(sdBlockId);
|
|
344914
|
+
const bookmarkName = generateTocBookmarkName2(sdBlockId);
|
|
344915
|
+
const existingOwner = claimedNames.get(bookmarkName);
|
|
344916
|
+
if (existingOwner !== undefined && existingOwner !== sdBlockId)
|
|
344917
|
+
continue;
|
|
344918
|
+
claimedNames.set(bookmarkName, sdBlockId);
|
|
344919
|
+
targets.push({ blockId: sdBlockId, bookmarkName });
|
|
344920
|
+
}
|
|
344921
|
+
return targets;
|
|
344922
|
+
}
|
|
344923
|
+
function collectExistingTocBookmarkNames2(doc4) {
|
|
344924
|
+
const names = new Set;
|
|
344925
|
+
doc4.descendants((node4) => {
|
|
344926
|
+
if (node4.type.name === "bookmarkStart") {
|
|
344927
|
+
const name = node4.attrs?.name;
|
|
344928
|
+
if (name?.startsWith(TOC_BOOKMARK_PREFIX2))
|
|
344929
|
+
names.add(name);
|
|
344930
|
+
}
|
|
344931
|
+
return true;
|
|
344932
|
+
});
|
|
344933
|
+
return names;
|
|
344934
|
+
}
|
|
344935
|
+
function buildBlockIdPositionMap2(doc4) {
|
|
344936
|
+
const map10 = new Map;
|
|
344937
|
+
doc4.descendants((node4, pos) => {
|
|
344938
|
+
if (node4.type.name === "paragraph") {
|
|
344939
|
+
const id2 = node4.attrs?.sdBlockId ?? node4.attrs?.paraId;
|
|
344940
|
+
if (id2 && !map10.has(id2))
|
|
344941
|
+
map10.set(id2, pos);
|
|
344942
|
+
}
|
|
344943
|
+
return true;
|
|
344944
|
+
});
|
|
344945
|
+
return map10;
|
|
344946
|
+
}
|
|
344947
|
+
function resolveInsertionTargets2(missing, positions, doc4) {
|
|
344948
|
+
const result = [];
|
|
344949
|
+
for (const { blockId, bookmarkName } of missing) {
|
|
344950
|
+
const pos = positions.get(blockId);
|
|
344951
|
+
if (pos === undefined)
|
|
344952
|
+
continue;
|
|
344953
|
+
const node4 = doc4.nodeAt(pos);
|
|
344954
|
+
if (!node4 || node4.type.name !== "paragraph")
|
|
344955
|
+
continue;
|
|
344956
|
+
result.push({
|
|
344957
|
+
bookmarkName,
|
|
344958
|
+
contentStart: pos + 1,
|
|
344959
|
+
contentEnd: pos + node4.nodeSize - 1
|
|
344960
|
+
});
|
|
344961
|
+
}
|
|
344962
|
+
result.sort((a2, b2) => b2.contentStart - a2.contentStart);
|
|
344963
|
+
return result;
|
|
344964
|
+
}
|
|
344965
|
+
function findMaxBookmarkId2(doc4) {
|
|
344966
|
+
let maxId = -1;
|
|
344967
|
+
doc4.descendants((node4) => {
|
|
344968
|
+
if (node4.type.name !== "bookmarkStart" && node4.type.name !== "bookmarkEnd")
|
|
344969
|
+
return true;
|
|
344970
|
+
const raw = node4.attrs?.id;
|
|
344971
|
+
const id2 = typeof raw === "string" ? parseInt(raw, 10) : typeof raw === "number" ? raw : NaN;
|
|
344972
|
+
if (!isNaN(id2) && id2 > maxId)
|
|
344973
|
+
maxId = id2;
|
|
344974
|
+
return true;
|
|
344975
|
+
});
|
|
344976
|
+
return maxId;
|
|
344977
|
+
}
|
|
344978
|
+
function dispatchTransaction2(editor, tr) {
|
|
344979
|
+
if (typeof editor.dispatch === "function") {
|
|
344980
|
+
editor.dispatch(tr);
|
|
344981
|
+
} else if (typeof editor.view?.dispatch === "function") {
|
|
344982
|
+
editor.view.dispatch(tr);
|
|
344983
|
+
}
|
|
344984
|
+
}
|
|
344985
|
+
var TOC_BOOKMARK_PREFIX2 = "_Toc";
|
|
344986
|
+
|
|
344345
344987
|
// ../../packages/super-editor/src/document-api-adapters/helpers/toc-entry-builder.ts
|
|
344346
344988
|
function collectTocSources2(doc4, config41) {
|
|
344347
344989
|
const sources = [];
|
|
@@ -344427,7 +345069,7 @@ function buildEntryParagraph2(source, config41) {
|
|
|
344427
345069
|
{
|
|
344428
345070
|
type: "link",
|
|
344429
345071
|
attrs: {
|
|
344430
|
-
anchor: source.sdBlockId,
|
|
345072
|
+
anchor: generateTocBookmarkName2(source.sdBlockId),
|
|
344431
345073
|
rId: null,
|
|
344432
345074
|
history: true
|
|
344433
345075
|
}
|
|
@@ -344619,7 +345261,7 @@ function materializeTocContent2(doc4, config41, editor) {
|
|
|
344619
345261
|
const sources = collectTocSources2(doc4, config41);
|
|
344620
345262
|
const entryParagraphs = buildTocEntryParagraphs2(sources, config41);
|
|
344621
345263
|
const content5 = entryParagraphs.length > 0 ? entryParagraphs : NO_ENTRIES_PLACEHOLDER2;
|
|
344622
|
-
return sanitizeTocContentForSchema2(content5, editor);
|
|
345264
|
+
return { content: sanitizeTocContentForSchema2(content5, editor), sources };
|
|
344623
345265
|
}
|
|
344624
345266
|
function tocConfigureWrapper2(editor, input2, options) {
|
|
344625
345267
|
rejectTrackedMode2("toc.configure", options);
|
|
@@ -344629,7 +345271,7 @@ function tocConfigureWrapper2(editor, input2, options) {
|
|
|
344629
345271
|
const instruction = serializeTocInstruction2(patched);
|
|
344630
345272
|
const rightAlignChanged = input2.patch.rightAlignPageNumbers !== undefined && input2.patch.rightAlignPageNumbers !== resolved.node.attrs?.rightAlignPageNumbers;
|
|
344631
345273
|
const effectiveRightAlign = input2.patch.rightAlignPageNumbers ?? resolved.node.attrs?.rightAlignPageNumbers;
|
|
344632
|
-
const nextContent = materializeTocContent2(editor.state.doc, withRightAlign2(patched, effectiveRightAlign), editor);
|
|
345274
|
+
const { content: nextContent, sources } = materializeTocContent2(editor.state.doc, withRightAlign2(patched, effectiveRightAlign), editor);
|
|
344633
345275
|
if (areTocConfigsEqual2(currentConfig, patched) && !rightAlignChanged) {
|
|
344634
345276
|
return tocFailure2("NO_OP", "Configuration patch produced no change.");
|
|
344635
345277
|
}
|
|
@@ -344666,6 +345308,7 @@ function tocConfigureWrapper2(editor, input2, options) {
|
|
|
344666
345308
|
if (!receiptApplied2(receipt2)) {
|
|
344667
345309
|
return tocFailure2("NO_OP", "Configuration change could not be applied.");
|
|
344668
345310
|
}
|
|
345311
|
+
syncTocBookmarks2(editor, sources);
|
|
344669
345312
|
const postMutationId = resolvePostMutationTocId2(editor.state.doc, commandNodeId);
|
|
344670
345313
|
return tocSuccess2(postMutationId);
|
|
344671
345314
|
}
|
|
@@ -344681,7 +345324,7 @@ function tocUpdateAll2(editor, input2, options) {
|
|
|
344681
345324
|
const resolved = resolveTocTarget2(editor.state.doc, input2.target);
|
|
344682
345325
|
const config41 = parseTocInstruction2(resolved.node.attrs?.instruction ?? "");
|
|
344683
345326
|
const rightAlign = resolved.node.attrs?.rightAlignPageNumbers;
|
|
344684
|
-
const content5 = materializeTocContent2(editor.state.doc, withRightAlign2(config41, rightAlign), editor);
|
|
345327
|
+
const { content: content5, sources } = materializeTocContent2(editor.state.doc, withRightAlign2(config41, rightAlign), editor);
|
|
344685
345328
|
if (isTocContentUnchanged2(resolved.node, content5)) {
|
|
344686
345329
|
return tocFailure2("NO_OP", "TOC update produced no change.");
|
|
344687
345330
|
}
|
|
@@ -344704,7 +345347,11 @@ function tocUpdateAll2(editor, input2, options) {
|
|
|
344704
345347
|
return false;
|
|
344705
345348
|
}
|
|
344706
345349
|
}, options?.expectedRevision);
|
|
344707
|
-
|
|
345350
|
+
if (!receiptApplied2(receipt2)) {
|
|
345351
|
+
return tocFailure2("NO_OP", "TOC update produced no change.");
|
|
345352
|
+
}
|
|
345353
|
+
syncTocBookmarks2(editor, sources);
|
|
345354
|
+
return tocSuccess2(resolved.nodeId);
|
|
344708
345355
|
}
|
|
344709
345356
|
function getPageMap2(editor) {
|
|
344710
345357
|
const storage = editor.storage;
|
|
@@ -344828,7 +345475,7 @@ function createTableOfContentsWrapper2(editor, input2, options) {
|
|
|
344828
345475
|
}
|
|
344829
345476
|
const config41 = input2.config ? applyTocPatchTyped2(DEFAULT_TOC_CONFIG2, input2.config) : DEFAULT_TOC_CONFIG2;
|
|
344830
345477
|
const instruction = serializeTocInstruction2(config41);
|
|
344831
|
-
const content5 = materializeTocContent2(editor.state.doc, withRightAlign2(config41, input2.config?.rightAlignPageNumbers), editor);
|
|
345478
|
+
const { content: content5, sources } = materializeTocContent2(editor.state.doc, withRightAlign2(config41, input2.config?.rightAlignPageNumbers), editor);
|
|
344832
345479
|
const sdBlockId = v42();
|
|
344833
345480
|
if (options?.dryRun) {
|
|
344834
345481
|
return { success: true, toc: buildTocAddress2("(dry-run)") };
|
|
@@ -344874,6 +345521,7 @@ function createTableOfContentsWrapper2(editor, input2, options) {
|
|
|
344874
345521
|
}
|
|
344875
345522
|
};
|
|
344876
345523
|
}
|
|
345524
|
+
syncTocBookmarks2(editor, sources);
|
|
344877
345525
|
const postMutationId = resolvePostMutationTocId2(editor.state.doc, sdBlockId);
|
|
344878
345526
|
return { success: true, toc: buildTocAddress2(postMutationId) };
|
|
344879
345527
|
}
|
|
@@ -344900,7 +345548,7 @@ var init_toc_wrappers = __esm(() => {
|
|
|
344900
345548
|
});
|
|
344901
345549
|
|
|
344902
345550
|
// ../../packages/super-editor/src/document-api-adapters/helpers/toc-entry-node-id.ts
|
|
344903
|
-
function
|
|
345551
|
+
function stableHash4(input2) {
|
|
344904
345552
|
let hash2 = 2166136261;
|
|
344905
345553
|
for (let index3 = 0;index3 < input2.length; index3 += 1) {
|
|
344906
345554
|
hash2 ^= input2.charCodeAt(index3);
|
|
@@ -344910,7 +345558,7 @@ function stableHash3(input2) {
|
|
|
344910
345558
|
}
|
|
344911
345559
|
function resolvePublicTcEntryNodeId2(node4, pos) {
|
|
344912
345560
|
const instruction = typeof node4.attrs?.instruction === "string" ? node4.attrs.instruction : "";
|
|
344913
|
-
return `tc-entry-${
|
|
345561
|
+
return `tc-entry-${stableHash4(`${pos}:${instruction}`)}`;
|
|
344914
345562
|
}
|
|
344915
345563
|
|
|
344916
345564
|
// ../../packages/super-editor/src/document-api-adapters/helpers/toc-entry-resolver.ts
|
|
@@ -346174,13 +346822,13 @@ function getLinkMarkType2(editor) {
|
|
|
346174
346822
|
}
|
|
346175
346823
|
return markType;
|
|
346176
346824
|
}
|
|
346177
|
-
function
|
|
346825
|
+
function dispatchTransaction3(editor, tr) {
|
|
346178
346826
|
editor.dispatch(tr);
|
|
346179
346827
|
}
|
|
346180
346828
|
function dispatchIfChanged2(editor, tr) {
|
|
346181
346829
|
if (!tr.docChanged)
|
|
346182
346830
|
return false;
|
|
346183
|
-
|
|
346831
|
+
dispatchTransaction3(editor, tr);
|
|
346184
346832
|
return true;
|
|
346185
346833
|
}
|
|
346186
346834
|
function createRelationshipId2(editor, href) {
|
|
@@ -346226,7 +346874,7 @@ function wrapWithLink2(editor, from4, to, spec) {
|
|
|
346226
346874
|
const tr = editor.state.tr;
|
|
346227
346875
|
tr.addMark(from4, to, linkMarkType.create(attrs));
|
|
346228
346876
|
applyDirectMutationMeta2(tr);
|
|
346229
|
-
|
|
346877
|
+
dispatchTransaction3(editor, tr);
|
|
346230
346878
|
return true;
|
|
346231
346879
|
}
|
|
346232
346880
|
function insertLinkedText2(editor, pos, text9, spec) {
|
|
@@ -346237,7 +346885,7 @@ function insertLinkedText2(editor, pos, text9, spec) {
|
|
|
346237
346885
|
tr.insertText(text9, pos);
|
|
346238
346886
|
tr.addMark(pos, pos + text9.length, mark2);
|
|
346239
346887
|
applyDirectMutationMeta2(tr);
|
|
346240
|
-
|
|
346888
|
+
dispatchTransaction3(editor, tr);
|
|
346241
346889
|
return true;
|
|
346242
346890
|
}
|
|
346243
346891
|
function patchLinkMark2(editor, from4, to, existingMark, patch3) {
|
|
@@ -346287,7 +346935,7 @@ function deleteLinkedText2(editor, from4, to) {
|
|
|
346287
346935
|
const tr = editor.state.tr;
|
|
346288
346936
|
tr.delete(from4, to);
|
|
346289
346937
|
applyDirectMutationMeta2(tr);
|
|
346290
|
-
|
|
346938
|
+
dispatchTransaction3(editor, tr);
|
|
346291
346939
|
return true;
|
|
346292
346940
|
}
|
|
346293
346941
|
var init_hyperlink_mutation_helper = __esm(() => {
|
|
@@ -346759,7 +347407,7 @@ function executeSdtMutation2(editor, target, options, handler3) {
|
|
|
346759
347407
|
}
|
|
346760
347408
|
return buildMutationSuccess2(target, updatedRef);
|
|
346761
347409
|
}
|
|
346762
|
-
function
|
|
347410
|
+
function dispatchTransaction4(editor, tr) {
|
|
346763
347411
|
if (editor.view?.dispatch) {
|
|
346764
347412
|
editor.view.dispatch(tr);
|
|
346765
347413
|
return;
|
|
@@ -346844,7 +347492,7 @@ function replaceSdtTextContent2(editor, target, text9) {
|
|
|
346844
347492
|
const updatedNode2 = resolved.node.type.create({ ...resolved.node.attrs }, null, resolved.node.marks);
|
|
346845
347493
|
const { tr: tr2 } = editor.state;
|
|
346846
347494
|
tr2.replaceWith(resolved.pos, resolved.pos + resolved.node.nodeSize, updatedNode2);
|
|
346847
|
-
|
|
347495
|
+
dispatchTransaction4(editor, tr2);
|
|
346848
347496
|
return true;
|
|
346849
347497
|
}
|
|
346850
347498
|
const paragraph4 = buildEmptyBlockContent2(editor, resolved.node);
|
|
@@ -346853,7 +347501,7 @@ function replaceSdtTextContent2(editor, target, text9) {
|
|
|
346853
347501
|
const updatedNode = resolved.node.type.create({ ...resolved.node.attrs }, updatedParagraph, resolved.node.marks);
|
|
346854
347502
|
const { tr } = editor.state;
|
|
346855
347503
|
tr.replaceWith(resolved.pos, resolved.pos + resolved.node.nodeSize, updatedNode);
|
|
346856
|
-
|
|
347504
|
+
dispatchTransaction4(editor, tr);
|
|
346857
347505
|
return true;
|
|
346858
347506
|
}
|
|
346859
347507
|
function listWrapper2(editor, query2) {
|
|
@@ -346947,7 +347595,7 @@ function wrapWrapper2(editor, input2, options) {
|
|
|
346947
347595
|
const wrapperNode = nodeType.create({ id: id2, tag: input2.tag, alias: input2.alias, lockMode: input2.lockMode ?? "unlocked" }, resolved.node);
|
|
346948
347596
|
const { tr } = editor.state;
|
|
346949
347597
|
tr.replaceWith(resolved.pos, resolved.pos + resolved.node.nodeSize, wrapperNode);
|
|
346950
|
-
|
|
347598
|
+
dispatchTransaction4(editor, tr);
|
|
346951
347599
|
return wrapperTarget;
|
|
346952
347600
|
});
|
|
346953
347601
|
}
|
|
@@ -346959,7 +347607,7 @@ function unwrapWrapper2(editor, input2, options) {
|
|
|
346959
347607
|
const resolved = resolveSdtByTarget2(editor.state.doc, input2.target);
|
|
346960
347608
|
const { tr } = editor.state;
|
|
346961
347609
|
tr.replaceWith(resolved.pos, resolved.pos + resolved.node.nodeSize, resolved.node.content);
|
|
346962
|
-
|
|
347610
|
+
dispatchTransaction4(editor, tr);
|
|
346963
347611
|
return true;
|
|
346964
347612
|
});
|
|
346965
347613
|
}
|
|
@@ -346986,7 +347634,7 @@ function copyWrapper2(editor, input2, options) {
|
|
|
346986
347634
|
const { tr } = editor.state;
|
|
346987
347635
|
const insertPos = dest.pos + dest.node.nodeSize;
|
|
346988
347636
|
tr.insert(insertPos, cloned);
|
|
346989
|
-
|
|
347637
|
+
dispatchTransaction4(editor, tr);
|
|
346990
347638
|
return { kind: source.kind, nodeType: "sdt", nodeId: newId };
|
|
346991
347639
|
});
|
|
346992
347640
|
}
|
|
@@ -347001,7 +347649,7 @@ function moveWrapper2(editor, input2, options) {
|
|
|
347001
347649
|
const destAfterDelete = resolveSdtByTarget2(tr.doc, input2.destination);
|
|
347002
347650
|
const insertPos = destAfterDelete.pos + destAfterDelete.node.nodeSize;
|
|
347003
347651
|
tr.insert(insertPos, source.node);
|
|
347004
|
-
|
|
347652
|
+
dispatchTransaction4(editor, tr);
|
|
347005
347653
|
return true;
|
|
347006
347654
|
});
|
|
347007
347655
|
}
|
|
@@ -347277,7 +347925,7 @@ function insertBeforeWrapper2(editor, input2, options) {
|
|
|
347277
347925
|
const textNode = editor.schema.text(input2.content);
|
|
347278
347926
|
const { tr } = editor.state;
|
|
347279
347927
|
tr.insert(resolved.pos, textNode);
|
|
347280
|
-
|
|
347928
|
+
dispatchTransaction4(editor, tr);
|
|
347281
347929
|
return true;
|
|
347282
347930
|
});
|
|
347283
347931
|
}
|
|
@@ -347290,7 +347938,7 @@ function insertAfterWrapper2(editor, input2, options) {
|
|
|
347290
347938
|
const textNode = editor.schema.text(input2.content);
|
|
347291
347939
|
const { tr } = editor.state;
|
|
347292
347940
|
tr.insert(insertPos, textNode);
|
|
347293
|
-
|
|
347941
|
+
dispatchTransaction4(editor, tr);
|
|
347294
347942
|
return true;
|
|
347295
347943
|
});
|
|
347296
347944
|
}
|
|
@@ -347678,7 +348326,7 @@ function repeatingSectionInsertItemBeforeWrapper2(editor, input2, options) {
|
|
|
347678
348326
|
const newItem = nodeType.create({ id: generateSdtId2(), controlType: "repeatingSectionItem", type: "repeatingSectionItem" }, paragraph4);
|
|
347679
348327
|
const { tr } = editor.state;
|
|
347680
348328
|
tr.insert(insertPos, newItem);
|
|
347681
|
-
|
|
348329
|
+
dispatchTransaction4(editor, tr);
|
|
347682
348330
|
return true;
|
|
347683
348331
|
});
|
|
347684
348332
|
}
|
|
@@ -347700,7 +348348,7 @@ function repeatingSectionInsertItemAfterWrapper2(editor, input2, options) {
|
|
|
347700
348348
|
const newItem = nodeType.create({ id: generateSdtId2(), controlType: "repeatingSectionItem", type: "repeatingSectionItem" }, paragraph4);
|
|
347701
348349
|
const { tr } = editor.state;
|
|
347702
348350
|
tr.insert(insertPos, newItem);
|
|
347703
|
-
|
|
348351
|
+
dispatchTransaction4(editor, tr);
|
|
347704
348352
|
return true;
|
|
347705
348353
|
});
|
|
347706
348354
|
}
|
|
@@ -347720,7 +348368,7 @@ function repeatingSectionCloneItemWrapper2(editor, input2, options) {
|
|
|
347720
348368
|
const insertPos = sourceItem.pos + sourceItem.node.nodeSize;
|
|
347721
348369
|
const { tr } = editor.state;
|
|
347722
348370
|
tr.insert(insertPos, cloned);
|
|
347723
|
-
|
|
348371
|
+
dispatchTransaction4(editor, tr);
|
|
347724
348372
|
return true;
|
|
347725
348373
|
});
|
|
347726
348374
|
}
|
|
@@ -347738,7 +348386,7 @@ function repeatingSectionDeleteItemWrapper2(editor, input2, options) {
|
|
|
347738
348386
|
const item = items[input2.index];
|
|
347739
348387
|
const { tr } = editor.state;
|
|
347740
348388
|
tr.delete(item.pos, item.pos + item.node.nodeSize);
|
|
347741
|
-
|
|
348389
|
+
dispatchTransaction4(editor, tr);
|
|
347742
348390
|
return true;
|
|
347743
348391
|
});
|
|
347744
348392
|
}
|
|
@@ -347763,7 +348411,7 @@ function groupWrapWrapper2(editor, input2, options) {
|
|
|
347763
348411
|
const groupNode = groupNodeType.create({ id: groupId, controlType: "group", type: "group" }, resolved.node);
|
|
347764
348412
|
const { tr } = editor.state;
|
|
347765
348413
|
tr.replaceWith(resolved.pos, resolved.pos + resolved.node.nodeSize, groupNode);
|
|
347766
|
-
|
|
348414
|
+
dispatchTransaction4(editor, tr);
|
|
347767
348415
|
return { kind: "block", nodeType: "sdt", nodeId: groupId };
|
|
347768
348416
|
});
|
|
347769
348417
|
}
|
|
@@ -347776,7 +348424,7 @@ function groupUngroupWrapper2(editor, input2, options) {
|
|
|
347776
348424
|
const resolved = resolveSdtByTarget2(editor.state.doc, input2.target);
|
|
347777
348425
|
const { tr } = editor.state;
|
|
347778
348426
|
tr.replaceWith(resolved.pos, resolved.pos + resolved.node.nodeSize, resolved.node.content);
|
|
347779
|
-
|
|
348427
|
+
dispatchTransaction4(editor, tr);
|
|
347780
348428
|
return true;
|
|
347781
348429
|
});
|
|
347782
348430
|
}
|
|
@@ -347831,7 +348479,7 @@ function createWrapper2(editor, input2, options) {
|
|
|
347831
348479
|
const insertPos = ref4.pos + ref4.node.nodeSize;
|
|
347832
348480
|
const { tr } = editor.state;
|
|
347833
348481
|
tr.insert(insertPos, newNode);
|
|
347834
|
-
|
|
348482
|
+
dispatchTransaction4(editor, tr);
|
|
347835
348483
|
return true;
|
|
347836
348484
|
}
|
|
347837
348485
|
if (contentText !== undefined) {
|