mapcomplete/UI/Base/Combine.ts

45 lines
1.3 KiB
TypeScript
Raw Normal View History

2020-07-21 01:37:48 +02:00
import {UIElement} from "../UIElement";
import Translations from "../i18n/Translations";
export default class Combine extends UIElement {
2020-09-02 11:37:34 +02:00
private readonly uiElements: (string | UIElement)[];
private readonly className: string = undefined;
2020-07-21 01:37:48 +02:00
2020-07-31 04:58:58 +02:00
constructor(uiElements: (string | UIElement)[], className: string = undefined) {
2020-07-21 01:37:48 +02:00
super(undefined);
2020-09-02 11:37:34 +02:00
this.dumbMode = false;
2020-07-31 04:58:58 +02:00
this.className = className;
this.uiElements = uiElements;
2020-09-02 11:37:34 +02:00
if (className) {
console.error("Deprecated used of className")
}
2020-07-21 01:37:48 +02:00
}
InnerRender(): string {
let elements = "";
for (const element of this.uiElements) {
if(element === undefined){
continue;
}
if (element instanceof UIElement) {
elements += element.Render();
} else {
elements += element;
}
2020-07-21 01:37:48 +02:00
}
2020-07-31 04:58:58 +02:00
if(this.className !== undefined){
elements = `<span class='${this.className}'>${elements}</span>`;
}
2020-07-21 01:37:48 +02:00
return elements;
}
2020-07-22 15:56:43 +02:00
InnerUpdate(htmlElement: HTMLElement) {
for (const element of this.uiElements) {
if (element instanceof UIElement) {
element.Update();
}
}
}
2020-07-21 01:37:48 +02:00
}