@superdoc-dev/cli 0.2.0-next.4 → 0.2.0-next.6
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 +1163 -397
- package/package.json +8 -8
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;
|
|
@@ -662,6 +652,62 @@ var init_operation_definitions = __esm(() => {
|
|
|
662
652
|
referenceDocPath: "format/apply.mdx",
|
|
663
653
|
referenceGroup: "format"
|
|
664
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
|
+
},
|
|
665
711
|
"create.paragraph": {
|
|
666
712
|
memberPath: "create.paragraph",
|
|
667
713
|
description: "Create a new paragraph at the target position.",
|
|
@@ -973,6 +1019,228 @@ var init_command_catalog = __esm(() => {
|
|
|
973
1019
|
OPERATION_REQUIRES_DOCUMENT_CONTEXT_MAP = projectFromDefinitions((_id, entry) => entry.requiresDocumentContext);
|
|
974
1020
|
});
|
|
975
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
|
+
|
|
976
1244
|
// ../../packages/document-api/src/contract/schemas.ts
|
|
977
1245
|
function objectSchema(properties, required = []) {
|
|
978
1246
|
const schema = {
|
|
@@ -1138,6 +1406,7 @@ var init_schemas = __esm(() => {
|
|
|
1138
1406
|
init_types2();
|
|
1139
1407
|
init_base();
|
|
1140
1408
|
init_style_policy_types();
|
|
1409
|
+
init_format();
|
|
1141
1410
|
nodeTypeValues = NODE_TYPES;
|
|
1142
1411
|
blockNodeTypeValues = BLOCK_NODE_TYPES;
|
|
1143
1412
|
inlineNodeTypeValues = INLINE_NODE_TYPES;
|
|
@@ -1601,6 +1870,42 @@ var init_schemas = __esm(() => {
|
|
|
1601
1870
|
success: textMutationSuccessSchema,
|
|
1602
1871
|
failure: textMutationFailureSchemaFor("format.apply")
|
|
1603
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
|
+
},
|
|
1604
1909
|
"create.paragraph": {
|
|
1605
1910
|
input: objectSchema({
|
|
1606
1911
|
at: {
|
|
@@ -1948,54 +2253,6 @@ var init_capabilities = __esm(() => {
|
|
|
1948
2253
|
];
|
|
1949
2254
|
});
|
|
1950
2255
|
|
|
1951
|
-
// ../../packages/document-api/src/errors.ts
|
|
1952
|
-
var DocumentApiValidationError;
|
|
1953
|
-
var init_errors2 = __esm(() => {
|
|
1954
|
-
DocumentApiValidationError = class DocumentApiValidationError extends Error {
|
|
1955
|
-
code;
|
|
1956
|
-
details;
|
|
1957
|
-
constructor(code, message, details) {
|
|
1958
|
-
super(message);
|
|
1959
|
-
this.name = "DocumentApiValidationError";
|
|
1960
|
-
this.code = code;
|
|
1961
|
-
this.details = details;
|
|
1962
|
-
Object.setPrototypeOf(this, DocumentApiValidationError.prototype);
|
|
1963
|
-
}
|
|
1964
|
-
};
|
|
1965
|
-
});
|
|
1966
|
-
|
|
1967
|
-
// ../../packages/document-api/src/validation-primitives.ts
|
|
1968
|
-
function isRecord(value) {
|
|
1969
|
-
return typeof value === "object" && value != null && !Array.isArray(value);
|
|
1970
|
-
}
|
|
1971
|
-
function isInteger(value) {
|
|
1972
|
-
return typeof value === "number" && Number.isInteger(value);
|
|
1973
|
-
}
|
|
1974
|
-
function isTextAddress(value) {
|
|
1975
|
-
if (!isRecord(value))
|
|
1976
|
-
return false;
|
|
1977
|
-
if (value.kind !== "text")
|
|
1978
|
-
return false;
|
|
1979
|
-
if (typeof value.blockId !== "string")
|
|
1980
|
-
return false;
|
|
1981
|
-
const range = value.range;
|
|
1982
|
-
if (!isRecord(range))
|
|
1983
|
-
return false;
|
|
1984
|
-
if (!isInteger(range.start) || !isInteger(range.end))
|
|
1985
|
-
return false;
|
|
1986
|
-
return range.start <= range.end;
|
|
1987
|
-
}
|
|
1988
|
-
function assertNoUnknownFields(input, allowlist, operationName) {
|
|
1989
|
-
for (const key of Object.keys(input)) {
|
|
1990
|
-
if (!allowlist.has(key)) {
|
|
1991
|
-
throw new DocumentApiValidationError("INVALID_TARGET", `Unknown field "${key}" on ${operationName} input. Allowed fields: ${[...allowlist].join(", ")}.`, { field: key });
|
|
1992
|
-
}
|
|
1993
|
-
}
|
|
1994
|
-
}
|
|
1995
|
-
var init_validation_primitives = __esm(() => {
|
|
1996
|
-
init_errors2();
|
|
1997
|
-
});
|
|
1998
|
-
|
|
1999
2256
|
// ../../packages/document-api/src/comments/comments.ts
|
|
2000
2257
|
function validateCreateCommentInput(input) {
|
|
2001
2258
|
if (!isRecord(input)) {
|
|
@@ -2153,76 +2410,6 @@ function executeFind(adapter, selectorOrQuery, options) {
|
|
|
2153
2410
|
return adapter.find(query2);
|
|
2154
2411
|
}
|
|
2155
2412
|
|
|
2156
|
-
// ../../packages/document-api/src/write/write.ts
|
|
2157
|
-
function normalizeMutationOptions(options) {
|
|
2158
|
-
return {
|
|
2159
|
-
expectedRevision: options?.expectedRevision,
|
|
2160
|
-
changeMode: options?.changeMode ?? "direct",
|
|
2161
|
-
dryRun: options?.dryRun ?? false
|
|
2162
|
-
};
|
|
2163
|
-
}
|
|
2164
|
-
function executeWrite(adapter, request, options) {
|
|
2165
|
-
return adapter.write(request, normalizeMutationOptions(options));
|
|
2166
|
-
}
|
|
2167
|
-
|
|
2168
|
-
// ../../packages/document-api/src/format/format.ts
|
|
2169
|
-
function validateStyleApplyInput(input) {
|
|
2170
|
-
if (!isRecord(input)) {
|
|
2171
|
-
throw new DocumentApiValidationError("INVALID_INPUT", "format.apply input must be a non-null object.");
|
|
2172
|
-
}
|
|
2173
|
-
assertNoUnknownFields(input, STYLE_APPLY_INPUT_ALLOWED_KEYS, "format.apply");
|
|
2174
|
-
const { target, inline } = input;
|
|
2175
|
-
if (target === undefined) {
|
|
2176
|
-
throw new DocumentApiValidationError("INVALID_TARGET", "format.apply requires a target.");
|
|
2177
|
-
}
|
|
2178
|
-
if (!isTextAddress(target)) {
|
|
2179
|
-
throw new DocumentApiValidationError("INVALID_TARGET", "target must be a text address object.", {
|
|
2180
|
-
field: "target",
|
|
2181
|
-
value: target
|
|
2182
|
-
});
|
|
2183
|
-
}
|
|
2184
|
-
if (inline === undefined || inline === null) {
|
|
2185
|
-
throw new DocumentApiValidationError("INVALID_INPUT", "format.apply requires an inline object.");
|
|
2186
|
-
}
|
|
2187
|
-
if (!isRecord(inline)) {
|
|
2188
|
-
throw new DocumentApiValidationError("INVALID_INPUT", "inline must be a non-null object.", {
|
|
2189
|
-
field: "inline",
|
|
2190
|
-
value: inline
|
|
2191
|
-
});
|
|
2192
|
-
}
|
|
2193
|
-
const inlineKeys = Object.keys(inline);
|
|
2194
|
-
if (inlineKeys.length === 0) {
|
|
2195
|
-
throw new DocumentApiValidationError("INVALID_INPUT", "inline must include at least one known key.");
|
|
2196
|
-
}
|
|
2197
|
-
for (const key of inlineKeys) {
|
|
2198
|
-
if (!MARK_KEY_SET.has(key)) {
|
|
2199
|
-
throw new DocumentApiValidationError("INVALID_INPUT", `Unknown inline style key "${key}". Known keys: bold, italic, underline, strike.`, {
|
|
2200
|
-
field: "inline",
|
|
2201
|
-
key
|
|
2202
|
-
});
|
|
2203
|
-
}
|
|
2204
|
-
const value = inline[key];
|
|
2205
|
-
if (typeof value !== "boolean") {
|
|
2206
|
-
throw new DocumentApiValidationError("INVALID_INPUT", `Inline style "${key}" must be a boolean, got ${typeof value}.`, {
|
|
2207
|
-
field: "inline",
|
|
2208
|
-
key,
|
|
2209
|
-
value
|
|
2210
|
-
});
|
|
2211
|
-
}
|
|
2212
|
-
}
|
|
2213
|
-
}
|
|
2214
|
-
function executeStyleApply(adapter, input, options) {
|
|
2215
|
-
validateStyleApplyInput(input);
|
|
2216
|
-
return adapter.apply(input, normalizeMutationOptions(options));
|
|
2217
|
-
}
|
|
2218
|
-
var STYLE_APPLY_INPUT_ALLOWED_KEYS;
|
|
2219
|
-
var init_format = __esm(() => {
|
|
2220
|
-
init_style_policy_types();
|
|
2221
|
-
init_errors2();
|
|
2222
|
-
init_validation_primitives();
|
|
2223
|
-
STYLE_APPLY_INPUT_ALLOWED_KEYS = new Set(["target", "inline"]);
|
|
2224
|
-
});
|
|
2225
|
-
|
|
2226
2413
|
// ../../packages/document-api/src/get-node/get-node.ts
|
|
2227
2414
|
function executeGetNode(adapter, address2) {
|
|
2228
2415
|
return adapter.getNode(address2);
|
|
@@ -2471,6 +2658,10 @@ function buildDispatchTable(api) {
|
|
|
2471
2658
|
replace: (input, options) => api.replace(input, options),
|
|
2472
2659
|
delete: (input, options) => api.delete(input, options),
|
|
2473
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),
|
|
2474
2665
|
"create.paragraph": (input, options) => api.create.paragraph(input, options),
|
|
2475
2666
|
"create.heading": (input, options) => api.create.heading(input, options),
|
|
2476
2667
|
"lists.list": (input) => api.lists.list(input),
|
|
@@ -2564,6 +2755,18 @@ function createDocumentApi(adapters) {
|
|
|
2564
2755
|
},
|
|
2565
2756
|
apply(input, options) {
|
|
2566
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);
|
|
2567
2770
|
}
|
|
2568
2771
|
},
|
|
2569
2772
|
trackChanges: {
|
|
@@ -2646,6 +2849,7 @@ var init_src = __esm(() => {
|
|
|
2646
2849
|
init_create();
|
|
2647
2850
|
init_track_changes();
|
|
2648
2851
|
init_capabilities();
|
|
2852
|
+
init_format();
|
|
2649
2853
|
init_lists_types();
|
|
2650
2854
|
init_errors2();
|
|
2651
2855
|
init_types();
|
|
@@ -3278,6 +3482,10 @@ var init_operation_hints = __esm(() => {
|
|
|
3278
3482
|
replace: "replaced text",
|
|
3279
3483
|
delete: "deleted text",
|
|
3280
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",
|
|
3281
3489
|
"create.paragraph": "created paragraph",
|
|
3282
3490
|
"create.heading": "created heading",
|
|
3283
3491
|
"lists.list": "listed items",
|
|
@@ -3311,6 +3519,10 @@ var init_operation_hints = __esm(() => {
|
|
|
3311
3519
|
replace: "mutationReceipt",
|
|
3312
3520
|
delete: "mutationReceipt",
|
|
3313
3521
|
"format.apply": "mutationReceipt",
|
|
3522
|
+
"format.fontSize": "mutationReceipt",
|
|
3523
|
+
"format.fontFamily": "mutationReceipt",
|
|
3524
|
+
"format.color": "mutationReceipt",
|
|
3525
|
+
"format.align": "mutationReceipt",
|
|
3314
3526
|
"create.paragraph": "createResult",
|
|
3315
3527
|
"create.heading": "createResult",
|
|
3316
3528
|
"lists.list": "listResult",
|
|
@@ -3344,6 +3556,10 @@ var init_operation_hints = __esm(() => {
|
|
|
3344
3556
|
replace: null,
|
|
3345
3557
|
delete: null,
|
|
3346
3558
|
"format.apply": null,
|
|
3559
|
+
"format.fontSize": null,
|
|
3560
|
+
"format.fontFamily": null,
|
|
3561
|
+
"format.color": null,
|
|
3562
|
+
"format.align": null,
|
|
3347
3563
|
"create.paragraph": "result",
|
|
3348
3564
|
"create.heading": "result",
|
|
3349
3565
|
"lists.list": "result",
|
|
@@ -3371,7 +3587,11 @@ var init_operation_hints = __esm(() => {
|
|
|
3371
3587
|
insert: "receipt",
|
|
3372
3588
|
replace: "receipt",
|
|
3373
3589
|
delete: "receipt",
|
|
3374
|
-
"format.apply": "receipt"
|
|
3590
|
+
"format.apply": "receipt",
|
|
3591
|
+
"format.fontSize": "receipt",
|
|
3592
|
+
"format.fontFamily": "receipt",
|
|
3593
|
+
"format.color": "receipt",
|
|
3594
|
+
"format.align": "receipt"
|
|
3375
3595
|
};
|
|
3376
3596
|
OPERATION_FAMILY = {
|
|
3377
3597
|
find: "query",
|
|
@@ -3383,6 +3603,10 @@ var init_operation_hints = __esm(() => {
|
|
|
3383
3603
|
replace: "textMutation",
|
|
3384
3604
|
delete: "textMutation",
|
|
3385
3605
|
"format.apply": "textMutation",
|
|
3606
|
+
"format.fontSize": "textMutation",
|
|
3607
|
+
"format.fontFamily": "textMutation",
|
|
3608
|
+
"format.color": "textMutation",
|
|
3609
|
+
"format.align": "textMutation",
|
|
3386
3610
|
"create.paragraph": "create",
|
|
3387
3611
|
"create.heading": "create",
|
|
3388
3612
|
"lists.list": "lists",
|
|
@@ -18030,7 +18254,7 @@ var init_constants_DBKi0Amm_es = __esm(() => {
|
|
|
18030
18254
|
]);
|
|
18031
18255
|
});
|
|
18032
18256
|
|
|
18033
|
-
// ../../packages/superdoc/dist/chunks/SuperConverter-
|
|
18257
|
+
// ../../packages/superdoc/dist/chunks/SuperConverter-BxBclpFg.es.js
|
|
18034
18258
|
function getExtensionConfigField(extension, field, context = { name: "" }) {
|
|
18035
18259
|
const fieldValue = extension.config[field];
|
|
18036
18260
|
if (typeof fieldValue === "function")
|
|
@@ -41781,7 +42005,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
41781
42005
|
state.kern = kernNode.attributes["w:val"];
|
|
41782
42006
|
}
|
|
41783
42007
|
}, SuperConverter;
|
|
41784
|
-
var
|
|
42008
|
+
var init_SuperConverter_BxBclpFg_es = __esm(() => {
|
|
41785
42009
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
41786
42010
|
init_jszip_ChlR43oI_es();
|
|
41787
42011
|
init_xml_js_DLE8mr0n_es();
|
|
@@ -44574,7 +44798,7 @@ var init_SuperConverter_Cf1y7bFA_es = __esm(() => {
|
|
|
44574
44798
|
return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : undefined;
|
|
44575
44799
|
}
|
|
44576
44800
|
});
|
|
44577
|
-
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));
|
|
44578
44802
|
translator$77 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:keepLines"));
|
|
44579
44803
|
translator$78 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:keepNext"));
|
|
44580
44804
|
translator$80 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:kinsoku"));
|
|
@@ -87169,9 +87393,9 @@ var init_remark_gfm_RDxetNVS_es = __esm(() => {
|
|
|
87169
87393
|
emptyOptions4 = {};
|
|
87170
87394
|
});
|
|
87171
87395
|
|
|
87172
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
87173
|
-
var
|
|
87174
|
-
__export(
|
|
87396
|
+
// ../../packages/superdoc/dist/chunks/src-DVVC7vA7.es.js
|
|
87397
|
+
var exports_src_DVVC7vA7_es = {};
|
|
87398
|
+
__export(exports_src_DVVC7vA7_es, {
|
|
87175
87399
|
zt: () => defineMark,
|
|
87176
87400
|
z: () => cM,
|
|
87177
87401
|
yt: () => removeAwarenessStates,
|
|
@@ -93763,142 +93987,15 @@ function mutationOperation2(options) {
|
|
|
93763
93987
|
function projectFromDefinitions2(fn) {
|
|
93764
93988
|
return Object.fromEntries(OPERATION_IDS2.map((id2) => [id2, fn(id2, OPERATION_DEFINITIONS2[id2])]));
|
|
93765
93989
|
}
|
|
93766
|
-
function
|
|
93767
|
-
const schema = {
|
|
93768
|
-
type: "object",
|
|
93769
|
-
properties,
|
|
93770
|
-
additionalProperties: false
|
|
93771
|
-
};
|
|
93772
|
-
if (required.length > 0)
|
|
93773
|
-
schema.required = [...required];
|
|
93774
|
-
return schema;
|
|
93775
|
-
}
|
|
93776
|
-
function arraySchema2(items) {
|
|
93990
|
+
function normalizeMutationOptions2(options) {
|
|
93777
93991
|
return {
|
|
93778
|
-
|
|
93779
|
-
|
|
93992
|
+
expectedRevision: options?.expectedRevision,
|
|
93993
|
+
changeMode: options?.changeMode ?? "direct",
|
|
93994
|
+
dryRun: options?.dryRun ?? false
|
|
93780
93995
|
};
|
|
93781
93996
|
}
|
|
93782
|
-
function
|
|
93783
|
-
return
|
|
93784
|
-
}
|
|
93785
|
-
function discoveryResultSchema2(itemSchema) {
|
|
93786
|
-
return objectSchema2({
|
|
93787
|
-
evaluatedRevision: { type: "string" },
|
|
93788
|
-
total: {
|
|
93789
|
-
type: "integer",
|
|
93790
|
-
minimum: 0
|
|
93791
|
-
},
|
|
93792
|
-
items: arraySchema2(itemSchema),
|
|
93793
|
-
page: pageInfoSchema2
|
|
93794
|
-
}, [
|
|
93795
|
-
"evaluatedRevision",
|
|
93796
|
-
"total",
|
|
93797
|
-
"items",
|
|
93798
|
-
"page"
|
|
93799
|
-
]);
|
|
93800
|
-
}
|
|
93801
|
-
function discoveryItemSchema2(domainProperties, domainRequired = []) {
|
|
93802
|
-
return objectSchema2({
|
|
93803
|
-
id: { type: "string" },
|
|
93804
|
-
handle: resolvedHandleSchema2,
|
|
93805
|
-
...domainProperties
|
|
93806
|
-
}, [
|
|
93807
|
-
"id",
|
|
93808
|
-
"handle",
|
|
93809
|
-
...domainRequired
|
|
93810
|
-
]);
|
|
93811
|
-
}
|
|
93812
|
-
function possibleFailureCodes2(operationId) {
|
|
93813
|
-
return [...COMMAND_CATALOG2[operationId].possibleFailureCodes];
|
|
93814
|
-
}
|
|
93815
|
-
function preApplyThrowCodes2(operationId) {
|
|
93816
|
-
return [...COMMAND_CATALOG2[operationId].throws.preApply];
|
|
93817
|
-
}
|
|
93818
|
-
function receiptFailureSchemaFor2(operationId) {
|
|
93819
|
-
const codes = possibleFailureCodes2(operationId);
|
|
93820
|
-
if (codes.length === 0)
|
|
93821
|
-
throw new Error(`Operation "${operationId}" does not declare non-applied failure codes.`);
|
|
93822
|
-
return objectSchema2({
|
|
93823
|
-
code: { enum: codes },
|
|
93824
|
-
message: { type: "string" },
|
|
93825
|
-
details: {}
|
|
93826
|
-
}, ["code", "message"]);
|
|
93827
|
-
}
|
|
93828
|
-
function preApplyFailureSchemaFor2(operationId) {
|
|
93829
|
-
const codes = preApplyThrowCodes2(operationId);
|
|
93830
|
-
if (codes.length === 0)
|
|
93831
|
-
throw new Error(`Operation "${operationId}" does not declare pre-apply throw codes.`);
|
|
93832
|
-
return objectSchema2({
|
|
93833
|
-
code: { enum: codes },
|
|
93834
|
-
message: { type: "string" },
|
|
93835
|
-
details: {}
|
|
93836
|
-
}, ["code", "message"]);
|
|
93837
|
-
}
|
|
93838
|
-
function receiptFailureResultSchemaFor2(operationId) {
|
|
93839
|
-
return objectSchema2({
|
|
93840
|
-
success: { const: false },
|
|
93841
|
-
failure: receiptFailureSchemaFor2(operationId)
|
|
93842
|
-
}, ["success", "failure"]);
|
|
93843
|
-
}
|
|
93844
|
-
function preApplyFailureResultSchemaFor2(operationId) {
|
|
93845
|
-
return objectSchema2({
|
|
93846
|
-
success: { const: false },
|
|
93847
|
-
failure: preApplyFailureSchemaFor2(operationId)
|
|
93848
|
-
}, ["success", "failure"]);
|
|
93849
|
-
}
|
|
93850
|
-
function receiptResultSchemaFor2(operationId) {
|
|
93851
|
-
return { oneOf: [receiptSuccessSchema2, receiptFailureResultSchemaFor2(operationId)] };
|
|
93852
|
-
}
|
|
93853
|
-
function textMutationFailureSchemaFor2(operationId) {
|
|
93854
|
-
return objectSchema2({
|
|
93855
|
-
success: { const: false },
|
|
93856
|
-
failure: receiptFailureSchemaFor2(operationId),
|
|
93857
|
-
resolution: textMutationResolutionSchema2
|
|
93858
|
-
}, [
|
|
93859
|
-
"success",
|
|
93860
|
-
"failure",
|
|
93861
|
-
"resolution"
|
|
93862
|
-
]);
|
|
93863
|
-
}
|
|
93864
|
-
function textMutationResultSchemaFor2(operationId) {
|
|
93865
|
-
return { oneOf: [textMutationSuccessSchema2, textMutationFailureSchemaFor2(operationId)] };
|
|
93866
|
-
}
|
|
93867
|
-
function createParagraphFailureSchemaFor2(operationId) {
|
|
93868
|
-
return objectSchema2({
|
|
93869
|
-
success: { const: false },
|
|
93870
|
-
failure: receiptFailureSchemaFor2(operationId)
|
|
93871
|
-
}, ["success", "failure"]);
|
|
93872
|
-
}
|
|
93873
|
-
function createParagraphResultSchemaFor2(operationId) {
|
|
93874
|
-
return { oneOf: [createParagraphSuccessSchema2, createParagraphFailureSchemaFor2(operationId)] };
|
|
93875
|
-
}
|
|
93876
|
-
function createHeadingFailureSchemaFor2(operationId) {
|
|
93877
|
-
return objectSchema2({
|
|
93878
|
-
success: { const: false },
|
|
93879
|
-
failure: receiptFailureSchemaFor2(operationId)
|
|
93880
|
-
}, ["success", "failure"]);
|
|
93881
|
-
}
|
|
93882
|
-
function createHeadingResultSchemaFor2(operationId) {
|
|
93883
|
-
return { oneOf: [createHeadingSuccessSchema2, createHeadingFailureSchemaFor2(operationId)] };
|
|
93884
|
-
}
|
|
93885
|
-
function listsFailureSchemaFor2(operationId) {
|
|
93886
|
-
return objectSchema2({
|
|
93887
|
-
success: { const: false },
|
|
93888
|
-
failure: receiptFailureSchemaFor2(operationId)
|
|
93889
|
-
}, ["success", "failure"]);
|
|
93890
|
-
}
|
|
93891
|
-
function listsInsertResultSchemaFor2(operationId) {
|
|
93892
|
-
return { oneOf: [listsInsertSuccessSchema2, listsFailureSchemaFor2(operationId)] };
|
|
93893
|
-
}
|
|
93894
|
-
function listsMutateItemResultSchemaFor2(operationId) {
|
|
93895
|
-
return { oneOf: [listsMutateItemSuccessSchema2, listsFailureSchemaFor2(operationId)] };
|
|
93896
|
-
}
|
|
93897
|
-
function listsExitResultSchemaFor2(operationId) {
|
|
93898
|
-
return { oneOf: [listsExitSuccessSchema2, listsFailureSchemaFor2(operationId)] };
|
|
93899
|
-
}
|
|
93900
|
-
function executeCapabilities2(adapter) {
|
|
93901
|
-
return adapter.get();
|
|
93997
|
+
function executeWrite2(adapter, request, options) {
|
|
93998
|
+
return adapter.write(request, normalizeMutationOptions2(options));
|
|
93902
93999
|
}
|
|
93903
94000
|
function isRecord3(value) {
|
|
93904
94001
|
return typeof value === "object" && value != null && !Array.isArray(value);
|
|
@@ -93925,6 +94022,265 @@ function assertNoUnknownFields2(input2, allowlist, operationName) {
|
|
|
93925
94022
|
if (!allowlist.has(key$1))
|
|
93926
94023
|
throw new DocumentApiValidationError2("INVALID_TARGET", `Unknown field "${key$1}" on ${operationName} input. Allowed fields: ${[...allowlist].join(", ")}.`, { field: key$1 });
|
|
93927
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
|
+
}
|
|
94147
|
+
function objectSchema2(properties, required = []) {
|
|
94148
|
+
const schema = {
|
|
94149
|
+
type: "object",
|
|
94150
|
+
properties,
|
|
94151
|
+
additionalProperties: false
|
|
94152
|
+
};
|
|
94153
|
+
if (required.length > 0)
|
|
94154
|
+
schema.required = [...required];
|
|
94155
|
+
return schema;
|
|
94156
|
+
}
|
|
94157
|
+
function arraySchema2(items) {
|
|
94158
|
+
return {
|
|
94159
|
+
type: "array",
|
|
94160
|
+
items
|
|
94161
|
+
};
|
|
94162
|
+
}
|
|
94163
|
+
function ref$1(name) {
|
|
94164
|
+
return { $ref: `#/$defs/${name}` };
|
|
94165
|
+
}
|
|
94166
|
+
function discoveryResultSchema2(itemSchema) {
|
|
94167
|
+
return objectSchema2({
|
|
94168
|
+
evaluatedRevision: { type: "string" },
|
|
94169
|
+
total: {
|
|
94170
|
+
type: "integer",
|
|
94171
|
+
minimum: 0
|
|
94172
|
+
},
|
|
94173
|
+
items: arraySchema2(itemSchema),
|
|
94174
|
+
page: pageInfoSchema2
|
|
94175
|
+
}, [
|
|
94176
|
+
"evaluatedRevision",
|
|
94177
|
+
"total",
|
|
94178
|
+
"items",
|
|
94179
|
+
"page"
|
|
94180
|
+
]);
|
|
94181
|
+
}
|
|
94182
|
+
function discoveryItemSchema2(domainProperties, domainRequired = []) {
|
|
94183
|
+
return objectSchema2({
|
|
94184
|
+
id: { type: "string" },
|
|
94185
|
+
handle: resolvedHandleSchema2,
|
|
94186
|
+
...domainProperties
|
|
94187
|
+
}, [
|
|
94188
|
+
"id",
|
|
94189
|
+
"handle",
|
|
94190
|
+
...domainRequired
|
|
94191
|
+
]);
|
|
94192
|
+
}
|
|
94193
|
+
function possibleFailureCodes2(operationId) {
|
|
94194
|
+
return [...COMMAND_CATALOG2[operationId].possibleFailureCodes];
|
|
94195
|
+
}
|
|
94196
|
+
function preApplyThrowCodes2(operationId) {
|
|
94197
|
+
return [...COMMAND_CATALOG2[operationId].throws.preApply];
|
|
94198
|
+
}
|
|
94199
|
+
function receiptFailureSchemaFor2(operationId) {
|
|
94200
|
+
const codes = possibleFailureCodes2(operationId);
|
|
94201
|
+
if (codes.length === 0)
|
|
94202
|
+
throw new Error(`Operation "${operationId}" does not declare non-applied failure codes.`);
|
|
94203
|
+
return objectSchema2({
|
|
94204
|
+
code: { enum: codes },
|
|
94205
|
+
message: { type: "string" },
|
|
94206
|
+
details: {}
|
|
94207
|
+
}, ["code", "message"]);
|
|
94208
|
+
}
|
|
94209
|
+
function preApplyFailureSchemaFor2(operationId) {
|
|
94210
|
+
const codes = preApplyThrowCodes2(operationId);
|
|
94211
|
+
if (codes.length === 0)
|
|
94212
|
+
throw new Error(`Operation "${operationId}" does not declare pre-apply throw codes.`);
|
|
94213
|
+
return objectSchema2({
|
|
94214
|
+
code: { enum: codes },
|
|
94215
|
+
message: { type: "string" },
|
|
94216
|
+
details: {}
|
|
94217
|
+
}, ["code", "message"]);
|
|
94218
|
+
}
|
|
94219
|
+
function receiptFailureResultSchemaFor2(operationId) {
|
|
94220
|
+
return objectSchema2({
|
|
94221
|
+
success: { const: false },
|
|
94222
|
+
failure: receiptFailureSchemaFor2(operationId)
|
|
94223
|
+
}, ["success", "failure"]);
|
|
94224
|
+
}
|
|
94225
|
+
function preApplyFailureResultSchemaFor2(operationId) {
|
|
94226
|
+
return objectSchema2({
|
|
94227
|
+
success: { const: false },
|
|
94228
|
+
failure: preApplyFailureSchemaFor2(operationId)
|
|
94229
|
+
}, ["success", "failure"]);
|
|
94230
|
+
}
|
|
94231
|
+
function receiptResultSchemaFor2(operationId) {
|
|
94232
|
+
return { oneOf: [receiptSuccessSchema2, receiptFailureResultSchemaFor2(operationId)] };
|
|
94233
|
+
}
|
|
94234
|
+
function textMutationFailureSchemaFor2(operationId) {
|
|
94235
|
+
return objectSchema2({
|
|
94236
|
+
success: { const: false },
|
|
94237
|
+
failure: receiptFailureSchemaFor2(operationId),
|
|
94238
|
+
resolution: textMutationResolutionSchema2
|
|
94239
|
+
}, [
|
|
94240
|
+
"success",
|
|
94241
|
+
"failure",
|
|
94242
|
+
"resolution"
|
|
94243
|
+
]);
|
|
94244
|
+
}
|
|
94245
|
+
function textMutationResultSchemaFor2(operationId) {
|
|
94246
|
+
return { oneOf: [textMutationSuccessSchema2, textMutationFailureSchemaFor2(operationId)] };
|
|
94247
|
+
}
|
|
94248
|
+
function createParagraphFailureSchemaFor2(operationId) {
|
|
94249
|
+
return objectSchema2({
|
|
94250
|
+
success: { const: false },
|
|
94251
|
+
failure: receiptFailureSchemaFor2(operationId)
|
|
94252
|
+
}, ["success", "failure"]);
|
|
94253
|
+
}
|
|
94254
|
+
function createParagraphResultSchemaFor2(operationId) {
|
|
94255
|
+
return { oneOf: [createParagraphSuccessSchema2, createParagraphFailureSchemaFor2(operationId)] };
|
|
94256
|
+
}
|
|
94257
|
+
function createHeadingFailureSchemaFor2(operationId) {
|
|
94258
|
+
return objectSchema2({
|
|
94259
|
+
success: { const: false },
|
|
94260
|
+
failure: receiptFailureSchemaFor2(operationId)
|
|
94261
|
+
}, ["success", "failure"]);
|
|
94262
|
+
}
|
|
94263
|
+
function createHeadingResultSchemaFor2(operationId) {
|
|
94264
|
+
return { oneOf: [createHeadingSuccessSchema2, createHeadingFailureSchemaFor2(operationId)] };
|
|
94265
|
+
}
|
|
94266
|
+
function listsFailureSchemaFor2(operationId) {
|
|
94267
|
+
return objectSchema2({
|
|
94268
|
+
success: { const: false },
|
|
94269
|
+
failure: receiptFailureSchemaFor2(operationId)
|
|
94270
|
+
}, ["success", "failure"]);
|
|
94271
|
+
}
|
|
94272
|
+
function listsInsertResultSchemaFor2(operationId) {
|
|
94273
|
+
return { oneOf: [listsInsertSuccessSchema2, listsFailureSchemaFor2(operationId)] };
|
|
94274
|
+
}
|
|
94275
|
+
function listsMutateItemResultSchemaFor2(operationId) {
|
|
94276
|
+
return { oneOf: [listsMutateItemSuccessSchema2, listsFailureSchemaFor2(operationId)] };
|
|
94277
|
+
}
|
|
94278
|
+
function listsExitResultSchemaFor2(operationId) {
|
|
94279
|
+
return { oneOf: [listsExitSuccessSchema2, listsFailureSchemaFor2(operationId)] };
|
|
94280
|
+
}
|
|
94281
|
+
function executeCapabilities2(adapter) {
|
|
94282
|
+
return adapter.get();
|
|
94283
|
+
}
|
|
93928
94284
|
function validateCreateCommentInput2(input2) {
|
|
93929
94285
|
if (!isRecord3(input2))
|
|
93930
94286
|
throw new DocumentApiValidationError2("INVALID_TARGET", "comments.create input must be a non-null object.");
|
|
@@ -94074,57 +94430,6 @@ function executeFind2(adapter, selectorOrQuery, options) {
|
|
|
94074
94430
|
const query2 = normalizeFindQuery2(selectorOrQuery, options);
|
|
94075
94431
|
return adapter.find(query2);
|
|
94076
94432
|
}
|
|
94077
|
-
function normalizeMutationOptions2(options) {
|
|
94078
|
-
return {
|
|
94079
|
-
expectedRevision: options?.expectedRevision,
|
|
94080
|
-
changeMode: options?.changeMode ?? "direct",
|
|
94081
|
-
dryRun: options?.dryRun ?? false
|
|
94082
|
-
};
|
|
94083
|
-
}
|
|
94084
|
-
function executeWrite2(adapter, request, options) {
|
|
94085
|
-
return adapter.write(request, normalizeMutationOptions2(options));
|
|
94086
|
-
}
|
|
94087
|
-
function validateStyleApplyInput2(input2) {
|
|
94088
|
-
if (!isRecord3(input2))
|
|
94089
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", "format.apply input must be a non-null object.");
|
|
94090
|
-
assertNoUnknownFields2(input2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, "format.apply");
|
|
94091
|
-
const { target, inline } = input2;
|
|
94092
|
-
if (target === undefined)
|
|
94093
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", "format.apply requires a target.");
|
|
94094
|
-
if (!isTextAddress2(target))
|
|
94095
|
-
throw new DocumentApiValidationError2("INVALID_TARGET", "target must be a text address object.", {
|
|
94096
|
-
field: "target",
|
|
94097
|
-
value: target
|
|
94098
|
-
});
|
|
94099
|
-
if (inline === undefined || inline === null)
|
|
94100
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", "format.apply requires an inline object.");
|
|
94101
|
-
if (!isRecord3(inline))
|
|
94102
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", "inline must be a non-null object.", {
|
|
94103
|
-
field: "inline",
|
|
94104
|
-
value: inline
|
|
94105
|
-
});
|
|
94106
|
-
const inlineKeys = Object.keys(inline);
|
|
94107
|
-
if (inlineKeys.length === 0)
|
|
94108
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", "inline must include at least one known key.");
|
|
94109
|
-
for (const key$1 of inlineKeys) {
|
|
94110
|
-
if (!MARK_KEY_SET2.has(key$1))
|
|
94111
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", `Unknown inline style key "${key$1}". Known keys: bold, italic, underline, strike.`, {
|
|
94112
|
-
field: "inline",
|
|
94113
|
-
key: key$1
|
|
94114
|
-
});
|
|
94115
|
-
const value = inline[key$1];
|
|
94116
|
-
if (typeof value !== "boolean")
|
|
94117
|
-
throw new DocumentApiValidationError2("INVALID_INPUT", `Inline style "${key$1}" must be a boolean, got ${typeof value}.`, {
|
|
94118
|
-
field: "inline",
|
|
94119
|
-
key: key$1,
|
|
94120
|
-
value
|
|
94121
|
-
});
|
|
94122
|
-
}
|
|
94123
|
-
}
|
|
94124
|
-
function executeStyleApply$1(adapter, input2, options) {
|
|
94125
|
-
validateStyleApplyInput2(input2);
|
|
94126
|
-
return adapter.apply(input2, normalizeMutationOptions2(options));
|
|
94127
|
-
}
|
|
94128
94433
|
function executeGetNode2(adapter, address2) {
|
|
94129
94434
|
return adapter.getNode(address2);
|
|
94130
94435
|
}
|
|
@@ -94331,6 +94636,10 @@ function buildDispatchTable2(api) {
|
|
|
94331
94636
|
replace: (input2, options) => api.replace(input2, options),
|
|
94332
94637
|
delete: (input2, options) => api.delete(input2, options),
|
|
94333
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),
|
|
94334
94643
|
"create.paragraph": (input2, options) => api.create.paragraph(input2, options),
|
|
94335
94644
|
"create.heading": (input2, options) => api.create.heading(input2, options),
|
|
94336
94645
|
"lists.list": (input2) => api.lists.list(input2),
|
|
@@ -94426,6 +94735,18 @@ function createDocumentApi2(adapters) {
|
|
|
94426
94735
|
},
|
|
94427
94736
|
apply(input2, options) {
|
|
94428
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);
|
|
94429
94750
|
}
|
|
94430
94751
|
},
|
|
94431
94752
|
trackChanges: {
|
|
@@ -94543,10 +94864,12 @@ function pushReason(reasons, reason) {
|
|
|
94543
94864
|
function isOperationAvailable(editor, operationId) {
|
|
94544
94865
|
if (operationId === "format.apply")
|
|
94545
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");
|
|
94546
94869
|
return hasAllCommands(editor, operationId);
|
|
94547
94870
|
}
|
|
94548
94871
|
function isCommandBackedAvailability(operationId) {
|
|
94549
|
-
return !isMarkBackedOperation(operationId);
|
|
94872
|
+
return !isMarkBackedOperation(operationId) && !INLINE_FORMAT_OPERATIONS.has(operationId);
|
|
94550
94873
|
}
|
|
94551
94874
|
function buildOperationCapabilities(editor) {
|
|
94552
94875
|
const operations = {};
|
|
@@ -95382,29 +95705,51 @@ function hasStepExecutor(op) {
|
|
|
95382
95705
|
return getStepExecutor(op) !== undefined;
|
|
95383
95706
|
}
|
|
95384
95707
|
function captureRunsInRange(editor, blockPos, from$12, to) {
|
|
95385
|
-
const
|
|
95386
|
-
|
|
95387
|
-
|
|
95388
|
-
|
|
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
|
+
};
|
|
95389
95714
|
const runs2 = [];
|
|
95390
|
-
|
|
95391
|
-
|
|
95392
|
-
|
|
95393
|
-
const
|
|
95394
|
-
|
|
95395
|
-
|
|
95396
|
-
return true;
|
|
95397
|
-
const relFrom = nodeStart - contentStart;
|
|
95398
|
-
const relTo = nodeEnd - contentStart;
|
|
95399
|
-
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;
|
|
95400
95721
|
runs2.push({
|
|
95401
|
-
from:
|
|
95402
|
-
to:
|
|
95403
|
-
charCount:
|
|
95404
|
-
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))
|
|
95405
95726
|
});
|
|
95406
|
-
|
|
95407
|
-
|
|
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);
|
|
95408
95753
|
return {
|
|
95409
95754
|
runs: runs2,
|
|
95410
95755
|
isUniform: checkUniformity(runs2)
|
|
@@ -98872,6 +99217,121 @@ function findAdapter(editor, query2) {
|
|
|
98872
99217
|
diagnostics: uniqueDiagnostics.length ? uniqueDiagnostics : undefined
|
|
98873
99218
|
};
|
|
98874
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
|
+
}
|
|
98875
99335
|
function findBlocksByTypeAndId(blockIndex, nodeType, nodeId) {
|
|
98876
99336
|
const byIdMatch = blockIndex.byId.get(`${nodeType}:${nodeId}`);
|
|
98877
99337
|
if (byIdMatch)
|
|
@@ -100206,7 +100666,13 @@ function getDocumentApiAdapters(editor) {
|
|
|
100206
100666
|
capabilities: { get: () => getDocumentApiCapabilities(editor) },
|
|
100207
100667
|
comments: createCommentsWrapper(editor),
|
|
100208
100668
|
write: { write: (request, options) => writeWrapper(editor, request, options) },
|
|
100209
|
-
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
|
+
},
|
|
100210
100676
|
trackChanges: {
|
|
100211
100677
|
list: (query2) => trackChangesListWrapper(editor, query2),
|
|
100212
100678
|
get: (input2) => trackChangesGetWrapper(editor, input2),
|
|
@@ -134270,7 +134736,7 @@ var Node$13 = class Node$14 {
|
|
|
134270
134736
|
console.warn("Failed to initialize developer tools:", error);
|
|
134271
134737
|
}
|
|
134272
134738
|
}
|
|
134273
|
-
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, NODE_TYPES2, BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, MARK_KEYS2, MARK_KEY_SET2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_QUERY_MATCH2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, nodeTypeValues2, blockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, listsExitSuccessSchema2, nodeSummarySchema2, nodeInfoSchema2, matchContextSchema2, unknownNodeDiagnosticSchema2, textSelectorSchema2, nodeSelectorSchema2, findItemDomainSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, formatCapabilitiesSchema2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, DocumentApiValidationError2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, REPLACE_INPUT_ALLOWED_KEYS2, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, STYLE_MARK_SCHEMA_NAMES, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, DocumentApiAdapterError, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, ALIAS_ELIGIBLE_TYPES, cacheByEditor, PlanError, revisionMap, subscribedEditors, registry, CORE_MARK_NAMES, METADATA_MARK_NAMES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, REF_HANDLERS, DEFAULT_INLINE_POLICY, OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, MARK_KEY_TO_SCHEMA_NAME, FALLBACK_STORE_KEY = "__documentApiComments", DERIVED_ID_LENGTH = 24, groupedCache, CSS_NAMED_COLORS, registered = false, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
|
|
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 {
|
|
134274
134740
|
constructor(config2) {
|
|
134275
134741
|
this.search = config2.search;
|
|
134276
134742
|
this.caseSensitive = !!config2.caseSensitive;
|
|
@@ -152341,9 +152807,9 @@ var Node$13 = class Node$14 {
|
|
|
152341
152807
|
trackedChanges: context.trackedChanges ?? []
|
|
152342
152808
|
});
|
|
152343
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;
|
|
152344
|
-
var
|
|
152810
|
+
var init_src_DVVC7vA7_es = __esm(() => {
|
|
152345
152811
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
152346
|
-
|
|
152812
|
+
init_SuperConverter_BxBclpFg_es();
|
|
152347
152813
|
init_jszip_ChlR43oI_es();
|
|
152348
152814
|
init_uuid_2IzDu5nl_es();
|
|
152349
152815
|
init_constants_DBKi0Amm_es();
|
|
@@ -160573,6 +161039,78 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160573
161039
|
referenceDocPath: "format/apply.mdx",
|
|
160574
161040
|
referenceGroup: "format"
|
|
160575
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
|
+
},
|
|
160576
161114
|
"create.paragraph": {
|
|
160577
161115
|
memberPath: "create.paragraph",
|
|
160578
161116
|
description: "Create a new paragraph at the target position.",
|
|
@@ -160885,6 +161423,27 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160885
161423
|
OPERATION_IDS2.filter((operationId) => COMMAND_CATALOG2[operationId].mutates);
|
|
160886
161424
|
projectFromDefinitions2((_id, entry) => entry.description);
|
|
160887
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"]);
|
|
160888
161447
|
nodeTypeValues2 = NODE_TYPES2;
|
|
160889
161448
|
blockNodeTypeValues2 = BLOCK_NODE_TYPES2;
|
|
160890
161449
|
inlineNodeTypeValues2 = INLINE_NODE_TYPES2;
|
|
@@ -161396,6 +161955,31 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161396
161955
|
};
|
|
161397
161956
|
})()
|
|
161398
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({
|
|
161399
161983
|
at: { oneOf: [
|
|
161400
161984
|
objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
|
|
161401
161985
|
objectSchema2({ kind: { const: "documentEnd" } }, ["kind"]),
|
|
@@ -161626,15 +162210,6 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161626
162210
|
"DRY_RUN_UNAVAILABLE",
|
|
161627
162211
|
"NAMESPACE_UNAVAILABLE"
|
|
161628
162212
|
];
|
|
161629
|
-
DocumentApiValidationError2 = class DocumentApiValidationError3 extends Error {
|
|
161630
|
-
constructor(code$1, message, details) {
|
|
161631
|
-
super(message);
|
|
161632
|
-
this.name = "DocumentApiValidationError";
|
|
161633
|
-
this.code = code$1;
|
|
161634
|
-
this.details = details;
|
|
161635
|
-
Object.setPrototypeOf(this, DocumentApiValidationError3.prototype);
|
|
161636
|
-
}
|
|
161637
|
-
};
|
|
161638
162213
|
CREATE_COMMENT_ALLOWED_KEYS2 = new Set([
|
|
161639
162214
|
"target",
|
|
161640
162215
|
"text",
|
|
@@ -161647,11 +162222,30 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161647
162222
|
"status",
|
|
161648
162223
|
"isInternal"
|
|
161649
162224
|
]);
|
|
161650
|
-
STYLE_APPLY_INPUT_ALLOWED_KEYS2 = new Set(["target", "inline"]);
|
|
161651
162225
|
DELETE_INPUT_ALLOWED_KEYS2 = new Set(["target"]);
|
|
161652
162226
|
INSERT_INPUT_ALLOWED_KEYS2 = new Set(["text", "target"]);
|
|
161653
162227
|
REPLACE_INPUT_ALLOWED_KEYS2 = new Set(["text", "target"]);
|
|
161654
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
|
+
],
|
|
161655
162249
|
"create.paragraph": ["insertParagraphAt"],
|
|
161656
162250
|
"create.heading": ["insertHeadingAt"],
|
|
161657
162251
|
"lists.insert": ["insertListItemAt"],
|
|
@@ -161686,6 +162280,11 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161686
162280
|
underline: "underline",
|
|
161687
162281
|
strike: "strike"
|
|
161688
162282
|
};
|
|
162283
|
+
INLINE_FORMAT_OPERATIONS = new Set([
|
|
162284
|
+
"format.fontSize",
|
|
162285
|
+
"format.fontFamily",
|
|
162286
|
+
"format.color"
|
|
162287
|
+
]);
|
|
161689
162288
|
SUPPORTED_STEP_OPS = [
|
|
161690
162289
|
"text.rewrite",
|
|
161691
162290
|
"text.insert",
|
|
@@ -183822,8 +184421,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183822
184421
|
return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
|
|
183823
184422
|
};
|
|
183824
184423
|
stubFalse_default = stubFalse;
|
|
183825
|
-
freeExports$2 = typeof
|
|
183826
|
-
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;
|
|
183827
184426
|
Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
|
|
183828
184427
|
isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
|
|
183829
184428
|
typedArrayTags = {};
|
|
@@ -183831,8 +184430,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183831
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;
|
|
183832
184431
|
_baseIsTypedArray_default = baseIsTypedArray;
|
|
183833
184432
|
_baseUnary_default = baseUnary;
|
|
183834
|
-
freeExports$1 = typeof
|
|
183835
|
-
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;
|
|
183836
184435
|
freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
|
|
183837
184436
|
_nodeUtil_default = function() {
|
|
183838
184437
|
try {
|
|
@@ -183937,8 +184536,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
183937
184536
|
Stack.prototype.has = _stackHas_default;
|
|
183938
184537
|
Stack.prototype.set = _stackSet_default;
|
|
183939
184538
|
_Stack_default = Stack;
|
|
183940
|
-
freeExports = typeof
|
|
183941
|
-
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;
|
|
183942
184541
|
Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
|
|
183943
184542
|
allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
|
|
183944
184543
|
_cloneBuffer_default = cloneBuffer;
|
|
@@ -191557,8 +192156,8 @@ var init_zipper_BJHqrQMq_es = __esm(() => {
|
|
|
191557
192156
|
|
|
191558
192157
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
191559
192158
|
var init_super_editor_es = __esm(() => {
|
|
191560
|
-
|
|
191561
|
-
|
|
192159
|
+
init_src_DVVC7vA7_es();
|
|
192160
|
+
init_SuperConverter_BxBclpFg_es();
|
|
191562
192161
|
init_jszip_ChlR43oI_es();
|
|
191563
192162
|
init_xml_js_DLE8mr0n_es();
|
|
191564
192163
|
init_constants_DBKi0Amm_es();
|
|
@@ -191568,6 +192167,12 @@ var init_super_editor_es = __esm(() => {
|
|
|
191568
192167
|
init_zipper_BJHqrQMq_es();
|
|
191569
192168
|
});
|
|
191570
192169
|
|
|
192170
|
+
// ../../packages/super-editor/src/core/blank-docx.ts
|
|
192171
|
+
var BLANK_DOCX_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==`, 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
|
+
|
|
191571
192176
|
// ../../packages/super-editor/src/extensions/track-changes/constants.js
|
|
191572
192177
|
var TrackInsertMarkName2 = "trackInsert", TrackDeleteMarkName2 = "trackDelete", TrackFormatMarkName2 = "trackFormat";
|
|
191573
192178
|
|
|
@@ -191622,10 +192227,13 @@ function isOperationAvailable2(editor, operationId) {
|
|
|
191622
192227
|
if (operationId === "format.apply") {
|
|
191623
192228
|
return MARK_KEYS.some((key2) => hasMarkCapability2(editor, STYLE_MARK_SCHEMA_NAMES2[key2] ?? key2));
|
|
191624
192229
|
}
|
|
192230
|
+
if (INLINE_FORMAT_OPERATIONS2.has(operationId)) {
|
|
192231
|
+
return hasAllCommands2(editor, operationId) && hasMarkCapability2(editor, "textStyle");
|
|
192232
|
+
}
|
|
191625
192233
|
return hasAllCommands2(editor, operationId);
|
|
191626
192234
|
}
|
|
191627
192235
|
function isCommandBackedAvailability2(operationId) {
|
|
191628
|
-
return !isMarkBackedOperation2(operationId);
|
|
192236
|
+
return !isMarkBackedOperation2(operationId) && !INLINE_FORMAT_OPERATIONS2.has(operationId);
|
|
191629
192237
|
}
|
|
191630
192238
|
function buildOperationCapabilities2(editor) {
|
|
191631
192239
|
const operations = {};
|
|
@@ -191700,10 +192308,14 @@ function getDocumentApiCapabilities2(editor) {
|
|
|
191700
192308
|
planEngine: buildPlanEngineCapabilities2()
|
|
191701
192309
|
};
|
|
191702
192310
|
}
|
|
191703
|
-
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;
|
|
191704
192312
|
var init_capabilities_adapter = __esm(() => {
|
|
191705
192313
|
init_src();
|
|
191706
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"],
|
|
191707
192319
|
"create.paragraph": ["insertParagraphAt"],
|
|
191708
192320
|
"create.heading": ["insertHeadingAt"],
|
|
191709
192321
|
"lists.insert": ["insertListItemAt"],
|
|
@@ -191729,6 +192341,7 @@ var init_capabilities_adapter = __esm(() => {
|
|
|
191729
192341
|
underline: "underline",
|
|
191730
192342
|
strike: "strike"
|
|
191731
192343
|
};
|
|
192344
|
+
INLINE_FORMAT_OPERATIONS2 = new Set(["format.fontSize", "format.fontFamily", "format.color"]);
|
|
191732
192345
|
SUPPORTED_STEP_OPS2 = [
|
|
191733
192346
|
"text.rewrite",
|
|
191734
192347
|
"text.insert",
|
|
@@ -197146,28 +197759,51 @@ var init_executor_registry = __esm(() => {
|
|
|
197146
197759
|
// ../../packages/super-editor/src/document-api-adapters/plan-engine/style-resolver.ts
|
|
197147
197760
|
function captureRunsInRange2(editor, blockPos, from3, to) {
|
|
197148
197761
|
const doc4 = editor.state.doc;
|
|
197149
|
-
const
|
|
197150
|
-
|
|
197151
|
-
|
|
197762
|
+
const blockNode = doc4.nodeAt(blockPos);
|
|
197763
|
+
if (!blockNode || from3 < 0 || to < from3 || from3 === to) {
|
|
197764
|
+
return { runs: [], isUniform: true };
|
|
197765
|
+
}
|
|
197152
197766
|
const runs2 = [];
|
|
197153
|
-
|
|
197154
|
-
|
|
197155
|
-
|
|
197156
|
-
const
|
|
197157
|
-
|
|
197158
|
-
|
|
197159
|
-
return true;
|
|
197160
|
-
const relFrom = nodeStart - contentStart;
|
|
197161
|
-
const relTo = nodeEnd - contentStart;
|
|
197162
|
-
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;
|
|
197163
197773
|
runs2.push({
|
|
197164
|
-
from:
|
|
197165
|
-
to:
|
|
197166
|
-
charCount:
|
|
197167
|
-
marks:
|
|
197774
|
+
from: overlapStart,
|
|
197775
|
+
to: overlapEnd,
|
|
197776
|
+
charCount: overlapEnd - overlapStart,
|
|
197777
|
+
marks: marks.filter((m3) => !METADATA_MARK_NAMES2.has(m3.type.name))
|
|
197168
197778
|
});
|
|
197169
|
-
|
|
197170
|
-
|
|
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);
|
|
197171
197807
|
const isUniform = checkUniformity2(runs2);
|
|
197172
197808
|
return { runs: runs2, isUniform };
|
|
197173
197809
|
}
|
|
@@ -200849,6 +201485,106 @@ var init_find_adapter = __esm(() => {
|
|
|
200849
201485
|
init_revision_tracker();
|
|
200850
201486
|
});
|
|
200851
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
|
+
|
|
200852
201588
|
// ../../packages/super-editor/src/document-api-adapters/get-node-adapter.ts
|
|
200853
201589
|
function findBlocksByTypeAndId2(blockIndex, nodeType, nodeId) {
|
|
200854
201590
|
const byIdMatch = blockIndex.byId.get(`${nodeType}:${nodeId}`);
|
|
@@ -209713,7 +210449,7 @@ var translator54;
|
|
|
209713
210449
|
var init_jc_translator = __esm(() => {
|
|
209714
210450
|
init_utils();
|
|
209715
210451
|
init_node_translator2();
|
|
209716
|
-
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));
|
|
209717
210453
|
});
|
|
209718
210454
|
|
|
209719
210455
|
// ../../packages/super-editor/src/core/super-converter/v3/handlers/w/jc/index.js
|
|
@@ -235401,7 +236137,11 @@ function getDocumentApiAdapters2(editor) {
|
|
|
235401
236137
|
write: (request, options) => writeWrapper2(editor, request, options)
|
|
235402
236138
|
},
|
|
235403
236139
|
format: {
|
|
235404
|
-
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)
|
|
235405
236145
|
},
|
|
235406
236146
|
trackChanges: {
|
|
235407
236147
|
list: (query2) => trackChangesListWrapper2(editor, query2),
|
|
@@ -235440,6 +236180,7 @@ var init_document_api_adapters = __esm(() => {
|
|
|
235440
236180
|
init_create_wrappers();
|
|
235441
236181
|
init_find_adapter();
|
|
235442
236182
|
init_plan_wrappers();
|
|
236183
|
+
init_format_value_wrappers();
|
|
235443
236184
|
init_get_node_adapter();
|
|
235444
236185
|
init_info_adapter();
|
|
235445
236186
|
init_lists_wrappers();
|
|
@@ -238177,12 +238918,21 @@ async function readDocumentSource(doc4, io) {
|
|
|
238177
238918
|
};
|
|
238178
238919
|
}
|
|
238179
238920
|
async function openDocument(doc4, io, options = {}) {
|
|
238180
|
-
|
|
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
|
+
}
|
|
238181
238931
|
let editor;
|
|
238182
238932
|
try {
|
|
238183
238933
|
const isTest = false;
|
|
238184
|
-
editor = await Editor.open(Buffer.from(
|
|
238185
|
-
documentId: options.documentId ?? meta2.path ?? "
|
|
238934
|
+
editor = await Editor.open(Buffer.from(source), {
|
|
238935
|
+
documentId: options.documentId ?? meta2.path ?? "blank.docx",
|
|
238186
238936
|
user: { id: "cli", name: "CLI" },
|
|
238187
238937
|
...isTest ? { telemetry: { enabled: false } } : {},
|
|
238188
238938
|
ydoc: options.ydoc,
|
|
@@ -238301,6 +239051,7 @@ async function exportToPath(editor, outputPath, force = false) {
|
|
|
238301
239051
|
}
|
|
238302
239052
|
var init_document = __esm(() => {
|
|
238303
239053
|
init_super_editor_es();
|
|
239054
|
+
init_blank_docx();
|
|
238304
239055
|
init_document_api_adapters();
|
|
238305
239056
|
init_src();
|
|
238306
239057
|
init_collaboration();
|
|
@@ -239338,6 +240089,10 @@ var init_special_handlers = __esm(() => {
|
|
|
239338
240089
|
replace: flattenTextMutationReceipt,
|
|
239339
240090
|
delete: flattenTextMutationReceipt,
|
|
239340
240091
|
"format.apply": flattenTextMutationReceipt,
|
|
240092
|
+
"format.fontSize": flattenTextMutationReceipt,
|
|
240093
|
+
"format.fontFamily": flattenTextMutationReceipt,
|
|
240094
|
+
"format.color": flattenTextMutationReceipt,
|
|
240095
|
+
"format.align": flattenTextMutationReceipt,
|
|
239341
240096
|
getNodeById: (result, context) => {
|
|
239342
240097
|
const record = asRecord4(result);
|
|
239343
240098
|
const inputRecord = asRecord4(context.apiInput);
|
|
@@ -239442,6 +240197,10 @@ var init_invoke_input = __esm(() => {
|
|
|
239442
240197
|
"replace",
|
|
239443
240198
|
"delete",
|
|
239444
240199
|
"format.apply",
|
|
240200
|
+
"format.fontSize",
|
|
240201
|
+
"format.fontFamily",
|
|
240202
|
+
"format.color",
|
|
240203
|
+
"format.align",
|
|
239445
240204
|
"comments.create",
|
|
239446
240205
|
"comments.patch"
|
|
239447
240206
|
]);
|
|
@@ -240582,6 +241341,10 @@ var init_operation_params = __esm(() => {
|
|
|
240582
241341
|
"doc.replace": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240583
241342
|
"doc.delete": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240584
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],
|
|
240585
241348
|
"doc.comments.create": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240586
241349
|
"doc.comments.patch": [...TEXT_TARGET_FLAT_PARAMS],
|
|
240587
241350
|
"doc.lists.insert": [
|
|
@@ -240612,9 +241375,9 @@ var init_operation_params = __esm(() => {
|
|
|
240612
241375
|
"doc.open": {
|
|
240613
241376
|
command: "open",
|
|
240614
241377
|
positionalParams: ["doc"],
|
|
240615
|
-
docRequirement: "
|
|
241378
|
+
docRequirement: "none",
|
|
240616
241379
|
params: [
|
|
240617
|
-
{ name: "doc", kind: "doc", type: "string"
|
|
241380
|
+
{ name: "doc", kind: "doc", type: "string" },
|
|
240618
241381
|
SESSION_PARAM,
|
|
240619
241382
|
{ name: "collaboration", kind: "jsonFlag", flag: "collaboration-json", type: "json" },
|
|
240620
241383
|
{ name: "collabDocumentId", kind: "flag", flag: "collab-document-id", type: "string" },
|
|
@@ -241896,20 +242659,20 @@ async function runOpen(tokens, context) {
|
|
|
241896
242659
|
command: "open",
|
|
241897
242660
|
data: {
|
|
241898
242661
|
usage: [
|
|
241899
|
-
"superdoc open
|
|
241900
|
-
'superdoc open
|
|
242662
|
+
"superdoc open [doc] [--session <id>]",
|
|
242663
|
+
'superdoc open [doc] --collaboration-json "{...}" [--session <id>]'
|
|
241901
242664
|
]
|
|
241902
242665
|
},
|
|
241903
242666
|
pretty: [
|
|
241904
242667
|
"Usage:",
|
|
241905
|
-
" superdoc open
|
|
241906
|
-
' superdoc open
|
|
242668
|
+
" superdoc open [doc] [--session <id>]",
|
|
242669
|
+
' superdoc open [doc] --collaboration-json "{...}" [--session <id>]'
|
|
241907
242670
|
].join(`
|
|
241908
242671
|
`)
|
|
241909
242672
|
};
|
|
241910
242673
|
}
|
|
241911
|
-
const { doc: doc4 } =
|
|
241912
|
-
const sessionId = context.sessionId ?? generateSessionId(doc4);
|
|
242674
|
+
const { doc: doc4 } = resolveDocArg(parsed, "open");
|
|
242675
|
+
const sessionId = context.sessionId ?? generateSessionId(doc4 ?? "blank");
|
|
241913
242676
|
const collaborationPayload = await resolveJsonInput(parsed, "collaboration");
|
|
241914
242677
|
const collabUrl = getStringOption(parsed, "collab-url");
|
|
241915
242678
|
const collabDocumentId = getStringOption(parsed, "collab-document-id");
|
|
@@ -241945,6 +242708,9 @@ async function runOpen(tokens, context) {
|
|
|
241945
242708
|
revision: existing.revision
|
|
241946
242709
|
});
|
|
241947
242710
|
}
|
|
242711
|
+
if (collaboration && doc4 == null) {
|
|
242712
|
+
throw new CliError("MISSING_REQUIRED", "open: a document path is required when using collaboration.");
|
|
242713
|
+
}
|
|
241948
242714
|
const opened = collaboration ? await openCollaborativeDocument(doc4, context.io, collaboration) : await openDocument(doc4, context.io);
|
|
241949
242715
|
let adoptedToHostPool = false;
|
|
241950
242716
|
try {
|
|
@@ -241981,7 +242747,7 @@ async function runOpen(tokens, context) {
|
|
|
241981
242747
|
openedAt: metadata.openedAt,
|
|
241982
242748
|
updatedAt: metadata.updatedAt
|
|
241983
242749
|
},
|
|
241984
|
-
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})`
|
|
241985
242751
|
};
|
|
241986
242752
|
} finally {
|
|
241987
242753
|
if (!adoptedToHostPool) {
|