import {InputElement} from "./InputElement"; import {UIEventSource} from "../../Logic/UIEventSource"; import Combine from "../Base/Combine"; import {FixedUiElement} from "../Base/FixedUiElement"; /** * Selects a direction in degrees */ export default class Direction extends InputElement{ private readonly value: UIEventSource; public readonly IsSelected: UIEventSource = new UIEventSource(false); constructor(value?: UIEventSource) { super(); this.value = value ?? new UIEventSource(undefined); } GetValue(): UIEventSource { return this.value; } InnerRender(): string { return new Combine([ new FixedUiElement("").SetStyle( "position: absolute;top: calc(50% - 0.5em);left: calc(50% - 0.5em);width: 1em;height: 1em;background: red;border-radius: 1em"), ]) .SetStyle("position:relative;display:block;width: min(100%, 25em); padding-top: min(100% , 25em); background:white; border: 1px solid black; border-radius: 999em") .Render(); } IsValid(t: number): boolean { return t >= 0 && t <= 360; } }