@superdoc-dev/cli 0.2.0-next.3 → 0.2.0-next.5
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 +1375 -581
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -360,16 +360,6 @@ function resolveDocArg(parsed, commandName) {
|
|
|
360
360
|
}
|
|
361
361
|
return { doc: undefined, positionals: parsed.positionals };
|
|
362
362
|
}
|
|
363
|
-
function requireDocArg(parsed, commandName) {
|
|
364
|
-
const resolved = resolveDocArg(parsed, commandName);
|
|
365
|
-
if (resolved.doc) {
|
|
366
|
-
return {
|
|
367
|
-
doc: resolved.doc,
|
|
368
|
-
positionals: resolved.positionals
|
|
369
|
-
};
|
|
370
|
-
}
|
|
371
|
-
throw new CliError("MISSING_REQUIRED", `${commandName}: missing required <doc> argument.`);
|
|
372
|
-
}
|
|
373
363
|
function expectNoPositionals(parsed, positionals, commandName) {
|
|
374
364
|
if (positionals.length === 0)
|
|
375
365
|
return;
|
|
@@ -534,19 +524,12 @@ function mutationOperation(options) {
|
|
|
534
524
|
function projectFromDefinitions(fn) {
|
|
535
525
|
return Object.fromEntries(OPERATION_IDS.map((id) => [id, fn(id, OPERATION_DEFINITIONS[id])]));
|
|
536
526
|
}
|
|
537
|
-
var NONE_FAILURES, NONE_THROWS, T_NOT_FOUND,
|
|
527
|
+
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
528
|
var init_operation_definitions = __esm(() => {
|
|
539
529
|
NONE_FAILURES = [];
|
|
540
530
|
NONE_THROWS = [];
|
|
541
531
|
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
|
-
];
|
|
532
|
+
T_NOT_FOUND_CAPABLE = ["TARGET_NOT_FOUND", "CAPABILITY_UNAVAILABLE"];
|
|
550
533
|
T_PLAN_ENGINE = [
|
|
551
534
|
"REVISION_MISMATCH",
|
|
552
535
|
"MATCH_NOT_FOUND",
|
|
@@ -569,6 +552,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
569
552
|
requiresDocumentContext: true,
|
|
570
553
|
metadata: readOperation({
|
|
571
554
|
idempotency: "idempotent",
|
|
555
|
+
throws: ["CAPABILITY_UNAVAILABLE", "INVALID_INPUT"],
|
|
572
556
|
deterministicTargetResolution: false
|
|
573
557
|
}),
|
|
574
558
|
referenceDocPath: "find.mdx",
|
|
@@ -621,7 +605,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
621
605
|
supportsDryRun: true,
|
|
622
606
|
supportsTrackedMode: true,
|
|
623
607
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
624
|
-
throws: [...
|
|
608
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
625
609
|
}),
|
|
626
610
|
referenceDocPath: "insert.mdx",
|
|
627
611
|
referenceGroup: "core"
|
|
@@ -635,7 +619,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
635
619
|
supportsDryRun: true,
|
|
636
620
|
supportsTrackedMode: true,
|
|
637
621
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
638
|
-
throws: [...
|
|
622
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
639
623
|
}),
|
|
640
624
|
referenceDocPath: "replace.mdx",
|
|
641
625
|
referenceGroup: "core"
|
|
@@ -649,7 +633,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
649
633
|
supportsDryRun: true,
|
|
650
634
|
supportsTrackedMode: true,
|
|
651
635
|
possibleFailureCodes: ["NO_OP"],
|
|
652
|
-
throws: [...
|
|
636
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
653
637
|
}),
|
|
654
638
|
referenceDocPath: "delete.mdx",
|
|
655
639
|
referenceGroup: "core"
|
|
@@ -663,11 +647,67 @@ var init_operation_definitions = __esm(() => {
|
|
|
663
647
|
supportsDryRun: true,
|
|
664
648
|
supportsTrackedMode: true,
|
|
665
649
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
666
|
-
throws: [...
|
|
650
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
|
|
667
651
|
}),
|
|
668
652
|
referenceDocPath: "format/apply.mdx",
|
|
669
653
|
referenceGroup: "format"
|
|
670
654
|
},
|
|
655
|
+
"format.fontSize": {
|
|
656
|
+
memberPath: "format.fontSize",
|
|
657
|
+
description: "Set or unset the font size on the target text range. Pass null to remove.",
|
|
658
|
+
requiresDocumentContext: true,
|
|
659
|
+
metadata: mutationOperation({
|
|
660
|
+
idempotency: "conditional",
|
|
661
|
+
supportsDryRun: true,
|
|
662
|
+
supportsTrackedMode: false,
|
|
663
|
+
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
664
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
|
|
665
|
+
}),
|
|
666
|
+
referenceDocPath: "format/font-size.mdx",
|
|
667
|
+
referenceGroup: "format"
|
|
668
|
+
},
|
|
669
|
+
"format.fontFamily": {
|
|
670
|
+
memberPath: "format.fontFamily",
|
|
671
|
+
description: "Set or unset the font family on the target text range. Pass null to remove.",
|
|
672
|
+
requiresDocumentContext: true,
|
|
673
|
+
metadata: mutationOperation({
|
|
674
|
+
idempotency: "conditional",
|
|
675
|
+
supportsDryRun: true,
|
|
676
|
+
supportsTrackedMode: false,
|
|
677
|
+
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
678
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
|
|
679
|
+
}),
|
|
680
|
+
referenceDocPath: "format/font-family.mdx",
|
|
681
|
+
referenceGroup: "format"
|
|
682
|
+
},
|
|
683
|
+
"format.color": {
|
|
684
|
+
memberPath: "format.color",
|
|
685
|
+
description: "Set or unset the text color on the target text range. Pass null to remove.",
|
|
686
|
+
requiresDocumentContext: true,
|
|
687
|
+
metadata: mutationOperation({
|
|
688
|
+
idempotency: "conditional",
|
|
689
|
+
supportsDryRun: true,
|
|
690
|
+
supportsTrackedMode: false,
|
|
691
|
+
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
692
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
|
|
693
|
+
}),
|
|
694
|
+
referenceDocPath: "format/color.mdx",
|
|
695
|
+
referenceGroup: "format"
|
|
696
|
+
},
|
|
697
|
+
"format.align": {
|
|
698
|
+
memberPath: "format.align",
|
|
699
|
+
description: "Set or unset paragraph alignment on the block containing the target. Pass null to reset to default.",
|
|
700
|
+
requiresDocumentContext: true,
|
|
701
|
+
metadata: mutationOperation({
|
|
702
|
+
idempotency: "conditional",
|
|
703
|
+
supportsDryRun: true,
|
|
704
|
+
supportsTrackedMode: false,
|
|
705
|
+
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
706
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
|
|
707
|
+
}),
|
|
708
|
+
referenceDocPath: "format/align.mdx",
|
|
709
|
+
referenceGroup: "format"
|
|
710
|
+
},
|
|
671
711
|
"create.paragraph": {
|
|
672
712
|
memberPath: "create.paragraph",
|
|
673
713
|
description: "Create a new paragraph at the target position.",
|
|
@@ -677,7 +717,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
677
717
|
supportsDryRun: true,
|
|
678
718
|
supportsTrackedMode: true,
|
|
679
719
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
680
|
-
throws: [...
|
|
720
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "AMBIGUOUS_TARGET"]
|
|
681
721
|
}),
|
|
682
722
|
referenceDocPath: "create/paragraph.mdx",
|
|
683
723
|
referenceGroup: "create"
|
|
@@ -691,7 +731,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
691
731
|
supportsDryRun: true,
|
|
692
732
|
supportsTrackedMode: true,
|
|
693
733
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
694
|
-
throws: [...
|
|
734
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "AMBIGUOUS_TARGET"]
|
|
695
735
|
}),
|
|
696
736
|
referenceDocPath: "create/heading.mdx",
|
|
697
737
|
referenceGroup: "create"
|
|
@@ -702,7 +742,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
702
742
|
requiresDocumentContext: true,
|
|
703
743
|
metadata: readOperation({
|
|
704
744
|
idempotency: "idempotent",
|
|
705
|
-
throws:
|
|
745
|
+
throws: ["TARGET_NOT_FOUND", "INVALID_TARGET", "INVALID_INPUT"]
|
|
706
746
|
}),
|
|
707
747
|
referenceDocPath: "lists/list.mdx",
|
|
708
748
|
referenceGroup: "lists"
|
|
@@ -727,7 +767,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
727
767
|
supportsDryRun: true,
|
|
728
768
|
supportsTrackedMode: true,
|
|
729
769
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
730
|
-
throws: [...
|
|
770
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
731
771
|
}),
|
|
732
772
|
referenceDocPath: "lists/insert.mdx",
|
|
733
773
|
referenceGroup: "lists"
|
|
@@ -741,7 +781,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
741
781
|
supportsDryRun: true,
|
|
742
782
|
supportsTrackedMode: false,
|
|
743
783
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
744
|
-
throws: [...
|
|
784
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
745
785
|
}),
|
|
746
786
|
referenceDocPath: "lists/set-type.mdx",
|
|
747
787
|
referenceGroup: "lists"
|
|
@@ -755,7 +795,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
755
795
|
supportsDryRun: true,
|
|
756
796
|
supportsTrackedMode: false,
|
|
757
797
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
758
|
-
throws: [...
|
|
798
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
759
799
|
}),
|
|
760
800
|
referenceDocPath: "lists/indent.mdx",
|
|
761
801
|
referenceGroup: "lists"
|
|
@@ -769,7 +809,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
769
809
|
supportsDryRun: true,
|
|
770
810
|
supportsTrackedMode: false,
|
|
771
811
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
772
|
-
throws: [...
|
|
812
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
773
813
|
}),
|
|
774
814
|
referenceDocPath: "lists/outdent.mdx",
|
|
775
815
|
referenceGroup: "lists"
|
|
@@ -783,7 +823,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
783
823
|
supportsDryRun: true,
|
|
784
824
|
supportsTrackedMode: false,
|
|
785
825
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
786
|
-
throws: [...
|
|
826
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
787
827
|
}),
|
|
788
828
|
referenceDocPath: "lists/restart.mdx",
|
|
789
829
|
referenceGroup: "lists"
|
|
@@ -797,7 +837,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
797
837
|
supportsDryRun: true,
|
|
798
838
|
supportsTrackedMode: false,
|
|
799
839
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
800
|
-
throws: [...
|
|
840
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
801
841
|
}),
|
|
802
842
|
referenceDocPath: "lists/exit.mdx",
|
|
803
843
|
referenceGroup: "lists"
|
|
@@ -811,7 +851,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
811
851
|
supportsDryRun: false,
|
|
812
852
|
supportsTrackedMode: false,
|
|
813
853
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
814
|
-
throws: [...
|
|
854
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
|
|
815
855
|
}),
|
|
816
856
|
referenceDocPath: "comments/create.mdx",
|
|
817
857
|
referenceGroup: "comments"
|
|
@@ -825,7 +865,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
825
865
|
supportsDryRun: false,
|
|
826
866
|
supportsTrackedMode: false,
|
|
827
867
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
828
|
-
throws: [...
|
|
868
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
|
|
829
869
|
}),
|
|
830
870
|
referenceDocPath: "comments/patch.mdx",
|
|
831
871
|
referenceGroup: "comments"
|
|
@@ -839,7 +879,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
839
879
|
supportsDryRun: false,
|
|
840
880
|
supportsTrackedMode: false,
|
|
841
881
|
possibleFailureCodes: ["NO_OP"],
|
|
842
|
-
throws:
|
|
882
|
+
throws: T_NOT_FOUND_CAPABLE
|
|
843
883
|
}),
|
|
844
884
|
referenceDocPath: "comments/delete.mdx",
|
|
845
885
|
referenceGroup: "comments"
|
|
@@ -860,7 +900,8 @@ var init_operation_definitions = __esm(() => {
|
|
|
860
900
|
description: "List all comment threads in the document.",
|
|
861
901
|
requiresDocumentContext: true,
|
|
862
902
|
metadata: readOperation({
|
|
863
|
-
idempotency: "idempotent"
|
|
903
|
+
idempotency: "idempotent",
|
|
904
|
+
throws: ["INVALID_INPUT"]
|
|
864
905
|
}),
|
|
865
906
|
referenceDocPath: "comments/list.mdx",
|
|
866
907
|
referenceGroup: "comments"
|
|
@@ -870,7 +911,8 @@ var init_operation_definitions = __esm(() => {
|
|
|
870
911
|
description: "List all tracked changes in the document.",
|
|
871
912
|
requiresDocumentContext: true,
|
|
872
913
|
metadata: readOperation({
|
|
873
|
-
idempotency: "idempotent"
|
|
914
|
+
idempotency: "idempotent",
|
|
915
|
+
throws: ["INVALID_INPUT"]
|
|
874
916
|
}),
|
|
875
917
|
referenceDocPath: "track-changes/list.mdx",
|
|
876
918
|
referenceGroup: "trackChanges"
|
|
@@ -895,7 +937,7 @@ var init_operation_definitions = __esm(() => {
|
|
|
895
937
|
supportsDryRun: false,
|
|
896
938
|
supportsTrackedMode: false,
|
|
897
939
|
possibleFailureCodes: ["NO_OP"],
|
|
898
|
-
throws: [...
|
|
940
|
+
throws: [...T_NOT_FOUND_CAPABLE, "INVALID_INPUT", "INVALID_TARGET"]
|
|
899
941
|
}),
|
|
900
942
|
referenceDocPath: "track-changes/decide.mdx",
|
|
901
943
|
referenceGroup: "trackChanges"
|
|
@@ -977,6 +1019,228 @@ var init_command_catalog = __esm(() => {
|
|
|
977
1019
|
OPERATION_REQUIRES_DOCUMENT_CONTEXT_MAP = projectFromDefinitions((_id, entry) => entry.requiresDocumentContext);
|
|
978
1020
|
});
|
|
979
1021
|
|
|
1022
|
+
// ../../packages/document-api/src/write/write.ts
|
|
1023
|
+
function normalizeMutationOptions(options) {
|
|
1024
|
+
return {
|
|
1025
|
+
expectedRevision: options?.expectedRevision,
|
|
1026
|
+
changeMode: options?.changeMode ?? "direct",
|
|
1027
|
+
dryRun: options?.dryRun ?? false
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
1030
|
+
function executeWrite(adapter, request, options) {
|
|
1031
|
+
return adapter.write(request, normalizeMutationOptions(options));
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
// ../../packages/document-api/src/errors.ts
|
|
1035
|
+
var DocumentApiValidationError;
|
|
1036
|
+
var init_errors2 = __esm(() => {
|
|
1037
|
+
DocumentApiValidationError = class DocumentApiValidationError extends Error {
|
|
1038
|
+
code;
|
|
1039
|
+
details;
|
|
1040
|
+
constructor(code, message, details) {
|
|
1041
|
+
super(message);
|
|
1042
|
+
this.name = "DocumentApiValidationError";
|
|
1043
|
+
this.code = code;
|
|
1044
|
+
this.details = details;
|
|
1045
|
+
Object.setPrototypeOf(this, DocumentApiValidationError.prototype);
|
|
1046
|
+
}
|
|
1047
|
+
};
|
|
1048
|
+
});
|
|
1049
|
+
|
|
1050
|
+
// ../../packages/document-api/src/validation-primitives.ts
|
|
1051
|
+
function isRecord(value) {
|
|
1052
|
+
return typeof value === "object" && value != null && !Array.isArray(value);
|
|
1053
|
+
}
|
|
1054
|
+
function isInteger(value) {
|
|
1055
|
+
return typeof value === "number" && Number.isInteger(value);
|
|
1056
|
+
}
|
|
1057
|
+
function isTextAddress(value) {
|
|
1058
|
+
if (!isRecord(value))
|
|
1059
|
+
return false;
|
|
1060
|
+
if (value.kind !== "text")
|
|
1061
|
+
return false;
|
|
1062
|
+
if (typeof value.blockId !== "string")
|
|
1063
|
+
return false;
|
|
1064
|
+
const range = value.range;
|
|
1065
|
+
if (!isRecord(range))
|
|
1066
|
+
return false;
|
|
1067
|
+
if (!isInteger(range.start) || !isInteger(range.end))
|
|
1068
|
+
return false;
|
|
1069
|
+
return range.start <= range.end;
|
|
1070
|
+
}
|
|
1071
|
+
function assertNoUnknownFields(input, allowlist, operationName) {
|
|
1072
|
+
for (const key of Object.keys(input)) {
|
|
1073
|
+
if (!allowlist.has(key)) {
|
|
1074
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `Unknown field "${key}" on ${operationName} input. Allowed fields: ${[...allowlist].join(", ")}.`, { field: key });
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
var init_validation_primitives = __esm(() => {
|
|
1079
|
+
init_errors2();
|
|
1080
|
+
});
|
|
1081
|
+
|
|
1082
|
+
// ../../packages/document-api/src/format/format.ts
|
|
1083
|
+
function validateStyleApplyInput(input) {
|
|
1084
|
+
if (!isRecord(input)) {
|
|
1085
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.apply input must be a non-null object.");
|
|
1086
|
+
}
|
|
1087
|
+
assertNoUnknownFields(input, STYLE_APPLY_INPUT_ALLOWED_KEYS, "format.apply");
|
|
1088
|
+
const { target, inline } = input;
|
|
1089
|
+
if (target === undefined) {
|
|
1090
|
+
throw new DocumentApiValidationError("INVALID_TARGET", "format.apply requires a target.");
|
|
1091
|
+
}
|
|
1092
|
+
if (!isTextAddress(target)) {
|
|
1093
|
+
throw new DocumentApiValidationError("INVALID_TARGET", "target must be a text address object.", {
|
|
1094
|
+
field: "target",
|
|
1095
|
+
value: target
|
|
1096
|
+
});
|
|
1097
|
+
}
|
|
1098
|
+
if (inline === undefined || inline === null) {
|
|
1099
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.apply requires an inline object.");
|
|
1100
|
+
}
|
|
1101
|
+
if (!isRecord(inline)) {
|
|
1102
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "inline must be a non-null object.", {
|
|
1103
|
+
field: "inline",
|
|
1104
|
+
value: inline
|
|
1105
|
+
});
|
|
1106
|
+
}
|
|
1107
|
+
const inlineKeys = Object.keys(inline);
|
|
1108
|
+
if (inlineKeys.length === 0) {
|
|
1109
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "inline must include at least one known key.");
|
|
1110
|
+
}
|
|
1111
|
+
for (const key of inlineKeys) {
|
|
1112
|
+
if (!MARK_KEY_SET.has(key)) {
|
|
1113
|
+
throw new DocumentApiValidationError("INVALID_INPUT", `Unknown inline style key "${key}". Known keys: bold, italic, underline, strike.`, {
|
|
1114
|
+
field: "inline",
|
|
1115
|
+
key
|
|
1116
|
+
});
|
|
1117
|
+
}
|
|
1118
|
+
const value = inline[key];
|
|
1119
|
+
if (typeof value !== "boolean") {
|
|
1120
|
+
throw new DocumentApiValidationError("INVALID_INPUT", `Inline style "${key}" must be a boolean, got ${typeof value}.`, {
|
|
1121
|
+
field: "inline",
|
|
1122
|
+
key,
|
|
1123
|
+
value
|
|
1124
|
+
});
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
function executeStyleApply(adapter, input, options) {
|
|
1129
|
+
validateStyleApplyInput(input);
|
|
1130
|
+
return adapter.apply(input, normalizeMutationOptions(options));
|
|
1131
|
+
}
|
|
1132
|
+
function validateTarget(input, operation) {
|
|
1133
|
+
if (!isRecord(input)) {
|
|
1134
|
+
throw new DocumentApiValidationError("INVALID_INPUT", `${operation} input must be a non-null object.`);
|
|
1135
|
+
}
|
|
1136
|
+
if (input.target === undefined) {
|
|
1137
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `${operation} requires a target.`);
|
|
1138
|
+
}
|
|
1139
|
+
if (!isTextAddress(input.target)) {
|
|
1140
|
+
throw new DocumentApiValidationError("INVALID_TARGET", "target must be a text address object.", {
|
|
1141
|
+
field: "target",
|
|
1142
|
+
value: input.target
|
|
1143
|
+
});
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
function validateFontSizeInput(input) {
|
|
1147
|
+
validateTarget(input, "format.fontSize");
|
|
1148
|
+
assertNoUnknownFields(input, FONT_SIZE_ALLOWED_KEYS, "format.fontSize");
|
|
1149
|
+
const { value } = input;
|
|
1150
|
+
if (value === undefined) {
|
|
1151
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.fontSize requires a value field.");
|
|
1152
|
+
}
|
|
1153
|
+
if (value !== null && typeof value !== "string" && typeof value !== "number") {
|
|
1154
|
+
throw new DocumentApiValidationError("INVALID_INPUT", `format.fontSize value must be a string, number, or null.`, {
|
|
1155
|
+
field: "value",
|
|
1156
|
+
value
|
|
1157
|
+
});
|
|
1158
|
+
}
|
|
1159
|
+
if (typeof value === "string" && value.length === 0) {
|
|
1160
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.fontSize value must not be an empty string.", {
|
|
1161
|
+
field: "value"
|
|
1162
|
+
});
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
function executeFontSize(adapter, input, options) {
|
|
1166
|
+
validateFontSizeInput(input);
|
|
1167
|
+
return adapter.fontSize(input, normalizeMutationOptions(options));
|
|
1168
|
+
}
|
|
1169
|
+
function validateFontFamilyInput(input) {
|
|
1170
|
+
validateTarget(input, "format.fontFamily");
|
|
1171
|
+
assertNoUnknownFields(input, FONT_FAMILY_ALLOWED_KEYS, "format.fontFamily");
|
|
1172
|
+
const { value } = input;
|
|
1173
|
+
if (value === undefined) {
|
|
1174
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.fontFamily requires a value field.");
|
|
1175
|
+
}
|
|
1176
|
+
if (value !== null && typeof value !== "string") {
|
|
1177
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.fontFamily value must be a string or null.", {
|
|
1178
|
+
field: "value",
|
|
1179
|
+
value
|
|
1180
|
+
});
|
|
1181
|
+
}
|
|
1182
|
+
if (typeof value === "string" && value.length === 0) {
|
|
1183
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.fontFamily value must not be an empty string.", {
|
|
1184
|
+
field: "value"
|
|
1185
|
+
});
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
function executeFontFamily(adapter, input, options) {
|
|
1189
|
+
validateFontFamilyInput(input);
|
|
1190
|
+
return adapter.fontFamily(input, normalizeMutationOptions(options));
|
|
1191
|
+
}
|
|
1192
|
+
function validateColorInput(input) {
|
|
1193
|
+
validateTarget(input, "format.color");
|
|
1194
|
+
assertNoUnknownFields(input, COLOR_ALLOWED_KEYS, "format.color");
|
|
1195
|
+
const { value } = input;
|
|
1196
|
+
if (value === undefined) {
|
|
1197
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.color requires a value field.");
|
|
1198
|
+
}
|
|
1199
|
+
if (value !== null && typeof value !== "string") {
|
|
1200
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.color value must be a string or null.", {
|
|
1201
|
+
field: "value",
|
|
1202
|
+
value
|
|
1203
|
+
});
|
|
1204
|
+
}
|
|
1205
|
+
if (typeof value === "string" && value.length === 0) {
|
|
1206
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.color value must not be an empty string.", {
|
|
1207
|
+
field: "value"
|
|
1208
|
+
});
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
function executeColor(adapter, input, options) {
|
|
1212
|
+
validateColorInput(input);
|
|
1213
|
+
return adapter.color(input, normalizeMutationOptions(options));
|
|
1214
|
+
}
|
|
1215
|
+
function validateAlignInput(input) {
|
|
1216
|
+
validateTarget(input, "format.align");
|
|
1217
|
+
assertNoUnknownFields(input, ALIGN_ALLOWED_KEYS, "format.align");
|
|
1218
|
+
const { alignment } = input;
|
|
1219
|
+
if (alignment === undefined) {
|
|
1220
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "format.align requires an alignment field.");
|
|
1221
|
+
}
|
|
1222
|
+
if (alignment !== null && (typeof alignment !== "string" || !ALIGNMENT_SET.has(alignment))) {
|
|
1223
|
+
throw new DocumentApiValidationError("INVALID_INPUT", `format.align alignment must be one of ${ALIGNMENTS.join(", ")}, or null.`, { field: "alignment", value: alignment });
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
function executeAlign(adapter, input, options) {
|
|
1227
|
+
validateAlignInput(input);
|
|
1228
|
+
return adapter.align(input, normalizeMutationOptions(options));
|
|
1229
|
+
}
|
|
1230
|
+
var ALIGNMENTS, ALIGNMENT_SET, STYLE_APPLY_INPUT_ALLOWED_KEYS, FONT_SIZE_ALLOWED_KEYS, FONT_FAMILY_ALLOWED_KEYS, COLOR_ALLOWED_KEYS, ALIGN_ALLOWED_KEYS;
|
|
1231
|
+
var init_format = __esm(() => {
|
|
1232
|
+
init_style_policy_types();
|
|
1233
|
+
init_errors2();
|
|
1234
|
+
init_validation_primitives();
|
|
1235
|
+
ALIGNMENTS = ["left", "center", "right", "justify"];
|
|
1236
|
+
ALIGNMENT_SET = new Set(ALIGNMENTS);
|
|
1237
|
+
STYLE_APPLY_INPUT_ALLOWED_KEYS = new Set(["target", "inline"]);
|
|
1238
|
+
FONT_SIZE_ALLOWED_KEYS = new Set(["target", "value"]);
|
|
1239
|
+
FONT_FAMILY_ALLOWED_KEYS = new Set(["target", "value"]);
|
|
1240
|
+
COLOR_ALLOWED_KEYS = new Set(["target", "value"]);
|
|
1241
|
+
ALIGN_ALLOWED_KEYS = new Set(["target", "alignment"]);
|
|
1242
|
+
});
|
|
1243
|
+
|
|
980
1244
|
// ../../packages/document-api/src/contract/schemas.ts
|
|
981
1245
|
function objectSchema(properties, required = []) {
|
|
982
1246
|
const schema = {
|
|
@@ -1136,12 +1400,13 @@ function buildInternalContractSchemas() {
|
|
|
1136
1400
|
operations
|
|
1137
1401
|
};
|
|
1138
1402
|
}
|
|
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;
|
|
1403
|
+
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
1404
|
var init_schemas = __esm(() => {
|
|
1141
1405
|
init_command_catalog();
|
|
1142
1406
|
init_types2();
|
|
1143
1407
|
init_base();
|
|
1144
1408
|
init_style_policy_types();
|
|
1409
|
+
init_format();
|
|
1145
1410
|
nodeTypeValues = NODE_TYPES;
|
|
1146
1411
|
blockNodeTypeValues = BLOCK_NODE_TYPES;
|
|
1147
1412
|
inlineNodeTypeValues = INLINE_NODE_TYPES;
|
|
@@ -1178,6 +1443,14 @@ var init_schemas = __esm(() => {
|
|
|
1178
1443
|
blockId: { type: "string" },
|
|
1179
1444
|
range: ref("Range")
|
|
1180
1445
|
}, ["kind", "blockId", "range"]),
|
|
1446
|
+
TextSegment: objectSchema({
|
|
1447
|
+
blockId: { type: "string" },
|
|
1448
|
+
range: ref("Range")
|
|
1449
|
+
}, ["blockId", "range"]),
|
|
1450
|
+
TextTarget: objectSchema({
|
|
1451
|
+
kind: { const: "text" },
|
|
1452
|
+
segments: { type: "array", items: ref("TextSegment"), minItems: 1 }
|
|
1453
|
+
}, ["kind", "segments"]),
|
|
1181
1454
|
BlockNodeAddress: objectSchema({
|
|
1182
1455
|
kind: { const: "block" },
|
|
1183
1456
|
nodeType: { enum: [...blockNodeTypeValues] },
|
|
@@ -1287,6 +1560,7 @@ var init_schemas = __esm(() => {
|
|
|
1287
1560
|
inlineAnchorSchema = ref("InlineAnchor");
|
|
1288
1561
|
targetKindSchema = ref("TargetKind");
|
|
1289
1562
|
textAddressSchema = ref("TextAddress");
|
|
1563
|
+
textTargetSchema = ref("TextTarget");
|
|
1290
1564
|
blockNodeAddressSchema = ref("BlockNodeAddress");
|
|
1291
1565
|
paragraphAddressSchema = ref("ParagraphAddress");
|
|
1292
1566
|
headingAddressSchema = ref("HeadingAddress");
|
|
@@ -1453,7 +1727,8 @@ var init_schemas = __esm(() => {
|
|
|
1453
1727
|
text: { type: "string" },
|
|
1454
1728
|
isInternal: { type: "boolean" },
|
|
1455
1729
|
status: { enum: ["open", "resolved"] },
|
|
1456
|
-
target:
|
|
1730
|
+
target: textTargetSchema,
|
|
1731
|
+
anchoredText: { type: "string" },
|
|
1457
1732
|
createdTime: { type: "number" },
|
|
1458
1733
|
creatorName: { type: "string" },
|
|
1459
1734
|
creatorEmail: { type: "string" }
|
|
@@ -1465,7 +1740,8 @@ var init_schemas = __esm(() => {
|
|
|
1465
1740
|
text: { type: "string" },
|
|
1466
1741
|
isInternal: { type: "boolean" },
|
|
1467
1742
|
status: { enum: ["open", "resolved"] },
|
|
1468
|
-
target:
|
|
1743
|
+
target: textTargetSchema,
|
|
1744
|
+
anchoredText: { type: "string" },
|
|
1469
1745
|
createdTime: { type: "number" },
|
|
1470
1746
|
creatorName: { type: "string" },
|
|
1471
1747
|
creatorEmail: { type: "string" }
|
|
@@ -1594,6 +1870,42 @@ var init_schemas = __esm(() => {
|
|
|
1594
1870
|
success: textMutationSuccessSchema,
|
|
1595
1871
|
failure: textMutationFailureSchemaFor("format.apply")
|
|
1596
1872
|
},
|
|
1873
|
+
"format.fontSize": {
|
|
1874
|
+
input: objectSchema({
|
|
1875
|
+
target: textAddressSchema,
|
|
1876
|
+
value: { oneOf: [{ type: "string", minLength: 1 }, { type: "number" }, { type: "null" }] }
|
|
1877
|
+
}, ["target", "value"]),
|
|
1878
|
+
output: textMutationResultSchemaFor("format.fontSize"),
|
|
1879
|
+
success: textMutationSuccessSchema,
|
|
1880
|
+
failure: textMutationFailureSchemaFor("format.fontSize")
|
|
1881
|
+
},
|
|
1882
|
+
"format.fontFamily": {
|
|
1883
|
+
input: objectSchema({
|
|
1884
|
+
target: textAddressSchema,
|
|
1885
|
+
value: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }
|
|
1886
|
+
}, ["target", "value"]),
|
|
1887
|
+
output: textMutationResultSchemaFor("format.fontFamily"),
|
|
1888
|
+
success: textMutationSuccessSchema,
|
|
1889
|
+
failure: textMutationFailureSchemaFor("format.fontFamily")
|
|
1890
|
+
},
|
|
1891
|
+
"format.color": {
|
|
1892
|
+
input: objectSchema({
|
|
1893
|
+
target: textAddressSchema,
|
|
1894
|
+
value: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }
|
|
1895
|
+
}, ["target", "value"]),
|
|
1896
|
+
output: textMutationResultSchemaFor("format.color"),
|
|
1897
|
+
success: textMutationSuccessSchema,
|
|
1898
|
+
failure: textMutationFailureSchemaFor("format.color")
|
|
1899
|
+
},
|
|
1900
|
+
"format.align": {
|
|
1901
|
+
input: objectSchema({
|
|
1902
|
+
target: textAddressSchema,
|
|
1903
|
+
alignment: { oneOf: [{ enum: [...ALIGNMENTS] }, { type: "null" }] }
|
|
1904
|
+
}, ["target", "alignment"]),
|
|
1905
|
+
output: textMutationResultSchemaFor("format.align"),
|
|
1906
|
+
success: textMutationSuccessSchema,
|
|
1907
|
+
failure: textMutationFailureSchemaFor("format.align")
|
|
1908
|
+
},
|
|
1597
1909
|
"create.paragraph": {
|
|
1598
1910
|
input: objectSchema({
|
|
1599
1911
|
at: {
|
|
@@ -1941,54 +2253,6 @@ var init_capabilities = __esm(() => {
|
|
|
1941
2253
|
];
|
|
1942
2254
|
});
|
|
1943
2255
|
|
|
1944
|
-
// ../../packages/document-api/src/errors.ts
|
|
1945
|
-
var DocumentApiValidationError;
|
|
1946
|
-
var init_errors2 = __esm(() => {
|
|
1947
|
-
DocumentApiValidationError = class DocumentApiValidationError extends Error {
|
|
1948
|
-
code;
|
|
1949
|
-
details;
|
|
1950
|
-
constructor(code, message, details) {
|
|
1951
|
-
super(message);
|
|
1952
|
-
this.name = "DocumentApiValidationError";
|
|
1953
|
-
this.code = code;
|
|
1954
|
-
this.details = details;
|
|
1955
|
-
Object.setPrototypeOf(this, DocumentApiValidationError.prototype);
|
|
1956
|
-
}
|
|
1957
|
-
};
|
|
1958
|
-
});
|
|
1959
|
-
|
|
1960
|
-
// ../../packages/document-api/src/validation-primitives.ts
|
|
1961
|
-
function isRecord(value) {
|
|
1962
|
-
return typeof value === "object" && value != null && !Array.isArray(value);
|
|
1963
|
-
}
|
|
1964
|
-
function isInteger(value) {
|
|
1965
|
-
return typeof value === "number" && Number.isInteger(value);
|
|
1966
|
-
}
|
|
1967
|
-
function isTextAddress(value) {
|
|
1968
|
-
if (!isRecord(value))
|
|
1969
|
-
return false;
|
|
1970
|
-
if (value.kind !== "text")
|
|
1971
|
-
return false;
|
|
1972
|
-
if (typeof value.blockId !== "string")
|
|
1973
|
-
return false;
|
|
1974
|
-
const range = value.range;
|
|
1975
|
-
if (!isRecord(range))
|
|
1976
|
-
return false;
|
|
1977
|
-
if (!isInteger(range.start) || !isInteger(range.end))
|
|
1978
|
-
return false;
|
|
1979
|
-
return range.start <= range.end;
|
|
1980
|
-
}
|
|
1981
|
-
function assertNoUnknownFields(input, allowlist, operationName) {
|
|
1982
|
-
for (const key of Object.keys(input)) {
|
|
1983
|
-
if (!allowlist.has(key)) {
|
|
1984
|
-
throw new DocumentApiValidationError("INVALID_TARGET", `Unknown field "${key}" on ${operationName} input. Allowed fields: ${[...allowlist].join(", ")}.`, { field: key });
|
|
1985
|
-
}
|
|
1986
|
-
}
|
|
1987
|
-
}
|
|
1988
|
-
var init_validation_primitives = __esm(() => {
|
|
1989
|
-
init_errors2();
|
|
1990
|
-
});
|
|
1991
|
-
|
|
1992
2256
|
// ../../packages/document-api/src/comments/comments.ts
|
|
1993
2257
|
function validateCreateCommentInput(input) {
|
|
1994
2258
|
if (!isRecord(input)) {
|
|
@@ -2146,76 +2410,6 @@ function executeFind(adapter, selectorOrQuery, options) {
|
|
|
2146
2410
|
return adapter.find(query2);
|
|
2147
2411
|
}
|
|
2148
2412
|
|
|
2149
|
-
// ../../packages/document-api/src/write/write.ts
|
|
2150
|
-
function normalizeMutationOptions(options) {
|
|
2151
|
-
return {
|
|
2152
|
-
expectedRevision: options?.expectedRevision,
|
|
2153
|
-
changeMode: options?.changeMode ?? "direct",
|
|
2154
|
-
dryRun: options?.dryRun ?? false
|
|
2155
|
-
};
|
|
2156
|
-
}
|
|
2157
|
-
function executeWrite(adapter, request, options) {
|
|
2158
|
-
return adapter.write(request, normalizeMutationOptions(options));
|
|
2159
|
-
}
|
|
2160
|
-
|
|
2161
|
-
// ../../packages/document-api/src/format/format.ts
|
|
2162
|
-
function validateStyleApplyInput(input) {
|
|
2163
|
-
if (!isRecord(input)) {
|
|
2164
|
-
throw new DocumentApiValidationError("INVALID_INPUT", "format.apply input must be a non-null object.");
|
|
2165
|
-
}
|
|
2166
|
-
assertNoUnknownFields(input, STYLE_APPLY_INPUT_ALLOWED_KEYS, "format.apply");
|
|
2167
|
-
const { target, inline } = input;
|
|
2168
|
-
if (target === undefined) {
|
|
2169
|
-
throw new DocumentApiValidationError("INVALID_TARGET", "format.apply requires a target.");
|
|
2170
|
-
}
|
|
2171
|
-
if (!isTextAddress(target)) {
|
|
2172
|
-
throw new DocumentApiValidationError("INVALID_TARGET", "target must be a text address object.", {
|
|
2173
|
-
field: "target",
|
|
2174
|
-
value: target
|
|
2175
|
-
});
|
|
2176
|
-
}
|
|
2177
|
-
if (inline === undefined || inline === null) {
|
|
2178
|
-
throw new DocumentApiValidationError("INVALID_INPUT", "format.apply requires an inline object.");
|
|
2179
|
-
}
|
|
2180
|
-
if (!isRecord(inline)) {
|
|
2181
|
-
throw new DocumentApiValidationError("INVALID_INPUT", "inline must be a non-null object.", {
|
|
2182
|
-
field: "inline",
|
|
2183
|
-
value: inline
|
|
2184
|
-
});
|
|
2185
|
-
}
|
|
2186
|
-
const inlineKeys = Object.keys(inline);
|
|
2187
|
-
if (inlineKeys.length === 0) {
|
|
2188
|
-
throw new DocumentApiValidationError("INVALID_INPUT", "inline must include at least one known key.");
|
|
2189
|
-
}
|
|
2190
|
-
for (const key of inlineKeys) {
|
|
2191
|
-
if (!MARK_KEY_SET.has(key)) {
|
|
2192
|
-
throw new DocumentApiValidationError("INVALID_INPUT", `Unknown inline style key "${key}". Known keys: bold, italic, underline, strike.`, {
|
|
2193
|
-
field: "inline",
|
|
2194
|
-
key
|
|
2195
|
-
});
|
|
2196
|
-
}
|
|
2197
|
-
const value = inline[key];
|
|
2198
|
-
if (typeof value !== "boolean") {
|
|
2199
|
-
throw new DocumentApiValidationError("INVALID_INPUT", `Inline style "${key}" must be a boolean, got ${typeof value}.`, {
|
|
2200
|
-
field: "inline",
|
|
2201
|
-
key,
|
|
2202
|
-
value
|
|
2203
|
-
});
|
|
2204
|
-
}
|
|
2205
|
-
}
|
|
2206
|
-
}
|
|
2207
|
-
function executeStyleApply(adapter, input, options) {
|
|
2208
|
-
validateStyleApplyInput(input);
|
|
2209
|
-
return adapter.apply(input, normalizeMutationOptions(options));
|
|
2210
|
-
}
|
|
2211
|
-
var STYLE_APPLY_INPUT_ALLOWED_KEYS;
|
|
2212
|
-
var init_format = __esm(() => {
|
|
2213
|
-
init_style_policy_types();
|
|
2214
|
-
init_errors2();
|
|
2215
|
-
init_validation_primitives();
|
|
2216
|
-
STYLE_APPLY_INPUT_ALLOWED_KEYS = new Set(["target", "inline"]);
|
|
2217
|
-
});
|
|
2218
|
-
|
|
2219
2413
|
// ../../packages/document-api/src/get-node/get-node.ts
|
|
2220
2414
|
function executeGetNode(adapter, address2) {
|
|
2221
2415
|
return adapter.getNode(address2);
|
|
@@ -2297,19 +2491,8 @@ var init_insert = __esm(() => {
|
|
|
2297
2491
|
|
|
2298
2492
|
// ../../packages/document-api/src/lists/lists.ts
|
|
2299
2493
|
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
|
-
});
|
|
2494
|
+
if (input.target === undefined) {
|
|
2495
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a target.`);
|
|
2313
2496
|
}
|
|
2314
2497
|
}
|
|
2315
2498
|
function executeListsList(adapter, query2) {
|
|
@@ -2385,19 +2568,8 @@ function validateCreateLocation(at, operationName) {
|
|
|
2385
2568
|
if (at.kind !== "before" && at.kind !== "after")
|
|
2386
2569
|
return;
|
|
2387
2570
|
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
|
-
});
|
|
2571
|
+
if (loc.target === undefined) {
|
|
2572
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires at.target.`, { fields: ["at.target"] });
|
|
2401
2573
|
}
|
|
2402
2574
|
}
|
|
2403
2575
|
function normalizeParagraphCreateLocation(location2) {
|
|
@@ -2486,6 +2658,10 @@ function buildDispatchTable(api) {
|
|
|
2486
2658
|
replace: (input, options) => api.replace(input, options),
|
|
2487
2659
|
delete: (input, options) => api.delete(input, options),
|
|
2488
2660
|
"format.apply": (input, options) => api.format.apply(input, options),
|
|
2661
|
+
"format.fontSize": (input, options) => api.format.fontSize(input, options),
|
|
2662
|
+
"format.fontFamily": (input, options) => api.format.fontFamily(input, options),
|
|
2663
|
+
"format.color": (input, options) => api.format.color(input, options),
|
|
2664
|
+
"format.align": (input, options) => api.format.align(input, options),
|
|
2489
2665
|
"create.paragraph": (input, options) => api.create.paragraph(input, options),
|
|
2490
2666
|
"create.heading": (input, options) => api.create.heading(input, options),
|
|
2491
2667
|
"lists.list": (input) => api.lists.list(input),
|
|
@@ -2579,6 +2755,18 @@ function createDocumentApi(adapters) {
|
|
|
2579
2755
|
},
|
|
2580
2756
|
apply(input, options) {
|
|
2581
2757
|
return executeStyleApply(adapters.format, input, options);
|
|
2758
|
+
},
|
|
2759
|
+
fontSize(input, options) {
|
|
2760
|
+
return executeFontSize(adapters.format, input, options);
|
|
2761
|
+
},
|
|
2762
|
+
fontFamily(input, options) {
|
|
2763
|
+
return executeFontFamily(adapters.format, input, options);
|
|
2764
|
+
},
|
|
2765
|
+
color(input, options) {
|
|
2766
|
+
return executeColor(adapters.format, input, options);
|
|
2767
|
+
},
|
|
2768
|
+
align(input, options) {
|
|
2769
|
+
return executeAlign(adapters.format, input, options);
|
|
2582
2770
|
}
|
|
2583
2771
|
},
|
|
2584
2772
|
trackChanges: {
|
|
@@ -2661,6 +2849,7 @@ var init_src = __esm(() => {
|
|
|
2661
2849
|
init_create();
|
|
2662
2850
|
init_track_changes();
|
|
2663
2851
|
init_capabilities();
|
|
2852
|
+
init_format();
|
|
2664
2853
|
init_lists_types();
|
|
2665
2854
|
init_errors2();
|
|
2666
2855
|
init_types();
|
|
@@ -3293,6 +3482,10 @@ var init_operation_hints = __esm(() => {
|
|
|
3293
3482
|
replace: "replaced text",
|
|
3294
3483
|
delete: "deleted text",
|
|
3295
3484
|
"format.apply": "applied style",
|
|
3485
|
+
"format.fontSize": "set font size",
|
|
3486
|
+
"format.fontFamily": "set font family",
|
|
3487
|
+
"format.color": "set text color",
|
|
3488
|
+
"format.align": "set alignment",
|
|
3296
3489
|
"create.paragraph": "created paragraph",
|
|
3297
3490
|
"create.heading": "created heading",
|
|
3298
3491
|
"lists.list": "listed items",
|
|
@@ -3326,6 +3519,10 @@ var init_operation_hints = __esm(() => {
|
|
|
3326
3519
|
replace: "mutationReceipt",
|
|
3327
3520
|
delete: "mutationReceipt",
|
|
3328
3521
|
"format.apply": "mutationReceipt",
|
|
3522
|
+
"format.fontSize": "mutationReceipt",
|
|
3523
|
+
"format.fontFamily": "mutationReceipt",
|
|
3524
|
+
"format.color": "mutationReceipt",
|
|
3525
|
+
"format.align": "mutationReceipt",
|
|
3329
3526
|
"create.paragraph": "createResult",
|
|
3330
3527
|
"create.heading": "createResult",
|
|
3331
3528
|
"lists.list": "listResult",
|
|
@@ -3359,6 +3556,10 @@ var init_operation_hints = __esm(() => {
|
|
|
3359
3556
|
replace: null,
|
|
3360
3557
|
delete: null,
|
|
3361
3558
|
"format.apply": null,
|
|
3559
|
+
"format.fontSize": null,
|
|
3560
|
+
"format.fontFamily": null,
|
|
3561
|
+
"format.color": null,
|
|
3562
|
+
"format.align": null,
|
|
3362
3563
|
"create.paragraph": "result",
|
|
3363
3564
|
"create.heading": "result",
|
|
3364
3565
|
"lists.list": "result",
|
|
@@ -3386,7 +3587,11 @@ var init_operation_hints = __esm(() => {
|
|
|
3386
3587
|
insert: "receipt",
|
|
3387
3588
|
replace: "receipt",
|
|
3388
3589
|
delete: "receipt",
|
|
3389
|
-
"format.apply": "receipt"
|
|
3590
|
+
"format.apply": "receipt",
|
|
3591
|
+
"format.fontSize": "receipt",
|
|
3592
|
+
"format.fontFamily": "receipt",
|
|
3593
|
+
"format.color": "receipt",
|
|
3594
|
+
"format.align": "receipt"
|
|
3390
3595
|
};
|
|
3391
3596
|
OPERATION_FAMILY = {
|
|
3392
3597
|
find: "query",
|
|
@@ -3398,6 +3603,10 @@ var init_operation_hints = __esm(() => {
|
|
|
3398
3603
|
replace: "textMutation",
|
|
3399
3604
|
delete: "textMutation",
|
|
3400
3605
|
"format.apply": "textMutation",
|
|
3606
|
+
"format.fontSize": "textMutation",
|
|
3607
|
+
"format.fontFamily": "textMutation",
|
|
3608
|
+
"format.color": "textMutation",
|
|
3609
|
+
"format.align": "textMutation",
|
|
3401
3610
|
"create.paragraph": "create",
|
|
3402
3611
|
"create.heading": "create",
|
|
3403
3612
|
"lists.list": "lists",
|
|
@@ -18045,7 +18254,7 @@ var init_constants_DBKi0Amm_es = __esm(() => {
|
|
|
18045
18254
|
]);
|
|
18046
18255
|
});
|
|
18047
18256
|
|
|
18048
|
-
// ../../packages/superdoc/dist/chunks/SuperConverter-
|
|
18257
|
+
// ../../packages/superdoc/dist/chunks/SuperConverter-BxBclpFg.es.js
|
|
18049
18258
|
function getExtensionConfigField(extension, field, context = { name: "" }) {
|
|
18050
18259
|
const fieldValue = extension.config[field];
|
|
18051
18260
|
if (typeof fieldValue === "function")
|
|
@@ -41796,7 +42005,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
41796
42005
|
state.kern = kernNode.attributes["w:val"];
|
|
41797
42006
|
}
|
|
41798
42007
|
}, SuperConverter;
|
|
41799
|
-
var
|
|
42008
|
+
var init_SuperConverter_BxBclpFg_es = __esm(() => {
|
|
41800
42009
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
41801
42010
|
init_jszip_ChlR43oI_es();
|
|
41802
42011
|
init_xml_js_DLE8mr0n_es();
|
|
@@ -44589,7 +44798,7 @@ var init_SuperConverter_Cf1y7bFA_es = __esm(() => {
|
|
|
44589
44798
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : undefined;
|
|
44590
44799
|
}
|
|
44591
44800
|
});
|
|
44592
|
-
translator$76 = NodeTranslator.from(createSingleAttrPropertyHandler("w:jc", "justification"));
|
|
44801
|
+
translator$76 = NodeTranslator.from(createSingleAttrPropertyHandler("w:jc", "justification", "w:val", (v$1) => v$1 === "both" ? "justify" : v$1, (v$1) => v$1 === "justify" ? "both" : v$1));
|
|
44593
44802
|
translator$77 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:keepLines"));
|
|
44594
44803
|
translator$78 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:keepNext"));
|
|
44595
44804
|
translator$80 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:kinsoku"));
|
|
@@ -87184,9 +87393,9 @@ var init_remark_gfm_RDxetNVS_es = __esm(() => {
|
|
|
87184
87393
|
emptyOptions4 = {};
|
|
87185
87394
|
});
|
|
87186
87395
|
|
|
87187
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
87188
|
-
var
|
|
87189
|
-
__export(
|
|
87396
|
+
// ../../packages/superdoc/dist/chunks/src-DVVC7vA7.es.js
|
|
87397
|
+
var exports_src_DVVC7vA7_es = {};
|
|
87398
|
+
__export(exports_src_DVVC7vA7_es, {
|
|
87190
87399
|
zt: () => defineMark,
|
|
87191
87400
|
z: () => cM,
|
|
87192
87401
|
yt: () => removeAwarenessStates,
|
|
@@ -93778,6 +93987,163 @@ function mutationOperation2(options) {
|
|
|
93778
93987
|
function projectFromDefinitions2(fn) {
|
|
93779
93988
|
return Object.fromEntries(OPERATION_IDS2.map((id2) => [id2, fn(id2, OPERATION_DEFINITIONS2[id2])]));
|
|
93780
93989
|
}
|
|
93990
|
+
function normalizeMutationOptions2(options) {
|
|
93991
|
+
return {
|
|
93992
|
+
expectedRevision: options?.expectedRevision,
|
|
93993
|
+
changeMode: options?.changeMode ?? "direct",
|
|
93994
|
+
dryRun: options?.dryRun ?? false
|
|
93995
|
+
};
|
|
93996
|
+
}
|
|
93997
|
+
function executeWrite2(adapter, request, options) {
|
|
93998
|
+
return adapter.write(request, normalizeMutationOptions2(options));
|
|
93999
|
+
}
|
|
94000
|
+
function isRecord3(value) {
|
|
94001
|
+
return typeof value === "object" && value != null && !Array.isArray(value);
|
|
94002
|
+
}
|
|
94003
|
+
function isInteger3(value) {
|
|
94004
|
+
return typeof value === "number" && Number.isInteger(value);
|
|
94005
|
+
}
|
|
94006
|
+
function isTextAddress2(value) {
|
|
94007
|
+
if (!isRecord3(value))
|
|
94008
|
+
return false;
|
|
94009
|
+
if (value.kind !== "text")
|
|
94010
|
+
return false;
|
|
94011
|
+
if (typeof value.blockId !== "string")
|
|
94012
|
+
return false;
|
|
94013
|
+
const range = value.range;
|
|
94014
|
+
if (!isRecord3(range))
|
|
94015
|
+
return false;
|
|
94016
|
+
if (!isInteger3(range.start) || !isInteger3(range.end))
|
|
94017
|
+
return false;
|
|
94018
|
+
return range.start <= range.end;
|
|
94019
|
+
}
|
|
94020
|
+
function assertNoUnknownFields2(input2, allowlist, operationName) {
|
|
94021
|
+
for (const key$1 of Object.keys(input2))
|
|
94022
|
+
if (!allowlist.has(key$1))
|
|
94023
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `Unknown field "${key$1}" on ${operationName} input. Allowed fields: ${[...allowlist].join(", ")}.`, { field: key$1 });
|
|
94024
|
+
}
|
|
94025
|
+
function validateStyleApplyInput2(input2) {
|
|
94026
|
+
if (!isRecord3(input2))
|
|
94027
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.apply input must be a non-null object.");
|
|
94028
|
+
assertNoUnknownFields2(input2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, "format.apply");
|
|
94029
|
+
const { target, inline } = input2;
|
|
94030
|
+
if (target === undefined)
|
|
94031
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", "format.apply requires a target.");
|
|
94032
|
+
if (!isTextAddress2(target))
|
|
94033
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", "target must be a text address object.", {
|
|
94034
|
+
field: "target",
|
|
94035
|
+
value: target
|
|
94036
|
+
});
|
|
94037
|
+
if (inline === undefined || inline === null)
|
|
94038
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.apply requires an inline object.");
|
|
94039
|
+
if (!isRecord3(inline))
|
|
94040
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "inline must be a non-null object.", {
|
|
94041
|
+
field: "inline",
|
|
94042
|
+
value: inline
|
|
94043
|
+
});
|
|
94044
|
+
const inlineKeys = Object.keys(inline);
|
|
94045
|
+
if (inlineKeys.length === 0)
|
|
94046
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "inline must include at least one known key.");
|
|
94047
|
+
for (const key$1 of inlineKeys) {
|
|
94048
|
+
if (!MARK_KEY_SET2.has(key$1))
|
|
94049
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", `Unknown inline style key "${key$1}". Known keys: bold, italic, underline, strike.`, {
|
|
94050
|
+
field: "inline",
|
|
94051
|
+
key: key$1
|
|
94052
|
+
});
|
|
94053
|
+
const value = inline[key$1];
|
|
94054
|
+
if (typeof value !== "boolean")
|
|
94055
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", `Inline style "${key$1}" must be a boolean, got ${typeof value}.`, {
|
|
94056
|
+
field: "inline",
|
|
94057
|
+
key: key$1,
|
|
94058
|
+
value
|
|
94059
|
+
});
|
|
94060
|
+
}
|
|
94061
|
+
}
|
|
94062
|
+
function executeStyleApply$1(adapter, input2, options) {
|
|
94063
|
+
validateStyleApplyInput2(input2);
|
|
94064
|
+
return adapter.apply(input2, normalizeMutationOptions2(options));
|
|
94065
|
+
}
|
|
94066
|
+
function validateTarget2(input2, operation) {
|
|
94067
|
+
if (!isRecord3(input2))
|
|
94068
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", `${operation} input must be a non-null object.`);
|
|
94069
|
+
if (input2.target === undefined)
|
|
94070
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `${operation} requires a target.`);
|
|
94071
|
+
if (!isTextAddress2(input2.target))
|
|
94072
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", "target must be a text address object.", {
|
|
94073
|
+
field: "target",
|
|
94074
|
+
value: input2.target
|
|
94075
|
+
});
|
|
94076
|
+
}
|
|
94077
|
+
function validateFontSizeInput2(input2) {
|
|
94078
|
+
validateTarget2(input2, "format.fontSize");
|
|
94079
|
+
assertNoUnknownFields2(input2, FONT_SIZE_ALLOWED_KEYS2, "format.fontSize");
|
|
94080
|
+
const { value } = input2;
|
|
94081
|
+
if (value === undefined)
|
|
94082
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.fontSize requires a value field.");
|
|
94083
|
+
if (value !== null && typeof value !== "string" && typeof value !== "number")
|
|
94084
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", `format.fontSize value must be a string, number, or null.`, {
|
|
94085
|
+
field: "value",
|
|
94086
|
+
value
|
|
94087
|
+
});
|
|
94088
|
+
if (typeof value === "string" && value.length === 0)
|
|
94089
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.fontSize value must not be an empty string.", { field: "value" });
|
|
94090
|
+
}
|
|
94091
|
+
function executeFontSize2(adapter, input2, options) {
|
|
94092
|
+
validateFontSizeInput2(input2);
|
|
94093
|
+
return adapter.fontSize(input2, normalizeMutationOptions2(options));
|
|
94094
|
+
}
|
|
94095
|
+
function validateFontFamilyInput2(input2) {
|
|
94096
|
+
validateTarget2(input2, "format.fontFamily");
|
|
94097
|
+
assertNoUnknownFields2(input2, FONT_FAMILY_ALLOWED_KEYS2, "format.fontFamily");
|
|
94098
|
+
const { value } = input2;
|
|
94099
|
+
if (value === undefined)
|
|
94100
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.fontFamily requires a value field.");
|
|
94101
|
+
if (value !== null && typeof value !== "string")
|
|
94102
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.fontFamily value must be a string or null.", {
|
|
94103
|
+
field: "value",
|
|
94104
|
+
value
|
|
94105
|
+
});
|
|
94106
|
+
if (typeof value === "string" && value.length === 0)
|
|
94107
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.fontFamily value must not be an empty string.", { field: "value" });
|
|
94108
|
+
}
|
|
94109
|
+
function executeFontFamily2(adapter, input2, options) {
|
|
94110
|
+
validateFontFamilyInput2(input2);
|
|
94111
|
+
return adapter.fontFamily(input2, normalizeMutationOptions2(options));
|
|
94112
|
+
}
|
|
94113
|
+
function validateColorInput2(input2) {
|
|
94114
|
+
validateTarget2(input2, "format.color");
|
|
94115
|
+
assertNoUnknownFields2(input2, COLOR_ALLOWED_KEYS2, "format.color");
|
|
94116
|
+
const { value } = input2;
|
|
94117
|
+
if (value === undefined)
|
|
94118
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.color requires a value field.");
|
|
94119
|
+
if (value !== null && typeof value !== "string")
|
|
94120
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.color value must be a string or null.", {
|
|
94121
|
+
field: "value",
|
|
94122
|
+
value
|
|
94123
|
+
});
|
|
94124
|
+
if (typeof value === "string" && value.length === 0)
|
|
94125
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.color value must not be an empty string.", { field: "value" });
|
|
94126
|
+
}
|
|
94127
|
+
function executeColor2(adapter, input2, options) {
|
|
94128
|
+
validateColorInput2(input2);
|
|
94129
|
+
return adapter.color(input2, normalizeMutationOptions2(options));
|
|
94130
|
+
}
|
|
94131
|
+
function validateAlignInput2(input2) {
|
|
94132
|
+
validateTarget2(input2, "format.align");
|
|
94133
|
+
assertNoUnknownFields2(input2, ALIGN_ALLOWED_KEYS2, "format.align");
|
|
94134
|
+
const { alignment: alignment$1 } = input2;
|
|
94135
|
+
if (alignment$1 === undefined)
|
|
94136
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "format.align requires an alignment field.");
|
|
94137
|
+
if (alignment$1 !== null && (typeof alignment$1 !== "string" || !ALIGNMENT_SET2.has(alignment$1)))
|
|
94138
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", `format.align alignment must be one of ${ALIGNMENTS2.join(", ")}, or null.`, {
|
|
94139
|
+
field: "alignment",
|
|
94140
|
+
value: alignment$1
|
|
94141
|
+
});
|
|
94142
|
+
}
|
|
94143
|
+
function executeAlign2(adapter, input2, options) {
|
|
94144
|
+
validateAlignInput2(input2);
|
|
94145
|
+
return adapter.align(input2, normalizeMutationOptions2(options));
|
|
94146
|
+
}
|
|
93781
94147
|
function objectSchema2(properties, required = []) {
|
|
93782
94148
|
const schema = {
|
|
93783
94149
|
type: "object",
|
|
@@ -93915,31 +94281,6 @@ function listsExitResultSchemaFor2(operationId) {
|
|
|
93915
94281
|
function executeCapabilities2(adapter) {
|
|
93916
94282
|
return adapter.get();
|
|
93917
94283
|
}
|
|
93918
|
-
function isRecord3(value) {
|
|
93919
|
-
return typeof value === "object" && value != null && !Array.isArray(value);
|
|
93920
|
-
}
|
|
93921
|
-
function isInteger3(value) {
|
|
93922
|
-
return typeof value === "number" && Number.isInteger(value);
|
|
93923
|
-
}
|
|
93924
|
-
function isTextAddress2(value) {
|
|
93925
|
-
if (!isRecord3(value))
|
|
93926
|
-
return false;
|
|
93927
|
-
if (value.kind !== "text")
|
|
93928
|
-
return false;
|
|
93929
|
-
if (typeof value.blockId !== "string")
|
|
93930
|
-
return false;
|
|
93931
|
-
const range = value.range;
|
|
93932
|
-
if (!isRecord3(range))
|
|
93933
|
-
return false;
|
|
93934
|
-
if (!isInteger3(range.start) || !isInteger3(range.end))
|
|
93935
|
-
return false;
|
|
93936
|
-
return range.start <= range.end;
|
|
93937
|
-
}
|
|
93938
|
-
function assertNoUnknownFields2(input2, allowlist, operationName) {
|
|
93939
|
-
for (const key$1 of Object.keys(input2))
|
|
93940
|
-
if (!allowlist.has(key$1))
|
|
93941
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `Unknown field "${key$1}" on ${operationName} input. Allowed fields: ${[...allowlist].join(", ")}.`, { field: key$1 });
|
|
93942
|
-
}
|
|
93943
94284
|
function validateCreateCommentInput2(input2) {
|
|
93944
94285
|
if (!isRecord3(input2))
|
|
93945
94286
|
throw new DocumentApiValidationError2("INVALID_TARGET", "comments.create input must be a non-null object.");
|
|
@@ -94089,57 +94430,6 @@ function executeFind2(adapter, selectorOrQuery, options) {
|
|
|
94089
94430
|
const query2 = normalizeFindQuery2(selectorOrQuery, options);
|
|
94090
94431
|
return adapter.find(query2);
|
|
94091
94432
|
}
|
|
94092
|
-
function normalizeMutationOptions2(options) {
|
|
94093
|
-
return {
|
|
94094
|
-
expectedRevision: options?.expectedRevision,
|
|
94095
|
-
changeMode: options?.changeMode ?? "direct",
|
|
94096
|
-
dryRun: options?.dryRun ?? false
|
|
94097
|
-
};
|
|
94098
|
-
}
|
|
94099
|
-
function executeWrite2(adapter, request, options) {
|
|
94100
|
-
return adapter.write(request, normalizeMutationOptions2(options));
|
|
94101
|
-
}
|
|
94102
|
-
function validateStyleApplyInput2(input2) {
|
|
94103
|
-
if (!isRecord3(input2))
|
|
94104
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", "format.apply input must be a non-null object.");
|
|
94105
|
-
assertNoUnknownFields2(input2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, "format.apply");
|
|
94106
|
-
const { target, inline } = input2;
|
|
94107
|
-
if (target === undefined)
|
|
94108
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", "format.apply requires a target.");
|
|
94109
|
-
if (!isTextAddress2(target))
|
|
94110
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", "target must be a text address object.", {
|
|
94111
|
-
field: "target",
|
|
94112
|
-
value: target
|
|
94113
|
-
});
|
|
94114
|
-
if (inline === undefined || inline === null)
|
|
94115
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", "format.apply requires an inline object.");
|
|
94116
|
-
if (!isRecord3(inline))
|
|
94117
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", "inline must be a non-null object.", {
|
|
94118
|
-
field: "inline",
|
|
94119
|
-
value: inline
|
|
94120
|
-
});
|
|
94121
|
-
const inlineKeys = Object.keys(inline);
|
|
94122
|
-
if (inlineKeys.length === 0)
|
|
94123
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", "inline must include at least one known key.");
|
|
94124
|
-
for (const key$1 of inlineKeys) {
|
|
94125
|
-
if (!MARK_KEY_SET2.has(key$1))
|
|
94126
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", `Unknown inline style key "${key$1}". Known keys: bold, italic, underline, strike.`, {
|
|
94127
|
-
field: "inline",
|
|
94128
|
-
key: key$1
|
|
94129
|
-
});
|
|
94130
|
-
const value = inline[key$1];
|
|
94131
|
-
if (typeof value !== "boolean")
|
|
94132
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", `Inline style "${key$1}" must be a boolean, got ${typeof value}.`, {
|
|
94133
|
-
field: "inline",
|
|
94134
|
-
key: key$1,
|
|
94135
|
-
value
|
|
94136
|
-
});
|
|
94137
|
-
}
|
|
94138
|
-
}
|
|
94139
|
-
function executeStyleApply$1(adapter, input2, options) {
|
|
94140
|
-
validateStyleApplyInput2(input2);
|
|
94141
|
-
return adapter.apply(input2, normalizeMutationOptions2(options));
|
|
94142
|
-
}
|
|
94143
94433
|
function executeGetNode2(adapter, address2) {
|
|
94144
94434
|
return adapter.getNode(address2);
|
|
94145
94435
|
}
|
|
@@ -94202,17 +94492,8 @@ function executeInsert2(adapter, input2, options) {
|
|
|
94202
94492
|
}, options);
|
|
94203
94493
|
}
|
|
94204
94494
|
function validateListTarget2(input2, operationName) {
|
|
94205
|
-
|
|
94206
|
-
|
|
94207
|
-
if (hasTarget && hasNodeId)
|
|
94208
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `Cannot combine target with nodeId on ${operationName} request. Use exactly one locator mode.`, { fields: ["target", "nodeId"] });
|
|
94209
|
-
if (!hasTarget && !hasNodeId)
|
|
94210
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a target. Provide either target or nodeId.`);
|
|
94211
|
-
if (hasNodeId && typeof input2.nodeId !== "string")
|
|
94212
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `nodeId must be a string, got ${typeof input2.nodeId}.`, {
|
|
94213
|
-
field: "nodeId",
|
|
94214
|
-
value: input2.nodeId
|
|
94215
|
-
});
|
|
94495
|
+
if (input2.target === undefined)
|
|
94496
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a target.`);
|
|
94216
94497
|
}
|
|
94217
94498
|
function executeListsList2(adapter, query2) {
|
|
94218
94499
|
return adapter.list(query2);
|
|
@@ -94273,18 +94554,8 @@ function executeReplace2(adapter, input2, options) {
|
|
|
94273
94554
|
function validateCreateLocation2(at, operationName) {
|
|
94274
94555
|
if (at.kind !== "before" && at.kind !== "after")
|
|
94275
94556
|
return;
|
|
94276
|
-
|
|
94277
|
-
|
|
94278
|
-
const hasNodeId = loc.nodeId !== undefined;
|
|
94279
|
-
if (hasTarget && hasNodeId)
|
|
94280
|
-
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"] });
|
|
94281
|
-
if (!hasTarget && !hasNodeId)
|
|
94282
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires either at.target or at.nodeId.`, { fields: ["at.target", "at.nodeId"] });
|
|
94283
|
-
if (hasNodeId && typeof loc.nodeId !== "string")
|
|
94284
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", `at.nodeId must be a string, got ${typeof loc.nodeId}.`, {
|
|
94285
|
-
field: "at.nodeId",
|
|
94286
|
-
value: loc.nodeId
|
|
94287
|
-
});
|
|
94557
|
+
if (at.target === undefined)
|
|
94558
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires at.target.`, { fields: ["at.target"] });
|
|
94288
94559
|
}
|
|
94289
94560
|
function normalizeParagraphCreateLocation2(location$1) {
|
|
94290
94561
|
return location$1 ?? { kind: "documentEnd" };
|
|
@@ -94365,6 +94636,10 @@ function buildDispatchTable2(api) {
|
|
|
94365
94636
|
replace: (input2, options) => api.replace(input2, options),
|
|
94366
94637
|
delete: (input2, options) => api.delete(input2, options),
|
|
94367
94638
|
"format.apply": (input2, options) => api.format.apply(input2, options),
|
|
94639
|
+
"format.fontSize": (input2, options) => api.format.fontSize(input2, options),
|
|
94640
|
+
"format.fontFamily": (input2, options) => api.format.fontFamily(input2, options),
|
|
94641
|
+
"format.color": (input2, options) => api.format.color(input2, options),
|
|
94642
|
+
"format.align": (input2, options) => api.format.align(input2, options),
|
|
94368
94643
|
"create.paragraph": (input2, options) => api.create.paragraph(input2, options),
|
|
94369
94644
|
"create.heading": (input2, options) => api.create.heading(input2, options),
|
|
94370
94645
|
"lists.list": (input2) => api.lists.list(input2),
|
|
@@ -94460,6 +94735,18 @@ function createDocumentApi2(adapters) {
|
|
|
94460
94735
|
},
|
|
94461
94736
|
apply(input2, options) {
|
|
94462
94737
|
return executeStyleApply$1(adapters.format, input2, options);
|
|
94738
|
+
},
|
|
94739
|
+
fontSize(input2, options) {
|
|
94740
|
+
return executeFontSize2(adapters.format, input2, options);
|
|
94741
|
+
},
|
|
94742
|
+
fontFamily(input2, options) {
|
|
94743
|
+
return executeFontFamily2(adapters.format, input2, options);
|
|
94744
|
+
},
|
|
94745
|
+
color(input2, options) {
|
|
94746
|
+
return executeColor2(adapters.format, input2, options);
|
|
94747
|
+
},
|
|
94748
|
+
align(input2, options) {
|
|
94749
|
+
return executeAlign2(adapters.format, input2, options);
|
|
94463
94750
|
}
|
|
94464
94751
|
},
|
|
94465
94752
|
trackChanges: {
|
|
@@ -94577,10 +94864,12 @@ function pushReason(reasons, reason) {
|
|
|
94577
94864
|
function isOperationAvailable(editor, operationId) {
|
|
94578
94865
|
if (operationId === "format.apply")
|
|
94579
94866
|
return MARK_KEYS2.some((key$1) => hasMarkCapability(editor, STYLE_MARK_SCHEMA_NAMES[key$1] ?? key$1));
|
|
94867
|
+
if (INLINE_FORMAT_OPERATIONS.has(operationId))
|
|
94868
|
+
return hasAllCommands(editor, operationId) && hasMarkCapability(editor, "textStyle");
|
|
94580
94869
|
return hasAllCommands(editor, operationId);
|
|
94581
94870
|
}
|
|
94582
94871
|
function isCommandBackedAvailability(operationId) {
|
|
94583
|
-
return !isMarkBackedOperation(operationId);
|
|
94872
|
+
return !isMarkBackedOperation(operationId) && !INLINE_FORMAT_OPERATIONS.has(operationId);
|
|
94584
94873
|
}
|
|
94585
94874
|
function buildOperationCapabilities(editor) {
|
|
94586
94875
|
const operations = {};
|
|
@@ -95416,29 +95705,51 @@ function hasStepExecutor(op) {
|
|
|
95416
95705
|
return getStepExecutor(op) !== undefined;
|
|
95417
95706
|
}
|
|
95418
95707
|
function captureRunsInRange(editor, blockPos, from$12, to) {
|
|
95419
|
-
const
|
|
95420
|
-
|
|
95421
|
-
|
|
95422
|
-
|
|
95708
|
+
const blockNode = editor.state.doc.nodeAt(blockPos);
|
|
95709
|
+
if (!blockNode || from$12 < 0 || to < from$12 || from$12 === to)
|
|
95710
|
+
return {
|
|
95711
|
+
runs: [],
|
|
95712
|
+
isUniform: true
|
|
95713
|
+
};
|
|
95423
95714
|
const runs2 = [];
|
|
95424
|
-
|
|
95425
|
-
|
|
95426
|
-
|
|
95427
|
-
const
|
|
95428
|
-
|
|
95429
|
-
|
|
95430
|
-
return true;
|
|
95431
|
-
const relFrom = nodeStart - contentStart;
|
|
95432
|
-
const relTo = nodeEnd - contentStart;
|
|
95433
|
-
const formattingMarks = node3.marks.filter((m$1) => !METADATA_MARK_NAMES.has(m$1.type.name));
|
|
95715
|
+
let offset$1 = 0;
|
|
95716
|
+
const maybePushRun = (start$1, end$1, marks) => {
|
|
95717
|
+
const overlapStart = Math.max(start$1, from$12);
|
|
95718
|
+
const overlapEnd = Math.min(end$1, to);
|
|
95719
|
+
if (overlapStart >= overlapEnd)
|
|
95720
|
+
return;
|
|
95434
95721
|
runs2.push({
|
|
95435
|
-
from:
|
|
95436
|
-
to:
|
|
95437
|
-
charCount:
|
|
95438
|
-
marks:
|
|
95722
|
+
from: overlapStart,
|
|
95723
|
+
to: overlapEnd,
|
|
95724
|
+
charCount: overlapEnd - overlapStart,
|
|
95725
|
+
marks: marks.filter((m$1) => !METADATA_MARK_NAMES.has(m$1.type.name))
|
|
95439
95726
|
});
|
|
95440
|
-
|
|
95441
|
-
|
|
95727
|
+
};
|
|
95728
|
+
const walkNode$1 = (node3) => {
|
|
95729
|
+
if (node3.isText) {
|
|
95730
|
+
const text4 = node3.text ?? "";
|
|
95731
|
+
if (text4.length > 0) {
|
|
95732
|
+
const start$1 = offset$1;
|
|
95733
|
+
const end$1 = offset$1 + text4.length;
|
|
95734
|
+
maybePushRun(start$1, end$1, Array.isArray(node3.marks) ? node3.marks : []);
|
|
95735
|
+
offset$1 = end$1;
|
|
95736
|
+
}
|
|
95737
|
+
return;
|
|
95738
|
+
}
|
|
95739
|
+
if (node3.isLeaf) {
|
|
95740
|
+
offset$1 += 1;
|
|
95741
|
+
return;
|
|
95742
|
+
}
|
|
95743
|
+
let isFirstChild = true;
|
|
95744
|
+
for (let i$1 = 0;i$1 < node3.childCount; i$1++) {
|
|
95745
|
+
const child = node3.child(i$1);
|
|
95746
|
+
if (child.isBlock && !isFirstChild)
|
|
95747
|
+
offset$1 += 1;
|
|
95748
|
+
walkNode$1(child);
|
|
95749
|
+
isFirstChild = false;
|
|
95750
|
+
}
|
|
95751
|
+
};
|
|
95752
|
+
walkNode$1(blockNode);
|
|
95442
95753
|
return {
|
|
95443
95754
|
runs: runs2,
|
|
95444
95755
|
isUniform: checkUniformity(runs2)
|
|
@@ -95871,10 +96182,7 @@ function isRefWhere(where) {
|
|
|
95871
96182
|
return where.by === "ref";
|
|
95872
96183
|
}
|
|
95873
96184
|
function isV3Ref(payload) {
|
|
95874
|
-
return "v" in payload && payload.v === 3;
|
|
95875
|
-
}
|
|
95876
|
-
function isV2Ref(payload) {
|
|
95877
|
-
return "v" in payload && payload.v === 2;
|
|
96185
|
+
return typeof payload === "object" && payload !== null && "v" in payload && payload.v === 3;
|
|
95878
96186
|
}
|
|
95879
96187
|
function resolveAbsoluteRange(editor, candidate, from$12, to, stepId) {
|
|
95880
96188
|
const resolved = resolveTextRangeInBlock(candidate.node, candidate.pos, {
|
|
@@ -96104,62 +96412,6 @@ function decodeTextRefPayload(encoded, stepId) {
|
|
|
96104
96412
|
throw planError("INVALID_INPUT", "invalid text ref encoding", stepId);
|
|
96105
96413
|
}
|
|
96106
96414
|
}
|
|
96107
|
-
function resolveV1TextRef(editor, index2, step, refData) {
|
|
96108
|
-
const currentRevision = getRevision(editor);
|
|
96109
|
-
if (refData.rev !== currentRevision)
|
|
96110
|
-
throw planError("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, {
|
|
96111
|
-
refRevision: refData.rev,
|
|
96112
|
-
currentRevision
|
|
96113
|
-
});
|
|
96114
|
-
if (!refData.ranges?.length)
|
|
96115
|
-
return [];
|
|
96116
|
-
const coalesced = normalizeMatchRanges(step.id, refData.ranges);
|
|
96117
|
-
const candidate = index2.candidates.find((c$3) => c$3.nodeId === coalesced.blockId);
|
|
96118
|
-
if (!candidate)
|
|
96119
|
-
return [];
|
|
96120
|
-
const matchText = getBlockText(editor, candidate).slice(coalesced.from, coalesced.to);
|
|
96121
|
-
return [buildRangeTarget(editor, step, {
|
|
96122
|
-
blockId: coalesced.blockId,
|
|
96123
|
-
from: coalesced.from,
|
|
96124
|
-
to: coalesced.to,
|
|
96125
|
-
text: matchText,
|
|
96126
|
-
marks: [],
|
|
96127
|
-
blockPos: candidate.pos
|
|
96128
|
-
}, candidate)];
|
|
96129
|
-
}
|
|
96130
|
-
function resolveV2TextRef(editor, index2, step, refData) {
|
|
96131
|
-
const currentRevision = getRevision(editor);
|
|
96132
|
-
if (refData.rev !== currentRevision)
|
|
96133
|
-
throw planError("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, {
|
|
96134
|
-
refRevision: refData.rev,
|
|
96135
|
-
currentRevision
|
|
96136
|
-
});
|
|
96137
|
-
if (!refData.segments?.length)
|
|
96138
|
-
return [];
|
|
96139
|
-
const segments = refData.segments.map((s2) => ({
|
|
96140
|
-
blockId: s2.blockId,
|
|
96141
|
-
from: s2.start,
|
|
96142
|
-
to: s2.end
|
|
96143
|
-
}));
|
|
96144
|
-
if (segments.length === 1) {
|
|
96145
|
-
const seg = segments[0];
|
|
96146
|
-
const candidate = index2.candidates.find((c$3) => c$3.nodeId === seg.blockId);
|
|
96147
|
-
if (!candidate)
|
|
96148
|
-
return [];
|
|
96149
|
-
const matchText = getBlockText(editor, candidate).slice(seg.from, seg.to);
|
|
96150
|
-
const target = buildRangeTarget(editor, step, {
|
|
96151
|
-
blockId: seg.blockId,
|
|
96152
|
-
from: seg.from,
|
|
96153
|
-
to: seg.to,
|
|
96154
|
-
text: matchText,
|
|
96155
|
-
marks: [],
|
|
96156
|
-
blockPos: candidate.pos
|
|
96157
|
-
}, candidate);
|
|
96158
|
-
target.matchId = refData.matchId;
|
|
96159
|
-
return [target];
|
|
96160
|
-
}
|
|
96161
|
-
return [buildSpanTarget(editor, index2, step, segments, refData.matchId)];
|
|
96162
|
-
}
|
|
96163
96415
|
function resolveV3TextRef(editor, index2, step, refData) {
|
|
96164
96416
|
const currentRevision = getRevision(editor);
|
|
96165
96417
|
if (refData.rev !== currentRevision)
|
|
@@ -96195,11 +96447,9 @@ function resolveV3TextRef(editor, index2, step, refData) {
|
|
|
96195
96447
|
}
|
|
96196
96448
|
function resolveTextRef(editor, index2, step, ref$2) {
|
|
96197
96449
|
const payload = decodeTextRefPayload(ref$2.slice(5), step.id);
|
|
96198
|
-
if (isV3Ref(payload))
|
|
96199
|
-
|
|
96200
|
-
|
|
96201
|
-
return resolveV2TextRef(editor, index2, step, payload);
|
|
96202
|
-
return resolveV1TextRef(editor, index2, step, payload);
|
|
96450
|
+
if (!isV3Ref(payload))
|
|
96451
|
+
throw planError("INVALID_INPUT", "only V3 text refs are supported", step.id);
|
|
96452
|
+
return resolveV3TextRef(editor, index2, step, payload);
|
|
96203
96453
|
}
|
|
96204
96454
|
function resolveBlockRef(editor, index2, step, ref$2) {
|
|
96205
96455
|
const candidate = index2.candidates.find((c$3) => c$3.nodeId === ref$2);
|
|
@@ -96222,8 +96472,6 @@ function dispatchRefHandler(editor, index2, step, ref$2) {
|
|
|
96222
96472
|
return resolveBlockRef(editor, index2, step, ref$2);
|
|
96223
96473
|
}
|
|
96224
96474
|
function resolveRefTargets(editor, index2, step, where) {
|
|
96225
|
-
if (where.require !== undefined && where.require !== "exactlyOne")
|
|
96226
|
-
throw planError("INVALID_INPUT", `ref-based targeting only accepts require: 'exactlyOne' (received '${where.require}')`, step.id);
|
|
96227
96475
|
return dispatchRefHandler(editor, index2, step, where.ref);
|
|
96228
96476
|
}
|
|
96229
96477
|
function resolveStepTargets(editor, index2, step) {
|
|
@@ -97410,6 +97658,7 @@ function toCommentInfo(entry, options = {}) {
|
|
|
97410
97658
|
isInternal: typeof entry.isInternal === "boolean" ? entry.isInternal : undefined,
|
|
97411
97659
|
status,
|
|
97412
97660
|
target: options.target,
|
|
97661
|
+
anchoredText: options.anchoredText,
|
|
97413
97662
|
createdTime: typeof entry.createdTime === "number" ? entry.createdTime : undefined,
|
|
97414
97663
|
creatorName: typeof entry.creatorName === "string" ? entry.creatorName : undefined,
|
|
97415
97664
|
creatorEmail: typeof entry.creatorEmail === "string" ? entry.creatorEmail : undefined
|
|
@@ -97533,7 +97782,74 @@ function resolveCommentIdentity(editor, commentId) {
|
|
|
97533
97782
|
anchors
|
|
97534
97783
|
};
|
|
97535
97784
|
}
|
|
97536
|
-
function
|
|
97785
|
+
function canonicalizeAnchors(sorted) {
|
|
97786
|
+
if (sorted.length === 0)
|
|
97787
|
+
return [];
|
|
97788
|
+
const result = [];
|
|
97789
|
+
let current = {
|
|
97790
|
+
blockId: sorted[0].target.blockId,
|
|
97791
|
+
range: {
|
|
97792
|
+
start: sorted[0].target.range.start,
|
|
97793
|
+
end: sorted[0].target.range.end
|
|
97794
|
+
},
|
|
97795
|
+
pos: sorted[0].pos,
|
|
97796
|
+
end: sorted[0].end
|
|
97797
|
+
};
|
|
97798
|
+
for (let i$1 = 1;i$1 < sorted.length; i$1++) {
|
|
97799
|
+
const anchor = sorted[i$1];
|
|
97800
|
+
const sameBlock = anchor.target.blockId === current.blockId;
|
|
97801
|
+
const overlapsOrAdjacent = anchor.target.range.start <= current.range.end;
|
|
97802
|
+
if (sameBlock && overlapsOrAdjacent) {
|
|
97803
|
+
current.range.end = Math.max(current.range.end, anchor.target.range.end);
|
|
97804
|
+
current.end = Math.max(current.end, anchor.end);
|
|
97805
|
+
} else {
|
|
97806
|
+
result.push(current);
|
|
97807
|
+
current = {
|
|
97808
|
+
blockId: anchor.target.blockId,
|
|
97809
|
+
range: {
|
|
97810
|
+
start: anchor.target.range.start,
|
|
97811
|
+
end: anchor.target.range.end
|
|
97812
|
+
},
|
|
97813
|
+
pos: anchor.pos,
|
|
97814
|
+
end: anchor.end
|
|
97815
|
+
};
|
|
97816
|
+
}
|
|
97817
|
+
}
|
|
97818
|
+
result.push(current);
|
|
97819
|
+
return result;
|
|
97820
|
+
}
|
|
97821
|
+
function extractSegmentText(editor, pos, end$1) {
|
|
97822
|
+
try {
|
|
97823
|
+
const cleaned = editor.state.doc.textBetween(pos, end$1, " ", "").replace(/\ufffc/g, "").trim();
|
|
97824
|
+
return cleaned.length > 0 ? cleaned : undefined;
|
|
97825
|
+
} catch {
|
|
97826
|
+
return;
|
|
97827
|
+
}
|
|
97828
|
+
}
|
|
97829
|
+
function buildAnchoredText(editor, canonical) {
|
|
97830
|
+
const parts = [];
|
|
97831
|
+
for (const anchor of canonical) {
|
|
97832
|
+
const text4 = extractSegmentText(editor, anchor.pos, anchor.end);
|
|
97833
|
+
if (text4)
|
|
97834
|
+
parts.push(text4);
|
|
97835
|
+
}
|
|
97836
|
+
return parts.length > 0 ? normalizeExcerpt(parts.join(" ")) : undefined;
|
|
97837
|
+
}
|
|
97838
|
+
function buildTextTarget(canonical) {
|
|
97839
|
+
if (canonical.length === 0)
|
|
97840
|
+
return;
|
|
97841
|
+
return {
|
|
97842
|
+
kind: "text",
|
|
97843
|
+
segments: canonical.map((a2) => ({
|
|
97844
|
+
blockId: a2.blockId,
|
|
97845
|
+
range: {
|
|
97846
|
+
start: a2.range.start,
|
|
97847
|
+
end: a2.range.end
|
|
97848
|
+
}
|
|
97849
|
+
}))
|
|
97850
|
+
};
|
|
97851
|
+
}
|
|
97852
|
+
function mergeAnchorData(editor, infosById, anchors) {
|
|
97537
97853
|
const grouped = /* @__PURE__ */ new Map;
|
|
97538
97854
|
for (const anchor of anchors) {
|
|
97539
97855
|
const group = grouped.get(anchor.commentId) ?? [];
|
|
@@ -97542,28 +97858,34 @@ function mergeAnchorData(infosById, anchors) {
|
|
|
97542
97858
|
}
|
|
97543
97859
|
for (const [commentId, commentAnchors] of grouped.entries()) {
|
|
97544
97860
|
const sorted = [...commentAnchors].sort((a2, b$1) => a2.pos === b$1.pos ? a2.end - b$1.end : a2.pos - b$1.pos);
|
|
97545
|
-
const
|
|
97861
|
+
const firstAnchor = sorted[0];
|
|
97546
97862
|
const status = sorted.every((anchor) => anchor.status === "resolved") ? "resolved" : "open";
|
|
97863
|
+
const canonical = canonicalizeAnchors(sorted);
|
|
97864
|
+
const target = buildTextTarget(canonical);
|
|
97865
|
+
const anchoredText = buildAnchoredText(editor, canonical);
|
|
97547
97866
|
const existing = infosById.get(commentId);
|
|
97548
97867
|
if (existing) {
|
|
97549
|
-
if (!existing.target)
|
|
97550
|
-
existing.target =
|
|
97551
|
-
if (!existing.importedId &&
|
|
97552
|
-
existing.importedId =
|
|
97553
|
-
if (existing.isInternal == null &&
|
|
97554
|
-
existing.isInternal =
|
|
97868
|
+
if (!existing.target && target)
|
|
97869
|
+
existing.target = target;
|
|
97870
|
+
if (!existing.importedId && firstAnchor.importedId)
|
|
97871
|
+
existing.importedId = firstAnchor.importedId;
|
|
97872
|
+
if (existing.isInternal == null && firstAnchor.isInternal != null)
|
|
97873
|
+
existing.isInternal = firstAnchor.isInternal;
|
|
97555
97874
|
if (status === "open")
|
|
97556
97875
|
existing.status = "open";
|
|
97876
|
+
if (existing.anchoredText == null && anchoredText != null)
|
|
97877
|
+
existing.anchoredText = anchoredText;
|
|
97557
97878
|
continue;
|
|
97558
97879
|
}
|
|
97559
97880
|
infosById.set(commentId, toCommentInfo({
|
|
97560
97881
|
commentId,
|
|
97561
|
-
importedId:
|
|
97562
|
-
isInternal:
|
|
97882
|
+
importedId: firstAnchor.importedId,
|
|
97883
|
+
isInternal: firstAnchor.isInternal,
|
|
97563
97884
|
isDone: status === "resolved"
|
|
97564
97885
|
}, {
|
|
97565
|
-
target
|
|
97566
|
-
status
|
|
97886
|
+
target,
|
|
97887
|
+
status,
|
|
97888
|
+
anchoredText
|
|
97567
97889
|
}));
|
|
97568
97890
|
}
|
|
97569
97891
|
}
|
|
@@ -97579,15 +97901,33 @@ function buildCommentInfos(editor) {
|
|
|
97579
97901
|
commentId
|
|
97580
97902
|
}));
|
|
97581
97903
|
}
|
|
97582
|
-
mergeAnchorData(infosById, listCommentAnchorsSafe(editor));
|
|
97904
|
+
mergeAnchorData(editor, infosById, listCommentAnchorsSafe(editor));
|
|
97905
|
+
for (const info of infosById.values()) {
|
|
97906
|
+
if (info.target != null && info.anchoredText != null || !info.parentCommentId)
|
|
97907
|
+
continue;
|
|
97908
|
+
const visited = /* @__PURE__ */ new Set;
|
|
97909
|
+
let cursor = info;
|
|
97910
|
+
while (cursor?.parentCommentId && !visited.has(cursor.parentCommentId)) {
|
|
97911
|
+
visited.add(cursor.parentCommentId);
|
|
97912
|
+
const ancestor = infosById.get(cursor.parentCommentId);
|
|
97913
|
+
if (ancestor?.target != null) {
|
|
97914
|
+
if (info.target == null)
|
|
97915
|
+
info.target = ancestor.target;
|
|
97916
|
+
if (info.anchoredText == null && ancestor.anchoredText != null)
|
|
97917
|
+
info.anchoredText = ancestor.anchoredText;
|
|
97918
|
+
break;
|
|
97919
|
+
}
|
|
97920
|
+
cursor = ancestor;
|
|
97921
|
+
}
|
|
97922
|
+
}
|
|
97583
97923
|
const infos = Array.from(infosById.values());
|
|
97584
97924
|
infos.sort((left$1, right$1) => {
|
|
97585
97925
|
const leftCreated = left$1.createdTime ?? 0;
|
|
97586
97926
|
const rightCreated = right$1.createdTime ?? 0;
|
|
97587
97927
|
if (leftCreated !== rightCreated)
|
|
97588
97928
|
return leftCreated - rightCreated;
|
|
97589
|
-
const leftStart = left$1.target?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
97590
|
-
const rightStart = right$1.target?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
97929
|
+
const leftStart = left$1.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
97930
|
+
const rightStart = right$1.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
97591
97931
|
if (leftStart !== rightStart)
|
|
97592
97932
|
return leftStart - rightStart;
|
|
97593
97933
|
return left$1.commentId.localeCompare(right$1.commentId);
|
|
@@ -97595,7 +97935,7 @@ function buildCommentInfos(editor) {
|
|
|
97595
97935
|
return infos;
|
|
97596
97936
|
}
|
|
97597
97937
|
function addCommentHandler(editor, input2, options) {
|
|
97598
|
-
requireEditorCommand(editor.commands?.addComment, "comments.
|
|
97938
|
+
requireEditorCommand(editor.commands?.addComment, "comments.create (addComment)");
|
|
97599
97939
|
if (input2.target.range.start === input2.target.range.end)
|
|
97600
97940
|
return {
|
|
97601
97941
|
success: false,
|
|
@@ -97626,7 +97966,7 @@ function addCommentHandler(editor, input2, options) {
|
|
|
97626
97966
|
};
|
|
97627
97967
|
const commentId = v4_default();
|
|
97628
97968
|
if (executeDomainCommand(editor, () => {
|
|
97629
|
-
const didInsert = requireEditorCommand(editor.commands?.addComment, "comments.
|
|
97969
|
+
const didInsert = requireEditorCommand(editor.commands?.addComment, "comments.create (addComment)")({
|
|
97630
97970
|
content: input2.text,
|
|
97631
97971
|
isInternal: false,
|
|
97632
97972
|
commentId
|
|
@@ -97666,7 +98006,7 @@ function addCommentHandler(editor, input2, options) {
|
|
|
97666
98006
|
};
|
|
97667
98007
|
}
|
|
97668
98008
|
function editCommentHandler(editor, input2, options) {
|
|
97669
|
-
const editComment = requireEditorCommand(editor.commands?.editComment, "comments.
|
|
98009
|
+
const editComment = requireEditorCommand(editor.commands?.editComment, "comments.patch (editComment)");
|
|
97670
98010
|
const store = getCommentEntityStore(editor);
|
|
97671
98011
|
const identity$1 = resolveCommentIdentity(editor, input2.commentId);
|
|
97672
98012
|
const existing = findCommentEntity(store, identity$1.commentId);
|
|
@@ -97705,7 +98045,7 @@ function editCommentHandler(editor, input2, options) {
|
|
|
97705
98045
|
};
|
|
97706
98046
|
}
|
|
97707
98047
|
function replyToCommentHandler(editor, input2, options) {
|
|
97708
|
-
const addCommentReply = requireEditorCommand(editor.commands?.addCommentReply, "comments.
|
|
98048
|
+
const addCommentReply = requireEditorCommand(editor.commands?.addCommentReply, "comments.create (addCommentReply)");
|
|
97709
98049
|
if (!input2.parentCommentId)
|
|
97710
98050
|
return {
|
|
97711
98051
|
success: false,
|
|
@@ -97755,7 +98095,7 @@ function replyToCommentHandler(editor, input2, options) {
|
|
|
97755
98095
|
};
|
|
97756
98096
|
}
|
|
97757
98097
|
function moveCommentHandler(editor, input2, options) {
|
|
97758
|
-
const moveComment = requireEditorCommand(editor.commands?.moveComment, "comments.
|
|
98098
|
+
const moveComment = requireEditorCommand(editor.commands?.moveComment, "comments.patch (moveComment)");
|
|
97759
98099
|
if (input2.target.range.start === input2.target.range.end)
|
|
97760
98100
|
return {
|
|
97761
98101
|
success: false,
|
|
@@ -97819,7 +98159,7 @@ function moveCommentHandler(editor, input2, options) {
|
|
|
97819
98159
|
};
|
|
97820
98160
|
}
|
|
97821
98161
|
function resolveCommentHandler(editor, input2, options) {
|
|
97822
|
-
const resolveComment = requireEditorCommand(editor.commands?.resolveComment, "comments.
|
|
98162
|
+
const resolveComment = requireEditorCommand(editor.commands?.resolveComment, "comments.patch (resolveComment)");
|
|
97823
98163
|
const store = getCommentEntityStore(editor);
|
|
97824
98164
|
const identity$1 = resolveCommentIdentity(editor, input2.commentId);
|
|
97825
98165
|
const existing = findCommentEntity(store, identity$1.commentId);
|
|
@@ -97977,7 +98317,7 @@ function listCommentsHandler(editor, query2) {
|
|
|
97977
98317
|
const paged = paginate(filtered, query2?.offset, query2?.limit);
|
|
97978
98318
|
const items = paged.items.map((comment2) => {
|
|
97979
98319
|
const handle3 = buildResolvedHandle2(`comment:${comment2.commentId}`, "stable", "comment");
|
|
97980
|
-
const { importedId, parentCommentId, text: text4, isInternal, status, target, createdTime, creatorName, creatorEmail, address: address2 } = comment2;
|
|
98320
|
+
const { importedId, parentCommentId, text: text4, isInternal, status, target, anchoredText, createdTime, creatorName, creatorEmail, address: address2 } = comment2;
|
|
97981
98321
|
return buildDiscoveryItem2(comment2.commentId, handle3, {
|
|
97982
98322
|
address: address2,
|
|
97983
98323
|
importedId,
|
|
@@ -97986,6 +98326,7 @@ function listCommentsHandler(editor, query2) {
|
|
|
97986
98326
|
isInternal,
|
|
97987
98327
|
status,
|
|
97988
98328
|
target,
|
|
98329
|
+
anchoredText,
|
|
97989
98330
|
createdTime,
|
|
97990
98331
|
creatorName,
|
|
97991
98332
|
creatorEmail
|
|
@@ -98876,6 +99217,121 @@ function findAdapter(editor, query2) {
|
|
|
98876
99217
|
diagnostics: uniqueDiagnostics.length ? uniqueDiagnostics : undefined
|
|
98877
99218
|
};
|
|
98878
99219
|
}
|
|
99220
|
+
function resolveFormatTarget(editor, target, operation) {
|
|
99221
|
+
const range = resolveTextTarget(editor, target);
|
|
99222
|
+
if (!range)
|
|
99223
|
+
throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `${operation} target could not be resolved.`, { target });
|
|
99224
|
+
const resolution = buildTextMutationResolution({
|
|
99225
|
+
requestedTarget: target,
|
|
99226
|
+
target,
|
|
99227
|
+
range,
|
|
99228
|
+
text: readTextAtResolvedRange(editor, range)
|
|
99229
|
+
});
|
|
99230
|
+
return {
|
|
99231
|
+
target,
|
|
99232
|
+
from: range.from,
|
|
99233
|
+
to: range.to,
|
|
99234
|
+
resolution
|
|
99235
|
+
};
|
|
99236
|
+
}
|
|
99237
|
+
function collapsedTargetFailure(resolution, operation) {
|
|
99238
|
+
return {
|
|
99239
|
+
success: false,
|
|
99240
|
+
resolution,
|
|
99241
|
+
failure: {
|
|
99242
|
+
code: "INVALID_TARGET",
|
|
99243
|
+
message: `${operation} requires a non-collapsed target range.`
|
|
99244
|
+
}
|
|
99245
|
+
};
|
|
99246
|
+
}
|
|
99247
|
+
function noOpFailure(resolution, operation) {
|
|
99248
|
+
return {
|
|
99249
|
+
success: false,
|
|
99250
|
+
resolution,
|
|
99251
|
+
failure: {
|
|
99252
|
+
code: "NO_OP",
|
|
99253
|
+
message: `${operation} produced no change.`
|
|
99254
|
+
}
|
|
99255
|
+
};
|
|
99256
|
+
}
|
|
99257
|
+
function inlineValueFormatWrapper(editor, target, value, options, config2) {
|
|
99258
|
+
rejectTrackedMode(config2.operation, options);
|
|
99259
|
+
const resolved = resolveFormatTarget(editor, target, config2.operation);
|
|
99260
|
+
if (resolved.from === resolved.to)
|
|
99261
|
+
return collapsedTargetFailure(resolved.resolution, config2.operation);
|
|
99262
|
+
requireSchemaMark(editor, "textStyle", config2.operation);
|
|
99263
|
+
const setTextSelection$1 = requireEditorCommand(editor.commands?.setTextSelection, `${config2.operation} (setTextSelection)`);
|
|
99264
|
+
const activeCommand = value !== null ? config2.setCommand : config2.unsetCommand;
|
|
99265
|
+
requireEditorCommand(editor.commands?.[activeCommand], `${config2.operation} (${activeCommand})`);
|
|
99266
|
+
if (options?.dryRun)
|
|
99267
|
+
return {
|
|
99268
|
+
success: true,
|
|
99269
|
+
resolution: resolved.resolution
|
|
99270
|
+
};
|
|
99271
|
+
if (executeDomainCommand(editor, () => {
|
|
99272
|
+
setTextSelection$1({
|
|
99273
|
+
from: resolved.from,
|
|
99274
|
+
to: resolved.to
|
|
99275
|
+
});
|
|
99276
|
+
const cmd = editor.commands[activeCommand];
|
|
99277
|
+
return value !== null ? cmd(value) : cmd();
|
|
99278
|
+
}, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
|
|
99279
|
+
return noOpFailure(resolved.resolution, config2.operation);
|
|
99280
|
+
return {
|
|
99281
|
+
success: true,
|
|
99282
|
+
resolution: resolved.resolution
|
|
99283
|
+
};
|
|
99284
|
+
}
|
|
99285
|
+
function formatFontSizeWrapper(editor, input2, options) {
|
|
99286
|
+
return inlineValueFormatWrapper(editor, input2.target, input2.value, options, {
|
|
99287
|
+
operation: "format.fontSize",
|
|
99288
|
+
setCommand: "setFontSize",
|
|
99289
|
+
unsetCommand: "unsetFontSize"
|
|
99290
|
+
});
|
|
99291
|
+
}
|
|
99292
|
+
function formatFontFamilyWrapper(editor, input2, options) {
|
|
99293
|
+
return inlineValueFormatWrapper(editor, input2.target, input2.value, options, {
|
|
99294
|
+
operation: "format.fontFamily",
|
|
99295
|
+
setCommand: "setFontFamily",
|
|
99296
|
+
unsetCommand: "unsetFontFamily"
|
|
99297
|
+
});
|
|
99298
|
+
}
|
|
99299
|
+
function formatColorWrapper(editor, input2, options) {
|
|
99300
|
+
return inlineValueFormatWrapper(editor, input2.target, input2.value, options, {
|
|
99301
|
+
operation: "format.color",
|
|
99302
|
+
setCommand: "setColor",
|
|
99303
|
+
unsetCommand: "unsetColor"
|
|
99304
|
+
});
|
|
99305
|
+
}
|
|
99306
|
+
function formatAlignWrapper(editor, input2, options) {
|
|
99307
|
+
const operation = "format.align";
|
|
99308
|
+
rejectTrackedMode(operation, options);
|
|
99309
|
+
const resolved = resolveFormatTarget(editor, input2.target, operation);
|
|
99310
|
+
const setTextSelection$1 = requireEditorCommand(editor.commands?.setTextSelection, `${operation} (setTextSelection)`);
|
|
99311
|
+
if (input2.alignment !== null)
|
|
99312
|
+
requireEditorCommand(editor.commands?.setTextAlign, `${operation} (setTextAlign)`);
|
|
99313
|
+
else
|
|
99314
|
+
requireEditorCommand(editor.commands?.unsetTextAlign, `${operation} (unsetTextAlign)`);
|
|
99315
|
+
if (options?.dryRun)
|
|
99316
|
+
return {
|
|
99317
|
+
success: true,
|
|
99318
|
+
resolution: resolved.resolution
|
|
99319
|
+
};
|
|
99320
|
+
if (executeDomainCommand(editor, () => {
|
|
99321
|
+
setTextSelection$1({
|
|
99322
|
+
from: resolved.from,
|
|
99323
|
+
to: resolved.to
|
|
99324
|
+
});
|
|
99325
|
+
if (input2.alignment !== null)
|
|
99326
|
+
return editor.commands.setTextAlign(input2.alignment);
|
|
99327
|
+
return editor.commands.unsetTextAlign();
|
|
99328
|
+
}, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
|
|
99329
|
+
return noOpFailure(resolved.resolution, operation);
|
|
99330
|
+
return {
|
|
99331
|
+
success: true,
|
|
99332
|
+
resolution: resolved.resolution
|
|
99333
|
+
};
|
|
99334
|
+
}
|
|
98879
99335
|
function findBlocksByTypeAndId(blockIndex, nodeType, nodeId) {
|
|
98880
99336
|
const byIdMatch = blockIndex.byId.get(`${nodeType}:${nodeId}`);
|
|
98881
99337
|
if (byIdMatch)
|
|
@@ -100210,7 +100666,13 @@ function getDocumentApiAdapters(editor) {
|
|
|
100210
100666
|
capabilities: { get: () => getDocumentApiCapabilities(editor) },
|
|
100211
100667
|
comments: createCommentsWrapper(editor),
|
|
100212
100668
|
write: { write: (request, options) => writeWrapper(editor, request, options) },
|
|
100213
|
-
format: {
|
|
100669
|
+
format: {
|
|
100670
|
+
apply: (input2, options) => styleApplyWrapper(editor, input2, options),
|
|
100671
|
+
fontSize: (input2, options) => formatFontSizeWrapper(editor, input2, options),
|
|
100672
|
+
fontFamily: (input2, options) => formatFontFamilyWrapper(editor, input2, options),
|
|
100673
|
+
color: (input2, options) => formatColorWrapper(editor, input2, options),
|
|
100674
|
+
align: (input2, options) => formatAlignWrapper(editor, input2, options)
|
|
100675
|
+
},
|
|
100214
100676
|
trackChanges: {
|
|
100215
100677
|
list: (query2) => trackChangesListWrapper(editor, query2),
|
|
100216
100678
|
get: (input2) => trackChangesGetWrapper(editor, input2),
|
|
@@ -134274,7 +134736,7 @@ var Node$13 = class Node$14 {
|
|
|
134274
134736
|
console.warn("Failed to initialize developer tools:", error);
|
|
134275
134737
|
}
|
|
134276
134738
|
}
|
|
134277
|
-
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,UEsDBBQAAAAIAAAAIQAykW9XXgEAAKUFAAATABwAW0NvbnRlbnRfVHlwZXNdLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAAC1lMtqwzAQRfeF/oPRNthKuiilxMmij2UbaPoBijRORPVCmrz+vuM4NaWkMeSxMcgz994zQsxwvLEmW0FM2ruSDYo+y8BJr7Sbl+xz+po/sCyhcEoY76BkW0hsPLq9GU63AVJGapdKtkAMj5wnuQArUuEDOKpUPlqBdIxzHoT8EnPgd/3+PZfeITjMsfZgo+EzVGJpMHvZ0O+GJIJJLHtqGuuskokQjJYCqc5XTv1JyfcJBSl3PWmhQ+pRA+MHE+rK/wF73TtdTdQKsomI+CYsdfG1j4orL5eWlMVxmwOcvqq0hFZfu4XoJaREd25N0Vas0K7XxeGWdgaRlJcHaa07IRJuDaTLEzS+3fGASIJrAOydOxHWMPu4GsUv806QinKnYmbg8hitdScE0hqA5js4m2NncyySOifRh0RrJZ4w9s/eqNU5DRwgoj7+6tpEsj57PqhXkgJ1IJvvluzoG1BLAwQKAAAAAACTZE1bAAAAAAAAAAAAAAAACQAcAGRvY1Byb3BzL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhACEYr1llAQAAxQIAABAAHABkb2NQcm9wcy9hcHAueG1sVVQJAAMw0M4SMNDOEnV4CwABBPUBAAAEFAAAAJ1STU/DMAy9I/Efqt63dBwmNHlBaAhx4GPSCpyjxG0j0iRKson9e5wVSoEbOdnP9st7TuDqvTfFAUPUzq7LxbwqC7TSKW3bdflc384uyyImYZUwzuK6PGIsr/j5GWyD8xiSxlgQhY3rskvJrxiLssNexDmVLVUaF3qRKA0tc02jJd44ue/RJnZRVUuG7wmtQjXzI2E5MK4O6b+kysmsL77UR098HGrsvREJ+WOeNHPlUg9sRKF2SZha98grgscEtqLFyBfAhgBeXVAx9wwBbDoRhEy0vwxOMrj23mgpEu2VP2gZXHRNKp5OYos8DWzaAmRgh3IfdDpmqmkK99ri6YIhIFVBtEH47gROMthJYXBD1nkjTERg3wBsXO+FJTo2RsT3Fp997W7yFj5HfoITi686dTsvJP4yO8FhRygqUj8KGAG4o8cIJrPTrG1RffX8LeT1vQy/ki+W84rOaV9fGLkevwv/AFBLAwQUAAAACAAAACEACvOn+GYBAADtAgAAEQAcAGRvY1Byb3BzL2NvcmUueG1sVVQJAAMw0M4SMNDOEnV4CwABBPUBAAAEFAAAAJ2SXU+DMBSG7038D6T3UGBqDAGWTLMrZ0yc0XhX27Otjn6k7cb27y0wmMRdeXc+nvP29G3z6UFUwR6M5UoWKIliFICkinG5LtDbch7eo8A6IhmplIQCHcGiaXl9lVOdUWXgxSgNxnGwgVeSNqO6QBvndIaxpRsQxEaekL65UkYQ51OzxprQLVkDTuP4DgtwhBFHcCMY6kERnSQZHST1zlStAKMYKhAgncVJlOAz68AIe3Gg7fwiBXdHDRfRvjnQB8sHsK7rqJ60qN8/wR+Lp9f2qiGXjVcUUJkzmjnuKihzfA59ZHdf30BdVx4SH1MDxClTPnO6DWZgJKlapq83jm/hWCvDrJ8eZR5jYKnh2vl37LRHBU9XxLqFf9gVBzY7jo/5224mDOx58y/KtCWGND+Z3K0GLPDmZJ2Vfed98vC4nKMyjdObMEnD5G6Zpll8m8XxZ7PdaP4sKE4L/FuxF+gMGn/Q8gdQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAYAHABfcmVscy9VVAkAA4Yc7WiHHO1odXgLAAEE9QEAAAQUAAAAUEsDBBQAAAAIAAAAIQAekRq36QAAAE4CAAALABwAX3JlbHMvLnJlbHNVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAArZLBasMwDEDvg/2D0b1R2sEYo04vY9DbGNkHCFtJTBPb2GrX/v082NgCXelhR8vS05PQenOcRnXglF3wGpZVDYq9Cdb5XsNb+7x4AJWFvKUxeNZw4gyb5vZm/cojSSnKg4tZFYrPGgaR+IiYzcAT5SpE9uWnC2kiKc/UYySzo55xVdf3mH4zoJkx1dZqSFt7B6o9Rb6GHbrOGX4KZj+xlzMtkI/C3rJdxFTqk7gyjWop9SwabDAvJZyRYqwKGvC80ep6o7+nxYmFLAmhCYkv+3xmXBJa/ueK5hk/Nu8hWbRf4W8bnF1B8wFQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAUAHAB3b3JkL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAoWRNW+xw0GIQAgAAtAcAABIAHAB3b3JkL2ZvbnRUYWJsZS54bWxVVAkAA54c7WieHO1odXgLAAEE9QEAAAQUAAAAvZPBbqMwEIbvlfoOlu8NhpA0RSFV222kvexh1T6AY0ywFtvI44Tk7dcYiBSyuy3tqiCEGf75mPnHLO8PskR7bkBoleJwQjDiiulMqG2KX1/WNwuMwFKV0VIrnuIjB3y/ur5a1kmulQXk8hUkkqW4sLZKggBYwSWFia64ci9zbSS17tFsA0nNr111w7SsqBUbUQp7DCJC5vj6CrmjZZn3oHSeC8a/abaTXFkPCQwvHVYrKEQFZ8j6Pcham6wymnEA170sW6ikQp2zwviCJgUzGnRuJ663rjbPc4yQ+JUsB5TZOEr0Z8qc8cM40KIDBS7zAiaycbD5CSayIexjZQ0p2W4UJ5r2FTW3Jn0IhMxmxThmP8GgyaWWFhSKCywf1+/sxDxKNwgkWfJ9q7Shm9KR3CZDbosgD0btZJobaieO+j6Qdwiv2mK6nxLViaLSUV6E5IB+8Br91JKqXtZJK6o08NCp97RMMWkanZMpmZHYXZFbxTg4T2EFNcDtKYUMBTmVojz2743/6kBSCcuKXrGnRjQdD0Ugtk6ygw1J8TMhJHper3EbCVP85CK3i9ljF4maSvxx10WmpwhpIsxz/GPYcpjnnDT915dB6+Bf/HzSOyO4aRx908tb59+d97TxMv60l1Jn3PzbzFwcePYRJ+PpVzv54MZevunho9uPsfewPT/rIdQC4P/sx4evdrFfwuo3UEsDBBQAAAAIAAAAIQCWFrgr1QIAAIgLAAARABwAd29yZC9kb2N1bWVudC54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAApZZbb9sgFMffJ+07WH5v8S1OYjWttGab+jCpWrcPQIDEqAYsILd9+h3s+LJ5qxz3CXPg/PjDORxz93AShXdg2nAlV354G/gek0RRLncr/+ePLzcL3zMWS4oLJdnKPzPjP9x//HB3zKgie8Gk9QAhTXYsycrPrS0zhAzJmcDmVnCilVFbe0uUQGq75YSho9IURUEYVF+lVoQZA+s9YnnAxr/gyGkcjWp8BGcHTBDJsbbs1DHCqyEztESLISiaAIIdRuEQFV+NSpFTNQAlk0CgakCaTSP9Y3PpNFI0JM2nkeIhaTGNNEgnMUxwVTIJg1ulBbbQ1TsksH7dlzcALrHlG15wewZmkDYYzOXrBEXg1RJETK8mzJFQlBUxbShq5e+1zC7+N62/k57V/pem9WDFuGVhuSViJ1sY2/jqMWdXu68vhaU6NaRZAeeopMl52VYHMZUGg3kDObx1AAdR+G1lC0detf+VtnUdhg44Rv4ldqKolb9NDIMR0XSI1mOMhD/XbJQIyOBu4UlH0zvccGTxaQDRAJASNvJn0TAWFwYi3e12HD7yWjWctOVw2uNME9MD0P1ViChudLjGufdYhlqaX4drYoScL7Y4xybvE9l1G5y1uLPonXe5e9+l+qrVvuxo/H20p668HuV1GwzSvyNYmveJeclxCVVXkOxpJ5XGmwIUwVXz4LZ4VQS8Ol1d49U3wGti7VUJ5Lmq5d/DO22j6Nm1JQwkWYk1foI0T8JlmqTz0K+s8Jezzhoks+VivpyBNYM3If0OJkiveD3/1JqetTPGYZA8fm6Na7bF+8IOpz/3JiMnwzBin/VYfiV89/ILBqFihVGUBG4iJHQ4W8A3qid8w45oFRTWMKmnaL7LbdfdKGuV6PoF2/ZGc4Ypg3XnUdXdKmV73d3eVt3LckQVBqymxITVcyozvIe/aheSrOCSPXNLQGWcVqOo2Xf1WUcEdU/o+99QSwMEFAAAAAgAAAAhAMrnZYorBAAAvgwAABEAHAB3b3JkL3NldHRpbmdzLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAAC1V22PmzgQ/n7S/QfE58uG1ySLmq3yervV5lqVre6zAZNYa2Nkm03T0/33GwwO9BZVSav9hJln5pnxeGYM795/ZdR6wUISXsxt98axLVykPCPFfm5/edqOZrYlFSoyRHmB5/YJS/v93e+/vTtGEisFatICikJGLJ3bB6XKaDyW6QEzJG94iQsAcy4YUvAq9mOGxHNVjlLOSqRIQihRp7HnOBO7peFzuxJF1FKMGEkFlzxXtUnE85ykuH0YC3GJ38ZkzdOK4UJpj2OBKcTAC3kgpTRs7GfZADwYkpcfbeKFUaN3dJ0LtnvkIjtbXBJebVAKnmIp4YAYNQGSonMcvCI6+74B3+0WNRWYu45e9SMPryPwXhFMUvz1Oo5ZyzEGyz4Pya7jmZx5SNbj+blgegRZdRWF55s46kdt3uOSmcoO19GZMxrXtkihA5KHPiO+boPhme7EunxLekkFNtAjSQQSp375sTR62BdcoIRCOFCGFlSSpaOzmqOsH1ZTHZbJg6WTa9/B1PnGObOOUYlFCq0HI8tz7HENQMHzPFZIAVEkS0ypnmEpxQj8HqO9QAymj5FomwznqKLqCSWx4iUovSDY3tRQpgckUKqwiEuUAtuKF0pwavQy/hdXK5hkAhqttdBzrVvFzYwEiwIx2PB3c2/HM1xHVgly+cnYxrsb9l3+3xGHmS5Ihp/qRMfqRPEWgo/JN7wosg+VVAQY9fT7hQh+FAAuas8foTSeTiXeYqQqSNMbOdMnsaWk3BEhuHgoMqiNN3NG8hwLcECg1nZQPkTwo87zPUYZXKVv5LeS+G9Qhs70n6Asn5dcKc7uT+UBcv1rJ6nrfdwvX/ggyKRZfOZcnVVhbPnr6bKJtEYvQXzXCVabQWTibN1hm0XgO/4gsnLXbjCMhLPlaggJboOJuxhCJqG3CcIhZLH0Zv5sCFku3Wk4iKxW/srfDiIbZz28n83Km04HY9vees7tpj2d9kxYVH9qfBJmVTe2xRqLFWKJIMja1R8j41ojEc9LUhg8wTClcR+Jq8SAo1EDSIYo3UKJGcBp5BmR5Rrnek13SOw73lZDDEphyn44c9VTG4s/Ba/KBj0KVDYNa1TcIGgtSaEeCTNyWSWxsSrgXulBVZF9fBE6T116jpGCBtCD7xHpRtK6uBh9idtGoyKumwTvUFk2vZbs3blNyf6g3Lo9FLxl8M2qX5K912KexrwG0y8orXcG2u2ik3lG1tPzjczvZIGRBZ0sNLKwk02MbFLLDjBdBVx1z9D2ZlnLc04pP+LsvsNficwlmBI48fjEku5uu2kwSiTMoRKuQcWFwf7QmBtEGU8f6vs6aOT+YhGuF860gUN9fSo9qiC1n3G+RBJnLWZMw8b0n8nEmbjuajYKZpvb0WYaBKOZu7wdTafO1PW3rufPnH/bPjA/Hnf/AVBLAwQUAAAACAAAACEA24Vsw30EAACXHQAAEgAcAHdvcmQvbnVtYmVyaW5nLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAADNmc1u4zYQx+8F+g6CgB4Tifq2sM4iySZFFttF0U3RMy3RlhB+CBRlx9d9mT5CH2tfoaRkyXLkxJIctz4pJjk/zQxnyL+dDx+fCdaWiOcpo1MdXJq6hmjE4pQupvqfj/cXga7lAtIYYkbRVF+jXP949fNPH1YhLcgMcblQkwyah6ssmuqJEFloGHmUIALzS5JGnOVsLi4jRgw2n6cRMlaMx4ZlArP8K+MsQnkuObeQLmGub3DRcz9azOFKGiugY0QJ5AI9bxlgMMQ1JkbQBVkjQDJCC3RR9mCUZyivOiBnFEh61SG540h7gvPGkawuyR9HsrukYBypU06kW+AsQ1ROzhknUMiPfGEQyJ+K7EKCMyjSWYpTsZZM06sxMKVPIzySVg2B2PFggm8QFiNsxzWFTfWC03Bjf9HYK9fDyn7zaCwQ7vda+bqJgZ4FzkVty/vkrjL/xKKCICrKrBkcYZlHRvMkzZrTgYylycmkhizfSsCSYL052UDPVnvtaPtUbcMW2Mf9zd4RXHn+NhGYPXZTIRqLPi7svrP2hMgK3r54VGpayQU9D58aYHUAXoR6XhY1I9gwjGjb3YqT9myrmuM1nDRuccY50wLExSCEZdd+qIcyb7HyWMTJMFy9R4ayhQImME/aRDQsQLfBrUkr39niuKb6lbMi29LS42gP2+N1RYcFaHovdzDLj3PmWwIzeeqSKHxYUMbhDEuPZKtpslu0cge0qlzVQ6s6QKv3WisLSFOnln4lhRqc5YLDSHwtiLbz6UFWuxR8khlyJFUeV4OVprueC8RvOIJPaomi0Fy9LVxCeQUAD1jejenrhpohBRbpF7RE+HGdoXpNsp7xNP5NzWE1V60VJMP1Chfc3Tp3ZlDN4KWaSOWjcioUGZb3remYE9M0QelD6WPjRGUnZeg9aQZnBcZINMRHeQfVUz++/9OMf47qUYzmm+XZ71w9UqrCVMNT3bdKTxJIF6Ugtj1TrTWaxXzzuGdU5Cq5eZTKOvy2JjOGS9NrmbedgZRKcIzmUGZmAyspRunYy0yATibsckTeZ/JSXCK14ujMsKF5AY4zLjG3rOAp4tpXtGpl58VolHcXDsua1cma+/5Z+/H976F5s4A3Lm9/ydXqO1neytru2LAE2Xsa7AQJGtxwVhD83x3nnGXHyTycdce5Z9pxjj3yCH/vjvPOtONcc+RR/n4d559lx7n+yLP6P+q44Ew7znNGHuHHd5yxo24PSl8wRvq6gW8C++b6OOl7d+c5wL91+kjf+57bGKMoJRDv3cdfwOU7a9+echVMRhYlZivEvyAh92J/RNbgiA6p1p5aEtwcE9IfjEC6PyJ7X0Q8XSQDBCUIeoTUVX/3I0N6s+acwTt0SP71VGynKzp3cEiHhFtPOXWyovOGF11HU/Uquq4AOknR+YN36JAC6ilaTld0wfCQDmiXnoriZEU3GV50HVnxStF1NQAt737auvPVD2dhXJQ/q5WDMlTHn3jWy5/LHpprv34X3cO09jGdwHWB7wDwOhO0mUbrH6pX/wJQSwMEFAAAAAgAAAAhAL5+dmJWAQAA0AMAABQAHAB3b3JkL3dlYlNldHRpbmdzLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAACd01FvwiAQAOD3JfsPhHelumlMYzVZFpe9LEu2/QAKV0sGXAO46n79aLWuiy92T0DLfbnjYLneG02+wHmFNqOTcUIJWIFS2W1GP943owUlPnAruUYLGT2Ap+vV7c2yTmvI3yCEuNOTqFifGpHRMoQqZcyLEgz3Y6zAxp8FOsNDXLotM9x97qqRQFPxoHKlVTiwaZLM6Ylx1yhYFErAI4qdARvaeOZARxGtL1XlO62+RqvRycqhAO9jPUYfPcOVPTOT+wvIKOHQYxHGsZhTRi0VwydJOzP6F5gNA6YXwFzAfpixOBksRvYdJYc587OjZM/5XzI9QO4GEdO7Lo9maMJ7lpdBlsO4rkesieWBl9yXfRGGFTg7cwfTnLcR6fPWouO5jlK8QSReAtLC5NiFZiDHxpKuBNKeC13FJ4ZVUEZ9wwbdg8Pag2PNZ6411q8vT3HB/rzD1Q9QSwMEFAAAAAgAAAAhAD+v4WZfDwAADaYAAA8AHAB3b3JkL3N0eWxlcy54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAA3Z1tc9s2Esff38x9B45e9V6ksp5lT92O7STnzCWpWzvX1xAJWaj5oCOpOO6nPwB8EKUlKC64UdRMZlqL4v4I4L+7xIIU+dMvXwLf+czjREThZW/w41nP4aEbeSJ8vOx9enj7at5zkpSFHvOjkF/2XnjS++Xnf/7jp+eLJH3xeeJIQJhcBO5lb5Wm64t+P3FXPGDJj9Gah/LLZRQHLJUf48d+wOKnzfqVGwVrloqF8EX60h+enU17OSZuQ4mWS+Hy15G7CXiYavt+zH1JjMJkJdZJQXtuQ3uOYm8dRy5PEtnpwM94ARNhiRmMASgQbhwl0TL9UXYmb5FGSfPBmf4r8LeACQ4wBICpy7/gGPOc0ZeWVY7wcJxpyRFehWPXmArA26AQw1HRDvU/ZV5hJV7qrXC4QqO+smUpW7FkVSVyXAcnJe4lUOMduBfvHsMoZgtfkqQHOdIJHA12MhXU/5xMWKfogqPHpfezjC4vcl/zJdv4aaI+xndx/jH/pP/3NgrTxHm+YIkrxGXvKhZMDvHzBWdJepUI9iBbLg8fCNmS26swEerLlfqjsrObXPYeRCBD+SN/dn6PAhY6P1xH3otzc/+vXl8d6InHodzzM/Mve8NsU/JXuWFcbLlJ9rf5LHwstvHw1af7ausqmxbCk01i8av7K204GF/44pGlm1g2S33ShCwRxd6N7Db/km5k++XO/Xw8+vujtC4/ZXvtDalMGDJ93GdZTH7Ll+8j94l796n84rJ31ss2fnp3F4solpnqsnd+nm+854G4FZ7Hw8qO4Up4/I8VDz8l3Ntu/+2tzjb5BjfahPLv0WyqZfYT780Xl69V7pLfhkzp9VEZaG02Yntwbf6/AjbIB7jOfsWZSuDOYB9xjkYMlUVS6W09c7PX9wH6QKNjHWh8rANNjnWg6bEONDvWgebHOtD51z6QCD2Z3wf1hwHUQxxDNKI5hmBDcwyxhOYYQgXNMUQCmmNwdDTH4MdojsFNEZw0ck1eWHH2kcHbm7mHzxF23MOnBDvu4TOAHfdwwrfjHs7vdtzD6dyOezh723EPJ2s8N5tqOe9kmIVp5yhbRlEaRil31PS0M42FkqWrWhqeOunxmKSTBJgss+Un4s40l+nPhz1k0u18nqqCzomWzlI8quKkc8N5+Jn70Zo7zPMkjxAYc1k+GUbExqdjvuQxD11O6dh0UF+E3Ak3wYLAN9fskYzFQ494+AoiSVIoHZpt0pUKEkHg1AFz44hgzsLI8sN7kXQfKwVxrje+z4lYH2lcTLO61wYa07000JjulYHGdC8MKppRDVFOIxqpnEY0YDmNaNwy/6Qat5xGNG45jWjcclr3cXsQqc/3Zx2D9mt3N36UUCS8e/EY6vXTzqR8zdS5YzF7jNl65ahl54MzLfRx9JLzA8U5rSRRzeu1i6hVZxFuug/oDo0quEoeUXiVPKIAK3ndQ+yDnCarCdotTT1zv1mktUHbviq4Z/4mm9B2jzaWdvewbQC8FXFCFgb1WAIP/qims7dEU71tK7s3bMvqHlb7WYm0eTmSoJV+5D7RpOHblzWPZVn21Jn0NvL96Jl7dMT7NI4yX6uG/HDYOuTfBOsVS0QCEO1P9cUdDM4Htu7coTufiZBGtzevAiZ8h24Gcfvw4b3zEK1VmakGhgZ4HaVpFJAx85XAH/7gi3/RNPBKFsHhC1Fvr4iWhzTsRhCcZDJS5BGR5DRThILkHKp5/+Evi4jFHg3tLubZTUMpJyLes2DtU8WWzIvPMv8QzIY0778sFmpdiCqoHkhglWXDZLP4k7vdU93HyCFZGfp1k+r1Rz3V7X61dwfXfZqwg+s+RdBqytOD8l+Czu7gund2B0fV2RufJYkwXkK15lF1t+BR97d78ZfzIj+KlxufbgALINkIFkCyIYz8TRAmlD3WPMIOax51fwldRvMIluQ079+x8MjE0DAqJTSMSgYNo9JAw0gF6H6HTgXW/TadCqz7vToZjGgKUIFR+Rnp6Z/oKk8FRuVnGkblZxpG5WcaRuVno9cOXy7lJJjuFFNBUvlcBUl3oglTHqyjmMUvRMg3Pn9kBAukGe0ujpbq1yRRmN3ETTGd3SxSysl2hqMS+Q++IGuaYlG2i2BFlPl+FBGtrW1PONpy9961Q2b65xydm3DnM5evIt/jsaFPjfXy/Zq5Ai6dtr9Y8l48rlLnflWu9lcx07ODlkXBvmN2+IB1Yz4dNl5m8sQmKBoKf0wxHbU3HgLj8WHj7Uxix3LS0hIec3rYcjtL3rGctbSEx5y3tBwBy6Z4eM3ip1pHmDX5T1njGZxv1nhhvjCuPWyTI5WWdS44a/KinVBxrlxXXS2A6rSLGbN9u+Ax22OiyEzBhJOZ0jquzIimAPudfxZJ7Rr1gevf5d0TIO+PW2fO3zZRCi5TD9v/qOudnDiFCXdqOaP2F652sox5HFunGzOidd4xI1onIDOiVSYymqNSkpnSOjeZEa2TlBmBzlbwjIDLVtAel62gvU22ghSbbNVhFmBGtJ4OmBHoQIUIdKB2mCmYEahABeZWgQop6ECFCHSgQgQ6UOEEDBeo0B4XqNDeJlAhxSZQIQUdqBCBDlSIQAcqRKADFSLQgWo5tzeaWwUqpKADFSLQgQoR6EAddwxUaI8LVGhvE6iQYhOokIIOVIhABypEoAMVItCBChHoQIUIVKACc6tAhRR0oEIEOlAhAh2ok46BCu1xgQrtbQIVUmwCFVLQgQoR6ECFCHSgQgQ6UCECHagQgQpUYG4VqJCCDlSIQAcqRKADddoxUKE9LlChvU2gQopNoEIKOlAhAh2oEIEOVIhABypEoAMVIlCBCsytAhVS0IEKEehAhYgm/8wvUZpusx/gVz2Nd+wjfueTNer36k+5d9ZQ26OKVplZ7X+LcB1FT07tDw9Ho/YQsfBFpJeoDZfVq9wZ+sLnrzfNv/Bp8RiPtl3Jfwuhr5kC+LitJVhTGTe5fNUSFHnjJk+vWoJZ57gp+1YtwWlw3JR0dVwWN6XI0xEwbkozFeOBwbwpW1fM4RA35eiKIRzhpsxcMYQD3JSPK4YTRyXnfetJy3GalveXAkKTO1YIMzOhyS2hVsa1/daimQlt1TMT2spoJqD0NGLwwppRaIXNKDupYZhhpbYPVDMBKzUkWEkNMPZSQ5S11BBlJzVMjFipIQErtX1yNhOspAYYe6khylpqiLKTGp7KsFJDAlZqSMBK3fGEbMTYSw1R1lJDlJ3UcHKHlRoSsFJDAlZqSLCSGmDspYYoa6khyk5qUCWjpYYErNSQgJUaEqykBhh7qSHKWmqIapJar6LYV0sVc9wkrGKIOyFXDHHJuWJoUS1VrC2rpQrBslqCWtlVS1XR7Kqlqnp21VJVRrtqCehpVy3VCmtXLdUqbFctmaXGVUt1UtsHql21VCc1rloySo2rlhqlxlVLjVLjqiWz1LhqqU5qXLVUJ7V9crarloxS46qlRqlx1VKj1LhqySw1rlqqkxpXLdVJjauW6qTueEK2q5YapcZVS41S46ols9S4aqlOaly1VCc1rlqqkxpXLRmlxlVLjVLjqqVGqXHVkllqXLVUJzWuWqqTGlct1UmNq5aMUuOqpUapcdVSo9S4aumDNBEEj4C6D1icOnTPi7tlySpl3R9O+CmMeRL5n7nn0Hb1PaqX/eed118ptn6dn9w/lWOmnoBe+bmSlz0BNgfqHd955WuqlLFqiZO/5yvfrBucX67NjqgNDxyqhOfXigcAv325lT7Cgsle/RrWHTxUD0as2a4cotheHOZmxeLs262rFvuc7/fl+SJO1Avcsq/Pzoaj0evZdbbXOns12xPn64/y+P3ig9SHJ/pTkv2AVpov1DPF5AiMpvq3V2yZ8viyN8+jNsqe2vT+s18eKZcuP0btW+CKV76xPyuvfNt/H5z68k2+TX2vXwlXa+kmaWXztfBE1jhXRXnZrrfj2VT7ht5ZZ4DLHtPxv92sbkpR9xm8zQjbF8gVF5urL5AbF30tXu1m4zxDo/MMKZ1n2MJ5tmGZ7bcTlF/ZvQYt3WvwfbrXaAjdK9vW0b1GRvcaUbrX6Dtxr2Gzex1yomO4ynAOXSXb1tFVxkZXGVO6yvjEXWVe9ZSx0VNGX8dTRPbfm4TEbzp6xMToERNKj5h8Hx4xPs3c0dEHpkYfmFL6wPTEfcAs++ToiWByrv7tO4F609LWBR6EeoPv1ZTAA2ZGD5hResDsb+sB0yME/pE1nxs1n1NqPj8pzaGys6PH9nCm/rXR+TXFnO/cqPM5pc7nJ67z/AgRTK+sKweVufkD1Q3rX/mLkcon++jXIu1rbnh7kkGvQTu9zO1O1SpsQ5v1Km3jwl3+sHaTQ7X2qHThZ1LLP96FyqGe83fYZy31vrBeseMN9/0PLNs7Wpt39fkyzb4dnM1rvl9kr4Qw2sf62oER0N9tTL/shHm8s5dE5j9qMa6T6keGweHOHiXWcaRb+rC7SeTQ6OXe/fbtrIHut/K2WG51tnlmL3HVxoEpXQ0OpCpz8vle1qO6LHciJR02SjokknSIO/t8/wp3WXFEKjxqVHhEpPDoayn8d1/0Q6o1blRrTKTW+NTUOvbCG1KVSaMqEyJVJqemysnpMG3UYUqkw/TUdDjqahRSklmjJDMiSWanJslpiTBvFGFOJML81EQ46koOUpLzRknOiSQ5PzVJvslyWvZgi/2xzrZSrKNpUtMi2iAv2FBrZNtF7r0L4656fcWXdMP8/En6jctjxyyBtk3W3XpV9PuJx+XgbifLZXqcwunzhDgRbiWqdYOu4VbxJbP6p1m2Hl+z+iAtX6K9L1D5BUWoFrDGaB1YRGu4CbI/hA/vhyq/BDE9mB64Je+bTECAVwwm36Lm3RHL5BZdQ3fXvczecOJzxq8sWX3MZq8B2Fcm20oRrZrUFKpDmztrD92ANige3venW3BUEcvj2khtmGSOz9S/NhpS18PbgasVp2vMVBQ2a3IwYI46cvUOrC6fbN+rsT9We6/dOOTRcChGYwv3FPpSl7pQpZ6R12LO19Jdyk7nD44rn2a3323wuDuco9R4BOqEetg7jnifVT4W9Ylu920oFAmverimvDeyKSjW117lAqneL5GelL9X+y91j5yTZUeuJ61OPuyW6+PlpdSvfKT+tmeHfhgxKjJ7NcbmU90afWU3+0SS/L/peijwo0bX7Xo62AmSAx57cnHfmCO3z9Y0DeB2j65Zsrjmh8qSi+yo+WglMqn4N2xNM3ZgSjmpH9Hir+Tn/wNQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAHAB3b3JkL3RoZW1lL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhAGeA/LSbBgAAzSAAABUAHAB3b3JkL3RoZW1lL3RoZW1lMS54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAA7VlPb9s2FL8P2HcgdHf1x5IsBXUL/23XJm3RpB16ZGRaYkyJAkknMYoCQ3vaZcCAbthlwG47DMMKrMCKXfZhCrTYug8xSnZs0abatE23AksMxCL5e48/vvf4+ExdvHycEnCIGMc0axv2BcsAKIvoCGdx27izN2wEBuACZiNIaIbaxgxx4/KlTz+5CLdEglIEpHzGt2DbSITIt0yTR7Ib8gs0R5kcG1OWQiGbLDZHDB5JvSkxHcvyzRTizAAZTKXam+MxjhDYK1Qal06UD4j8lwledESE7UbljFWJEjua2MUXn/EeYeAQkrYh5xnRoz10LAxAIBdyoG1Y5Z9hXrpoLoWIqJGtyA3Lv4XcQmA0cUo5Fu8vBa2BE7j2Ur8z17+JGwTFZ6mvBMAokiu1N7C251uBs8BWQPNHje6wZTdVfEV/c1N/6HcdV8E3V3h3c43DcND3FLy7wnsb+I7ldMOmgvdWeH8D7w46LWeg4EtQQnA22UT7rSDwF+glZEzJVS089H2r1V/AVyizEl1z+UzUxVoKDygbSkDpXChwBsQsR2MYSVwnF5SDPuY5gTMD5DCjXHZbjm3LwHMtZ/kpLQ63EKxIz7sivtFV8AE8YjgXbeOa1GpUIC+ePXv+8Onzh789f/To+cNfwDaOE6GRuwqzuCr36sev//7+C/DXrz+8evyNHs+r+Jc/f/ny9z9ep14otL598vLpkxffffXnT4818A6D+1X4Hk4RBzfQEbhNU7lAzQRon72dxF4CcVWik8UcZrCQ0aAHIlHQN2aQQA2ui1Q73mUyXeiAV6YHCuHdhE0F1gCvJ6kC3KGUdCnTrul6MVfVCtMs1k/OplXcbQgPdXP31rw8mOYy7rFOZS9BCs1bRLocxihDAhRjdIKQRuwexopdd3DEKKdjAe5h0IVYa5I9vC/0QldxKv0y0xGU/lZss3MXdCnRqe+jQxUp9wYkOpWIKGa8AqcCplrGMCVV5DYUiY7k7oxFisG5kJ6OEaFgMEKc62RusplC9zqUeUvr9h0yS1UkE3iiQ25DSqvIPp30EpjmWs44S6rYz/hEhigEt6jQkqDqDina0g8wq3X3XYzE2+3tOzIN6QOkGJky3ZZAVN2PMzKGSKe8w1IlxXYY1kZHdxorob2NEIFHcIQQuPOZDk9zqid9LZFZ5SrS2eYaVGO1aGeIy1qpKG40jsVcCdldFNMaPjuztcQzg1kKWZ3mGxM1ZAb7TG5GXbySaKKkUsyKTasncZOn8FRabyVQCauizfXxOmPZ2+4xKXPwDjLorWVkYj+1bfYgQfqA2YMYbOvSrRSZ6kWK7VSKTbVyY3XTrtxgrhU9Kc7eUAH9N5XPB6t5zr7aqUso6zVOHW69sulRNsIff2HTh9PsFpJnyXldc17X/B/rmrr9fF7NnFcz59XMv1bNrAoYs3rZU2pJa29+xpiQXTEjaJuXpQ+Xe380lJ1loxRaXjTliXxcTKfgYgbLZ8Co+ByLZDeBuZzGLmeI+UJ1zEFOuSyfjFrdZfE1TXfoaHGPZ5/cbUoBKFb9lrfsl6WamPf6rdVF6FJ92Yp5lYBXKj09icpkKommhkSreToStnVWLEINi8B+HQuz4hV5OAFYXIt77pyRDDcZ0qPCT3P5E++euafrjKku29EsL3TPzNMKiUq4qSQqYZjIw2O9+4x9HYZ6VztaGq3gQ/ja3MwNJFNb4EjuuaYn1UQwbxtj+bNJPqa51MeLTAVJnLWNSCwM/S6ZJWdc9CFP5rByaL7+FAvEAMGpjPWqG0i24mY7LevjJRdaH5/lzHUno/EYRaKmZ9WUY3Ml2tH3BBcNOpWkd5PREdgnU3YbSkN5Lbsw4AhzsbTmCLNKcK+suJauFltReQO02qKQ5AlcnCjVZD6Hl89LOpV1lEzXV2XqTLgfD8/i1H2z0FrSrDlAWrVZ7MMd8hVWTT0rT5vrwsB6/Snx/gdChVqgp9bUU6s7O86wIKhM59fYzan15nueButRa1bqyrK18XKb7h/IyO/LanVKBJ9fkB3L8rt38lpyngnK3pPscizAlOG2cd/yOm7P8XoNK/AGDbfpWo3A6zQbHc9r2gPPtvpd54E0ikhS25vPPZQ/9sls8e6+7N94f5+elNoXIpqatKyDzVK4fH9vO/Xv7wGWlrnvO8OwGXb9RtjsDBtuvxs0wp7fbfT9Xqs/7Pe8IBw+MMBhCXY7zZ7rD4KGb/d6Dde3CvpB2Gi5jtNxW51g4HYeLGwtV37yfWLektelfwBQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAHAB3b3JkL19yZWxzL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhALO+ix3+AAAAtgMAABwAHAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzVVQJAAMw0M4SiBztaHV4CwABBPUBAAAEFAAAAK2TzWrDMBCE74W+g9h7LTttQwmRcymBXFv3AWR7/UP1Y6RNWr99RUoShwbTg44zYme+hdV6860VO6DzvTUCsiQFhqaydW9aAR/F9uEFmCdpaqmsQQEjetjk93frN1SSwpDv+sGzkGK8gI5oWHHuqw619Ikd0ISXxjotKUjX8kFWn7JFvkjTJXfTDMivMtmuFuB29SOwYhzwP9m2afoKX22112joRgX3SBQ28yFTuhZJwMlJQhbw2wiLqAg0KpwCHPVcfRaz3ux1iS5sfCE4W3MQy5gQFGbxAnCUv2Y2x/Ack6GxhgpZqgnH2ZqDeIoJ8YXl+5+TnJgnEH712/IfUEsBAh4DFAAAAAgAAAAhADKRb1deAQAApQUAABMAGAAAAAAAAQAAAKSBAAAAAFtDb250ZW50X1R5cGVzXS54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTZE1bAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UGrAQAAZG9jUHJvcHMvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhACEYr1llAQAAxQIAABAAGAAAAAAAAQAAAKSB7gEAAGRvY1Byb3BzL2FwcC54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEACvOn+GYBAADtAgAAEQAYAAAAAAABAAAApIGdAwAAZG9jUHJvcHMvY29yZS54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTZE1bAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UFOBQAAX3JlbHMvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhAB6RGrfpAAAATgIAAAsAGAAAAAAAAQAAAKSBjgUAAF9yZWxzLy5yZWxzVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAk2RNWwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BvAYAAHdvcmQvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAoWRNW+xw0GIQAgAAtAcAABIAGAAAAAAAAQAAAKSB+wYAAHdvcmQvZm9udFRhYmxlLnhtbFVUBQADnhztaHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQCWFrgr1QIAAIgLAAARABgAAAAAAAEAAACkgVcJAAB3b3JkL2RvY3VtZW50LnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQDK52WKKwQAAL4MAAARABgAAAAAAAEAAACkgXcMAAB3b3JkL3NldHRpbmdzLnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQDbhWzDfQQAAJcdAAASABgAAAAAAAEAAACkge0QAAB3b3JkL251bWJlcmluZy54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEAvn52YlYBAADQAwAAFAAYAAAAAAABAAAApIG2FQAAd29yZC93ZWJTZXR0aW5ncy54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEAP6/hZl8PAAANpgAADwAYAAAAAAABAAAApIFaFwAAd29yZC9zdHlsZXMueG1sVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BAicAAHdvcmQvdGhlbWUvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhAGeA/LSbBgAAzSAAABUAGAAAAAAAAQAAAKSBRycAAHdvcmQvdGhlbWUvdGhlbWUxLnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJNkTVsAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQTEuAAB3b3JkL19yZWxzL1VUBQADhhztaHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQCzvosd/gAAALYDAAAcABgAAAAAAAEAAACkgXYuAAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsFBgAAAAARABEAqQUAAMovAAAAAA==`, 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 {
|
|
134739
|
+
}, 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, DocumentApiValidationError2, ALIGNMENTS2, ALIGNMENT_SET2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, FONT_SIZE_ALLOWED_KEYS2, FONT_FAMILY_ALLOWED_KEYS2, COLOR_ALLOWED_KEYS2, ALIGN_ALLOWED_KEYS2, 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, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, REPLACE_INPUT_ALLOWED_KEYS2, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, STYLE_MARK_SCHEMA_NAMES, INLINE_FORMAT_OPERATIONS, 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 {
|
|
134278
134740
|
constructor(config2) {
|
|
134279
134741
|
this.search = config2.search;
|
|
134280
134742
|
this.caseSensitive = !!config2.caseSensitive;
|
|
@@ -152345,9 +152807,9 @@ var Node$13 = class Node$14 {
|
|
|
152345
152807
|
trackedChanges: context.trackedChanges ?? []
|
|
152346
152808
|
});
|
|
152347
152809
|
}, _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;
|
|
152348
|
-
var
|
|
152810
|
+
var init_src_DVVC7vA7_es = __esm(() => {
|
|
152349
152811
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
152350
|
-
|
|
152812
|
+
init_SuperConverter_BxBclpFg_es();
|
|
152351
152813
|
init_jszip_ChlR43oI_es();
|
|
152352
152814
|
init_uuid_2IzDu5nl_es();
|
|
152353
152815
|
init_constants_DBKi0Amm_es();
|
|
@@ -160445,22 +160907,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160445
160907
|
NONE_FAILURES2 = [];
|
|
160446
160908
|
NONE_THROWS2 = [];
|
|
160447
160909
|
T_NOT_FOUND2 = ["TARGET_NOT_FOUND"];
|
|
160448
|
-
|
|
160449
|
-
"TARGET_NOT_FOUND",
|
|
160450
|
-
"COMMAND_UNAVAILABLE",
|
|
160451
|
-
"CAPABILITY_UNAVAILABLE"
|
|
160452
|
-
];
|
|
160453
|
-
T_NOT_FOUND_TRACKED2 = [
|
|
160454
|
-
"TARGET_NOT_FOUND",
|
|
160455
|
-
"TRACK_CHANGE_COMMAND_UNAVAILABLE",
|
|
160456
|
-
"CAPABILITY_UNAVAILABLE"
|
|
160457
|
-
];
|
|
160458
|
-
T_NOT_FOUND_COMMAND_TRACKED2 = [
|
|
160459
|
-
"TARGET_NOT_FOUND",
|
|
160460
|
-
"COMMAND_UNAVAILABLE",
|
|
160461
|
-
"TRACK_CHANGE_COMMAND_UNAVAILABLE",
|
|
160462
|
-
"CAPABILITY_UNAVAILABLE"
|
|
160463
|
-
];
|
|
160910
|
+
T_NOT_FOUND_CAPABLE2 = ["TARGET_NOT_FOUND", "CAPABILITY_UNAVAILABLE"];
|
|
160464
160911
|
T_PLAN_ENGINE2 = [
|
|
160465
160912
|
"REVISION_MISMATCH",
|
|
160466
160913
|
"MATCH_NOT_FOUND",
|
|
@@ -160488,6 +160935,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160488
160935
|
requiresDocumentContext: true,
|
|
160489
160936
|
metadata: readOperation2({
|
|
160490
160937
|
idempotency: "idempotent",
|
|
160938
|
+
throws: ["CAPABILITY_UNAVAILABLE", "INVALID_INPUT"],
|
|
160491
160939
|
deterministicTargetResolution: false
|
|
160492
160940
|
}),
|
|
160493
160941
|
referenceDocPath: "find.mdx",
|
|
@@ -160540,7 +160988,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160540
160988
|
supportsDryRun: true,
|
|
160541
160989
|
supportsTrackedMode: true,
|
|
160542
160990
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
160543
|
-
throws: [...
|
|
160991
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160544
160992
|
}),
|
|
160545
160993
|
referenceDocPath: "insert.mdx",
|
|
160546
160994
|
referenceGroup: "core"
|
|
@@ -160554,7 +161002,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160554
161002
|
supportsDryRun: true,
|
|
160555
161003
|
supportsTrackedMode: true,
|
|
160556
161004
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
160557
|
-
throws: [...
|
|
161005
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160558
161006
|
}),
|
|
160559
161007
|
referenceDocPath: "replace.mdx",
|
|
160560
161008
|
referenceGroup: "core"
|
|
@@ -160568,7 +161016,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160568
161016
|
supportsDryRun: true,
|
|
160569
161017
|
supportsTrackedMode: true,
|
|
160570
161018
|
possibleFailureCodes: ["NO_OP"],
|
|
160571
|
-
throws: [...
|
|
161019
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160572
161020
|
}),
|
|
160573
161021
|
referenceDocPath: "delete.mdx",
|
|
160574
161022
|
referenceGroup: "core"
|
|
@@ -160583,7 +161031,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160583
161031
|
supportsTrackedMode: true,
|
|
160584
161032
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160585
161033
|
throws: [
|
|
160586
|
-
...
|
|
161034
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160587
161035
|
"INVALID_TARGET",
|
|
160588
161036
|
"INVALID_INPUT"
|
|
160589
161037
|
]
|
|
@@ -160591,6 +161039,78 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160591
161039
|
referenceDocPath: "format/apply.mdx",
|
|
160592
161040
|
referenceGroup: "format"
|
|
160593
161041
|
},
|
|
161042
|
+
"format.fontSize": {
|
|
161043
|
+
memberPath: "format.fontSize",
|
|
161044
|
+
description: "Set or unset the font size on the target text range. Pass null to remove.",
|
|
161045
|
+
requiresDocumentContext: true,
|
|
161046
|
+
metadata: mutationOperation2({
|
|
161047
|
+
idempotency: "conditional",
|
|
161048
|
+
supportsDryRun: true,
|
|
161049
|
+
supportsTrackedMode: false,
|
|
161050
|
+
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
161051
|
+
throws: [
|
|
161052
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
161053
|
+
"INVALID_TARGET",
|
|
161054
|
+
"INVALID_INPUT"
|
|
161055
|
+
]
|
|
161056
|
+
}),
|
|
161057
|
+
referenceDocPath: "format/font-size.mdx",
|
|
161058
|
+
referenceGroup: "format"
|
|
161059
|
+
},
|
|
161060
|
+
"format.fontFamily": {
|
|
161061
|
+
memberPath: "format.fontFamily",
|
|
161062
|
+
description: "Set or unset the font family on the target text range. Pass null to remove.",
|
|
161063
|
+
requiresDocumentContext: true,
|
|
161064
|
+
metadata: mutationOperation2({
|
|
161065
|
+
idempotency: "conditional",
|
|
161066
|
+
supportsDryRun: true,
|
|
161067
|
+
supportsTrackedMode: false,
|
|
161068
|
+
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
161069
|
+
throws: [
|
|
161070
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
161071
|
+
"INVALID_TARGET",
|
|
161072
|
+
"INVALID_INPUT"
|
|
161073
|
+
]
|
|
161074
|
+
}),
|
|
161075
|
+
referenceDocPath: "format/font-family.mdx",
|
|
161076
|
+
referenceGroup: "format"
|
|
161077
|
+
},
|
|
161078
|
+
"format.color": {
|
|
161079
|
+
memberPath: "format.color",
|
|
161080
|
+
description: "Set or unset the text color on the target text range. Pass null to remove.",
|
|
161081
|
+
requiresDocumentContext: true,
|
|
161082
|
+
metadata: mutationOperation2({
|
|
161083
|
+
idempotency: "conditional",
|
|
161084
|
+
supportsDryRun: true,
|
|
161085
|
+
supportsTrackedMode: false,
|
|
161086
|
+
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
161087
|
+
throws: [
|
|
161088
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
161089
|
+
"INVALID_TARGET",
|
|
161090
|
+
"INVALID_INPUT"
|
|
161091
|
+
]
|
|
161092
|
+
}),
|
|
161093
|
+
referenceDocPath: "format/color.mdx",
|
|
161094
|
+
referenceGroup: "format"
|
|
161095
|
+
},
|
|
161096
|
+
"format.align": {
|
|
161097
|
+
memberPath: "format.align",
|
|
161098
|
+
description: "Set or unset paragraph alignment on the block containing the target. Pass null to reset to default.",
|
|
161099
|
+
requiresDocumentContext: true,
|
|
161100
|
+
metadata: mutationOperation2({
|
|
161101
|
+
idempotency: "conditional",
|
|
161102
|
+
supportsDryRun: true,
|
|
161103
|
+
supportsTrackedMode: false,
|
|
161104
|
+
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
161105
|
+
throws: [
|
|
161106
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
161107
|
+
"INVALID_TARGET",
|
|
161108
|
+
"INVALID_INPUT"
|
|
161109
|
+
]
|
|
161110
|
+
}),
|
|
161111
|
+
referenceDocPath: "format/align.mdx",
|
|
161112
|
+
referenceGroup: "format"
|
|
161113
|
+
},
|
|
160594
161114
|
"create.paragraph": {
|
|
160595
161115
|
memberPath: "create.paragraph",
|
|
160596
161116
|
description: "Create a new paragraph at the target position.",
|
|
@@ -160601,7 +161121,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160601
161121
|
supportsTrackedMode: true,
|
|
160602
161122
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160603
161123
|
throws: [
|
|
160604
|
-
...
|
|
161124
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160605
161125
|
"INVALID_TARGET",
|
|
160606
161126
|
"AMBIGUOUS_TARGET"
|
|
160607
161127
|
]
|
|
@@ -160619,7 +161139,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160619
161139
|
supportsTrackedMode: true,
|
|
160620
161140
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160621
161141
|
throws: [
|
|
160622
|
-
...
|
|
161142
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160623
161143
|
"INVALID_TARGET",
|
|
160624
161144
|
"AMBIGUOUS_TARGET"
|
|
160625
161145
|
]
|
|
@@ -160633,7 +161153,11 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160633
161153
|
requiresDocumentContext: true,
|
|
160634
161154
|
metadata: readOperation2({
|
|
160635
161155
|
idempotency: "idempotent",
|
|
160636
|
-
throws:
|
|
161156
|
+
throws: [
|
|
161157
|
+
"TARGET_NOT_FOUND",
|
|
161158
|
+
"INVALID_TARGET",
|
|
161159
|
+
"INVALID_INPUT"
|
|
161160
|
+
]
|
|
160637
161161
|
}),
|
|
160638
161162
|
referenceDocPath: "lists/list.mdx",
|
|
160639
161163
|
referenceGroup: "lists"
|
|
@@ -160658,7 +161182,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160658
161182
|
supportsDryRun: true,
|
|
160659
161183
|
supportsTrackedMode: true,
|
|
160660
161184
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160661
|
-
throws: [...
|
|
161185
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160662
161186
|
}),
|
|
160663
161187
|
referenceDocPath: "lists/insert.mdx",
|
|
160664
161188
|
referenceGroup: "lists"
|
|
@@ -160672,7 +161196,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160672
161196
|
supportsDryRun: true,
|
|
160673
161197
|
supportsTrackedMode: false,
|
|
160674
161198
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
160675
|
-
throws: [...
|
|
161199
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160676
161200
|
}),
|
|
160677
161201
|
referenceDocPath: "lists/set-type.mdx",
|
|
160678
161202
|
referenceGroup: "lists"
|
|
@@ -160686,7 +161210,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160686
161210
|
supportsDryRun: true,
|
|
160687
161211
|
supportsTrackedMode: false,
|
|
160688
161212
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
160689
|
-
throws: [...
|
|
161213
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160690
161214
|
}),
|
|
160691
161215
|
referenceDocPath: "lists/indent.mdx",
|
|
160692
161216
|
referenceGroup: "lists"
|
|
@@ -160700,7 +161224,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160700
161224
|
supportsDryRun: true,
|
|
160701
161225
|
supportsTrackedMode: false,
|
|
160702
161226
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
160703
|
-
throws: [...
|
|
161227
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160704
161228
|
}),
|
|
160705
161229
|
referenceDocPath: "lists/outdent.mdx",
|
|
160706
161230
|
referenceGroup: "lists"
|
|
@@ -160714,7 +161238,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160714
161238
|
supportsDryRun: true,
|
|
160715
161239
|
supportsTrackedMode: false,
|
|
160716
161240
|
possibleFailureCodes: ["NO_OP", "INVALID_TARGET"],
|
|
160717
|
-
throws: [...
|
|
161241
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160718
161242
|
}),
|
|
160719
161243
|
referenceDocPath: "lists/restart.mdx",
|
|
160720
161244
|
referenceGroup: "lists"
|
|
@@ -160728,7 +161252,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160728
161252
|
supportsDryRun: true,
|
|
160729
161253
|
supportsTrackedMode: false,
|
|
160730
161254
|
possibleFailureCodes: ["INVALID_TARGET"],
|
|
160731
|
-
throws: [...
|
|
161255
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160732
161256
|
}),
|
|
160733
161257
|
referenceDocPath: "lists/exit.mdx",
|
|
160734
161258
|
referenceGroup: "lists"
|
|
@@ -160742,7 +161266,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160742
161266
|
supportsDryRun: false,
|
|
160743
161267
|
supportsTrackedMode: false,
|
|
160744
161268
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
160745
|
-
throws: [...
|
|
161269
|
+
throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
|
|
160746
161270
|
}),
|
|
160747
161271
|
referenceDocPath: "comments/create.mdx",
|
|
160748
161272
|
referenceGroup: "comments"
|
|
@@ -160757,7 +161281,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160757
161281
|
supportsTrackedMode: false,
|
|
160758
161282
|
possibleFailureCodes: ["INVALID_TARGET", "NO_OP"],
|
|
160759
161283
|
throws: [
|
|
160760
|
-
...
|
|
161284
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160761
161285
|
"INVALID_TARGET",
|
|
160762
161286
|
"INVALID_INPUT"
|
|
160763
161287
|
]
|
|
@@ -160774,7 +161298,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160774
161298
|
supportsDryRun: false,
|
|
160775
161299
|
supportsTrackedMode: false,
|
|
160776
161300
|
possibleFailureCodes: ["NO_OP"],
|
|
160777
|
-
throws:
|
|
161301
|
+
throws: T_NOT_FOUND_CAPABLE2
|
|
160778
161302
|
}),
|
|
160779
161303
|
referenceDocPath: "comments/delete.mdx",
|
|
160780
161304
|
referenceGroup: "comments"
|
|
@@ -160794,7 +161318,10 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160794
161318
|
memberPath: "comments.list",
|
|
160795
161319
|
description: "List all comment threads in the document.",
|
|
160796
161320
|
requiresDocumentContext: true,
|
|
160797
|
-
metadata: readOperation2({
|
|
161321
|
+
metadata: readOperation2({
|
|
161322
|
+
idempotency: "idempotent",
|
|
161323
|
+
throws: ["INVALID_INPUT"]
|
|
161324
|
+
}),
|
|
160798
161325
|
referenceDocPath: "comments/list.mdx",
|
|
160799
161326
|
referenceGroup: "comments"
|
|
160800
161327
|
},
|
|
@@ -160802,7 +161329,10 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160802
161329
|
memberPath: "trackChanges.list",
|
|
160803
161330
|
description: "List all tracked changes in the document.",
|
|
160804
161331
|
requiresDocumentContext: true,
|
|
160805
|
-
metadata: readOperation2({
|
|
161332
|
+
metadata: readOperation2({
|
|
161333
|
+
idempotency: "idempotent",
|
|
161334
|
+
throws: ["INVALID_INPUT"]
|
|
161335
|
+
}),
|
|
160806
161336
|
referenceDocPath: "track-changes/list.mdx",
|
|
160807
161337
|
referenceGroup: "trackChanges"
|
|
160808
161338
|
},
|
|
@@ -160827,7 +161357,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160827
161357
|
supportsTrackedMode: false,
|
|
160828
161358
|
possibleFailureCodes: ["NO_OP"],
|
|
160829
161359
|
throws: [
|
|
160830
|
-
...
|
|
161360
|
+
...T_NOT_FOUND_CAPABLE2,
|
|
160831
161361
|
"INVALID_INPUT",
|
|
160832
161362
|
"INVALID_TARGET"
|
|
160833
161363
|
]
|
|
@@ -160893,6 +161423,27 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160893
161423
|
OPERATION_IDS2.filter((operationId) => COMMAND_CATALOG2[operationId].mutates);
|
|
160894
161424
|
projectFromDefinitions2((_id, entry) => entry.description);
|
|
160895
161425
|
projectFromDefinitions2((_id, entry) => entry.requiresDocumentContext);
|
|
161426
|
+
DocumentApiValidationError2 = class DocumentApiValidationError3 extends Error {
|
|
161427
|
+
constructor(code$1, message, details) {
|
|
161428
|
+
super(message);
|
|
161429
|
+
this.name = "DocumentApiValidationError";
|
|
161430
|
+
this.code = code$1;
|
|
161431
|
+
this.details = details;
|
|
161432
|
+
Object.setPrototypeOf(this, DocumentApiValidationError3.prototype);
|
|
161433
|
+
}
|
|
161434
|
+
};
|
|
161435
|
+
ALIGNMENTS2 = [
|
|
161436
|
+
"left",
|
|
161437
|
+
"center",
|
|
161438
|
+
"right",
|
|
161439
|
+
"justify"
|
|
161440
|
+
];
|
|
161441
|
+
ALIGNMENT_SET2 = new Set(ALIGNMENTS2);
|
|
161442
|
+
STYLE_APPLY_INPUT_ALLOWED_KEYS2 = new Set(["target", "inline"]);
|
|
161443
|
+
FONT_SIZE_ALLOWED_KEYS2 = new Set(["target", "value"]);
|
|
161444
|
+
FONT_FAMILY_ALLOWED_KEYS2 = new Set(["target", "value"]);
|
|
161445
|
+
COLOR_ALLOWED_KEYS2 = new Set(["target", "value"]);
|
|
161446
|
+
ALIGN_ALLOWED_KEYS2 = new Set(["target", "alignment"]);
|
|
160896
161447
|
nodeTypeValues2 = NODE_TYPES2;
|
|
160897
161448
|
blockNodeTypeValues2 = BLOCK_NODE_TYPES2;
|
|
160898
161449
|
inlineNodeTypeValues2 = INLINE_NODE_TYPES2;
|
|
@@ -160914,6 +161465,16 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160914
161465
|
"blockId",
|
|
160915
161466
|
"range"
|
|
160916
161467
|
]), objectSchema2({
|
|
161468
|
+
blockId: { type: "string" },
|
|
161469
|
+
range: ref$1("Range")
|
|
161470
|
+
}, ["blockId", "range"]), objectSchema2({
|
|
161471
|
+
kind: { const: "text" },
|
|
161472
|
+
segments: {
|
|
161473
|
+
type: "array",
|
|
161474
|
+
items: ref$1("TextSegment"),
|
|
161475
|
+
minItems: 1
|
|
161476
|
+
}
|
|
161477
|
+
}, ["kind", "segments"]), objectSchema2({
|
|
160917
161478
|
kind: { const: "block" },
|
|
160918
161479
|
nodeType: { enum: [...blockNodeTypeValues2] },
|
|
160919
161480
|
nodeId: { type: "string" }
|
|
@@ -161070,6 +161631,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161070
161631
|
ref$1("InlineAnchor");
|
|
161071
161632
|
ref$1("TargetKind");
|
|
161072
161633
|
textAddressSchema2 = ref$1("TextAddress");
|
|
161634
|
+
textTargetSchema2 = ref$1("TextTarget");
|
|
161073
161635
|
blockNodeAddressSchema2 = ref$1("BlockNodeAddress");
|
|
161074
161636
|
paragraphAddressSchema2 = ref$1("ParagraphAddress");
|
|
161075
161637
|
headingAddressSchema2 = ref$1("HeadingAddress");
|
|
@@ -161272,7 +161834,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161272
161834
|
text: { type: "string" },
|
|
161273
161835
|
isInternal: { type: "boolean" },
|
|
161274
161836
|
status: { enum: ["open", "resolved"] },
|
|
161275
|
-
target:
|
|
161837
|
+
target: textTargetSchema2,
|
|
161838
|
+
anchoredText: { type: "string" },
|
|
161276
161839
|
createdTime: { type: "number" },
|
|
161277
161840
|
creatorName: { type: "string" },
|
|
161278
161841
|
creatorEmail: { type: "string" }
|
|
@@ -161288,7 +161851,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161288
161851
|
text: { type: "string" },
|
|
161289
161852
|
isInternal: { type: "boolean" },
|
|
161290
161853
|
status: { enum: ["open", "resolved"] },
|
|
161291
|
-
target:
|
|
161854
|
+
target: textTargetSchema2,
|
|
161855
|
+
anchoredText: { type: "string" },
|
|
161292
161856
|
createdTime: { type: "number" },
|
|
161293
161857
|
creatorName: { type: "string" },
|
|
161294
161858
|
creatorEmail: { type: "string" }
|
|
@@ -161391,6 +161955,31 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161391
161955
|
};
|
|
161392
161956
|
})()
|
|
161393
161957
|
}, ["target", "inline"]), textMutationResultSchemaFor2("format.apply"), textMutationFailureSchemaFor2("format.apply"), objectSchema2({
|
|
161958
|
+
target: textAddressSchema2,
|
|
161959
|
+
value: { oneOf: [
|
|
161960
|
+
{
|
|
161961
|
+
type: "string",
|
|
161962
|
+
minLength: 1
|
|
161963
|
+
},
|
|
161964
|
+
{ type: "number" },
|
|
161965
|
+
{ type: "null" }
|
|
161966
|
+
] }
|
|
161967
|
+
}, ["target", "value"]), textMutationResultSchemaFor2("format.fontSize"), textMutationFailureSchemaFor2("format.fontSize"), objectSchema2({
|
|
161968
|
+
target: textAddressSchema2,
|
|
161969
|
+
value: { oneOf: [{
|
|
161970
|
+
type: "string",
|
|
161971
|
+
minLength: 1
|
|
161972
|
+
}, { type: "null" }] }
|
|
161973
|
+
}, ["target", "value"]), textMutationResultSchemaFor2("format.fontFamily"), textMutationFailureSchemaFor2("format.fontFamily"), objectSchema2({
|
|
161974
|
+
target: textAddressSchema2,
|
|
161975
|
+
value: { oneOf: [{
|
|
161976
|
+
type: "string",
|
|
161977
|
+
minLength: 1
|
|
161978
|
+
}, { type: "null" }] }
|
|
161979
|
+
}, ["target", "value"]), textMutationResultSchemaFor2("format.color"), textMutationFailureSchemaFor2("format.color"), objectSchema2({
|
|
161980
|
+
target: textAddressSchema2,
|
|
161981
|
+
alignment: { oneOf: [{ enum: [...ALIGNMENTS2] }, { type: "null" }] }
|
|
161982
|
+
}, ["target", "alignment"]), textMutationResultSchemaFor2("format.align"), textMutationFailureSchemaFor2("format.align"), objectSchema2({
|
|
161394
161983
|
at: { oneOf: [
|
|
161395
161984
|
objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
|
|
161396
161985
|
objectSchema2({ kind: { const: "documentEnd" } }, ["kind"]),
|
|
@@ -161621,15 +162210,6 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161621
162210
|
"DRY_RUN_UNAVAILABLE",
|
|
161622
162211
|
"NAMESPACE_UNAVAILABLE"
|
|
161623
162212
|
];
|
|
161624
|
-
DocumentApiValidationError2 = class DocumentApiValidationError3 extends Error {
|
|
161625
|
-
constructor(code$1, message, details) {
|
|
161626
|
-
super(message);
|
|
161627
|
-
this.name = "DocumentApiValidationError";
|
|
161628
|
-
this.code = code$1;
|
|
161629
|
-
this.details = details;
|
|
161630
|
-
Object.setPrototypeOf(this, DocumentApiValidationError3.prototype);
|
|
161631
|
-
}
|
|
161632
|
-
};
|
|
161633
162213
|
CREATE_COMMENT_ALLOWED_KEYS2 = new Set([
|
|
161634
162214
|
"target",
|
|
161635
162215
|
"text",
|
|
@@ -161642,11 +162222,30 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161642
162222
|
"status",
|
|
161643
162223
|
"isInternal"
|
|
161644
162224
|
]);
|
|
161645
|
-
STYLE_APPLY_INPUT_ALLOWED_KEYS2 = new Set(["target", "inline"]);
|
|
161646
162225
|
DELETE_INPUT_ALLOWED_KEYS2 = new Set(["target"]);
|
|
161647
162226
|
INSERT_INPUT_ALLOWED_KEYS2 = new Set(["text", "target"]);
|
|
161648
162227
|
REPLACE_INPUT_ALLOWED_KEYS2 = new Set(["text", "target"]);
|
|
161649
162228
|
REQUIRED_COMMANDS = {
|
|
162229
|
+
"format.fontSize": [
|
|
162230
|
+
"setTextSelection",
|
|
162231
|
+
"setFontSize",
|
|
162232
|
+
"unsetFontSize"
|
|
162233
|
+
],
|
|
162234
|
+
"format.fontFamily": [
|
|
162235
|
+
"setTextSelection",
|
|
162236
|
+
"setFontFamily",
|
|
162237
|
+
"unsetFontFamily"
|
|
162238
|
+
],
|
|
162239
|
+
"format.color": [
|
|
162240
|
+
"setTextSelection",
|
|
162241
|
+
"setColor",
|
|
162242
|
+
"unsetColor"
|
|
162243
|
+
],
|
|
162244
|
+
"format.align": [
|
|
162245
|
+
"setTextSelection",
|
|
162246
|
+
"setTextAlign",
|
|
162247
|
+
"unsetTextAlign"
|
|
162248
|
+
],
|
|
161650
162249
|
"create.paragraph": ["insertParagraphAt"],
|
|
161651
162250
|
"create.heading": ["insertHeadingAt"],
|
|
161652
162251
|
"lists.insert": ["insertListItemAt"],
|
|
@@ -161681,6 +162280,11 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161681
162280
|
underline: "underline",
|
|
161682
162281
|
strike: "strike"
|
|
161683
162282
|
};
|
|
162283
|
+
INLINE_FORMAT_OPERATIONS = new Set([
|
|
162284
|
+
"format.fontSize",
|
|
162285
|
+
"format.fontFamily",
|
|
162286
|
+
"format.color"
|
|
162287
|
+
]);
|
|
161684
162288
|
SUPPORTED_STEP_OPS = [
|
|
161685
162289
|
"text.rewrite",
|
|
161686
162290
|
"text.insert",
|
|
@@ -183817,8 +184421,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183817
184421
|
return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
|
|
183818
184422
|
};
|
|
183819
184423
|
stubFalse_default = stubFalse;
|
|
183820
|
-
freeExports$2 = typeof
|
|
183821
|
-
freeModule$2 = freeExports$2 && typeof
|
|
184424
|
+
freeExports$2 = typeof exports_src_DVVC7vA7_es == "object" && exports_src_DVVC7vA7_es && !exports_src_DVVC7vA7_es.nodeType && exports_src_DVVC7vA7_es;
|
|
184425
|
+
freeModule$2 = freeExports$2 && typeof module_src_DVVC7vA7_es == "object" && module_src_DVVC7vA7_es && !module_src_DVVC7vA7_es.nodeType && module_src_DVVC7vA7_es;
|
|
183822
184426
|
Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
|
|
183823
184427
|
isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
|
|
183824
184428
|
typedArrayTags = {};
|
|
@@ -183826,8 +184430,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183826
184430
|
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;
|
|
183827
184431
|
_baseIsTypedArray_default = baseIsTypedArray;
|
|
183828
184432
|
_baseUnary_default = baseUnary;
|
|
183829
|
-
freeExports$1 = typeof
|
|
183830
|
-
freeModule$1 = freeExports$1 && typeof
|
|
184433
|
+
freeExports$1 = typeof exports_src_DVVC7vA7_es == "object" && exports_src_DVVC7vA7_es && !exports_src_DVVC7vA7_es.nodeType && exports_src_DVVC7vA7_es;
|
|
184434
|
+
freeModule$1 = freeExports$1 && typeof module_src_DVVC7vA7_es == "object" && module_src_DVVC7vA7_es && !module_src_DVVC7vA7_es.nodeType && module_src_DVVC7vA7_es;
|
|
183831
184435
|
freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
|
|
183832
184436
|
_nodeUtil_default = function() {
|
|
183833
184437
|
try {
|
|
@@ -183932,8 +184536,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183932
184536
|
Stack.prototype.has = _stackHas_default;
|
|
183933
184537
|
Stack.prototype.set = _stackSet_default;
|
|
183934
184538
|
_Stack_default = Stack;
|
|
183935
|
-
freeExports = typeof
|
|
183936
|
-
freeModule = freeExports && typeof
|
|
184539
|
+
freeExports = typeof exports_src_DVVC7vA7_es == "object" && exports_src_DVVC7vA7_es && !exports_src_DVVC7vA7_es.nodeType && exports_src_DVVC7vA7_es;
|
|
184540
|
+
freeModule = freeExports && typeof module_src_DVVC7vA7_es == "object" && module_src_DVVC7vA7_es && !module_src_DVVC7vA7_es.nodeType && module_src_DVVC7vA7_es;
|
|
183937
184541
|
Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
|
|
183938
184542
|
allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
|
|
183939
184543
|
_cloneBuffer_default = cloneBuffer;
|
|
@@ -191552,8 +192156,8 @@ var init_zipper_BJHqrQMq_es = __esm(() => {
|
|
|
191552
192156
|
|
|
191553
192157
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
191554
192158
|
var init_super_editor_es = __esm(() => {
|
|
191555
|
-
|
|
191556
|
-
|
|
192159
|
+
init_src_DVVC7vA7_es();
|
|
192160
|
+
init_SuperConverter_BxBclpFg_es();
|
|
191557
192161
|
init_jszip_ChlR43oI_es();
|
|
191558
192162
|
init_xml_js_DLE8mr0n_es();
|
|
191559
192163
|
init_constants_DBKi0Amm_es();
|
|
@@ -191563,6 +192167,12 @@ var init_super_editor_es = __esm(() => {
|
|
|
191563
192167
|
init_zipper_BJHqrQMq_es();
|
|
191564
192168
|
});
|
|
191565
192169
|
|
|
192170
|
+
// ../../packages/super-editor/src/core/blank-docx.ts
|
|
192171
|
+
var BLANK_DOCX_BASE64 = `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`, BLANK_DOCX_DATA_URI2;
|
|
192172
|
+
var init_blank_docx = __esm(() => {
|
|
192173
|
+
BLANK_DOCX_DATA_URI2 = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,${BLANK_DOCX_BASE64}`;
|
|
192174
|
+
});
|
|
192175
|
+
|
|
191566
192176
|
// ../../packages/super-editor/src/extensions/track-changes/constants.js
|
|
191567
192177
|
var TrackInsertMarkName2 = "trackInsert", TrackDeleteMarkName2 = "trackDelete", TrackFormatMarkName2 = "trackFormat";
|
|
191568
192178
|
|
|
@@ -191617,10 +192227,13 @@ function isOperationAvailable2(editor, operationId) {
|
|
|
191617
192227
|
if (operationId === "format.apply") {
|
|
191618
192228
|
return MARK_KEYS.some((key2) => hasMarkCapability2(editor, STYLE_MARK_SCHEMA_NAMES2[key2] ?? key2));
|
|
191619
192229
|
}
|
|
192230
|
+
if (INLINE_FORMAT_OPERATIONS2.has(operationId)) {
|
|
192231
|
+
return hasAllCommands2(editor, operationId) && hasMarkCapability2(editor, "textStyle");
|
|
192232
|
+
}
|
|
191620
192233
|
return hasAllCommands2(editor, operationId);
|
|
191621
192234
|
}
|
|
191622
192235
|
function isCommandBackedAvailability2(operationId) {
|
|
191623
|
-
return !isMarkBackedOperation2(operationId);
|
|
192236
|
+
return !isMarkBackedOperation2(operationId) && !INLINE_FORMAT_OPERATIONS2.has(operationId);
|
|
191624
192237
|
}
|
|
191625
192238
|
function buildOperationCapabilities2(editor) {
|
|
191626
192239
|
const operations = {};
|
|
@@ -191695,10 +192308,14 @@ function getDocumentApiCapabilities2(editor) {
|
|
|
191695
192308
|
planEngine: buildPlanEngineCapabilities2()
|
|
191696
192309
|
};
|
|
191697
192310
|
}
|
|
191698
|
-
var REQUIRED_COMMANDS2, VALID_CAPABILITY_REASON_CODES2, STYLE_MARK_SCHEMA_NAMES2, SUPPORTED_STEP_OPS2, SUPPORTED_NON_UNIFORM_STRATEGIES2, SUPPORTED_SET_MARKS2, REGEX_MAX_PATTERN_LENGTH2 = 1024;
|
|
192311
|
+
var REQUIRED_COMMANDS2, VALID_CAPABILITY_REASON_CODES2, STYLE_MARK_SCHEMA_NAMES2, INLINE_FORMAT_OPERATIONS2, SUPPORTED_STEP_OPS2, SUPPORTED_NON_UNIFORM_STRATEGIES2, SUPPORTED_SET_MARKS2, REGEX_MAX_PATTERN_LENGTH2 = 1024;
|
|
191699
192312
|
var init_capabilities_adapter = __esm(() => {
|
|
191700
192313
|
init_src();
|
|
191701
192314
|
REQUIRED_COMMANDS2 = {
|
|
192315
|
+
"format.fontSize": ["setTextSelection", "setFontSize", "unsetFontSize"],
|
|
192316
|
+
"format.fontFamily": ["setTextSelection", "setFontFamily", "unsetFontFamily"],
|
|
192317
|
+
"format.color": ["setTextSelection", "setColor", "unsetColor"],
|
|
192318
|
+
"format.align": ["setTextSelection", "setTextAlign", "unsetTextAlign"],
|
|
191702
192319
|
"create.paragraph": ["insertParagraphAt"],
|
|
191703
192320
|
"create.heading": ["insertHeadingAt"],
|
|
191704
192321
|
"lists.insert": ["insertListItemAt"],
|
|
@@ -191724,6 +192341,7 @@ var init_capabilities_adapter = __esm(() => {
|
|
|
191724
192341
|
underline: "underline",
|
|
191725
192342
|
strike: "strike"
|
|
191726
192343
|
};
|
|
192344
|
+
INLINE_FORMAT_OPERATIONS2 = new Set(["format.fontSize", "format.fontFamily", "format.color"]);
|
|
191727
192345
|
SUPPORTED_STEP_OPS2 = [
|
|
191728
192346
|
"text.rewrite",
|
|
191729
192347
|
"text.insert",
|
|
@@ -197141,28 +197759,51 @@ var init_executor_registry = __esm(() => {
|
|
|
197141
197759
|
// ../../packages/super-editor/src/document-api-adapters/plan-engine/style-resolver.ts
|
|
197142
197760
|
function captureRunsInRange2(editor, blockPos, from3, to) {
|
|
197143
197761
|
const doc4 = editor.state.doc;
|
|
197144
|
-
const
|
|
197145
|
-
|
|
197146
|
-
|
|
197762
|
+
const blockNode = doc4.nodeAt(blockPos);
|
|
197763
|
+
if (!blockNode || from3 < 0 || to < from3 || from3 === to) {
|
|
197764
|
+
return { runs: [], isUniform: true };
|
|
197765
|
+
}
|
|
197147
197766
|
const runs2 = [];
|
|
197148
|
-
|
|
197149
|
-
|
|
197150
|
-
|
|
197151
|
-
const
|
|
197152
|
-
|
|
197153
|
-
|
|
197154
|
-
return true;
|
|
197155
|
-
const relFrom = nodeStart - contentStart;
|
|
197156
|
-
const relTo = nodeEnd - contentStart;
|
|
197157
|
-
const formattingMarks = node3.marks.filter((m3) => !METADATA_MARK_NAMES2.has(m3.type.name));
|
|
197767
|
+
let offset2 = 0;
|
|
197768
|
+
const maybePushRun = (start2, end, marks) => {
|
|
197769
|
+
const overlapStart = Math.max(start2, from3);
|
|
197770
|
+
const overlapEnd = Math.min(end, to);
|
|
197771
|
+
if (overlapStart >= overlapEnd)
|
|
197772
|
+
return;
|
|
197158
197773
|
runs2.push({
|
|
197159
|
-
from:
|
|
197160
|
-
to:
|
|
197161
|
-
charCount:
|
|
197162
|
-
marks:
|
|
197774
|
+
from: overlapStart,
|
|
197775
|
+
to: overlapEnd,
|
|
197776
|
+
charCount: overlapEnd - overlapStart,
|
|
197777
|
+
marks: marks.filter((m3) => !METADATA_MARK_NAMES2.has(m3.type.name))
|
|
197163
197778
|
});
|
|
197164
|
-
|
|
197165
|
-
|
|
197779
|
+
};
|
|
197780
|
+
const walkNode3 = (node3) => {
|
|
197781
|
+
if (node3.isText) {
|
|
197782
|
+
const text4 = node3.text ?? "";
|
|
197783
|
+
if (text4.length > 0) {
|
|
197784
|
+
const start2 = offset2;
|
|
197785
|
+
const end = offset2 + text4.length;
|
|
197786
|
+
const marks = Array.isArray(node3.marks) ? node3.marks : [];
|
|
197787
|
+
maybePushRun(start2, end, marks);
|
|
197788
|
+
offset2 = end;
|
|
197789
|
+
}
|
|
197790
|
+
return;
|
|
197791
|
+
}
|
|
197792
|
+
if (node3.isLeaf) {
|
|
197793
|
+
offset2 += 1;
|
|
197794
|
+
return;
|
|
197795
|
+
}
|
|
197796
|
+
let isFirstChild = true;
|
|
197797
|
+
for (let i4 = 0;i4 < node3.childCount; i4++) {
|
|
197798
|
+
const child = node3.child(i4);
|
|
197799
|
+
if (child.isBlock && !isFirstChild) {
|
|
197800
|
+
offset2 += 1;
|
|
197801
|
+
}
|
|
197802
|
+
walkNode3(child);
|
|
197803
|
+
isFirstChild = false;
|
|
197804
|
+
}
|
|
197805
|
+
};
|
|
197806
|
+
walkNode3(blockNode);
|
|
197166
197807
|
const isUniform = checkUniformity2(runs2);
|
|
197167
197808
|
return { runs: runs2, isUniform };
|
|
197168
197809
|
}
|
|
@@ -197669,10 +198310,7 @@ function isRefWhere2(where) {
|
|
|
197669
198310
|
return where.by === "ref";
|
|
197670
198311
|
}
|
|
197671
198312
|
function isV3Ref2(payload) {
|
|
197672
|
-
return "v" in payload && payload.v === 3;
|
|
197673
|
-
}
|
|
197674
|
-
function isV2Ref2(payload) {
|
|
197675
|
-
return "v" in payload && payload.v === 2;
|
|
198313
|
+
return typeof payload === "object" && payload !== null && "v" in payload && payload.v === 3;
|
|
197676
198314
|
}
|
|
197677
198315
|
function resolveAbsoluteRange2(editor, candidate, from3, to, stepId) {
|
|
197678
198316
|
const resolved = resolveTextRangeInBlock2(candidate.node, candidate.pos, { start: from3, end: to });
|
|
@@ -197895,58 +198533,6 @@ function decodeTextRefPayload2(encoded, stepId) {
|
|
|
197895
198533
|
throw planError2("INVALID_INPUT", "invalid text ref encoding", stepId);
|
|
197896
198534
|
}
|
|
197897
198535
|
}
|
|
197898
|
-
function resolveV1TextRef2(editor, index2, step, refData) {
|
|
197899
|
-
const currentRevision = getRevision2(editor);
|
|
197900
|
-
if (refData.rev !== currentRevision) {
|
|
197901
|
-
throw planError2("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, { refRevision: refData.rev, currentRevision });
|
|
197902
|
-
}
|
|
197903
|
-
if (!refData.ranges?.length)
|
|
197904
|
-
return [];
|
|
197905
|
-
const coalesced = normalizeMatchRanges2(step.id, refData.ranges);
|
|
197906
|
-
const candidate = index2.candidates.find((c2) => c2.nodeId === coalesced.blockId);
|
|
197907
|
-
if (!candidate)
|
|
197908
|
-
return [];
|
|
197909
|
-
const blockText = getBlockText2(editor, candidate);
|
|
197910
|
-
const matchText = blockText.slice(coalesced.from, coalesced.to);
|
|
197911
|
-
const addr = {
|
|
197912
|
-
blockId: coalesced.blockId,
|
|
197913
|
-
from: coalesced.from,
|
|
197914
|
-
to: coalesced.to,
|
|
197915
|
-
text: matchText,
|
|
197916
|
-
marks: [],
|
|
197917
|
-
blockPos: candidate.pos
|
|
197918
|
-
};
|
|
197919
|
-
return [buildRangeTarget2(editor, step, addr, candidate)];
|
|
197920
|
-
}
|
|
197921
|
-
function resolveV2TextRef2(editor, index2, step, refData) {
|
|
197922
|
-
const currentRevision = getRevision2(editor);
|
|
197923
|
-
if (refData.rev !== currentRevision) {
|
|
197924
|
-
throw planError2("REVISION_MISMATCH", `text ref was created at revision "${refData.rev}" but document is at "${currentRevision}"`, step.id, { refRevision: refData.rev, currentRevision });
|
|
197925
|
-
}
|
|
197926
|
-
if (!refData.segments?.length)
|
|
197927
|
-
return [];
|
|
197928
|
-
const segments = refData.segments.map((s2) => ({ blockId: s2.blockId, from: s2.start, to: s2.end }));
|
|
197929
|
-
if (segments.length === 1) {
|
|
197930
|
-
const seg = segments[0];
|
|
197931
|
-
const candidate = index2.candidates.find((c2) => c2.nodeId === seg.blockId);
|
|
197932
|
-
if (!candidate)
|
|
197933
|
-
return [];
|
|
197934
|
-
const blockText = getBlockText2(editor, candidate);
|
|
197935
|
-
const matchText = blockText.slice(seg.from, seg.to);
|
|
197936
|
-
const addr = {
|
|
197937
|
-
blockId: seg.blockId,
|
|
197938
|
-
from: seg.from,
|
|
197939
|
-
to: seg.to,
|
|
197940
|
-
text: matchText,
|
|
197941
|
-
marks: [],
|
|
197942
|
-
blockPos: candidate.pos
|
|
197943
|
-
};
|
|
197944
|
-
const target = buildRangeTarget2(editor, step, addr, candidate);
|
|
197945
|
-
target.matchId = refData.matchId;
|
|
197946
|
-
return [target];
|
|
197947
|
-
}
|
|
197948
|
-
return [buildSpanTarget2(editor, index2, step, segments, refData.matchId)];
|
|
197949
|
-
}
|
|
197950
198536
|
function resolveV3TextRef2(editor, index2, step, refData) {
|
|
197951
198537
|
const currentRevision = getRevision2(editor);
|
|
197952
198538
|
if (refData.rev !== currentRevision) {
|
|
@@ -197979,13 +198565,10 @@ function resolveV3TextRef2(editor, index2, step, refData) {
|
|
|
197979
198565
|
function resolveTextRef2(editor, index2, step, ref3) {
|
|
197980
198566
|
const encoded = ref3.slice(5);
|
|
197981
198567
|
const payload = decodeTextRefPayload2(encoded, step.id);
|
|
197982
|
-
if (isV3Ref2(payload)) {
|
|
197983
|
-
|
|
198568
|
+
if (!isV3Ref2(payload)) {
|
|
198569
|
+
throw planError2("INVALID_INPUT", "only V3 text refs are supported", step.id);
|
|
197984
198570
|
}
|
|
197985
|
-
|
|
197986
|
-
return resolveV2TextRef2(editor, index2, step, payload);
|
|
197987
|
-
}
|
|
197988
|
-
return resolveV1TextRef2(editor, index2, step, payload);
|
|
198571
|
+
return resolveV3TextRef2(editor, index2, step, payload);
|
|
197989
198572
|
}
|
|
197990
198573
|
function resolveBlockRef2(editor, index2, step, ref3) {
|
|
197991
198574
|
const candidate = index2.candidates.find((c2) => c2.nodeId === ref3);
|
|
@@ -198011,9 +198594,6 @@ function dispatchRefHandler2(editor, index2, step, ref3) {
|
|
|
198011
198594
|
return resolveBlockRef2(editor, index2, step, ref3);
|
|
198012
198595
|
}
|
|
198013
198596
|
function resolveRefTargets2(editor, index2, step, where) {
|
|
198014
|
-
if (where.require !== undefined && where.require !== "exactlyOne") {
|
|
198015
|
-
throw planError2("INVALID_INPUT", `ref-based targeting only accepts require: 'exactlyOne' (received '${where.require}')`, step.id);
|
|
198016
|
-
}
|
|
198017
198597
|
return dispatchRefHandler2(editor, index2, step, where.ref);
|
|
198018
198598
|
}
|
|
198019
198599
|
function resolveStepTargets2(editor, index2, step) {
|
|
@@ -199223,6 +199803,7 @@ function toCommentInfo2(entry, options = {}) {
|
|
|
199223
199803
|
isInternal: typeof entry.isInternal === "boolean" ? entry.isInternal : undefined,
|
|
199224
199804
|
status,
|
|
199225
199805
|
target: options.target,
|
|
199806
|
+
anchoredText: options.anchoredText,
|
|
199226
199807
|
createdTime: typeof entry.createdTime === "number" ? entry.createdTime : undefined,
|
|
199227
199808
|
creatorName: typeof entry.creatorName === "string" ? entry.creatorName : undefined,
|
|
199228
199809
|
creatorEmail: typeof entry.creatorEmail === "string" ? entry.creatorEmail : undefined
|
|
@@ -199359,7 +199940,64 @@ function resolveCommentIdentity2(editor, commentId) {
|
|
|
199359
199940
|
anchors
|
|
199360
199941
|
};
|
|
199361
199942
|
}
|
|
199362
|
-
function
|
|
199943
|
+
function canonicalizeAnchors2(sorted) {
|
|
199944
|
+
if (sorted.length === 0)
|
|
199945
|
+
return [];
|
|
199946
|
+
const result = [];
|
|
199947
|
+
let current = {
|
|
199948
|
+
blockId: sorted[0].target.blockId,
|
|
199949
|
+
range: { start: sorted[0].target.range.start, end: sorted[0].target.range.end },
|
|
199950
|
+
pos: sorted[0].pos,
|
|
199951
|
+
end: sorted[0].end
|
|
199952
|
+
};
|
|
199953
|
+
for (let i4 = 1;i4 < sorted.length; i4++) {
|
|
199954
|
+
const anchor = sorted[i4];
|
|
199955
|
+
const sameBlock = anchor.target.blockId === current.blockId;
|
|
199956
|
+
const overlapsOrAdjacent = anchor.target.range.start <= current.range.end;
|
|
199957
|
+
if (sameBlock && overlapsOrAdjacent) {
|
|
199958
|
+
current.range.end = Math.max(current.range.end, anchor.target.range.end);
|
|
199959
|
+
current.end = Math.max(current.end, anchor.end);
|
|
199960
|
+
} else {
|
|
199961
|
+
result.push(current);
|
|
199962
|
+
current = {
|
|
199963
|
+
blockId: anchor.target.blockId,
|
|
199964
|
+
range: { start: anchor.target.range.start, end: anchor.target.range.end },
|
|
199965
|
+
pos: anchor.pos,
|
|
199966
|
+
end: anchor.end
|
|
199967
|
+
};
|
|
199968
|
+
}
|
|
199969
|
+
}
|
|
199970
|
+
result.push(current);
|
|
199971
|
+
return result;
|
|
199972
|
+
}
|
|
199973
|
+
function extractSegmentText2(editor, pos, end) {
|
|
199974
|
+
try {
|
|
199975
|
+
const raw = editor.state.doc.textBetween(pos, end, " ", "");
|
|
199976
|
+
const cleaned = raw.replace(/\ufffc/g, "").trim();
|
|
199977
|
+
return cleaned.length > 0 ? cleaned : undefined;
|
|
199978
|
+
} catch {
|
|
199979
|
+
return;
|
|
199980
|
+
}
|
|
199981
|
+
}
|
|
199982
|
+
function buildAnchoredText2(editor, canonical) {
|
|
199983
|
+
const parts = [];
|
|
199984
|
+
for (const anchor of canonical) {
|
|
199985
|
+
const text4 = extractSegmentText2(editor, anchor.pos, anchor.end);
|
|
199986
|
+
if (text4)
|
|
199987
|
+
parts.push(text4);
|
|
199988
|
+
}
|
|
199989
|
+
return parts.length > 0 ? normalizeExcerpt2(parts.join(" ")) : undefined;
|
|
199990
|
+
}
|
|
199991
|
+
function buildTextTarget2(canonical) {
|
|
199992
|
+
if (canonical.length === 0)
|
|
199993
|
+
return;
|
|
199994
|
+
const segments = canonical.map((a2) => ({
|
|
199995
|
+
blockId: a2.blockId,
|
|
199996
|
+
range: { start: a2.range.start, end: a2.range.end }
|
|
199997
|
+
}));
|
|
199998
|
+
return { kind: "text", segments };
|
|
199999
|
+
}
|
|
200000
|
+
function mergeAnchorData2(editor, infosById, anchors) {
|
|
199363
200001
|
const grouped = new Map;
|
|
199364
200002
|
for (const anchor of anchors) {
|
|
199365
200003
|
const group = grouped.get(anchor.commentId) ?? [];
|
|
@@ -199368,28 +200006,34 @@ function mergeAnchorData2(infosById, anchors) {
|
|
|
199368
200006
|
}
|
|
199369
200007
|
for (const [commentId, commentAnchors] of grouped.entries()) {
|
|
199370
200008
|
const sorted = [...commentAnchors].sort((a2, b3) => a2.pos === b3.pos ? a2.end - b3.end : a2.pos - b3.pos);
|
|
199371
|
-
const
|
|
200009
|
+
const firstAnchor = sorted[0];
|
|
199372
200010
|
const status = sorted.every((anchor) => anchor.status === "resolved") ? "resolved" : "open";
|
|
200011
|
+
const canonical = canonicalizeAnchors2(sorted);
|
|
200012
|
+
const target = buildTextTarget2(canonical);
|
|
200013
|
+
const anchoredText = buildAnchoredText2(editor, canonical);
|
|
199373
200014
|
const existing = infosById.get(commentId);
|
|
199374
200015
|
if (existing) {
|
|
199375
|
-
if (!existing.target)
|
|
199376
|
-
existing.target =
|
|
199377
|
-
if (!existing.importedId &&
|
|
199378
|
-
existing.importedId =
|
|
199379
|
-
if (existing.isInternal == null &&
|
|
199380
|
-
existing.isInternal =
|
|
200016
|
+
if (!existing.target && target)
|
|
200017
|
+
existing.target = target;
|
|
200018
|
+
if (!existing.importedId && firstAnchor.importedId)
|
|
200019
|
+
existing.importedId = firstAnchor.importedId;
|
|
200020
|
+
if (existing.isInternal == null && firstAnchor.isInternal != null)
|
|
200021
|
+
existing.isInternal = firstAnchor.isInternal;
|
|
199381
200022
|
if (status === "open")
|
|
199382
200023
|
existing.status = "open";
|
|
200024
|
+
if (existing.anchoredText == null && anchoredText != null)
|
|
200025
|
+
existing.anchoredText = anchoredText;
|
|
199383
200026
|
continue;
|
|
199384
200027
|
}
|
|
199385
200028
|
infosById.set(commentId, toCommentInfo2({
|
|
199386
200029
|
commentId,
|
|
199387
|
-
importedId:
|
|
199388
|
-
isInternal:
|
|
200030
|
+
importedId: firstAnchor.importedId,
|
|
200031
|
+
isInternal: firstAnchor.isInternal,
|
|
199389
200032
|
isDone: status === "resolved"
|
|
199390
200033
|
}, {
|
|
199391
|
-
target
|
|
199392
|
-
status
|
|
200034
|
+
target,
|
|
200035
|
+
status,
|
|
200036
|
+
anchoredText
|
|
199393
200037
|
}));
|
|
199394
200038
|
}
|
|
199395
200039
|
}
|
|
@@ -199402,15 +200046,33 @@ function buildCommentInfos2(editor) {
|
|
|
199402
200046
|
continue;
|
|
199403
200047
|
infosById.set(commentId, toCommentInfo2({ ...entry, commentId }));
|
|
199404
200048
|
}
|
|
199405
|
-
mergeAnchorData2(infosById, listCommentAnchorsSafe2(editor));
|
|
200049
|
+
mergeAnchorData2(editor, infosById, listCommentAnchorsSafe2(editor));
|
|
200050
|
+
for (const info of infosById.values()) {
|
|
200051
|
+
if (info.target != null && info.anchoredText != null || !info.parentCommentId)
|
|
200052
|
+
continue;
|
|
200053
|
+
const visited = new Set;
|
|
200054
|
+
let cursor = info;
|
|
200055
|
+
while (cursor?.parentCommentId && !visited.has(cursor.parentCommentId)) {
|
|
200056
|
+
visited.add(cursor.parentCommentId);
|
|
200057
|
+
const ancestor = infosById.get(cursor.parentCommentId);
|
|
200058
|
+
if (ancestor?.target != null) {
|
|
200059
|
+
if (info.target == null)
|
|
200060
|
+
info.target = ancestor.target;
|
|
200061
|
+
if (info.anchoredText == null && ancestor.anchoredText != null)
|
|
200062
|
+
info.anchoredText = ancestor.anchoredText;
|
|
200063
|
+
break;
|
|
200064
|
+
}
|
|
200065
|
+
cursor = ancestor;
|
|
200066
|
+
}
|
|
200067
|
+
}
|
|
199406
200068
|
const infos = Array.from(infosById.values());
|
|
199407
200069
|
infos.sort((left2, right2) => {
|
|
199408
200070
|
const leftCreated = left2.createdTime ?? 0;
|
|
199409
200071
|
const rightCreated = right2.createdTime ?? 0;
|
|
199410
200072
|
if (leftCreated !== rightCreated)
|
|
199411
200073
|
return leftCreated - rightCreated;
|
|
199412
|
-
const leftStart = left2.target?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
199413
|
-
const rightStart = right2.target?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
200074
|
+
const leftStart = left2.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
200075
|
+
const rightStart = right2.target?.segments[0]?.range.start ?? Number.MAX_SAFE_INTEGER;
|
|
199414
200076
|
if (leftStart !== rightStart)
|
|
199415
200077
|
return leftStart - rightStart;
|
|
199416
200078
|
return left2.commentId.localeCompare(right2.commentId);
|
|
@@ -199418,7 +200080,7 @@ function buildCommentInfos2(editor) {
|
|
|
199418
200080
|
return infos;
|
|
199419
200081
|
}
|
|
199420
200082
|
function addCommentHandler2(editor, input2, options) {
|
|
199421
|
-
requireEditorCommand2(editor.commands?.addComment, "comments.
|
|
200083
|
+
requireEditorCommand2(editor.commands?.addComment, "comments.create (addComment)");
|
|
199422
200084
|
if (input2.target.range.start === input2.target.range.end) {
|
|
199423
200085
|
return {
|
|
199424
200086
|
success: false,
|
|
@@ -199455,7 +200117,7 @@ function addCommentHandler2(editor, input2, options) {
|
|
|
199455
200117
|
}
|
|
199456
200118
|
const commentId = v42();
|
|
199457
200119
|
const receipt2 = executeDomainCommand2(editor, () => {
|
|
199458
|
-
const addComment = requireEditorCommand2(editor.commands?.addComment, "comments.
|
|
200120
|
+
const addComment = requireEditorCommand2(editor.commands?.addComment, "comments.create (addComment)");
|
|
199459
200121
|
const didInsert = addComment({ content: input2.text, isInternal: false, commentId }) === true;
|
|
199460
200122
|
if (didInsert) {
|
|
199461
200123
|
clearIndexCache2(editor);
|
|
@@ -199488,7 +200150,7 @@ function addCommentHandler2(editor, input2, options) {
|
|
|
199488
200150
|
return { success: true, inserted: [toCommentAddress2(commentId)] };
|
|
199489
200151
|
}
|
|
199490
200152
|
function editCommentHandler2(editor, input2, options) {
|
|
199491
|
-
const editComment = requireEditorCommand2(editor.commands?.editComment, "comments.
|
|
200153
|
+
const editComment = requireEditorCommand2(editor.commands?.editComment, "comments.patch (editComment)");
|
|
199492
200154
|
const store = getCommentEntityStore2(editor);
|
|
199493
200155
|
const identity2 = resolveCommentIdentity2(editor, input2.commentId);
|
|
199494
200156
|
const existing = findCommentEntity2(store, identity2.commentId);
|
|
@@ -199523,7 +200185,7 @@ function editCommentHandler2(editor, input2, options) {
|
|
|
199523
200185
|
return { success: true, updated: [toCommentAddress2(identity2.commentId)] };
|
|
199524
200186
|
}
|
|
199525
200187
|
function replyToCommentHandler2(editor, input2, options) {
|
|
199526
|
-
const addCommentReply = requireEditorCommand2(editor.commands?.addCommentReply, "comments.
|
|
200188
|
+
const addCommentReply = requireEditorCommand2(editor.commands?.addCommentReply, "comments.create (addCommentReply)");
|
|
199527
200189
|
if (!input2.parentCommentId) {
|
|
199528
200190
|
return {
|
|
199529
200191
|
success: false,
|
|
@@ -199571,7 +200233,7 @@ function replyToCommentHandler2(editor, input2, options) {
|
|
|
199571
200233
|
return { success: true, inserted: [toCommentAddress2(replyId)] };
|
|
199572
200234
|
}
|
|
199573
200235
|
function moveCommentHandler2(editor, input2, options) {
|
|
199574
|
-
const moveComment = requireEditorCommand2(editor.commands?.moveComment, "comments.
|
|
200236
|
+
const moveComment = requireEditorCommand2(editor.commands?.moveComment, "comments.patch (moveComment)");
|
|
199575
200237
|
if (input2.target.range.start === input2.target.range.end) {
|
|
199576
200238
|
return {
|
|
199577
200239
|
success: false,
|
|
@@ -199621,7 +200283,7 @@ function moveCommentHandler2(editor, input2, options) {
|
|
|
199621
200283
|
return { success: true, updated: [toCommentAddress2(identity2.commentId)] };
|
|
199622
200284
|
}
|
|
199623
200285
|
function resolveCommentHandler2(editor, input2, options) {
|
|
199624
|
-
const resolveComment = requireEditorCommand2(editor.commands?.resolveComment, "comments.
|
|
200286
|
+
const resolveComment = requireEditorCommand2(editor.commands?.resolveComment, "comments.patch (resolveComment)");
|
|
199625
200287
|
const store = getCommentEntityStore2(editor);
|
|
199626
200288
|
const identity2 = resolveCommentIdentity2(editor, input2.commentId);
|
|
199627
200289
|
const existing = findCommentEntity2(store, identity2.commentId);
|
|
@@ -199788,6 +200450,7 @@ function listCommentsHandler2(editor, query2) {
|
|
|
199788
200450
|
isInternal,
|
|
199789
200451
|
status,
|
|
199790
200452
|
target,
|
|
200453
|
+
anchoredText,
|
|
199791
200454
|
createdTime,
|
|
199792
200455
|
creatorName,
|
|
199793
200456
|
creatorEmail,
|
|
@@ -199801,6 +200464,7 @@ function listCommentsHandler2(editor, query2) {
|
|
|
199801
200464
|
isInternal,
|
|
199802
200465
|
status,
|
|
199803
200466
|
target,
|
|
200467
|
+
anchoredText,
|
|
199804
200468
|
createdTime,
|
|
199805
200469
|
creatorName,
|
|
199806
200470
|
creatorEmail
|
|
@@ -200821,6 +201485,106 @@ var init_find_adapter = __esm(() => {
|
|
|
200821
201485
|
init_revision_tracker();
|
|
200822
201486
|
});
|
|
200823
201487
|
|
|
201488
|
+
// ../../packages/super-editor/src/document-api-adapters/plan-engine/format-value-wrappers.ts
|
|
201489
|
+
function resolveFormatTarget2(editor, target, operation) {
|
|
201490
|
+
const range = resolveTextTarget2(editor, target);
|
|
201491
|
+
if (!range) {
|
|
201492
|
+
throw new DocumentApiAdapterError3("TARGET_NOT_FOUND", `${operation} target could not be resolved.`, { target });
|
|
201493
|
+
}
|
|
201494
|
+
const text4 = readTextAtResolvedRange2(editor, range);
|
|
201495
|
+
const resolution = buildTextMutationResolution2({ requestedTarget: target, target, range, text: text4 });
|
|
201496
|
+
return { target, from: range.from, to: range.to, resolution };
|
|
201497
|
+
}
|
|
201498
|
+
function collapsedTargetFailure2(resolution, operation) {
|
|
201499
|
+
return {
|
|
201500
|
+
success: false,
|
|
201501
|
+
resolution,
|
|
201502
|
+
failure: { code: "INVALID_TARGET", message: `${operation} requires a non-collapsed target range.` }
|
|
201503
|
+
};
|
|
201504
|
+
}
|
|
201505
|
+
function noOpFailure2(resolution, operation) {
|
|
201506
|
+
return {
|
|
201507
|
+
success: false,
|
|
201508
|
+
resolution,
|
|
201509
|
+
failure: { code: "NO_OP", message: `${operation} produced no change.` }
|
|
201510
|
+
};
|
|
201511
|
+
}
|
|
201512
|
+
function inlineValueFormatWrapper2(editor, target, value, options, config2) {
|
|
201513
|
+
rejectTrackedMode2(config2.operation, options);
|
|
201514
|
+
const resolved = resolveFormatTarget2(editor, target, config2.operation);
|
|
201515
|
+
if (resolved.from === resolved.to) {
|
|
201516
|
+
return collapsedTargetFailure2(resolved.resolution, config2.operation);
|
|
201517
|
+
}
|
|
201518
|
+
requireSchemaMark2(editor, "textStyle", config2.operation);
|
|
201519
|
+
const setTextSelection2 = requireEditorCommand2(editor.commands?.setTextSelection, `${config2.operation} (setTextSelection)`);
|
|
201520
|
+
const activeCommand = value !== null ? config2.setCommand : config2.unsetCommand;
|
|
201521
|
+
requireEditorCommand2(editor.commands?.[activeCommand], `${config2.operation} (${activeCommand})`);
|
|
201522
|
+
if (options?.dryRun) {
|
|
201523
|
+
return { success: true, resolution: resolved.resolution };
|
|
201524
|
+
}
|
|
201525
|
+
const receipt2 = executeDomainCommand2(editor, () => {
|
|
201526
|
+
setTextSelection2({ from: resolved.from, to: resolved.to });
|
|
201527
|
+
const cmd = editor.commands[activeCommand];
|
|
201528
|
+
return value !== null ? cmd(value) : cmd();
|
|
201529
|
+
}, { expectedRevision: options?.expectedRevision });
|
|
201530
|
+
if (receipt2.steps[0]?.effect !== "changed") {
|
|
201531
|
+
return noOpFailure2(resolved.resolution, config2.operation);
|
|
201532
|
+
}
|
|
201533
|
+
return { success: true, resolution: resolved.resolution };
|
|
201534
|
+
}
|
|
201535
|
+
function formatFontSizeWrapper2(editor, input2, options) {
|
|
201536
|
+
return inlineValueFormatWrapper2(editor, input2.target, input2.value, options, {
|
|
201537
|
+
operation: "format.fontSize",
|
|
201538
|
+
setCommand: "setFontSize",
|
|
201539
|
+
unsetCommand: "unsetFontSize"
|
|
201540
|
+
});
|
|
201541
|
+
}
|
|
201542
|
+
function formatFontFamilyWrapper2(editor, input2, options) {
|
|
201543
|
+
return inlineValueFormatWrapper2(editor, input2.target, input2.value, options, {
|
|
201544
|
+
operation: "format.fontFamily",
|
|
201545
|
+
setCommand: "setFontFamily",
|
|
201546
|
+
unsetCommand: "unsetFontFamily"
|
|
201547
|
+
});
|
|
201548
|
+
}
|
|
201549
|
+
function formatColorWrapper2(editor, input2, options) {
|
|
201550
|
+
return inlineValueFormatWrapper2(editor, input2.target, input2.value, options, {
|
|
201551
|
+
operation: "format.color",
|
|
201552
|
+
setCommand: "setColor",
|
|
201553
|
+
unsetCommand: "unsetColor"
|
|
201554
|
+
});
|
|
201555
|
+
}
|
|
201556
|
+
function formatAlignWrapper2(editor, input2, options) {
|
|
201557
|
+
const operation = "format.align";
|
|
201558
|
+
rejectTrackedMode2(operation, options);
|
|
201559
|
+
const resolved = resolveFormatTarget2(editor, input2.target, operation);
|
|
201560
|
+
const setTextSelection2 = requireEditorCommand2(editor.commands?.setTextSelection, `${operation} (setTextSelection)`);
|
|
201561
|
+
if (input2.alignment !== null) {
|
|
201562
|
+
requireEditorCommand2(editor.commands?.setTextAlign, `${operation} (setTextAlign)`);
|
|
201563
|
+
} else {
|
|
201564
|
+
requireEditorCommand2(editor.commands?.unsetTextAlign, `${operation} (unsetTextAlign)`);
|
|
201565
|
+
}
|
|
201566
|
+
if (options?.dryRun) {
|
|
201567
|
+
return { success: true, resolution: resolved.resolution };
|
|
201568
|
+
}
|
|
201569
|
+
const receipt2 = executeDomainCommand2(editor, () => {
|
|
201570
|
+
setTextSelection2({ from: resolved.from, to: resolved.to });
|
|
201571
|
+
if (input2.alignment !== null) {
|
|
201572
|
+
return editor.commands.setTextAlign(input2.alignment);
|
|
201573
|
+
}
|
|
201574
|
+
return editor.commands.unsetTextAlign();
|
|
201575
|
+
}, { expectedRevision: options?.expectedRevision });
|
|
201576
|
+
if (receipt2.steps[0]?.effect !== "changed") {
|
|
201577
|
+
return noOpFailure2(resolved.resolution, operation);
|
|
201578
|
+
}
|
|
201579
|
+
return { success: true, resolution: resolved.resolution };
|
|
201580
|
+
}
|
|
201581
|
+
var init_format_value_wrappers = __esm(() => {
|
|
201582
|
+
init_errors3();
|
|
201583
|
+
init_adapter_utils();
|
|
201584
|
+
init_mutation_helpers();
|
|
201585
|
+
init_plan_wrappers();
|
|
201586
|
+
});
|
|
201587
|
+
|
|
200824
201588
|
// ../../packages/super-editor/src/document-api-adapters/get-node-adapter.ts
|
|
200825
201589
|
function findBlocksByTypeAndId2(blockIndex, nodeType, nodeId) {
|
|
200826
201590
|
const byIdMatch = blockIndex.byId.get(`${nodeType}:${nodeId}`);
|
|
@@ -209685,7 +210449,7 @@ var translator54;
|
|
|
209685
210449
|
var init_jc_translator = __esm(() => {
|
|
209686
210450
|
init_utils();
|
|
209687
210451
|
init_node_translator2();
|
|
209688
|
-
translator54 = NodeTranslator3.from(createSingleAttrPropertyHandler2("w:jc", "justification"));
|
|
210452
|
+
translator54 = NodeTranslator3.from(createSingleAttrPropertyHandler2("w:jc", "justification", "w:val", (v2) => v2 === "both" ? "justify" : v2, (v2) => v2 === "justify" ? "both" : v2));
|
|
209689
210453
|
});
|
|
209690
210454
|
|
|
209691
210455
|
// ../../packages/super-editor/src/core/super-converter/v3/handlers/w/jc/index.js
|
|
@@ -235373,7 +236137,11 @@ function getDocumentApiAdapters2(editor) {
|
|
|
235373
236137
|
write: (request, options) => writeWrapper2(editor, request, options)
|
|
235374
236138
|
},
|
|
235375
236139
|
format: {
|
|
235376
|
-
apply: (input2, options) => styleApplyWrapper2(editor, input2, options)
|
|
236140
|
+
apply: (input2, options) => styleApplyWrapper2(editor, input2, options),
|
|
236141
|
+
fontSize: (input2, options) => formatFontSizeWrapper2(editor, input2, options),
|
|
236142
|
+
fontFamily: (input2, options) => formatFontFamilyWrapper2(editor, input2, options),
|
|
236143
|
+
color: (input2, options) => formatColorWrapper2(editor, input2, options),
|
|
236144
|
+
align: (input2, options) => formatAlignWrapper2(editor, input2, options)
|
|
235377
236145
|
},
|
|
235378
236146
|
trackChanges: {
|
|
235379
236147
|
list: (query2) => trackChangesListWrapper2(editor, query2),
|
|
@@ -235412,6 +236180,7 @@ var init_document_api_adapters = __esm(() => {
|
|
|
235412
236180
|
init_create_wrappers();
|
|
235413
236181
|
init_find_adapter();
|
|
235414
236182
|
init_plan_wrappers();
|
|
236183
|
+
init_format_value_wrappers();
|
|
235415
236184
|
init_get_node_adapter();
|
|
235416
236185
|
init_info_adapter();
|
|
235417
236186
|
init_lists_wrappers();
|
|
@@ -238149,12 +238918,21 @@ async function readDocumentSource(doc4, io) {
|
|
|
238149
238918
|
};
|
|
238150
238919
|
}
|
|
238151
238920
|
async function openDocument(doc4, io, options = {}) {
|
|
238152
|
-
|
|
238921
|
+
let source;
|
|
238922
|
+
let meta2;
|
|
238923
|
+
if (doc4 != null) {
|
|
238924
|
+
const result = await readDocumentSource(doc4, io);
|
|
238925
|
+
source = result.bytes;
|
|
238926
|
+
meta2 = result.meta;
|
|
238927
|
+
} else {
|
|
238928
|
+
source = Buffer.from(BLANK_DOCX_BASE64, "base64");
|
|
238929
|
+
meta2 = { source: "blank", byteLength: source.byteLength };
|
|
238930
|
+
}
|
|
238153
238931
|
let editor;
|
|
238154
238932
|
try {
|
|
238155
238933
|
const isTest = false;
|
|
238156
|
-
editor = await Editor.open(Buffer.from(
|
|
238157
|
-
documentId: options.documentId ?? meta2.path ?? "
|
|
238934
|
+
editor = await Editor.open(Buffer.from(source), {
|
|
238935
|
+
documentId: options.documentId ?? meta2.path ?? "blank.docx",
|
|
238158
238936
|
user: { id: "cli", name: "CLI" },
|
|
238159
238937
|
...isTest ? { telemetry: { enabled: false } } : {},
|
|
238160
238938
|
ydoc: options.ydoc,
|
|
@@ -238273,6 +239051,7 @@ async function exportToPath(editor, outputPath, force = false) {
|
|
|
238273
239051
|
}
|
|
238274
239052
|
var init_document = __esm(() => {
|
|
238275
239053
|
init_super_editor_es();
|
|
239054
|
+
init_blank_docx();
|
|
238276
239055
|
init_document_api_adapters();
|
|
238277
239056
|
init_src();
|
|
238278
239057
|
init_collaboration();
|
|
@@ -239310,6 +240089,10 @@ var init_special_handlers = __esm(() => {
|
|
|
239310
240089
|
replace: flattenTextMutationReceipt,
|
|
239311
240090
|
delete: flattenTextMutationReceipt,
|
|
239312
240091
|
"format.apply": flattenTextMutationReceipt,
|
|
240092
|
+
"format.fontSize": flattenTextMutationReceipt,
|
|
240093
|
+
"format.fontFamily": flattenTextMutationReceipt,
|
|
240094
|
+
"format.color": flattenTextMutationReceipt,
|
|
240095
|
+
"format.align": flattenTextMutationReceipt,
|
|
239313
240096
|
getNodeById: (result, context) => {
|
|
239314
240097
|
const record = asRecord4(result);
|
|
239315
240098
|
const inputRecord = asRecord4(context.apiInput);
|
|
@@ -239414,6 +240197,10 @@ var init_invoke_input = __esm(() => {
|
|
|
239414
240197
|
"replace",
|
|
239415
240198
|
"delete",
|
|
239416
240199
|
"format.apply",
|
|
240200
|
+
"format.fontSize",
|
|
240201
|
+
"format.fontFamily",
|
|
240202
|
+
"format.color",
|
|
240203
|
+
"format.align",
|
|
239417
240204
|
"comments.create",
|
|
239418
240205
|
"comments.patch"
|
|
239419
240206
|
]);
|
|
@@ -240554,6 +241341,10 @@ var init_operation_params = __esm(() => {
|
|
|
240554
241341
|
"doc.replace": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240555
241342
|
"doc.delete": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240556
241343
|
"doc.format.apply": [...TEXT_TARGET_FLAT_PARAMS],
|
|
241344
|
+
"doc.format.fontSize": [...TEXT_TARGET_FLAT_PARAMS],
|
|
241345
|
+
"doc.format.fontFamily": [...TEXT_TARGET_FLAT_PARAMS],
|
|
241346
|
+
"doc.format.color": [...TEXT_TARGET_FLAT_PARAMS],
|
|
241347
|
+
"doc.format.align": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240557
241348
|
"doc.comments.create": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240558
241349
|
"doc.comments.patch": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240559
241350
|
"doc.lists.insert": [
|
|
@@ -240584,9 +241375,9 @@ var init_operation_params = __esm(() => {
|
|
|
240584
241375
|
"doc.open": {
|
|
240585
241376
|
command: "open",
|
|
240586
241377
|
positionalParams: ["doc"],
|
|
240587
|
-
docRequirement: "
|
|
241378
|
+
docRequirement: "none",
|
|
240588
241379
|
params: [
|
|
240589
|
-
{ name: "doc", kind: "doc", type: "string"
|
|
241380
|
+
{ name: "doc", kind: "doc", type: "string" },
|
|
240590
241381
|
SESSION_PARAM,
|
|
240591
241382
|
{ name: "collaboration", kind: "jsonFlag", flag: "collaboration-json", type: "json" },
|
|
240592
241383
|
{ name: "collabDocumentId", kind: "flag", flag: "collab-document-id", type: "string" },
|
|
@@ -241868,20 +242659,20 @@ async function runOpen(tokens, context) {
|
|
|
241868
242659
|
command: "open",
|
|
241869
242660
|
data: {
|
|
241870
242661
|
usage: [
|
|
241871
|
-
"superdoc open
|
|
241872
|
-
'superdoc open
|
|
242662
|
+
"superdoc open [doc] [--session <id>]",
|
|
242663
|
+
'superdoc open [doc] --collaboration-json "{...}" [--session <id>]'
|
|
241873
242664
|
]
|
|
241874
242665
|
},
|
|
241875
242666
|
pretty: [
|
|
241876
242667
|
"Usage:",
|
|
241877
|
-
" superdoc open
|
|
241878
|
-
' superdoc open
|
|
242668
|
+
" superdoc open [doc] [--session <id>]",
|
|
242669
|
+
' superdoc open [doc] --collaboration-json "{...}" [--session <id>]'
|
|
241879
242670
|
].join(`
|
|
241880
242671
|
`)
|
|
241881
242672
|
};
|
|
241882
242673
|
}
|
|
241883
|
-
const { doc: doc4 } =
|
|
241884
|
-
const sessionId = context.sessionId ?? generateSessionId(doc4);
|
|
242674
|
+
const { doc: doc4 } = resolveDocArg(parsed, "open");
|
|
242675
|
+
const sessionId = context.sessionId ?? generateSessionId(doc4 ?? "blank");
|
|
241885
242676
|
const collaborationPayload = await resolveJsonInput(parsed, "collaboration");
|
|
241886
242677
|
const collabUrl = getStringOption(parsed, "collab-url");
|
|
241887
242678
|
const collabDocumentId = getStringOption(parsed, "collab-document-id");
|
|
@@ -241917,6 +242708,9 @@ async function runOpen(tokens, context) {
|
|
|
241917
242708
|
revision: existing.revision
|
|
241918
242709
|
});
|
|
241919
242710
|
}
|
|
242711
|
+
if (collaboration && doc4 == null) {
|
|
242712
|
+
throw new CliError("MISSING_REQUIRED", "open: a document path is required when using collaboration.");
|
|
242713
|
+
}
|
|
241920
242714
|
const opened = collaboration ? await openCollaborativeDocument(doc4, context.io, collaboration) : await openDocument(doc4, context.io);
|
|
241921
242715
|
let adoptedToHostPool = false;
|
|
241922
242716
|
try {
|
|
@@ -241953,7 +242747,7 @@ async function runOpen(tokens, context) {
|
|
|
241953
242747
|
openedAt: metadata.openedAt,
|
|
241954
242748
|
updatedAt: metadata.updatedAt
|
|
241955
242749
|
},
|
|
241956
|
-
pretty: `Opened ${metadata.sourcePath ?? "<stdin>"} in context ${metadata.contextId} (${metadata.sessionType})`
|
|
242750
|
+
pretty: `Opened ${metadata.sourcePath ?? (metadata.source === "blank" ? "<blank>" : "<stdin>")} in context ${metadata.contextId} (${metadata.sessionType})`
|
|
241957
242751
|
};
|
|
241958
242752
|
} finally {
|
|
241959
242753
|
if (!adoptedToHostPool) {
|