docgen-utils 1.0.17 → 1.0.19
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/bundle.js +441 -176
- package/dist/bundle.min.js +233 -233
- package/dist/cli.js +496 -151
- package/dist/packages/cli/commands/export-docs.d.ts +2 -3
- package/dist/packages/cli/commands/export-docs.d.ts.map +1 -1
- package/dist/packages/cli/commands/export-docs.js +108 -101
- package/dist/packages/cli/commands/export-docs.js.map +1 -1
- package/dist/packages/cli/commands/export-slides.d.ts +10 -0
- package/dist/packages/cli/commands/export-slides.d.ts.map +1 -1
- package/dist/packages/cli/commands/export-slides.js +41 -26
- package/dist/packages/cli/commands/export-slides.js.map +1 -1
- package/dist/packages/docs/convert.d.ts.map +1 -1
- package/dist/packages/docs/convert.js +14 -10
- package/dist/packages/docs/convert.js.map +1 -1
- package/dist/packages/docs/import-docx.d.ts.map +1 -1
- package/dist/packages/docs/import-docx.js +256 -11
- package/dist/packages/docs/import-docx.js.map +1 -1
- package/dist/packages/shared/fetch-with-proxy.d.ts +18 -0
- package/dist/packages/shared/fetch-with-proxy.d.ts.map +1 -0
- package/dist/packages/shared/fetch-with-proxy.js +200 -0
- package/dist/packages/shared/fetch-with-proxy.js.map +1 -0
- package/dist/packages/shared/fonts.d.ts +73 -0
- package/dist/packages/shared/fonts.d.ts.map +1 -0
- package/dist/packages/shared/fonts.js +251 -0
- package/dist/packages/shared/fonts.js.map +1 -0
- package/dist/packages/slides/common.d.ts +4 -0
- package/dist/packages/slides/common.d.ts.map +1 -1
- package/dist/packages/slides/convert.d.ts.map +1 -1
- package/dist/packages/slides/convert.js +34 -4
- package/dist/packages/slides/convert.js.map +1 -1
- package/dist/packages/slides/fonts.d.ts +4 -37
- package/dist/packages/slides/fonts.d.ts.map +1 -1
- package/dist/packages/slides/fonts.js +4 -205
- package/dist/packages/slides/fonts.js.map +1 -1
- package/dist/packages/slides/vendor/pptxgen.d.ts +2 -0
- package/dist/packages/slides/vendor/pptxgen.js +2 -1
- package/package.json +2 -3
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import * as http from "node:http";
|
|
2
|
+
import * as tls from "node:tls";
|
|
3
|
+
import { URL } from "node:url";
|
|
4
|
+
const userAgent = "Mozilla/5.0 (compatible; Copilot/1.0)";
|
|
5
|
+
/**
|
|
6
|
+
* Create a TCP tunnel through an HTTP proxy using the CONNECT method.
|
|
7
|
+
*/
|
|
8
|
+
function connectThroughProxy(proxy, targetHost, targetPort) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const req = http.request({
|
|
11
|
+
host: proxy.hostname,
|
|
12
|
+
port: Number(proxy.port),
|
|
13
|
+
method: "CONNECT",
|
|
14
|
+
path: `${targetHost}:${targetPort}`,
|
|
15
|
+
});
|
|
16
|
+
req.on("connect", (res, socket) => {
|
|
17
|
+
if (res.statusCode === 200) {
|
|
18
|
+
resolve(socket);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
socket.destroy();
|
|
22
|
+
reject(new Error(`Proxy CONNECT failed with status ${res.statusCode}`));
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
req.on("error", reject);
|
|
26
|
+
req.end();
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Upgrade a raw TCP socket to TLS.
|
|
31
|
+
* Uses the documented tls.connect({ socket, servername }) API.
|
|
32
|
+
* @see https://nodejs.org/api/tls.html#tlsconnectoptions-callback
|
|
33
|
+
*/
|
|
34
|
+
function upgradeTls(rawSocket, servername) {
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
const tlsSocket = tls.connect({ socket: rawSocket, servername }, () => {
|
|
37
|
+
resolve(tlsSocket);
|
|
38
|
+
});
|
|
39
|
+
tlsSocket.on("error", reject);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse a raw HTTP/1.1 response from a TLS socket stream.
|
|
44
|
+
* Handles both Content-Length and chunked Transfer-Encoding.
|
|
45
|
+
*/
|
|
46
|
+
function parseHttpResponse(tlsSocket) {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
let headerDone = false;
|
|
49
|
+
let raw = Buffer.alloc(0);
|
|
50
|
+
let statusCode = 0;
|
|
51
|
+
let statusText = "";
|
|
52
|
+
const headers = {};
|
|
53
|
+
const bodyChunks = [];
|
|
54
|
+
let contentLength = -1;
|
|
55
|
+
let isChunked = false;
|
|
56
|
+
let bodyBytesRead = 0;
|
|
57
|
+
let headerEndIndex = -1;
|
|
58
|
+
function tryParseHeaders() {
|
|
59
|
+
const str = raw.toString("utf-8");
|
|
60
|
+
const idx = str.indexOf("\r\n\r\n");
|
|
61
|
+
if (idx === -1)
|
|
62
|
+
return false;
|
|
63
|
+
headerEndIndex = Buffer.byteLength(str.slice(0, idx + 4), "utf-8");
|
|
64
|
+
const headerSection = str.slice(0, idx);
|
|
65
|
+
const lines = headerSection.split("\r\n");
|
|
66
|
+
// Parse status line: HTTP/1.1 200 OK
|
|
67
|
+
const statusLine = lines[0];
|
|
68
|
+
const match = statusLine.match(/^HTTP\/\d\.\d\s+(\d+)\s*(.*)/);
|
|
69
|
+
if (match) {
|
|
70
|
+
statusCode = parseInt(match[1], 10);
|
|
71
|
+
statusText = match[2];
|
|
72
|
+
}
|
|
73
|
+
// Parse headers
|
|
74
|
+
for (let i = 1; i < lines.length; i++) {
|
|
75
|
+
const colonIdx = lines[i].indexOf(":");
|
|
76
|
+
if (colonIdx > 0) {
|
|
77
|
+
const key = lines[i].slice(0, colonIdx).trim().toLowerCase();
|
|
78
|
+
const val = lines[i].slice(colonIdx + 1).trim();
|
|
79
|
+
headers[key] = val;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (headers["transfer-encoding"]?.includes("chunked")) {
|
|
83
|
+
isChunked = true;
|
|
84
|
+
}
|
|
85
|
+
else if (headers["content-length"]) {
|
|
86
|
+
contentLength = parseInt(headers["content-length"], 10);
|
|
87
|
+
}
|
|
88
|
+
// Push any leftover bytes after headers as body
|
|
89
|
+
const bodyStart = raw.slice(headerEndIndex);
|
|
90
|
+
if (bodyStart.length > 0) {
|
|
91
|
+
bodyChunks.push(bodyStart);
|
|
92
|
+
bodyBytesRead += bodyStart.length;
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
function decodeChunkedBody(buf) {
|
|
97
|
+
const parts = [];
|
|
98
|
+
let offset = 0;
|
|
99
|
+
while (offset < buf.length) {
|
|
100
|
+
const lineEnd = buf.indexOf(Buffer.from("\r\n"), offset);
|
|
101
|
+
if (lineEnd === -1)
|
|
102
|
+
break;
|
|
103
|
+
const sizeHex = buf.slice(offset, lineEnd).toString("utf-8").trim();
|
|
104
|
+
const chunkSize = parseInt(sizeHex, 16);
|
|
105
|
+
if (chunkSize === 0)
|
|
106
|
+
break;
|
|
107
|
+
const chunkStart = lineEnd + 2;
|
|
108
|
+
const chunkEnd = chunkStart + chunkSize;
|
|
109
|
+
if (chunkEnd > buf.length)
|
|
110
|
+
break;
|
|
111
|
+
parts.push(buf.slice(chunkStart, chunkEnd));
|
|
112
|
+
offset = chunkEnd + 2; // skip trailing \r\n
|
|
113
|
+
}
|
|
114
|
+
return Buffer.concat(parts);
|
|
115
|
+
}
|
|
116
|
+
tlsSocket.on("data", (chunk) => {
|
|
117
|
+
if (!headerDone) {
|
|
118
|
+
raw = Buffer.concat([raw, chunk]);
|
|
119
|
+
if (tryParseHeaders()) {
|
|
120
|
+
headerDone = true;
|
|
121
|
+
// Check if body is already complete
|
|
122
|
+
if (!isChunked &&
|
|
123
|
+
contentLength >= 0 &&
|
|
124
|
+
bodyBytesRead >= contentLength) {
|
|
125
|
+
tlsSocket.destroy();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
bodyChunks.push(chunk);
|
|
131
|
+
bodyBytesRead += chunk.length;
|
|
132
|
+
if (!isChunked &&
|
|
133
|
+
contentLength >= 0 &&
|
|
134
|
+
bodyBytesRead >= contentLength) {
|
|
135
|
+
tlsSocket.destroy();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
tlsSocket.on("end", finish);
|
|
140
|
+
tlsSocket.on("close", finish);
|
|
141
|
+
let finished = false;
|
|
142
|
+
function finish() {
|
|
143
|
+
if (finished)
|
|
144
|
+
return;
|
|
145
|
+
finished = true;
|
|
146
|
+
let body = Buffer.concat(bodyChunks);
|
|
147
|
+
if (isChunked) {
|
|
148
|
+
body = decodeChunkedBody(body);
|
|
149
|
+
}
|
|
150
|
+
else if (contentLength >= 0) {
|
|
151
|
+
body = body.subarray(0, contentLength);
|
|
152
|
+
}
|
|
153
|
+
const responseHeaders = new Headers(headers);
|
|
154
|
+
resolve({
|
|
155
|
+
ok: statusCode >= 200 && statusCode < 300,
|
|
156
|
+
status: statusCode,
|
|
157
|
+
statusText,
|
|
158
|
+
headers: responseHeaders,
|
|
159
|
+
arrayBuffer: () => Promise.resolve(body.buffer.slice(body.byteOffset, body.byteOffset + body.byteLength)),
|
|
160
|
+
text: () => Promise.resolve(body.toString("utf-8")),
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
tlsSocket.on("error", (err) => {
|
|
164
|
+
if (!finished)
|
|
165
|
+
reject(err);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Fetch a URL with optional proxy support.
|
|
171
|
+
* Uses only documented Node.js APIs: http.CONNECT, tls.connect(), raw HTTP write.
|
|
172
|
+
*
|
|
173
|
+
* @param url - The URL to fetch
|
|
174
|
+
* @returns A Promise resolving to a ProxyResponse or native Response
|
|
175
|
+
*/
|
|
176
|
+
export async function fetchWithProxy(url) {
|
|
177
|
+
const proxyUrl = process.env.HTTPS_PROXY ||
|
|
178
|
+
process.env.HTTP_PROXY ||
|
|
179
|
+
process.env.https_proxy ||
|
|
180
|
+
process.env.http_proxy;
|
|
181
|
+
if (proxyUrl) {
|
|
182
|
+
const proxy = new URL(proxyUrl);
|
|
183
|
+
const target = new URL(url);
|
|
184
|
+
// 1. Tunnel through proxy
|
|
185
|
+
const rawSocket = await connectThroughProxy(proxy, target.hostname, 443);
|
|
186
|
+
// 2. TLS handshake (documented: tls.connect with socket option)
|
|
187
|
+
const tlsSocket = await upgradeTls(rawSocket, target.hostname);
|
|
188
|
+
// 3. Write raw HTTP/1.1 request (per Node.js CONNECT docs pattern)
|
|
189
|
+
const requestLine = `GET ${target.pathname}${target.search} HTTP/1.1\r\n` +
|
|
190
|
+
`Host: ${target.hostname}\r\n` +
|
|
191
|
+
`User-Agent: ${userAgent}\r\n` +
|
|
192
|
+
`Connection: close\r\n` +
|
|
193
|
+
`\r\n`;
|
|
194
|
+
tlsSocket.write(requestLine);
|
|
195
|
+
// 4. Parse raw HTTP response
|
|
196
|
+
return parseHttpResponse(tlsSocket);
|
|
197
|
+
}
|
|
198
|
+
return fetch(url, { headers: { "User-Agent": userAgent } });
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=fetch-with-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-with-proxy.js","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared font mapping for Office document import and export.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth that maps font names to:
|
|
5
|
+
* - CSS fallback stacks (for import: Office → HTML)
|
|
6
|
+
* - Office-compatible font names (for export: HTML → Office)
|
|
7
|
+
*
|
|
8
|
+
* Used by packages/slides and packages/docs.
|
|
9
|
+
*/
|
|
10
|
+
export type FontCategory = 'sans-serif' | 'serif' | 'monospace' | 'cursive';
|
|
11
|
+
export interface FontEntry {
|
|
12
|
+
/** CSS font-family fallback stack (used during import: Office → HTML). */
|
|
13
|
+
cssFallback: string;
|
|
14
|
+
/** Single Office-compatible font name (used during export: HTML → Office). */
|
|
15
|
+
officeFont: string;
|
|
16
|
+
/** Generic font category for fallback. */
|
|
17
|
+
category: FontCategory;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Comprehensive font map covering:
|
|
21
|
+
* - Microsoft Office fonts (Calibri, Cambria, Aptos, etc.)
|
|
22
|
+
* - CJK fonts (Japanese, Chinese, Korean)
|
|
23
|
+
* - Google Fonts / web fonts (Inter, Montserrat, Playfair Display, etc.)
|
|
24
|
+
* - GitHub Copilot fonts (Ginto)
|
|
25
|
+
* - Common system/UI fonts
|
|
26
|
+
* - Handwriting / decorative fonts
|
|
27
|
+
* - Symbol fonts
|
|
28
|
+
*
|
|
29
|
+
* Keys are the canonical (case-sensitive) font names as they appear in Office
|
|
30
|
+
* files or CSS. Lookup helpers normalize case as needed.
|
|
31
|
+
*/
|
|
32
|
+
export declare const FONT_MAP: Record<string, FontEntry>;
|
|
33
|
+
/**
|
|
34
|
+
* Returns a CSS font-family value for the given font name (used by Office import).
|
|
35
|
+
*
|
|
36
|
+
* Looks up the font in FONT_MAP and returns the full CSS fallback stack.
|
|
37
|
+
* For unknown fonts, wraps the name in quotes and appends sans-serif.
|
|
38
|
+
* Handles malformed typeface attributes that already contain commas.
|
|
39
|
+
*/
|
|
40
|
+
export declare function cssFontFamily(fontName: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* Maps a font family name to its Office-compatible equivalent (used by Office export).
|
|
43
|
+
*
|
|
44
|
+
* Returns the mapped Office font if found, or the original font if no mapping exists.
|
|
45
|
+
* Lookup is case-insensitive.
|
|
46
|
+
*/
|
|
47
|
+
export declare function mapToOfficeFont(fontFamily: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Extract and map fontFace from a CSS font-family string (used by Office export).
|
|
50
|
+
*
|
|
51
|
+
* Takes the first font in a comma-separated CSS font stack, strips quotes,
|
|
52
|
+
* and maps it to an Office-compatible equivalent.
|
|
53
|
+
*/
|
|
54
|
+
export declare function extractFontFace(fontFamily: string | undefined | null): string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Returns a system-safe alternate font for the given font face (used by Office export).
|
|
57
|
+
*
|
|
58
|
+
* This provides the OOXML `altFont` attribute value, which PowerPoint and
|
|
59
|
+
* Word use when the primary font is not installed. Returns `undefined`
|
|
60
|
+
* for fonts that are universally pre-installed (Arial, Georgia, etc.) since
|
|
61
|
+
* they don't need a fallback.
|
|
62
|
+
*/
|
|
63
|
+
export declare function getAltFont(fontFace: string): string | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Returns the font-to-CSS-replacement mapping for HTML regex-based font
|
|
66
|
+
* substitution (used by transform.ts).
|
|
67
|
+
*
|
|
68
|
+
* Returns entries as [fontName, cssReplacement] pairs where cssReplacement
|
|
69
|
+
* is in the format "Georgia, serif" (Office font + category).
|
|
70
|
+
* Only includes fonts that map to a different Office font (web fonts → Office equivalents).
|
|
71
|
+
*/
|
|
72
|
+
export declare function getFontReplacementEntries(): Array<[string, string]>;
|
|
73
|
+
//# sourceMappingURL=fonts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../../packages/shared/fonts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAE5E,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,EAAE,YAAY,CAAC;CACxB;AAMD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAmH9C,CAAC;AAYF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBtD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAIzF;AAqBD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkB/D;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAUnE"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared font mapping for Office document import and export.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth that maps font names to:
|
|
5
|
+
* - CSS fallback stacks (for import: Office → HTML)
|
|
6
|
+
* - Office-compatible font names (for export: HTML → Office)
|
|
7
|
+
*
|
|
8
|
+
* Used by packages/slides and packages/docs.
|
|
9
|
+
*/
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Font Map — single source of truth
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Comprehensive font map covering:
|
|
15
|
+
* - Microsoft Office fonts (Calibri, Cambria, Aptos, etc.)
|
|
16
|
+
* - CJK fonts (Japanese, Chinese, Korean)
|
|
17
|
+
* - Google Fonts / web fonts (Inter, Montserrat, Playfair Display, etc.)
|
|
18
|
+
* - GitHub Copilot fonts (Ginto)
|
|
19
|
+
* - Common system/UI fonts
|
|
20
|
+
* - Handwriting / decorative fonts
|
|
21
|
+
* - Symbol fonts
|
|
22
|
+
*
|
|
23
|
+
* Keys are the canonical (case-sensitive) font names as they appear in Office
|
|
24
|
+
* files or CSS. Lookup helpers normalize case as needed.
|
|
25
|
+
*/
|
|
26
|
+
export const FONT_MAP = {
|
|
27
|
+
// ---- Microsoft Office fonts ----
|
|
28
|
+
"Calibri": { cssFallback: "'Calibri','Carlito','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Calibri", category: "sans-serif" },
|
|
29
|
+
"Calibri Light": { cssFallback: "'Calibri Light','Carlito','Helvetica Neue Light','Helvetica Neue',Arial,sans-serif", officeFont: "Calibri Light", category: "sans-serif" },
|
|
30
|
+
"Cambria": { cssFallback: "'Cambria','Caladea','Times New Roman',Georgia,serif", officeFont: "Cambria", category: "serif" },
|
|
31
|
+
"Cambria Math": { cssFallback: "'Cambria Math','Caladea','Times New Roman',serif", officeFont: "Cambria Math", category: "serif" },
|
|
32
|
+
"Consolas": { cssFallback: "'Consolas','Courier New',monospace", officeFont: "Consolas", category: "monospace" },
|
|
33
|
+
"Aptos": { cssFallback: "'Aptos','Carlito','Helvetica Neue',Arial,sans-serif", officeFont: "Aptos", category: "sans-serif" },
|
|
34
|
+
"Times New Roman": { cssFallback: "'Times New Roman','Liberation Serif',Georgia,serif", officeFont: "Times New Roman", category: "serif" },
|
|
35
|
+
// ---- Handwriting / decorative fonts ----
|
|
36
|
+
"MV Boli": { cssFallback: "'MV Boli','Comic Sans MS','Marker Felt',cursive", officeFont: "MV Boli", category: "cursive" },
|
|
37
|
+
"Kristen ITC": { cssFallback: "'Kristen ITC','Comic Sans MS','Marker Felt',cursive", officeFont: "Kristen ITC", category: "cursive" },
|
|
38
|
+
"Stylus BT": { cssFallback: "'Stylus BT','Brush Script MT','Snell Roundhand',cursive", officeFont: "Stylus BT", category: "cursive" },
|
|
39
|
+
"Caveat": { cssFallback: "'Caveat','Comic Sans MS','Marker Felt',cursive", officeFont: "Caveat", category: "cursive" },
|
|
40
|
+
// ---- Japanese sans-serif fonts ----
|
|
41
|
+
"MS Gothic": { cssFallback: "'MS Gothic','Noto Sans CJK JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif", officeFont: "MS Gothic", category: "sans-serif" },
|
|
42
|
+
"MS PGothic": { cssFallback: "'MS PGothic','Noto Sans CJK JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif", officeFont: "MS PGothic", category: "sans-serif" },
|
|
43
|
+
"\uFF2D\uFF33 \uFF30\u30B4\u30B7\u30C3\u30AF": { cssFallback: "'\uFF2D\uFF33 \uFF30\u30B4\u30B7\u30C3\u30AF','Noto Sans CJK JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif", officeFont: "\uFF2D\uFF33 \uFF30\u30B4\u30B7\u30C3\u30AF", category: "sans-serif" },
|
|
44
|
+
"\uFF2D\uFF33 \u30B4\u30B7\u30C3\u30AF": { cssFallback: "'\uFF2D\uFF33 \u30B4\u30B7\u30C3\u30AF','Noto Sans CJK JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif", officeFont: "\uFF2D\uFF33 \u30B4\u30B7\u30C3\u30AF", category: "sans-serif" },
|
|
45
|
+
"Kozuka Gothic Pro R": { cssFallback: "'Kozuka Gothic Pro R','Noto Sans CJK JP','Hiragino Kaku Gothic ProN',sans-serif", officeFont: "Kozuka Gothic Pro R", category: "sans-serif" },
|
|
46
|
+
"Kozuka Gothic Pro B": { cssFallback: "'Kozuka Gothic Pro B','Noto Sans CJK JP Bold','Hiragino Kaku Gothic ProN',sans-serif", officeFont: "Kozuka Gothic Pro B", category: "sans-serif" },
|
|
47
|
+
"Kozuka Gothic Pro M": { cssFallback: "'Kozuka Gothic Pro M','Noto Sans CJK JP Medium','Hiragino Kaku Gothic ProN',sans-serif", officeFont: "Kozuka Gothic Pro M", category: "sans-serif" },
|
|
48
|
+
"Kozuka Gothic Pro EL": { cssFallback: "'Kozuka Gothic Pro EL','Noto Sans CJK JP Light','Hiragino Kaku Gothic ProN',sans-serif", officeFont: "Kozuka Gothic Pro EL", category: "sans-serif" },
|
|
49
|
+
"HGSKyokashotai": { cssFallback: "'HGSKyokashotai','Noto Sans CJK JP','Hiragino Kaku Gothic ProN',sans-serif", officeFont: "HGSKyokashotai", category: "sans-serif" },
|
|
50
|
+
// ---- Japanese serif fonts ----
|
|
51
|
+
"MS Mincho": { cssFallback: "'MS Mincho','Noto Serif CJK JP','Hiragino Mincho ProN','Yu Mincho',serif", officeFont: "MS Mincho", category: "serif" },
|
|
52
|
+
"MS PMincho": { cssFallback: "'MS PMincho','Noto Serif CJK JP','Hiragino Mincho ProN','Yu Mincho',serif", officeFont: "MS PMincho", category: "serif" },
|
|
53
|
+
// ---- CJK fonts (Chinese, Korean) ----
|
|
54
|
+
"\u5B8B\u4F53": { cssFallback: "'\u5B8B\u4F53','Noto Serif CJK SC','Songti SC','STSong',serif", officeFont: "\u5B8B\u4F53", category: "serif" },
|
|
55
|
+
"\u65B0\u7D30\u660E\u9AD4": { cssFallback: "'\u65B0\u7D30\u660E\u9AD4','Noto Serif CJK TC','Songti TC',serif", officeFont: "\u65B0\u7D30\u660E\u9AD4", category: "serif" },
|
|
56
|
+
"\u9ED1\u4F53": { cssFallback: "'\u9ED1\u4F53','Noto Sans CJK SC','Heiti SC','STHeiti',sans-serif", officeFont: "\u9ED1\u4F53", category: "sans-serif" },
|
|
57
|
+
"\u5FAE\u8EDF\u6B63\u9ED1\u9AD4": { cssFallback: "'\u5FAE\u8EDF\u6B63\u9ED1\u9AD4','Noto Sans CJK TC','Heiti TC',sans-serif", officeFont: "\u5FAE\u8EDF\u6B63\u9ED1\u9AD4", category: "sans-serif" },
|
|
58
|
+
"\uB9D1\uC740 \uACE0\uB515": { cssFallback: "'\uB9D1\uC740 \uACE0\uB515','Apple SD Gothic Neo',sans-serif", officeFont: "\uB9D1\uC740 \uACE0\uB515", category: "sans-serif" },
|
|
59
|
+
// ---- UI / system fonts ----
|
|
60
|
+
"Lucida Sans Unicode": { cssFallback: "'Lucida Sans Unicode','Lucida Grande','Lucida Sans',sans-serif", officeFont: "Lucida Sans Unicode", category: "sans-serif" },
|
|
61
|
+
"Segoe UI": { cssFallback: "'Segoe UI','-apple-system','Helvetica Neue',sans-serif", officeFont: "Segoe UI", category: "sans-serif" },
|
|
62
|
+
"Segoe Sans Display": { cssFallback: "'Segoe Sans Display','-apple-system','Helvetica Neue',Arial,sans-serif", officeFont: "Segoe Sans Display", category: "sans-serif" },
|
|
63
|
+
"Segoe Sans Display Semibold": { cssFallback: "'Segoe Sans Display Semibold','-apple-system','Helvetica Neue',Arial,sans-serif", officeFont: "Segoe Sans Display Semibold", category: "sans-serif" },
|
|
64
|
+
"Segoe Sans Small Regular": { cssFallback: "'Segoe Sans Small Regular','Segoe UI','-apple-system','Helvetica Neue',sans-serif", officeFont: "Segoe Sans Small Regular", category: "sans-serif" },
|
|
65
|
+
"Segoe Sans Text Regular": { cssFallback: "'Segoe Sans Text Regular','Segoe UI','-apple-system','Helvetica Neue',sans-serif", officeFont: "Segoe Sans Text Regular", category: "sans-serif" },
|
|
66
|
+
"Grandview": { cssFallback: "'Grandview','Helvetica Neue',Arial,sans-serif", officeFont: "Grandview", category: "sans-serif" },
|
|
67
|
+
"Nirmala UI": { cssFallback: "'Nirmala UI','Helvetica Neue',Arial,sans-serif", officeFont: "Nirmala UI", category: "sans-serif" },
|
|
68
|
+
"Ebrima": { cssFallback: "'Ebrima','Helvetica Neue',Arial,sans-serif", officeFont: "Ebrima", category: "sans-serif" },
|
|
69
|
+
// ---- Google Fonts / web fonts (sans-serif) ----
|
|
70
|
+
// Preserve original font names in Office export for maximum fidelity.
|
|
71
|
+
// Office apps will render these correctly if the fonts are installed,
|
|
72
|
+
// and fall back gracefully if not. The cssFallback stack provides
|
|
73
|
+
// alternatives for HTML rendering (import side) only.
|
|
74
|
+
"Inter": { cssFallback: "'Inter','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Inter", category: "sans-serif" },
|
|
75
|
+
"Inter Light": { cssFallback: "'Inter Light','Inter','Helvetica Neue',Arial,sans-serif", officeFont: "Inter Light", category: "sans-serif" },
|
|
76
|
+
"Inter ExtraBold": { cssFallback: "'Inter ExtraBold','Inter','Helvetica Neue',Arial,sans-serif", officeFont: "Inter ExtraBold", category: "sans-serif" },
|
|
77
|
+
"Roboto": { cssFallback: "'Roboto','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Roboto", category: "sans-serif" },
|
|
78
|
+
"Open Sans": { cssFallback: "'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Open Sans", category: "sans-serif" },
|
|
79
|
+
"Lato": { cssFallback: "'Lato','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Lato", category: "sans-serif" },
|
|
80
|
+
"Montserrat": { cssFallback: "'Montserrat','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Montserrat", category: "sans-serif" },
|
|
81
|
+
"Montserrat SemiBold": { cssFallback: "'Montserrat SemiBold','Montserrat','Helvetica Neue',Arial,sans-serif", officeFont: "Montserrat SemiBold", category: "sans-serif" },
|
|
82
|
+
"Montserrat ExtraBold": { cssFallback: "'Montserrat ExtraBold','Montserrat','Helvetica Neue',Arial,sans-serif", officeFont: "Montserrat ExtraBold", category: "sans-serif" },
|
|
83
|
+
"Poppins": { cssFallback: "'Poppins','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Poppins", category: "sans-serif" },
|
|
84
|
+
"Source Sans Pro": { cssFallback: "'Source Sans Pro','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Source Sans Pro", category: "sans-serif" },
|
|
85
|
+
"Nunito": { cssFallback: "'Nunito','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Nunito", category: "sans-serif" },
|
|
86
|
+
"Raleway": { cssFallback: "'Raleway','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Raleway", category: "sans-serif" },
|
|
87
|
+
"Ubuntu": { cssFallback: "'Ubuntu','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Ubuntu", category: "sans-serif" },
|
|
88
|
+
"PT Sans": { cssFallback: "'PT Sans','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "PT Sans", category: "sans-serif" },
|
|
89
|
+
"Noto Sans": { cssFallback: "'Noto Sans','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Noto Sans", category: "sans-serif" },
|
|
90
|
+
"Fira Sans": { cssFallback: "'Fira Sans','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Fira Sans", category: "sans-serif" },
|
|
91
|
+
"Work Sans": { cssFallback: "'Work Sans','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Work Sans", category: "sans-serif" },
|
|
92
|
+
"Space Grotesk": { cssFallback: "'Space Grotesk','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Space Grotesk", category: "sans-serif" },
|
|
93
|
+
"Oswald": { cssFallback: "'Oswald','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Oswald", category: "sans-serif" },
|
|
94
|
+
"Archivo": { cssFallback: "'Archivo','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Archivo", category: "sans-serif" },
|
|
95
|
+
"Economica": { cssFallback: "'Economica','Helvetica Neue',Arial,sans-serif", officeFont: "Economica", category: "sans-serif" },
|
|
96
|
+
"Syncopate": { cssFallback: "'Syncopate','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Syncopate", category: "sans-serif" },
|
|
97
|
+
// ---- Google Fonts / web fonts (serif) ----
|
|
98
|
+
"Playfair Display": { cssFallback: "'Playfair Display','Georgia','Times New Roman',serif", officeFont: "Playfair Display", category: "serif" },
|
|
99
|
+
"Playfair Display SemiBold": { cssFallback: "'Playfair Display SemiBold','Playfair Display','Georgia',serif", officeFont: "Playfair Display SemiBold", category: "serif" },
|
|
100
|
+
"Libre Baskerville": { cssFallback: "'Libre Baskerville','Georgia','Times New Roman',serif", officeFont: "Libre Baskerville", category: "serif" },
|
|
101
|
+
"Merriweather": { cssFallback: "'Merriweather','Georgia','Times New Roman',serif", officeFont: "Merriweather", category: "serif" },
|
|
102
|
+
"PT Serif": { cssFallback: "'PT Serif','Georgia','Times New Roman',serif", officeFont: "PT Serif", category: "serif" },
|
|
103
|
+
"Noto Serif": { cssFallback: "'Noto Serif','Georgia','Times New Roman',serif", officeFont: "Noto Serif", category: "serif" },
|
|
104
|
+
"Lora": { cssFallback: "'Lora','Georgia','Times New Roman',serif", officeFont: "Lora", category: "serif" },
|
|
105
|
+
// ---- Google Fonts / web fonts (monospace) ----
|
|
106
|
+
"Fira Code": { cssFallback: "'Fira Code','Courier New',monospace", officeFont: "Fira Code", category: "monospace" },
|
|
107
|
+
"Source Code Pro": { cssFallback: "'Source Code Pro','Courier New',monospace", officeFont: "Source Code Pro", category: "monospace" },
|
|
108
|
+
"JetBrains Mono": { cssFallback: "'JetBrains Mono','Courier New',monospace", officeFont: "JetBrains Mono", category: "monospace" },
|
|
109
|
+
// ---- GitHub Copilot fonts ----
|
|
110
|
+
"Ginto Copilot": { cssFallback: "'Ginto Copilot','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Ginto Copilot", category: "sans-serif" },
|
|
111
|
+
"Ginto Copilot Light": { cssFallback: "'Ginto Copilot Light','Helvetica Neue Light','Helvetica Neue',Arial,sans-serif", officeFont: "Ginto Copilot Light", category: "sans-serif" },
|
|
112
|
+
"Ginto Copilot 400": { cssFallback: "'Ginto Copilot 400','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Ginto Copilot 400", category: "sans-serif" },
|
|
113
|
+
"Ginto Copilot Medium": { cssFallback: "'Ginto Copilot Medium','Ginto Copilot','Helvetica Neue',Arial,sans-serif", officeFont: "Ginto Copilot Medium", category: "sans-serif" },
|
|
114
|
+
"Ginto Copilot Black": { cssFallback: "'Ginto Copilot Black','Ginto Copilot','Helvetica Neue',Arial,sans-serif", officeFont: "Ginto Copilot Black", category: "sans-serif" },
|
|
115
|
+
"Ginto Copilot Thin": { cssFallback: "'Ginto Copilot Thin','Ginto Copilot Light','Helvetica Neue',Arial,sans-serif", officeFont: "Ginto Copilot Thin", category: "sans-serif" },
|
|
116
|
+
// ---- Common system fonts ----
|
|
117
|
+
"Arial": { cssFallback: "Arial,'Helvetica Neue',Helvetica,sans-serif", officeFont: "Arial", category: "sans-serif" },
|
|
118
|
+
"Arial Black": { cssFallback: "'Arial Black','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Arial Black", category: "sans-serif" },
|
|
119
|
+
"Georgia": { cssFallback: "Georgia,'Times New Roman',serif", officeFont: "Georgia", category: "serif" },
|
|
120
|
+
"Georgia Regular": { cssFallback: "'Georgia Regular',Georgia,'Times New Roman',serif", officeFont: "Georgia", category: "serif" },
|
|
121
|
+
"Courier New": { cssFallback: "'Courier New',Courier,monospace", officeFont: "Courier New", category: "monospace" },
|
|
122
|
+
"Times": { cssFallback: "Times,'Times New Roman',serif", officeFont: "Times", category: "serif" },
|
|
123
|
+
"Tahoma": { cssFallback: "'Tahoma','Verdana','Geneva',sans-serif", officeFont: "Tahoma", category: "sans-serif" },
|
|
124
|
+
"Verdana": { cssFallback: "'Verdana','Geneva',sans-serif", officeFont: "Verdana", category: "sans-serif" },
|
|
125
|
+
"Helvetica Neue Light": { cssFallback: "'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,sans-serif", officeFont: "Helvetica Neue Light", category: "sans-serif" },
|
|
126
|
+
// ---- Symbol fonts ----
|
|
127
|
+
"Wingdings": { cssFallback: "'Wingdings','Zapf Dingbats',sans-serif", officeFont: "Wingdings", category: "sans-serif" },
|
|
128
|
+
"Wingdings 2": { cssFallback: "'Wingdings 2','Zapf Dingbats',sans-serif", officeFont: "Wingdings 2", category: "sans-serif" },
|
|
129
|
+
"Wingdings 3": { cssFallback: "'Wingdings 3','Zapf Dingbats',sans-serif", officeFont: "Wingdings 3", category: "sans-serif" },
|
|
130
|
+
};
|
|
131
|
+
// Build case-insensitive lookup index (lowercase key → FontEntry)
|
|
132
|
+
const FONT_MAP_LOWER = {};
|
|
133
|
+
for (const [key, entry] of Object.entries(FONT_MAP)) {
|
|
134
|
+
FONT_MAP_LOWER[key.toLowerCase()] = entry;
|
|
135
|
+
}
|
|
136
|
+
// ============================================================================
|
|
137
|
+
// Exported helpers
|
|
138
|
+
// ============================================================================
|
|
139
|
+
/**
|
|
140
|
+
* Returns a CSS font-family value for the given font name (used by Office import).
|
|
141
|
+
*
|
|
142
|
+
* Looks up the font in FONT_MAP and returns the full CSS fallback stack.
|
|
143
|
+
* For unknown fonts, wraps the name in quotes and appends sans-serif.
|
|
144
|
+
* Handles malformed typeface attributes that already contain commas.
|
|
145
|
+
*/
|
|
146
|
+
export function cssFontFamily(fontName) {
|
|
147
|
+
const entry = FONT_MAP[fontName];
|
|
148
|
+
if (entry)
|
|
149
|
+
return entry.cssFallback;
|
|
150
|
+
// Try case-insensitive lookup
|
|
151
|
+
const entryLower = FONT_MAP_LOWER[fontName.toLowerCase()];
|
|
152
|
+
if (entryLower)
|
|
153
|
+
return entryLower.cssFallback;
|
|
154
|
+
// Handle malformed typeface attributes that already contain commas (e.g. "Arial,Sans-Serif")
|
|
155
|
+
if (fontName.includes(',')) {
|
|
156
|
+
return fontName.split(',').map(f => {
|
|
157
|
+
const trimmed = f.trim();
|
|
158
|
+
const lower = trimmed.toLowerCase();
|
|
159
|
+
if (lower === 'sans-serif' || lower === 'serif' || lower === 'monospace' || lower === 'cursive' || lower === 'fantasy') {
|
|
160
|
+
return lower;
|
|
161
|
+
}
|
|
162
|
+
return `'${trimmed}'`;
|
|
163
|
+
}).join(',');
|
|
164
|
+
}
|
|
165
|
+
return `'${fontName}',sans-serif`;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Maps a font family name to its Office-compatible equivalent (used by Office export).
|
|
169
|
+
*
|
|
170
|
+
* Returns the mapped Office font if found, or the original font if no mapping exists.
|
|
171
|
+
* Lookup is case-insensitive.
|
|
172
|
+
*/
|
|
173
|
+
export function mapToOfficeFont(fontFamily) {
|
|
174
|
+
const normalized = fontFamily.toLowerCase().trim();
|
|
175
|
+
const entry = FONT_MAP_LOWER[normalized];
|
|
176
|
+
return entry ? entry.officeFont : fontFamily;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Extract and map fontFace from a CSS font-family string (used by Office export).
|
|
180
|
+
*
|
|
181
|
+
* Takes the first font in a comma-separated CSS font stack, strips quotes,
|
|
182
|
+
* and maps it to an Office-compatible equivalent.
|
|
183
|
+
*/
|
|
184
|
+
export function extractFontFace(fontFamily) {
|
|
185
|
+
if (!fontFamily)
|
|
186
|
+
return undefined;
|
|
187
|
+
const firstFont = fontFamily.split(',')[0].replace(/['"]/g, '').trim();
|
|
188
|
+
return mapToOfficeFont(firstFont);
|
|
189
|
+
}
|
|
190
|
+
// ---- Category-based fallback fonts ----
|
|
191
|
+
// These are universally available system fonts used as OOXML `altFont` values.
|
|
192
|
+
// When the primary font (e.g. a Google Font) is missing, PowerPoint and
|
|
193
|
+
// LibreOffice will render using the altFont instead of an arbitrary substitute.
|
|
194
|
+
const CATEGORY_ALT_FONT = {
|
|
195
|
+
'sans-serif': 'Arial',
|
|
196
|
+
'serif': 'Georgia',
|
|
197
|
+
'monospace': 'Courier New',
|
|
198
|
+
'cursive': 'Comic Sans MS',
|
|
199
|
+
};
|
|
200
|
+
// Fonts that are universally pre-installed — no altFont needed.
|
|
201
|
+
const SYSTEM_FONTS = new Set([
|
|
202
|
+
'arial', 'arial black', 'calibri', 'calibri light', 'cambria', 'cambria math',
|
|
203
|
+
'consolas', 'courier new', 'georgia', 'georgia regular', 'times', 'times new roman',
|
|
204
|
+
'tahoma', 'verdana', 'comic sans ms', 'impact', 'wingdings', 'wingdings 2',
|
|
205
|
+
'wingdings 3', 'segoe ui', 'aptos',
|
|
206
|
+
]);
|
|
207
|
+
/**
|
|
208
|
+
* Returns a system-safe alternate font for the given font face (used by Office export).
|
|
209
|
+
*
|
|
210
|
+
* This provides the OOXML `altFont` attribute value, which PowerPoint and
|
|
211
|
+
* Word use when the primary font is not installed. Returns `undefined`
|
|
212
|
+
* for fonts that are universally pre-installed (Arial, Georgia, etc.) since
|
|
213
|
+
* they don't need a fallback.
|
|
214
|
+
*/
|
|
215
|
+
export function getAltFont(fontFace) {
|
|
216
|
+
if (!fontFace)
|
|
217
|
+
return undefined;
|
|
218
|
+
const normalized = fontFace.toLowerCase().trim();
|
|
219
|
+
// System fonts don't need a fallback
|
|
220
|
+
if (SYSTEM_FONTS.has(normalized))
|
|
221
|
+
return undefined;
|
|
222
|
+
// Look up category from FONT_MAP to determine the right fallback
|
|
223
|
+
const entry = FONT_MAP_LOWER[normalized];
|
|
224
|
+
if (entry) {
|
|
225
|
+
// Don't return an altFont that's the same as the primary font
|
|
226
|
+
const alt = CATEGORY_ALT_FONT[entry.category];
|
|
227
|
+
return alt.toLowerCase() === normalized ? undefined : alt;
|
|
228
|
+
}
|
|
229
|
+
// Unknown font — default to Arial as a safe sans-serif fallback
|
|
230
|
+
return 'Arial';
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Returns the font-to-CSS-replacement mapping for HTML regex-based font
|
|
234
|
+
* substitution (used by transform.ts).
|
|
235
|
+
*
|
|
236
|
+
* Returns entries as [fontName, cssReplacement] pairs where cssReplacement
|
|
237
|
+
* is in the format "Georgia, serif" (Office font + category).
|
|
238
|
+
* Only includes fonts that map to a different Office font (web fonts → Office equivalents).
|
|
239
|
+
*/
|
|
240
|
+
export function getFontReplacementEntries() {
|
|
241
|
+
const entries = [];
|
|
242
|
+
for (const [fontName, entry] of Object.entries(FONT_MAP)) {
|
|
243
|
+
// Only include fonts where the Office font differs from the original
|
|
244
|
+
// (e.g. "Inter" → "Calibri", but not "Calibri" → "Calibri")
|
|
245
|
+
if (entry.officeFont.toLowerCase() !== fontName.toLowerCase()) {
|
|
246
|
+
entries.push([fontName, `${entry.officeFont}, ${entry.category}`]);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return entries;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=fonts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../../packages/shared/fonts.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,8 @@ export interface TextRunOptions {
|
|
|
37
37
|
color?: string;
|
|
38
38
|
fontSize?: number;
|
|
39
39
|
fontFace?: string;
|
|
40
|
+
/** OOXML alternate font — used when the primary fontFace is not installed. */
|
|
41
|
+
altFont?: string;
|
|
40
42
|
transparency?: number;
|
|
41
43
|
/** Insert a line break after this run. */
|
|
42
44
|
breakLine?: boolean;
|
|
@@ -74,6 +76,8 @@ export interface ElementStyle {
|
|
|
74
76
|
fontSize?: number;
|
|
75
77
|
/** Font family name (first family from CSS font-family, quotes stripped). */
|
|
76
78
|
fontFace?: string;
|
|
79
|
+
/** OOXML alternate font — used when the primary fontFace is not installed. */
|
|
80
|
+
altFont?: string;
|
|
77
81
|
/** Text color (6-char hex, no '#'). `null` when `fontFill` is used instead. */
|
|
78
82
|
color?: string | null;
|
|
79
83
|
/** Bold weight. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../packages/slides/common.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../packages/slides/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,KAAK,EAKN,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEb,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,KAAK,EAKN,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEb,MAAM,UAAU,CAAC;AAoHlB;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,SAAI,EACd,cAAc,SAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAMD;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,CAkBf;AAgFD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,KAAK,EAEZ,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAmcf"}
|