import {InputElement} from "./InputElement"; import {UIEventSource} from "../../Logic/UIEventSource"; export default class ColorPicker extends InputElement { private readonly value: UIEventSource constructor( value?: UIEventSource ) { super(); this.value = value ?? new UIEventSource(undefined); const self = this; this.value.addCallbackAndRun(v => { if(v === undefined){ return; } self.SetValue(v); }); } InnerRender(): string { return ``; } private SetValue(color: string){ const field = document.getElementById("color-" + this.id); if (field === undefined || field === null) { return; } // @ts-ignore field.value = color; } protected InnerUpdate() { const field = document.getElementById("color-" + this.id); if (field === undefined || field === null) { return; } const self = this; field.oninput = () => { const hex = field["value"]; self.value.setData(hex); } } GetValue(): UIEventSource { return this.value; } IsSelected: UIEventSource = new UIEventSource(false); IsValid(t: string): boolean { return false; } }