30 lines
928 B
JavaScript
30 lines
928 B
JavaScript
'use strict';
|
|
|
|
"use strict";
|
|
const genericFontFamilies = [
|
|
"serif",
|
|
"sans-serif",
|
|
"monospace",
|
|
"cursive",
|
|
"fantasy",
|
|
"system-ui"
|
|
];
|
|
function fontStringFromTextStyle(style) {
|
|
const fontSizeString = typeof style.fontSize === "number" ? `${style.fontSize}px` : style.fontSize;
|
|
let fontFamilies = style.fontFamily;
|
|
if (!Array.isArray(style.fontFamily)) {
|
|
fontFamilies = style.fontFamily.split(",");
|
|
}
|
|
for (let i = fontFamilies.length - 1; i >= 0; i--) {
|
|
let fontFamily = fontFamilies[i].trim();
|
|
if (!/([\"\'])[^\'\"]+\1/.test(fontFamily) && !genericFontFamilies.includes(fontFamily)) {
|
|
fontFamily = `"${fontFamily}"`;
|
|
}
|
|
fontFamilies[i] = fontFamily;
|
|
}
|
|
return `${style.fontStyle} ${style.fontVariant} ${style.fontWeight} ${fontSizeString} ${fontFamilies.join(",")}`;
|
|
}
|
|
|
|
exports.fontStringFromTextStyle = fontStringFromTextStyle;
|
|
//# sourceMappingURL=fontStringFromTextStyle.js.map
|