36 lines
No EOL
1,000 B
TypeScript
36 lines
No EOL
1,000 B
TypeScript
import {UIElement} from "../UIElement";
|
|
import {FixedUiElement} from "./FixedUiElement";
|
|
import {Utils} from "../../Utils";
|
|
|
|
export default class Combine extends UIElement {
|
|
private readonly uiElements: UIElement[];
|
|
|
|
constructor(uiElements: (string | UIElement)[]) {
|
|
super();
|
|
this.uiElements = Utils.NoNull(uiElements)
|
|
.map(el => {
|
|
if (typeof el === "string") {
|
|
return new FixedUiElement(el);
|
|
}
|
|
return el;
|
|
});
|
|
}
|
|
|
|
InnerRender(): string {
|
|
return this.uiElements.map(ui => {
|
|
if(ui === undefined || ui === null){
|
|
return "";
|
|
}
|
|
if(ui.Render === undefined){
|
|
console.error("Not a UI-element", ui);
|
|
return "";
|
|
}
|
|
let rendered = ui.Render();
|
|
if(ui.IsEmpty()){
|
|
return "";
|
|
}
|
|
return rendered;
|
|
}).join("");
|
|
}
|
|
|
|
} |