// @ts-nocheck
import { LitElement, html, css } from "lit";
import { customElement, property, eventOptions } from "lit/decorators.js";
var loadedResolve;
var loadedPromise = new Promise(resolve => {
loadedResolve = resolve;
});
if (document?.readyState === "loading") {
document.addEventListener(
"DOMContentLoaded",
() => {
loadedResolve();
},
{ once: true },
);
} else {
loadedResolve();
}
@customElement("my-element")
export class MyElement extends LitElement {
static styles = css`
:host {
display: inline-block;
padding: 10px;
background: lightgray;
}
.planet {
color: var(--planet-color, blue);
}
`;
@property() planet = "Earth";
render() {
return html` ${this.planet} `;
}
@eventOptions({ once: true })
togglePlanet() {
this.planet = this.planet === "Earth" ? "Mars" : "Earth";
}
}
function setup() {
let element = document.createElement("my-element");
element.id = "my-element-id";
document.body.appendChild(element);
}
export async function test() {
setup();
await loadedPromise;
let element = document.getElementById("my-element-id");
let shadowRoot = element.shadowRoot;
let planet = shadowRoot.getElementById("planet-id");
if (element.__planet !== "Earth") {
throw new Error("Unexpected planet name: " + element.__planet);
}
planet.click();
if (element.__planet !== "Mars") {
throw new Error("Unexpected planet name: " + element.__planet);
}
planet.click();
if (element.__planet !== "Mars") {
throw new Error("Unexpected planet name: " + element.__planet);
}
return testDone(import.meta.url);
}