mirror of https://github.com/vuejs/core.git
Merge 468e729990
into ba391f5fdf
This commit is contained in:
commit
5402aae5a6
|
@ -501,6 +501,26 @@ describe('defineCustomElement', () => {
|
||||||
container.appendChild(e)
|
container.appendChild(e)
|
||||||
expect(e.shadowRoot!.innerHTML).toBe('<div></div>')
|
expect(e.shadowRoot!.innerHTML).toBe('<div></div>')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// https://github.com/vuejs/core/issues/12964
|
||||||
|
// Disabled because of missing support for `delegatesFocus` in jsdom
|
||||||
|
// https://github.com/jsdom/jsdom/issues/3418
|
||||||
|
// eslint-disable-next-line vitest/no-disabled-tests
|
||||||
|
test.skip('shadowRoot should be initialized with delegatesFocus', () => {
|
||||||
|
const E = defineCustomElement(
|
||||||
|
{
|
||||||
|
render() {
|
||||||
|
return [h('input', { tabindex: 1 })]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ shadowRootOptions: { delegatesFocus: true } },
|
||||||
|
)
|
||||||
|
customElements.define('my-el-with-delegate-focus', E)
|
||||||
|
|
||||||
|
const e = new E()
|
||||||
|
container.appendChild(e)
|
||||||
|
expect(e.shadowRoot!.delegatesFocus).toBe(true)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('emits', () => {
|
describe('emits', () => {
|
||||||
|
|
|
@ -53,6 +53,7 @@ export type VueElementConstructor<P = {}> = {
|
||||||
export interface CustomElementOptions {
|
export interface CustomElementOptions {
|
||||||
styles?: string[]
|
styles?: string[]
|
||||||
shadowRoot?: boolean
|
shadowRoot?: boolean
|
||||||
|
shadowRootOptions?: Omit<ShadowRootInit, 'mode'>
|
||||||
nonce?: string
|
nonce?: string
|
||||||
configureApp?: (app: App) => void
|
configureApp?: (app: App) => void
|
||||||
}
|
}
|
||||||
|
@ -263,7 +264,11 @@ export class VueElement
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (_def.shadowRoot !== false) {
|
if (_def.shadowRoot !== false) {
|
||||||
this.attachShadow({ mode: 'open' })
|
this.attachShadow(
|
||||||
|
extend({}, _def.shadowRootOptions, {
|
||||||
|
mode: 'open',
|
||||||
|
}) as ShadowRootInit,
|
||||||
|
)
|
||||||
this._root = this.shadowRoot!
|
this._root = this.shadowRoot!
|
||||||
} else {
|
} else {
|
||||||
this._root = this
|
this._root = this
|
||||||
|
|
Loading…
Reference in New Issue