import { LitElement, html, render } from "lit";
import { customElement, query, state } from "lit/decorators.js";
import territory_patterns from "../../resources/territory_patterns.json";
import "./components/Difficulties";
import "./components/Maps";
@customElement("territory-patterns-input")
export class territoryPatternsModal extends LitElement {
@query("o-modal") private modalEl!: HTMLElement & {
open: () => void;
close: () => void;
};
@query("#territory-patterns-input_") private previewButton!: HTMLElement;
@state() private selectedPattern =
localStorage.getItem("territoryPattern") || "";
@state() private buttonWidth: number = 100;
private resizeObserver: ResizeObserver;
constructor() {
super();
this.resizeObserver = new ResizeObserver((entries) => {
for (const entry of entries) {
if (entry.target.classList.contains("preview-container")) {
this.buttonWidth = entry.contentRect.width;
}
}
});
}
connectedCallback() {
super.connectedCallback();
this.updateComplete.then(() => {
const containers = this.renderRoot.querySelectorAll(".preview-container");
containers.forEach((container) => this.resizeObserver.observe(container));
this.updatePreview();
});
}
disconnectedCallback() {
super.disconnectedCallback();
this.resizeObserver.disconnect();
}
createRenderRoot() {
return this;
}
render() {
return html`