mapcomplete/UI/Input/InputElementWrapper.ts

42 lines
1.1 KiB
TypeScript
Raw Normal View History

2020-07-20 15:54:50 +02:00
import {InputElement} from "./InputElement";
import {UIElement} from "../UIElement";
import Translations from "../i18n/Translations";
import {UIEventSource} from "../../Logic/UIEventSource";
2020-07-20 15:54:50 +02:00
export class InputElementWrapper<T> extends InputElement<T>{
private pre: UIElement ;
private input: InputElement<T>;
private post: UIElement ;
IsSelected: UIEventSource<boolean>
2020-07-20 15:54:50 +02:00
constructor(
pre: UIElement | string,
input: InputElement<T>,
post: UIElement | string
) {
super(undefined);
// this.pre = typeof(pre) === 'string' ? new FixedUiElement(pre) : pre
this.pre = Translations.W(pre)
2020-07-20 15:54:50 +02:00
this.input = input;
// this.post =typeof(post) === 'string' ? new FixedUiElement(post) : post
this.post = Translations.W(post)
this.IsSelected = input.IsSelected;
2020-07-20 15:54:50 +02:00
}
GetValue(): UIEventSource<T> {
return this.input.GetValue();
}
2020-07-20 18:24:00 +02:00
InnerRender(): string {
2020-07-20 15:54:50 +02:00
return this.pre.Render() + this.input.Render() + this.post.Render();
}
IsValid(t: T): boolean {
return this.input.IsValid(t);
}
}