UNPKG

@tarojs/taro-h5

Version:
58 lines (55 loc) 2.14 kB
import { __awaiter } from 'tslib'; import { MethodHandler } from '../../utils/handler.js'; // 字体 const loadFontFace = (options) => __awaiter(void 0, void 0, void 0, function* () { options = Object.assign({ global: false }, options); const { success, fail, complete, family, source, desc = {} } = options; const handle = new MethodHandler({ name: 'loadFontFace', success, fail, complete }); // @ts-ignore const fonts = document.fonts; if (fonts) { // @ts-ignore const fontFace = new FontFace(family, source, desc); try { yield fontFace.load(); fonts.add(fontFace); return handle.success({ status: 'loaded' }); } catch (error) { return handle.fail({ status: 'error', errMsg: error.message || error, }); } } else { const style = document.createElement('style'); let innerText = `font-family:"${family}";src:${source};font-style:${desc.style || 'normal'};font-weight:${desc.weight || 'normal'};font-variant:${desc.variant || 'normal'};`; if (desc.ascentOverride) { innerText += `ascent-override:${desc.ascentOverride};`; } if (desc.descentOverride) { innerText += `descent-override:${desc.descentOverride};`; } if (desc.featureSettings) { innerText += `font-feature-settings:${desc.featureSettings};`; } if (desc.lineGapOverride) { innerText += `line-gap-override:${desc.lineGapOverride};`; } if (desc.stretch) { innerText += `font-stretch:${desc.stretch};`; } if (desc.unicodeRange) { innerText += `unicode-range:${desc.unicodeRange};`; } if (desc.variationSettings) { innerText += `font-variation-settings:${desc.variationSettings};`; } style.innerText = `@font-face{${innerText}}`; document.head.appendChild(style); return handle.success({ status: 'loaded' }); } }); export { loadFontFace }; //# sourceMappingURL=fonts.js.map