astro/packages/integrations/lit/client-shim.js
Matthew Phillips 55820fa784
Lit polyfill - wait to polyfill on DOMContentLoaded (#3484)
* Lit polyfill - wait to polyfill on DOMContentLoaded

* Adds changeset
2022-05-31 11:40:26 -04:00

16 lines
494 B
JavaScript

async function polyfill() {
const { hydrateShadowRoots } = await import(
'@webcomponents/template-shadowroot/template-shadowroot.js'
);
window.addEventListener('DOMContentLoaded', () => hydrateShadowRoots(document.body), { once: true });
}
const polyfillCheckEl = new DOMParser()
.parseFromString(`<p><template shadowroot="open"></template></p>`, 'text/html', {
includeShadowRoots: true,
})
.querySelector('p');
if (!polyfillCheckEl || !polyfillCheckEl.shadowRoot) {
polyfill();
}