import { LitElement, html, unsafeCSS } from "lit"; import { customElement, state } from "lit/decorators.js"; import globalStyles from "../index.css?inline"; import type { Rename } from "../interface"; @customElement("rename-input") export class RenameInput extends LitElement { static styles = [unsafeCSS(globalStyles)]; private _replaceArray: Array = []; @state() set replaceArray(value: Array) { this._replaceArray = value; let updatedReplaceMap: { [key: string]: string } = {}; value.forEach((e) => { updatedReplaceMap[e.old] = e.new; }); this.dispatchEvent( new CustomEvent("change", { detail: updatedReplaceMap, }) ); } get replaceArray(): Array { return this._replaceArray; } render() { return html`
${this.replaceArray.map((_, i) => this.RenameTemplate(i))}
`; } RenameTemplate(index: number) { const replaceItem = this.replaceArray[index]; return html`
`; } } declare global { interface HTMLElementTagNameMap { "rename-input": RenameInput; } }