forked from MapComplete/MapComplete
Fixes and simplification of the CSS
This commit is contained in:
parent
c7f33a9490
commit
6d5f4ade25
24 changed files with 191 additions and 344 deletions
|
@ -1,45 +1,23 @@
|
|||
import {UIElement} from "../UIElement";
|
||||
import Translations from "../i18n/Translations";
|
||||
import {FixedUiElement} from "./FixedUiElement";
|
||||
import {Utils} from "../../Utils";
|
||||
|
||||
export default class Combine extends UIElement {
|
||||
private readonly uiElements: (string | UIElement)[];
|
||||
private readonly className: string = undefined;
|
||||
private readonly uiElements: UIElement[];
|
||||
|
||||
constructor(uiElements: (string | UIElement)[], className: string = undefined) {
|
||||
super(undefined);
|
||||
this.dumbMode = false;
|
||||
this.className = className;
|
||||
this.uiElements = uiElements;
|
||||
if (className) {
|
||||
console.error("Deprecated used of className")
|
||||
}
|
||||
constructor(uiElements: (string | UIElement)[]) {
|
||||
super();
|
||||
this.uiElements = Utils.NoNull(uiElements)
|
||||
.map(el => {
|
||||
if (typeof el === "string") {
|
||||
return new FixedUiElement(el);
|
||||
}
|
||||
return el;
|
||||
});
|
||||
}
|
||||
|
||||
InnerRender(): string {
|
||||
let elements = "";
|
||||
for (const element of this.uiElements) {
|
||||
if(element === undefined){
|
||||
continue;
|
||||
}
|
||||
|
||||
if (element instanceof UIElement) {
|
||||
elements += element.Render();
|
||||
} else {
|
||||
elements += element;
|
||||
}
|
||||
}
|
||||
if(this.className !== undefined){
|
||||
elements = `<span class='${this.className}'>${elements}</span>`;
|
||||
}
|
||||
|
||||
return elements;
|
||||
return this.uiElements.map(ui => ui.Render()).join("");
|
||||
}
|
||||
|
||||
InnerUpdate(htmlElement: HTMLElement) {
|
||||
for (const element of this.uiElements) {
|
||||
if (element instanceof UIElement) {
|
||||
element.Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,7 +13,9 @@ export class TabbedComponent extends UIElement {
|
|||
for (let i = 0; i < elements.length; i++) {
|
||||
let element = elements[i];
|
||||
this.headers.push(Translations.W(element.header).onClick(() => self._source.setData(i)));
|
||||
this.content.push(Translations.W(element.content));
|
||||
const content = Translations.W(element.content)
|
||||
this.ListenTo(content)
|
||||
this.content.push(content);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -35,10 +37,4 @@ export class TabbedComponent extends UIElement {
|
|||
return headerBar + "<div class='tab-content'>" + (content?.Render() ?? "") + "</div>";
|
||||
}
|
||||
|
||||
protected InnerUpdate(htmlElement: HTMLElement) {
|
||||
|
||||
super.InnerUpdate(htmlElement);
|
||||
this.content[this._source.data].Update();
|
||||
}
|
||||
|
||||
}
|
|
@ -3,13 +3,10 @@ import {UIEventSource} from "../../Logic/UIEventSource";
|
|||
|
||||
export class VariableUiElement extends UIElement {
|
||||
private _html: UIEventSource<string>;
|
||||
private _innerUpdate: (htmlElement: HTMLElement) => void;
|
||||
|
||||
constructor(html: UIEventSource<string>, innerUpdate : ((htmlElement : HTMLElement) => void) = undefined) {
|
||||
constructor(html: UIEventSource<string>) {
|
||||
super(html);
|
||||
this._html = html;
|
||||
this._innerUpdate = innerUpdate;
|
||||
|
||||
}
|
||||
|
||||
InnerRender(): string {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue