@superdoc-dev/cli 0.2.0-next.30 → 0.2.0-next.31
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 +1938 -34
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -436,6 +436,7 @@ var init_base = __esm(() => {
|
|
|
436
436
|
"table",
|
|
437
437
|
"tableRow",
|
|
438
438
|
"tableCell",
|
|
439
|
+
"tableOfContents",
|
|
439
440
|
"image",
|
|
440
441
|
"sdt",
|
|
441
442
|
"run",
|
|
@@ -453,6 +454,7 @@ var init_base = __esm(() => {
|
|
|
453
454
|
"table",
|
|
454
455
|
"tableRow",
|
|
455
456
|
"tableCell",
|
|
457
|
+
"tableOfContents",
|
|
456
458
|
"image",
|
|
457
459
|
"sdt"
|
|
458
460
|
];
|
|
@@ -2490,6 +2492,89 @@ var init_operation_definitions = __esm(() => {
|
|
|
2490
2492
|
}),
|
|
2491
2493
|
referenceDocPath: "tables/get-properties.mdx",
|
|
2492
2494
|
referenceGroup: "tables"
|
|
2495
|
+
},
|
|
2496
|
+
"create.tableOfContents": {
|
|
2497
|
+
memberPath: "create.tableOfContents",
|
|
2498
|
+
description: "Insert a new table of contents at the target position.",
|
|
2499
|
+
expectedResult: "Returns a CreateTableOfContentsResult with the new TOC block address.",
|
|
2500
|
+
requiresDocumentContext: true,
|
|
2501
|
+
metadata: mutationOperation({
|
|
2502
|
+
idempotency: "non-idempotent",
|
|
2503
|
+
supportsDryRun: true,
|
|
2504
|
+
supportsTrackedMode: false,
|
|
2505
|
+
possibleFailureCodes: ["NO_OP", "INVALID_INSERTION_CONTEXT"],
|
|
2506
|
+
throws: ["INVALID_TARGET", "TARGET_NOT_FOUND", "CAPABILITY_UNAVAILABLE"]
|
|
2507
|
+
}),
|
|
2508
|
+
referenceDocPath: "create/table-of-contents.mdx",
|
|
2509
|
+
referenceGroup: "create"
|
|
2510
|
+
},
|
|
2511
|
+
"toc.list": {
|
|
2512
|
+
memberPath: "toc.list",
|
|
2513
|
+
description: "List all tables of contents in the document.",
|
|
2514
|
+
expectedResult: "Returns a TocListResult with an array of TOC discovery items and pagination metadata.",
|
|
2515
|
+
requiresDocumentContext: true,
|
|
2516
|
+
metadata: readOperation({
|
|
2517
|
+
idempotency: "idempotent"
|
|
2518
|
+
}),
|
|
2519
|
+
referenceDocPath: "toc/list.mdx",
|
|
2520
|
+
referenceGroup: "toc"
|
|
2521
|
+
},
|
|
2522
|
+
"toc.get": {
|
|
2523
|
+
memberPath: "toc.get",
|
|
2524
|
+
description: "Retrieve details of a specific table of contents.",
|
|
2525
|
+
expectedResult: "Returns a TocInfo object with the instruction, source/display configuration, and entry count.",
|
|
2526
|
+
requiresDocumentContext: true,
|
|
2527
|
+
metadata: readOperation({
|
|
2528
|
+
idempotency: "idempotent",
|
|
2529
|
+
throws: T_NOT_FOUND
|
|
2530
|
+
}),
|
|
2531
|
+
referenceDocPath: "toc/get.mdx",
|
|
2532
|
+
referenceGroup: "toc"
|
|
2533
|
+
},
|
|
2534
|
+
"toc.configure": {
|
|
2535
|
+
memberPath: "toc.configure",
|
|
2536
|
+
description: "Update the configuration switches of a table of contents.",
|
|
2537
|
+
expectedResult: "Returns a TocMutationResult with the updated TOC address on success, or a failure code on no-op.",
|
|
2538
|
+
requiresDocumentContext: true,
|
|
2539
|
+
metadata: mutationOperation({
|
|
2540
|
+
idempotency: "conditional",
|
|
2541
|
+
supportsDryRun: true,
|
|
2542
|
+
supportsTrackedMode: false,
|
|
2543
|
+
possibleFailureCodes: ["NO_OP"],
|
|
2544
|
+
throws: ["TARGET_NOT_FOUND", "INVALID_TARGET", "CAPABILITY_UNAVAILABLE"]
|
|
2545
|
+
}),
|
|
2546
|
+
referenceDocPath: "toc/configure.mdx",
|
|
2547
|
+
referenceGroup: "toc"
|
|
2548
|
+
},
|
|
2549
|
+
"toc.update": {
|
|
2550
|
+
memberPath: "toc.update",
|
|
2551
|
+
description: "Rebuild the materialized content of a table of contents.",
|
|
2552
|
+
expectedResult: "Returns a TocMutationResult with the TOC address on success, or a failure code if content is unchanged.",
|
|
2553
|
+
requiresDocumentContext: true,
|
|
2554
|
+
metadata: mutationOperation({
|
|
2555
|
+
idempotency: "conditional",
|
|
2556
|
+
supportsDryRun: true,
|
|
2557
|
+
supportsTrackedMode: false,
|
|
2558
|
+
possibleFailureCodes: ["NO_OP"],
|
|
2559
|
+
throws: ["TARGET_NOT_FOUND", "INVALID_TARGET", "CAPABILITY_UNAVAILABLE"]
|
|
2560
|
+
}),
|
|
2561
|
+
referenceDocPath: "toc/update.mdx",
|
|
2562
|
+
referenceGroup: "toc"
|
|
2563
|
+
},
|
|
2564
|
+
"toc.remove": {
|
|
2565
|
+
memberPath: "toc.remove",
|
|
2566
|
+
description: "Remove a table of contents from the document.",
|
|
2567
|
+
expectedResult: "Returns a TocMutationResult with the removed TOC address on success, or a failure code on no-op.",
|
|
2568
|
+
requiresDocumentContext: true,
|
|
2569
|
+
metadata: mutationOperation({
|
|
2570
|
+
idempotency: "conditional",
|
|
2571
|
+
supportsDryRun: true,
|
|
2572
|
+
supportsTrackedMode: false,
|
|
2573
|
+
possibleFailureCodes: ["NO_OP"],
|
|
2574
|
+
throws: ["TARGET_NOT_FOUND", "INVALID_TARGET", "CAPABILITY_UNAVAILABLE"]
|
|
2575
|
+
}),
|
|
2576
|
+
referenceDocPath: "toc/remove.mdx",
|
|
2577
|
+
referenceGroup: "toc"
|
|
2493
2578
|
}
|
|
2494
2579
|
};
|
|
2495
2580
|
OPERATION_IDS = Object.freeze(Object.keys(OPERATION_DEFINITIONS));
|
|
@@ -2800,6 +2885,18 @@ function supportsImplicitTrueValue(operationId) {
|
|
|
2800
2885
|
return false;
|
|
2801
2886
|
return entry.type === "boolean" || key === "underline";
|
|
2802
2887
|
}
|
|
2888
|
+
function tocAddressSchema() {
|
|
2889
|
+
return objectSchema({
|
|
2890
|
+
kind: { const: "block" },
|
|
2891
|
+
nodeType: { const: "tableOfContents" },
|
|
2892
|
+
nodeId: { type: "string" }
|
|
2893
|
+
}, ["kind", "nodeType", "nodeId"]);
|
|
2894
|
+
}
|
|
2895
|
+
function tocMutationResultSchema() {
|
|
2896
|
+
return {
|
|
2897
|
+
oneOf: [tocMutationSuccessSchema, tocMutationFailureSchema]
|
|
2898
|
+
};
|
|
2899
|
+
}
|
|
2803
2900
|
function buildInternalContractSchemas() {
|
|
2804
2901
|
const operations = { ...operationSchemas };
|
|
2805
2902
|
for (const operationId of OPERATION_IDS) {
|
|
@@ -2819,7 +2916,7 @@ function buildInternalContractSchemas() {
|
|
|
2819
2916
|
operations
|
|
2820
2917
|
};
|
|
2821
2918
|
}
|
|
2822
|
-
var nodeTypeValues, blockNodeTypeValues, deletableBlockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, textTargetSchema, blockNodeAddressSchema, deletableBlockNodeAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, sectionAddressSchema, inlineNodeAddressSchema, nodeAddressSchema, commentAddressSchema, trackedChangeAddressSchema, entityAddressSchema, resolvedHandleSchema, pageInfoSchema, receiptSuccessSchema, textMutationRangeSchema, textMutationResolutionSchema, textMutationSuccessSchema, matchRunSchema, matchBlockSchema, trackChangeRefSchema, createParagraphSuccessSchema, createHeadingSuccessSchema, headingLevelSchema, listsInsertSuccessSchema, listsMutateItemSuccessSchema, listsExitSuccessSchema, nodeSummarySchema, nodeInfoSchema, matchContextSchema, unknownNodeDiagnosticSchema, textSelectorSchema, nodeSelectorSchema, selectorShorthandSchema, selectSchema, findInputSchema, findItemDomainSchema, findOutputSchema, documentInfoCountsSchema, documentInfoOutlineItemSchema, documentInfoCapabilitiesSchema, documentInfoSchema, listKindSchema, listInsertPositionSchema, listItemInfoSchema, listItemDomainItemSchema, listsListResultSchema, sectionBreakTypeSchema, sectionOrientationSchema, sectionVerticalAlignSchema, sectionDirectionSchema, sectionHeaderFooterKindSchema, sectionHeaderFooterVariantSchema, sectionLineNumberRestartSchema, sectionPageNumberFormatSchema, sectionRangeDomainSchema, sectionPageMarginsSchema, sectionHeaderFooterMarginsSchema, sectionPageSetupSchema, sectionColumnsSchema, sectionLineNumberingSchema, sectionPageNumberingSchema, sectionHeaderFooterRefsSchema, sectionBorderSpecSchema, sectionPageBordersSchema, sectionInfoSchema, sectionResolvedHandleSchema, sectionDomainItemSchema, sectionsListResultSchema, sectionMutationSuccessSchema, documentMutationSuccessSchema, createSectionBreakSuccessSchema, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, inlinePropertyCapabilitySchema, inlinePropertyCapabilitiesByKeySchema, formatCapabilitiesSchema, planEngineCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, insertInputSchema, tableLocatorSchema, _tableScopedRowLocatorSchema, _tableScopedColumnLocatorSchema, mergeRangeLocatorSchema, mixedRowLocatorOneOf, tableCreateLocationSchema, tableMutationSuccessSchema, createTableSuccessSchema, tableMutationFailureCodes, tableMutationFailureSchema, tableMutationResultSchema, createTableResultSchema, formatInlineAliasOperationSchemas, operationSchemas;
|
|
2919
|
+
var nodeTypeValues, blockNodeTypeValues, deletableBlockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, textTargetSchema, blockNodeAddressSchema, deletableBlockNodeAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, sectionAddressSchema, inlineNodeAddressSchema, nodeAddressSchema, commentAddressSchema, trackedChangeAddressSchema, entityAddressSchema, resolvedHandleSchema, pageInfoSchema, receiptSuccessSchema, textMutationRangeSchema, textMutationResolutionSchema, textMutationSuccessSchema, matchRunSchema, matchBlockSchema, trackChangeRefSchema, createParagraphSuccessSchema, createHeadingSuccessSchema, headingLevelSchema, listsInsertSuccessSchema, listsMutateItemSuccessSchema, listsExitSuccessSchema, nodeSummarySchema, nodeInfoSchema, matchContextSchema, unknownNodeDiagnosticSchema, textSelectorSchema, nodeSelectorSchema, selectorShorthandSchema, selectSchema, findInputSchema, findItemDomainSchema, findOutputSchema, documentInfoCountsSchema, documentInfoOutlineItemSchema, documentInfoCapabilitiesSchema, documentInfoSchema, listKindSchema, listInsertPositionSchema, listItemInfoSchema, listItemDomainItemSchema, listsListResultSchema, sectionBreakTypeSchema, sectionOrientationSchema, sectionVerticalAlignSchema, sectionDirectionSchema, sectionHeaderFooterKindSchema, sectionHeaderFooterVariantSchema, sectionLineNumberRestartSchema, sectionPageNumberFormatSchema, sectionRangeDomainSchema, sectionPageMarginsSchema, sectionHeaderFooterMarginsSchema, sectionPageSetupSchema, sectionColumnsSchema, sectionLineNumberingSchema, sectionPageNumberingSchema, sectionHeaderFooterRefsSchema, sectionBorderSpecSchema, sectionPageBordersSchema, sectionInfoSchema, sectionResolvedHandleSchema, sectionDomainItemSchema, sectionsListResultSchema, sectionMutationSuccessSchema, documentMutationSuccessSchema, createSectionBreakSuccessSchema, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, inlinePropertyCapabilitySchema, inlinePropertyCapabilitiesByKeySchema, formatCapabilitiesSchema, planEngineCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, insertInputSchema, tableLocatorSchema, _tableScopedRowLocatorSchema, _tableScopedColumnLocatorSchema, mergeRangeLocatorSchema, mixedRowLocatorOneOf, tableCreateLocationSchema, tableMutationSuccessSchema, createTableSuccessSchema, tableMutationFailureCodes, tableMutationFailureSchema, tableMutationResultSchema, createTableResultSchema, formatInlineAliasOperationSchemas, tocMutationFailureCodes, tocMutationFailureSchema, tocMutationSuccessSchema, operationSchemas;
|
|
2823
2920
|
var init_schemas = __esm(() => {
|
|
2824
2921
|
init_command_catalog();
|
|
2825
2922
|
init_types2();
|
|
@@ -2839,6 +2936,7 @@ var init_schemas = __esm(() => {
|
|
|
2839
2936
|
"trackedChange",
|
|
2840
2937
|
"table",
|
|
2841
2938
|
"tableCell",
|
|
2939
|
+
"tableOfContents",
|
|
2842
2940
|
"section",
|
|
2843
2941
|
"sdt",
|
|
2844
2942
|
"field"
|
|
@@ -3504,6 +3602,25 @@ var init_schemas = __esm(() => {
|
|
|
3504
3602
|
};
|
|
3505
3603
|
return [operationId, schema];
|
|
3506
3604
|
}));
|
|
3605
|
+
tocMutationFailureCodes = [
|
|
3606
|
+
"NO_OP",
|
|
3607
|
+
"INVALID_TARGET",
|
|
3608
|
+
"TARGET_NOT_FOUND",
|
|
3609
|
+
"CAPABILITY_UNAVAILABLE",
|
|
3610
|
+
"INVALID_INSERTION_CONTEXT"
|
|
3611
|
+
];
|
|
3612
|
+
tocMutationFailureSchema = objectSchema({
|
|
3613
|
+
success: { const: false },
|
|
3614
|
+
failure: objectSchema({
|
|
3615
|
+
code: { enum: [...tocMutationFailureCodes] },
|
|
3616
|
+
message: { type: "string" },
|
|
3617
|
+
details: {}
|
|
3618
|
+
}, ["code", "message"])
|
|
3619
|
+
}, ["success", "failure"]);
|
|
3620
|
+
tocMutationSuccessSchema = objectSchema({ success: { const: true }, toc: tocAddressSchema() }, [
|
|
3621
|
+
"success",
|
|
3622
|
+
"toc"
|
|
3623
|
+
]);
|
|
3507
3624
|
operationSchemas = {
|
|
3508
3625
|
find: {
|
|
3509
3626
|
input: findInputSchema,
|
|
@@ -4713,6 +4830,94 @@ var init_schemas = __esm(() => {
|
|
|
4713
4830
|
bandedColumns: { type: "boolean" }
|
|
4714
4831
|
})
|
|
4715
4832
|
}, ["nodeId"])
|
|
4833
|
+
},
|
|
4834
|
+
"create.tableOfContents": {
|
|
4835
|
+
input: objectSchema({
|
|
4836
|
+
at: {
|
|
4837
|
+
oneOf: [
|
|
4838
|
+
objectSchema({ kind: { const: "documentStart" } }, ["kind"]),
|
|
4839
|
+
objectSchema({ kind: { const: "documentEnd" } }, ["kind"]),
|
|
4840
|
+
objectSchema({ kind: { const: "before" }, target: blockNodeAddressSchema }, ["kind", "target"]),
|
|
4841
|
+
objectSchema({ kind: { const: "after" }, target: blockNodeAddressSchema }, ["kind", "target"])
|
|
4842
|
+
]
|
|
4843
|
+
},
|
|
4844
|
+
config: objectSchema({
|
|
4845
|
+
outlineLevels: objectSchema({ from: { type: "integer" }, to: { type: "integer" } }, ["from", "to"]),
|
|
4846
|
+
useAppliedOutlineLevel: { type: "boolean" },
|
|
4847
|
+
hyperlinks: { type: "boolean" },
|
|
4848
|
+
hideInWebView: { type: "boolean" },
|
|
4849
|
+
omitPageNumberLevels: objectSchema({ from: { type: "integer" }, to: { type: "integer" } }, ["from", "to"]),
|
|
4850
|
+
separator: { type: "string" }
|
|
4851
|
+
})
|
|
4852
|
+
}),
|
|
4853
|
+
output: tocMutationResultSchema(),
|
|
4854
|
+
success: tocMutationSuccessSchema,
|
|
4855
|
+
failure: tocMutationFailureSchema
|
|
4856
|
+
},
|
|
4857
|
+
"toc.list": {
|
|
4858
|
+
input: objectSchema({
|
|
4859
|
+
limit: { type: "integer" },
|
|
4860
|
+
offset: { type: "integer" }
|
|
4861
|
+
}),
|
|
4862
|
+
output: objectSchema({
|
|
4863
|
+
evaluatedRevision: { type: "string" },
|
|
4864
|
+
total: { type: "integer" },
|
|
4865
|
+
items: arraySchema(objectSchema({
|
|
4866
|
+
id: { type: "string" },
|
|
4867
|
+
handle: ref("ResolvedHandle"),
|
|
4868
|
+
address: tocAddressSchema(),
|
|
4869
|
+
instruction: { type: "string" },
|
|
4870
|
+
sourceConfig: { type: "object" },
|
|
4871
|
+
displayConfig: { type: "object" },
|
|
4872
|
+
preserved: { type: "object" },
|
|
4873
|
+
entryCount: { type: "integer" }
|
|
4874
|
+
}, ["id", "handle", "address", "instruction", "entryCount"])),
|
|
4875
|
+
page: ref("PageInfo")
|
|
4876
|
+
}, ["evaluatedRevision", "total", "items", "page"])
|
|
4877
|
+
},
|
|
4878
|
+
"toc.get": {
|
|
4879
|
+
input: objectSchema({ target: tocAddressSchema() }, ["target"]),
|
|
4880
|
+
output: objectSchema({
|
|
4881
|
+
nodeType: { const: "tableOfContents" },
|
|
4882
|
+
kind: { const: "block" },
|
|
4883
|
+
properties: objectSchema({
|
|
4884
|
+
instruction: { type: "string" },
|
|
4885
|
+
sourceConfig: { type: "object" },
|
|
4886
|
+
displayConfig: { type: "object" },
|
|
4887
|
+
preservedSwitches: { type: "object" },
|
|
4888
|
+
entryCount: { type: "integer" }
|
|
4889
|
+
}, ["instruction", "entryCount"])
|
|
4890
|
+
}, ["nodeType", "kind", "properties"])
|
|
4891
|
+
},
|
|
4892
|
+
"toc.configure": {
|
|
4893
|
+
input: objectSchema({
|
|
4894
|
+
target: tocAddressSchema(),
|
|
4895
|
+
patch: objectSchema({
|
|
4896
|
+
outlineLevels: objectSchema({ from: { type: "integer" }, to: { type: "integer" } }, ["from", "to"]),
|
|
4897
|
+
useAppliedOutlineLevel: { type: "boolean" },
|
|
4898
|
+
hyperlinks: { type: "boolean" },
|
|
4899
|
+
hideInWebView: { type: "boolean" },
|
|
4900
|
+
omitPageNumberLevels: objectSchema({ from: { type: "integer" }, to: { type: "integer" } }, ["from", "to"]),
|
|
4901
|
+
separator: { type: "string" }
|
|
4902
|
+
})
|
|
4903
|
+
}, ["target", "patch"]),
|
|
4904
|
+
output: tocMutationResultSchema(),
|
|
4905
|
+
success: tocMutationSuccessSchema,
|
|
4906
|
+
failure: tocMutationFailureSchema
|
|
4907
|
+
},
|
|
4908
|
+
"toc.update": {
|
|
4909
|
+
input: objectSchema({
|
|
4910
|
+
target: tocAddressSchema()
|
|
4911
|
+
}, ["target"]),
|
|
4912
|
+
output: tocMutationResultSchema(),
|
|
4913
|
+
success: tocMutationSuccessSchema,
|
|
4914
|
+
failure: tocMutationFailureSchema
|
|
4915
|
+
},
|
|
4916
|
+
"toc.remove": {
|
|
4917
|
+
input: objectSchema({ target: tocAddressSchema() }, ["target"]),
|
|
4918
|
+
output: tocMutationResultSchema(),
|
|
4919
|
+
success: tocMutationSuccessSchema,
|
|
4920
|
+
failure: tocMutationFailureSchema
|
|
4716
4921
|
}
|
|
4717
4922
|
};
|
|
4718
4923
|
});
|
|
@@ -4797,6 +5002,11 @@ var init_reference_doc_map = __esm(() => {
|
|
|
4797
5002
|
title: "Tables",
|
|
4798
5003
|
description: "Table structure, layout, styling, and cell operations.",
|
|
4799
5004
|
pagePath: "tables/index.mdx"
|
|
5005
|
+
},
|
|
5006
|
+
toc: {
|
|
5007
|
+
title: "Table of Contents",
|
|
5008
|
+
description: "Table of contents lifecycle and configuration.",
|
|
5009
|
+
pagePath: "toc/index.mdx"
|
|
4800
5010
|
}
|
|
4801
5011
|
};
|
|
4802
5012
|
REFERENCE_OPERATION_GROUPS = Object.keys(GROUP_METADATA).map((key) => ({
|
|
@@ -5598,6 +5808,24 @@ function executeCreateSectionBreak(adapter, input, options) {
|
|
|
5598
5808
|
validateCreateSectionBreakInput(normalized);
|
|
5599
5809
|
return adapter.sectionBreak(normalized, normalizeMutationOptions(options));
|
|
5600
5810
|
}
|
|
5811
|
+
function normalizeTocCreateLocation(location2) {
|
|
5812
|
+
return location2 ?? { kind: "documentEnd" };
|
|
5813
|
+
}
|
|
5814
|
+
function normalizeCreateTableOfContentsInput(input) {
|
|
5815
|
+
return {
|
|
5816
|
+
at: normalizeTocCreateLocation(input.at),
|
|
5817
|
+
config: input.config
|
|
5818
|
+
};
|
|
5819
|
+
}
|
|
5820
|
+
function executeCreateTableOfContents(adapter, input, options) {
|
|
5821
|
+
const normalized = normalizeCreateTableOfContentsInput(input);
|
|
5822
|
+
const at = normalized.at;
|
|
5823
|
+
if ((at.kind === "before" || at.kind === "after") && "nodeId" in at) {
|
|
5824
|
+
throw new DocumentApiValidationError("INVALID_TARGET", "create.tableOfContents requires at.target for before/after positioning. The nodeId form is not supported.", { fields: ["at.nodeId"] });
|
|
5825
|
+
}
|
|
5826
|
+
validateTargetOnlyCreateLocation(at, "create.tableOfContents");
|
|
5827
|
+
return adapter.tableOfContents(normalized, normalizeMutationOptions(options));
|
|
5828
|
+
}
|
|
5601
5829
|
var SECTION_BREAK_TYPES;
|
|
5602
5830
|
var init_create = __esm(() => {
|
|
5603
5831
|
init_errors2();
|
|
@@ -5796,7 +6024,13 @@ function buildDispatchTable(api) {
|
|
|
5796
6024
|
"tables.clearCellSpacing": (input, options) => api.tables.clearCellSpacing(input, options),
|
|
5797
6025
|
"tables.get": (input) => api.tables.get(input),
|
|
5798
6026
|
"tables.getCells": (input) => api.tables.getCells(input),
|
|
5799
|
-
"tables.getProperties": (input) => api.tables.getProperties(input)
|
|
6027
|
+
"tables.getProperties": (input) => api.tables.getProperties(input),
|
|
6028
|
+
"create.tableOfContents": (input, options) => api.create.tableOfContents(input, options),
|
|
6029
|
+
"toc.list": (input) => api.toc.list(input),
|
|
6030
|
+
"toc.get": (input) => api.toc.get(input),
|
|
6031
|
+
"toc.configure": (input, options) => api.toc.configure(input, options),
|
|
6032
|
+
"toc.update": (input, options) => api.toc.update(input, options),
|
|
6033
|
+
"toc.remove": (input, options) => api.toc.remove(input, options)
|
|
5800
6034
|
};
|
|
5801
6035
|
}
|
|
5802
6036
|
var init_invoke = __esm(() => {
|
|
@@ -6208,6 +6442,39 @@ var init_sections = __esm(() => {
|
|
|
6208
6442
|
PAGE_BORDER_Z_ORDER_VALUES = ["front", "back"];
|
|
6209
6443
|
});
|
|
6210
6444
|
|
|
6445
|
+
// ../../packages/document-api/src/toc/toc.ts
|
|
6446
|
+
function validateTocTarget(target, operationName) {
|
|
6447
|
+
if (target === undefined || target === null) {
|
|
6448
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a target.`);
|
|
6449
|
+
}
|
|
6450
|
+
const t = target;
|
|
6451
|
+
if (t.kind !== "block" || t.nodeType !== "tableOfContents" || typeof t.nodeId !== "string") {
|
|
6452
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} target must be a TocAddress with kind 'block', nodeType 'tableOfContents', and a string nodeId.`, { target });
|
|
6453
|
+
}
|
|
6454
|
+
}
|
|
6455
|
+
function executeTocList(adapter, query2) {
|
|
6456
|
+
return adapter.list(query2);
|
|
6457
|
+
}
|
|
6458
|
+
function executeTocGet(adapter, input) {
|
|
6459
|
+
validateTocTarget(input.target, "toc.get");
|
|
6460
|
+
return adapter.get(input);
|
|
6461
|
+
}
|
|
6462
|
+
function executeTocConfigure(adapter, input, options) {
|
|
6463
|
+
validateTocTarget(input.target, "toc.configure");
|
|
6464
|
+
return adapter.configure(input, normalizeMutationOptions(options));
|
|
6465
|
+
}
|
|
6466
|
+
function executeTocUpdate(adapter, input, options) {
|
|
6467
|
+
validateTocTarget(input.target, "toc.update");
|
|
6468
|
+
return adapter.update(input, normalizeMutationOptions(options));
|
|
6469
|
+
}
|
|
6470
|
+
function executeTocRemove(adapter, input, options) {
|
|
6471
|
+
validateTocTarget(input.target, "toc.remove");
|
|
6472
|
+
return adapter.remove(input, normalizeMutationOptions(options));
|
|
6473
|
+
}
|
|
6474
|
+
var init_toc = __esm(() => {
|
|
6475
|
+
init_errors2();
|
|
6476
|
+
});
|
|
6477
|
+
|
|
6211
6478
|
// ../../packages/document-api/src/lists/lists.types.ts
|
|
6212
6479
|
var LIST_KINDS, LIST_INSERT_POSITIONS;
|
|
6213
6480
|
var init_lists_types = __esm(() => {
|
|
@@ -6314,6 +6581,9 @@ function createDocumentApi(adapters) {
|
|
|
6314
6581
|
},
|
|
6315
6582
|
sectionBreak(input, options) {
|
|
6316
6583
|
return executeCreateSectionBreak(adapters.create, input, options);
|
|
6584
|
+
},
|
|
6585
|
+
tableOfContents(input, options) {
|
|
6586
|
+
return executeCreateTableOfContents(adapters.create, input, options);
|
|
6317
6587
|
}
|
|
6318
6588
|
},
|
|
6319
6589
|
capabilities: capabilities2,
|
|
@@ -6518,6 +6788,23 @@ function createDocumentApi(adapters) {
|
|
|
6518
6788
|
return adapters.tables.getProperties(input);
|
|
6519
6789
|
}
|
|
6520
6790
|
},
|
|
6791
|
+
toc: {
|
|
6792
|
+
list(query2) {
|
|
6793
|
+
return executeTocList(adapters.toc, query2);
|
|
6794
|
+
},
|
|
6795
|
+
get(input) {
|
|
6796
|
+
return executeTocGet(adapters.toc, input);
|
|
6797
|
+
},
|
|
6798
|
+
configure(input, options) {
|
|
6799
|
+
return executeTocConfigure(adapters.toc, input, options);
|
|
6800
|
+
},
|
|
6801
|
+
update(input, options) {
|
|
6802
|
+
return executeTocUpdate(adapters.toc, input, options);
|
|
6803
|
+
},
|
|
6804
|
+
remove(input, options) {
|
|
6805
|
+
return executeTocRemove(adapters.toc, input, options);
|
|
6806
|
+
}
|
|
6807
|
+
},
|
|
6521
6808
|
query: {
|
|
6522
6809
|
match(input) {
|
|
6523
6810
|
return adapters.query.match(input);
|
|
@@ -6558,6 +6845,7 @@ var init_src = __esm(() => {
|
|
|
6558
6845
|
init_invoke();
|
|
6559
6846
|
init_tables();
|
|
6560
6847
|
init_sections();
|
|
6848
|
+
init_toc();
|
|
6561
6849
|
init_format();
|
|
6562
6850
|
init_inline_run_patch();
|
|
6563
6851
|
init_styles();
|
|
@@ -7204,6 +7492,7 @@ var init_operation_hints = __esm(() => {
|
|
|
7204
7492
|
"styles.apply": "applied stylesheet defaults",
|
|
7205
7493
|
"create.paragraph": "created paragraph",
|
|
7206
7494
|
"create.heading": "created heading",
|
|
7495
|
+
"create.tableOfContents": "created table of contents",
|
|
7207
7496
|
"lists.list": "listed items",
|
|
7208
7497
|
"lists.get": "resolved list item",
|
|
7209
7498
|
"lists.insert": "inserted list item",
|
|
@@ -7220,6 +7509,11 @@ var init_operation_hints = __esm(() => {
|
|
|
7220
7509
|
"trackChanges.list": "listed tracked changes",
|
|
7221
7510
|
"trackChanges.get": "resolved tracked change",
|
|
7222
7511
|
"trackChanges.decide": "reviewed tracked change",
|
|
7512
|
+
"toc.list": "listed tables of contents",
|
|
7513
|
+
"toc.get": "resolved table of contents",
|
|
7514
|
+
"toc.configure": "configured table of contents",
|
|
7515
|
+
"toc.update": "updated table of contents",
|
|
7516
|
+
"toc.remove": "removed table of contents",
|
|
7223
7517
|
"query.match": "matched selectors",
|
|
7224
7518
|
"mutations.preview": "previewed mutations",
|
|
7225
7519
|
"mutations.apply": "applied mutations",
|
|
@@ -7281,6 +7575,7 @@ var init_operation_hints = __esm(() => {
|
|
|
7281
7575
|
"styles.apply": "receipt",
|
|
7282
7576
|
"create.paragraph": "createResult",
|
|
7283
7577
|
"create.heading": "createResult",
|
|
7578
|
+
"create.tableOfContents": "createResult",
|
|
7284
7579
|
"lists.list": "listResult",
|
|
7285
7580
|
"lists.get": "listItemInfo",
|
|
7286
7581
|
"lists.insert": "listsMutationResult",
|
|
@@ -7297,6 +7592,11 @@ var init_operation_hints = __esm(() => {
|
|
|
7297
7592
|
"trackChanges.list": "trackChangeList",
|
|
7298
7593
|
"trackChanges.get": "trackChangeInfo",
|
|
7299
7594
|
"trackChanges.decide": "trackChangeMutationReceipt",
|
|
7595
|
+
"toc.list": "plain",
|
|
7596
|
+
"toc.get": "plain",
|
|
7597
|
+
"toc.configure": "plain",
|
|
7598
|
+
"toc.update": "plain",
|
|
7599
|
+
"toc.remove": "plain",
|
|
7300
7600
|
"query.match": "plain",
|
|
7301
7601
|
"mutations.preview": "plain",
|
|
7302
7602
|
"mutations.apply": "plain",
|
|
@@ -7358,6 +7658,7 @@ var init_operation_hints = __esm(() => {
|
|
|
7358
7658
|
"styles.apply": "receipt",
|
|
7359
7659
|
"create.paragraph": "result",
|
|
7360
7660
|
"create.heading": "result",
|
|
7661
|
+
"create.tableOfContents": "result",
|
|
7361
7662
|
"lists.list": "result",
|
|
7362
7663
|
"lists.get": "item",
|
|
7363
7664
|
"lists.insert": "result",
|
|
@@ -7374,6 +7675,11 @@ var init_operation_hints = __esm(() => {
|
|
|
7374
7675
|
"trackChanges.list": "result",
|
|
7375
7676
|
"trackChanges.get": "change",
|
|
7376
7677
|
"trackChanges.decide": "receipt",
|
|
7678
|
+
"toc.list": "result",
|
|
7679
|
+
"toc.get": "result",
|
|
7680
|
+
"toc.configure": "result",
|
|
7681
|
+
"toc.update": "result",
|
|
7682
|
+
"toc.remove": "result",
|
|
7377
7683
|
"query.match": "result",
|
|
7378
7684
|
"mutations.preview": "result",
|
|
7379
7685
|
"mutations.apply": "result",
|
|
@@ -7443,6 +7749,7 @@ var init_operation_hints = __esm(() => {
|
|
|
7443
7749
|
"styles.apply": "general",
|
|
7444
7750
|
"create.paragraph": "create",
|
|
7445
7751
|
"create.heading": "create",
|
|
7752
|
+
"create.tableOfContents": "create",
|
|
7446
7753
|
"lists.list": "lists",
|
|
7447
7754
|
"lists.get": "lists",
|
|
7448
7755
|
"lists.insert": "lists",
|
|
@@ -7459,6 +7766,11 @@ var init_operation_hints = __esm(() => {
|
|
|
7459
7766
|
"trackChanges.list": "trackChanges",
|
|
7460
7767
|
"trackChanges.get": "trackChanges",
|
|
7461
7768
|
"trackChanges.decide": "trackChanges",
|
|
7769
|
+
"toc.list": "query",
|
|
7770
|
+
"toc.get": "query",
|
|
7771
|
+
"toc.configure": "toc",
|
|
7772
|
+
"toc.update": "toc",
|
|
7773
|
+
"toc.remove": "toc",
|
|
7462
7774
|
"query.match": "query",
|
|
7463
7775
|
"mutations.preview": "general",
|
|
7464
7776
|
"mutations.apply": "general",
|
|
@@ -28319,7 +28631,7 @@ var init_remark_gfm_z_sDF4ss_es = __esm(() => {
|
|
|
28319
28631
|
emptyOptions2 = {};
|
|
28320
28632
|
});
|
|
28321
28633
|
|
|
28322
|
-
// ../../packages/superdoc/dist/chunks/SuperConverter-
|
|
28634
|
+
// ../../packages/superdoc/dist/chunks/SuperConverter-BSZgN87C.es.js
|
|
28323
28635
|
function getExtensionConfigField(extension$1, field, context = { name: "" }) {
|
|
28324
28636
|
const fieldValue = extension$1.config[field];
|
|
28325
28637
|
if (typeof fieldValue === "function")
|
|
@@ -29681,6 +29993,20 @@ function supportsImplicitTrueValue2(operationId) {
|
|
|
29681
29993
|
return false;
|
|
29682
29994
|
return entry.type === "boolean" || key === "underline";
|
|
29683
29995
|
}
|
|
29996
|
+
function tocAddressSchema2() {
|
|
29997
|
+
return objectSchema2({
|
|
29998
|
+
kind: { const: "block" },
|
|
29999
|
+
nodeType: { const: "tableOfContents" },
|
|
30000
|
+
nodeId: { type: "string" }
|
|
30001
|
+
}, [
|
|
30002
|
+
"kind",
|
|
30003
|
+
"nodeType",
|
|
30004
|
+
"nodeId"
|
|
30005
|
+
]);
|
|
30006
|
+
}
|
|
30007
|
+
function tocMutationResultSchema2() {
|
|
30008
|
+
return { oneOf: [tocMutationSuccessSchema2, tocMutationFailureSchema2] };
|
|
30009
|
+
}
|
|
29684
30010
|
function executeCapabilities2(adapter) {
|
|
29685
30011
|
return adapter.get();
|
|
29686
30012
|
}
|
|
@@ -30283,6 +30609,23 @@ function executeCreateSectionBreak2(adapter, input, options) {
|
|
|
30283
30609
|
validateCreateSectionBreakInput2(normalized);
|
|
30284
30610
|
return adapter.sectionBreak(normalized, normalizeMutationOptions2(options));
|
|
30285
30611
|
}
|
|
30612
|
+
function normalizeTocCreateLocation2(location2) {
|
|
30613
|
+
return location2 ?? { kind: "documentEnd" };
|
|
30614
|
+
}
|
|
30615
|
+
function normalizeCreateTableOfContentsInput2(input) {
|
|
30616
|
+
return {
|
|
30617
|
+
at: normalizeTocCreateLocation2(input.at),
|
|
30618
|
+
config: input.config
|
|
30619
|
+
};
|
|
30620
|
+
}
|
|
30621
|
+
function executeCreateTableOfContents2(adapter, input, options) {
|
|
30622
|
+
const normalized = normalizeCreateTableOfContentsInput2(input);
|
|
30623
|
+
const at = normalized.at;
|
|
30624
|
+
if ((at.kind === "before" || at.kind === "after") && "nodeId" in at)
|
|
30625
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", "create.tableOfContents requires at.target for before/after positioning. The nodeId form is not supported.", { fields: ["at.nodeId"] });
|
|
30626
|
+
validateTargetOnlyCreateLocation2(at, "create.tableOfContents");
|
|
30627
|
+
return adapter.tableOfContents(normalized, normalizeMutationOptions2(options));
|
|
30628
|
+
}
|
|
30286
30629
|
function validateBlocksDeleteInput2(input) {
|
|
30287
30630
|
if (!input || typeof input !== "object")
|
|
30288
30631
|
throw new DocumentApiValidationError2("INVALID_INPUT", "blocks.delete requires an input object.", { fields: ["input"] });
|
|
@@ -30448,7 +30791,13 @@ function buildDispatchTable2(api) {
|
|
|
30448
30791
|
"tables.clearCellSpacing": (input, options) => api.tables.clearCellSpacing(input, options),
|
|
30449
30792
|
"tables.get": (input) => api.tables.get(input),
|
|
30450
30793
|
"tables.getCells": (input) => api.tables.getCells(input),
|
|
30451
|
-
"tables.getProperties": (input) => api.tables.getProperties(input)
|
|
30794
|
+
"tables.getProperties": (input) => api.tables.getProperties(input),
|
|
30795
|
+
"create.tableOfContents": (input, options) => api.create.tableOfContents(input, options),
|
|
30796
|
+
"toc.list": (input) => api.toc.list(input),
|
|
30797
|
+
"toc.get": (input) => api.toc.get(input),
|
|
30798
|
+
"toc.configure": (input, options) => api.toc.configure(input, options),
|
|
30799
|
+
"toc.update": (input, options) => api.toc.update(input, options),
|
|
30800
|
+
"toc.remove": (input, options) => api.toc.remove(input, options)
|
|
30452
30801
|
};
|
|
30453
30802
|
}
|
|
30454
30803
|
function validateTableLocator2(input, operationName) {
|
|
@@ -30792,6 +31141,32 @@ function executeSectionsClearPageBorders2(adapter, input, options) {
|
|
|
30792
31141
|
assertSectionTarget2(input, "sections.clearPageBorders");
|
|
30793
31142
|
return adapter.clearPageBorders(input, normalizeMutationOptions2(options));
|
|
30794
31143
|
}
|
|
31144
|
+
function validateTocTarget2(target, operationName) {
|
|
31145
|
+
if (target === undefined || target === null)
|
|
31146
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a target.`);
|
|
31147
|
+
const t = target;
|
|
31148
|
+
if (t.kind !== "block" || t.nodeType !== "tableOfContents" || typeof t.nodeId !== "string")
|
|
31149
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} target must be a TocAddress with kind 'block', nodeType 'tableOfContents', and a string nodeId.`, { target });
|
|
31150
|
+
}
|
|
31151
|
+
function executeTocList2(adapter, query2) {
|
|
31152
|
+
return adapter.list(query2);
|
|
31153
|
+
}
|
|
31154
|
+
function executeTocGet2(adapter, input) {
|
|
31155
|
+
validateTocTarget2(input.target, "toc.get");
|
|
31156
|
+
return adapter.get(input);
|
|
31157
|
+
}
|
|
31158
|
+
function executeTocConfigure2(adapter, input, options) {
|
|
31159
|
+
validateTocTarget2(input.target, "toc.configure");
|
|
31160
|
+
return adapter.configure(input, normalizeMutationOptions2(options));
|
|
31161
|
+
}
|
|
31162
|
+
function executeTocUpdate2(adapter, input, options) {
|
|
31163
|
+
validateTocTarget2(input.target, "toc.update");
|
|
31164
|
+
return adapter.update(input, normalizeMutationOptions2(options));
|
|
31165
|
+
}
|
|
31166
|
+
function executeTocRemove2(adapter, input, options) {
|
|
31167
|
+
validateTocTarget2(input.target, "toc.remove");
|
|
31168
|
+
return adapter.remove(input, normalizeMutationOptions2(options));
|
|
31169
|
+
}
|
|
30795
31170
|
function buildFormatInlineAliasApi2(adapter) {
|
|
30796
31171
|
return Object.fromEntries(INLINE_PROPERTY_REGISTRY2.map((entry) => {
|
|
30797
31172
|
const key = entry.key;
|
|
@@ -30888,6 +31263,9 @@ function createDocumentApi2(adapters) {
|
|
|
30888
31263
|
},
|
|
30889
31264
|
sectionBreak(input, options) {
|
|
30890
31265
|
return executeCreateSectionBreak2(adapters.create, input, options);
|
|
31266
|
+
},
|
|
31267
|
+
tableOfContents(input, options) {
|
|
31268
|
+
return executeCreateTableOfContents2(adapters.create, input, options);
|
|
30891
31269
|
}
|
|
30892
31270
|
},
|
|
30893
31271
|
capabilities: capabilities2,
|
|
@@ -31092,6 +31470,23 @@ function createDocumentApi2(adapters) {
|
|
|
31092
31470
|
return adapters.tables.getProperties(input);
|
|
31093
31471
|
}
|
|
31094
31472
|
},
|
|
31473
|
+
toc: {
|
|
31474
|
+
list(query2) {
|
|
31475
|
+
return executeTocList2(adapters.toc, query2);
|
|
31476
|
+
},
|
|
31477
|
+
get(input) {
|
|
31478
|
+
return executeTocGet2(adapters.toc, input);
|
|
31479
|
+
},
|
|
31480
|
+
configure(input, options) {
|
|
31481
|
+
return executeTocConfigure2(adapters.toc, input, options);
|
|
31482
|
+
},
|
|
31483
|
+
update(input, options) {
|
|
31484
|
+
return executeTocUpdate2(adapters.toc, input, options);
|
|
31485
|
+
},
|
|
31486
|
+
remove(input, options) {
|
|
31487
|
+
return executeTocRemove2(adapters.toc, input, options);
|
|
31488
|
+
}
|
|
31489
|
+
},
|
|
31095
31490
|
query: { match(input) {
|
|
31096
31491
|
return adapters.query.match(input);
|
|
31097
31492
|
} },
|
|
@@ -46590,7 +46985,7 @@ var isRegExp = (value) => {
|
|
|
46590
46985
|
tracked: false,
|
|
46591
46986
|
carrier: runAttributeCarrier2(runPropertyKey ?? key),
|
|
46592
46987
|
schema
|
|
46593
|
-
}), INLINE_PROPERTY_REGISTRY2, INLINE_PROPERTY_KEY_SET2, INLINE_PROPERTY_BY_KEY2, UNDERLINE_OBJECT_ALLOWED_KEYS2, SHADING_ALLOWED_KEYS2, BORDER_ALLOWED_KEYS2, FIT_TEXT_ALLOWED_KEYS2, LANG_ALLOWED_KEYS2, RFONTS_ALLOWED_KEYS2, EAST_ASIAN_LAYOUT_ALLOWED_KEYS2, STYLISTIC_SET_ALLOWED_KEYS2, VERT_ALIGN_VALUES2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_NOT_FOUND_COMMAND2, T_NOT_FOUND_COMMAND_TRACKED2, T_QUERY_MATCH2, T_SECTION_CREATE2, T_SECTION_READ2, T_SECTION_MUTATION2, T_SECTION_SETTINGS_MUTATION2, FORMAT_INLINE_ALIAS_OPERATION_DEFINITIONS2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, ALIGNMENTS2, ALIGNMENT_SET2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, ALIGN_ALLOWED_KEYS2, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, sectionAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, entityAddressSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, listsExitSuccessSchema2, nodeSummarySchema2, nodeInfoSchema2, matchContextSchema2, unknownNodeDiagnosticSchema2, textSelectorSchema2, nodeSelectorSchema2, findItemDomainSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, ST_ON_OFF_ON_VALUES2, ST_ON_OFF_OFF_VALUES2, ST_UNDERLINE_VALUE_SET2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, PROPERTY_REGISTRY2, ALLOWED_KEYS_BY_CHANNEL2, STYLES_APPLY_INPUT_ALLOWED_KEYS2, STYLES_APPLY_TARGET_ALLOWED_KEYS2, STYLES_APPLY_OPTIONS_ALLOWED_KEYS2, VALID_CHANNELS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, REPLACE_INPUT_ALLOWED_KEYS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, TABLE_LOCATOR_OPS2, ROW_LOCATOR_OPS2, COLUMN_LOCATOR_OPS2, MERGE_RANGE_LOCATOR_OPS2, DEFAULT_SECTIONS_LIST_LIMIT2 = 250, SECTION_BREAK_TYPES3, SECTION_ORIENTATIONS2, SECTION_VERTICAL_ALIGNS2, SECTION_DIRECTIONS2, HEADER_FOOTER_KINDS2, HEADER_FOOTER_VARIANTS2, LINE_NUMBER_RESTARTS2, PAGE_NUMBER_FORMATS2, PAGE_BORDER_DISPLAYS2, PAGE_BORDER_OFFSET_FROM_VALUES2, PAGE_BORDER_Z_ORDER_VALUES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$207) => ({
|
|
46988
|
+
}), INLINE_PROPERTY_REGISTRY2, INLINE_PROPERTY_KEY_SET2, INLINE_PROPERTY_BY_KEY2, UNDERLINE_OBJECT_ALLOWED_KEYS2, SHADING_ALLOWED_KEYS2, BORDER_ALLOWED_KEYS2, FIT_TEXT_ALLOWED_KEYS2, LANG_ALLOWED_KEYS2, RFONTS_ALLOWED_KEYS2, EAST_ASIAN_LAYOUT_ALLOWED_KEYS2, STYLISTIC_SET_ALLOWED_KEYS2, VERT_ALIGN_VALUES2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_NOT_FOUND_COMMAND2, T_NOT_FOUND_COMMAND_TRACKED2, T_QUERY_MATCH2, T_SECTION_CREATE2, T_SECTION_READ2, T_SECTION_MUTATION2, T_SECTION_SETTINGS_MUTATION2, FORMAT_INLINE_ALIAS_OPERATION_DEFINITIONS2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, ALIGNMENTS2, ALIGNMENT_SET2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, ALIGN_ALLOWED_KEYS2, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, sectionAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, entityAddressSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, listsExitSuccessSchema2, nodeSummarySchema2, nodeInfoSchema2, matchContextSchema2, unknownNodeDiagnosticSchema2, textSelectorSchema2, nodeSelectorSchema2, findItemDomainSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, ST_ON_OFF_ON_VALUES2, ST_ON_OFF_OFF_VALUES2, ST_UNDERLINE_VALUE_SET2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, PROPERTY_REGISTRY2, ALLOWED_KEYS_BY_CHANNEL2, STYLES_APPLY_INPUT_ALLOWED_KEYS2, STYLES_APPLY_TARGET_ALLOWED_KEYS2, STYLES_APPLY_OPTIONS_ALLOWED_KEYS2, VALID_CHANNELS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, REPLACE_INPUT_ALLOWED_KEYS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, TABLE_LOCATOR_OPS2, ROW_LOCATOR_OPS2, COLUMN_LOCATOR_OPS2, MERGE_RANGE_LOCATOR_OPS2, DEFAULT_SECTIONS_LIST_LIMIT2 = 250, SECTION_BREAK_TYPES3, SECTION_ORIENTATIONS2, SECTION_VERTICAL_ALIGNS2, SECTION_DIRECTIONS2, HEADER_FOOTER_KINDS2, HEADER_FOOTER_VARIANTS2, LINE_NUMBER_RESTARTS2, PAGE_NUMBER_FORMATS2, PAGE_BORDER_DISPLAYS2, PAGE_BORDER_OFFSET_FROM_VALUES2, PAGE_BORDER_Z_ORDER_VALUES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$207) => ({
|
|
46594
46989
|
handlerName,
|
|
46595
46990
|
handler: (params) => {
|
|
46596
46991
|
const { nodes } = params;
|
|
@@ -55341,7 +55736,7 @@ var isRegExp = (value) => {
|
|
|
55341
55736
|
};
|
|
55342
55737
|
}, decode$11 = (params) => {
|
|
55343
55738
|
const { node: node3 } = params;
|
|
55344
|
-
const contentNodes = node3.content.map((n) => exportSchemaToJson({
|
|
55739
|
+
const contentNodes = (Array.isArray(node3.content) ? node3.content : []).map((n) => exportSchemaToJson({
|
|
55345
55740
|
...params,
|
|
55346
55741
|
node: n
|
|
55347
55742
|
}));
|
|
@@ -57790,7 +58185,7 @@ var isRegExp = (value) => {
|
|
|
57790
58185
|
state.kern = kernNode.attributes["w:val"];
|
|
57791
58186
|
}
|
|
57792
58187
|
}, SuperConverter;
|
|
57793
|
-
var
|
|
58188
|
+
var init_SuperConverter_BSZgN87C_es = __esm(() => {
|
|
57794
58189
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
57795
58190
|
init_jszip_ChlR43oI_es();
|
|
57796
58191
|
init_xml_js_DLE8mr0n_es();
|
|
@@ -60208,6 +60603,7 @@ var init_SuperConverter_DhpmwuUN_es = __esm(() => {
|
|
|
60208
60603
|
"table",
|
|
60209
60604
|
"tableRow",
|
|
60210
60605
|
"tableCell",
|
|
60606
|
+
"tableOfContents",
|
|
60211
60607
|
"image",
|
|
60212
60608
|
"sdt",
|
|
60213
60609
|
"run",
|
|
@@ -60225,6 +60621,7 @@ var init_SuperConverter_DhpmwuUN_es = __esm(() => {
|
|
|
60225
60621
|
"table",
|
|
60226
60622
|
"tableRow",
|
|
60227
60623
|
"tableCell",
|
|
60624
|
+
"tableOfContents",
|
|
60228
60625
|
"image",
|
|
60229
60626
|
"sdt"
|
|
60230
60627
|
];
|
|
@@ -62026,6 +62423,103 @@ var init_SuperConverter_DhpmwuUN_es = __esm(() => {
|
|
|
62026
62423
|
}),
|
|
62027
62424
|
referenceDocPath: "tables/get-properties.mdx",
|
|
62028
62425
|
referenceGroup: "tables"
|
|
62426
|
+
},
|
|
62427
|
+
"create.tableOfContents": {
|
|
62428
|
+
memberPath: "create.tableOfContents",
|
|
62429
|
+
description: "Insert a new table of contents at the target position.",
|
|
62430
|
+
expectedResult: "Returns a CreateTableOfContentsResult with the new TOC block address.",
|
|
62431
|
+
requiresDocumentContext: true,
|
|
62432
|
+
metadata: mutationOperation2({
|
|
62433
|
+
idempotency: "non-idempotent",
|
|
62434
|
+
supportsDryRun: true,
|
|
62435
|
+
supportsTrackedMode: false,
|
|
62436
|
+
possibleFailureCodes: ["NO_OP", "INVALID_INSERTION_CONTEXT"],
|
|
62437
|
+
throws: [
|
|
62438
|
+
"INVALID_TARGET",
|
|
62439
|
+
"TARGET_NOT_FOUND",
|
|
62440
|
+
"CAPABILITY_UNAVAILABLE"
|
|
62441
|
+
]
|
|
62442
|
+
}),
|
|
62443
|
+
referenceDocPath: "create/table-of-contents.mdx",
|
|
62444
|
+
referenceGroup: "create"
|
|
62445
|
+
},
|
|
62446
|
+
"toc.list": {
|
|
62447
|
+
memberPath: "toc.list",
|
|
62448
|
+
description: "List all tables of contents in the document.",
|
|
62449
|
+
expectedResult: "Returns a TocListResult with an array of TOC discovery items and pagination metadata.",
|
|
62450
|
+
requiresDocumentContext: true,
|
|
62451
|
+
metadata: readOperation2({ idempotency: "idempotent" }),
|
|
62452
|
+
referenceDocPath: "toc/list.mdx",
|
|
62453
|
+
referenceGroup: "toc"
|
|
62454
|
+
},
|
|
62455
|
+
"toc.get": {
|
|
62456
|
+
memberPath: "toc.get",
|
|
62457
|
+
description: "Retrieve details of a specific table of contents.",
|
|
62458
|
+
expectedResult: "Returns a TocInfo object with the instruction, source/display configuration, and entry count.",
|
|
62459
|
+
requiresDocumentContext: true,
|
|
62460
|
+
metadata: readOperation2({
|
|
62461
|
+
idempotency: "idempotent",
|
|
62462
|
+
throws: T_NOT_FOUND2
|
|
62463
|
+
}),
|
|
62464
|
+
referenceDocPath: "toc/get.mdx",
|
|
62465
|
+
referenceGroup: "toc"
|
|
62466
|
+
},
|
|
62467
|
+
"toc.configure": {
|
|
62468
|
+
memberPath: "toc.configure",
|
|
62469
|
+
description: "Update the configuration switches of a table of contents.",
|
|
62470
|
+
expectedResult: "Returns a TocMutationResult with the updated TOC address on success, or a failure code on no-op.",
|
|
62471
|
+
requiresDocumentContext: true,
|
|
62472
|
+
metadata: mutationOperation2({
|
|
62473
|
+
idempotency: "conditional",
|
|
62474
|
+
supportsDryRun: true,
|
|
62475
|
+
supportsTrackedMode: false,
|
|
62476
|
+
possibleFailureCodes: ["NO_OP"],
|
|
62477
|
+
throws: [
|
|
62478
|
+
"TARGET_NOT_FOUND",
|
|
62479
|
+
"INVALID_TARGET",
|
|
62480
|
+
"CAPABILITY_UNAVAILABLE"
|
|
62481
|
+
]
|
|
62482
|
+
}),
|
|
62483
|
+
referenceDocPath: "toc/configure.mdx",
|
|
62484
|
+
referenceGroup: "toc"
|
|
62485
|
+
},
|
|
62486
|
+
"toc.update": {
|
|
62487
|
+
memberPath: "toc.update",
|
|
62488
|
+
description: "Rebuild the materialized content of a table of contents.",
|
|
62489
|
+
expectedResult: "Returns a TocMutationResult with the TOC address on success, or a failure code if content is unchanged.",
|
|
62490
|
+
requiresDocumentContext: true,
|
|
62491
|
+
metadata: mutationOperation2({
|
|
62492
|
+
idempotency: "conditional",
|
|
62493
|
+
supportsDryRun: true,
|
|
62494
|
+
supportsTrackedMode: false,
|
|
62495
|
+
possibleFailureCodes: ["NO_OP"],
|
|
62496
|
+
throws: [
|
|
62497
|
+
"TARGET_NOT_FOUND",
|
|
62498
|
+
"INVALID_TARGET",
|
|
62499
|
+
"CAPABILITY_UNAVAILABLE"
|
|
62500
|
+
]
|
|
62501
|
+
}),
|
|
62502
|
+
referenceDocPath: "toc/update.mdx",
|
|
62503
|
+
referenceGroup: "toc"
|
|
62504
|
+
},
|
|
62505
|
+
"toc.remove": {
|
|
62506
|
+
memberPath: "toc.remove",
|
|
62507
|
+
description: "Remove a table of contents from the document.",
|
|
62508
|
+
expectedResult: "Returns a TocMutationResult with the removed TOC address on success, or a failure code on no-op.",
|
|
62509
|
+
requiresDocumentContext: true,
|
|
62510
|
+
metadata: mutationOperation2({
|
|
62511
|
+
idempotency: "conditional",
|
|
62512
|
+
supportsDryRun: true,
|
|
62513
|
+
supportsTrackedMode: false,
|
|
62514
|
+
possibleFailureCodes: ["NO_OP"],
|
|
62515
|
+
throws: [
|
|
62516
|
+
"TARGET_NOT_FOUND",
|
|
62517
|
+
"INVALID_TARGET",
|
|
62518
|
+
"CAPABILITY_UNAVAILABLE"
|
|
62519
|
+
]
|
|
62520
|
+
}),
|
|
62521
|
+
referenceDocPath: "toc/remove.mdx",
|
|
62522
|
+
referenceGroup: "toc"
|
|
62029
62523
|
}
|
|
62030
62524
|
};
|
|
62031
62525
|
OPERATION_IDS2 = Object.freeze(Object.keys(OPERATION_DEFINITIONS2));
|
|
@@ -62951,6 +63445,24 @@ var init_SuperConverter_DhpmwuUN_es = __esm(() => {
|
|
|
62951
63445
|
failure: textMutationFailureSchemaFor2(operationId)
|
|
62952
63446
|
}];
|
|
62953
63447
|
}));
|
|
63448
|
+
tocMutationFailureSchema2 = objectSchema2({
|
|
63449
|
+
success: { const: false },
|
|
63450
|
+
failure: objectSchema2({
|
|
63451
|
+
code: { enum: [...[
|
|
63452
|
+
"NO_OP",
|
|
63453
|
+
"INVALID_TARGET",
|
|
63454
|
+
"TARGET_NOT_FOUND",
|
|
63455
|
+
"CAPABILITY_UNAVAILABLE",
|
|
63456
|
+
"INVALID_INSERTION_CONTEXT"
|
|
63457
|
+
]] },
|
|
63458
|
+
message: { type: "string" },
|
|
63459
|
+
details: {}
|
|
63460
|
+
}, ["code", "message"])
|
|
63461
|
+
}, ["success", "failure"]);
|
|
63462
|
+
tocMutationSuccessSchema2 = objectSchema2({
|
|
63463
|
+
success: { const: true },
|
|
63464
|
+
toc: tocAddressSchema2()
|
|
63465
|
+
}, ["success", "toc"]);
|
|
62954
63466
|
objectSchema2({
|
|
62955
63467
|
nodeId: { type: "string" },
|
|
62956
63468
|
nodeType: { enum: [...blockNodeTypeValues2] }
|
|
@@ -63879,7 +64391,92 @@ var init_SuperConverter_DhpmwuUN_es = __esm(() => {
|
|
|
63879
64391
|
bandedRows: { type: "boolean" },
|
|
63880
64392
|
bandedColumns: { type: "boolean" }
|
|
63881
64393
|
})
|
|
63882
|
-
}, ["nodeId"])
|
|
64394
|
+
}, ["nodeId"]), objectSchema2({
|
|
64395
|
+
at: { oneOf: [
|
|
64396
|
+
objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
|
|
64397
|
+
objectSchema2({ kind: { const: "documentEnd" } }, ["kind"]),
|
|
64398
|
+
objectSchema2({
|
|
64399
|
+
kind: { const: "before" },
|
|
64400
|
+
target: blockNodeAddressSchema2
|
|
64401
|
+
}, ["kind", "target"]),
|
|
64402
|
+
objectSchema2({
|
|
64403
|
+
kind: { const: "after" },
|
|
64404
|
+
target: blockNodeAddressSchema2
|
|
64405
|
+
}, ["kind", "target"])
|
|
64406
|
+
] },
|
|
64407
|
+
config: objectSchema2({
|
|
64408
|
+
outlineLevels: objectSchema2({
|
|
64409
|
+
from: { type: "integer" },
|
|
64410
|
+
to: { type: "integer" }
|
|
64411
|
+
}, ["from", "to"]),
|
|
64412
|
+
useAppliedOutlineLevel: { type: "boolean" },
|
|
64413
|
+
hyperlinks: { type: "boolean" },
|
|
64414
|
+
hideInWebView: { type: "boolean" },
|
|
64415
|
+
omitPageNumberLevels: objectSchema2({
|
|
64416
|
+
from: { type: "integer" },
|
|
64417
|
+
to: { type: "integer" }
|
|
64418
|
+
}, ["from", "to"]),
|
|
64419
|
+
separator: { type: "string" }
|
|
64420
|
+
})
|
|
64421
|
+
}), tocMutationResultSchema2(), objectSchema2({
|
|
64422
|
+
limit: { type: "integer" },
|
|
64423
|
+
offset: { type: "integer" }
|
|
64424
|
+
}), objectSchema2({
|
|
64425
|
+
evaluatedRevision: { type: "string" },
|
|
64426
|
+
total: { type: "integer" },
|
|
64427
|
+
items: arraySchema2(objectSchema2({
|
|
64428
|
+
id: { type: "string" },
|
|
64429
|
+
handle: ref2("ResolvedHandle"),
|
|
64430
|
+
address: tocAddressSchema2(),
|
|
64431
|
+
instruction: { type: "string" },
|
|
64432
|
+
sourceConfig: { type: "object" },
|
|
64433
|
+
displayConfig: { type: "object" },
|
|
64434
|
+
preserved: { type: "object" },
|
|
64435
|
+
entryCount: { type: "integer" }
|
|
64436
|
+
}, [
|
|
64437
|
+
"id",
|
|
64438
|
+
"handle",
|
|
64439
|
+
"address",
|
|
64440
|
+
"instruction",
|
|
64441
|
+
"entryCount"
|
|
64442
|
+
])),
|
|
64443
|
+
page: ref2("PageInfo")
|
|
64444
|
+
}, [
|
|
64445
|
+
"evaluatedRevision",
|
|
64446
|
+
"total",
|
|
64447
|
+
"items",
|
|
64448
|
+
"page"
|
|
64449
|
+
]), objectSchema2({ target: tocAddressSchema2() }, ["target"]), objectSchema2({
|
|
64450
|
+
nodeType: { const: "tableOfContents" },
|
|
64451
|
+
kind: { const: "block" },
|
|
64452
|
+
properties: objectSchema2({
|
|
64453
|
+
instruction: { type: "string" },
|
|
64454
|
+
sourceConfig: { type: "object" },
|
|
64455
|
+
displayConfig: { type: "object" },
|
|
64456
|
+
preservedSwitches: { type: "object" },
|
|
64457
|
+
entryCount: { type: "integer" }
|
|
64458
|
+
}, ["instruction", "entryCount"])
|
|
64459
|
+
}, [
|
|
64460
|
+
"nodeType",
|
|
64461
|
+
"kind",
|
|
64462
|
+
"properties"
|
|
64463
|
+
]), objectSchema2({
|
|
64464
|
+
target: tocAddressSchema2(),
|
|
64465
|
+
patch: objectSchema2({
|
|
64466
|
+
outlineLevels: objectSchema2({
|
|
64467
|
+
from: { type: "integer" },
|
|
64468
|
+
to: { type: "integer" }
|
|
64469
|
+
}, ["from", "to"]),
|
|
64470
|
+
useAppliedOutlineLevel: { type: "boolean" },
|
|
64471
|
+
hyperlinks: { type: "boolean" },
|
|
64472
|
+
hideInWebView: { type: "boolean" },
|
|
64473
|
+
omitPageNumberLevels: objectSchema2({
|
|
64474
|
+
from: { type: "integer" },
|
|
64475
|
+
to: { type: "integer" }
|
|
64476
|
+
}, ["from", "to"]),
|
|
64477
|
+
separator: { type: "string" }
|
|
64478
|
+
})
|
|
64479
|
+
}, ["target", "patch"]), tocMutationResultSchema2(), objectSchema2({ target: tocAddressSchema2() }, ["target"]), tocMutationResultSchema2(), objectSchema2({ target: tocAddressSchema2() }, ["target"]), tocMutationResultSchema2();
|
|
63883
64480
|
projectFromDefinitions2((_id, entry) => entry.memberPath);
|
|
63884
64481
|
[...new Set(OPERATION_IDS2.map((id) => OPERATION_DEFINITIONS2[id].memberPath))];
|
|
63885
64482
|
projectFromDefinitions2((_id, entry) => entry.referenceDocPath);
|
|
@@ -63948,6 +64545,11 @@ var init_SuperConverter_DhpmwuUN_es = __esm(() => {
|
|
|
63948
64545
|
title: "Tables",
|
|
63949
64546
|
description: "Table structure, layout, styling, and cell operations.",
|
|
63950
64547
|
pagePath: "tables/index.mdx"
|
|
64548
|
+
},
|
|
64549
|
+
toc: {
|
|
64550
|
+
title: "Table of Contents",
|
|
64551
|
+
description: "Table of contents lifecycle and configuration.",
|
|
64552
|
+
pagePath: "toc/index.mdx"
|
|
63951
64553
|
}
|
|
63952
64554
|
};
|
|
63953
64555
|
Object.keys(GROUP_METADATA2).map((key) => ({
|
|
@@ -101203,9 +101805,9 @@ var init_remark_gfm_CQ3Jg4PR_es = __esm(() => {
|
|
|
101203
101805
|
init_remark_gfm_z_sDF4ss_es();
|
|
101204
101806
|
});
|
|
101205
101807
|
|
|
101206
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
101207
|
-
var
|
|
101208
|
-
__export(
|
|
101808
|
+
// ../../packages/superdoc/dist/chunks/src-taG73BWT.es.js
|
|
101809
|
+
var exports_src_taG73BWT_es = {};
|
|
101810
|
+
__export(exports_src_taG73BWT_es, {
|
|
101209
101811
|
zt: () => defineMark,
|
|
101210
101812
|
z: () => cM,
|
|
101211
101813
|
yt: () => removeAwarenessStates,
|
|
@@ -108059,6 +108661,20 @@ function normalizeExcerpt(text5) {
|
|
|
108059
108661
|
const trimmed = text5.replace(/\s+/g, " ").trim();
|
|
108060
108662
|
return trimmed.length ? trimmed : undefined;
|
|
108061
108663
|
}
|
|
108664
|
+
function stableHash(input2) {
|
|
108665
|
+
let hash$3 = 2166136261;
|
|
108666
|
+
for (let index2 = 0;index2 < input2.length; index2 += 1) {
|
|
108667
|
+
hash$3 ^= input2.charCodeAt(index2);
|
|
108668
|
+
hash$3 = Math.imul(hash$3, 16777619);
|
|
108669
|
+
}
|
|
108670
|
+
return (hash$3 >>> 0).toString(16).padStart(8, "0");
|
|
108671
|
+
}
|
|
108672
|
+
function buildFallbackTocNodeId(node3, pos) {
|
|
108673
|
+
return `toc-auto-${stableHash(`${pos}:${typeof node3.attrs?.instruction === "string" ? node3.attrs.instruction : ""}`)}`;
|
|
108674
|
+
}
|
|
108675
|
+
function resolvePublicTocNodeId(node3, pos) {
|
|
108676
|
+
return buildFallbackTocNodeId(node3, pos);
|
|
108677
|
+
}
|
|
108062
108678
|
function isListItem$1(attrs) {
|
|
108063
108679
|
const numbering = attrs?.paragraphProperties?.numberingProperties;
|
|
108064
108680
|
if (numbering && (numbering.numId != null || numbering.ilvl != null))
|
|
@@ -108099,6 +108715,8 @@ function mapBlockNodeType(node3) {
|
|
|
108099
108715
|
return "tableCell";
|
|
108100
108716
|
case "image":
|
|
108101
108717
|
return "image";
|
|
108718
|
+
case "tableOfContents":
|
|
108719
|
+
return "tableOfContents";
|
|
108102
108720
|
case "structuredContentBlock":
|
|
108103
108721
|
case "sdt":
|
|
108104
108722
|
return "sdt";
|
|
@@ -108106,11 +108724,13 @@ function mapBlockNodeType(node3) {
|
|
|
108106
108724
|
return;
|
|
108107
108725
|
}
|
|
108108
108726
|
}
|
|
108109
|
-
function resolveBlockNodeId(node3) {
|
|
108727
|
+
function resolveBlockNodeId(node3, pos, nodeType) {
|
|
108110
108728
|
if (node3.type.name === "paragraph") {
|
|
108111
108729
|
const attrs$1 = node3.attrs;
|
|
108112
108730
|
return toId(attrs$1?.paraId) ?? toId(attrs$1?.sdBlockId);
|
|
108113
108731
|
}
|
|
108732
|
+
if (nodeType === "tableOfContents")
|
|
108733
|
+
return resolvePublicTocNodeId(node3, pos);
|
|
108114
108734
|
const attrs = node3.attrs ?? {};
|
|
108115
108735
|
const typeName = node3.type.name;
|
|
108116
108736
|
if (typeName === "table" || typeName === "tableRow" || typeName === "tableCell" || typeName === "tableHeader")
|
|
@@ -108146,7 +108766,7 @@ function buildBlockIndex(editor) {
|
|
|
108146
108766
|
const nodeType = mapBlockNodeType(node3);
|
|
108147
108767
|
if (!nodeType)
|
|
108148
108768
|
return;
|
|
108149
|
-
const nodeId = resolveBlockNodeId(node3);
|
|
108769
|
+
const nodeId = resolveBlockNodeId(node3, pos, nodeType);
|
|
108150
108770
|
if (!nodeId)
|
|
108151
108771
|
return;
|
|
108152
108772
|
const candidate = {
|
|
@@ -108466,6 +109086,173 @@ function findCandidateByPos(candidates, pos) {
|
|
|
108466
109086
|
return candidate;
|
|
108467
109087
|
}
|
|
108468
109088
|
}
|
|
109089
|
+
function parseLevelRange(value) {
|
|
109090
|
+
const match$1 = value.match(/^(\d+)-(\d+)$/);
|
|
109091
|
+
if (!match$1)
|
|
109092
|
+
return;
|
|
109093
|
+
return {
|
|
109094
|
+
from: parseInt(match$1[1], 10),
|
|
109095
|
+
to: parseInt(match$1[2], 10)
|
|
109096
|
+
};
|
|
109097
|
+
}
|
|
109098
|
+
function parseCustomStyles(value) {
|
|
109099
|
+
const entries = [];
|
|
109100
|
+
const parts = value.split(",");
|
|
109101
|
+
for (let i$1 = 0;i$1 < parts.length - 1; i$1 += 2) {
|
|
109102
|
+
const styleName = parts[i$1].trim();
|
|
109103
|
+
const level = parseInt(parts[i$1 + 1].trim(), 10);
|
|
109104
|
+
if (styleName && !isNaN(level))
|
|
109105
|
+
entries.push({
|
|
109106
|
+
styleName,
|
|
109107
|
+
level
|
|
109108
|
+
});
|
|
109109
|
+
}
|
|
109110
|
+
return entries;
|
|
109111
|
+
}
|
|
109112
|
+
function parseTocInstruction(instruction) {
|
|
109113
|
+
const source = {};
|
|
109114
|
+
const display = {};
|
|
109115
|
+
const preserved = {};
|
|
109116
|
+
const rawExtensions = [];
|
|
109117
|
+
let match$1;
|
|
109118
|
+
while ((match$1 = SWITCH_PATTERN.exec(instruction)) !== null) {
|
|
109119
|
+
const switchChar = match$1[1].toLowerCase();
|
|
109120
|
+
const arg = match$1[2] ?? "";
|
|
109121
|
+
switch (switchChar) {
|
|
109122
|
+
case "o": {
|
|
109123
|
+
const range = parseLevelRange(arg);
|
|
109124
|
+
if (range)
|
|
109125
|
+
source.outlineLevels = range;
|
|
109126
|
+
break;
|
|
109127
|
+
}
|
|
109128
|
+
case "u":
|
|
109129
|
+
source.useAppliedOutlineLevel = true;
|
|
109130
|
+
break;
|
|
109131
|
+
case "h":
|
|
109132
|
+
display.hyperlinks = true;
|
|
109133
|
+
break;
|
|
109134
|
+
case "z":
|
|
109135
|
+
display.hideInWebView = true;
|
|
109136
|
+
break;
|
|
109137
|
+
case "n": {
|
|
109138
|
+
const range = parseLevelRange(arg);
|
|
109139
|
+
if (range)
|
|
109140
|
+
display.omitPageNumberLevels = range;
|
|
109141
|
+
break;
|
|
109142
|
+
}
|
|
109143
|
+
case "p":
|
|
109144
|
+
if (arg)
|
|
109145
|
+
display.separator = arg;
|
|
109146
|
+
break;
|
|
109147
|
+
case "t":
|
|
109148
|
+
if (arg)
|
|
109149
|
+
preserved.customStyles = parseCustomStyles(arg);
|
|
109150
|
+
break;
|
|
109151
|
+
case "b":
|
|
109152
|
+
if (arg)
|
|
109153
|
+
preserved.bookmarkName = arg;
|
|
109154
|
+
break;
|
|
109155
|
+
case "f":
|
|
109156
|
+
if (arg)
|
|
109157
|
+
preserved.tcFieldIdentifier = arg;
|
|
109158
|
+
break;
|
|
109159
|
+
case "l": {
|
|
109160
|
+
const range = parseLevelRange(arg);
|
|
109161
|
+
if (range)
|
|
109162
|
+
preserved.tcFieldLevels = range;
|
|
109163
|
+
break;
|
|
109164
|
+
}
|
|
109165
|
+
case "a":
|
|
109166
|
+
if (arg)
|
|
109167
|
+
preserved.captionType = arg;
|
|
109168
|
+
break;
|
|
109169
|
+
case "c":
|
|
109170
|
+
if (arg)
|
|
109171
|
+
preserved.seqFieldIdentifier = arg;
|
|
109172
|
+
break;
|
|
109173
|
+
case "d":
|
|
109174
|
+
if (arg)
|
|
109175
|
+
preserved.chapterSeparator = arg;
|
|
109176
|
+
break;
|
|
109177
|
+
case "s":
|
|
109178
|
+
if (arg)
|
|
109179
|
+
preserved.chapterNumberSource = arg;
|
|
109180
|
+
break;
|
|
109181
|
+
case "w":
|
|
109182
|
+
preserved.preserveTabEntries = true;
|
|
109183
|
+
break;
|
|
109184
|
+
default:
|
|
109185
|
+
rawExtensions.push(arg ? `\\${switchChar} "${arg}"` : `\\${switchChar}`);
|
|
109186
|
+
break;
|
|
109187
|
+
}
|
|
109188
|
+
}
|
|
109189
|
+
if (rawExtensions.length > 0)
|
|
109190
|
+
preserved.rawExtensions = rawExtensions;
|
|
109191
|
+
return {
|
|
109192
|
+
source,
|
|
109193
|
+
display,
|
|
109194
|
+
preserved
|
|
109195
|
+
};
|
|
109196
|
+
}
|
|
109197
|
+
function serializeTocInstruction(config2) {
|
|
109198
|
+
const parts = ["TOC"];
|
|
109199
|
+
const { source, display, preserved } = config2;
|
|
109200
|
+
if (source.outlineLevels)
|
|
109201
|
+
parts.push(`\\o "${source.outlineLevels.from}-${source.outlineLevels.to}"`);
|
|
109202
|
+
if (source.useAppliedOutlineLevel)
|
|
109203
|
+
parts.push("\\u");
|
|
109204
|
+
if (preserved.customStyles?.length) {
|
|
109205
|
+
const pairs = preserved.customStyles.map((s2) => `${s2.styleName},${s2.level}`).join(",");
|
|
109206
|
+
parts.push(`\\t "${pairs}"`);
|
|
109207
|
+
}
|
|
109208
|
+
if (display.hyperlinks)
|
|
109209
|
+
parts.push("\\h");
|
|
109210
|
+
if (display.hideInWebView)
|
|
109211
|
+
parts.push("\\z");
|
|
109212
|
+
if (display.omitPageNumberLevels)
|
|
109213
|
+
parts.push(`\\n "${display.omitPageNumberLevels.from}-${display.omitPageNumberLevels.to}"`);
|
|
109214
|
+
if (display.separator)
|
|
109215
|
+
parts.push(`\\p "${display.separator}"`);
|
|
109216
|
+
if (preserved.captionType)
|
|
109217
|
+
parts.push(`\\a "${preserved.captionType}"`);
|
|
109218
|
+
if (preserved.bookmarkName)
|
|
109219
|
+
parts.push(`\\b "${preserved.bookmarkName}"`);
|
|
109220
|
+
if (preserved.seqFieldIdentifier)
|
|
109221
|
+
parts.push(`\\c "${preserved.seqFieldIdentifier}"`);
|
|
109222
|
+
if (preserved.chapterSeparator)
|
|
109223
|
+
parts.push(`\\d "${preserved.chapterSeparator}"`);
|
|
109224
|
+
if (preserved.tcFieldIdentifier)
|
|
109225
|
+
parts.push(`\\f "${preserved.tcFieldIdentifier}"`);
|
|
109226
|
+
if (preserved.tcFieldLevels)
|
|
109227
|
+
parts.push(`\\l "${preserved.tcFieldLevels.from}-${preserved.tcFieldLevels.to}"`);
|
|
109228
|
+
if (preserved.chapterNumberSource)
|
|
109229
|
+
parts.push(`\\s "${preserved.chapterNumberSource}"`);
|
|
109230
|
+
if (preserved.preserveTabEntries)
|
|
109231
|
+
parts.push("\\w");
|
|
109232
|
+
if (preserved.rawExtensions?.length)
|
|
109233
|
+
parts.push(...preserved.rawExtensions);
|
|
109234
|
+
return parts.join(" ");
|
|
109235
|
+
}
|
|
109236
|
+
function applyTocPatch(existing, patch3) {
|
|
109237
|
+
return {
|
|
109238
|
+
source: {
|
|
109239
|
+
...existing.source,
|
|
109240
|
+
...patch3.outlineLevels !== undefined && { outlineLevels: patch3.outlineLevels },
|
|
109241
|
+
...patch3.useAppliedOutlineLevel !== undefined && { useAppliedOutlineLevel: patch3.useAppliedOutlineLevel }
|
|
109242
|
+
},
|
|
109243
|
+
display: {
|
|
109244
|
+
...existing.display,
|
|
109245
|
+
...patch3.hyperlinks !== undefined && { hyperlinks: patch3.hyperlinks },
|
|
109246
|
+
...patch3.hideInWebView !== undefined && { hideInWebView: patch3.hideInWebView },
|
|
109247
|
+
...patch3.omitPageNumberLevels !== undefined && { omitPageNumberLevels: patch3.omitPageNumberLevels },
|
|
109248
|
+
...patch3.separator !== undefined && { separator: patch3.separator }
|
|
109249
|
+
},
|
|
109250
|
+
preserved: { ...existing.preserved }
|
|
109251
|
+
};
|
|
109252
|
+
}
|
|
109253
|
+
function areTocConfigsEqual(a2, b$1) {
|
|
109254
|
+
return serializeTocInstruction(a2) === serializeTocInstruction(b$1);
|
|
109255
|
+
}
|
|
108469
109256
|
function resolveMeasurement(value) {
|
|
108470
109257
|
if (typeof value === "number")
|
|
108471
109258
|
return value;
|
|
@@ -108596,6 +109383,23 @@ function mapTableCellNode(candidate) {
|
|
|
108596
109383
|
}
|
|
108597
109384
|
};
|
|
108598
109385
|
}
|
|
109386
|
+
function mapTableOfContentsNode(candidate) {
|
|
109387
|
+
const node3 = candidate.node;
|
|
109388
|
+
const instruction = node3.attrs?.instruction ?? "";
|
|
109389
|
+
const config2 = parseTocInstruction(instruction);
|
|
109390
|
+
const entryCount = node3.childCount;
|
|
109391
|
+
return {
|
|
109392
|
+
nodeType: "tableOfContents",
|
|
109393
|
+
kind: "block",
|
|
109394
|
+
properties: {
|
|
109395
|
+
instruction,
|
|
109396
|
+
sourceConfig: config2.source,
|
|
109397
|
+
displayConfig: config2.display,
|
|
109398
|
+
preservedSwitches: config2.preserved,
|
|
109399
|
+
entryCount
|
|
109400
|
+
}
|
|
109401
|
+
};
|
|
109402
|
+
}
|
|
108599
109403
|
function buildImageInfo(attrs, kind) {
|
|
108600
109404
|
return {
|
|
108601
109405
|
nodeType: "image",
|
|
@@ -108842,6 +109646,10 @@ function mapNodeInfo(candidate, overrideType) {
|
|
|
108842
109646
|
const attrs = candidate.node?.attrs;
|
|
108843
109647
|
return buildSdtInfo(attrs, kind);
|
|
108844
109648
|
}
|
|
109649
|
+
case "tableOfContents":
|
|
109650
|
+
if (kind !== "block")
|
|
109651
|
+
throw new DocumentApiAdapterError("INVALID_TARGET", "TableOfContents nodes can only be resolved as blocks.");
|
|
109652
|
+
return mapTableOfContentsNode(candidate);
|
|
108845
109653
|
case "hyperlink":
|
|
108846
109654
|
if (!isInlineCandidate(candidate))
|
|
108847
109655
|
throw new DocumentApiAdapterError("INVALID_TARGET", "Hyperlink nodes can only be resolved inline.");
|
|
@@ -119280,6 +120088,335 @@ function tablesSetCellSpacingWrapper(editor, input2, options) {
|
|
|
119280
120088
|
function tablesClearCellSpacingWrapper(editor, input2, options) {
|
|
119281
120089
|
return executeTableCommand(editor, "tables.clearCellSpacing", tablesClearCellSpacingAdapter, input2, options);
|
|
119282
120090
|
}
|
|
120091
|
+
function findAllTocNodes(doc$2) {
|
|
120092
|
+
const results = [];
|
|
120093
|
+
doc$2.descendants((node3, pos) => {
|
|
120094
|
+
if (node3.type.name === "tableOfContents") {
|
|
120095
|
+
const sdBlockId = node3.attrs?.sdBlockId;
|
|
120096
|
+
const nodeId = resolvePublicTocNodeId(node3, pos);
|
|
120097
|
+
const commandNodeId = sdBlockId;
|
|
120098
|
+
results.push({
|
|
120099
|
+
node: node3,
|
|
120100
|
+
pos,
|
|
120101
|
+
nodeId,
|
|
120102
|
+
commandNodeId
|
|
120103
|
+
});
|
|
120104
|
+
return false;
|
|
120105
|
+
}
|
|
120106
|
+
return true;
|
|
120107
|
+
});
|
|
120108
|
+
return results;
|
|
120109
|
+
}
|
|
120110
|
+
function resolveTocTarget(doc$2, target) {
|
|
120111
|
+
const found2 = findAllTocNodes(doc$2).find((t) => t.nodeId === target.nodeId || t.commandNodeId === target.nodeId);
|
|
120112
|
+
if (!found2)
|
|
120113
|
+
throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `Table of contents with nodeId "${target.nodeId}" not found.`);
|
|
120114
|
+
return found2;
|
|
120115
|
+
}
|
|
120116
|
+
function resolvePostMutationTocId(doc$2, sdBlockId) {
|
|
120117
|
+
return findAllTocNodes(doc$2).find((t) => t.commandNodeId === sdBlockId)?.nodeId ?? sdBlockId;
|
|
120118
|
+
}
|
|
120119
|
+
function extractTocInfo(node3) {
|
|
120120
|
+
const instruction = node3.attrs?.instruction ?? "";
|
|
120121
|
+
const config2 = parseTocInstruction(instruction);
|
|
120122
|
+
return {
|
|
120123
|
+
nodeType: "tableOfContents",
|
|
120124
|
+
kind: "block",
|
|
120125
|
+
properties: {
|
|
120126
|
+
instruction,
|
|
120127
|
+
sourceConfig: config2.source,
|
|
120128
|
+
displayConfig: config2.display,
|
|
120129
|
+
preservedSwitches: config2.preserved,
|
|
120130
|
+
entryCount: node3.childCount
|
|
120131
|
+
}
|
|
120132
|
+
};
|
|
120133
|
+
}
|
|
120134
|
+
function buildTocDiscoveryItem(resolved, evaluatedRevision) {
|
|
120135
|
+
const instruction = resolved.node.attrs?.instruction ?? "";
|
|
120136
|
+
const config2 = parseTocInstruction(instruction);
|
|
120137
|
+
const address2 = {
|
|
120138
|
+
kind: "block",
|
|
120139
|
+
nodeType: "tableOfContents",
|
|
120140
|
+
nodeId: resolved.nodeId
|
|
120141
|
+
};
|
|
120142
|
+
const handle3 = buildResolvedHandle2(resolved.nodeId, "stable", "tableOfContents");
|
|
120143
|
+
const domain2 = {
|
|
120144
|
+
address: address2,
|
|
120145
|
+
instruction,
|
|
120146
|
+
sourceConfig: config2.source,
|
|
120147
|
+
displayConfig: config2.display,
|
|
120148
|
+
preserved: config2.preserved,
|
|
120149
|
+
entryCount: resolved.node.childCount
|
|
120150
|
+
};
|
|
120151
|
+
return buildDiscoveryItem2(`toc:${resolved.nodeId}:${evaluatedRevision}`, handle3, domain2);
|
|
120152
|
+
}
|
|
120153
|
+
function collectHeadingSources(doc$2, config2) {
|
|
120154
|
+
const sources = [];
|
|
120155
|
+
const { outlineLevels } = config2.source;
|
|
120156
|
+
const useApplied = config2.source.useAppliedOutlineLevel ?? false;
|
|
120157
|
+
doc$2.descendants((node3, _pos) => {
|
|
120158
|
+
if (node3.type.name === "tableOfContents")
|
|
120159
|
+
return false;
|
|
120160
|
+
if (node3.type.name === "paragraph") {
|
|
120161
|
+
const attrs = node3.attrs;
|
|
120162
|
+
const paragraphProps = attrs?.paragraphProperties;
|
|
120163
|
+
const styleId = paragraphProps?.styleId;
|
|
120164
|
+
const sdBlockId = attrs?.sdBlockId ?? attrs?.paraId;
|
|
120165
|
+
if (!sdBlockId)
|
|
120166
|
+
return true;
|
|
120167
|
+
const headingLevel = getHeadingLevel(styleId);
|
|
120168
|
+
if (headingLevel != null && outlineLevels) {
|
|
120169
|
+
if (headingLevel >= outlineLevels.from && headingLevel <= outlineLevels.to) {
|
|
120170
|
+
sources.push({
|
|
120171
|
+
text: flattenText(node3),
|
|
120172
|
+
level: headingLevel,
|
|
120173
|
+
sdBlockId
|
|
120174
|
+
});
|
|
120175
|
+
return false;
|
|
120176
|
+
}
|
|
120177
|
+
}
|
|
120178
|
+
if (useApplied && outlineLevels) {
|
|
120179
|
+
const rawOutlineLevel = paragraphProps?.outlineLevel;
|
|
120180
|
+
if (rawOutlineLevel != null) {
|
|
120181
|
+
const tocLevel = rawOutlineLevel + 1;
|
|
120182
|
+
if (tocLevel >= outlineLevels.from && tocLevel <= outlineLevels.to) {
|
|
120183
|
+
sources.push({
|
|
120184
|
+
text: flattenText(node3),
|
|
120185
|
+
level: tocLevel,
|
|
120186
|
+
sdBlockId
|
|
120187
|
+
});
|
|
120188
|
+
return false;
|
|
120189
|
+
}
|
|
120190
|
+
}
|
|
120191
|
+
}
|
|
120192
|
+
}
|
|
120193
|
+
return true;
|
|
120194
|
+
});
|
|
120195
|
+
return sources;
|
|
120196
|
+
}
|
|
120197
|
+
function flattenText(node3) {
|
|
120198
|
+
let text5 = "";
|
|
120199
|
+
node3.descendants((child) => {
|
|
120200
|
+
if (child.isText)
|
|
120201
|
+
text5 += child.text;
|
|
120202
|
+
return true;
|
|
120203
|
+
});
|
|
120204
|
+
return text5;
|
|
120205
|
+
}
|
|
120206
|
+
function buildTocEntryParagraphs(sources, config2) {
|
|
120207
|
+
return sources.map((source) => buildEntryParagraph(source, config2));
|
|
120208
|
+
}
|
|
120209
|
+
function buildEntryParagraph(source, config2) {
|
|
120210
|
+
const { display } = config2;
|
|
120211
|
+
const content3 = [];
|
|
120212
|
+
const textNode = {
|
|
120213
|
+
type: "text",
|
|
120214
|
+
text: source.text || " "
|
|
120215
|
+
};
|
|
120216
|
+
if (display.hyperlinks)
|
|
120217
|
+
textNode.marks = [{
|
|
120218
|
+
type: "link",
|
|
120219
|
+
attrs: {
|
|
120220
|
+
anchor: source.sdBlockId,
|
|
120221
|
+
rId: null,
|
|
120222
|
+
history: true
|
|
120223
|
+
}
|
|
120224
|
+
}];
|
|
120225
|
+
content3.push(textNode);
|
|
120226
|
+
const omitRange = display.omitPageNumberLevels;
|
|
120227
|
+
if (!(omitRange && source.level >= omitRange.from && source.level <= omitRange.to)) {
|
|
120228
|
+
if (display.separator)
|
|
120229
|
+
content3.push({
|
|
120230
|
+
type: "text",
|
|
120231
|
+
text: display.separator
|
|
120232
|
+
});
|
|
120233
|
+
else
|
|
120234
|
+
content3.push({ type: "tab" });
|
|
120235
|
+
content3.push({
|
|
120236
|
+
type: "text",
|
|
120237
|
+
text: "0"
|
|
120238
|
+
});
|
|
120239
|
+
}
|
|
120240
|
+
return {
|
|
120241
|
+
type: "paragraph",
|
|
120242
|
+
attrs: {
|
|
120243
|
+
paragraphProperties: { styleId: `TOC${source.level}` },
|
|
120244
|
+
sdBlockId: undefined
|
|
120245
|
+
},
|
|
120246
|
+
content: content3
|
|
120247
|
+
};
|
|
120248
|
+
}
|
|
120249
|
+
function tocListWrapper(editor, query2) {
|
|
120250
|
+
const doc$2 = editor.state.doc;
|
|
120251
|
+
const revision = getRevision(editor);
|
|
120252
|
+
const { total, items: paged } = paginate(findAllTocNodes(doc$2).map((resolved) => buildTocDiscoveryItem(resolved, revision)), query2?.offset, query2?.limit);
|
|
120253
|
+
return buildDiscoveryResult2({
|
|
120254
|
+
evaluatedRevision: revision,
|
|
120255
|
+
total,
|
|
120256
|
+
items: paged,
|
|
120257
|
+
page: {
|
|
120258
|
+
limit: query2?.limit ?? total,
|
|
120259
|
+
offset: query2?.offset ?? 0,
|
|
120260
|
+
returned: paged.length
|
|
120261
|
+
}
|
|
120262
|
+
});
|
|
120263
|
+
}
|
|
120264
|
+
function tocGetWrapper(editor, input2) {
|
|
120265
|
+
return extractTocInfo(resolveTocTarget(editor.state.doc, input2.target).node);
|
|
120266
|
+
}
|
|
120267
|
+
function buildTocAddress(nodeId) {
|
|
120268
|
+
return {
|
|
120269
|
+
kind: "block",
|
|
120270
|
+
nodeType: "tableOfContents",
|
|
120271
|
+
nodeId
|
|
120272
|
+
};
|
|
120273
|
+
}
|
|
120274
|
+
function tocSuccess(nodeId) {
|
|
120275
|
+
return {
|
|
120276
|
+
success: true,
|
|
120277
|
+
toc: buildTocAddress(nodeId)
|
|
120278
|
+
};
|
|
120279
|
+
}
|
|
120280
|
+
function tocFailure(code$1, message) {
|
|
120281
|
+
return {
|
|
120282
|
+
success: false,
|
|
120283
|
+
failure: {
|
|
120284
|
+
code: code$1,
|
|
120285
|
+
message
|
|
120286
|
+
}
|
|
120287
|
+
};
|
|
120288
|
+
}
|
|
120289
|
+
function toTocEditorCommand(command$1) {
|
|
120290
|
+
return command$1;
|
|
120291
|
+
}
|
|
120292
|
+
function runTocAction(editor, action, expectedRevision) {
|
|
120293
|
+
return executeDomainCommand(editor, () => {
|
|
120294
|
+
const result = action();
|
|
120295
|
+
if (result)
|
|
120296
|
+
clearIndexCache(editor);
|
|
120297
|
+
return result;
|
|
120298
|
+
}, { expectedRevision });
|
|
120299
|
+
}
|
|
120300
|
+
function runTocCommand(editor, command$1, args$1, expectedRevision) {
|
|
120301
|
+
const executeCommand = toTocEditorCommand(command$1);
|
|
120302
|
+
return runTocAction(editor, () => executeCommand(args$1), expectedRevision);
|
|
120303
|
+
}
|
|
120304
|
+
function receiptApplied(receipt2) {
|
|
120305
|
+
return receipt2.steps[0]?.effect === "changed";
|
|
120306
|
+
}
|
|
120307
|
+
function isTocContentUnchanged(existingNode, newContent) {
|
|
120308
|
+
if (existingNode.childCount !== newContent.length)
|
|
120309
|
+
return false;
|
|
120310
|
+
const existingEntries = [];
|
|
120311
|
+
let canSerialize = true;
|
|
120312
|
+
existingNode.forEach((child) => {
|
|
120313
|
+
if (!canSerialize)
|
|
120314
|
+
return;
|
|
120315
|
+
if (typeof child.toJSON !== "function") {
|
|
120316
|
+
canSerialize = false;
|
|
120317
|
+
return;
|
|
120318
|
+
}
|
|
120319
|
+
const json = child.toJSON();
|
|
120320
|
+
if (json.attrs)
|
|
120321
|
+
delete json.attrs.sdBlockId;
|
|
120322
|
+
existingEntries.push(json);
|
|
120323
|
+
});
|
|
120324
|
+
if (!canSerialize)
|
|
120325
|
+
return false;
|
|
120326
|
+
const normalized = newContent.map((entry) => {
|
|
120327
|
+
const clone = JSON.parse(JSON.stringify(entry));
|
|
120328
|
+
if (clone.attrs)
|
|
120329
|
+
delete clone.attrs.sdBlockId;
|
|
120330
|
+
return clone;
|
|
120331
|
+
});
|
|
120332
|
+
return JSON.stringify(existingEntries) === JSON.stringify(normalized);
|
|
120333
|
+
}
|
|
120334
|
+
function materializeTocContent(doc$2, config2) {
|
|
120335
|
+
const entryParagraphs = buildTocEntryParagraphs(collectHeadingSources(doc$2, config2), config2);
|
|
120336
|
+
return entryParagraphs.length > 0 ? entryParagraphs : NO_ENTRIES_PLACEHOLDER;
|
|
120337
|
+
}
|
|
120338
|
+
function tocConfigureWrapper(editor, input2, options) {
|
|
120339
|
+
rejectTrackedMode("toc.configure", options);
|
|
120340
|
+
const command$1 = requireEditorCommand(editor.commands?.setTableOfContentsInstructionById, "toc.configure");
|
|
120341
|
+
const resolved = resolveTocTarget(editor.state.doc, input2.target);
|
|
120342
|
+
const currentConfig = parseTocInstruction(resolved.node.attrs?.instruction ?? "");
|
|
120343
|
+
const patched = applyTocPatch(currentConfig, input2.patch);
|
|
120344
|
+
const nextContent = materializeTocContent(editor.state.doc, patched);
|
|
120345
|
+
if (areTocConfigsEqual(currentConfig, patched))
|
|
120346
|
+
return tocFailure("NO_OP", "Configuration patch produced no change.");
|
|
120347
|
+
if (options?.dryRun)
|
|
120348
|
+
return tocSuccess(resolved.nodeId);
|
|
120349
|
+
const shouldRefreshContent = !isTocContentUnchanged(resolved.node, nextContent);
|
|
120350
|
+
const commandNodeId = resolved.commandNodeId ?? resolved.nodeId;
|
|
120351
|
+
if (!receiptApplied(runTocCommand(editor, command$1, {
|
|
120352
|
+
sdBlockId: commandNodeId,
|
|
120353
|
+
instruction: serializeTocInstruction(patched),
|
|
120354
|
+
...shouldRefreshContent ? { content: nextContent } : {}
|
|
120355
|
+
}, options?.expectedRevision)))
|
|
120356
|
+
return tocFailure("NO_OP", "Configuration change could not be applied.");
|
|
120357
|
+
return tocSuccess(resolvePostMutationTocId(editor.state.doc, commandNodeId));
|
|
120358
|
+
}
|
|
120359
|
+
function tocUpdateWrapper(editor, input2, options) {
|
|
120360
|
+
rejectTrackedMode("toc.update", options);
|
|
120361
|
+
const command$1 = requireEditorCommand(editor.commands?.replaceTableOfContentsContentById, "toc.update");
|
|
120362
|
+
const resolved = resolveTocTarget(editor.state.doc, input2.target);
|
|
120363
|
+
const config2 = parseTocInstruction(resolved.node.attrs?.instruction ?? "");
|
|
120364
|
+
const content3 = materializeTocContent(editor.state.doc, config2);
|
|
120365
|
+
if (isTocContentUnchanged(resolved.node, content3))
|
|
120366
|
+
return tocFailure("NO_OP", "TOC update produced no change.");
|
|
120367
|
+
if (options?.dryRun)
|
|
120368
|
+
return tocSuccess(resolved.nodeId);
|
|
120369
|
+
return receiptApplied(runTocCommand(editor, command$1, {
|
|
120370
|
+
sdBlockId: resolved.commandNodeId ?? resolved.nodeId,
|
|
120371
|
+
content: content3
|
|
120372
|
+
}, options?.expectedRevision)) ? tocSuccess(resolved.nodeId) : tocFailure("NO_OP", "TOC update produced no change.");
|
|
120373
|
+
}
|
|
120374
|
+
function tocRemoveWrapper(editor, input2, options) {
|
|
120375
|
+
rejectTrackedMode("toc.remove", options);
|
|
120376
|
+
const command$1 = requireEditorCommand(editor.commands?.deleteTableOfContentsById, "toc.remove");
|
|
120377
|
+
const resolved = resolveTocTarget(editor.state.doc, input2.target);
|
|
120378
|
+
if (options?.dryRun)
|
|
120379
|
+
return tocSuccess(resolved.nodeId);
|
|
120380
|
+
return receiptApplied(runTocCommand(editor, command$1, { sdBlockId: resolved.commandNodeId ?? resolved.nodeId }, options?.expectedRevision)) ? tocSuccess(resolved.nodeId) : tocFailure("NO_OP", "TOC removal produced no change.");
|
|
120381
|
+
}
|
|
120382
|
+
function createTableOfContentsWrapper(editor, input2, options) {
|
|
120383
|
+
rejectTrackedMode("create.tableOfContents", options);
|
|
120384
|
+
const command$1 = requireEditorCommand(editor.commands?.insertTableOfContentsAt, "create.tableOfContents");
|
|
120385
|
+
const at = input2.at ?? { kind: "documentEnd" };
|
|
120386
|
+
let pos;
|
|
120387
|
+
if (at.kind === "documentStart")
|
|
120388
|
+
pos = 0;
|
|
120389
|
+
else if (at.kind === "documentEnd")
|
|
120390
|
+
pos = editor.state.doc.content.size;
|
|
120391
|
+
else
|
|
120392
|
+
pos = resolveBlockInsertionPos(editor, at.target.nodeId, at.kind);
|
|
120393
|
+
const config2 = input2.config ? applyTocPatch(DEFAULT_TOC_CONFIG, input2.config) : DEFAULT_TOC_CONFIG;
|
|
120394
|
+
const instruction = serializeTocInstruction(config2);
|
|
120395
|
+
const content3 = materializeTocContent(editor.state.doc, config2);
|
|
120396
|
+
const sdBlockId = v4_default();
|
|
120397
|
+
if (options?.dryRun)
|
|
120398
|
+
return {
|
|
120399
|
+
success: true,
|
|
120400
|
+
toc: buildTocAddress("(dry-run)")
|
|
120401
|
+
};
|
|
120402
|
+
if (!receiptApplied(runTocCommand(editor, command$1, {
|
|
120403
|
+
pos,
|
|
120404
|
+
instruction,
|
|
120405
|
+
sdBlockId,
|
|
120406
|
+
content: content3
|
|
120407
|
+
}, options?.expectedRevision)))
|
|
120408
|
+
return {
|
|
120409
|
+
success: false,
|
|
120410
|
+
failure: {
|
|
120411
|
+
code: "INVALID_INSERTION_CONTEXT",
|
|
120412
|
+
message: "Table of contents could not be inserted at the requested location."
|
|
120413
|
+
}
|
|
120414
|
+
};
|
|
120415
|
+
return {
|
|
120416
|
+
success: true,
|
|
120417
|
+
toc: buildTocAddress(resolvePostMutationTocId(editor.state.doc, sdBlockId))
|
|
120418
|
+
};
|
|
120419
|
+
}
|
|
119283
120420
|
function assembleDocumentApiAdapters(editor) {
|
|
119284
120421
|
registerBuiltInExecutors();
|
|
119285
120422
|
initRevision(editor);
|
|
@@ -119316,7 +120453,8 @@ function assembleDocumentApiAdapters(editor) {
|
|
|
119316
120453
|
paragraph: (input2, options) => createParagraphWrapper(editor, input2, options),
|
|
119317
120454
|
heading: (input2, options) => createHeadingWrapper(editor, input2, options),
|
|
119318
120455
|
table: (input2, options) => createTableWrapper(editor, input2, options),
|
|
119319
|
-
sectionBreak: (input2, options) => createSectionBreakAdapter(editor, input2, options)
|
|
120456
|
+
sectionBreak: (input2, options) => createSectionBreakAdapter(editor, input2, options),
|
|
120457
|
+
tableOfContents: (input2, options) => createTableOfContentsWrapper(editor, input2, options)
|
|
119320
120458
|
},
|
|
119321
120459
|
lists: {
|
|
119322
120460
|
list: (query2) => listsListWrapper(editor, query2),
|
|
@@ -119389,6 +120527,13 @@ function assembleDocumentApiAdapters(editor) {
|
|
|
119389
120527
|
getCells: (input2) => tablesGetCellsAdapter(editor, input2),
|
|
119390
120528
|
getProperties: (input2) => tablesGetPropertiesAdapter(editor, input2)
|
|
119391
120529
|
},
|
|
120530
|
+
toc: {
|
|
120531
|
+
list: (query2) => tocListWrapper(editor, query2),
|
|
120532
|
+
get: (input2) => tocGetWrapper(editor, input2),
|
|
120533
|
+
configure: (input2, options) => tocConfigureWrapper(editor, input2, options),
|
|
120534
|
+
update: (input2, options) => tocUpdateWrapper(editor, input2, options),
|
|
120535
|
+
remove: (input2, options) => tocRemoveWrapper(editor, input2, options)
|
|
120536
|
+
},
|
|
119392
120537
|
query: { match: (input2) => queryMatchAdapter(editor, input2) },
|
|
119393
120538
|
mutations: {
|
|
119394
120539
|
preview: (input2) => previewPlan(editor, input2),
|
|
@@ -153238,13 +154383,13 @@ var Node$13 = class Node$14 {
|
|
|
153238
154383
|
console.warn("Failed to initialize developer tools:", error);
|
|
153239
154384
|
}
|
|
153240
154385
|
}
|
|
153241
|
-
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, DocumentApiAdapterError, ALIAS_ELIGIBLE_TYPES, cacheByEditor, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, PlanError, revisionMap, subscribedEditors, everSyncedProviders, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, 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", OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL, DERIVED_ID_LENGTH = 24, groupedCache, SUPPORTED_NODE_TYPES, REJECTED_NODE_TYPES, CSS_NAMED_COLORS, ZERO_WIDTH_SPACE = "", ROW_START_TO_TEXT_OFFSET = 3, CELL_TO_TEXT_OFFSET = 2, normalizeHeaderAttrsForBodyCell = (attrs) => {
|
|
154386
|
+
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, DocumentApiAdapterError, ALIAS_ELIGIBLE_TYPES, cacheByEditor, DEFAULT_TOC_CONFIG, SWITCH_PATTERN, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, PlanError, revisionMap, subscribedEditors, everSyncedProviders, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, 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", OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL, DERIVED_ID_LENGTH = 24, groupedCache, SUPPORTED_NODE_TYPES, REJECTED_NODE_TYPES, CSS_NAMED_COLORS, ZERO_WIDTH_SPACE = "", ROW_START_TO_TEXT_OFFSET = 3, CELL_TO_TEXT_OFFSET = 2, normalizeHeaderAttrsForBodyCell = (attrs) => {
|
|
153242
154387
|
if (attrs?.borders !== null)
|
|
153243
154388
|
return attrs;
|
|
153244
154389
|
const nextAttrs = { ...attrs };
|
|
153245
154390
|
delete nextAttrs.borders;
|
|
153246
154391
|
return nextAttrs;
|
|
153247
|
-
}, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, TABLE_ADAPTER_DISPATCH, ROW_OPS, TABLE_SCOPED_OPS, registered = false, SETTINGS_PART_PATH = "word/settings.xml", 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, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH$2 = 96, DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE2 = "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, FOOTER_FILE_PATTERN, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
|
|
154392
|
+
}, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, TABLE_ADAPTER_DISPATCH, ROW_OPS, TABLE_SCOPED_OPS, registered = false, SETTINGS_PART_PATH = "word/settings.xml", 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, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH$2 = 96, DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE2 = "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, FOOTER_FILE_PATTERN, NO_ENTRIES_PLACEHOLDER, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
|
|
153248
154393
|
constructor(config2) {
|
|
153249
154394
|
this.search = config2.search;
|
|
153250
154395
|
this.caseSensitive = !!config2.caseSensitive;
|
|
@@ -171419,9 +172564,9 @@ var Node$13 = class Node$14 {
|
|
|
171419
172564
|
trackedChanges: context.trackedChanges ?? []
|
|
171420
172565
|
});
|
|
171421
172566
|
}, _hoisted_1$6, _hoisted_2$1, _hoisted_3, _hoisted_4, ContextMenu_default, _hoisted_1$5, BasicUpload_default, _hoisted_1$4, MIN_WIDTH = 200, PPI = 96, alignment = "flex-end", Ruler_default, GenericPopover_default, _hoisted_1$3, RESIZE_HANDLE_WIDTH_PX = 9, RESIZE_HANDLE_OFFSET_PX = 4, DRAG_OVERLAY_EXTENSION_PX = 1000, MIN_DRAG_OVERLAY_WIDTH_PX = 2000, THROTTLE_INTERVAL_MS = 16, MIN_RESIZE_DELTA_PX = 1, TableResizeOverlay_default, _hoisted_1$2, OVERLAY_EXPANSION_PX = 2000, RESIZE_HANDLE_SIZE_PX = 12, MOUSE_MOVE_THROTTLE_MS = 16, DIMENSION_CHANGE_THRESHOLD_PX = 1, Z_INDEX_OVERLAY = 10, Z_INDEX_HANDLE = 15, Z_INDEX_GUIDELINE = 20, ImageResizeOverlay_default, LINK_CLICK_DEBOUNCE_MS = 300, CURSOR_UPDATE_TIMEOUT_MS = 10, LinkClickHandler_default, _hoisted_1$1, _hoisted_2, DOCX2 = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", TABLE_RESIZE_HOVER_THRESHOLD = 8, TABLE_RESIZE_THROTTLE_MS = 16, SuperEditor_default, _hoisted_1, SuperInput_default, SlashMenu, Extensions;
|
|
171422
|
-
var
|
|
172567
|
+
var init_src_taG73BWT_es = __esm(() => {
|
|
171423
172568
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
171424
|
-
|
|
172569
|
+
init_SuperConverter_BSZgN87C_es();
|
|
171425
172570
|
init_jszip_ChlR43oI_es();
|
|
171426
172571
|
init_uuid_2IzDu5nl_es();
|
|
171427
172572
|
init_constants_Dw0kAsLd_es();
|
|
@@ -179502,6 +180647,21 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
179502
180647
|
"tableCell"
|
|
179503
180648
|
]);
|
|
179504
180649
|
cacheByEditor = /* @__PURE__ */ new WeakMap;
|
|
180650
|
+
DEFAULT_TOC_CONFIG = {
|
|
180651
|
+
source: {
|
|
180652
|
+
outlineLevels: {
|
|
180653
|
+
from: 1,
|
|
180654
|
+
to: 3
|
|
180655
|
+
},
|
|
180656
|
+
useAppliedOutlineLevel: true
|
|
180657
|
+
},
|
|
180658
|
+
display: {
|
|
180659
|
+
hyperlinks: true,
|
|
180660
|
+
hideInWebView: true
|
|
180661
|
+
},
|
|
180662
|
+
preserved: {}
|
|
180663
|
+
};
|
|
180664
|
+
SWITCH_PATTERN = /\\([a-z])\s*(?:"([^"]*)")?/gi;
|
|
179505
180665
|
DUAL_KIND_TYPES = new Set(["sdt", "image"]);
|
|
179506
180666
|
KNOWN_BLOCK_PM_NODE_TYPES = new Set([
|
|
179507
180667
|
"paragraph",
|
|
@@ -179609,7 +180769,11 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
179609
180769
|
"tables.setTablePadding": ["insertTableAt"],
|
|
179610
180770
|
"tables.setCellPadding": ["insertTableAt"],
|
|
179611
180771
|
"tables.setCellSpacing": ["insertTableAt"],
|
|
179612
|
-
"tables.clearCellSpacing": ["insertTableAt"]
|
|
180772
|
+
"tables.clearCellSpacing": ["insertTableAt"],
|
|
180773
|
+
"create.tableOfContents": ["insertTableOfContentsAt"],
|
|
180774
|
+
"toc.configure": ["setTableOfContentsInstructionById"],
|
|
180775
|
+
"toc.update": ["replaceTableOfContentsContentById"],
|
|
180776
|
+
"toc.remove": ["deleteTableOfContentsById"]
|
|
179613
180777
|
};
|
|
179614
180778
|
VALID_CAPABILITY_REASON_CODES = new Set(CAPABILITY_REASON_CODES2);
|
|
179615
180779
|
REQUIRED_HELPERS = {
|
|
@@ -180074,6 +181238,14 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
180074
181238
|
RELATIONSHIP_ID_PATTERN = /^rId(\d+)$/;
|
|
180075
181239
|
HEADER_FILE_PATTERN = /^word\/header(\d+)\.xml$/;
|
|
180076
181240
|
FOOTER_FILE_PATTERN = /^word\/footer(\d+)\.xml$/;
|
|
181241
|
+
NO_ENTRIES_PLACEHOLDER = [{
|
|
181242
|
+
type: "paragraph",
|
|
181243
|
+
attrs: { paragraphProperties: {} },
|
|
181244
|
+
content: [{
|
|
181245
|
+
type: "text",
|
|
181246
|
+
text: "No table of contents entries found."
|
|
181247
|
+
}]
|
|
181248
|
+
}];
|
|
180077
181249
|
empty_exports = /* @__PURE__ */ __export2({ default: () => null }, 1);
|
|
180078
181250
|
init_empty = __esmMin(() => {});
|
|
180079
181251
|
Editor = class Editor2 extends EventEmitter$1 {
|
|
@@ -197302,6 +198474,98 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
197302
198474
|
0
|
|
197303
198475
|
];
|
|
197304
198476
|
},
|
|
198477
|
+
addCommands() {
|
|
198478
|
+
const normalizeTocContent = (content3, schema) => {
|
|
198479
|
+
if (!Array.isArray(content3))
|
|
198480
|
+
return null;
|
|
198481
|
+
return content3.map((entry) => entry && typeof entry === "object" && typeof entry.type === "string" ? schema.nodeFromJSON(entry) : entry);
|
|
198482
|
+
};
|
|
198483
|
+
return {
|
|
198484
|
+
insertTableOfContentsAt: (options) => ({ tr, dispatch, state }) => {
|
|
198485
|
+
const { pos, instruction = "", sdBlockId = null, content: content3 } = options;
|
|
198486
|
+
const tocType = this.editor.schema.nodes.tableOfContents;
|
|
198487
|
+
if (!tocType)
|
|
198488
|
+
return false;
|
|
198489
|
+
const defaultContent = [this.editor.schema.nodes.paragraph.create({}, this.editor.schema.text("Update table of contents to populate entries."))];
|
|
198490
|
+
const materializedContent = normalizeTocContent(content3, state.schema) ?? defaultContent;
|
|
198491
|
+
const tocNode = tocType.create({
|
|
198492
|
+
instruction,
|
|
198493
|
+
sdBlockId
|
|
198494
|
+
}, materializedContent);
|
|
198495
|
+
try {
|
|
198496
|
+
if (dispatch)
|
|
198497
|
+
tr.insert(pos, tocNode);
|
|
198498
|
+
return true;
|
|
198499
|
+
} catch (error) {
|
|
198500
|
+
if (error instanceof RangeError)
|
|
198501
|
+
return false;
|
|
198502
|
+
throw error;
|
|
198503
|
+
}
|
|
198504
|
+
},
|
|
198505
|
+
setTableOfContentsInstructionById: (options) => ({ tr, dispatch, state }) => {
|
|
198506
|
+
const { sdBlockId, instruction, content: content3 } = options;
|
|
198507
|
+
let found2 = false;
|
|
198508
|
+
state.doc.descendants((node3, pos) => {
|
|
198509
|
+
if (found2)
|
|
198510
|
+
return false;
|
|
198511
|
+
if (node3.type.name === "tableOfContents" && node3.attrs.sdBlockId === sdBlockId) {
|
|
198512
|
+
if (dispatch) {
|
|
198513
|
+
tr.setNodeMarkup(pos, undefined, {
|
|
198514
|
+
...node3.attrs,
|
|
198515
|
+
instruction
|
|
198516
|
+
});
|
|
198517
|
+
const fragment = normalizeTocContent(content3, state.schema);
|
|
198518
|
+
if (fragment) {
|
|
198519
|
+
const from$12 = pos + 1;
|
|
198520
|
+
const to = pos + node3.nodeSize - 1;
|
|
198521
|
+
tr.replaceWith(from$12, to, fragment);
|
|
198522
|
+
}
|
|
198523
|
+
}
|
|
198524
|
+
found2 = true;
|
|
198525
|
+
return false;
|
|
198526
|
+
}
|
|
198527
|
+
return true;
|
|
198528
|
+
});
|
|
198529
|
+
return found2;
|
|
198530
|
+
},
|
|
198531
|
+
replaceTableOfContentsContentById: (options) => ({ tr, dispatch, state }) => {
|
|
198532
|
+
const { sdBlockId, content: content3 } = options;
|
|
198533
|
+
let found2 = false;
|
|
198534
|
+
state.doc.descendants((node3, pos) => {
|
|
198535
|
+
if (found2)
|
|
198536
|
+
return false;
|
|
198537
|
+
if (node3.type.name === "tableOfContents" && node3.attrs.sdBlockId === sdBlockId) {
|
|
198538
|
+
if (dispatch) {
|
|
198539
|
+
const from$12 = pos + 1;
|
|
198540
|
+
const to = pos + node3.nodeSize - 1;
|
|
198541
|
+
const fragment = normalizeTocContent(content3, state.schema) ?? [];
|
|
198542
|
+
tr.replaceWith(from$12, to, fragment);
|
|
198543
|
+
}
|
|
198544
|
+
found2 = true;
|
|
198545
|
+
return false;
|
|
198546
|
+
}
|
|
198547
|
+
return true;
|
|
198548
|
+
});
|
|
198549
|
+
return found2;
|
|
198550
|
+
},
|
|
198551
|
+
deleteTableOfContentsById: (options) => ({ tr, dispatch, state }) => {
|
|
198552
|
+
const { sdBlockId } = options;
|
|
198553
|
+
let found2 = false;
|
|
198554
|
+
state.doc.descendants((node3, pos) => {
|
|
198555
|
+
if (found2)
|
|
198556
|
+
return false;
|
|
198557
|
+
if (node3.type.name === "tableOfContents" && node3.attrs.sdBlockId === sdBlockId) {
|
|
198558
|
+
if (dispatch)
|
|
198559
|
+
tr.delete(pos, pos + node3.nodeSize);
|
|
198560
|
+
found2 = true;
|
|
198561
|
+
return false;
|
|
198562
|
+
}
|
|
198563
|
+
return true;
|
|
198564
|
+
});
|
|
198565
|
+
return found2;
|
|
198566
|
+
}
|
|
198567
|
+
};
|
|
198568
|
+
},
|
|
197305
198569
|
addAttributes() {
|
|
197306
198570
|
return {
|
|
197307
198571
|
instruction: {
|
|
@@ -202160,8 +203424,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
202160
203424
|
return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
|
|
202161
203425
|
};
|
|
202162
203426
|
stubFalse_default = stubFalse;
|
|
202163
|
-
freeExports$2 = typeof
|
|
202164
|
-
freeModule$2 = freeExports$2 && typeof
|
|
203427
|
+
freeExports$2 = typeof exports_src_taG73BWT_es == "object" && exports_src_taG73BWT_es && !exports_src_taG73BWT_es.nodeType && exports_src_taG73BWT_es;
|
|
203428
|
+
freeModule$2 = freeExports$2 && typeof module_src_taG73BWT_es == "object" && module_src_taG73BWT_es && !module_src_taG73BWT_es.nodeType && module_src_taG73BWT_es;
|
|
202165
203429
|
Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
|
|
202166
203430
|
isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
|
|
202167
203431
|
typedArrayTags = {};
|
|
@@ -202169,8 +203433,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
202169
203433
|
typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false;
|
|
202170
203434
|
_baseIsTypedArray_default = baseIsTypedArray;
|
|
202171
203435
|
_baseUnary_default = baseUnary;
|
|
202172
|
-
freeExports$1 = typeof
|
|
202173
|
-
freeModule$1 = freeExports$1 && typeof
|
|
203436
|
+
freeExports$1 = typeof exports_src_taG73BWT_es == "object" && exports_src_taG73BWT_es && !exports_src_taG73BWT_es.nodeType && exports_src_taG73BWT_es;
|
|
203437
|
+
freeModule$1 = freeExports$1 && typeof module_src_taG73BWT_es == "object" && module_src_taG73BWT_es && !module_src_taG73BWT_es.nodeType && module_src_taG73BWT_es;
|
|
202174
203438
|
freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
|
|
202175
203439
|
_nodeUtil_default = function() {
|
|
202176
203440
|
try {
|
|
@@ -202275,8 +203539,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
202275
203539
|
Stack.prototype.has = _stackHas_default;
|
|
202276
203540
|
Stack.prototype.set = _stackSet_default;
|
|
202277
203541
|
_Stack_default = Stack;
|
|
202278
|
-
freeExports = typeof
|
|
202279
|
-
freeModule = freeExports && typeof
|
|
203542
|
+
freeExports = typeof exports_src_taG73BWT_es == "object" && exports_src_taG73BWT_es && !exports_src_taG73BWT_es.nodeType && exports_src_taG73BWT_es;
|
|
203543
|
+
freeModule = freeExports && typeof module_src_taG73BWT_es == "object" && module_src_taG73BWT_es && !module_src_taG73BWT_es.nodeType && module_src_taG73BWT_es;
|
|
202280
203544
|
Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
|
|
202281
203545
|
allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
|
|
202282
203546
|
_cloneBuffer_default = cloneBuffer;
|
|
@@ -209928,8 +211192,8 @@ var init_zipper_Cnk_HjM2_es = __esm(() => {
|
|
|
209928
211192
|
|
|
209929
211193
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
209930
211194
|
var init_super_editor_es = __esm(() => {
|
|
209931
|
-
|
|
209932
|
-
|
|
211195
|
+
init_src_taG73BWT_es();
|
|
211196
|
+
init_SuperConverter_BSZgN87C_es();
|
|
209933
211197
|
init_jszip_ChlR43oI_es();
|
|
209934
211198
|
init_xml_js_DLE8mr0n_es();
|
|
209935
211199
|
init_constants_Dw0kAsLd_es();
|
|
@@ -210271,6 +211535,23 @@ function normalizeExcerpt2(text5) {
|
|
|
210271
211535
|
return trimmed.length ? trimmed : undefined;
|
|
210272
211536
|
}
|
|
210273
211537
|
|
|
211538
|
+
// ../../packages/super-editor/src/document-api-adapters/helpers/toc-node-id.ts
|
|
211539
|
+
function stableHash2(input2) {
|
|
211540
|
+
let hash2 = 2166136261;
|
|
211541
|
+
for (let index2 = 0;index2 < input2.length; index2 += 1) {
|
|
211542
|
+
hash2 ^= input2.charCodeAt(index2);
|
|
211543
|
+
hash2 = Math.imul(hash2, 16777619);
|
|
211544
|
+
}
|
|
211545
|
+
return (hash2 >>> 0).toString(16).padStart(8, "0");
|
|
211546
|
+
}
|
|
211547
|
+
function buildFallbackTocNodeId2(node3, pos) {
|
|
211548
|
+
const instruction = typeof node3.attrs?.instruction === "string" ? node3.attrs.instruction : "";
|
|
211549
|
+
return `toc-auto-${stableHash2(`${pos}:${instruction}`)}`;
|
|
211550
|
+
}
|
|
211551
|
+
function resolvePublicTocNodeId2(node3, pos) {
|
|
211552
|
+
return buildFallbackTocNodeId2(node3, pos);
|
|
211553
|
+
}
|
|
211554
|
+
|
|
210274
211555
|
// ../../packages/super-editor/src/document-api-adapters/errors.ts
|
|
210275
211556
|
var DocumentApiAdapterError3;
|
|
210276
211557
|
var init_errors3 = __esm(() => {
|
|
@@ -210329,6 +211610,8 @@ function mapBlockNodeType2(node3) {
|
|
|
210329
211610
|
return "tableCell";
|
|
210330
211611
|
case "image":
|
|
210331
211612
|
return "image";
|
|
211613
|
+
case "tableOfContents":
|
|
211614
|
+
return "tableOfContents";
|
|
210332
211615
|
case "structuredContentBlock":
|
|
210333
211616
|
case "sdt":
|
|
210334
211617
|
return "sdt";
|
|
@@ -210336,11 +211619,14 @@ function mapBlockNodeType2(node3) {
|
|
|
210336
211619
|
return;
|
|
210337
211620
|
}
|
|
210338
211621
|
}
|
|
210339
|
-
function resolveBlockNodeId2(node3) {
|
|
211622
|
+
function resolveBlockNodeId2(node3, pos, nodeType) {
|
|
210340
211623
|
if (node3.type.name === "paragraph") {
|
|
210341
211624
|
const attrs2 = node3.attrs;
|
|
210342
211625
|
return toId2(attrs2?.paraId) ?? toId2(attrs2?.sdBlockId);
|
|
210343
211626
|
}
|
|
211627
|
+
if (nodeType === "tableOfContents") {
|
|
211628
|
+
return resolvePublicTocNodeId2(node3, pos);
|
|
211629
|
+
}
|
|
210344
211630
|
const attrs = node3.attrs ?? {};
|
|
210345
211631
|
const typeName = node3.type.name;
|
|
210346
211632
|
if (typeName === "table" || typeName === "tableRow" || typeName === "tableCell" || typeName === "tableHeader") {
|
|
@@ -210380,7 +211666,7 @@ function buildBlockIndex2(editor) {
|
|
|
210380
211666
|
const nodeType = mapBlockNodeType2(node3);
|
|
210381
211667
|
if (!nodeType)
|
|
210382
211668
|
return;
|
|
210383
|
-
const nodeId = resolveBlockNodeId2(node3);
|
|
211669
|
+
const nodeId = resolveBlockNodeId2(node3, pos, nodeType);
|
|
210384
211670
|
if (!nodeId)
|
|
210385
211671
|
return;
|
|
210386
211672
|
const candidate = {
|
|
@@ -210483,6 +211769,7 @@ var init_node_address_resolver = __esm(() => {
|
|
|
210483
211769
|
"table",
|
|
210484
211770
|
"tableRow",
|
|
210485
211771
|
"tableCell",
|
|
211772
|
+
"tableOfContents",
|
|
210486
211773
|
"image",
|
|
210487
211774
|
"sdt"
|
|
210488
211775
|
]);
|
|
@@ -210730,6 +212017,199 @@ var init_adapter_utils = __esm(() => {
|
|
|
210730
212017
|
init_errors3();
|
|
210731
212018
|
});
|
|
210732
212019
|
|
|
212020
|
+
// ../../packages/super-editor/src/core/super-converter/field-references/shared/toc-switches.ts
|
|
212021
|
+
function parseLevelRange2(value) {
|
|
212022
|
+
const match2 = value.match(/^(\d+)-(\d+)$/);
|
|
212023
|
+
if (!match2)
|
|
212024
|
+
return;
|
|
212025
|
+
return { from: parseInt(match2[1], 10), to: parseInt(match2[2], 10) };
|
|
212026
|
+
}
|
|
212027
|
+
function parseCustomStyles2(value) {
|
|
212028
|
+
const entries = [];
|
|
212029
|
+
const parts = value.split(",");
|
|
212030
|
+
for (let i4 = 0;i4 < parts.length - 1; i4 += 2) {
|
|
212031
|
+
const styleName = parts[i4].trim();
|
|
212032
|
+
const level = parseInt(parts[i4 + 1].trim(), 10);
|
|
212033
|
+
if (styleName && !isNaN(level)) {
|
|
212034
|
+
entries.push({ styleName, level });
|
|
212035
|
+
}
|
|
212036
|
+
}
|
|
212037
|
+
return entries;
|
|
212038
|
+
}
|
|
212039
|
+
function parseTocInstruction2(instruction) {
|
|
212040
|
+
const source = {};
|
|
212041
|
+
const display = {};
|
|
212042
|
+
const preserved = {};
|
|
212043
|
+
const rawExtensions = [];
|
|
212044
|
+
let match2;
|
|
212045
|
+
while ((match2 = SWITCH_PATTERN2.exec(instruction)) !== null) {
|
|
212046
|
+
const switchChar = match2[1].toLowerCase();
|
|
212047
|
+
const arg = match2[2] ?? "";
|
|
212048
|
+
switch (switchChar) {
|
|
212049
|
+
case "o": {
|
|
212050
|
+
const range = parseLevelRange2(arg);
|
|
212051
|
+
if (range)
|
|
212052
|
+
source.outlineLevels = range;
|
|
212053
|
+
break;
|
|
212054
|
+
}
|
|
212055
|
+
case "u":
|
|
212056
|
+
source.useAppliedOutlineLevel = true;
|
|
212057
|
+
break;
|
|
212058
|
+
case "h":
|
|
212059
|
+
display.hyperlinks = true;
|
|
212060
|
+
break;
|
|
212061
|
+
case "z":
|
|
212062
|
+
display.hideInWebView = true;
|
|
212063
|
+
break;
|
|
212064
|
+
case "n": {
|
|
212065
|
+
const range = parseLevelRange2(arg);
|
|
212066
|
+
if (range)
|
|
212067
|
+
display.omitPageNumberLevels = range;
|
|
212068
|
+
break;
|
|
212069
|
+
}
|
|
212070
|
+
case "p":
|
|
212071
|
+
if (arg)
|
|
212072
|
+
display.separator = arg;
|
|
212073
|
+
break;
|
|
212074
|
+
case "t":
|
|
212075
|
+
if (arg)
|
|
212076
|
+
preserved.customStyles = parseCustomStyles2(arg);
|
|
212077
|
+
break;
|
|
212078
|
+
case "b":
|
|
212079
|
+
if (arg)
|
|
212080
|
+
preserved.bookmarkName = arg;
|
|
212081
|
+
break;
|
|
212082
|
+
case "f":
|
|
212083
|
+
if (arg)
|
|
212084
|
+
preserved.tcFieldIdentifier = arg;
|
|
212085
|
+
break;
|
|
212086
|
+
case "l": {
|
|
212087
|
+
const range = parseLevelRange2(arg);
|
|
212088
|
+
if (range)
|
|
212089
|
+
preserved.tcFieldLevels = range;
|
|
212090
|
+
break;
|
|
212091
|
+
}
|
|
212092
|
+
case "a":
|
|
212093
|
+
if (arg)
|
|
212094
|
+
preserved.captionType = arg;
|
|
212095
|
+
break;
|
|
212096
|
+
case "c":
|
|
212097
|
+
if (arg)
|
|
212098
|
+
preserved.seqFieldIdentifier = arg;
|
|
212099
|
+
break;
|
|
212100
|
+
case "d":
|
|
212101
|
+
if (arg)
|
|
212102
|
+
preserved.chapterSeparator = arg;
|
|
212103
|
+
break;
|
|
212104
|
+
case "s":
|
|
212105
|
+
if (arg)
|
|
212106
|
+
preserved.chapterNumberSource = arg;
|
|
212107
|
+
break;
|
|
212108
|
+
case "w":
|
|
212109
|
+
preserved.preserveTabEntries = true;
|
|
212110
|
+
break;
|
|
212111
|
+
default:
|
|
212112
|
+
rawExtensions.push(arg ? `\\${switchChar} "${arg}"` : `\\${switchChar}`);
|
|
212113
|
+
break;
|
|
212114
|
+
}
|
|
212115
|
+
}
|
|
212116
|
+
if (rawExtensions.length > 0) {
|
|
212117
|
+
preserved.rawExtensions = rawExtensions;
|
|
212118
|
+
}
|
|
212119
|
+
return { source, display, preserved };
|
|
212120
|
+
}
|
|
212121
|
+
function serializeTocInstruction2(config2) {
|
|
212122
|
+
const parts = ["TOC"];
|
|
212123
|
+
const { source, display, preserved } = config2;
|
|
212124
|
+
if (source.outlineLevels) {
|
|
212125
|
+
parts.push(`\\o "${source.outlineLevels.from}-${source.outlineLevels.to}"`);
|
|
212126
|
+
}
|
|
212127
|
+
if (source.useAppliedOutlineLevel) {
|
|
212128
|
+
parts.push("\\u");
|
|
212129
|
+
}
|
|
212130
|
+
if (preserved.customStyles?.length) {
|
|
212131
|
+
const pairs = preserved.customStyles.map((s2) => `${s2.styleName},${s2.level}`).join(",");
|
|
212132
|
+
parts.push(`\\t "${pairs}"`);
|
|
212133
|
+
}
|
|
212134
|
+
if (display.hyperlinks) {
|
|
212135
|
+
parts.push("\\h");
|
|
212136
|
+
}
|
|
212137
|
+
if (display.hideInWebView) {
|
|
212138
|
+
parts.push("\\z");
|
|
212139
|
+
}
|
|
212140
|
+
if (display.omitPageNumberLevels) {
|
|
212141
|
+
parts.push(`\\n "${display.omitPageNumberLevels.from}-${display.omitPageNumberLevels.to}"`);
|
|
212142
|
+
}
|
|
212143
|
+
if (display.separator) {
|
|
212144
|
+
parts.push(`\\p "${display.separator}"`);
|
|
212145
|
+
}
|
|
212146
|
+
if (preserved.captionType) {
|
|
212147
|
+
parts.push(`\\a "${preserved.captionType}"`);
|
|
212148
|
+
}
|
|
212149
|
+
if (preserved.bookmarkName) {
|
|
212150
|
+
parts.push(`\\b "${preserved.bookmarkName}"`);
|
|
212151
|
+
}
|
|
212152
|
+
if (preserved.seqFieldIdentifier) {
|
|
212153
|
+
parts.push(`\\c "${preserved.seqFieldIdentifier}"`);
|
|
212154
|
+
}
|
|
212155
|
+
if (preserved.chapterSeparator) {
|
|
212156
|
+
parts.push(`\\d "${preserved.chapterSeparator}"`);
|
|
212157
|
+
}
|
|
212158
|
+
if (preserved.tcFieldIdentifier) {
|
|
212159
|
+
parts.push(`\\f "${preserved.tcFieldIdentifier}"`);
|
|
212160
|
+
}
|
|
212161
|
+
if (preserved.tcFieldLevels) {
|
|
212162
|
+
parts.push(`\\l "${preserved.tcFieldLevels.from}-${preserved.tcFieldLevels.to}"`);
|
|
212163
|
+
}
|
|
212164
|
+
if (preserved.chapterNumberSource) {
|
|
212165
|
+
parts.push(`\\s "${preserved.chapterNumberSource}"`);
|
|
212166
|
+
}
|
|
212167
|
+
if (preserved.preserveTabEntries) {
|
|
212168
|
+
parts.push("\\w");
|
|
212169
|
+
}
|
|
212170
|
+
if (preserved.rawExtensions?.length) {
|
|
212171
|
+
parts.push(...preserved.rawExtensions);
|
|
212172
|
+
}
|
|
212173
|
+
return parts.join(" ");
|
|
212174
|
+
}
|
|
212175
|
+
function applyTocPatch2(existing, patch3) {
|
|
212176
|
+
return {
|
|
212177
|
+
source: {
|
|
212178
|
+
...existing.source,
|
|
212179
|
+
...patch3.outlineLevels !== undefined && { outlineLevels: patch3.outlineLevels },
|
|
212180
|
+
...patch3.useAppliedOutlineLevel !== undefined && { useAppliedOutlineLevel: patch3.useAppliedOutlineLevel }
|
|
212181
|
+
},
|
|
212182
|
+
display: {
|
|
212183
|
+
...existing.display,
|
|
212184
|
+
...patch3.hyperlinks !== undefined && { hyperlinks: patch3.hyperlinks },
|
|
212185
|
+
...patch3.hideInWebView !== undefined && { hideInWebView: patch3.hideInWebView },
|
|
212186
|
+
...patch3.omitPageNumberLevels !== undefined && { omitPageNumberLevels: patch3.omitPageNumberLevels },
|
|
212187
|
+
...patch3.separator !== undefined && { separator: patch3.separator }
|
|
212188
|
+
},
|
|
212189
|
+
preserved: { ...existing.preserved }
|
|
212190
|
+
};
|
|
212191
|
+
}
|
|
212192
|
+
function areTocConfigsEqual2(a2, b2) {
|
|
212193
|
+
return serializeTocInstruction2(a2) === serializeTocInstruction2(b2);
|
|
212194
|
+
}
|
|
212195
|
+
var DEFAULT_SOURCE, DEFAULT_DISPLAY, DEFAULT_TOC_CONFIG2, SWITCH_PATTERN2;
|
|
212196
|
+
var init_toc_switches = __esm(() => {
|
|
212197
|
+
DEFAULT_SOURCE = {
|
|
212198
|
+
outlineLevels: { from: 1, to: 3 },
|
|
212199
|
+
useAppliedOutlineLevel: true
|
|
212200
|
+
};
|
|
212201
|
+
DEFAULT_DISPLAY = {
|
|
212202
|
+
hyperlinks: true,
|
|
212203
|
+
hideInWebView: true
|
|
212204
|
+
};
|
|
212205
|
+
DEFAULT_TOC_CONFIG2 = {
|
|
212206
|
+
source: DEFAULT_SOURCE,
|
|
212207
|
+
display: DEFAULT_DISPLAY,
|
|
212208
|
+
preserved: {}
|
|
212209
|
+
};
|
|
212210
|
+
SWITCH_PATTERN2 = /\\([a-z])\s*(?:"([^"]*)")?/gi;
|
|
212211
|
+
});
|
|
212212
|
+
|
|
210733
212213
|
// ../../packages/super-editor/src/document-api-adapters/helpers/node-info-mapper.ts
|
|
210734
212214
|
function resolveMeasurement2(value) {
|
|
210735
212215
|
if (typeof value === "number")
|
|
@@ -210871,6 +212351,23 @@ function mapTableCellNode2(candidate) {
|
|
|
210871
212351
|
properties
|
|
210872
212352
|
};
|
|
210873
212353
|
}
|
|
212354
|
+
function mapTableOfContentsNode2(candidate) {
|
|
212355
|
+
const node3 = candidate.node;
|
|
212356
|
+
const instruction = node3.attrs?.instruction ?? "";
|
|
212357
|
+
const config2 = parseTocInstruction2(instruction);
|
|
212358
|
+
const entryCount = node3.childCount;
|
|
212359
|
+
return {
|
|
212360
|
+
nodeType: "tableOfContents",
|
|
212361
|
+
kind: "block",
|
|
212362
|
+
properties: {
|
|
212363
|
+
instruction,
|
|
212364
|
+
sourceConfig: config2.source,
|
|
212365
|
+
displayConfig: config2.display,
|
|
212366
|
+
preservedSwitches: config2.preserved,
|
|
212367
|
+
entryCount
|
|
212368
|
+
}
|
|
212369
|
+
};
|
|
212370
|
+
}
|
|
210874
212371
|
function buildImageInfo2(attrs, kind) {
|
|
210875
212372
|
const properties = {
|
|
210876
212373
|
src: attrs?.src ?? undefined,
|
|
@@ -211112,6 +212609,10 @@ function mapNodeInfo2(candidate, overrideType) {
|
|
|
211112
212609
|
const attrs = candidate.node?.attrs;
|
|
211113
212610
|
return buildSdtInfo2(attrs, kind);
|
|
211114
212611
|
}
|
|
212612
|
+
case "tableOfContents":
|
|
212613
|
+
if (kind !== "block")
|
|
212614
|
+
throw new DocumentApiAdapterError3("INVALID_TARGET", "TableOfContents nodes can only be resolved as blocks.");
|
|
212615
|
+
return mapTableOfContentsNode2(candidate);
|
|
211115
212616
|
case "hyperlink":
|
|
211116
212617
|
if (!isInlineCandidate2(candidate))
|
|
211117
212618
|
throw new DocumentApiAdapterError3("INVALID_TARGET", "Hyperlink nodes can only be resolved inline.");
|
|
@@ -211143,6 +212644,7 @@ function mapNodeInfo2(candidate, overrideType) {
|
|
|
211143
212644
|
var init_node_info_mapper = __esm(() => {
|
|
211144
212645
|
init_node_address_resolver();
|
|
211145
212646
|
init_errors3();
|
|
212647
|
+
init_toc_switches();
|
|
211146
212648
|
});
|
|
211147
212649
|
|
|
211148
212650
|
// ../../packages/super-editor/src/document-api-adapters/helpers/node-info-resolver.ts
|
|
@@ -212148,7 +213650,11 @@ var init_capabilities_adapter = __esm(() => {
|
|
|
212148
213650
|
"tables.setTablePadding": ["insertTableAt"],
|
|
212149
213651
|
"tables.setCellPadding": ["insertTableAt"],
|
|
212150
213652
|
"tables.setCellSpacing": ["insertTableAt"],
|
|
212151
|
-
"tables.clearCellSpacing": ["insertTableAt"]
|
|
213653
|
+
"tables.clearCellSpacing": ["insertTableAt"],
|
|
213654
|
+
"create.tableOfContents": ["insertTableOfContentsAt"],
|
|
213655
|
+
"toc.configure": ["setTableOfContentsInstructionById"],
|
|
213656
|
+
"toc.update": ["replaceTableOfContentsContentById"],
|
|
213657
|
+
"toc.remove": ["deleteTableOfContentsById"]
|
|
212152
213658
|
};
|
|
212153
213659
|
VALID_CAPABILITY_REASON_CODES2 = new Set(CAPABILITY_REASON_CODES);
|
|
212154
213660
|
REQUIRED_HELPERS2 = {
|
|
@@ -255017,7 +256523,8 @@ var XML_NODE_NAME24 = "sd:tableOfContents", SD_NODE_NAME20 = "tableOfContents",
|
|
|
255017
256523
|
return processedNode;
|
|
255018
256524
|
}, decode62 = (params3) => {
|
|
255019
256525
|
const { node: node4 } = params3;
|
|
255020
|
-
const
|
|
256526
|
+
const tocContent = Array.isArray(node4.content) ? node4.content : [];
|
|
256527
|
+
const contentNodes = tocContent.map((n) => exportSchemaToJson2({ ...params3, node: n }));
|
|
255021
256528
|
const tocBeginElements = [
|
|
255022
256529
|
{
|
|
255023
256530
|
name: "w:r",
|
|
@@ -273617,6 +275124,362 @@ var init_tables_wrappers = __esm(() => {
|
|
|
273617
275124
|
init_tables_adapter();
|
|
273618
275125
|
});
|
|
273619
275126
|
|
|
275127
|
+
// ../../packages/super-editor/src/document-api-adapters/helpers/toc-resolver.ts
|
|
275128
|
+
function findAllTocNodes2(doc4) {
|
|
275129
|
+
const results = [];
|
|
275130
|
+
doc4.descendants((node4, pos) => {
|
|
275131
|
+
if (node4.type.name === "tableOfContents") {
|
|
275132
|
+
const sdBlockId = node4.attrs?.sdBlockId;
|
|
275133
|
+
const nodeId = resolvePublicTocNodeId2(node4, pos);
|
|
275134
|
+
const commandNodeId = sdBlockId;
|
|
275135
|
+
results.push({ node: node4, pos, nodeId, commandNodeId });
|
|
275136
|
+
return false;
|
|
275137
|
+
}
|
|
275138
|
+
return true;
|
|
275139
|
+
});
|
|
275140
|
+
return results;
|
|
275141
|
+
}
|
|
275142
|
+
function resolveTocTarget2(doc4, target) {
|
|
275143
|
+
const all6 = findAllTocNodes2(doc4);
|
|
275144
|
+
const found3 = all6.find((t) => t.nodeId === target.nodeId || t.commandNodeId === target.nodeId);
|
|
275145
|
+
if (!found3) {
|
|
275146
|
+
throw new DocumentApiAdapterError3("TARGET_NOT_FOUND", `Table of contents with nodeId "${target.nodeId}" not found.`);
|
|
275147
|
+
}
|
|
275148
|
+
return found3;
|
|
275149
|
+
}
|
|
275150
|
+
function resolvePostMutationTocId2(doc4, sdBlockId) {
|
|
275151
|
+
const all6 = findAllTocNodes2(doc4);
|
|
275152
|
+
const found3 = all6.find((t) => t.commandNodeId === sdBlockId);
|
|
275153
|
+
return found3?.nodeId ?? sdBlockId;
|
|
275154
|
+
}
|
|
275155
|
+
function extractTocInfo2(node4) {
|
|
275156
|
+
const instruction = node4.attrs?.instruction ?? "";
|
|
275157
|
+
const config33 = parseTocInstruction2(instruction);
|
|
275158
|
+
return {
|
|
275159
|
+
nodeType: "tableOfContents",
|
|
275160
|
+
kind: "block",
|
|
275161
|
+
properties: {
|
|
275162
|
+
instruction,
|
|
275163
|
+
sourceConfig: config33.source,
|
|
275164
|
+
displayConfig: config33.display,
|
|
275165
|
+
preservedSwitches: config33.preserved,
|
|
275166
|
+
entryCount: node4.childCount
|
|
275167
|
+
}
|
|
275168
|
+
};
|
|
275169
|
+
}
|
|
275170
|
+
function buildTocDiscoveryItem2(resolved, evaluatedRevision) {
|
|
275171
|
+
const instruction = resolved.node.attrs?.instruction ?? "";
|
|
275172
|
+
const config33 = parseTocInstruction2(instruction);
|
|
275173
|
+
const address2 = {
|
|
275174
|
+
kind: "block",
|
|
275175
|
+
nodeType: "tableOfContents",
|
|
275176
|
+
nodeId: resolved.nodeId
|
|
275177
|
+
};
|
|
275178
|
+
const handle4 = buildResolvedHandle(resolved.nodeId, "stable", "tableOfContents");
|
|
275179
|
+
const domain3 = {
|
|
275180
|
+
address: address2,
|
|
275181
|
+
instruction,
|
|
275182
|
+
sourceConfig: config33.source,
|
|
275183
|
+
displayConfig: config33.display,
|
|
275184
|
+
preserved: config33.preserved,
|
|
275185
|
+
entryCount: resolved.node.childCount
|
|
275186
|
+
};
|
|
275187
|
+
const id2 = `toc:${resolved.nodeId}:${evaluatedRevision}`;
|
|
275188
|
+
return buildDiscoveryItem(id2, handle4, domain3);
|
|
275189
|
+
}
|
|
275190
|
+
var init_toc_resolver = __esm(() => {
|
|
275191
|
+
init_src();
|
|
275192
|
+
init_toc_switches();
|
|
275193
|
+
init_errors3();
|
|
275194
|
+
});
|
|
275195
|
+
|
|
275196
|
+
// ../../packages/super-editor/src/document-api-adapters/helpers/toc-entry-builder.ts
|
|
275197
|
+
function collectHeadingSources2(doc4, config33) {
|
|
275198
|
+
const sources = [];
|
|
275199
|
+
const { outlineLevels } = config33.source;
|
|
275200
|
+
const useApplied = config33.source.useAppliedOutlineLevel ?? false;
|
|
275201
|
+
doc4.descendants((node4, _pos) => {
|
|
275202
|
+
if (node4.type.name === "tableOfContents")
|
|
275203
|
+
return false;
|
|
275204
|
+
if (node4.type.name === "paragraph") {
|
|
275205
|
+
const attrs = node4.attrs;
|
|
275206
|
+
const paragraphProps = attrs?.paragraphProperties;
|
|
275207
|
+
const styleId = paragraphProps?.styleId;
|
|
275208
|
+
const sdBlockId = attrs?.sdBlockId ?? attrs?.paraId;
|
|
275209
|
+
if (!sdBlockId)
|
|
275210
|
+
return true;
|
|
275211
|
+
const headingLevel = getHeadingLevel2(styleId);
|
|
275212
|
+
if (headingLevel != null && outlineLevels) {
|
|
275213
|
+
if (headingLevel >= outlineLevels.from && headingLevel <= outlineLevels.to) {
|
|
275214
|
+
sources.push({ text: flattenText2(node4), level: headingLevel, sdBlockId });
|
|
275215
|
+
return false;
|
|
275216
|
+
}
|
|
275217
|
+
}
|
|
275218
|
+
if (useApplied && outlineLevels) {
|
|
275219
|
+
const rawOutlineLevel = paragraphProps?.outlineLevel;
|
|
275220
|
+
if (rawOutlineLevel != null) {
|
|
275221
|
+
const tocLevel = rawOutlineLevel + 1;
|
|
275222
|
+
if (tocLevel >= outlineLevels.from && tocLevel <= outlineLevels.to) {
|
|
275223
|
+
sources.push({ text: flattenText2(node4), level: tocLevel, sdBlockId });
|
|
275224
|
+
return false;
|
|
275225
|
+
}
|
|
275226
|
+
}
|
|
275227
|
+
}
|
|
275228
|
+
}
|
|
275229
|
+
return true;
|
|
275230
|
+
});
|
|
275231
|
+
return sources;
|
|
275232
|
+
}
|
|
275233
|
+
function flattenText2(node4) {
|
|
275234
|
+
let text9 = "";
|
|
275235
|
+
node4.descendants((child) => {
|
|
275236
|
+
if (child.isText)
|
|
275237
|
+
text9 += child.text;
|
|
275238
|
+
return true;
|
|
275239
|
+
});
|
|
275240
|
+
return text9;
|
|
275241
|
+
}
|
|
275242
|
+
function buildTocEntryParagraphs2(sources, config33) {
|
|
275243
|
+
return sources.map((source) => buildEntryParagraph2(source, config33));
|
|
275244
|
+
}
|
|
275245
|
+
function buildEntryParagraph2(source, config33) {
|
|
275246
|
+
const { display } = config33;
|
|
275247
|
+
const content5 = [];
|
|
275248
|
+
const textNode = {
|
|
275249
|
+
type: "text",
|
|
275250
|
+
text: source.text || " "
|
|
275251
|
+
};
|
|
275252
|
+
if (display.hyperlinks) {
|
|
275253
|
+
textNode.marks = [
|
|
275254
|
+
{
|
|
275255
|
+
type: "link",
|
|
275256
|
+
attrs: {
|
|
275257
|
+
anchor: source.sdBlockId,
|
|
275258
|
+
rId: null,
|
|
275259
|
+
history: true
|
|
275260
|
+
}
|
|
275261
|
+
}
|
|
275262
|
+
];
|
|
275263
|
+
}
|
|
275264
|
+
content5.push(textNode);
|
|
275265
|
+
const omitRange = display.omitPageNumberLevels;
|
|
275266
|
+
const omitPageNumber = omitRange && source.level >= omitRange.from && source.level <= omitRange.to;
|
|
275267
|
+
if (!omitPageNumber) {
|
|
275268
|
+
if (display.separator) {
|
|
275269
|
+
content5.push({ type: "text", text: display.separator });
|
|
275270
|
+
} else {
|
|
275271
|
+
content5.push({ type: "tab" });
|
|
275272
|
+
}
|
|
275273
|
+
content5.push({ type: "text", text: "0" });
|
|
275274
|
+
}
|
|
275275
|
+
return {
|
|
275276
|
+
type: "paragraph",
|
|
275277
|
+
attrs: {
|
|
275278
|
+
paragraphProperties: {
|
|
275279
|
+
styleId: `TOC${source.level}`
|
|
275280
|
+
},
|
|
275281
|
+
sdBlockId: undefined
|
|
275282
|
+
},
|
|
275283
|
+
content: content5
|
|
275284
|
+
};
|
|
275285
|
+
}
|
|
275286
|
+
var init_toc_entry_builder = __esm(() => {
|
|
275287
|
+
init_node_address_resolver();
|
|
275288
|
+
});
|
|
275289
|
+
|
|
275290
|
+
// ../../packages/super-editor/src/document-api-adapters/plan-engine/toc-wrappers.ts
|
|
275291
|
+
function tocListWrapper2(editor, query2) {
|
|
275292
|
+
const doc4 = editor.state.doc;
|
|
275293
|
+
const revision = getRevision2(editor);
|
|
275294
|
+
const tocNodes = findAllTocNodes2(doc4);
|
|
275295
|
+
const allItems = tocNodes.map((resolved) => buildTocDiscoveryItem2(resolved, revision));
|
|
275296
|
+
const { total, items: paged } = paginate2(allItems, query2?.offset, query2?.limit);
|
|
275297
|
+
const effectiveLimit = query2?.limit ?? total;
|
|
275298
|
+
return buildDiscoveryResult({
|
|
275299
|
+
evaluatedRevision: revision,
|
|
275300
|
+
total,
|
|
275301
|
+
items: paged,
|
|
275302
|
+
page: { limit: effectiveLimit, offset: query2?.offset ?? 0, returned: paged.length }
|
|
275303
|
+
});
|
|
275304
|
+
}
|
|
275305
|
+
function tocGetWrapper2(editor, input2) {
|
|
275306
|
+
const resolved = resolveTocTarget2(editor.state.doc, input2.target);
|
|
275307
|
+
return extractTocInfo2(resolved.node);
|
|
275308
|
+
}
|
|
275309
|
+
function buildTocAddress2(nodeId) {
|
|
275310
|
+
return { kind: "block", nodeType: "tableOfContents", nodeId };
|
|
275311
|
+
}
|
|
275312
|
+
function tocSuccess2(nodeId) {
|
|
275313
|
+
return { success: true, toc: buildTocAddress2(nodeId) };
|
|
275314
|
+
}
|
|
275315
|
+
function tocFailure2(code10, message) {
|
|
275316
|
+
return { success: false, failure: { code: code10, message } };
|
|
275317
|
+
}
|
|
275318
|
+
function toTocEditorCommand2(command2) {
|
|
275319
|
+
return command2;
|
|
275320
|
+
}
|
|
275321
|
+
function runTocAction2(editor, action, expectedRevision) {
|
|
275322
|
+
return executeDomainCommand2(editor, () => {
|
|
275323
|
+
const result = action();
|
|
275324
|
+
if (result)
|
|
275325
|
+
clearIndexCache2(editor);
|
|
275326
|
+
return result;
|
|
275327
|
+
}, { expectedRevision });
|
|
275328
|
+
}
|
|
275329
|
+
function runTocCommand2(editor, command2, args3, expectedRevision) {
|
|
275330
|
+
const executeCommand = toTocEditorCommand2(command2);
|
|
275331
|
+
return runTocAction2(editor, () => executeCommand(args3), expectedRevision);
|
|
275332
|
+
}
|
|
275333
|
+
function receiptApplied2(receipt2) {
|
|
275334
|
+
return receipt2.steps[0]?.effect === "changed";
|
|
275335
|
+
}
|
|
275336
|
+
function isTocContentUnchanged2(existingNode, newContent) {
|
|
275337
|
+
if (existingNode.childCount !== newContent.length)
|
|
275338
|
+
return false;
|
|
275339
|
+
const existingEntries = [];
|
|
275340
|
+
let canSerialize = true;
|
|
275341
|
+
existingNode.forEach((child) => {
|
|
275342
|
+
if (!canSerialize)
|
|
275343
|
+
return;
|
|
275344
|
+
if (typeof child.toJSON !== "function") {
|
|
275345
|
+
canSerialize = false;
|
|
275346
|
+
return;
|
|
275347
|
+
}
|
|
275348
|
+
const json = child.toJSON();
|
|
275349
|
+
if (json.attrs)
|
|
275350
|
+
delete json.attrs.sdBlockId;
|
|
275351
|
+
existingEntries.push(json);
|
|
275352
|
+
});
|
|
275353
|
+
if (!canSerialize)
|
|
275354
|
+
return false;
|
|
275355
|
+
const normalized = newContent.map((entry) => {
|
|
275356
|
+
const clone = JSON.parse(JSON.stringify(entry));
|
|
275357
|
+
if (clone.attrs)
|
|
275358
|
+
delete clone.attrs.sdBlockId;
|
|
275359
|
+
return clone;
|
|
275360
|
+
});
|
|
275361
|
+
return JSON.stringify(existingEntries) === JSON.stringify(normalized);
|
|
275362
|
+
}
|
|
275363
|
+
function materializeTocContent2(doc4, config33) {
|
|
275364
|
+
const headingSources = collectHeadingSources2(doc4, config33);
|
|
275365
|
+
const entryParagraphs = buildTocEntryParagraphs2(headingSources, config33);
|
|
275366
|
+
return entryParagraphs.length > 0 ? entryParagraphs : NO_ENTRIES_PLACEHOLDER2;
|
|
275367
|
+
}
|
|
275368
|
+
function tocConfigureWrapper2(editor, input2, options) {
|
|
275369
|
+
rejectTrackedMode2("toc.configure", options);
|
|
275370
|
+
const command2 = requireEditorCommand2(editor.commands?.setTableOfContentsInstructionById, "toc.configure");
|
|
275371
|
+
const resolved = resolveTocTarget2(editor.state.doc, input2.target);
|
|
275372
|
+
const currentConfig = parseTocInstruction2(resolved.node.attrs?.instruction ?? "");
|
|
275373
|
+
const patched = applyTocPatch2(currentConfig, input2.patch);
|
|
275374
|
+
const nextContent = materializeTocContent2(editor.state.doc, patched);
|
|
275375
|
+
if (areTocConfigsEqual2(currentConfig, patched)) {
|
|
275376
|
+
return tocFailure2("NO_OP", "Configuration patch produced no change.");
|
|
275377
|
+
}
|
|
275378
|
+
if (options?.dryRun) {
|
|
275379
|
+
return tocSuccess2(resolved.nodeId);
|
|
275380
|
+
}
|
|
275381
|
+
const shouldRefreshContent = !isTocContentUnchanged2(resolved.node, nextContent);
|
|
275382
|
+
const commandNodeId = resolved.commandNodeId ?? resolved.nodeId;
|
|
275383
|
+
const receipt2 = runTocCommand2(editor, command2, {
|
|
275384
|
+
sdBlockId: commandNodeId,
|
|
275385
|
+
instruction: serializeTocInstruction2(patched),
|
|
275386
|
+
...shouldRefreshContent ? { content: nextContent } : {}
|
|
275387
|
+
}, options?.expectedRevision);
|
|
275388
|
+
if (!receiptApplied2(receipt2)) {
|
|
275389
|
+
return tocFailure2("NO_OP", "Configuration change could not be applied.");
|
|
275390
|
+
}
|
|
275391
|
+
const postMutationId = resolvePostMutationTocId2(editor.state.doc, commandNodeId);
|
|
275392
|
+
return tocSuccess2(postMutationId);
|
|
275393
|
+
}
|
|
275394
|
+
function tocUpdateWrapper2(editor, input2, options) {
|
|
275395
|
+
rejectTrackedMode2("toc.update", options);
|
|
275396
|
+
const command2 = requireEditorCommand2(editor.commands?.replaceTableOfContentsContentById, "toc.update");
|
|
275397
|
+
const resolved = resolveTocTarget2(editor.state.doc, input2.target);
|
|
275398
|
+
const config33 = parseTocInstruction2(resolved.node.attrs?.instruction ?? "");
|
|
275399
|
+
const content5 = materializeTocContent2(editor.state.doc, config33);
|
|
275400
|
+
if (isTocContentUnchanged2(resolved.node, content5)) {
|
|
275401
|
+
return tocFailure2("NO_OP", "TOC update produced no change.");
|
|
275402
|
+
}
|
|
275403
|
+
if (options?.dryRun) {
|
|
275404
|
+
return tocSuccess2(resolved.nodeId);
|
|
275405
|
+
}
|
|
275406
|
+
const receipt2 = runTocCommand2(editor, command2, {
|
|
275407
|
+
sdBlockId: resolved.commandNodeId ?? resolved.nodeId,
|
|
275408
|
+
content: content5
|
|
275409
|
+
}, options?.expectedRevision);
|
|
275410
|
+
return receiptApplied2(receipt2) ? tocSuccess2(resolved.nodeId) : tocFailure2("NO_OP", "TOC update produced no change.");
|
|
275411
|
+
}
|
|
275412
|
+
function tocRemoveWrapper2(editor, input2, options) {
|
|
275413
|
+
rejectTrackedMode2("toc.remove", options);
|
|
275414
|
+
const command2 = requireEditorCommand2(editor.commands?.deleteTableOfContentsById, "toc.remove");
|
|
275415
|
+
const resolved = resolveTocTarget2(editor.state.doc, input2.target);
|
|
275416
|
+
if (options?.dryRun) {
|
|
275417
|
+
return tocSuccess2(resolved.nodeId);
|
|
275418
|
+
}
|
|
275419
|
+
const receipt2 = runTocCommand2(editor, command2, {
|
|
275420
|
+
sdBlockId: resolved.commandNodeId ?? resolved.nodeId
|
|
275421
|
+
}, options?.expectedRevision);
|
|
275422
|
+
return receiptApplied2(receipt2) ? tocSuccess2(resolved.nodeId) : tocFailure2("NO_OP", "TOC removal produced no change.");
|
|
275423
|
+
}
|
|
275424
|
+
function createTableOfContentsWrapper2(editor, input2, options) {
|
|
275425
|
+
rejectTrackedMode2("create.tableOfContents", options);
|
|
275426
|
+
const command2 = requireEditorCommand2(editor.commands?.insertTableOfContentsAt, "create.tableOfContents");
|
|
275427
|
+
const at = input2.at ?? { kind: "documentEnd" };
|
|
275428
|
+
let pos;
|
|
275429
|
+
if (at.kind === "documentStart") {
|
|
275430
|
+
pos = 0;
|
|
275431
|
+
} else if (at.kind === "documentEnd") {
|
|
275432
|
+
pos = editor.state.doc.content.size;
|
|
275433
|
+
} else {
|
|
275434
|
+
pos = resolveBlockInsertionPos2(editor, at.target.nodeId, at.kind);
|
|
275435
|
+
}
|
|
275436
|
+
const config33 = input2.config ? applyTocPatch2(DEFAULT_TOC_CONFIG2, input2.config) : DEFAULT_TOC_CONFIG2;
|
|
275437
|
+
const instruction = serializeTocInstruction2(config33);
|
|
275438
|
+
const content5 = materializeTocContent2(editor.state.doc, config33);
|
|
275439
|
+
const sdBlockId = v42();
|
|
275440
|
+
if (options?.dryRun) {
|
|
275441
|
+
return { success: true, toc: buildTocAddress2("(dry-run)") };
|
|
275442
|
+
}
|
|
275443
|
+
const receipt2 = runTocCommand2(editor, command2, {
|
|
275444
|
+
pos,
|
|
275445
|
+
instruction,
|
|
275446
|
+
sdBlockId,
|
|
275447
|
+
content: content5
|
|
275448
|
+
}, options?.expectedRevision);
|
|
275449
|
+
if (!receiptApplied2(receipt2)) {
|
|
275450
|
+
return {
|
|
275451
|
+
success: false,
|
|
275452
|
+
failure: {
|
|
275453
|
+
code: "INVALID_INSERTION_CONTEXT",
|
|
275454
|
+
message: "Table of contents could not be inserted at the requested location."
|
|
275455
|
+
}
|
|
275456
|
+
};
|
|
275457
|
+
}
|
|
275458
|
+
const postMutationId = resolvePostMutationTocId2(editor.state.doc, sdBlockId);
|
|
275459
|
+
return { success: true, toc: buildTocAddress2(postMutationId) };
|
|
275460
|
+
}
|
|
275461
|
+
var NO_ENTRIES_PLACEHOLDER2;
|
|
275462
|
+
var init_toc_wrappers = __esm(() => {
|
|
275463
|
+
init_wrapper();
|
|
275464
|
+
init_src();
|
|
275465
|
+
init_toc_switches();
|
|
275466
|
+
init_toc_resolver();
|
|
275467
|
+
init_toc_entry_builder();
|
|
275468
|
+
init_adapter_utils();
|
|
275469
|
+
init_revision_tracker();
|
|
275470
|
+
init_plan_wrappers();
|
|
275471
|
+
init_mutation_helpers();
|
|
275472
|
+
init_index_cache();
|
|
275473
|
+
init_create_insertion();
|
|
275474
|
+
NO_ENTRIES_PLACEHOLDER2 = [
|
|
275475
|
+
{
|
|
275476
|
+
type: "paragraph",
|
|
275477
|
+
attrs: { paragraphProperties: {} },
|
|
275478
|
+
content: [{ type: "text", text: "No table of contents entries found." }]
|
|
275479
|
+
}
|
|
275480
|
+
];
|
|
275481
|
+
});
|
|
275482
|
+
|
|
273620
275483
|
// ../../packages/super-editor/src/document-api-adapters/assemble-adapters.ts
|
|
273621
275484
|
function assembleDocumentApiAdapters2(editor) {
|
|
273622
275485
|
registerBuiltInExecutors2();
|
|
@@ -273666,7 +275529,8 @@ function assembleDocumentApiAdapters2(editor) {
|
|
|
273666
275529
|
paragraph: (input2, options) => createParagraphWrapper2(editor, input2, options),
|
|
273667
275530
|
heading: (input2, options) => createHeadingWrapper2(editor, input2, options),
|
|
273668
275531
|
table: (input2, options) => createTableWrapper2(editor, input2, options),
|
|
273669
|
-
sectionBreak: (input2, options) => createSectionBreakAdapter2(editor, input2, options)
|
|
275532
|
+
sectionBreak: (input2, options) => createSectionBreakAdapter2(editor, input2, options),
|
|
275533
|
+
tableOfContents: (input2, options) => createTableOfContentsWrapper2(editor, input2, options)
|
|
273670
275534
|
},
|
|
273671
275535
|
lists: {
|
|
273672
275536
|
list: (query2) => listsListWrapper2(editor, query2),
|
|
@@ -273739,6 +275603,13 @@ function assembleDocumentApiAdapters2(editor) {
|
|
|
273739
275603
|
getCells: (input2) => tablesGetCellsAdapter2(editor, input2),
|
|
273740
275604
|
getProperties: (input2) => tablesGetPropertiesAdapter2(editor, input2)
|
|
273741
275605
|
},
|
|
275606
|
+
toc: {
|
|
275607
|
+
list: (query2) => tocListWrapper2(editor, query2),
|
|
275608
|
+
get: (input2) => tocGetWrapper2(editor, input2),
|
|
275609
|
+
configure: (input2, options) => tocConfigureWrapper2(editor, input2, options),
|
|
275610
|
+
update: (input2, options) => tocUpdateWrapper2(editor, input2, options),
|
|
275611
|
+
remove: (input2, options) => tocRemoveWrapper2(editor, input2, options)
|
|
275612
|
+
},
|
|
273742
275613
|
query: {
|
|
273743
275614
|
match: (input2) => queryMatchAdapter2(editor, input2)
|
|
273744
275615
|
},
|
|
@@ -273769,6 +275640,7 @@ var init_assemble_adapters = __esm(() => {
|
|
|
273769
275640
|
init_sections_adapter();
|
|
273770
275641
|
init_tables_wrappers();
|
|
273771
275642
|
init_tables_adapter();
|
|
275643
|
+
init_toc_wrappers();
|
|
273772
275644
|
});
|
|
273773
275645
|
|
|
273774
275646
|
// ../../packages/super-editor/src/document-api-adapters/index.ts
|
|
@@ -276853,6 +278725,25 @@ function mapBlocksError(operationId, error, code10) {
|
|
|
276853
278725
|
return error;
|
|
276854
278726
|
return new CliError("COMMAND_FAILED", message, { operationId, details });
|
|
276855
278727
|
}
|
|
278728
|
+
function mapTocError(operationId, error, code10) {
|
|
278729
|
+
const message = extractErrorMessage(error);
|
|
278730
|
+
const details = extractErrorDetails(error);
|
|
278731
|
+
const planEngineError = tryMapPlanEngineError(operationId, error, code10);
|
|
278732
|
+
if (planEngineError)
|
|
278733
|
+
return planEngineError;
|
|
278734
|
+
if (code10 === "TARGET_NOT_FOUND") {
|
|
278735
|
+
return new CliError("TARGET_NOT_FOUND", message, { operationId, details });
|
|
278736
|
+
}
|
|
278737
|
+
if (code10 === "INVALID_TARGET") {
|
|
278738
|
+
return new CliError("INVALID_ARGUMENT", message, { operationId, details });
|
|
278739
|
+
}
|
|
278740
|
+
if (code10 === "COMMAND_UNAVAILABLE") {
|
|
278741
|
+
return new CliError("COMMAND_FAILED", message, { operationId, details });
|
|
278742
|
+
}
|
|
278743
|
+
if (error instanceof CliError)
|
|
278744
|
+
return error;
|
|
278745
|
+
return new CliError("COMMAND_FAILED", message, { operationId, details });
|
|
278746
|
+
}
|
|
276856
278747
|
function mapQueryError(operationId, error, code10) {
|
|
276857
278748
|
const message = extractErrorMessage(error);
|
|
276858
278749
|
const details = extractErrorDetails(error);
|
|
@@ -276871,11 +278762,14 @@ function tryMapPlanEngineError(operationId, error, code10) {
|
|
|
276871
278762
|
details: extractErrorDetails(error)
|
|
276872
278763
|
});
|
|
276873
278764
|
}
|
|
278765
|
+
function resolveOperationFamily(operationId) {
|
|
278766
|
+
return OPERATION_FAMILY[operationId] ?? "general";
|
|
278767
|
+
}
|
|
276874
278768
|
function mapInvokeError(operationId, error) {
|
|
276875
278769
|
if (error instanceof CliError)
|
|
276876
278770
|
return error;
|
|
276877
278771
|
const code10 = extractErrorCode(error);
|
|
276878
|
-
const family =
|
|
278772
|
+
const family = resolveOperationFamily(operationId);
|
|
276879
278773
|
return FAMILY_MAPPERS[family](operationId, error, code10);
|
|
276880
278774
|
}
|
|
276881
278775
|
function isReceiptLike(value) {
|
|
@@ -276889,7 +278783,7 @@ function mapFailedReceipt(operationId, result) {
|
|
|
276889
278783
|
if (result.success)
|
|
276890
278784
|
return null;
|
|
276891
278785
|
const failure = result.failure;
|
|
276892
|
-
const family =
|
|
278786
|
+
const family = resolveOperationFamily(operationId);
|
|
276893
278787
|
if (!failure) {
|
|
276894
278788
|
return new CliError("COMMAND_FAILED", `${operationId}: operation failed.`, { operationId });
|
|
276895
278789
|
}
|
|
@@ -276949,6 +278843,15 @@ function mapFailedReceipt(operationId, result) {
|
|
|
276949
278843
|
}
|
|
276950
278844
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure });
|
|
276951
278845
|
}
|
|
278846
|
+
if (family === "toc") {
|
|
278847
|
+
if (failureCode === "TARGET_NOT_FOUND") {
|
|
278848
|
+
return new CliError("TARGET_NOT_FOUND", failureMessage, { operationId, failure });
|
|
278849
|
+
}
|
|
278850
|
+
if (failureCode === "INVALID_TARGET") {
|
|
278851
|
+
return new CliError("INVALID_ARGUMENT", failureMessage, { operationId, failure });
|
|
278852
|
+
}
|
|
278853
|
+
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure });
|
|
278854
|
+
}
|
|
276952
278855
|
if (family === "tables") {
|
|
276953
278856
|
if (failureCode === "TARGET_NOT_FOUND") {
|
|
276954
278857
|
return new CliError("TARGET_NOT_FOUND", failureMessage, { operationId, failure });
|
|
@@ -276985,6 +278888,7 @@ var init_error_mapping = __esm(() => {
|
|
|
276985
278888
|
comments: mapCommentsError,
|
|
276986
278889
|
lists: mapListsError,
|
|
276987
278890
|
tables: mapTablesError,
|
|
278891
|
+
toc: mapTocError,
|
|
276988
278892
|
textMutation: mapTextMutationError,
|
|
276989
278893
|
create: mapCreateError,
|
|
276990
278894
|
blocks: mapBlocksError,
|