import FontObserver from 'fontfaceobserver'; export default { get name() { return 'ExpoFontLoader'; }, loadAsync(fontFamilyName, resource) { const canInjectStyle = document.head && typeof document.head.appendChild === 'function'; if (!canInjectStyle) { throw new Error('E_FONT_CREATION_FAILED : document element cannot support injecting fonts'); } const style = _createWebStyle(fontFamilyName, resource); document.head.appendChild(style); return new FontObserver(fontFamilyName).load(); }, }; function _createWebStyle(fontFamily, resource) { const fontStyle = `@font-face { font-family: ${fontFamily}; src: url(${resource}); }`; const styleElement = document.createElement('style'); styleElement.type = 'text/css'; // @ts-ignore: TypeScript does not define HTMLStyleElement::styleSheet. This is just for IE and // possibly can be removed if it's unnecessary on IE 11. if (styleElement.styleSheet) { // @ts-ignore styleElement.styleSheet.cssText = fontStyle; } else { const textNode = document.createTextNode(fontStyle); styleElement.appendChild(textNode); } return styleElement; } //# sourceMappingURL=ExpoFontLoader.web.js.map