<!--
@BLINK-ALLOW:htmlTag=*
@WAIT-FOR:Done
-->
<!DOCTYPE html>
<html>
<body>
<template id="template">
<div><slot name="my-slot"></slot></div>
</template>
<div hidden>
<my-element>
<span slot="my-slot">Slot contents</span>
</my-element>
</div>
<button id="status"></button>
<script>
// After a delay, make "my-element" into a custom element using
// the template defined above. That will cause the template to be
// rendered inside <my-element>, and the slot contents to be reparented
// to the <slot> element.
window.setTimeout(() => {
customElements.define(
'my-element',
class extends HTMLElement {
constructor() {
super();
let template = document.getElementById('template');
let templateContent = template.content;
const shadowRoot = this.attachShadow({mode: 'open'})
.appendChild(templateContent.cloneNode(true));
}
}
);
document.getElementById('status').setAttribute('aria-label', 'Done');
}, 500);
</script>
</body>