From f3d0d2938d1272c50f60a819118ca2a00317777b Mon Sep 17 00:00:00 2001 From: Zephraph Date: Tue, 23 Apr 2019 17:49:06 -0400 Subject: [PATCH] Pass shadow dom options down to SvelteElement --- src/compile/render-dom/index.ts | 3 +-- src/internal/Component.js | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/compile/render-dom/index.ts b/src/compile/render-dom/index.ts index eede9d2aa0..9293f5dcc6 100644 --- a/src/compile/render-dom/index.ts +++ b/src/compile/render-dom/index.ts @@ -445,11 +445,10 @@ export default function dom( builder.add_block(deindent` class ${name} extends @SvelteElement { constructor(options) { - super(); + super(${should_use_shadow_dom ? '' : '{ use_shadow_dom: true }'}); ${css.code && should_use_shadow_dom && `this.shadowRoot.innerHTML = \`\`;`} - // TODO: Figure out what target should point to @init(this, { target: this.shadowRoot }, ${definition}, create_fragment, ${not_equal}, ${prop_names}); ${dev_props_check} diff --git a/src/internal/Component.js b/src/internal/Component.js index 6c0dfc0dfa..43c0c62ca9 100644 --- a/src/internal/Component.js +++ b/src/internal/Component.js @@ -115,9 +115,9 @@ export function init(component, options, instance, create_fragment, not_equal, p export let SvelteElement; if (typeof HTMLElement !== 'undefined') { SvelteElement = class extends HTMLElement { - constructor() { + constructor({ use_shadow_dom = true } = {}) { super(); - if (options.shadowDom !== false) { + if (use_shadow_dom) { this.attachShadow({ mode: 'open' }); } }