@superdoc-dev/cli 0.2.0-next.2 → 0.2.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +662 -380
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -534,19 +534,12 @@ function mutationOperation(options) {
|
|
|
534
534
|
function projectFromDefinitions(fn) {
|
|
535
535
|
return Object.fromEntries(OPERATION_IDS.map((id) => [id, fn(id, OPERATION_DEFINITIONS[id])]));
|
|
536
536
|
}
|
|
537
|
-
var NONE_FAILURES, NONE_THROWS, T_NOT_FOUND,
|
|
537
|
+
var NONE_FAILURES, NONE_THROWS, T_NOT_FOUND, T_NOT_FOUND_CAPABLE, T_PLAN_ENGINE, T_QUERY_MATCH, OPERATION_DEFINITIONS, OPERATION_IDS, SINGLETON_OPERATION_IDS, NAMESPACED_OPERATION_IDS;
|
|
538
538
|
var init_operation_definitions = __esm(() => {
|
|
539
539
|
NONE_FAILURES = [];
|
|
540
540
|
NONE_THROWS = [];
|
|
541
541
|
T_NOT_FOUND = ["TARGET_NOT_FOUND"];
|
|
542
|
-
|
|
543
|
-
T_NOT_FOUND_TRACKED = ["TARGET_NOT_FOUND", "TRACK_CHANGE_COMMAND_UNAVAILABLE", "CAPABILITY_UNAVAILABLE"];
|
|
544
|
-
T_NOT_FOUND_COMMAND_TRACKED = [
|
|
545
|
-
"TARGET_NOT_FOUND",
|
|
546
|
-
"COMMAND_UNAVAILABLE",
|
|
547
|
-
"TRACK_CHANGE_COMMAND_UNAVAILABLE",
|
|
548
|
-
"CAPABILITY_UNAVAILABLE"
|
|
549
|
-
];
|
|
542
|
+
T_NOT_FOUND_CAPABLE = ["TARGET_NOT_FOUND", "CAPABILITY_UNAVAILABLE"];
|
|
550
543
|
T_PLAN_ENGINE = [
|
|
551
544
|
"REVISION_MISMATCH",
|
|
552
545
|
"MATCH_NOT_FOUND",
|
|
@@ -569,6 +562,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
569
562
|
requiresDocumentContext: true,
|
|
570
563
|
metadata: readOperation({
|
|
571
564
|
idempotency: "idempotent",
|
|
565
|
+
throws: ["CAPABILITY_UNAVAILABLE", "INVALID_INPUT"],
|
|
572
566
|
deterministicTargetResolution: false
|
|
573
567
|
}),
|
|
574
568
|
referenceDocPath: "find.mdx",
|
|
@@ -621,7 +615,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
621
615
|
supportsDryRun: true,
|
|
622
616
|
supportsTrackedMode: true,
|
|
623
617
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
624
|
-
throws: [...
|
|
618
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
625
619
|
}),
|
|
626
620
|
referenceDocPath: "insert.mdx",
|
|
627
621
|
referenceGroup: "core"
|
|
@@ -635,7 +629,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
635
629
|
supportsDryRun: true,
|
|
636
630
|
supportsTrackedMode: true,
|
|
637
631
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
638
|
-
throws: [...
|
|
632
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
639
633
|
}),
|
|
640
634
|
referenceDocPath: "replace.mdx",
|
|
641
635
|
referenceGroup: "core"
|
|
@@ -649,7 +643,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
649
643
|
supportsDryRun: true,
|
|
650
644
|
supportsTrackedMode: true,
|
|
651
645
|
possibleFailureCodes: ["NO_OP"],
|
|
652
|
-
throws: [...
|
|
646
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
653
647
|
}),
|
|
654
648
|
referenceDocPath: "delete.mdx",
|
|
655
649
|
referenceGroup: "core"
|
|
@@ -663,7 +657,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
663
657
|
supportsDryRun: true,
|
|
664
658
|
supportsTrackedMode: true,
|
|
665
659
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
666
|
-
throws: [...
|
|
660
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
|
|
667
661
|
}),
|
|
668
662
|
referenceDocPath: "format/apply.mdx",
|
|
669
663
|
referenceGroup: "format"
|
|
@@ -677,7 +671,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
677
671
|
supportsDryRun: true,
|
|
678
672
|
supportsTrackedMode: true,
|
|
679
673
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
680
|
-
throws: [...
|
|
674
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "AMBIGUOUS_TARGET"]
|
|
681
675
|
}),
|
|
682
676
|
referenceDocPath: "create/paragraph.mdx",
|
|
683
677
|
referenceGroup: "create"
|
|
@@ -691,7 +685,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
691
685
|
supportsDryRun: true,
|
|
692
686
|
supportsTrackedMode: true,
|
|
693
687
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
694
|
-
throws: [...
|
|
688
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "AMBIGUOUS_TARGET"]
|
|
695
689
|
}),
|
|
696
690
|
referenceDocPath: "create/heading.mdx",
|
|
697
691
|
referenceGroup: "create"
|
|
@@ -702,7 +696,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
702
696
|
requiresDocumentContext: true,
|
|
703
697
|
metadata: readOperation({
|
|
704
698
|
idempotency: "idempotent",
|
|
705
|
-
throws:
|
|
699
|
+
throws: ["TARGET_NOT_FOUND", "INVALID_TARGET", "INVALID_INPUT"]
|
|
706
700
|
}),
|
|
707
701
|
referenceDocPath: "lists/list.mdx",
|
|
708
702
|
referenceGroup: "lists"
|
|
@@ -727,7 +721,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
727
721
|
supportsDryRun: true,
|
|
728
722
|
supportsTrackedMode: true,
|
|
729
723
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
730
|
-
throws: [...
|
|
724
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
731
725
|
}),
|
|
732
726
|
referenceDocPath: "lists/insert.mdx",
|
|
733
727
|
referenceGroup: "lists"
|
|
@@ -741,7 +735,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
741
735
|
supportsDryRun: true,
|
|
742
736
|
supportsTrackedMode: false,
|
|
743
737
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
744
|
-
throws: [...
|
|
738
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
745
739
|
}),
|
|
746
740
|
referenceDocPath: "lists/set-type.mdx",
|
|
747
741
|
referenceGroup: "lists"
|
|
@@ -755,7 +749,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
755
749
|
supportsDryRun: true,
|
|
756
750
|
supportsTrackedMode: false,
|
|
757
751
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
758
|
-
throws: [...
|
|
752
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
759
753
|
}),
|
|
760
754
|
referenceDocPath: "lists/indent.mdx",
|
|
761
755
|
referenceGroup: "lists"
|
|
@@ -769,7 +763,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
769
763
|
supportsDryRun: true,
|
|
770
764
|
supportsTrackedMode: false,
|
|
771
765
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
772
|
-
throws: [...
|
|
766
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
773
767
|
}),
|
|
774
768
|
referenceDocPath: "lists/outdent.mdx",
|
|
775
769
|
referenceGroup: "lists"
|
|
@@ -783,7 +777,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
783
777
|
supportsDryRun: true,
|
|
784
778
|
supportsTrackedMode: false,
|
|
785
779
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
786
|
-
throws: [...
|
|
780
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
787
781
|
}),
|
|
788
782
|
referenceDocPath: "lists/restart.mdx",
|
|
789
783
|
referenceGroup: "lists"
|
|
@@ -797,7 +791,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
797
791
|
supportsDryRun: true,
|
|
798
792
|
supportsTrackedMode: false,
|
|
799
793
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
800
|
-
throws: [...
|
|
794
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
801
795
|
}),
|
|
802
796
|
referenceDocPath: "lists/exit.mdx",
|
|
803
797
|
referenceGroup: "lists"
|
|
@@ -811,7 +805,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
811
805
|
supportsDryRun: false,
|
|
812
806
|
supportsTrackedMode: false,
|
|
813
807
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
814
|
-
throws: [...
|
|
808
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
815
809
|
}),
|
|
816
810
|
referenceDocPath: "comments/create.mdx",
|
|
817
811
|
referenceGroup: "comments"
|
|
@@ -825,7 +819,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
825
819
|
supportsDryRun: false,
|
|
826
820
|
supportsTrackedMode: false,
|
|
827
821
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
828
|
-
throws: [...
|
|
822
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
|
|
829
823
|
}),
|
|
830
824
|
referenceDocPath: "comments/patch.mdx",
|
|
831
825
|
referenceGroup: "comments"
|
|
@@ -839,7 +833,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
839
833
|
supportsDryRun: false,
|
|
840
834
|
supportsTrackedMode: false,
|
|
841
835
|
possibleFailureCodes: ["NO_OP"],
|
|
842
|
-
throws:
|
|
836
|
+
throws: T_NOT_FOUND_CAPABLE
|
|
843
837
|
}),
|
|
844
838
|
referenceDocPath: "comments/delete.mdx",
|
|
845
839
|
referenceGroup: "comments"
|
|
@@ -860,7 +854,8 @@ var init_operation_definitions = __esm(() => {
|
|
|
860
854
|
description: "List all comment threads in the document.",
|
|
861
855
|
requiresDocumentContext: true,
|
|
862
856
|
metadata: readOperation({
|
|
863
|
-
idempotency: "idempotent"
|
|
857
|
+
idempotency: "idempotent",
|
|
858
|
+
throws: ["INVALID_INPUT"]
|
|
864
859
|
}),
|
|
865
860
|
referenceDocPath: "comments/list.mdx",
|
|
866
861
|
referenceGroup: "comments"
|
|
@@ -870,7 +865,8 @@ var init_operation_definitions = __esm(() => {
|
|
|
870
865
|
description: "List all tracked changes in the document.",
|
|
871
866
|
requiresDocumentContext: true,
|
|
872
867
|
metadata: readOperation({
|
|
873
|
-
idempotency: "idempotent"
|
|
868
|
+
idempotency: "idempotent",
|
|
869
|
+
throws: ["INVALID_INPUT"]
|
|
874
870
|
}),
|
|
875
871
|
referenceDocPath: "track-changes/list.mdx",
|
|
876
872
|
referenceGroup: "trackChanges"
|
|
@@ -895,7 +891,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
895
891
|
supportsDryRun: false,
|
|
896
892
|
supportsTrackedMode: false,
|
|
897
893
|
possibleFailureCodes: ["NO_OP"],
|
|
898
|
-
throws: [...
|
|
894
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_INPUT", "INVALID_TARGET"]
|
|
899
895
|
}),
|
|
900
896
|
referenceDocPath: "track-changes/decide.mdx",
|
|
901
897
|
referenceGroup: "trackChanges"
|
|
@@ -1136,7 +1132,7 @@ function buildInternalContractSchemas() {
|
|
|
1136
1132
|
operations
|
|
1137
1133
|
};
|
|
1138
1134
|
}
|
|
1139
|
-
var nodeTypeValues, blockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, blockNodeAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, 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, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, formatCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, insertInputSchema, operationSchemas;
|
|
1135
|
+
var nodeTypeValues, blockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, textTargetSchema, blockNodeAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, 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, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, formatCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, insertInputSchema, operationSchemas;
|
|
1140
1136
|
var init_schemas = __esm(() => {
|
|
1141
1137
|
init_command_catalog();
|
|
1142
1138
|
init_types2();
|
|
@@ -1178,6 +1174,14 @@ var init_schemas = __esm(() => {
|
|
|
1178
1174
|
blockId: { type: "string" },
|
|
1179
1175
|
range: ref("Range")
|
|
1180
1176
|
}, ["kind", "blockId", "range"]),
|
|
1177
|
+
TextSegment: objectSchema({
|
|
1178
|
+
blockId: { type: "string" },
|
|
1179
|
+
range: ref("Range")
|
|
1180
|
+
}, ["blockId", "range"]),
|
|
1181
|
+
TextTarget: objectSchema({
|
|
1182
|
+
kind: { const: "text" },
|
|
1183
|
+
segments: { type: "array", items: ref("TextSegment"), minItems: 1 }
|
|
1184
|
+
}, ["kind", "segments"]),
|
|
1181
1185
|
BlockNodeAddress: objectSchema({
|
|
1182
1186
|
kind: { const: "block" },
|
|
1183
1187
|
nodeType: { enum: [...blockNodeTypeValues] },
|
|
@@ -1287,6 +1291,7 @@ var init_schemas = __esm(() => {
|
|
|
1287
1291
|
inlineAnchorSchema = ref("InlineAnchor");
|
|
1288
1292
|
targetKindSchema = ref("TargetKind");
|
|
1289
1293
|
textAddressSchema = ref("TextAddress");
|
|
1294
|
+
textTargetSchema = ref("TextTarget");
|
|
1290
1295
|
blockNodeAddressSchema = ref("BlockNodeAddress");
|
|
1291
1296
|
paragraphAddressSchema = ref("ParagraphAddress");
|
|
1292
1297
|
headingAddressSchema = ref("HeadingAddress");
|
|
@@ -1453,7 +1458,8 @@ var init_schemas = __esm(() => {
|
|
|
1453
1458
|
text: { type: "string" },
|
|
1454
1459
|
isInternal: { type: "boolean" },
|
|
1455
1460
|
status: { enum: ["open", "resolved"] },
|
|
1456
|
-
target:
|
|
1461
|
+
target: textTargetSchema,
|
|
1462
|
+
anchoredText: { type: "string" },
|
|
1457
1463
|
createdTime: { type: "number" },
|
|
1458
1464
|
creatorName: { type: "string" },
|
|
1459
1465
|
creatorEmail: { type: "string" }
|
|
@@ -1465,7 +1471,8 @@ var init_schemas = __esm(() => {
|
|
|
1465
1471
|
text: { type: "string" },
|
|
1466
1472
|
isInternal: { type: "boolean" },
|
|
1467
1473
|
status: { enum: ["open", "resolved"] },
|
|
1468
|
-
target:
|
|
1474
|
+
target: textTargetSchema,
|
|
1475
|
+
anchoredText: { type: "string" },
|
|
1469
1476
|
createdTime: { type: "number" },
|
|
1470
1477
|
creatorName: { type: "string" },
|
|
1471
1478
|
creatorEmail: { type: "string" }
|
|
@@ -2297,19 +2304,8 @@ var init_insert = __esm(() => {
|
|
|
2297
2304
|
|
|
2298
2305
|
// ../../packages/document-api/src/lists/lists.ts
|
|
2299
2306
|
function validateListTarget(input, operationName) {
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
if (hasTarget && hasNodeId) {
|
|
2303
|
-
throw new DocumentApiValidationError("INVALID_TARGET", `Cannot combine target with nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["target", "nodeId"] });
|
|
2304
|
-
}
|
|
2305
|
-
if (!hasTarget && !hasNodeId) {
|
|
2306
|
-
throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a target. Provide either target or nodeId.`);
|
|
2307
|
-
}
|
|
2308
|
-
if (hasNodeId && typeof input.nodeId !== "string") {
|
|
2309
|
-
throw new DocumentApiValidationError("INVALID_TARGET", `nodeId must be a string, got ${typeof input.nodeId}.`, {
|
|
2310
|
-
field: "nodeId",
|
|
2311
|
-
value: input.nodeId
|
|
2312
|
-
});
|
|
2307
|
+
if (input.target === undefined) {
|
|
2308
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a target.`);
|
|
2313
2309
|
}
|
|
2314
2310
|
}
|
|
2315
2311
|
function executeListsList(adapter, query2) {
|
|
@@ -2385,19 +2381,8 @@ function validateCreateLocation(at, operationName) {
|
|
|
2385
2381
|
if (at.kind !== "before" && at.kind !== "after")
|
|
2386
2382
|
return;
|
|
2387
2383
|
const loc = at;
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
if (hasTarget && hasNodeId) {
|
|
2391
|
-
throw new DocumentApiValidationError("INVALID_TARGET", `Cannot combine at.target with at.nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["at.target", "at.nodeId"] });
|
|
2392
|
-
}
|
|
2393
|
-
if (!hasTarget && !hasNodeId) {
|
|
2394
|
-
throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires either at.target or at.nodeId.`, { fields: ["at.target", "at.nodeId"] });
|
|
2395
|
-
}
|
|
2396
|
-
if (hasNodeId && typeof loc.nodeId !== "string") {
|
|
2397
|
-
throw new DocumentApiValidationError("INVALID_TARGET", `at.nodeId must be a string, got ${typeof loc.nodeId}.`, {
|
|
2398
|
-
field: "at.nodeId",
|
|
2399
|
-
value: loc.nodeId
|
|
2400
|
-
});
|
|
2384
|
+
if (loc.target === undefined) {
|
|
2385
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires at.target.`, { fields: ["at.target"] });
|
|
2401
2386
|
}
|
|
2402
2387
|
}
|
|
2403
2388
|
function normalizeParagraphCreateLocation(location2) {
|
|
@@ -18045,7 +18030,7 @@ var init_constants_DBKi0Amm_es = __esm(() => {
|
|
|
18045
18030
|
]);
|
|
18046
18031
|
});
|
|
18047
18032
|
|
|
18048
|
-
// ../../packages/superdoc/dist/chunks/SuperConverter-
|
|
18033
|
+
// ../../packages/superdoc/dist/chunks/SuperConverter-Cf1y7bFA.es.js
|
|
18049
18034
|
function getExtensionConfigField(extension, field, context = { name: "" }) {
|
|
18050
18035
|
const fieldValue = extension.config[field];
|
|
18051
18036
|
if (typeof fieldValue === "function")
|
|
@@ -35280,6 +35265,16 @@ var isRegExp = (value) => {
|
|
|
35280
35265
|
i2++;
|
|
35281
35266
|
continue;
|
|
35282
35267
|
}
|
|
35268
|
+
const childElements = node2.elements || [];
|
|
35269
|
+
if (childElements.length > 0) {
|
|
35270
|
+
for (const child of childElements) {
|
|
35271
|
+
if (Array.isArray(child.elements))
|
|
35272
|
+
child.elements = preProcessPageFieldsOnly(child.elements, depth + 1).processedNodes;
|
|
35273
|
+
processedNodes.push(child);
|
|
35274
|
+
}
|
|
35275
|
+
i2++;
|
|
35276
|
+
continue;
|
|
35277
|
+
}
|
|
35283
35278
|
}
|
|
35284
35279
|
if (fldType === "begin") {
|
|
35285
35280
|
const fieldInfo = scanFieldSequence(nodes, i2);
|
|
@@ -35301,6 +35296,12 @@ var isRegExp = (value) => {
|
|
|
35301
35296
|
continue;
|
|
35302
35297
|
}
|
|
35303
35298
|
}
|
|
35299
|
+
if (node2.name === "w:r" && node2.elements?.some((el) => el.name === "w:pgNum")) {
|
|
35300
|
+
const processedField = preProcessPageInstruction([], "", node2.elements.find((el) => el.name === "w:rPr") || null);
|
|
35301
|
+
processedNodes.push(...processedField);
|
|
35302
|
+
i2++;
|
|
35303
|
+
continue;
|
|
35304
|
+
}
|
|
35304
35305
|
if (Array.isArray(node2.elements))
|
|
35305
35306
|
node2.elements = preProcessPageFieldsOnly(node2.elements, depth + 1).processedNodes;
|
|
35306
35307
|
processedNodes.push(node2);
|
|
@@ -41780,7 +41781,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
41780
41781
|
state.kern = kernNode.attributes["w:val"];
|
|
41781
41782
|
}
|
|
41782
41783
|
}, SuperConverter;
|
|
41783
|
-
var
|
|
41784
|
+
var init_SuperConverter_Cf1y7bFA_es = __esm(() => {
|
|
41784
41785
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
41785
41786
|
init_jszip_ChlR43oI_es();
|
|
41786
41787
|
init_xml_js_DLE8mr0n_es();
|
|
@@ -87168,9 +87169,9 @@ var init_remark_gfm_RDxetNVS_es = __esm(() => {
|
|
|
87168
87169
|
emptyOptions4 = {};
|
|
87169
87170
|
});
|
|
87170
87171
|
|
|
87171
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
87172
|
-
var
|
|
87173
|
-
__export(
|
|
87172
|
+
// ../../packages/superdoc/dist/chunks/src-DsAtPNrg.es.js
|
|
87173
|
+
var exports_src_DsAtPNrg_es = {};
|
|
87174
|
+
__export(exports_src_DsAtPNrg_es, {
|
|
87174
87175
|
zt: () => defineMark,
|
|
87175
87176
|
z: () => cM,
|
|
87176
87177
|
yt: () => removeAwarenessStates,
|
|
@@ -94186,17 +94187,8 @@ function executeInsert2(adapter, input2, options) {
|
|
|
94186
94187
|
}, options);
|
|
94187
94188
|
}
|
|
94188
94189
|
function validateListTarget2(input2, operationName) {
|
|
94189
|
-
|
|
94190
|
-
|
|
94191
|
-
if (hasTarget && hasNodeId)
|
|
94192
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `Cannot combine target with nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["target", "nodeId"] });
|
|
94193
|
-
if (!hasTarget && !hasNodeId)
|
|
94194
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a target. Provide either target or nodeId.`);
|
|
94195
|
-
if (hasNodeId && typeof input2.nodeId !== "string")
|
|
94196
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `nodeId must be a string, got ${typeof input2.nodeId}.`, {
|
|
94197
|
-
field: "nodeId",
|
|
94198
|
-
value: input2.nodeId
|
|
94199
|
-
});
|
|
94190
|
+
if (input2.target === undefined)
|
|
94191
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a target.`);
|
|
94200
94192
|
}
|
|
94201
94193
|
function executeListsList2(adapter, query2) {
|
|
94202
94194
|
return adapter.list(query2);
|
|
@@ -94257,18 +94249,8 @@ function executeReplace2(adapter, input2, options) {
|
|
|
94257
94249
|
function validateCreateLocation2(at, operationName) {
|
|
94258
94250
|
if (at.kind !== "before" && at.kind !== "after")
|
|
94259
94251
|
return;
|
|
94260
|
-
|
|
94261
|
-
|
|
94262
|
-
const hasNodeId = loc.nodeId !== undefined;
|
|
94263
|
-
if (hasTarget && hasNodeId)
|
|
94264
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `Cannot combine at.target with at.nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["at.target", "at.nodeId"] });
|
|
94265
|
-
if (!hasTarget && !hasNodeId)
|
|
94266
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires either at.target or at.nodeId.`, { fields: ["at.target", "at.nodeId"] });
|
|
94267
|
-
if (hasNodeId && typeof loc.nodeId !== "string")
|
|
94268
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `at.nodeId must be a string, got ${typeof loc.nodeId}.`, {
|
|
94269
|
-
field: "at.nodeId",
|
|
94270
|
-
value: loc.nodeId
|
|
94271
|
-
});
|
|
94252
|
+
if (at.target === undefined)
|
|
94253
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires at.target.`, { fields: ["at.target"] });
|
|
94272
94254
|
}
|
|
94273
94255
|
function normalizeParagraphCreateLocation2(location$1) {
|
|
94274
94256
|
return location$1 ?? { kind: "documentEnd" };
|
|
@@ -95855,10 +95837,7 @@ function isRefWhere(where) {
|
|
|
95855
95837
|
return where.by === "ref";
|
|
95856
95838
|
}
|
|
95857
95839
|
function isV3Ref(payload) {
|
|
95858
|
-
return "v" in payload && payload.v === 3;
|
|
95859
|
-
}
|
|
95860
|
-
function isV2Ref(payload) {
|
|
95861
|
-
return "v" in payload && payload.v === 2;
|
|
95840
|
+
return typeof payload === "object" && payload !== null && "v" in payload && payload.v === 3;
|
|
95862
95841
|
}
|
|
95863
95842
|
function resolveAbsoluteRange(editor, candidate, from$12, to, stepId) {
|
|
95864
95843
|
const resolved = resolveTextRangeInBlock(candidate.node, candidate.pos, {
|
|
@@ -96088,62 +96067,6 @@ function decodeTextRefPayload(encoded, stepId) {
|
|
|
96088
96067
|
throw planError("INVALID_INPUT", "invalid text ref encoding", stepId);
|
|
96089
96068
|
}
|
|
96090
96069
|
}
|
|
96091
|
-
function resolveV1TextRef(editor, index2, step, refData) {
|
|
96092
|
-
const currentRevision = getRevision(editor);
|
|
96093
|
-
if (refData.rev !== currentRevision)
|
|
96094
|
-
throw planError("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, {
|
|
96095
|
-
refRevision: refData.rev,
|
|
96096
|
-
currentRevision
|
|
96097
|
-
});
|
|
96098
|
-
if (!refData.ranges?.length)
|
|
96099
|
-
return [];
|
|
96100
|
-
const coalesced = normalizeMatchRanges(step.id, refData.ranges);
|
|
96101
|
-
const candidate = index2.candidates.find((c$3) => c$3.nodeId === coalesced.blockId);
|
|
96102
|
-
if (!candidate)
|
|
96103
|
-
return [];
|
|
96104
|
-
const matchText = getBlockText(editor, candidate).slice(coalesced.from, coalesced.to);
|
|
96105
|
-
return [buildRangeTarget(editor, step, {
|
|
96106
|
-
blockId: coalesced.blockId,
|
|
96107
|
-
from: coalesced.from,
|
|
96108
|
-
to: coalesced.to,
|
|
96109
|
-
text: matchText,
|
|
96110
|
-
marks: [],
|
|
96111
|
-
blockPos: candidate.pos
|
|
96112
|
-
}, candidate)];
|
|
96113
|
-
}
|
|
96114
|
-
function resolveV2TextRef(editor, index2, step, refData) {
|
|
96115
|
-
const currentRevision = getRevision(editor);
|
|
96116
|
-
if (refData.rev !== currentRevision)
|
|
96117
|
-
throw planError("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, {
|
|
96118
|
-
refRevision: refData.rev,
|
|
96119
|
-
currentRevision
|
|
96120
|
-
});
|
|
96121
|
-
if (!refData.segments?.length)
|
|
96122
|
-
return [];
|
|
96123
|
-
const segments = refData.segments.map((s2) => ({
|
|
96124
|
-
blockId: s2.blockId,
|
|
96125
|
-
from: s2.start,
|
|
96126
|
-
to: s2.end
|
|
96127
|
-
}));
|
|
96128
|
-
if (segments.length === 1) {
|
|
96129
|
-
const seg = segments[0];
|
|
96130
|
-
const candidate = index2.candidates.find((c$3) => c$3.nodeId === seg.blockId);
|
|
96131
|
-
if (!candidate)
|
|
96132
|
-
return [];
|
|
96133
|
-
const matchText = getBlockText(editor, candidate).slice(seg.from, seg.to);
|
|
96134
|
-
const target = buildRangeTarget(editor, step, {
|
|
96135
|
-
blockId: seg.blockId,
|
|
96136
|
-
from: seg.from,
|
|
96137
|
-
to: seg.to,
|
|
96138
|
-
text: matchText,
|
|
96139
|
-
marks: [],
|
|
96140
|
-
blockPos: candidate.pos
|
|
96141
|
-
}, candidate);
|
|
96142
|
-
target.matchId = refData.matchId;
|
|
96143
|
-
return [target];
|
|
96144
|
-
}
|
|
96145
|
-
return [buildSpanTarget(editor, index2, step, segments, refData.matchId)];
|
|
96146
|
-
}
|
|
96147
96070
|
function resolveV3TextRef(editor, index2, step, refData) {
|
|
96148
96071
|
const currentRevision = getRevision(editor);
|
|
96149
96072
|
if (refData.rev !== currentRevision)
|
|
@@ -96179,11 +96102,9 @@ function resolveV3TextRef(editor, index2, step, refData) {
|
|
|
96179
96102
|
}
|
|
96180
96103
|
function resolveTextRef(editor, index2, step, ref$2) {
|
|
96181
96104
|
const payload = decodeTextRefPayload(ref$2.slice(5), step.id);
|
|
96182
|
-
if (isV3Ref(payload))
|
|
96183
|
-
|
|
96184
|
-
|
|
96185
|
-
return resolveV2TextRef(editor, index2, step, payload);
|
|
96186
|
-
return resolveV1TextRef(editor, index2, step, payload);
|
|
96105
|
+
if (!isV3Ref(payload))
|
|
96106
|
+
throw planError("INVALID_INPUT", "only V3 text refs are supported", step.id);
|
|
96107
|
+
return resolveV3TextRef(editor, index2, step, payload);
|
|
96187
96108
|
}
|
|
96188
96109
|
function resolveBlockRef(editor, index2, step, ref$2) {
|
|
96189
96110
|
const candidate = index2.candidates.find((c$3) => c$3.nodeId === ref$2);
|
|
@@ -96206,8 +96127,6 @@ function dispatchRefHandler(editor, index2, step, ref$2) {
|
|
|
96206
96127
|
return resolveBlockRef(editor, index2, step, ref$2);
|
|
96207
96128
|
}
|
|
96208
96129
|
function resolveRefTargets(editor, index2, step, where) {
|
|
96209
|
-
if (where.require !== undefined && where.require !== "exactlyOne")
|
|
96210
|
-
throw planError("INVALID_INPUT", `ref-based targeting only accepts require: 'exactlyOne' (received '${where.require}')`, step.id);
|
|
96211
96130
|
return dispatchRefHandler(editor, index2, step, where.ref);
|
|
96212
96131
|
}
|
|
96213
96132
|
function resolveStepTargets(editor, index2, step) {
|
|
@@ -97394,6 +97313,7 @@ function toCommentInfo(entry, options = {}) {
|
|
|
97394
97313
|
isInternal: typeof entry.isInternal === "boolean" ? entry.isInternal : undefined,
|
|
97395
97314
|
status,
|
|
97396
97315
|
target: options.target,
|
|
97316
|
+
anchoredText: options.anchoredText,
|
|
97397
97317
|
createdTime: typeof entry.createdTime === "number" ? entry.createdTime : undefined,
|
|
97398
97318
|
creatorName: typeof entry.creatorName === "string" ? entry.creatorName : undefined,
|
|
97399
97319
|
creatorEmail: typeof entry.creatorEmail === "string" ? entry.creatorEmail : undefined
|
|
@@ -97517,7 +97437,74 @@ function resolveCommentIdentity(editor, commentId) {
|
|
|
97517
97437
|
anchors
|
|
97518
97438
|
};
|
|
97519
97439
|
}
|
|
97520
|
-
function
|
|
97440
|
+
function canonicalizeAnchors(sorted) {
|
|
97441
|
+
if (sorted.length === 0)
|
|
97442
|
+
return [];
|
|
97443
|
+
const result = [];
|
|
97444
|
+
let current = {
|
|
97445
|
+
blockId: sorted[0].target.blockId,
|
|
97446
|
+
range: {
|
|
97447
|
+
start: sorted[0].target.range.start,
|
|
97448
|
+
end: sorted[0].target.range.end
|
|
97449
|
+
},
|
|
97450
|
+
pos: sorted[0].pos,
|
|
97451
|
+
end: sorted[0].end
|
|
97452
|
+
};
|
|
97453
|
+
for (let i$1 = 1;i$1 < sorted.length; i$1++) {
|
|
97454
|
+
const anchor = sorted[i$1];
|
|
97455
|
+
const sameBlock = anchor.target.blockId === current.blockId;
|
|
97456
|
+
const overlapsOrAdjacent = anchor.target.range.start <= current.range.end;
|
|
97457
|
+
if (sameBlock && overlapsOrAdjacent) {
|
|
97458
|
+
current.range.end = Math.max(current.range.end, anchor.target.range.end);
|
|
97459
|
+
current.end = Math.max(current.end, anchor.end);
|
|
97460
|
+
} else {
|
|
97461
|
+
result.push(current);
|
|
97462
|
+
current = {
|
|
97463
|
+
blockId: anchor.target.blockId,
|
|
97464
|
+
range: {
|
|
97465
|
+
start: anchor.target.range.start,
|
|
97466
|
+
end: anchor.target.range.end
|
|
97467
|
+
},
|
|
97468
|
+
pos: anchor.pos,
|
|
97469
|
+
end: anchor.end
|
|
97470
|
+
};
|
|
97471
|
+
}
|
|
97472
|
+
}
|
|
97473
|
+
result.push(current);
|
|
97474
|
+
return result;
|
|
97475
|
+
}
|
|
97476
|
+
function extractSegmentText(editor, pos, end$1) {
|
|
97477
|
+
try {
|
|
97478
|
+
const cleaned = editor.state.doc.textBetween(pos, end$1, " ", "").replace(/\ufffc/g, "").trim();
|
|
97479
|
+
return cleaned.length > 0 ? cleaned : undefined;
|
|
97480
|
+
} catch {
|
|
97481
|
+
return;
|
|
97482
|
+
}
|
|
97483
|
+
}
|
|
97484
|
+
function buildAnchoredText(editor, canonical) {
|
|
97485
|
+
const parts = [];
|
|
97486
|
+
for (const anchor of canonical) {
|
|
97487
|
+
const text4 = extractSegmentText(editor, anchor.pos, anchor.end);
|
|
97488
|
+
if (text4)
|
|
97489
|
+
parts.push(text4);
|
|
97490
|
+
}
|
|
97491
|
+
return parts.length > 0 ? normalizeExcerpt(parts.join(" ")) : undefined;
|
|
97492
|
+
}
|
|
97493
|
+
function buildTextTarget(canonical) {
|
|
97494
|
+
if (canonical.length === 0)
|
|
97495
|
+
return;
|
|
97496
|
+
return {
|
|
97497
|
+
kind: "text",
|
|
97498
|
+
segments: canonical.map((a2) => ({
|
|
97499
|
+
blockId: a2.blockId,
|
|
97500
|
+
range: {
|
|
97501
|
+
start: a2.range.start,
|
|
97502
|
+
end: a2.range.end
|
|
97503
|
+
}
|
|
97504
|
+
}))
|
|
97505
|
+
};
|
|
97506
|
+
}
|
|
97507
|
+
function mergeAnchorData(editor, infosById, anchors) {
|
|
97521
97508
|
const grouped = /* @__PURE__ */ new Map;
|
|
97522
97509
|
for (const anchor of anchors) {
|
|
97523
97510
|
const group = grouped.get(anchor.commentId) ?? [];
|
|
@@ -97526,28 +97513,34 @@ function mergeAnchorData(infosById, anchors) {
|
|
|
97526
97513
|
}
|
|
97527
97514
|
for (const [commentId, commentAnchors] of grouped.entries()) {
|
|
97528
97515
|
const sorted = [...commentAnchors].sort((a2, b$1) => a2.pos === b$1.pos ? a2.end - b$1.end : a2.pos - b$1.pos);
|
|
97529
|
-
const
|
|
97516
|
+
const firstAnchor = sorted[0];
|
|
97530
97517
|
const status = sorted.every((anchor) => anchor.status === "resolved") ? "resolved" : "open";
|
|
97518
|
+
const canonical = canonicalizeAnchors(sorted);
|
|
97519
|
+
const target = buildTextTarget(canonical);
|
|
97520
|
+
const anchoredText = buildAnchoredText(editor, canonical);
|
|
97531
97521
|
const existing = infosById.get(commentId);
|
|
97532
97522
|
if (existing) {
|
|
97533
|
-
if (!existing.target)
|
|
97534
|
-
existing.target =
|
|
97535
|
-
if (!existing.importedId &&
|
|
97536
|
-
existing.importedId =
|
|
97537
|
-
if (existing.isInternal == null &&
|
|
97538
|
-
existing.isInternal =
|
|
97523
|
+
if (!existing.target && target)
|
|
97524
|
+
existing.target = target;
|
|
97525
|
+
if (!existing.importedId && firstAnchor.importedId)
|
|
97526
|
+
existing.importedId = firstAnchor.importedId;
|
|
97527
|
+
if (existing.isInternal == null && firstAnchor.isInternal != null)
|
|
97528
|
+
existing.isInternal = firstAnchor.isInternal;
|
|
97539
97529
|
if (status === "open")
|
|
97540
97530
|
existing.status = "open";
|
|
97531
|
+
if (existing.anchoredText == null && anchoredText != null)
|
|
97532
|
+
existing.anchoredText = anchoredText;
|
|
97541
97533
|
continue;
|
|
97542
97534
|
}
|
|
97543
97535
|
infosById.set(commentId, toCommentInfo({
|
|
97544
97536
|
commentId,
|
|
97545
|
-
importedId:
|
|
97546
|
-
isInternal:
|
|
97537
|
+
importedId: firstAnchor.importedId,
|
|
97538
|
+
isInternal: firstAnchor.isInternal,
|
|
97547
97539
|
isDone: status === "resolved"
|
|
97548
97540
|
}, {
|
|
97549
|
-
target
|
|
97550
|
-
status
|
|
97541
|
+
target,
|
|
97542
|
+
status,
|
|
97543
|
+
anchoredText
|
|
97551
97544
|
}));
|
|
97552
97545
|
}
|
|
97553
97546
|
}
|
|
@@ -97563,15 +97556,33 @@ function buildCommentInfos(editor) {
|
|
|
97563
97556
|
commentId
|
|
97564
97557
|
}));
|
|
97565
97558
|
}
|
|
97566
|
-
mergeAnchorData(infosById, listCommentAnchorsSafe(editor));
|
|
97559
|
+
mergeAnchorData(editor, infosById, listCommentAnchorsSafe(editor));
|
|
97560
|
+
for (const info of infosById.values()) {
|
|
97561
|
+
if (info.target != null && info.anchoredText != null || !info.parentCommentId)
|
|
97562
|
+
continue;
|
|
97563
|
+
const visited = /* @__PURE__ */ new Set;
|
|
97564
|
+
let cursor = info;
|
|
97565
|
+
while (cursor?.parentCommentId && !visited.has(cursor.parentCommentId)) {
|
|
97566
|
+
visited.add(cursor.parentCommentId);
|
|
97567
|
+
const ancestor = infosById.get(cursor.parentCommentId);
|
|
97568
|
+
if (ancestor?.target != null) {
|
|
97569
|
+
if (info.target == null)
|
|
97570
|
+
info.target = ancestor.target;
|
|
97571
|
+
if (info.anchoredText == null && ancestor.anchoredText != null)
|
|
97572
|
+
info.anchoredText = ancestor.anchoredText;
|
|
97573
|
+
break;
|
|
97574
|
+
}
|
|
97575
|
+
cursor = ancestor;
|
|
97576
|
+
}
|
|
97577
|
+
}
|
|
97567
97578
|
const infos = Array.from(infosById.values());
|
|
97568
97579
|
infos.sort((left$1, right$1) => {
|
|
97569
97580
|
const leftCreated = left$1.createdTime ?? 0;
|
|
97570
97581
|
const rightCreated = right$1.createdTime ?? 0;
|
|
97571
97582
|
if (leftCreated !== rightCreated)
|
|
97572
97583
|
return leftCreated - rightCreated;
|
|
97573
|
-
const leftStart = left$1.target?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
97574
|
-
const rightStart = right$1.target?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
97584
|
+
const leftStart = left$1.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
97585
|
+
const rightStart = right$1.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
97575
97586
|
if (leftStart !== rightStart)
|
|
97576
97587
|
return leftStart - rightStart;
|
|
97577
97588
|
return left$1.commentId.localeCompare(right$1.commentId);
|
|
@@ -97579,7 +97590,7 @@ function buildCommentInfos(editor) {
|
|
|
97579
97590
|
return infos;
|
|
97580
97591
|
}
|
|
97581
97592
|
function addCommentHandler(editor, input2, options) {
|
|
97582
|
-
requireEditorCommand(editor.commands?.addComment, "comments.
|
|
97593
|
+
requireEditorCommand(editor.commands?.addComment, "comments.create (addComment)");
|
|
97583
97594
|
if (input2.target.range.start === input2.target.range.end)
|
|
97584
97595
|
return {
|
|
97585
97596
|
success: false,
|
|
@@ -97610,7 +97621,7 @@ function addCommentHandler(editor, input2, options) {
|
|
|
97610
97621
|
};
|
|
97611
97622
|
const commentId = v4_default();
|
|
97612
97623
|
if (executeDomainCommand(editor, () => {
|
|
97613
|
-
const didInsert = requireEditorCommand(editor.commands?.addComment, "comments.
|
|
97624
|
+
const didInsert = requireEditorCommand(editor.commands?.addComment, "comments.create (addComment)")({
|
|
97614
97625
|
content: input2.text,
|
|
97615
97626
|
isInternal: false,
|
|
97616
97627
|
commentId
|
|
@@ -97650,7 +97661,7 @@ function addCommentHandler(editor, input2, options) {
|
|
|
97650
97661
|
};
|
|
97651
97662
|
}
|
|
97652
97663
|
function editCommentHandler(editor, input2, options) {
|
|
97653
|
-
const editComment = requireEditorCommand(editor.commands?.editComment, "comments.
|
|
97664
|
+
const editComment = requireEditorCommand(editor.commands?.editComment, "comments.patch (editComment)");
|
|
97654
97665
|
const store = getCommentEntityStore(editor);
|
|
97655
97666
|
const identity$1 = resolveCommentIdentity(editor, input2.commentId);
|
|
97656
97667
|
const existing = findCommentEntity(store, identity$1.commentId);
|
|
@@ -97689,7 +97700,7 @@ function editCommentHandler(editor, input2, options) {
|
|
|
97689
97700
|
};
|
|
97690
97701
|
}
|
|
97691
97702
|
function replyToCommentHandler(editor, input2, options) {
|
|
97692
|
-
const addCommentReply = requireEditorCommand(editor.commands?.addCommentReply, "comments.
|
|
97703
|
+
const addCommentReply = requireEditorCommand(editor.commands?.addCommentReply, "comments.create (addCommentReply)");
|
|
97693
97704
|
if (!input2.parentCommentId)
|
|
97694
97705
|
return {
|
|
97695
97706
|
success: false,
|
|
@@ -97739,7 +97750,7 @@ function replyToCommentHandler(editor, input2, options) {
|
|
|
97739
97750
|
};
|
|
97740
97751
|
}
|
|
97741
97752
|
function moveCommentHandler(editor, input2, options) {
|
|
97742
|
-
const moveComment = requireEditorCommand(editor.commands?.moveComment, "comments.
|
|
97753
|
+
const moveComment = requireEditorCommand(editor.commands?.moveComment, "comments.patch (moveComment)");
|
|
97743
97754
|
if (input2.target.range.start === input2.target.range.end)
|
|
97744
97755
|
return {
|
|
97745
97756
|
success: false,
|
|
@@ -97803,7 +97814,7 @@ function moveCommentHandler(editor, input2, options) {
|
|
|
97803
97814
|
};
|
|
97804
97815
|
}
|
|
97805
97816
|
function resolveCommentHandler(editor, input2, options) {
|
|
97806
|
-
const resolveComment = requireEditorCommand(editor.commands?.resolveComment, "comments.
|
|
97817
|
+
const resolveComment = requireEditorCommand(editor.commands?.resolveComment, "comments.patch (resolveComment)");
|
|
97807
97818
|
const store = getCommentEntityStore(editor);
|
|
97808
97819
|
const identity$1 = resolveCommentIdentity(editor, input2.commentId);
|
|
97809
97820
|
const existing = findCommentEntity(store, identity$1.commentId);
|
|
@@ -97961,7 +97972,7 @@ function listCommentsHandler(editor, query2) {
|
|
|
97961
97972
|
const paged = paginate(filtered, query2?.offset, query2?.limit);
|
|
97962
97973
|
const items = paged.items.map((comment2) => {
|
|
97963
97974
|
const handle3 = buildResolvedHandle2(`comment:${comment2.commentId}`, "stable", "comment");
|
|
97964
|
-
const { importedId, parentCommentId, text: text4, isInternal, status, target, createdTime, creatorName, creatorEmail, address: address2 } = comment2;
|
|
97975
|
+
const { importedId, parentCommentId, text: text4, isInternal, status, target, anchoredText, createdTime, creatorName, creatorEmail, address: address2 } = comment2;
|
|
97965
97976
|
return buildDiscoveryItem2(comment2.commentId, handle3, {
|
|
97966
97977
|
address: address2,
|
|
97967
97978
|
importedId,
|
|
@@ -97970,6 +97981,7 @@ function listCommentsHandler(editor, query2) {
|
|
|
97970
97981
|
isInternal,
|
|
97971
97982
|
status,
|
|
97972
97983
|
target,
|
|
97984
|
+
anchoredText,
|
|
97973
97985
|
createdTime,
|
|
97974
97986
|
creatorName,
|
|
97975
97987
|
creatorEmail
|
|
@@ -107085,24 +107097,26 @@ function normalizeClientPoint(options, clientX, clientY) {
|
|
|
107085
107097
|
const baseX = (clientX - rect.left + scrollLeft) / options.zoom;
|
|
107086
107098
|
const baseY = (clientY - rect.top + scrollTop) / options.zoom;
|
|
107087
107099
|
let adjustedX = baseX;
|
|
107088
|
-
let
|
|
107100
|
+
let detectedPageIndex;
|
|
107101
|
+
let pageLocalY;
|
|
107089
107102
|
const doc$2 = options.visibleHost.ownerDocument ?? document;
|
|
107090
107103
|
const hitChain = typeof doc$2.elementsFromPoint === "function" ? doc$2.elementsFromPoint(clientX, clientY) : [];
|
|
107091
107104
|
const pageEl = Array.isArray(hitChain) ? hitChain.find((el) => el?.classList?.contains("superdoc-page")) : null;
|
|
107092
107105
|
if (pageEl) {
|
|
107093
107106
|
const pageIndex = Number(pageEl.dataset.pageIndex ?? "NaN");
|
|
107094
107107
|
if (Number.isFinite(pageIndex)) {
|
|
107108
|
+
detectedPageIndex = pageIndex;
|
|
107095
107109
|
const pageOffsetX = options.getPageOffsetX(pageIndex);
|
|
107096
107110
|
if (pageOffsetX != null)
|
|
107097
107111
|
adjustedX = baseX - pageOffsetX;
|
|
107098
|
-
|
|
107099
|
-
if (pageOffsetY != null)
|
|
107100
|
-
adjustedY = baseY - pageOffsetY;
|
|
107112
|
+
pageLocalY = (clientY - pageEl.getBoundingClientRect().top) / options.zoom;
|
|
107101
107113
|
}
|
|
107102
107114
|
}
|
|
107103
107115
|
return {
|
|
107104
107116
|
x: adjustedX,
|
|
107105
|
-
y:
|
|
107117
|
+
y: baseY,
|
|
107118
|
+
pageIndex: detectedPageIndex,
|
|
107119
|
+
pageLocalY
|
|
107106
107120
|
};
|
|
107107
107121
|
}
|
|
107108
107122
|
function denormalizeClientPoint(options, layoutX, layoutY, pageIndex, height) {
|
|
@@ -107474,7 +107488,9 @@ function publishSectionMetadata(sectionRanges, options) {
|
|
|
107474
107488
|
footerRefs: section.footerRefs,
|
|
107475
107489
|
numbering: section.numbering,
|
|
107476
107490
|
titlePg: section.titlePg,
|
|
107477
|
-
vAlign: section.vAlign
|
|
107491
|
+
vAlign: section.vAlign,
|
|
107492
|
+
margins: section.margins,
|
|
107493
|
+
pageSize: section.pageSize
|
|
107478
107494
|
});
|
|
107479
107495
|
});
|
|
107480
107496
|
}
|
|
@@ -116255,6 +116271,84 @@ async function measureListBlock(block, constraints) {
|
|
|
116255
116271
|
totalHeight
|
|
116256
116272
|
};
|
|
116257
116273
|
}
|
|
116274
|
+
function buildSectionContentWidth(section, fallback) {
|
|
116275
|
+
const pageW = section.pageSize?.w ?? fallback.pageWidth;
|
|
116276
|
+
const marginL = section.margins?.left ?? fallback.margins.left;
|
|
116277
|
+
const marginR = section.margins?.right ?? fallback.margins.right;
|
|
116278
|
+
return pageW - marginL - marginR;
|
|
116279
|
+
}
|
|
116280
|
+
function buildConstraintsForSection(section, fallback, minWidth) {
|
|
116281
|
+
const pageW = section.pageSize?.w ?? fallback.pageWidth;
|
|
116282
|
+
const marginL = section.margins?.left ?? fallback.margins.left;
|
|
116283
|
+
const marginR = section.margins?.right ?? fallback.margins.right;
|
|
116284
|
+
const contentWidth = pageW - marginL - marginR;
|
|
116285
|
+
const maxWidth = pageW - marginL;
|
|
116286
|
+
return {
|
|
116287
|
+
width: minWidth ? Math.min(Math.max(contentWidth, minWidth), maxWidth) : contentWidth,
|
|
116288
|
+
height: fallback.height,
|
|
116289
|
+
pageWidth: pageW,
|
|
116290
|
+
margins: {
|
|
116291
|
+
left: marginL,
|
|
116292
|
+
right: marginR
|
|
116293
|
+
}
|
|
116294
|
+
};
|
|
116295
|
+
}
|
|
116296
|
+
function getTableWidthSpec(blocks2) {
|
|
116297
|
+
let result;
|
|
116298
|
+
let maxResolvedWidth = 0;
|
|
116299
|
+
for (const block of blocks2) {
|
|
116300
|
+
if (block.kind !== "table")
|
|
116301
|
+
continue;
|
|
116302
|
+
const tableWidth = block.attrs?.tableWidth;
|
|
116303
|
+
const widthValue = tableWidth?.width ?? tableWidth?.value;
|
|
116304
|
+
if (tableWidth?.type === "pct" && typeof widthValue === "number" && widthValue > 0) {
|
|
116305
|
+
if (!result || result.type !== "pct" || widthValue > result.value) {
|
|
116306
|
+
result = {
|
|
116307
|
+
type: "pct",
|
|
116308
|
+
value: widthValue
|
|
116309
|
+
};
|
|
116310
|
+
maxResolvedWidth = Infinity;
|
|
116311
|
+
}
|
|
116312
|
+
} else if ((tableWidth?.type === "px" || tableWidth?.type === "pixel") && typeof widthValue === "number") {
|
|
116313
|
+
if (widthValue > maxResolvedWidth) {
|
|
116314
|
+
maxResolvedWidth = widthValue;
|
|
116315
|
+
result = {
|
|
116316
|
+
type: "px",
|
|
116317
|
+
value: widthValue
|
|
116318
|
+
};
|
|
116319
|
+
}
|
|
116320
|
+
} else if (block.columnWidths && block.columnWidths.length > 0) {
|
|
116321
|
+
const gridTotal = block.columnWidths.reduce((sum, w2) => sum + w2, 0);
|
|
116322
|
+
if (gridTotal > maxResolvedWidth) {
|
|
116323
|
+
maxResolvedWidth = gridTotal;
|
|
116324
|
+
result = {
|
|
116325
|
+
type: "grid",
|
|
116326
|
+
value: gridTotal
|
|
116327
|
+
};
|
|
116328
|
+
}
|
|
116329
|
+
}
|
|
116330
|
+
}
|
|
116331
|
+
return result;
|
|
116332
|
+
}
|
|
116333
|
+
function resolveTableMinWidth(spec, contentWidth) {
|
|
116334
|
+
if (!spec)
|
|
116335
|
+
return 0;
|
|
116336
|
+
if (spec.type === "pct")
|
|
116337
|
+
return contentWidth * (spec.value / OOXML_PCT_DIVISOR);
|
|
116338
|
+
return spec.value;
|
|
116339
|
+
}
|
|
116340
|
+
function resolveRIdPerSection(sectionMetadata, kind) {
|
|
116341
|
+
const result = /* @__PURE__ */ new Map;
|
|
116342
|
+
let inherited;
|
|
116343
|
+
for (const section of sectionMetadata) {
|
|
116344
|
+
const rId = (kind === "header" ? section.headerRefs : section.footerRefs)?.default;
|
|
116345
|
+
if (rId)
|
|
116346
|
+
inherited = rId;
|
|
116347
|
+
if (inherited)
|
|
116348
|
+
result.set(section.sectionIndex, inherited);
|
|
116349
|
+
}
|
|
116350
|
+
return result;
|
|
116351
|
+
}
|
|
116258
116352
|
async function layoutPerRIdHeaderFooters(headerFooterInput, layout, sectionMetadata, deps) {
|
|
116259
116353
|
deps.headerLayoutsByRId.clear();
|
|
116260
116354
|
deps.footerLayoutsByRId.clear();
|
|
@@ -116269,42 +116363,127 @@ async function layoutPerRIdHeaderFooters(headerFooterInput, layout, sectionMetad
|
|
|
116269
116363
|
totalPages
|
|
116270
116364
|
};
|
|
116271
116365
|
};
|
|
116272
|
-
if (
|
|
116273
|
-
|
|
116274
|
-
|
|
116275
|
-
|
|
116276
|
-
|
|
116277
|
-
|
|
116278
|
-
|
|
116279
|
-
|
|
116280
|
-
|
|
116281
|
-
|
|
116282
|
-
|
|
116283
|
-
|
|
116284
|
-
|
|
116285
|
-
|
|
116286
|
-
|
|
116287
|
-
|
|
116288
|
-
|
|
116366
|
+
if (sectionMetadata.length > 1 && sectionMetadata.some((s2) => s2.margins || s2.pageSize)) {
|
|
116367
|
+
await layoutWithPerSectionConstraints("header", headerBlocksByRId, sectionMetadata, constraints, pageResolver, deps.headerLayoutsByRId);
|
|
116368
|
+
await layoutWithPerSectionConstraints("footer", footerBlocksByRId, sectionMetadata, constraints, pageResolver, deps.footerLayoutsByRId);
|
|
116369
|
+
} else {
|
|
116370
|
+
await layoutBlocksByRId("header", headerBlocksByRId, constraints, pageResolver, deps.headerLayoutsByRId);
|
|
116371
|
+
await layoutBlocksByRId("footer", footerBlocksByRId, constraints, pageResolver, deps.footerLayoutsByRId);
|
|
116372
|
+
}
|
|
116373
|
+
}
|
|
116374
|
+
async function layoutBlocksByRId(kind, blocksByRId, constraints, pageResolver, layoutsByRId) {
|
|
116375
|
+
if (!blocksByRId)
|
|
116376
|
+
return;
|
|
116377
|
+
for (const [rId, blocks2] of blocksByRId) {
|
|
116378
|
+
if (!blocks2 || blocks2.length === 0)
|
|
116379
|
+
continue;
|
|
116380
|
+
try {
|
|
116381
|
+
const batchResult = await layoutHeaderFooterWithCache({ default: blocks2 }, constraints, (block, c$3) => measureBlock(block, c$3), undefined, undefined, pageResolver);
|
|
116382
|
+
if (batchResult.default)
|
|
116383
|
+
layoutsByRId.set(rId, {
|
|
116384
|
+
kind,
|
|
116385
|
+
type: "default",
|
|
116386
|
+
layout: batchResult.default.layout,
|
|
116387
|
+
blocks: batchResult.default.blocks,
|
|
116388
|
+
measures: batchResult.default.measures
|
|
116389
|
+
});
|
|
116390
|
+
} catch (error) {
|
|
116391
|
+
console.warn(`[PresentationEditor] Failed to layout ${kind} rId=${rId}:`, error);
|
|
116289
116392
|
}
|
|
116290
|
-
|
|
116291
|
-
|
|
116292
|
-
|
|
116393
|
+
}
|
|
116394
|
+
}
|
|
116395
|
+
function cloneHeaderFooterLayout(layout) {
|
|
116396
|
+
return {
|
|
116397
|
+
...layout,
|
|
116398
|
+
pages: layout.pages.map((page) => ({
|
|
116399
|
+
...page,
|
|
116400
|
+
fragments: page.fragments.map((f) => ({ ...f }))
|
|
116401
|
+
}))
|
|
116402
|
+
};
|
|
116403
|
+
}
|
|
116404
|
+
function adjustFramePositionsForContentWidth(layout, blocks2, effectiveWidth, contentWidth) {
|
|
116405
|
+
if (effectiveWidth <= contentWidth)
|
|
116406
|
+
return;
|
|
116407
|
+
const widthDiff = effectiveWidth - contentWidth;
|
|
116408
|
+
const blockById = /* @__PURE__ */ new Map;
|
|
116409
|
+
for (const block of blocks2)
|
|
116410
|
+
blockById.set(block.id, block);
|
|
116411
|
+
for (const page of layout.pages)
|
|
116412
|
+
for (const fragment of page.fragments) {
|
|
116413
|
+
if (fragment.kind !== "para")
|
|
116293
116414
|
continue;
|
|
116294
|
-
|
|
116295
|
-
|
|
116296
|
-
|
|
116297
|
-
|
|
116298
|
-
|
|
116415
|
+
const block = blockById.get(fragment.blockId);
|
|
116416
|
+
if (!block || block.kind !== "paragraph")
|
|
116417
|
+
continue;
|
|
116418
|
+
const frame = block.attrs?.frame;
|
|
116419
|
+
if (!frame || frame.wrap !== "none")
|
|
116420
|
+
continue;
|
|
116421
|
+
if (frame.xAlign === "right")
|
|
116422
|
+
fragment.x -= widthDiff;
|
|
116423
|
+
else if (frame.xAlign === "center")
|
|
116424
|
+
fragment.x -= widthDiff / 2;
|
|
116425
|
+
}
|
|
116426
|
+
}
|
|
116427
|
+
async function layoutWithPerSectionConstraints(kind, blocksByRId, sectionMetadata, fallbackConstraints, pageResolver, layoutsByRId) {
|
|
116428
|
+
if (!blocksByRId)
|
|
116429
|
+
return;
|
|
116430
|
+
const rIdPerSection = resolveRIdPerSection(sectionMetadata, kind);
|
|
116431
|
+
const tableWidthSpecByRId = /* @__PURE__ */ new Map;
|
|
116432
|
+
for (const [rId, blocks2] of blocksByRId) {
|
|
116433
|
+
const spec = getTableWidthSpec(blocks2);
|
|
116434
|
+
if (spec)
|
|
116435
|
+
tableWidthSpecByRId.set(rId, spec);
|
|
116436
|
+
}
|
|
116437
|
+
const groups = /* @__PURE__ */ new Map;
|
|
116438
|
+
for (const section of sectionMetadata) {
|
|
116439
|
+
const rId = rIdPerSection.get(section.sectionIndex);
|
|
116440
|
+
if (!rId || !blocksByRId.has(rId))
|
|
116441
|
+
continue;
|
|
116442
|
+
const contentWidth = buildSectionContentWidth(section, fallbackConstraints);
|
|
116443
|
+
const sectionConstraints = buildConstraintsForSection(section, fallbackConstraints, resolveTableMinWidth(tableWidthSpecByRId.get(rId), contentWidth) || undefined);
|
|
116444
|
+
const effectiveWidth = sectionConstraints.width;
|
|
116445
|
+
const groupKey = `${rId}::w${effectiveWidth}`;
|
|
116446
|
+
let group = groups.get(groupKey);
|
|
116447
|
+
if (!group) {
|
|
116448
|
+
group = {
|
|
116449
|
+
sectionConstraints,
|
|
116450
|
+
sectionIndices: [],
|
|
116451
|
+
rId,
|
|
116452
|
+
effectiveWidth
|
|
116453
|
+
};
|
|
116454
|
+
groups.set(groupKey, group);
|
|
116455
|
+
}
|
|
116456
|
+
group.sectionIndices.push(section.sectionIndex);
|
|
116457
|
+
}
|
|
116458
|
+
for (const [, group] of groups) {
|
|
116459
|
+
const blocks2 = blocksByRId.get(group.rId);
|
|
116460
|
+
if (!blocks2 || blocks2.length === 0)
|
|
116461
|
+
continue;
|
|
116462
|
+
try {
|
|
116463
|
+
const batchResult = await layoutHeaderFooterWithCache({ default: blocks2 }, group.sectionConstraints, (block, c$3) => measureBlock(block, c$3), undefined, undefined, pageResolver);
|
|
116464
|
+
if (batchResult.default)
|
|
116465
|
+
for (const sectionIndex of group.sectionIndices) {
|
|
116466
|
+
const contentWidth = buildSectionContentWidth(sectionMetadata.find((s2) => s2.sectionIndex === sectionIndex), fallbackConstraints);
|
|
116467
|
+
const needsFrameAdjust = group.effectiveWidth > contentWidth;
|
|
116468
|
+
let layout = batchResult.default.layout;
|
|
116469
|
+
if (needsFrameAdjust) {
|
|
116470
|
+
layout = cloneHeaderFooterLayout(layout);
|
|
116471
|
+
adjustFramePositionsForContentWidth(layout, batchResult.default.blocks, group.effectiveWidth, contentWidth);
|
|
116472
|
+
}
|
|
116473
|
+
const result = {
|
|
116474
|
+
kind,
|
|
116299
116475
|
type: "default",
|
|
116300
|
-
layout
|
|
116476
|
+
layout,
|
|
116301
116477
|
blocks: batchResult.default.blocks,
|
|
116302
|
-
measures: batchResult.default.measures
|
|
116303
|
-
|
|
116304
|
-
|
|
116305
|
-
|
|
116306
|
-
|
|
116478
|
+
measures: batchResult.default.measures,
|
|
116479
|
+
effectiveWidth: needsFrameAdjust ? group.effectiveWidth : undefined
|
|
116480
|
+
};
|
|
116481
|
+
layoutsByRId.set(`${group.rId}::s${sectionIndex}`, result);
|
|
116482
|
+
}
|
|
116483
|
+
} catch (error) {
|
|
116484
|
+
console.warn(`[PresentationEditor] Failed to layout ${kind} rId=${group.rId}:`, error);
|
|
116307
116485
|
}
|
|
116486
|
+
}
|
|
116308
116487
|
}
|
|
116309
116488
|
function dropCursor(options = {}) {
|
|
116310
116489
|
return new Plugin({ view(editorView) {
|
|
@@ -134091,7 +134270,7 @@ var Node$13 = class Node$14 {
|
|
|
134091
134270
|
console.warn("Failed to initialize developer tools:", error);
|
|
134092
134271
|
}
|
|
134093
134272
|
}
|
|
134094
|
-
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, NODE_TYPES2, BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, MARK_KEYS2, MARK_KEY_SET2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_COMMAND2, T_NOT_FOUND_TRACKED2, T_NOT_FOUND_COMMAND_TRACKED2, T_PLAN_ENGINE2, T_QUERY_MATCH2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, nodeTypeValues2, blockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, blockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, 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, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, formatCapabilitiesSchema2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, DocumentApiValidationError2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, REPLACE_INPUT_ALLOWED_KEYS2, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, STYLE_MARK_SCHEMA_NAMES, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, DocumentApiAdapterError, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, ALIAS_ELIGIBLE_TYPES, cacheByEditor, PlanError, revisionMap, subscribedEditors, registry, CORE_MARK_NAMES, METADATA_MARK_NAMES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, REF_HANDLERS, DEFAULT_INLINE_POLICY, OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, MARK_KEY_TO_SCHEMA_NAME, FALLBACK_STORE_KEY = "__documentApiComments", DERIVED_ID_LENGTH = 24, groupedCache, CSS_NAMED_COLORS, registered = false, 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 {
|
|
134273
|
+
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, NODE_TYPES2, BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, MARK_KEYS2, MARK_KEY_SET2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_QUERY_MATCH2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, nodeTypeValues2, blockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, 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, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, formatCapabilitiesSchema2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, DocumentApiValidationError2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, REPLACE_INPUT_ALLOWED_KEYS2, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, STYLE_MARK_SCHEMA_NAMES, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, DocumentApiAdapterError, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, ALIAS_ELIGIBLE_TYPES, cacheByEditor, PlanError, revisionMap, subscribedEditors, registry, CORE_MARK_NAMES, METADATA_MARK_NAMES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, REF_HANDLERS, DEFAULT_INLINE_POLICY, OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, MARK_KEY_TO_SCHEMA_NAME, FALLBACK_STORE_KEY = "__documentApiComments", DERIVED_ID_LENGTH = 24, groupedCache, CSS_NAMED_COLORS, registered = false, 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 {
|
|
134095
134274
|
constructor(config2) {
|
|
134096
134275
|
this.search = config2.search;
|
|
134097
134276
|
this.caseSensitive = !!config2.caseSensitive;
|
|
@@ -143527,11 +143706,13 @@ var Node$13 = class Node$14 {
|
|
|
143527
143706
|
return;
|
|
143528
143707
|
}
|
|
143529
143708
|
if ((this.#deps.getHeaderFooterSession()?.session?.mode ?? "body") !== "body") {
|
|
143530
|
-
if (this.#handleClickInHeaderFooterMode(event, x2, y$1))
|
|
143709
|
+
if (this.#handleClickInHeaderFooterMode(event, x2, y$1, normalizedPoint.pageIndex, normalizedPoint.pageLocalY))
|
|
143531
143710
|
return;
|
|
143532
143711
|
}
|
|
143533
|
-
if (this.#callbacks.hitTestHeaderFooterRegion?.(x2, y$1))
|
|
143712
|
+
if (this.#callbacks.hitTestHeaderFooterRegion?.(x2, y$1, normalizedPoint.pageIndex, normalizedPoint.pageLocalY)) {
|
|
143713
|
+
event.preventDefault();
|
|
143534
143714
|
return;
|
|
143715
|
+
}
|
|
143535
143716
|
const viewportHost = this.#deps.getViewportHost();
|
|
143536
143717
|
const pageGeometryHelper = this.#deps.getPageGeometryHelper();
|
|
143537
143718
|
const rawHit = clickToPosition(layoutState.layout, layoutState.blocks, layoutState.measures, {
|
|
@@ -143758,15 +143939,10 @@ var Node$13 = class Node$14 {
|
|
|
143758
143939
|
}
|
|
143759
143940
|
if (!this.#deps.getLayoutState().layout)
|
|
143760
143941
|
return;
|
|
143761
|
-
const
|
|
143762
|
-
|
|
143763
|
-
|
|
143764
|
-
const
|
|
143765
|
-
const scrollLeft = visibleHost.scrollLeft ?? 0;
|
|
143766
|
-
const scrollTop = visibleHost.scrollTop ?? 0;
|
|
143767
|
-
const x2 = (event.clientX - rect.left + scrollLeft) / zoom;
|
|
143768
|
-
const y$1 = (event.clientY - rect.top + scrollTop) / zoom;
|
|
143769
|
-
const region = this.#callbacks.hitTestHeaderFooterRegion?.(x2, y$1);
|
|
143942
|
+
const normalized = this.#callbacks.normalizeClientPoint?.(event.clientX, event.clientY);
|
|
143943
|
+
if (!normalized)
|
|
143944
|
+
return;
|
|
143945
|
+
const region = this.#callbacks.hitTestHeaderFooterRegion?.(normalized.x, normalized.y, normalized.pageIndex, normalized.pageLocalY);
|
|
143770
143946
|
if (region) {
|
|
143771
143947
|
event.preventDefault();
|
|
143772
143948
|
event.stopPropagation();
|
|
@@ -144020,15 +144196,15 @@ var Node$13 = class Node$14 {
|
|
|
144020
144196
|
document.activeElement.blur();
|
|
144021
144197
|
this.#focusEditorAtFirstPosition();
|
|
144022
144198
|
}
|
|
144023
|
-
#handleClickInHeaderFooterMode(event, x2, y$1) {
|
|
144199
|
+
#handleClickInHeaderFooterMode(event, x2, y$1, pageIndex, pageLocalY) {
|
|
144024
144200
|
const activeEditorHost = this.#deps?.getHeaderFooterSession()?.overlayManager?.getActiveEditorHost?.();
|
|
144025
144201
|
if (activeEditorHost && (activeEditorHost.contains(event.target) || activeEditorHost === event.target))
|
|
144026
144202
|
return true;
|
|
144027
|
-
if (!this.#callbacks.hitTestHeaderFooterRegion?.(x2, y$1)) {
|
|
144203
|
+
if (!this.#callbacks.hitTestHeaderFooterRegion?.(x2, y$1, pageIndex, pageLocalY)) {
|
|
144028
144204
|
this.#callbacks.exitHeaderFooterMode?.();
|
|
144029
144205
|
return false;
|
|
144030
144206
|
}
|
|
144031
|
-
return
|
|
144207
|
+
return false;
|
|
144032
144208
|
}
|
|
144033
144209
|
#handleInlineImageClick(event, targetImg, rawHit, doc$2, epochMapper) {
|
|
144034
144210
|
if (!targetImg)
|
|
@@ -144230,7 +144406,7 @@ var Node$13 = class Node$14 {
|
|
|
144230
144406
|
this.#callbacks.clearHoverRegion?.();
|
|
144231
144407
|
return;
|
|
144232
144408
|
}
|
|
144233
|
-
const region = this.#callbacks.hitTestHeaderFooterRegion?.(normalized.x, normalized.y);
|
|
144409
|
+
const region = this.#callbacks.hitTestHeaderFooterRegion?.(normalized.x, normalized.y, normalized.pageIndex, normalized.pageLocalY);
|
|
144234
144410
|
if (!region) {
|
|
144235
144411
|
this.#callbacks.clearHoverRegion?.();
|
|
144236
144412
|
return;
|
|
@@ -145000,6 +145176,7 @@ var Node$13 = class Node$14 {
|
|
|
145000
145176
|
pm.style.minHeight = "100%";
|
|
145001
145177
|
pm.style.outline = "none";
|
|
145002
145178
|
pm.style.border = "none";
|
|
145179
|
+
pm.classList.add("sd-header-footer");
|
|
145003
145180
|
pm.setAttribute("role", "textbox");
|
|
145004
145181
|
pm.setAttribute("aria-multiline", true);
|
|
145005
145182
|
pm.setAttribute("aria-label", `${type} content area. Double click to start typing.`);
|
|
@@ -145242,7 +145419,7 @@ var Node$13 = class Node$14 {
|
|
|
145242
145419
|
position: "absolute",
|
|
145243
145420
|
pointerEvents: "auto",
|
|
145244
145421
|
visibility: "hidden",
|
|
145245
|
-
overflow: "
|
|
145422
|
+
overflow: "visible",
|
|
145246
145423
|
boxSizing: "border-box"
|
|
145247
145424
|
});
|
|
145248
145425
|
if (decorationContainer)
|
|
@@ -145669,12 +145846,14 @@ var Node$13 = class Node$14 {
|
|
|
145669
145846
|
const actualPageHeight = page.size?.h ?? pageHeight;
|
|
145670
145847
|
const headerPayload = this.#headerDecorationProvider?.(page.number, margins, page);
|
|
145671
145848
|
const headerBox = this.#computeDecorationBox("header", margins, actualPageHeight);
|
|
145849
|
+
const displayPageNumber = page.numberText ?? String(page.number);
|
|
145672
145850
|
this.#headerRegions.set(pageIndex, {
|
|
145673
145851
|
kind: "header",
|
|
145674
145852
|
headerId: headerPayload?.headerId,
|
|
145675
145853
|
sectionType: headerPayload?.sectionType ?? this.#computeExpectedSectionType("header", page, sectionFirstPageNumbers),
|
|
145676
145854
|
pageIndex,
|
|
145677
145855
|
pageNumber: page.number,
|
|
145856
|
+
displayPageNumber,
|
|
145678
145857
|
localX: headerPayload?.hitRegion?.x ?? headerBox.x,
|
|
145679
145858
|
localY: headerPayload?.hitRegion?.y ?? headerBox.offset,
|
|
145680
145859
|
width: headerPayload?.hitRegion?.width ?? headerBox.width,
|
|
@@ -145689,6 +145868,7 @@ var Node$13 = class Node$14 {
|
|
|
145689
145868
|
sectionType: footerPayload?.sectionType ?? this.#computeExpectedSectionType("footer", page, sectionFirstPageNumbers),
|
|
145690
145869
|
pageIndex,
|
|
145691
145870
|
pageNumber: page.number,
|
|
145871
|
+
displayPageNumber,
|
|
145692
145872
|
localX: footerPayload?.hitRegion?.x ?? footerBox.x,
|
|
145693
145873
|
localY: footerPayload?.hitRegion?.y ?? footerBox.offset,
|
|
145694
145874
|
width: footerPayload?.hitRegion?.width ?? footerBox.width,
|
|
@@ -145698,16 +145878,29 @@ var Node$13 = class Node$14 {
|
|
|
145698
145878
|
});
|
|
145699
145879
|
});
|
|
145700
145880
|
}
|
|
145701
|
-
hitTestRegion(x2, y$1, layout) {
|
|
145881
|
+
hitTestRegion(x2, y$1, layout, knownPageIndex, knownPageLocalY) {
|
|
145702
145882
|
if (!layout)
|
|
145703
145883
|
return null;
|
|
145704
145884
|
const layoutOptions = this.#deps?.getLayoutOptions() ?? {};
|
|
145705
|
-
const
|
|
145885
|
+
const defaultPageHeight = layout.pageSize?.h ?? layoutOptions.pageSize?.h ?? this.#options.defaultPageSize.h;
|
|
145706
145886
|
const pageGap = layout.pageGap ?? 0;
|
|
145707
|
-
if (
|
|
145887
|
+
if (defaultPageHeight <= 0)
|
|
145708
145888
|
return null;
|
|
145709
|
-
|
|
145710
|
-
|
|
145889
|
+
let pageIndex;
|
|
145890
|
+
let pageLocalY;
|
|
145891
|
+
if (knownPageIndex != null && knownPageLocalY != null) {
|
|
145892
|
+
pageIndex = knownPageIndex;
|
|
145893
|
+
pageLocalY = knownPageLocalY;
|
|
145894
|
+
} else if (knownPageIndex != null) {
|
|
145895
|
+
pageIndex = knownPageIndex;
|
|
145896
|
+
let pageTopY = 0;
|
|
145897
|
+
for (let i$1 = 0;i$1 < pageIndex && i$1 < layout.pages.length; i$1++)
|
|
145898
|
+
pageTopY += (layout.pages[i$1].size?.h ?? defaultPageHeight) + pageGap;
|
|
145899
|
+
pageLocalY = y$1 - pageTopY;
|
|
145900
|
+
} else {
|
|
145901
|
+
pageIndex = Math.max(0, Math.floor(y$1 / (defaultPageHeight + pageGap)));
|
|
145902
|
+
pageLocalY = y$1 - pageIndex * (defaultPageHeight + pageGap);
|
|
145903
|
+
}
|
|
145711
145904
|
const headerRegion = this.#headerRegions.get(pageIndex);
|
|
145712
145905
|
if (headerRegion && this.#pointInRegion(headerRegion, x2, pageLocalY))
|
|
145713
145906
|
return headerRegion;
|
|
@@ -145795,6 +145988,15 @@ var Node$13 = class Node$14 {
|
|
|
145795
145988
|
this.clearHover();
|
|
145796
145989
|
return;
|
|
145797
145990
|
}
|
|
145991
|
+
if (this.#session.mode !== "body") {
|
|
145992
|
+
if (this.#activeEditor) {
|
|
145993
|
+
this.#activeEditor.setEditable(false);
|
|
145994
|
+
this.#activeEditor.setOptions({ documentMode: "viewing" });
|
|
145995
|
+
}
|
|
145996
|
+
this.#overlayManager.hideEditingOverlay();
|
|
145997
|
+
this.#activeEditor = null;
|
|
145998
|
+
this.#session = { mode: "body" };
|
|
145999
|
+
}
|
|
145798
146000
|
const descriptor = this.#resolveDescriptorForRegion(region);
|
|
145799
146001
|
if (!descriptor) {
|
|
145800
146002
|
console.warn("[HeaderFooterSessionManager] No descriptor found for region:", region);
|
|
@@ -145849,7 +146051,7 @@ var Node$13 = class Node$14 {
|
|
|
145849
146051
|
});
|
|
145850
146052
|
return;
|
|
145851
146053
|
}
|
|
145852
|
-
const
|
|
146054
|
+
const bodyPageCount = this.#deps?.getBodyPageCount() ?? 1;
|
|
145853
146055
|
let editor;
|
|
145854
146056
|
try {
|
|
145855
146057
|
editor = await this.#headerFooterManager.ensureEditor(descriptor, {
|
|
@@ -145857,7 +146059,7 @@ var Node$13 = class Node$14 {
|
|
|
145857
146059
|
availableWidth: region.width,
|
|
145858
146060
|
availableHeight: region.height,
|
|
145859
146061
|
currentPageNumber: region.pageNumber,
|
|
145860
|
-
totalPageCount:
|
|
146062
|
+
totalPageCount: bodyPageCount
|
|
145861
146063
|
});
|
|
145862
146064
|
} catch (editorError) {
|
|
145863
146065
|
console.error("[HeaderFooterSessionManager] Error creating editor:", editorError);
|
|
@@ -146310,8 +146512,10 @@ var Node$13 = class Node$14 {
|
|
|
146310
146512
|
}
|
|
146311
146513
|
if (!headerFooterType)
|
|
146312
146514
|
return null;
|
|
146313
|
-
|
|
146314
|
-
|
|
146515
|
+
const compositeKey = sectionRId ? `${sectionRId}::s${sectionIndex}` : undefined;
|
|
146516
|
+
const rIdLayoutKey = compositeKey && layoutsByRId.has(compositeKey) && compositeKey || sectionRId && layoutsByRId.has(sectionRId) && sectionRId || undefined;
|
|
146517
|
+
if (rIdLayoutKey) {
|
|
146518
|
+
const rIdLayout = layoutsByRId.get(rIdLayoutKey);
|
|
146315
146519
|
if (!rIdLayout)
|
|
146316
146520
|
console.warn(`[HeaderFooterSessionManager] Inconsistent state: layoutsByRId.has('${sectionRId}') returned true but get() returned undefined`);
|
|
146317
146521
|
else {
|
|
@@ -146322,6 +146526,7 @@ var Node$13 = class Node$14 {
|
|
|
146322
146526
|
const margins$1 = pageMargins ?? layout.pages[0]?.margins ?? layoutOptions.margins ?? defaultMargins;
|
|
146323
146527
|
const decorationMargins$1 = kind === "footer" ? this.#stripFootnoteReserveFromBottomMargin(margins$1, page ?? null) : margins$1;
|
|
146324
146528
|
const box$1 = this.#computeDecorationBox(kind, decorationMargins$1, pageHeight$1);
|
|
146529
|
+
const effectiveWidth = rIdLayout.effectiveWidth ?? box$1.width;
|
|
146325
146530
|
const rawLayoutHeight$1 = rIdLayout.layout.height ?? 0;
|
|
146326
146531
|
const metrics$1 = this.#computeMetrics(kind, rawLayoutHeight$1, box$1, pageHeight$1, margins$1?.footer ?? 0);
|
|
146327
146532
|
const layoutMinY$1 = rIdLayout.layout.minY ?? 0;
|
|
@@ -146334,20 +146539,20 @@ var Node$13 = class Node$14 {
|
|
|
146334
146539
|
contentHeight: metrics$1.layoutHeight > 0 ? metrics$1.layoutHeight : metrics$1.containerHeight,
|
|
146335
146540
|
offset: metrics$1.offset,
|
|
146336
146541
|
marginLeft: box$1.x,
|
|
146337
|
-
contentWidth:
|
|
146542
|
+
contentWidth: effectiveWidth,
|
|
146338
146543
|
headerId: sectionRId,
|
|
146339
146544
|
sectionType: headerFooterType,
|
|
146340
146545
|
minY: layoutMinY$1,
|
|
146341
146546
|
box: {
|
|
146342
146547
|
x: box$1.x,
|
|
146343
146548
|
y: metrics$1.offset,
|
|
146344
|
-
width:
|
|
146549
|
+
width: effectiveWidth,
|
|
146345
146550
|
height: metrics$1.containerHeight
|
|
146346
146551
|
},
|
|
146347
146552
|
hitRegion: {
|
|
146348
146553
|
x: box$1.x,
|
|
146349
146554
|
y: metrics$1.offset,
|
|
146350
|
-
width:
|
|
146555
|
+
width: effectiveWidth,
|
|
146351
146556
|
height: metrics$1.containerHeight
|
|
146352
146557
|
}
|
|
146353
146558
|
};
|
|
@@ -148922,7 +149127,7 @@ var Node$13 = class Node$14 {
|
|
|
148922
149127
|
};
|
|
148923
149128
|
case "total-page-number":
|
|
148924
149129
|
return {
|
|
148925
|
-
text: editor.options.parentEditor?.currentTotalPages || "1",
|
|
149130
|
+
text: editor.options.totalPageCount || editor.options.parentEditor?.currentTotalPages || "1",
|
|
148926
149131
|
className: "sd-editor-auto-total-pages",
|
|
148927
149132
|
dataId: "auto-total-pages",
|
|
148928
149133
|
ariaLabel: "Total page count node"
|
|
@@ -148984,6 +149189,10 @@ var Node$13 = class Node$14 {
|
|
|
148984
149189
|
if (!incomingType || incomingType !== currentType)
|
|
148985
149190
|
return false;
|
|
148986
149191
|
this.node = node3;
|
|
149192
|
+
const attrs = getNodeAttributes(this.node.type.name, this.editor);
|
|
149193
|
+
const newText = String(attrs.text);
|
|
149194
|
+
if (this.dom.textContent !== newText)
|
|
149195
|
+
this.dom.textContent = newText;
|
|
148987
149196
|
return true;
|
|
148988
149197
|
}
|
|
148989
149198
|
}, getMarksFromNeighbors = (currentPos, view) => {
|
|
@@ -152132,9 +152341,9 @@ var Node$13 = class Node$14 {
|
|
|
152132
152341
|
trackedChanges: context.trackedChanges ?? []
|
|
152133
152342
|
});
|
|
152134
152343
|
}, _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;
|
|
152135
|
-
var
|
|
152344
|
+
var init_src_DsAtPNrg_es = __esm(() => {
|
|
152136
152345
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
152137
|
-
|
|
152346
|
+
init_SuperConverter_Cf1y7bFA_es();
|
|
152138
152347
|
init_jszip_ChlR43oI_es();
|
|
152139
152348
|
init_uuid_2IzDu5nl_es();
|
|
152140
152349
|
init_constants_DBKi0Amm_es();
|
|
@@ -160232,22 +160441,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160232
160441
|
NONE_FAILURES2 = [];
|
|
160233
160442
|
NONE_THROWS2 = [];
|
|
160234
160443
|
T_NOT_FOUND2 = ["TARGET_NOT_FOUND"];
|
|
160235
|
-
|
|
160236
|
-
"TARGET_NOT_FOUND",
|
|
160237
|
-
"COMMAND_UNAVAILABLE",
|
|
160238
|
-
"CAPABILITY_UNAVAILABLE"
|
|
160239
|
-
];
|
|
160240
|
-
T_NOT_FOUND_TRACKED2 = [
|
|
160241
|
-
"TARGET_NOT_FOUND",
|
|
160242
|
-
"TRACK_CHANGE_COMMAND_UNAVAILABLE",
|
|
160243
|
-
"CAPABILITY_UNAVAILABLE"
|
|
160244
|
-
];
|
|
160245
|
-
T_NOT_FOUND_COMMAND_TRACKED2 = [
|
|
160246
|
-
"TARGET_NOT_FOUND",
|
|
160247
|
-
"COMMAND_UNAVAILABLE",
|
|
160248
|
-
"TRACK_CHANGE_COMMAND_UNAVAILABLE",
|
|
160249
|
-
"CAPABILITY_UNAVAILABLE"
|
|
160250
|
-
];
|
|
160444
|
+
T_NOT_FOUND_CAPABLE2 = ["TARGET_NOT_FOUND", "CAPABILITY_UNAVAILABLE"];
|
|
160251
160445
|
T_PLAN_ENGINE2 = [
|
|
160252
160446
|
"REVISION_MISMATCH",
|
|
160253
160447
|
"MATCH_NOT_FOUND",
|
|
@@ -160275,6 +160469,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160275
160469
|
requiresDocumentContext: true,
|
|
160276
160470
|
metadata: readOperation2({
|
|
160277
160471
|
idempotency: "idempotent",
|
|
160472
|
+
throws: ["CAPABILITY_UNAVAILABLE", "INVALID_INPUT"],
|
|
160278
160473
|
deterministicTargetResolution: false
|
|
160279
160474
|
}),
|
|
160280
160475
|
referenceDocPath: "find.mdx",
|
|
@@ -160327,7 +160522,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160327
160522
|
supportsDryRun: true,
|
|
160328
160523
|
supportsTrackedMode: true,
|
|
160329
160524
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
160330
|
-
throws: [...
|
|
160525
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160331
160526
|
}),
|
|
160332
160527
|
referenceDocPath: "insert.mdx",
|
|
160333
160528
|
referenceGroup: "core"
|
|
@@ -160341,7 +160536,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160341
160536
|
supportsDryRun: true,
|
|
160342
160537
|
supportsTrackedMode: true,
|
|
160343
160538
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
160344
|
-
throws: [...
|
|
160539
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160345
160540
|
}),
|
|
160346
160541
|
referenceDocPath: "replace.mdx",
|
|
160347
160542
|
referenceGroup: "core"
|
|
@@ -160355,7 +160550,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160355
160550
|
supportsDryRun: true,
|
|
160356
160551
|
supportsTrackedMode: true,
|
|
160357
160552
|
possibleFailureCodes: ["NO_OP"],
|
|
160358
|
-
throws: [...
|
|
160553
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160359
160554
|
}),
|
|
160360
160555
|
referenceDocPath: "delete.mdx",
|
|
160361
160556
|
referenceGroup: "core"
|
|
@@ -160370,7 +160565,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160370
160565
|
supportsTrackedMode: true,
|
|
160371
160566
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160372
160567
|
throws: [
|
|
160373
|
-
...
|
|
160568
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160374
160569
|
"INVALID_TARGET",
|
|
160375
160570
|
"INVALID_INPUT"
|
|
160376
160571
|
]
|
|
@@ -160388,7 +160583,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160388
160583
|
supportsTrackedMode: true,
|
|
160389
160584
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160390
160585
|
throws: [
|
|
160391
|
-
...
|
|
160586
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160392
160587
|
"INVALID_TARGET",
|
|
160393
160588
|
"AMBIGUOUS_TARGET"
|
|
160394
160589
|
]
|
|
@@ -160406,7 +160601,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160406
160601
|
supportsTrackedMode: true,
|
|
160407
160602
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160408
160603
|
throws: [
|
|
160409
|
-
...
|
|
160604
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160410
160605
|
"INVALID_TARGET",
|
|
160411
160606
|
"AMBIGUOUS_TARGET"
|
|
160412
160607
|
]
|
|
@@ -160420,7 +160615,11 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160420
160615
|
requiresDocumentContext: true,
|
|
160421
160616
|
metadata: readOperation2({
|
|
160422
160617
|
idempotency: "idempotent",
|
|
160423
|
-
throws:
|
|
160618
|
+
throws: [
|
|
160619
|
+
"TARGET_NOT_FOUND",
|
|
160620
|
+
"INVALID_TARGET",
|
|
160621
|
+
"INVALID_INPUT"
|
|
160622
|
+
]
|
|
160424
160623
|
}),
|
|
160425
160624
|
referenceDocPath: "lists/list.mdx",
|
|
160426
160625
|
referenceGroup: "lists"
|
|
@@ -160445,7 +160644,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160445
160644
|
supportsDryRun: true,
|
|
160446
160645
|
supportsTrackedMode: true,
|
|
160447
160646
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160448
|
-
throws: [...
|
|
160647
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160449
160648
|
}),
|
|
160450
160649
|
referenceDocPath: "lists/insert.mdx",
|
|
160451
160650
|
referenceGroup: "lists"
|
|
@@ -160459,7 +160658,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160459
160658
|
supportsDryRun: true,
|
|
160460
160659
|
supportsTrackedMode: false,
|
|
160461
160660
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
160462
|
-
throws: [...
|
|
160661
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160463
160662
|
}),
|
|
160464
160663
|
referenceDocPath: "lists/set-type.mdx",
|
|
160465
160664
|
referenceGroup: "lists"
|
|
@@ -160473,7 +160672,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160473
160672
|
supportsDryRun: true,
|
|
160474
160673
|
supportsTrackedMode: false,
|
|
160475
160674
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
160476
|
-
throws: [...
|
|
160675
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160477
160676
|
}),
|
|
160478
160677
|
referenceDocPath: "lists/indent.mdx",
|
|
160479
160678
|
referenceGroup: "lists"
|
|
@@ -160487,7 +160686,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160487
160686
|
supportsDryRun: true,
|
|
160488
160687
|
supportsTrackedMode: false,
|
|
160489
160688
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
160490
|
-
throws: [...
|
|
160689
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160491
160690
|
}),
|
|
160492
160691
|
referenceDocPath: "lists/outdent.mdx",
|
|
160493
160692
|
referenceGroup: "lists"
|
|
@@ -160501,7 +160700,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160501
160700
|
supportsDryRun: true,
|
|
160502
160701
|
supportsTrackedMode: false,
|
|
160503
160702
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
160504
|
-
throws: [...
|
|
160703
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160505
160704
|
}),
|
|
160506
160705
|
referenceDocPath: "lists/restart.mdx",
|
|
160507
160706
|
referenceGroup: "lists"
|
|
@@ -160515,7 +160714,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160515
160714
|
supportsDryRun: true,
|
|
160516
160715
|
supportsTrackedMode: false,
|
|
160517
160716
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160518
|
-
throws: [...
|
|
160717
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160519
160718
|
}),
|
|
160520
160719
|
referenceDocPath: "lists/exit.mdx",
|
|
160521
160720
|
referenceGroup: "lists"
|
|
@@ -160529,7 +160728,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160529
160728
|
supportsDryRun: false,
|
|
160530
160729
|
supportsTrackedMode: false,
|
|
160531
160730
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
160532
|
-
throws: [...
|
|
160731
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160533
160732
|
}),
|
|
160534
160733
|
referenceDocPath: "comments/create.mdx",
|
|
160535
160734
|
referenceGroup: "comments"
|
|
@@ -160544,7 +160743,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160544
160743
|
supportsTrackedMode: false,
|
|
160545
160744
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
160546
160745
|
throws: [
|
|
160547
|
-
...
|
|
160746
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160548
160747
|
"INVALID_TARGET",
|
|
160549
160748
|
"INVALID_INPUT"
|
|
160550
160749
|
]
|
|
@@ -160561,7 +160760,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160561
160760
|
supportsDryRun: false,
|
|
160562
160761
|
supportsTrackedMode: false,
|
|
160563
160762
|
possibleFailureCodes: ["NO_OP"],
|
|
160564
|
-
throws:
|
|
160763
|
+
throws: T_NOT_FOUND_CAPABLE2
|
|
160565
160764
|
}),
|
|
160566
160765
|
referenceDocPath: "comments/delete.mdx",
|
|
160567
160766
|
referenceGroup: "comments"
|
|
@@ -160581,7 +160780,10 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160581
160780
|
memberPath: "comments.list",
|
|
160582
160781
|
description: "List all comment threads in the document.",
|
|
160583
160782
|
requiresDocumentContext: true,
|
|
160584
|
-
metadata: readOperation2({
|
|
160783
|
+
metadata: readOperation2({
|
|
160784
|
+
idempotency: "idempotent",
|
|
160785
|
+
throws: ["INVALID_INPUT"]
|
|
160786
|
+
}),
|
|
160585
160787
|
referenceDocPath: "comments/list.mdx",
|
|
160586
160788
|
referenceGroup: "comments"
|
|
160587
160789
|
},
|
|
@@ -160589,7 +160791,10 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160589
160791
|
memberPath: "trackChanges.list",
|
|
160590
160792
|
description: "List all tracked changes in the document.",
|
|
160591
160793
|
requiresDocumentContext: true,
|
|
160592
|
-
metadata: readOperation2({
|
|
160794
|
+
metadata: readOperation2({
|
|
160795
|
+
idempotency: "idempotent",
|
|
160796
|
+
throws: ["INVALID_INPUT"]
|
|
160797
|
+
}),
|
|
160593
160798
|
referenceDocPath: "track-changes/list.mdx",
|
|
160594
160799
|
referenceGroup: "trackChanges"
|
|
160595
160800
|
},
|
|
@@ -160614,7 +160819,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160614
160819
|
supportsTrackedMode: false,
|
|
160615
160820
|
possibleFailureCodes: ["NO_OP"],
|
|
160616
160821
|
throws: [
|
|
160617
|
-
...
|
|
160822
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160618
160823
|
"INVALID_INPUT",
|
|
160619
160824
|
"INVALID_TARGET"
|
|
160620
160825
|
]
|
|
@@ -160701,6 +160906,16 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160701
160906
|
"blockId",
|
|
160702
160907
|
"range"
|
|
160703
160908
|
]), objectSchema2({
|
|
160909
|
+
blockId: { type: "string" },
|
|
160910
|
+
range: ref$1("Range")
|
|
160911
|
+
}, ["blockId", "range"]), objectSchema2({
|
|
160912
|
+
kind: { const: "text" },
|
|
160913
|
+
segments: {
|
|
160914
|
+
type: "array",
|
|
160915
|
+
items: ref$1("TextSegment"),
|
|
160916
|
+
minItems: 1
|
|
160917
|
+
}
|
|
160918
|
+
}, ["kind", "segments"]), objectSchema2({
|
|
160704
160919
|
kind: { const: "block" },
|
|
160705
160920
|
nodeType: { enum: [...blockNodeTypeValues2] },
|
|
160706
160921
|
nodeId: { type: "string" }
|
|
@@ -160857,6 +161072,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160857
161072
|
ref$1("InlineAnchor");
|
|
160858
161073
|
ref$1("TargetKind");
|
|
160859
161074
|
textAddressSchema2 = ref$1("TextAddress");
|
|
161075
|
+
textTargetSchema2 = ref$1("TextTarget");
|
|
160860
161076
|
blockNodeAddressSchema2 = ref$1("BlockNodeAddress");
|
|
160861
161077
|
paragraphAddressSchema2 = ref$1("ParagraphAddress");
|
|
160862
161078
|
headingAddressSchema2 = ref$1("HeadingAddress");
|
|
@@ -161059,7 +161275,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161059
161275
|
text: { type: "string" },
|
|
161060
161276
|
isInternal: { type: "boolean" },
|
|
161061
161277
|
status: { enum: ["open", "resolved"] },
|
|
161062
|
-
target:
|
|
161278
|
+
target: textTargetSchema2,
|
|
161279
|
+
anchoredText: { type: "string" },
|
|
161063
161280
|
createdTime: { type: "number" },
|
|
161064
161281
|
creatorName: { type: "string" },
|
|
161065
161282
|
creatorEmail: { type: "string" }
|
|
@@ -161075,7 +161292,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161075
161292
|
text: { type: "string" },
|
|
161076
161293
|
isInternal: { type: "boolean" },
|
|
161077
161294
|
status: { enum: ["open", "resolved"] },
|
|
161078
|
-
target:
|
|
161295
|
+
target: textTargetSchema2,
|
|
161296
|
+
anchoredText: { type: "string" },
|
|
161079
161297
|
createdTime: { type: "number" },
|
|
161080
161298
|
creatorName: { type: "string" },
|
|
161081
161299
|
creatorEmail: { type: "string" }
|
|
@@ -170753,8 +170971,10 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
170753
170971
|
updateOptions.availableWidth = options.availableWidth;
|
|
170754
170972
|
if (options.availableHeight !== undefined)
|
|
170755
170973
|
updateOptions.availableHeight = options.availableHeight;
|
|
170756
|
-
if (Object.keys(updateOptions).length > 0)
|
|
170974
|
+
if (Object.keys(updateOptions).length > 0) {
|
|
170757
170975
|
existing.editor.setOptions(updateOptions);
|
|
170976
|
+
this.#refreshPageNumberDisplay(existing.editor);
|
|
170977
|
+
}
|
|
170758
170978
|
}
|
|
170759
170979
|
return existing.editor;
|
|
170760
170980
|
}
|
|
@@ -170785,6 +171005,25 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
170785
171005
|
this.#pendingCreations.set(descriptor.id, creationPromise);
|
|
170786
171006
|
return creationPromise;
|
|
170787
171007
|
}
|
|
171008
|
+
#refreshPageNumberDisplay(editor) {
|
|
171009
|
+
const container = editor.view?.dom;
|
|
171010
|
+
if (!container)
|
|
171011
|
+
return;
|
|
171012
|
+
const opts = editor.options;
|
|
171013
|
+
const parentEditor = opts.parentEditor;
|
|
171014
|
+
const currentPage = String(opts.currentPageNumber || "1");
|
|
171015
|
+
const totalPages = String(opts.totalPageCount || parentEditor?.currentTotalPages || "1");
|
|
171016
|
+
const pageNumberEls = container.querySelectorAll('[data-id="auto-page-number"]');
|
|
171017
|
+
const totalPagesEls = container.querySelectorAll('[data-id="auto-total-pages"]');
|
|
171018
|
+
pageNumberEls.forEach((el) => {
|
|
171019
|
+
if (el.textContent !== currentPage)
|
|
171020
|
+
el.textContent = currentPage;
|
|
171021
|
+
});
|
|
171022
|
+
totalPagesEls.forEach((el) => {
|
|
171023
|
+
if (el.textContent !== totalPages)
|
|
171024
|
+
el.textContent = totalPages;
|
|
171025
|
+
});
|
|
171026
|
+
}
|
|
170788
171027
|
getEditor(descriptor) {
|
|
170789
171028
|
if (!descriptor?.id)
|
|
170790
171029
|
return null;
|
|
@@ -172465,7 +172704,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
172465
172704
|
goToAnchor: (href) => this.goToAnchor(href),
|
|
172466
172705
|
emit: (event, payload) => this.emit(event, payload),
|
|
172467
172706
|
normalizeClientPoint: (clientX, clientY) => this.#normalizeClientPoint(clientX, clientY),
|
|
172468
|
-
hitTestHeaderFooterRegion: (x2, y$1) => this.#hitTestHeaderFooterRegion(x2, y$1),
|
|
172707
|
+
hitTestHeaderFooterRegion: (x2, y$1, pageIndex, pageLocalY) => this.#hitTestHeaderFooterRegion(x2, y$1, pageIndex, pageLocalY),
|
|
172469
172708
|
exitHeaderFooterMode: () => this.#exitHeaderFooterMode(),
|
|
172470
172709
|
activateHeaderFooterRegion: (region) => this.#activateHeaderFooterRegion(region),
|
|
172471
172710
|
createDefaultHeaderFooter: (region) => this.#createDefaultHeaderFooter(region),
|
|
@@ -172588,7 +172827,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
172588
172827
|
scheduleRerender: () => this.#scheduleRerender(),
|
|
172589
172828
|
setPendingDocChange: () => {
|
|
172590
172829
|
this.#pendingDocChange = true;
|
|
172591
|
-
}
|
|
172830
|
+
},
|
|
172831
|
+
getBodyPageCount: () => this.#layoutState?.layout?.pages?.length ?? 1
|
|
172592
172832
|
});
|
|
172593
172833
|
this.#headerFooterSession.setCallbacks({
|
|
172594
172834
|
onModeChanged: (session) => {
|
|
@@ -173504,8 +173744,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
173504
173744
|
#updateDecorationProviders(layout) {
|
|
173505
173745
|
this.#headerFooterSession?.updateDecorationProviders(layout);
|
|
173506
173746
|
}
|
|
173507
|
-
#hitTestHeaderFooterRegion(x2, y$1) {
|
|
173508
|
-
return this.#headerFooterSession?.hitTestRegion(x2, y$1, this.#layoutState.layout) ?? null;
|
|
173747
|
+
#hitTestHeaderFooterRegion(x2, y$1, pageIndex, pageLocalY) {
|
|
173748
|
+
return this.#headerFooterSession?.hitTestRegion(x2, y$1, this.#layoutState.layout, pageIndex, pageLocalY) ?? null;
|
|
173509
173749
|
}
|
|
173510
173750
|
#activateHeaderFooterRegion(region) {
|
|
173511
173751
|
this.#headerFooterSession?.activateRegion(region);
|
|
@@ -178257,7 +178497,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
178257
178497
|
const { schema } = state;
|
|
178258
178498
|
if (!schema.nodes?.["total-page-number"])
|
|
178259
178499
|
return false;
|
|
178260
|
-
const currentPages = editor?.options?.parentEditor?.currentTotalPages || 1;
|
|
178500
|
+
const currentPages = editor?.options?.totalPageCount || editor?.options?.parentEditor?.currentTotalPages || 1;
|
|
178261
178501
|
const pageNumberNode = {
|
|
178262
178502
|
type: "total-page-number",
|
|
178263
178503
|
content: [{
|
|
@@ -183582,8 +183822,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183582
183822
|
return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
|
|
183583
183823
|
};
|
|
183584
183824
|
stubFalse_default = stubFalse;
|
|
183585
|
-
freeExports$2 = typeof
|
|
183586
|
-
freeModule$2 = freeExports$2 && typeof
|
|
183825
|
+
freeExports$2 = typeof exports_src_DsAtPNrg_es == "object" && exports_src_DsAtPNrg_es && !exports_src_DsAtPNrg_es.nodeType && exports_src_DsAtPNrg_es;
|
|
183826
|
+
freeModule$2 = freeExports$2 && typeof module_src_DsAtPNrg_es == "object" && module_src_DsAtPNrg_es && !module_src_DsAtPNrg_es.nodeType && module_src_DsAtPNrg_es;
|
|
183587
183827
|
Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
|
|
183588
183828
|
isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
|
|
183589
183829
|
typedArrayTags = {};
|
|
@@ -183591,8 +183831,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183591
183831
|
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;
|
|
183592
183832
|
_baseIsTypedArray_default = baseIsTypedArray;
|
|
183593
183833
|
_baseUnary_default = baseUnary;
|
|
183594
|
-
freeExports$1 = typeof
|
|
183595
|
-
freeModule$1 = freeExports$1 && typeof
|
|
183834
|
+
freeExports$1 = typeof exports_src_DsAtPNrg_es == "object" && exports_src_DsAtPNrg_es && !exports_src_DsAtPNrg_es.nodeType && exports_src_DsAtPNrg_es;
|
|
183835
|
+
freeModule$1 = freeExports$1 && typeof module_src_DsAtPNrg_es == "object" && module_src_DsAtPNrg_es && !module_src_DsAtPNrg_es.nodeType && module_src_DsAtPNrg_es;
|
|
183596
183836
|
freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
|
|
183597
183837
|
_nodeUtil_default = function() {
|
|
183598
183838
|
try {
|
|
@@ -183697,8 +183937,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183697
183937
|
Stack.prototype.has = _stackHas_default;
|
|
183698
183938
|
Stack.prototype.set = _stackSet_default;
|
|
183699
183939
|
_Stack_default = Stack;
|
|
183700
|
-
freeExports = typeof
|
|
183701
|
-
freeModule = freeExports && typeof
|
|
183940
|
+
freeExports = typeof exports_src_DsAtPNrg_es == "object" && exports_src_DsAtPNrg_es && !exports_src_DsAtPNrg_es.nodeType && exports_src_DsAtPNrg_es;
|
|
183941
|
+
freeModule = freeExports && typeof module_src_DsAtPNrg_es == "object" && module_src_DsAtPNrg_es && !module_src_DsAtPNrg_es.nodeType && module_src_DsAtPNrg_es;
|
|
183702
183942
|
Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
|
|
183703
183943
|
allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
|
|
183704
183944
|
_cloneBuffer_default = cloneBuffer;
|
|
@@ -191317,8 +191557,8 @@ var init_zipper_BJHqrQMq_es = __esm(() => {
|
|
|
191317
191557
|
|
|
191318
191558
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
191319
191559
|
var init_super_editor_es = __esm(() => {
|
|
191320
|
-
|
|
191321
|
-
|
|
191560
|
+
init_src_DsAtPNrg_es();
|
|
191561
|
+
init_SuperConverter_Cf1y7bFA_es();
|
|
191322
191562
|
init_jszip_ChlR43oI_es();
|
|
191323
191563
|
init_xml_js_DLE8mr0n_es();
|
|
191324
191564
|
init_constants_DBKi0Amm_es();
|
|
@@ -197434,10 +197674,7 @@ function isRefWhere2(where) {
|
|
|
197434
197674
|
return where.by === "ref";
|
|
197435
197675
|
}
|
|
197436
197676
|
function isV3Ref2(payload) {
|
|
197437
|
-
return "v" in payload && payload.v === 3;
|
|
197438
|
-
}
|
|
197439
|
-
function isV2Ref2(payload) {
|
|
197440
|
-
return "v" in payload && payload.v === 2;
|
|
197677
|
+
return typeof payload === "object" && payload !== null && "v" in payload && payload.v === 3;
|
|
197441
197678
|
}
|
|
197442
197679
|
function resolveAbsoluteRange2(editor, candidate, from3, to, stepId) {
|
|
197443
197680
|
const resolved = resolveTextRangeInBlock2(candidate.node, candidate.pos, { start: from3, end: to });
|
|
@@ -197660,58 +197897,6 @@ function decodeTextRefPayload2(encoded, stepId) {
|
|
|
197660
197897
|
throw planError2("INVALID_INPUT", "invalid text ref encoding", stepId);
|
|
197661
197898
|
}
|
|
197662
197899
|
}
|
|
197663
|
-
function resolveV1TextRef2(editor, index2, step, refData) {
|
|
197664
|
-
const currentRevision = getRevision2(editor);
|
|
197665
|
-
if (refData.rev !== currentRevision) {
|
|
197666
|
-
throw planError2("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, { refRevision: refData.rev, currentRevision });
|
|
197667
|
-
}
|
|
197668
|
-
if (!refData.ranges?.length)
|
|
197669
|
-
return [];
|
|
197670
|
-
const coalesced = normalizeMatchRanges2(step.id, refData.ranges);
|
|
197671
|
-
const candidate = index2.candidates.find((c2) => c2.nodeId === coalesced.blockId);
|
|
197672
|
-
if (!candidate)
|
|
197673
|
-
return [];
|
|
197674
|
-
const blockText = getBlockText2(editor, candidate);
|
|
197675
|
-
const matchText = blockText.slice(coalesced.from, coalesced.to);
|
|
197676
|
-
const addr = {
|
|
197677
|
-
blockId: coalesced.blockId,
|
|
197678
|
-
from: coalesced.from,
|
|
197679
|
-
to: coalesced.to,
|
|
197680
|
-
text: matchText,
|
|
197681
|
-
marks: [],
|
|
197682
|
-
blockPos: candidate.pos
|
|
197683
|
-
};
|
|
197684
|
-
return [buildRangeTarget2(editor, step, addr, candidate)];
|
|
197685
|
-
}
|
|
197686
|
-
function resolveV2TextRef2(editor, index2, step, refData) {
|
|
197687
|
-
const currentRevision = getRevision2(editor);
|
|
197688
|
-
if (refData.rev !== currentRevision) {
|
|
197689
|
-
throw planError2("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, { refRevision: refData.rev, currentRevision });
|
|
197690
|
-
}
|
|
197691
|
-
if (!refData.segments?.length)
|
|
197692
|
-
return [];
|
|
197693
|
-
const segments = refData.segments.map((s2) => ({ blockId: s2.blockId, from: s2.start, to: s2.end }));
|
|
197694
|
-
if (segments.length === 1) {
|
|
197695
|
-
const seg = segments[0];
|
|
197696
|
-
const candidate = index2.candidates.find((c2) => c2.nodeId === seg.blockId);
|
|
197697
|
-
if (!candidate)
|
|
197698
|
-
return [];
|
|
197699
|
-
const blockText = getBlockText2(editor, candidate);
|
|
197700
|
-
const matchText = blockText.slice(seg.from, seg.to);
|
|
197701
|
-
const addr = {
|
|
197702
|
-
blockId: seg.blockId,
|
|
197703
|
-
from: seg.from,
|
|
197704
|
-
to: seg.to,
|
|
197705
|
-
text: matchText,
|
|
197706
|
-
marks: [],
|
|
197707
|
-
blockPos: candidate.pos
|
|
197708
|
-
};
|
|
197709
|
-
const target = buildRangeTarget2(editor, step, addr, candidate);
|
|
197710
|
-
target.matchId = refData.matchId;
|
|
197711
|
-
return [target];
|
|
197712
|
-
}
|
|
197713
|
-
return [buildSpanTarget2(editor, index2, step, segments, refData.matchId)];
|
|
197714
|
-
}
|
|
197715
197900
|
function resolveV3TextRef2(editor, index2, step, refData) {
|
|
197716
197901
|
const currentRevision = getRevision2(editor);
|
|
197717
197902
|
if (refData.rev !== currentRevision) {
|
|
@@ -197744,13 +197929,10 @@ function resolveV3TextRef2(editor, index2, step, refData) {
|
|
|
197744
197929
|
function resolveTextRef2(editor, index2, step, ref3) {
|
|
197745
197930
|
const encoded = ref3.slice(5);
|
|
197746
197931
|
const payload = decodeTextRefPayload2(encoded, step.id);
|
|
197747
|
-
if (isV3Ref2(payload)) {
|
|
197748
|
-
|
|
197932
|
+
if (!isV3Ref2(payload)) {
|
|
197933
|
+
throw planError2("INVALID_INPUT", "only V3 text refs are supported", step.id);
|
|
197749
197934
|
}
|
|
197750
|
-
|
|
197751
|
-
return resolveV2TextRef2(editor, index2, step, payload);
|
|
197752
|
-
}
|
|
197753
|
-
return resolveV1TextRef2(editor, index2, step, payload);
|
|
197935
|
+
return resolveV3TextRef2(editor, index2, step, payload);
|
|
197754
197936
|
}
|
|
197755
197937
|
function resolveBlockRef2(editor, index2, step, ref3) {
|
|
197756
197938
|
const candidate = index2.candidates.find((c2) => c2.nodeId === ref3);
|
|
@@ -197776,9 +197958,6 @@ function dispatchRefHandler2(editor, index2, step, ref3) {
|
|
|
197776
197958
|
return resolveBlockRef2(editor, index2, step, ref3);
|
|
197777
197959
|
}
|
|
197778
197960
|
function resolveRefTargets2(editor, index2, step, where) {
|
|
197779
|
-
if (where.require !== undefined && where.require !== "exactlyOne") {
|
|
197780
|
-
throw planError2("INVALID_INPUT", `ref-based targeting only accepts require: 'exactlyOne' (received '${where.require}')`, step.id);
|
|
197781
|
-
}
|
|
197782
197961
|
return dispatchRefHandler2(editor, index2, step, where.ref);
|
|
197783
197962
|
}
|
|
197784
197963
|
function resolveStepTargets2(editor, index2, step) {
|
|
@@ -198988,6 +199167,7 @@ function toCommentInfo2(entry, options = {}) {
|
|
|
198988
199167
|
isInternal: typeof entry.isInternal === "boolean" ? entry.isInternal : undefined,
|
|
198989
199168
|
status,
|
|
198990
199169
|
target: options.target,
|
|
199170
|
+
anchoredText: options.anchoredText,
|
|
198991
199171
|
createdTime: typeof entry.createdTime === "number" ? entry.createdTime : undefined,
|
|
198992
199172
|
creatorName: typeof entry.creatorName === "string" ? entry.creatorName : undefined,
|
|
198993
199173
|
creatorEmail: typeof entry.creatorEmail === "string" ? entry.creatorEmail : undefined
|
|
@@ -199124,7 +199304,64 @@ function resolveCommentIdentity2(editor, commentId) {
|
|
|
199124
199304
|
anchors
|
|
199125
199305
|
};
|
|
199126
199306
|
}
|
|
199127
|
-
function
|
|
199307
|
+
function canonicalizeAnchors2(sorted) {
|
|
199308
|
+
if (sorted.length === 0)
|
|
199309
|
+
return [];
|
|
199310
|
+
const result = [];
|
|
199311
|
+
let current = {
|
|
199312
|
+
blockId: sorted[0].target.blockId,
|
|
199313
|
+
range: { start: sorted[0].target.range.start, end: sorted[0].target.range.end },
|
|
199314
|
+
pos: sorted[0].pos,
|
|
199315
|
+
end: sorted[0].end
|
|
199316
|
+
};
|
|
199317
|
+
for (let i4 = 1;i4 < sorted.length; i4++) {
|
|
199318
|
+
const anchor = sorted[i4];
|
|
199319
|
+
const sameBlock = anchor.target.blockId === current.blockId;
|
|
199320
|
+
const overlapsOrAdjacent = anchor.target.range.start <= current.range.end;
|
|
199321
|
+
if (sameBlock && overlapsOrAdjacent) {
|
|
199322
|
+
current.range.end = Math.max(current.range.end, anchor.target.range.end);
|
|
199323
|
+
current.end = Math.max(current.end, anchor.end);
|
|
199324
|
+
} else {
|
|
199325
|
+
result.push(current);
|
|
199326
|
+
current = {
|
|
199327
|
+
blockId: anchor.target.blockId,
|
|
199328
|
+
range: { start: anchor.target.range.start, end: anchor.target.range.end },
|
|
199329
|
+
pos: anchor.pos,
|
|
199330
|
+
end: anchor.end
|
|
199331
|
+
};
|
|
199332
|
+
}
|
|
199333
|
+
}
|
|
199334
|
+
result.push(current);
|
|
199335
|
+
return result;
|
|
199336
|
+
}
|
|
199337
|
+
function extractSegmentText2(editor, pos, end) {
|
|
199338
|
+
try {
|
|
199339
|
+
const raw = editor.state.doc.textBetween(pos, end, " ", "");
|
|
199340
|
+
const cleaned = raw.replace(/\ufffc/g, "").trim();
|
|
199341
|
+
return cleaned.length > 0 ? cleaned : undefined;
|
|
199342
|
+
} catch {
|
|
199343
|
+
return;
|
|
199344
|
+
}
|
|
199345
|
+
}
|
|
199346
|
+
function buildAnchoredText2(editor, canonical) {
|
|
199347
|
+
const parts = [];
|
|
199348
|
+
for (const anchor of canonical) {
|
|
199349
|
+
const text4 = extractSegmentText2(editor, anchor.pos, anchor.end);
|
|
199350
|
+
if (text4)
|
|
199351
|
+
parts.push(text4);
|
|
199352
|
+
}
|
|
199353
|
+
return parts.length > 0 ? normalizeExcerpt2(parts.join(" ")) : undefined;
|
|
199354
|
+
}
|
|
199355
|
+
function buildTextTarget2(canonical) {
|
|
199356
|
+
if (canonical.length === 0)
|
|
199357
|
+
return;
|
|
199358
|
+
const segments = canonical.map((a2) => ({
|
|
199359
|
+
blockId: a2.blockId,
|
|
199360
|
+
range: { start: a2.range.start, end: a2.range.end }
|
|
199361
|
+
}));
|
|
199362
|
+
return { kind: "text", segments };
|
|
199363
|
+
}
|
|
199364
|
+
function mergeAnchorData2(editor, infosById, anchors) {
|
|
199128
199365
|
const grouped = new Map;
|
|
199129
199366
|
for (const anchor of anchors) {
|
|
199130
199367
|
const group = grouped.get(anchor.commentId) ?? [];
|
|
@@ -199133,28 +199370,34 @@ function mergeAnchorData2(infosById, anchors) {
|
|
|
199133
199370
|
}
|
|
199134
199371
|
for (const [commentId, commentAnchors] of grouped.entries()) {
|
|
199135
199372
|
const sorted = [...commentAnchors].sort((a2, b3) => a2.pos === b3.pos ? a2.end - b3.end : a2.pos - b3.pos);
|
|
199136
|
-
const
|
|
199373
|
+
const firstAnchor = sorted[0];
|
|
199137
199374
|
const status = sorted.every((anchor) => anchor.status === "resolved") ? "resolved" : "open";
|
|
199375
|
+
const canonical = canonicalizeAnchors2(sorted);
|
|
199376
|
+
const target = buildTextTarget2(canonical);
|
|
199377
|
+
const anchoredText = buildAnchoredText2(editor, canonical);
|
|
199138
199378
|
const existing = infosById.get(commentId);
|
|
199139
199379
|
if (existing) {
|
|
199140
|
-
if (!existing.target)
|
|
199141
|
-
existing.target =
|
|
199142
|
-
if (!existing.importedId &&
|
|
199143
|
-
existing.importedId =
|
|
199144
|
-
if (existing.isInternal == null &&
|
|
199145
|
-
existing.isInternal =
|
|
199380
|
+
if (!existing.target && target)
|
|
199381
|
+
existing.target = target;
|
|
199382
|
+
if (!existing.importedId && firstAnchor.importedId)
|
|
199383
|
+
existing.importedId = firstAnchor.importedId;
|
|
199384
|
+
if (existing.isInternal == null && firstAnchor.isInternal != null)
|
|
199385
|
+
existing.isInternal = firstAnchor.isInternal;
|
|
199146
199386
|
if (status === "open")
|
|
199147
199387
|
existing.status = "open";
|
|
199388
|
+
if (existing.anchoredText == null && anchoredText != null)
|
|
199389
|
+
existing.anchoredText = anchoredText;
|
|
199148
199390
|
continue;
|
|
199149
199391
|
}
|
|
199150
199392
|
infosById.set(commentId, toCommentInfo2({
|
|
199151
199393
|
commentId,
|
|
199152
|
-
importedId:
|
|
199153
|
-
isInternal:
|
|
199394
|
+
importedId: firstAnchor.importedId,
|
|
199395
|
+
isInternal: firstAnchor.isInternal,
|
|
199154
199396
|
isDone: status === "resolved"
|
|
199155
199397
|
}, {
|
|
199156
|
-
target
|
|
199157
|
-
status
|
|
199398
|
+
target,
|
|
199399
|
+
status,
|
|
199400
|
+
anchoredText
|
|
199158
199401
|
}));
|
|
199159
199402
|
}
|
|
199160
199403
|
}
|
|
@@ -199167,15 +199410,33 @@ function buildCommentInfos2(editor) {
|
|
|
199167
199410
|
continue;
|
|
199168
199411
|
infosById.set(commentId, toCommentInfo2({ ...entry, commentId }));
|
|
199169
199412
|
}
|
|
199170
|
-
mergeAnchorData2(infosById, listCommentAnchorsSafe2(editor));
|
|
199413
|
+
mergeAnchorData2(editor, infosById, listCommentAnchorsSafe2(editor));
|
|
199414
|
+
for (const info of infosById.values()) {
|
|
199415
|
+
if (info.target != null && info.anchoredText != null || !info.parentCommentId)
|
|
199416
|
+
continue;
|
|
199417
|
+
const visited = new Set;
|
|
199418
|
+
let cursor = info;
|
|
199419
|
+
while (cursor?.parentCommentId && !visited.has(cursor.parentCommentId)) {
|
|
199420
|
+
visited.add(cursor.parentCommentId);
|
|
199421
|
+
const ancestor = infosById.get(cursor.parentCommentId);
|
|
199422
|
+
if (ancestor?.target != null) {
|
|
199423
|
+
if (info.target == null)
|
|
199424
|
+
info.target = ancestor.target;
|
|
199425
|
+
if (info.anchoredText == null && ancestor.anchoredText != null)
|
|
199426
|
+
info.anchoredText = ancestor.anchoredText;
|
|
199427
|
+
break;
|
|
199428
|
+
}
|
|
199429
|
+
cursor = ancestor;
|
|
199430
|
+
}
|
|
199431
|
+
}
|
|
199171
199432
|
const infos = Array.from(infosById.values());
|
|
199172
199433
|
infos.sort((left2, right2) => {
|
|
199173
199434
|
const leftCreated = left2.createdTime ?? 0;
|
|
199174
199435
|
const rightCreated = right2.createdTime ?? 0;
|
|
199175
199436
|
if (leftCreated !== rightCreated)
|
|
199176
199437
|
return leftCreated - rightCreated;
|
|
199177
|
-
const leftStart = left2.target?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
199178
|
-
const rightStart = right2.target?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
199438
|
+
const leftStart = left2.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
199439
|
+
const rightStart = right2.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
199179
199440
|
if (leftStart !== rightStart)
|
|
199180
199441
|
return leftStart - rightStart;
|
|
199181
199442
|
return left2.commentId.localeCompare(right2.commentId);
|
|
@@ -199183,7 +199444,7 @@ function buildCommentInfos2(editor) {
|
|
|
199183
199444
|
return infos;
|
|
199184
199445
|
}
|
|
199185
199446
|
function addCommentHandler2(editor, input2, options) {
|
|
199186
|
-
requireEditorCommand2(editor.commands?.addComment, "comments.
|
|
199447
|
+
requireEditorCommand2(editor.commands?.addComment, "comments.create (addComment)");
|
|
199187
199448
|
if (input2.target.range.start === input2.target.range.end) {
|
|
199188
199449
|
return {
|
|
199189
199450
|
success: false,
|
|
@@ -199220,7 +199481,7 @@ function addCommentHandler2(editor, input2, options) {
|
|
|
199220
199481
|
}
|
|
199221
199482
|
const commentId = v42();
|
|
199222
199483
|
const receipt2 = executeDomainCommand2(editor, () => {
|
|
199223
|
-
const addComment = requireEditorCommand2(editor.commands?.addComment, "comments.
|
|
199484
|
+
const addComment = requireEditorCommand2(editor.commands?.addComment, "comments.create (addComment)");
|
|
199224
199485
|
const didInsert = addComment({ content: input2.text, isInternal: false, commentId }) === true;
|
|
199225
199486
|
if (didInsert) {
|
|
199226
199487
|
clearIndexCache2(editor);
|
|
@@ -199253,7 +199514,7 @@ function addCommentHandler2(editor, input2, options) {
|
|
|
199253
199514
|
return { success: true, inserted: [toCommentAddress2(commentId)] };
|
|
199254
199515
|
}
|
|
199255
199516
|
function editCommentHandler2(editor, input2, options) {
|
|
199256
|
-
const editComment = requireEditorCommand2(editor.commands?.editComment, "comments.
|
|
199517
|
+
const editComment = requireEditorCommand2(editor.commands?.editComment, "comments.patch (editComment)");
|
|
199257
199518
|
const store = getCommentEntityStore2(editor);
|
|
199258
199519
|
const identity2 = resolveCommentIdentity2(editor, input2.commentId);
|
|
199259
199520
|
const existing = findCommentEntity2(store, identity2.commentId);
|
|
@@ -199288,7 +199549,7 @@ function editCommentHandler2(editor, input2, options) {
|
|
|
199288
199549
|
return { success: true, updated: [toCommentAddress2(identity2.commentId)] };
|
|
199289
199550
|
}
|
|
199290
199551
|
function replyToCommentHandler2(editor, input2, options) {
|
|
199291
|
-
const addCommentReply = requireEditorCommand2(editor.commands?.addCommentReply, "comments.
|
|
199552
|
+
const addCommentReply = requireEditorCommand2(editor.commands?.addCommentReply, "comments.create (addCommentReply)");
|
|
199292
199553
|
if (!input2.parentCommentId) {
|
|
199293
199554
|
return {
|
|
199294
199555
|
success: false,
|
|
@@ -199336,7 +199597,7 @@ function replyToCommentHandler2(editor, input2, options) {
|
|
|
199336
199597
|
return { success: true, inserted: [toCommentAddress2(replyId)] };
|
|
199337
199598
|
}
|
|
199338
199599
|
function moveCommentHandler2(editor, input2, options) {
|
|
199339
|
-
const moveComment = requireEditorCommand2(editor.commands?.moveComment, "comments.
|
|
199600
|
+
const moveComment = requireEditorCommand2(editor.commands?.moveComment, "comments.patch (moveComment)");
|
|
199340
199601
|
if (input2.target.range.start === input2.target.range.end) {
|
|
199341
199602
|
return {
|
|
199342
199603
|
success: false,
|
|
@@ -199386,7 +199647,7 @@ function moveCommentHandler2(editor, input2, options) {
|
|
|
199386
199647
|
return { success: true, updated: [toCommentAddress2(identity2.commentId)] };
|
|
199387
199648
|
}
|
|
199388
199649
|
function resolveCommentHandler2(editor, input2, options) {
|
|
199389
|
-
const resolveComment = requireEditorCommand2(editor.commands?.resolveComment, "comments.
|
|
199650
|
+
const resolveComment = requireEditorCommand2(editor.commands?.resolveComment, "comments.patch (resolveComment)");
|
|
199390
199651
|
const store = getCommentEntityStore2(editor);
|
|
199391
199652
|
const identity2 = resolveCommentIdentity2(editor, input2.commentId);
|
|
199392
199653
|
const existing = findCommentEntity2(store, identity2.commentId);
|
|
@@ -199553,6 +199814,7 @@ function listCommentsHandler2(editor, query2) {
|
|
|
199553
199814
|
isInternal,
|
|
199554
199815
|
status,
|
|
199555
199816
|
target,
|
|
199817
|
+
anchoredText,
|
|
199556
199818
|
createdTime,
|
|
199557
199819
|
creatorName,
|
|
199558
199820
|
creatorEmail,
|
|
@@ -199566,6 +199828,7 @@ function listCommentsHandler2(editor, query2) {
|
|
|
199566
199828
|
isInternal,
|
|
199567
199829
|
status,
|
|
199568
199830
|
target,
|
|
199831
|
+
anchoredText,
|
|
199569
199832
|
createdTime,
|
|
199570
199833
|
creatorName,
|
|
199571
199834
|
creatorEmail
|
|
@@ -219406,6 +219669,18 @@ var SKIP_FIELD_PROCESSING_NODE_NAMES3, shouldSkipFieldProcessing3 = (node3) => S
|
|
|
219406
219669
|
i4++;
|
|
219407
219670
|
continue;
|
|
219408
219671
|
}
|
|
219672
|
+
const childElements = node3.elements || [];
|
|
219673
|
+
if (childElements.length > 0) {
|
|
219674
|
+
for (const child of childElements) {
|
|
219675
|
+
if (Array.isArray(child.elements)) {
|
|
219676
|
+
const childResult = preProcessPageFieldsOnly2(child.elements, depth + 1);
|
|
219677
|
+
child.elements = childResult.processedNodes;
|
|
219678
|
+
}
|
|
219679
|
+
processedNodes.push(child);
|
|
219680
|
+
}
|
|
219681
|
+
i4++;
|
|
219682
|
+
continue;
|
|
219683
|
+
}
|
|
219409
219684
|
}
|
|
219410
219685
|
if (fldType === "begin") {
|
|
219411
219686
|
const fieldInfo = scanFieldSequence2(nodes, i4);
|
|
@@ -219431,6 +219706,13 @@ var SKIP_FIELD_PROCESSING_NODE_NAMES3, shouldSkipFieldProcessing3 = (node3) => S
|
|
|
219431
219706
|
}
|
|
219432
219707
|
}
|
|
219433
219708
|
}
|
|
219709
|
+
if (node3.name === "w:r" && node3.elements?.some((el) => el.name === "w:pgNum")) {
|
|
219710
|
+
const rPr = node3.elements.find((el) => el.name === "w:rPr") || null;
|
|
219711
|
+
const processedField = preProcessPageInstruction2([], "", rPr);
|
|
219712
|
+
processedNodes.push(...processedField);
|
|
219713
|
+
i4++;
|
|
219714
|
+
continue;
|
|
219715
|
+
}
|
|
219434
219716
|
if (Array.isArray(node3.elements)) {
|
|
219435
219717
|
const childResult = preProcessPageFieldsOnly2(node3.elements, depth + 1);
|
|
219436
219718
|
node3.elements = childResult.processedNodes;
|