client-shim.js 512 B

12345678910111213141516171819202122
  1. async function polyfill() {
  2. const { hydrateShadowRoots } = await import(
  3. '@webcomponents/template-shadowroot/template-shadowroot.js'
  4. );
  5. window.addEventListener('DOMContentLoaded', () => hydrateShadowRoots(document.body), {
  6. once: true,
  7. });
  8. }
  9. const polyfillCheckEl = new DOMParser()
  10. .parseFromString(
  11. `<p><template shadowroot="open" shadowrootmode="open"></template></p>`,
  12. 'text/html',
  13. {
  14. includeShadowRoots: true,
  15. }
  16. )
  17. .querySelector('p');
  18. if (!polyfillCheckEl?.shadowRoot) {
  19. polyfill();
  20. }