MapComplete/UI/Base/Combine.ts

35 lines
997 B
TypeScript
Raw Normal View History

2020-09-12 23:15:17 +02:00
import {FixedUiElement} from "./FixedUiElement";
import {Utils} from "../../Utils";
2021-06-10 01:36:20 +02:00
import BaseUIElement from "../BaseUIElement";
2020-07-21 01:37:48 +02:00
2021-06-10 01:36:20 +02:00
export default class Combine extends BaseUIElement {
private readonly uiElements: BaseUIElement[];
2020-07-21 01:37:48 +02:00
2021-06-10 01:36:20 +02:00
constructor(uiElements: (string | BaseUIElement)[]) {
2020-09-12 23:15:17 +02:00
super();
this.uiElements = Utils.NoNull(uiElements)
.map(el => {
if (typeof el === "string") {
return new FixedUiElement(el);
}
return el;
});
2020-07-21 01:37:48 +02:00
}
2021-06-10 01:36:20 +02:00
protected InnerConstructElement(): HTMLElement {
const el = document.createElement("span")
2020-07-21 01:37:48 +02:00
2021-06-10 01:36:20 +02:00
for (const subEl of this.uiElements) {
if(subEl === undefined || subEl === null){
continue;
}
2021-06-10 01:36:20 +02:00
const subHtml = subEl.ConstructElement()
if(subHtml !== undefined){
el.appendChild(subHtml)
}
2021-06-10 01:36:20 +02:00
}
return el;
2020-07-21 01:37:48 +02:00
}
2021-06-10 01:36:20 +02:00
2020-07-21 01:37:48 +02:00
}