@superdoc-dev/cli 0.16.0-next.6 → 0.16.0-next.7
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 +634 -27
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -228922,7 +228922,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
|
|
|
228922
228922
|
init_remark_gfm_BhnWr3yf_es();
|
|
228923
228923
|
});
|
|
228924
228924
|
|
|
228925
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
228925
|
+
// ../../packages/superdoc/dist/chunks/src-BuzqViEa.es.js
|
|
228926
228926
|
function deleteProps(obj, propOrProps) {
|
|
228927
228927
|
const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
|
|
228928
228928
|
const removeNested = (target, pathParts, index2 = 0) => {
|
|
@@ -248864,9 +248864,9 @@ function findDonorMarkerFont(abstract) {
|
|
|
248864
248864
|
continue;
|
|
248865
248865
|
if (rFontsHasSymbolFont(rFonts))
|
|
248866
248866
|
continue;
|
|
248867
|
-
const family = readRFontsFamily(rFonts);
|
|
248868
|
-
if (family)
|
|
248869
|
-
return family;
|
|
248867
|
+
const family$1 = readRFontsFamily(rFonts);
|
|
248868
|
+
if (family$1)
|
|
248869
|
+
return family$1;
|
|
248870
248870
|
}
|
|
248871
248871
|
}
|
|
248872
248872
|
function normalizeLevelFontForNumFmt(lvlEl, newNumFmt) {
|
|
@@ -268105,6 +268105,181 @@ function renderPartialEmbeddedTable(params$1) {
|
|
|
268105
268105
|
hasSdtContainerChrome: tableResult.hasSdtContainerChrome
|
|
268106
268106
|
};
|
|
268107
268107
|
}
|
|
268108
|
+
function isSettled(status) {
|
|
268109
|
+
return SETTLED_STATUSES.includes(status);
|
|
268110
|
+
}
|
|
268111
|
+
function normalizeFamilyKey$1(family$1) {
|
|
268112
|
+
return family$1.trim().replace(/^["']|["']$/g, "").toLowerCase();
|
|
268113
|
+
}
|
|
268114
|
+
function splitStack(cssFontFamily) {
|
|
268115
|
+
return cssFontFamily.split(",").map((part) => part.trim()).filter(Boolean);
|
|
268116
|
+
}
|
|
268117
|
+
function physicalFor(bareFamily) {
|
|
268118
|
+
const physical = BUNDLED_SUBSTITUTES[normalizeFamilyKey$1(bareFamily)];
|
|
268119
|
+
return physical ? {
|
|
268120
|
+
physical,
|
|
268121
|
+
mapped: true
|
|
268122
|
+
} : {
|
|
268123
|
+
physical: bareFamily,
|
|
268124
|
+
mapped: false
|
|
268125
|
+
};
|
|
268126
|
+
}
|
|
268127
|
+
function resolveFontFamily2(logicalFamily) {
|
|
268128
|
+
const { physical, mapped } = physicalFor(splitStack(logicalFamily)[0] ?? logicalFamily);
|
|
268129
|
+
return {
|
|
268130
|
+
logicalFamily,
|
|
268131
|
+
physicalFamily: physical,
|
|
268132
|
+
reason: mapped ? "bundled_substitute" : "as_requested"
|
|
268133
|
+
};
|
|
268134
|
+
}
|
|
268135
|
+
function resolvePhysicalFamily(cssFontFamily) {
|
|
268136
|
+
if (!cssFontFamily)
|
|
268137
|
+
return cssFontFamily;
|
|
268138
|
+
const parts = splitStack(cssFontFamily);
|
|
268139
|
+
if (parts.length === 0)
|
|
268140
|
+
return cssFontFamily;
|
|
268141
|
+
const { physical, mapped } = physicalFor(parts[0]);
|
|
268142
|
+
if (!mapped)
|
|
268143
|
+
return cssFontFamily;
|
|
268144
|
+
return [physical, ...parts.slice(1)].join(", ");
|
|
268145
|
+
}
|
|
268146
|
+
function resolvePrimaryPhysicalFamily(family$1) {
|
|
268147
|
+
return physicalFor(splitStack(family$1)[0] ?? family$1).physical;
|
|
268148
|
+
}
|
|
268149
|
+
function resolvePhysicalFamilies(families) {
|
|
268150
|
+
const out = /* @__PURE__ */ new Set;
|
|
268151
|
+
for (const family$1 of families)
|
|
268152
|
+
if (family$1)
|
|
268153
|
+
out.add(resolvePrimaryPhysicalFamily(family$1));
|
|
268154
|
+
return [...out];
|
|
268155
|
+
}
|
|
268156
|
+
function getFontConfigVersion() {
|
|
268157
|
+
return fontConfigVersion;
|
|
268158
|
+
}
|
|
268159
|
+
function bumpFontConfigVersion() {
|
|
268160
|
+
return fontConfigVersion += 1;
|
|
268161
|
+
}
|
|
268162
|
+
function fourFaces(filePrefix) {
|
|
268163
|
+
return [
|
|
268164
|
+
{
|
|
268165
|
+
weight: "normal",
|
|
268166
|
+
style: "normal",
|
|
268167
|
+
file: `${filePrefix}-Regular.woff2`
|
|
268168
|
+
},
|
|
268169
|
+
{
|
|
268170
|
+
weight: "bold",
|
|
268171
|
+
style: "normal",
|
|
268172
|
+
file: `${filePrefix}-Bold.woff2`
|
|
268173
|
+
},
|
|
268174
|
+
{
|
|
268175
|
+
weight: "normal",
|
|
268176
|
+
style: "italic",
|
|
268177
|
+
file: `${filePrefix}-Italic.woff2`
|
|
268178
|
+
},
|
|
268179
|
+
{
|
|
268180
|
+
weight: "bold",
|
|
268181
|
+
style: "italic",
|
|
268182
|
+
file: `${filePrefix}-BoldItalic.woff2`
|
|
268183
|
+
}
|
|
268184
|
+
];
|
|
268185
|
+
}
|
|
268186
|
+
function family(name, filePrefix, license) {
|
|
268187
|
+
return {
|
|
268188
|
+
family: name,
|
|
268189
|
+
license,
|
|
268190
|
+
faces: fourFaces(filePrefix)
|
|
268191
|
+
};
|
|
268192
|
+
}
|
|
268193
|
+
function withTrailingSlash(base5) {
|
|
268194
|
+
return base5.endsWith("/") ? base5 : `${base5}/`;
|
|
268195
|
+
}
|
|
268196
|
+
function joinUrl(base5, file) {
|
|
268197
|
+
return `${withTrailingSlash(base5)}${file}`;
|
|
268198
|
+
}
|
|
268199
|
+
function weightToken(weight) {
|
|
268200
|
+
return weight === "bold" ? "700" : "400";
|
|
268201
|
+
}
|
|
268202
|
+
function bundledAssetSignature(resolve3) {
|
|
268203
|
+
const family$1 = BUNDLED_MANIFEST[0];
|
|
268204
|
+
const face = family$1?.faces[0];
|
|
268205
|
+
if (!family$1 || !face)
|
|
268206
|
+
return "";
|
|
268207
|
+
return resolve3({
|
|
268208
|
+
file: face.file,
|
|
268209
|
+
family: family$1.family,
|
|
268210
|
+
weight: weightToken(face.weight),
|
|
268211
|
+
style: face.style,
|
|
268212
|
+
source: "bundled-substitute"
|
|
268213
|
+
});
|
|
268214
|
+
}
|
|
268215
|
+
function installBundledSubstitutes(registry2, options = {}) {
|
|
268216
|
+
const resolve3 = options.resolveAssetUrl ?? ((context) => joinUrl(options.assetBaseUrl ?? defaultAssetBase, context.file));
|
|
268217
|
+
const signature = bundledAssetSignature(resolve3);
|
|
268218
|
+
const installed = installedRegistries.get(registry2);
|
|
268219
|
+
if (installed !== undefined) {
|
|
268220
|
+
if (installed !== signature)
|
|
268221
|
+
console.warn(`[superdoc] bundled fonts are already registered for this document from "${installed}"; a later fonts config resolving to "${signature}" is ignored. Use one fonts.assetBaseUrl / fonts.resolveAssetUrl per document.`);
|
|
268222
|
+
return;
|
|
268223
|
+
}
|
|
268224
|
+
installedRegistries.set(registry2, signature);
|
|
268225
|
+
for (const family$1 of BUNDLED_MANIFEST)
|
|
268226
|
+
for (const face of family$1.faces) {
|
|
268227
|
+
const context = {
|
|
268228
|
+
file: face.file,
|
|
268229
|
+
family: family$1.family,
|
|
268230
|
+
weight: weightToken(face.weight),
|
|
268231
|
+
style: face.style,
|
|
268232
|
+
source: "bundled-substitute"
|
|
268233
|
+
};
|
|
268234
|
+
registry2.register({
|
|
268235
|
+
family: family$1.family,
|
|
268236
|
+
source: `url(${resolve3(context)})`,
|
|
268237
|
+
descriptors: {
|
|
268238
|
+
weight: face.weight,
|
|
268239
|
+
style: face.style
|
|
268240
|
+
}
|
|
268241
|
+
});
|
|
268242
|
+
}
|
|
268243
|
+
}
|
|
268244
|
+
function buildFontReport(logicalFamilies, registry2) {
|
|
268245
|
+
const seen = /* @__PURE__ */ new Set;
|
|
268246
|
+
const report = [];
|
|
268247
|
+
for (const logical of logicalFamilies) {
|
|
268248
|
+
if (!logical || seen.has(logical))
|
|
268249
|
+
continue;
|
|
268250
|
+
seen.add(logical);
|
|
268251
|
+
const { physicalFamily, reason } = resolveFontFamily2(logical);
|
|
268252
|
+
const loadStatus = registry2.getStatus(physicalFamily);
|
|
268253
|
+
report.push({
|
|
268254
|
+
logicalFamily: logical,
|
|
268255
|
+
physicalFamily,
|
|
268256
|
+
reason,
|
|
268257
|
+
loadStatus,
|
|
268258
|
+
exportFamily: logical,
|
|
268259
|
+
missing: isSettled(loadStatus) && loadStatus !== "loaded"
|
|
268260
|
+
});
|
|
268261
|
+
}
|
|
268262
|
+
return report;
|
|
268263
|
+
}
|
|
268264
|
+
function quoteFamily(family$1) {
|
|
268265
|
+
return `"${family$1.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"`;
|
|
268266
|
+
}
|
|
268267
|
+
function getFontRegistryFor(fontSet, FontFaceCtor) {
|
|
268268
|
+
if (!fontSet) {
|
|
268269
|
+
if (!domlessRegistry)
|
|
268270
|
+
domlessRegistry = new FontRegistry({});
|
|
268271
|
+
return domlessRegistry;
|
|
268272
|
+
}
|
|
268273
|
+
let registry2 = registriesByFontSet.get(fontSet);
|
|
268274
|
+
if (!registry2) {
|
|
268275
|
+
registry2 = new FontRegistry({
|
|
268276
|
+
fontSet,
|
|
268277
|
+
FontFaceCtor
|
|
268278
|
+
});
|
|
268279
|
+
registriesByFontSet.set(fontSet, registry2);
|
|
268280
|
+
}
|
|
268281
|
+
return registry2;
|
|
268282
|
+
}
|
|
268108
268283
|
function isDigit(ch) {
|
|
268109
268284
|
return ch >= "0" && ch <= "9";
|
|
268110
268285
|
}
|
|
@@ -274903,8 +275078,8 @@ function isTextRun$3(run2) {
|
|
|
274903
275078
|
function fontString(run2) {
|
|
274904
275079
|
const textRun = isTextRun$3(run2) ? run2 : null;
|
|
274905
275080
|
const size$1 = textRun?.fontSize ?? 16;
|
|
274906
|
-
const family = textRun?.fontFamily ?? "Arial";
|
|
274907
|
-
return `${textRun?.italic ? "italic " : ""}${textRun?.bold ? "bold " : ""}${size$1}px ${family}`.trim();
|
|
275081
|
+
const family$1 = textRun?.fontFamily ?? "Arial";
|
|
275082
|
+
return `${textRun?.italic ? "italic " : ""}${textRun?.bold ? "bold " : ""}${size$1}px ${family$1}`.trim();
|
|
274908
275083
|
}
|
|
274909
275084
|
function runText(run2) {
|
|
274910
275085
|
if (isEmptySdtPlaceholderRun(run2))
|
|
@@ -281438,6 +281613,9 @@ function normalizeRotation(rotation) {
|
|
|
281438
281613
|
function degToRad(degrees) {
|
|
281439
281614
|
return degrees * Math.PI / 180;
|
|
281440
281615
|
}
|
|
281616
|
+
function clearMeasurementCache() {
|
|
281617
|
+
cache.clear();
|
|
281618
|
+
}
|
|
281441
281619
|
function getMeasuredTextWidth(text5, font, letterSpacing, ctx$1) {
|
|
281442
281620
|
if (text5.length > 32000)
|
|
281443
281621
|
text5 = text5.substring(0, 32000);
|
|
@@ -281518,6 +281696,9 @@ function getFontMetrics(ctx$1, fontInfo, mode, fonts) {
|
|
|
281518
281696
|
fontMetricsCache.set(key2, result);
|
|
281519
281697
|
return result;
|
|
281520
281698
|
}
|
|
281699
|
+
function clearFontMetricsCache() {
|
|
281700
|
+
fontMetricsCache.clear();
|
|
281701
|
+
}
|
|
281521
281702
|
function computeFixedTableColumnWidths(input2) {
|
|
281522
281703
|
const gridColumnCount = Math.max(0, sanitizeColumnCount(input2.gridColumnCount), Array.isArray(input2.preferredColumnWidths) ? input2.preferredColumnWidths.length : 0);
|
|
281523
281704
|
const preferredTableWidth = sanitizeOptionalWidth$1(input2.preferredTableWidth);
|
|
@@ -282583,6 +282764,10 @@ function isSlightlyUnderPreferredTableWidth(totalColumnWidth, preferredTableWidt
|
|
|
282583
282764
|
return false;
|
|
282584
282765
|
return preferredTableWidth - totalColumnWidth <= preferredTableWidth * 0.05;
|
|
282585
282766
|
}
|
|
282767
|
+
function clearTableAutoFitMeasurementCaches() {
|
|
282768
|
+
tableCellMetricsCache.clear();
|
|
282769
|
+
autoFitTableResultCache.clear();
|
|
282770
|
+
}
|
|
282586
282771
|
function buildTableCellContentMetricsCacheKey(cell2, options) {
|
|
282587
282772
|
return stableSerialize({
|
|
282588
282773
|
maxWidth: Math.max(1, Math.round(options.maxWidth)),
|
|
@@ -282920,6 +283105,12 @@ function stableSerialize(value) {
|
|
|
282920
283105
|
function isWordCharacter(value) {
|
|
282921
283106
|
return /[A-Za-z0-9]/.test(value);
|
|
282922
283107
|
}
|
|
283108
|
+
function clearTextMeasurementCaches() {
|
|
283109
|
+
clearMeasurementCache();
|
|
283110
|
+
clearFontMetricsCache();
|
|
283111
|
+
clearTableAutoFitMeasurementCaches();
|
|
283112
|
+
canvasContext = null;
|
|
283113
|
+
}
|
|
282923
283114
|
function getTableBorderWidthPx(value) {
|
|
282924
283115
|
if (value == null)
|
|
282925
283116
|
return 0;
|
|
@@ -282960,13 +283151,14 @@ function buildFontString(run2) {
|
|
|
282960
283151
|
if (run2.bold)
|
|
282961
283152
|
parts.push("bold");
|
|
282962
283153
|
parts.push(`${run2.fontSize}px`);
|
|
283154
|
+
const physicalFamily = resolvePhysicalFamily(run2.fontFamily);
|
|
282963
283155
|
if (measurementConfig.mode === "deterministic")
|
|
282964
283156
|
parts.push(measurementConfig.fonts.fallbackStack.length > 0 ? measurementConfig.fonts.fallbackStack.join(", ") : measurementConfig.fonts.deterministicFamily);
|
|
282965
283157
|
else
|
|
282966
|
-
parts.push(
|
|
283158
|
+
parts.push(physicalFamily);
|
|
282967
283159
|
return {
|
|
282968
283160
|
font: parts.join(" "),
|
|
282969
|
-
fontFamily:
|
|
283161
|
+
fontFamily: physicalFamily
|
|
282970
283162
|
};
|
|
282971
283163
|
}
|
|
282972
283164
|
function measureText(text5, font, ctx$1, _fontFamily, _letterSpacing) {
|
|
@@ -285290,6 +285482,48 @@ function ensureEndnoteMarker(blocks2, id2, endnoteNumberById, endnoteNumberForma
|
|
|
285290
285482
|
}
|
|
285291
285483
|
runs2.unshift(markerRun);
|
|
285292
285484
|
}
|
|
285485
|
+
function normalizeFamilyKey(family$1) {
|
|
285486
|
+
return family$1.trim().replace(/^["']|["']$/g, "").toLowerCase();
|
|
285487
|
+
}
|
|
285488
|
+
function summarize(results) {
|
|
285489
|
+
const summary = emptySummary();
|
|
285490
|
+
summary.results = results;
|
|
285491
|
+
for (const result of results)
|
|
285492
|
+
if (result.status === "loaded")
|
|
285493
|
+
summary.loaded += 1;
|
|
285494
|
+
else if (result.status === "failed")
|
|
285495
|
+
summary.failed += 1;
|
|
285496
|
+
else if (result.status === "timed_out")
|
|
285497
|
+
summary.timedOut += 1;
|
|
285498
|
+
else if (result.status === "fallback_used")
|
|
285499
|
+
summary.fallbackUsed += 1;
|
|
285500
|
+
return summary;
|
|
285501
|
+
}
|
|
285502
|
+
function emptySummary() {
|
|
285503
|
+
return {
|
|
285504
|
+
loaded: 0,
|
|
285505
|
+
failed: 0,
|
|
285506
|
+
timedOut: 0,
|
|
285507
|
+
fallbackUsed: 0,
|
|
285508
|
+
results: []
|
|
285509
|
+
};
|
|
285510
|
+
}
|
|
285511
|
+
function defaultFontEnvironment() {
|
|
285512
|
+
const doc$12 = globalThis.document ?? null;
|
|
285513
|
+
const view = doc$12?.defaultView ?? null;
|
|
285514
|
+
const fontSet = doc$12?.fonts ?? null;
|
|
285515
|
+
const ctor = view?.FontFace ?? (typeof FontFace !== "undefined" ? FontFace : null);
|
|
285516
|
+
if (!fontSet || !ctor)
|
|
285517
|
+
return null;
|
|
285518
|
+
return {
|
|
285519
|
+
fontSet,
|
|
285520
|
+
FontFaceCtor: ctor
|
|
285521
|
+
};
|
|
285522
|
+
}
|
|
285523
|
+
function defaultInvalidate() {
|
|
285524
|
+
clearTextMeasurementCaches();
|
|
285525
|
+
measureCache.clear();
|
|
285526
|
+
}
|
|
285293
285527
|
function buildSemanticFootnoteBlocks(input2, footnotesMode) {
|
|
285294
285528
|
if (!input2 || input2.refs.length === 0 || input2.blocksById.size === 0)
|
|
285295
285529
|
return [];
|
|
@@ -308423,7 +308657,143 @@ menclose::after {
|
|
|
308423
308657
|
const visualTextEndOffset = lineEl.dir === "rtl" || lineEl.style.direction === "rtl" ? alignmentOffset : alignmentOffset + lineWidth;
|
|
308424
308658
|
mark2.style.left = `${Math.max(0, leftOffsetPx + visualTextEndOffset)}px`;
|
|
308425
308659
|
lineEl.appendChild(mark2);
|
|
308426
|
-
},
|
|
308660
|
+
}, SETTLED_STATUSES, BUNDLED_SUBSTITUTES, fontConfigVersion = 0, BUNDLED_MANIFEST, defaultAssetBase = "/fonts/", installedRegistries, DEFAULT_FONT_LOAD_TIMEOUT_MS = 3000, DEFAULT_PROBE_SIZE = "16px", FontRegistry = class {
|
|
308661
|
+
#fontSet;
|
|
308662
|
+
#FontFaceCtor;
|
|
308663
|
+
#probeSize;
|
|
308664
|
+
#scheduleTimeout;
|
|
308665
|
+
#cancelTimeout;
|
|
308666
|
+
#managed = /* @__PURE__ */ new Map;
|
|
308667
|
+
#status = /* @__PURE__ */ new Map;
|
|
308668
|
+
#sources = /* @__PURE__ */ new Map;
|
|
308669
|
+
#warnedFailures = /* @__PURE__ */ new Set;
|
|
308670
|
+
#inflight = /* @__PURE__ */ new Map;
|
|
308671
|
+
constructor(options = {}) {
|
|
308672
|
+
this.#fontSet = options.fontSet ?? null;
|
|
308673
|
+
this.#FontFaceCtor = options.FontFaceCtor ?? null;
|
|
308674
|
+
this.#probeSize = options.probeSize ?? DEFAULT_PROBE_SIZE;
|
|
308675
|
+
this.#scheduleTimeout = options.scheduleTimeout ?? ((cb, ms) => globalThis.setTimeout(cb, ms));
|
|
308676
|
+
this.#cancelTimeout = options.cancelTimeout ?? ((handle3) => globalThis.clearTimeout(handle3));
|
|
308677
|
+
}
|
|
308678
|
+
register(descriptor) {
|
|
308679
|
+
const { family: family$1, source, descriptors: descriptors2 } = descriptor;
|
|
308680
|
+
if (this.#FontFaceCtor && this.#fontSet) {
|
|
308681
|
+
const face = new this.#FontFaceCtor(family$1, source, descriptors2);
|
|
308682
|
+
this.#fontSet.add(face);
|
|
308683
|
+
this.#managed.set(family$1, face);
|
|
308684
|
+
}
|
|
308685
|
+
if (typeof source === "string") {
|
|
308686
|
+
const list5 = this.#sources.get(family$1) ?? [];
|
|
308687
|
+
if (!list5.includes(source))
|
|
308688
|
+
list5.push(source);
|
|
308689
|
+
this.#sources.set(family$1, list5);
|
|
308690
|
+
}
|
|
308691
|
+
if (!this.#status.has(family$1))
|
|
308692
|
+
this.#status.set(family$1, "unloaded");
|
|
308693
|
+
return {
|
|
308694
|
+
family: family$1,
|
|
308695
|
+
status: this.#status.get(family$1) ?? "unloaded"
|
|
308696
|
+
};
|
|
308697
|
+
}
|
|
308698
|
+
isManaged(family$1) {
|
|
308699
|
+
return this.#managed.has(family$1);
|
|
308700
|
+
}
|
|
308701
|
+
getStatus(family$1) {
|
|
308702
|
+
return this.#status.get(family$1) ?? "unloaded";
|
|
308703
|
+
}
|
|
308704
|
+
isAvailable(family$1) {
|
|
308705
|
+
if (!this.#fontSet)
|
|
308706
|
+
return false;
|
|
308707
|
+
try {
|
|
308708
|
+
return this.#fontSet.check(`${this.#probeSize} ${quoteFamily(family$1)}`);
|
|
308709
|
+
} catch {
|
|
308710
|
+
return false;
|
|
308711
|
+
}
|
|
308712
|
+
}
|
|
308713
|
+
awaitFace(family$1, timeoutMs = DEFAULT_FONT_LOAD_TIMEOUT_MS) {
|
|
308714
|
+
if (this.#status.get(family$1) === "loaded")
|
|
308715
|
+
return Promise.resolve({
|
|
308716
|
+
family: family$1,
|
|
308717
|
+
status: "loaded"
|
|
308718
|
+
});
|
|
308719
|
+
const existing = this.#inflight.get(family$1);
|
|
308720
|
+
if (existing)
|
|
308721
|
+
return existing;
|
|
308722
|
+
const probe = this.#loadOne(family$1, timeoutMs).finally(() => {
|
|
308723
|
+
this.#inflight.delete(family$1);
|
|
308724
|
+
});
|
|
308725
|
+
this.#inflight.set(family$1, probe);
|
|
308726
|
+
return probe;
|
|
308727
|
+
}
|
|
308728
|
+
async awaitFaces(families, options = {}) {
|
|
308729
|
+
const unique$2 = [...new Set(families)];
|
|
308730
|
+
const timeoutMs = options.timeoutMs ?? 3000;
|
|
308731
|
+
return Promise.all(unique$2.map((family$1) => this.awaitFace(family$1, timeoutMs)));
|
|
308732
|
+
}
|
|
308733
|
+
getRequiredFaces(families, timeoutMs = DEFAULT_FONT_LOAD_TIMEOUT_MS) {
|
|
308734
|
+
return [...new Set(families)].map((family$1) => ({
|
|
308735
|
+
family: family$1,
|
|
308736
|
+
status: this.getStatus(family$1),
|
|
308737
|
+
ready: this.awaitFace(family$1, timeoutMs)
|
|
308738
|
+
}));
|
|
308739
|
+
}
|
|
308740
|
+
getStates() {
|
|
308741
|
+
return [...this.#status.entries()].map(([family$1, status]) => ({
|
|
308742
|
+
family: family$1,
|
|
308743
|
+
status
|
|
308744
|
+
}));
|
|
308745
|
+
}
|
|
308746
|
+
async#loadOne(family$1, timeoutMs) {
|
|
308747
|
+
const fontSet = this.#fontSet;
|
|
308748
|
+
if (!fontSet) {
|
|
308749
|
+
this.#status.set(family$1, "fallback_used");
|
|
308750
|
+
return {
|
|
308751
|
+
family: family$1,
|
|
308752
|
+
status: "fallback_used"
|
|
308753
|
+
};
|
|
308754
|
+
}
|
|
308755
|
+
this.#status.set(family$1, "loading");
|
|
308756
|
+
const probe = `${this.#probeSize} ${quoteFamily(family$1)}`;
|
|
308757
|
+
const TIMEOUT = Symbol("timeout");
|
|
308758
|
+
let handle3;
|
|
308759
|
+
const timeout$1 = new Promise((resolve3) => {
|
|
308760
|
+
handle3 = this.#scheduleTimeout(() => resolve3(TIMEOUT), timeoutMs);
|
|
308761
|
+
});
|
|
308762
|
+
try {
|
|
308763
|
+
const settled = await Promise.race([fontSet.load(probe), timeout$1]);
|
|
308764
|
+
if (settled === TIMEOUT) {
|
|
308765
|
+
this.#status.set(family$1, "timed_out");
|
|
308766
|
+
return {
|
|
308767
|
+
family: family$1,
|
|
308768
|
+
status: "timed_out"
|
|
308769
|
+
};
|
|
308770
|
+
}
|
|
308771
|
+
const status = settled.length > 0 ? "loaded" : "fallback_used";
|
|
308772
|
+
this.#status.set(family$1, status);
|
|
308773
|
+
return {
|
|
308774
|
+
family: family$1,
|
|
308775
|
+
status
|
|
308776
|
+
};
|
|
308777
|
+
} catch {
|
|
308778
|
+
this.#status.set(family$1, "failed");
|
|
308779
|
+
this.#warnLoadFailureOnce(family$1);
|
|
308780
|
+
return {
|
|
308781
|
+
family: family$1,
|
|
308782
|
+
status: "failed"
|
|
308783
|
+
};
|
|
308784
|
+
} finally {
|
|
308785
|
+
this.#cancelTimeout(handle3);
|
|
308786
|
+
}
|
|
308787
|
+
}
|
|
308788
|
+
#warnLoadFailureOnce(family$1) {
|
|
308789
|
+
if (this.#warnedFailures.has(family$1))
|
|
308790
|
+
return;
|
|
308791
|
+
this.#warnedFailures.add(family$1);
|
|
308792
|
+
const sources = this.#sources.get(family$1);
|
|
308793
|
+
const detail = sources && sources.length ? ` from ${sources.join(", ")}` : "";
|
|
308794
|
+
console.warn(`[superdoc] font asset failed to load for "${family$1}"${detail}. Check fonts.assetBaseUrl / fonts.resolveAssetUrl so the bundled .woff2 are served.`);
|
|
308795
|
+
}
|
|
308796
|
+
}, registriesByFontSet, domlessRegistry = null, DEFAULT_SUPERSCRIPT_RAISE_RATIO = 0.33, DEFAULT_SUBSCRIPT_LOWER_RATIO = 0.14, hasVerticalPositioning = (run2) => normalizeBaselineShift(run2.baselineShift) != null || run2.vertAlign === "superscript" || run2.vertAlign === "subscript", applyRunVerticalPositioning = (element3, run2) => {
|
|
308427
308797
|
if (hasVerticalPositioning(run2))
|
|
308428
308798
|
element3.style.lineHeight = "1";
|
|
308429
308799
|
const explicitBaselineShift = normalizeBaselineShift(run2.baselineShift);
|
|
@@ -308446,7 +308816,7 @@ menclose::after {
|
|
|
308446
308816
|
}, applyRunStyles = (element3, run2, _isLink = false) => {
|
|
308447
308817
|
if (run2.kind === "tab" || run2.kind === "image" || run2.kind === "lineBreak" || run2.kind === "break" || run2.kind === "fieldAnnotation" || run2.kind === "math")
|
|
308448
308818
|
return;
|
|
308449
|
-
element3.style.fontFamily = run2.fontFamily;
|
|
308819
|
+
element3.style.fontFamily = resolvePhysicalFamily(run2.fontFamily);
|
|
308450
308820
|
element3.style.fontSize = `${run2.fontSize}px`;
|
|
308451
308821
|
if (run2.bold)
|
|
308452
308822
|
element3.style.fontWeight = "bold";
|
|
@@ -312612,6 +312982,7 @@ menclose::after {
|
|
|
312612
312982
|
return [
|
|
312613
312983
|
textRun.text ?? "",
|
|
312614
312984
|
textRun.fontFamily,
|
|
312985
|
+
getFontConfigVersion(),
|
|
312615
312986
|
textRun.fontSize,
|
|
312616
312987
|
textRun.bold ? 1 : 0,
|
|
312617
312988
|
textRun.italic ? 1 : 0,
|
|
@@ -313816,8 +314187,8 @@ menclose::after {
|
|
|
313816
314187
|
return typeof width === "number" ? width : 0;
|
|
313817
314188
|
}, isLineBreakRun$1 = (run2) => run2.kind === "lineBreak" || run2.kind === "break" && run2.breakType === "line", markerFontString = (run2) => {
|
|
313818
314189
|
const size$1 = run2?.fontSize ?? 16;
|
|
313819
|
-
const family = run2?.fontFamily ?? "Arial";
|
|
313820
|
-
return `${run2?.italic ? "italic " : ""}${run2?.bold ? "bold " : ""}${size$1}px ${family}`.trim();
|
|
314190
|
+
const family$1 = run2?.fontFamily ?? "Arial";
|
|
314191
|
+
return `${run2?.italic ? "italic " : ""}${run2?.bold ? "bold " : ""}${size$1}px ${family$1}`.trim();
|
|
313821
314192
|
}, buildTabStopsPx$1 = (indent2, tabs, tabIntervalTwips) => {
|
|
313822
314193
|
const paragraphIndentTwips = {
|
|
313823
314194
|
left: pxToTwips$1(sanitizeIndent$1(indent2?.left)),
|
|
@@ -321048,7 +321419,134 @@ menclose::after {
|
|
|
321048
321419
|
}
|
|
321049
321420
|
}
|
|
321050
321421
|
}
|
|
321051
|
-
}, ENDNOTE_MARKER_DATA_ATTR = "data-sd-endnote-number", DEFAULT_MARKER_FONT_FAMILY = "Arial", DEFAULT_MARKER_FONT_SIZE = 12,
|
|
321422
|
+
}, ENDNOTE_MARKER_DATA_ATTR = "data-sd-endnote-number", DEFAULT_MARKER_FONT_FAMILY = "Arial", DEFAULT_MARKER_FONT_SIZE = 12, FontReadinessGate = class {
|
|
321423
|
+
#getDocumentFonts;
|
|
321424
|
+
#resolveFamilies;
|
|
321425
|
+
#requestReflow;
|
|
321426
|
+
#getFontEnvironment;
|
|
321427
|
+
#registryOverride;
|
|
321428
|
+
#onRegistryResolved;
|
|
321429
|
+
#timeoutMs;
|
|
321430
|
+
#invalidateCaches;
|
|
321431
|
+
#context = null;
|
|
321432
|
+
#fontConfigVersion = 0;
|
|
321433
|
+
#requiredSignature = "";
|
|
321434
|
+
#requiredFamilies = /* @__PURE__ */ new Set;
|
|
321435
|
+
#seenAvailable = /* @__PURE__ */ new Set;
|
|
321436
|
+
#lastSummary = null;
|
|
321437
|
+
#loadingDoneHandler = null;
|
|
321438
|
+
constructor(options) {
|
|
321439
|
+
this.#getDocumentFonts = options.getDocumentFonts;
|
|
321440
|
+
this.#resolveFamilies = options.resolveFamilies ?? ((families) => families);
|
|
321441
|
+
this.#requestReflow = options.requestReflow;
|
|
321442
|
+
this.#getFontEnvironment = options.getFontEnvironment ?? defaultFontEnvironment;
|
|
321443
|
+
this.#registryOverride = options.registry ?? null;
|
|
321444
|
+
this.#onRegistryResolved = options.onRegistryResolved ?? null;
|
|
321445
|
+
this.#timeoutMs = options.timeoutMs ?? 3000;
|
|
321446
|
+
this.#invalidateCaches = options.invalidateCaches ?? defaultInvalidate;
|
|
321447
|
+
}
|
|
321448
|
+
get fontConfigVersion() {
|
|
321449
|
+
return this.#fontConfigVersion;
|
|
321450
|
+
}
|
|
321451
|
+
getDiagnostics() {
|
|
321452
|
+
return this.#lastSummary;
|
|
321453
|
+
}
|
|
321454
|
+
getReport() {
|
|
321455
|
+
let logical = [];
|
|
321456
|
+
try {
|
|
321457
|
+
logical = this.#getDocumentFonts();
|
|
321458
|
+
} catch {
|
|
321459
|
+
return [];
|
|
321460
|
+
}
|
|
321461
|
+
return buildFontReport(logical, this.#resolveContext().registry);
|
|
321462
|
+
}
|
|
321463
|
+
async ensureReadyForMeasure() {
|
|
321464
|
+
const registry2 = this.#resolveContext().registry;
|
|
321465
|
+
let required;
|
|
321466
|
+
try {
|
|
321467
|
+
required = [...new Set(this.#resolveFamilies(this.#getDocumentFonts()).filter(Boolean))];
|
|
321468
|
+
} catch {
|
|
321469
|
+
return this.#lastSummary ?? emptySummary();
|
|
321470
|
+
}
|
|
321471
|
+
const signature = required.slice().sort().join("|");
|
|
321472
|
+
if (signature === this.#requiredSignature && required.every((family$1) => registry2.getStatus(family$1) === "loaded") && this.#lastSummary)
|
|
321473
|
+
return this.#lastSummary;
|
|
321474
|
+
this.#requiredSignature = signature;
|
|
321475
|
+
this.#requiredFamilies = new Set(required);
|
|
321476
|
+
this.#ensureSubscribed();
|
|
321477
|
+
let results = [];
|
|
321478
|
+
try {
|
|
321479
|
+
results = required.length ? await registry2.awaitFaces(required, { timeoutMs: this.#timeoutMs }) : [];
|
|
321480
|
+
} catch {
|
|
321481
|
+
results = [];
|
|
321482
|
+
}
|
|
321483
|
+
for (const result of results)
|
|
321484
|
+
if (result.status === "loaded")
|
|
321485
|
+
this.#seenAvailable.add(result.family);
|
|
321486
|
+
this.#lastSummary = summarize(results);
|
|
321487
|
+
return this.#lastSummary;
|
|
321488
|
+
}
|
|
321489
|
+
notifyFontConfigChanged() {
|
|
321490
|
+
this.#fontConfigVersion += 1;
|
|
321491
|
+
bumpFontConfigVersion();
|
|
321492
|
+
this.#seenAvailable.clear();
|
|
321493
|
+
this.#requiredSignature = "";
|
|
321494
|
+
this.#invalidateCaches();
|
|
321495
|
+
this.#requestReflow();
|
|
321496
|
+
}
|
|
321497
|
+
dispose() {
|
|
321498
|
+
const fontSet = this.#context?.fontSet ?? null;
|
|
321499
|
+
if (fontSet && this.#loadingDoneHandler && typeof fontSet.removeEventListener === "function")
|
|
321500
|
+
fontSet.removeEventListener("loadingdone", this.#loadingDoneHandler);
|
|
321501
|
+
this.#loadingDoneHandler = null;
|
|
321502
|
+
}
|
|
321503
|
+
#resolveContext() {
|
|
321504
|
+
if (this.#context && this.#context.fontSet)
|
|
321505
|
+
return this.#context;
|
|
321506
|
+
const env2 = this.#getFontEnvironment();
|
|
321507
|
+
const fontSet = env2?.fontSet ?? null;
|
|
321508
|
+
const registry2 = this.#registryOverride ?? getFontRegistryFor(fontSet, env2?.FontFaceCtor ?? null);
|
|
321509
|
+
this.#context = {
|
|
321510
|
+
fontSet,
|
|
321511
|
+
registry: registry2
|
|
321512
|
+
};
|
|
321513
|
+
if (fontSet && this.#onRegistryResolved)
|
|
321514
|
+
try {
|
|
321515
|
+
this.#onRegistryResolved(registry2);
|
|
321516
|
+
} catch {}
|
|
321517
|
+
return this.#context;
|
|
321518
|
+
}
|
|
321519
|
+
#ensureSubscribed() {
|
|
321520
|
+
if (this.#loadingDoneHandler)
|
|
321521
|
+
return;
|
|
321522
|
+
const fontSet = this.#resolveContext().fontSet;
|
|
321523
|
+
if (!fontSet || typeof fontSet.addEventListener !== "function")
|
|
321524
|
+
return;
|
|
321525
|
+
const handler2 = (event) => this.#onLoadingDone(event);
|
|
321526
|
+
fontSet.addEventListener("loadingdone", handler2);
|
|
321527
|
+
this.#loadingDoneHandler = handler2;
|
|
321528
|
+
}
|
|
321529
|
+
#onLoadingDone(event) {
|
|
321530
|
+
const loadedKeys = new Set((event?.fontfaces ?? []).map((face) => normalizeFamilyKey(face.family)));
|
|
321531
|
+
if (loadedKeys.size === 0)
|
|
321532
|
+
return;
|
|
321533
|
+
let changed = false;
|
|
321534
|
+
for (const family$1 of this.#requiredFamilies) {
|
|
321535
|
+
if (this.#seenAvailable.has(family$1))
|
|
321536
|
+
continue;
|
|
321537
|
+
if (loadedKeys.has(normalizeFamilyKey(family$1))) {
|
|
321538
|
+
this.#seenAvailable.add(family$1);
|
|
321539
|
+
changed = true;
|
|
321540
|
+
}
|
|
321541
|
+
}
|
|
321542
|
+
if (!changed)
|
|
321543
|
+
return;
|
|
321544
|
+
this.#fontConfigVersion += 1;
|
|
321545
|
+
bumpFontConfigVersion();
|
|
321546
|
+
this.#invalidateCaches();
|
|
321547
|
+
this.#requestReflow();
|
|
321548
|
+
}
|
|
321549
|
+
}, DEFAULT_SEMANTIC_FOOTNOTE_HEADING_STYLE, NATIVE_SELECTION_STYLES = `
|
|
321052
321550
|
/* Hide native browser selection on layout engine content.
|
|
321053
321551
|
* We render our own selection overlay via PresentationEditor's #localSelectionLayer
|
|
321054
321552
|
* for precise control over selection geometry across pages and zoom levels. */
|
|
@@ -321125,7 +321623,7 @@ menclose::after {
|
|
|
321125
321623
|
return;
|
|
321126
321624
|
console.log(...args$1);
|
|
321127
321625
|
}, HEADER_FOOTER_INIT_BUDGET_MS = 200, MAX_ZOOM_WARNING_THRESHOLD = 10, MAX_SELECTION_RECTS_PER_USER = 100, SEMANTIC_RESIZE_DEBOUNCE_MS = 120, MIN_SEMANTIC_CONTENT_WIDTH_PX = 1, GLOBAL_PERFORMANCE, PresentationEditor, ICONS, TEXTS, tableActionsOptions, TRACKED_MARK_NAMES;
|
|
321128
|
-
var
|
|
321626
|
+
var init_src_BuzqViEa_es = __esm(() => {
|
|
321129
321627
|
init_rolldown_runtime_Bg48TavK_es();
|
|
321130
321628
|
init_SuperConverter_b2GjELX4_es();
|
|
321131
321629
|
init_jszip_C49i9kUs_es();
|
|
@@ -345591,6 +346089,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
345591
346089
|
this.on("comment-positions", this.options.onCommentLocationsUpdate);
|
|
345592
346090
|
this.on("list-definitions-change", this.options.onListDefinitionsChange);
|
|
345593
346091
|
this.on("fonts-resolved", this.options.onFontsResolved);
|
|
346092
|
+
if (this.options.onFontsChanged)
|
|
346093
|
+
this.on("fonts-changed", this.options.onFontsChanged);
|
|
345594
346094
|
this.on("exception", this.options.onException);
|
|
345595
346095
|
this.on("pointerDown", this.options.onPointerDown);
|
|
345596
346096
|
this.#trackContentControlPointer();
|
|
@@ -345811,6 +346311,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
345811
346311
|
this.on("comment-positions", this.options.onCommentLocationsUpdate);
|
|
345812
346312
|
this.on("list-definitions-change", this.options.onListDefinitionsChange);
|
|
345813
346313
|
this.on("fonts-resolved", this.options.onFontsResolved);
|
|
346314
|
+
if (this.options.onFontsChanged)
|
|
346315
|
+
this.on("fonts-changed", this.options.onFontsChanged);
|
|
345814
346316
|
this.on("exception", this.options.onException);
|
|
345815
346317
|
this.on("pointerDown", this.options.onPointerDown);
|
|
345816
346318
|
this.#trackContentControlPointer();
|
|
@@ -347844,6 +348346,28 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
347844
348346
|
"sdtDocpartId",
|
|
347845
348347
|
"sdtDocpartInstruction"
|
|
347846
348348
|
];
|
|
348349
|
+
SETTLED_STATUSES = [
|
|
348350
|
+
"loaded",
|
|
348351
|
+
"failed",
|
|
348352
|
+
"timed_out",
|
|
348353
|
+
"fallback_used"
|
|
348354
|
+
];
|
|
348355
|
+
BUNDLED_SUBSTITUTES = Object.freeze({
|
|
348356
|
+
calibri: "Carlito",
|
|
348357
|
+
cambria: "Caladea",
|
|
348358
|
+
arial: "Liberation Sans",
|
|
348359
|
+
"times new roman": "Liberation Serif",
|
|
348360
|
+
"courier new": "Liberation Mono"
|
|
348361
|
+
});
|
|
348362
|
+
BUNDLED_MANIFEST = Object.freeze([
|
|
348363
|
+
family("Carlito", "Carlito", "OFL-1.1"),
|
|
348364
|
+
family("Caladea", "Caladea", "Apache-2.0"),
|
|
348365
|
+
family("Liberation Sans", "LiberationSans", "OFL-1.1"),
|
|
348366
|
+
family("Liberation Serif", "LiberationSerif", "OFL-1.1"),
|
|
348367
|
+
family("Liberation Mono", "LiberationMono", "OFL-1.1")
|
|
348368
|
+
]);
|
|
348369
|
+
installedRegistries = /* @__PURE__ */ new WeakMap;
|
|
348370
|
+
registriesByFontSet = /* @__PURE__ */ new WeakMap;
|
|
347847
348371
|
OPERATOR_CHARS = new Set([
|
|
347848
348372
|
"+",
|
|
347849
348373
|
"-",
|
|
@@ -349001,6 +349525,9 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
349001
349525
|
#pendingMapping = null;
|
|
349002
349526
|
#isRerendering = false;
|
|
349003
349527
|
#selectionSync = new SelectionSyncCoordinator;
|
|
349528
|
+
#fontGate = null;
|
|
349529
|
+
#lastFontsChangedKey = null;
|
|
349530
|
+
#lastFontsChangedPayload = null;
|
|
349004
349531
|
#shouldScrollSelectionIntoView = false;
|
|
349005
349532
|
#suppressSelectionScrollUntilRaf = false;
|
|
349006
349533
|
#dragDropIndicatorPos = null;
|
|
@@ -349277,6 +349804,36 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
349277
349804
|
this.#editor.presentationEditor = this;
|
|
349278
349805
|
this.#editor._presentationEditor = this;
|
|
349279
349806
|
this.#syncHiddenEditorA11yAttributes();
|
|
349807
|
+
this.#fontGate = new FontReadinessGate({
|
|
349808
|
+
getDocumentFonts: () => {
|
|
349809
|
+
return this.#editor.converter?.getDocumentFonts?.() ?? [];
|
|
349810
|
+
},
|
|
349811
|
+
requestReflow: () => {
|
|
349812
|
+
this.#layoutState = {
|
|
349813
|
+
...this.#layoutState,
|
|
349814
|
+
blocks: [],
|
|
349815
|
+
measures: [],
|
|
349816
|
+
layout: null
|
|
349817
|
+
};
|
|
349818
|
+
this.#pendingDocChange = true;
|
|
349819
|
+
this.#scheduleRerender();
|
|
349820
|
+
},
|
|
349821
|
+
resolveFamilies: resolvePhysicalFamilies,
|
|
349822
|
+
onRegistryResolved: (registry2) => installBundledSubstitutes(registry2, {
|
|
349823
|
+
assetBaseUrl: this.#options.fontAssets?.assetBaseUrl,
|
|
349824
|
+
resolveAssetUrl: this.#options.fontAssets?.resolveAssetUrl
|
|
349825
|
+
}),
|
|
349826
|
+
getFontEnvironment: () => {
|
|
349827
|
+
const ownerDoc = this.#visibleHost?.ownerDocument ?? (typeof document !== "undefined" ? document : null);
|
|
349828
|
+
const view = ownerDoc?.defaultView ?? (typeof window !== "undefined" ? window : null);
|
|
349829
|
+
const fontSet = ownerDoc?.fonts ?? null;
|
|
349830
|
+
const FontFaceCtor = view?.FontFace ?? (typeof FontFace !== "undefined" ? FontFace : null);
|
|
349831
|
+
return fontSet && FontFaceCtor ? {
|
|
349832
|
+
fontSet,
|
|
349833
|
+
FontFaceCtor
|
|
349834
|
+
} : null;
|
|
349835
|
+
}
|
|
349836
|
+
});
|
|
349280
349837
|
if (typeof this.#options.disableContextMenu === "boolean")
|
|
349281
349838
|
this.setContextMenuDisabled(this.#options.disableContextMenu);
|
|
349282
349839
|
this.#setupHeaderFooterSession();
|
|
@@ -350211,6 +350768,50 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
350211
350768
|
sectionMetadata: this.#sectionMetadata
|
|
350212
350769
|
};
|
|
350213
350770
|
}
|
|
350771
|
+
getFontReport() {
|
|
350772
|
+
return this.#fontGate?.getReport() ?? [];
|
|
350773
|
+
}
|
|
350774
|
+
getMissingFonts() {
|
|
350775
|
+
return this.getFontReport().filter((record) => record.missing).map((record) => record.logicalFamily);
|
|
350776
|
+
}
|
|
350777
|
+
#emitFontsChangedIfChanged(summary) {
|
|
350778
|
+
const gate = this.#fontGate;
|
|
350779
|
+
if (!gate)
|
|
350780
|
+
return;
|
|
350781
|
+
const version$1 = gate.fontConfigVersion;
|
|
350782
|
+
const key2 = `${version$1}|${summary ? summary.results.map((result) => `${result.family}:${result.status}`).sort().join(",") : ""}`;
|
|
350783
|
+
if (key2 === this.#lastFontsChangedKey)
|
|
350784
|
+
return;
|
|
350785
|
+
const isInitial = this.#lastFontsChangedKey === null;
|
|
350786
|
+
this.#lastFontsChangedKey = key2;
|
|
350787
|
+
let resolutions;
|
|
350788
|
+
try {
|
|
350789
|
+
resolutions = gate.getReport();
|
|
350790
|
+
} catch {
|
|
350791
|
+
return;
|
|
350792
|
+
}
|
|
350793
|
+
const payload = {
|
|
350794
|
+
documentFonts: resolutions.map((record) => record.logicalFamily),
|
|
350795
|
+
resolutions,
|
|
350796
|
+
missingFonts: resolutions.filter((record) => record.missing).map((record) => record.logicalFamily),
|
|
350797
|
+
loadSummary: summary ?? {
|
|
350798
|
+
loaded: 0,
|
|
350799
|
+
failed: 0,
|
|
350800
|
+
timedOut: 0,
|
|
350801
|
+
fallbackUsed: 0,
|
|
350802
|
+
results: []
|
|
350803
|
+
},
|
|
350804
|
+
source: isInitial ? "initial" : "late-load",
|
|
350805
|
+
version: version$1
|
|
350806
|
+
};
|
|
350807
|
+
this.#lastFontsChangedPayload = payload;
|
|
350808
|
+
try {
|
|
350809
|
+
this.#editor.emit("fonts-changed", payload);
|
|
350810
|
+
} catch {}
|
|
350811
|
+
}
|
|
350812
|
+
getLastFontsChangedPayload() {
|
|
350813
|
+
return this.#lastFontsChangedPayload;
|
|
350814
|
+
}
|
|
350214
350815
|
getLayoutOptions() {
|
|
350215
350816
|
return { ...this.#layoutOptions };
|
|
350216
350817
|
}
|
|
@@ -351078,6 +351679,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
351078
351679
|
this.#postPaintPipeline.destroy();
|
|
351079
351680
|
this.#proofingManager?.dispose();
|
|
351080
351681
|
this.#proofingManager = null;
|
|
351682
|
+
this.#fontGate?.dispose();
|
|
351683
|
+
this.#fontGate = null;
|
|
351081
351684
|
if (this.#cursorUpdateTimer !== null) {
|
|
351082
351685
|
clearTimeout(this.#cursorUpdateTimer);
|
|
351083
351686
|
this.#cursorUpdateTimer = null;
|
|
@@ -352560,6 +353163,10 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
352560
353163
|
let extraMeasures;
|
|
352561
353164
|
let resolveBlocks = blocksForLayout;
|
|
352562
353165
|
let resolveMeasures = previousMeasures;
|
|
353166
|
+
try {
|
|
353167
|
+
const fontSummary = await this.#fontGate?.ensureReadyForMeasure() ?? null;
|
|
353168
|
+
this.#emitFontsChangedIfChanged(fontSummary);
|
|
353169
|
+
} catch {}
|
|
352563
353170
|
const headerFooterInput = this.#buildHeaderFooterInput();
|
|
352564
353171
|
try {
|
|
352565
353172
|
const incrementalLayoutStart = perfNow();
|
|
@@ -355380,7 +355987,7 @@ var init_zipper_yaJVJ4z9_es = __esm(() => {
|
|
|
355380
355987
|
|
|
355381
355988
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
355382
355989
|
var init_super_editor_es = __esm(() => {
|
|
355383
|
-
|
|
355990
|
+
init_src_BuzqViEa_es();
|
|
355384
355991
|
init_SuperConverter_b2GjELX4_es();
|
|
355385
355992
|
init_jszip_C49i9kUs_es();
|
|
355386
355993
|
init_xml_js_CqGKpaft_es();
|
|
@@ -404149,8 +404756,8 @@ function mapInvokeError(operationId, error4, context) {
|
|
|
404149
404756
|
if (error4 instanceof CliError)
|
|
404150
404757
|
return error4;
|
|
404151
404758
|
const code7 = extractErrorCode(error4);
|
|
404152
|
-
const
|
|
404153
|
-
return FAMILY_MAPPERS[
|
|
404759
|
+
const family2 = resolveOperationFamily(operationId);
|
|
404760
|
+
return FAMILY_MAPPERS[family2](operationId, error4, code7, context);
|
|
404154
404761
|
}
|
|
404155
404762
|
function isReceiptLike(value2) {
|
|
404156
404763
|
if (typeof value2 !== "object" || value2 == null)
|
|
@@ -404163,7 +404770,7 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404163
404770
|
if (result2.success)
|
|
404164
404771
|
return null;
|
|
404165
404772
|
const failure2 = result2.failure;
|
|
404166
|
-
const
|
|
404773
|
+
const family2 = resolveOperationFamily(operationId);
|
|
404167
404774
|
if (!failure2) {
|
|
404168
404775
|
return new CliError("COMMAND_FAILED", `${operationId}: operation failed.`, { operationId });
|
|
404169
404776
|
}
|
|
@@ -404172,7 +404779,7 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404172
404779
|
if (failureCode && PLAN_ENGINE_PASSTHROUGH_CODES.has(failureCode)) {
|
|
404173
404780
|
return new CliError(failureCode, failureMessage, { operationId, failure: failure2 });
|
|
404174
404781
|
}
|
|
404175
|
-
if (
|
|
404782
|
+
if (family2 === "trackChanges") {
|
|
404176
404783
|
if (operationId === "trackChanges.decide" && failureCode === "TARGET_NOT_FOUND") {
|
|
404177
404784
|
if (isTrackChangesReviewHelper(operationId, context)) {
|
|
404178
404785
|
return new CliError("TRACK_CHANGE_NOT_FOUND", failureMessage, { operationId, failure: failure2 });
|
|
@@ -404187,7 +404794,7 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404187
404794
|
}
|
|
404188
404795
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure: failure2 });
|
|
404189
404796
|
}
|
|
404190
|
-
if (
|
|
404797
|
+
if (family2 === "comments") {
|
|
404191
404798
|
if (failureCode === "TARGET_NOT_FOUND") {
|
|
404192
404799
|
return new CliError("TARGET_NOT_FOUND", failureMessage, { operationId, failure: failure2 });
|
|
404193
404800
|
}
|
|
@@ -404196,7 +404803,7 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404196
404803
|
}
|
|
404197
404804
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure: failure2 });
|
|
404198
404805
|
}
|
|
404199
|
-
if (
|
|
404806
|
+
if (family2 === "lists") {
|
|
404200
404807
|
if (failureCode === "INVALID_TARGET") {
|
|
404201
404808
|
return new CliError("INVALID_TARGET", failureMessage, { operationId, failure: failure2 });
|
|
404202
404809
|
}
|
|
@@ -404205,7 +404812,7 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404205
404812
|
}
|
|
404206
404813
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure: failure2 });
|
|
404207
404814
|
}
|
|
404208
|
-
if (
|
|
404815
|
+
if (family2 === "textMutation") {
|
|
404209
404816
|
if (failureCode === "TRACK_CHANGE_COMMAND_UNAVAILABLE" || failureCode === "CAPABILITY_UNAVAILABLE") {
|
|
404210
404817
|
return new CliError("TRACK_CHANGE_COMMAND_UNAVAILABLE", failureMessage, { operationId, failure: failure2 });
|
|
404211
404818
|
}
|
|
@@ -404214,13 +404821,13 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404214
404821
|
}
|
|
404215
404822
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure: failure2 });
|
|
404216
404823
|
}
|
|
404217
|
-
if (
|
|
404824
|
+
if (family2 === "blocks") {
|
|
404218
404825
|
if (failureCode === "INVALID_TARGET") {
|
|
404219
404826
|
return new CliError("INVALID_ARGUMENT", failureMessage, { operationId, failure: failure2 });
|
|
404220
404827
|
}
|
|
404221
404828
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure: failure2 });
|
|
404222
404829
|
}
|
|
404223
|
-
if (
|
|
404830
|
+
if (family2 === "create") {
|
|
404224
404831
|
if (failureCode === "TRACK_CHANGE_COMMAND_UNAVAILABLE") {
|
|
404225
404832
|
return new CliError("TRACK_CHANGE_COMMAND_UNAVAILABLE", failureMessage, { operationId, failure: failure2 });
|
|
404226
404833
|
}
|
|
@@ -404229,7 +404836,7 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404229
404836
|
}
|
|
404230
404837
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure: failure2 });
|
|
404231
404838
|
}
|
|
404232
|
-
if (
|
|
404839
|
+
if (family2 === "toc") {
|
|
404233
404840
|
if (failureCode === "TARGET_NOT_FOUND") {
|
|
404234
404841
|
return new CliError("TARGET_NOT_FOUND", failureMessage, { operationId, failure: failure2 });
|
|
404235
404842
|
}
|
|
@@ -404244,7 +404851,7 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404244
404851
|
}
|
|
404245
404852
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure: failure2 });
|
|
404246
404853
|
}
|
|
404247
|
-
if (
|
|
404854
|
+
if (family2 === "images") {
|
|
404248
404855
|
if (failureCode === "TARGET_NOT_FOUND") {
|
|
404249
404856
|
return new CliError("TARGET_NOT_FOUND", failureMessage, { operationId, failure: failure2 });
|
|
404250
404857
|
}
|
|
@@ -404253,7 +404860,7 @@ function mapFailedReceipt(operationId, result2, context) {
|
|
|
404253
404860
|
}
|
|
404254
404861
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure: failure2 });
|
|
404255
404862
|
}
|
|
404256
|
-
if (
|
|
404863
|
+
if (family2 === "tables") {
|
|
404257
404864
|
if (failureCode === "TARGET_NOT_FOUND") {
|
|
404258
404865
|
return new CliError("TARGET_NOT_FOUND", failureMessage, { operationId, failure: failure2 });
|
|
404259
404866
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdoc-dev/cli",
|
|
3
|
-
"version": "0.16.0-next.
|
|
3
|
+
"version": "0.16.0-next.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"superdoc": "./dist/index.js"
|
|
@@ -24,20 +24,20 @@
|
|
|
24
24
|
"@types/node": "22.19.2",
|
|
25
25
|
"@types/ws": "^8.5.13",
|
|
26
26
|
"typescript": "^5.9.2",
|
|
27
|
-
"@superdoc/super-editor": "0.0.1",
|
|
28
27
|
"@superdoc/document-api": "0.0.1",
|
|
29
|
-
"superdoc": "1.38.0"
|
|
28
|
+
"superdoc": "1.38.0",
|
|
29
|
+
"@superdoc/super-editor": "0.0.1"
|
|
30
30
|
},
|
|
31
31
|
"module": "src/index.ts",
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"optionalDependencies": {
|
|
36
|
-
"@superdoc-dev/cli-darwin-
|
|
37
|
-
"@superdoc-dev/cli-darwin-
|
|
38
|
-
"@superdoc-dev/cli-linux-
|
|
39
|
-
"@superdoc-dev/cli-
|
|
40
|
-
"@superdoc-dev/cli-
|
|
36
|
+
"@superdoc-dev/cli-darwin-x64": "0.16.0-next.7",
|
|
37
|
+
"@superdoc-dev/cli-darwin-arm64": "0.16.0-next.7",
|
|
38
|
+
"@superdoc-dev/cli-linux-x64": "0.16.0-next.7",
|
|
39
|
+
"@superdoc-dev/cli-windows-x64": "0.16.0-next.7",
|
|
40
|
+
"@superdoc-dev/cli-linux-arm64": "0.16.0-next.7"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"predev": "node scripts/ensure-superdoc-build.js",
|