diff --git a/src/UI/Input/Checkboxes.ts b/src/UI/Input/Checkboxes.ts deleted file mode 100644 index 222d39fb1..000000000 --- a/src/UI/Input/Checkboxes.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { InputElement } from "./InputElement" -import { UIEventSource } from "../../Logic/UIEventSource" -import { Utils } from "../../Utils" -import BaseUIElement from "../BaseUIElement" -import InputElementMap from "./InputElementMap" -import Translations from "../i18n/Translations" - -/** - * @deprecated - */ -export class CheckBox extends InputElementMap { - constructor(el: BaseUIElement | string, defaultValue?: boolean) { - super( - new CheckBoxes([Translations.W(el)]), - (x0, x1) => x0 === x1, - (t) => t.length > 0, - (x) => (x ? [0] : []) - ) - if (defaultValue !== undefined) { - this.GetValue().setData(defaultValue) - } - } -} - -/** - * A list of individual checkboxes - * The value will contain the indexes of the selected checkboxes - */ -export default class CheckBoxes extends InputElement { - private static _nextId = 0 - private readonly value: UIEventSource - private readonly _elements: BaseUIElement[] - - constructor(elements: BaseUIElement[], value = new UIEventSource([])) { - super() - this.value = value - this._elements = Utils.NoNull(elements) - this.SetClass("flex flex-col") - } - - IsValid(ts: number[]): boolean { - return ts !== undefined - } - - GetValue(): UIEventSource { - return this.value - } - - protected InnerConstructElement(): HTMLElement { - const formTag = document.createElement("form") - - const value = this.value - const elements = this._elements - - for (let i = 0; i < elements.length; i++) { - let inputI = elements[i] - const input = document.createElement("input") - const id = CheckBoxes._nextId - CheckBoxes._nextId++ - input.id = "checkbox" + id - - input.type = "checkbox" - input.classList.add("p-1", "cursor-pointer", "m-3", "pl-3", "mr-0") - - const label = document.createElement("label") - label.htmlFor = input.id - label.appendChild(input) - label.appendChild(inputI.ConstructElement()) - label.classList.add("block", "w-full", "p-2", "cursor-pointer") - - formTag.appendChild(label) - - value.addCallbackAndRunD((selectedValues) => { - input.checked = selectedValues.indexOf(i) >= 0 - - if (input.checked) { - label.classList.add("checked") - } else { - label.classList.remove("checked") - } - }) - - input.onchange = () => { - // Index = index in the list of already checked items - const index = value.data.indexOf(i) - if (input.checked && index < 0) { - value.data.push(i) - value.ping() - } else if (index >= 0) { - value.data.splice(index, 1) - value.ping() - } - } - } - - return formTag - } -} diff --git a/src/UI/Input/InputElementMap.ts b/src/UI/Input/InputElementMap.ts deleted file mode 100644 index 4e49c38b5..000000000 --- a/src/UI/Input/InputElementMap.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { InputElement } from "./InputElement" -import { Store, UIEventSource } from "../../Logic/UIEventSource" - -/** - * @deprecated - */ -export default class InputElementMap extends InputElement { - private readonly _inputElement: InputElement - private isSame: (x0: X, x1: X) => boolean - private readonly fromX: (x: X) => T - private readonly toX: (t: T) => X - private readonly _value: UIEventSource - - constructor( - inputElement: InputElement, - isSame: (x0: X, x1: X) => boolean, - toX: (t: T) => X, - fromX: (x: X) => T, - extraSources: Store[] = [] - ) { - super() - this.isSame = isSame - this.fromX = fromX - this.toX = toX - this._inputElement = inputElement - const self = this - this._value = inputElement.GetValue().sync( - (t) => { - const newX = toX(t) - const currentX = self.GetValue()?.data - if (isSame(currentX, newX)) { - return currentX - } - return newX - }, - extraSources, - (x) => { - return fromX(x) - } - ) - } - - GetValue(): UIEventSource { - return this._value - } - - IsValid(x: X): boolean { - if (x === undefined) { - return false - } - const t = this.fromX(x) - if (t === undefined) { - return false - } - return this._inputElement.IsValid(t) - } - - protected InnerConstructElement(): HTMLElement { - return this._inputElement.ConstructElement() - } -}