//@ts-check import {fetchText} from '../modules/fetchText.mjs' import {parseFileList} from '../modules/parseFileList.mjs' import {html} from '../modules/html.mjs' const indexListTemplate = html`

Hello World!

` class IndexList extends HTMLElement { static template = indexListTemplate static observedAttributes = ["src"]; static define(tag = "index-list") { customElements.define(tag, this) } shadowRoot = this.shadowRoot || this.attachShadow({ mode: "open" }) src = "" connectedCallback() { this.shadowRoot.replaceChildren(IndexList.template.content.cloneNode(true)) } attributeChangedCallback(name, oldValue, newValue) { if (oldValue === newValue) { return; } switch (name) { case "src": this.src = newValue fetchText(newValue).then(parseFileList).then() } } }