diff --git a/.prettierrc b/.prettierrc index ef58ff9d1..0b81e39b4 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,6 +1,6 @@ { - "trailingComma": "es5", - "tabWidth": 4, - "semi": false, - "singleQuote": true + "trailingComma": "es5", + "tabWidth": 4, + "semi": true, + "singleQuote": false } diff --git a/UI/Input/Checkboxes.ts b/UI/Input/Checkboxes.ts index 7d3a32ea6..251b702a9 100644 --- a/UI/Input/Checkboxes.ts +++ b/UI/Input/Checkboxes.ts @@ -1,116 +1,116 @@ -import { InputElement } from './InputElement' -import { UIEventSource } from '../../Logic/UIEventSource' -import { Utils } from '../../Utils' -import BaseUIElement from '../BaseUIElement' +import { InputElement } from "./InputElement"; +import { UIEventSource } from "../../Logic/UIEventSource"; +import { Utils } from "../../Utils"; +import BaseUIElement from "../BaseUIElement"; /** * Supports multi-input */ export default class CheckBoxes extends InputElement { - private static _nextId = 0 - IsSelected: UIEventSource = new UIEventSource(false) - private readonly value: UIEventSource - private readonly _elements: BaseUIElement[] - private styleWrapperOverride = '' - private styleInputOverride = '' - private styleLabelOverride = '' + private static _nextId = 0; + IsSelected: UIEventSource = new UIEventSource(false); + private readonly value: UIEventSource; + private readonly _elements: BaseUIElement[]; + private styleWrapperOverride = ""; + private styleInputOverride = ""; + private styleLabelOverride = ""; constructor( elements: BaseUIElement[], value = new UIEventSource([]), - styleFormOverride = '', - styleWrapperOverride = '', - styleInputOverride = '', - styleLabelOverride = '' + styleFormOverride = "", + styleWrapperOverride = "", + styleInputOverride = "", + styleLabelOverride = "" ) { - super() - this.value = value - this._elements = Utils.NoNull(elements) - this.SetClass('flex flex-col') - this.SetStyle(styleFormOverride) - this.styleWrapperOverride = styleWrapperOverride - this.styleInputOverride = styleInputOverride - this.styleLabelOverride = styleLabelOverride + super(); + this.value = value; + this._elements = Utils.NoNull(elements); + this.SetClass("flex flex-col"); + this.SetStyle(styleFormOverride); + this.styleWrapperOverride = styleWrapperOverride; + this.styleInputOverride = styleInputOverride; + this.styleLabelOverride = styleLabelOverride; } IsValid(ts: number[]): boolean { - return ts !== undefined + return ts !== undefined; } GetValue(): UIEventSource { - return this.value + return this.value; } protected InnerConstructElement(): HTMLElement { - const el = document.createElement('form') + const el = document.createElement("form"); - const value = this.value - const elements = this._elements + 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 + 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') - input.style.cssText = this.styleInputOverride + input.type = "checkbox"; + input.classList.add("p-1", "cursor-pointer", "m-3", "pl-3", "mr-0"); + input.style.cssText = this.styleInputOverride; - const label = document.createElement('label') - label.htmlFor = input.id - label.appendChild(inputI.ConstructElement()) + const label = document.createElement("label"); + label.htmlFor = input.id; + label.appendChild(inputI.ConstructElement()); label.classList.add( - 'block', - 'w-full', - 'p-2', - 'cursor-pointer', - 'bg-red' - ) - label.style.cssText = this.styleLabelOverride + "block", + "w-full", + "p-2", + "cursor-pointer", + "bg-red" + ); + label.style.cssText = this.styleLabelOverride; - const wrapper = document.createElement('span') + const wrapper = document.createElement("span"); wrapper.classList.add( - 'wrapper', - 'flex', - 'w-full', - 'border', - 'border-gray-400', - 'm-1' - ) - wrapper.style.cssText = this.styleWrapperOverride - wrapper.appendChild(input) - wrapper.appendChild(label) - el.appendChild(wrapper) + "wrapper", + "flex", + "w-full", + "border", + "border-gray-400", + "m-1" + ); + wrapper.style.cssText = this.styleWrapperOverride; + wrapper.appendChild(input); + wrapper.appendChild(label); + el.appendChild(wrapper); value.addCallbackAndRunD((selectedValues) => { if (selectedValues.indexOf(i) >= 0) { - input.checked = true + input.checked = true; } if (input.checked) { - wrapper.classList.remove('border-gray-400') - wrapper.classList.add('border-black') + wrapper.classList.remove("border-gray-400"); + wrapper.classList.add("border-black"); } else { - wrapper.classList.add('border-gray-400') - wrapper.classList.remove('border-black') + wrapper.classList.add("border-gray-400"); + wrapper.classList.remove("border-black"); } - }) + }); input.onchange = () => { // Index = index in the list of already checked items - const index = value.data.indexOf(i) + const index = value.data.indexOf(i); if (input.checked && index < 0) { - value.data.push(i) - value.ping() + value.data.push(i); + value.ping(); } else if (index >= 0) { - value.data.splice(index, 1) - value.ping() + value.data.splice(index, 1); + value.ping(); } - } + }; } - return el + return el; } }