import { Utils } from "../../Utils" import BaseUIElement from "../BaseUIElement" import Translations from "../i18n/Translations" export default class List extends BaseUIElement { private readonly uiElements: BaseUIElement[] private readonly _ordered: boolean constructor(uiElements: (string | BaseUIElement)[], ordered = false) { super() this._ordered = ordered this.uiElements = Utils.NoNull(uiElements).map((s) => Translations.W(s)) } AsMarkdown(): string { if (this._ordered) { return ( "\n\n" + this.uiElements .map((el, i) => " " + i + ". " + el.AsMarkdown().replace(/\n/g, " \n")) .join("\n") + "\n" ) } else { return ( "\n\n" + this.uiElements .map((el) => " - " + el.AsMarkdown().replace(/\n/g, " \n")) .join("\n") + "\n" ) } } protected InnerConstructElement(): HTMLElement { const el = document.createElement(this._ordered ? "ol" : "ul") for (const subEl of this.uiElements) { if (subEl === undefined || subEl === null) { continue } const subHtml = subEl.ConstructElement() if (subHtml !== undefined) { const item = document.createElement("li") item.appendChild(subHtml) el.appendChild(item) } } return el } }