21 lines
511 B
Svelte
21 lines
511 B
Svelte
<script lang="ts">
|
|
import BaseUIElement from "../BaseUIElement.js"
|
|
import { onDestroy, onMount } from "svelte"
|
|
|
|
export let construct: BaseUIElement | (() => BaseUIElement)
|
|
let elem: HTMLElement
|
|
let html: HTMLElement
|
|
onMount(() => {
|
|
const uiElem = typeof construct === "function" ? construct() : construct
|
|
html = uiElem?.ConstructElement()
|
|
if (html !== undefined) {
|
|
elem.replaceWith(html)
|
|
}
|
|
})
|
|
|
|
onDestroy(() => {
|
|
html?.remove()
|
|
})
|
|
</script>
|
|
|
|
<span bind:this={elem} />
|