@tarojs/taro-h5
Version:
Taro h5 framework
57 lines (54 loc) • 2.15 kB
JavaScript
import { __awaiter } from '../../node_modules/.pnpm/registry.npmjs.org_tslib@2.5.0/node_modules/tslib/tslib.es6.js';
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({});
}
catch (error) {
return handle.fail({
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();
}
});
export { loadFontFace };
//# sourceMappingURL=fonts.js.map