Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 2x 2x | import type Community from '../index'
import {BaseInput} from './index'
export class InputSwitch extends BaseInput {
type: 'switch' = 'switch'
e: HTMLInputElement
source: boolean
constructor(e: HTMLElement, site: Community) {
super(e, site)
this.listen = this.listen.bind(this)
e.addEventListener('change', this.listen)
}
get() {
this.set(this.e.checked)
}
set(v: string | boolean) {
Iif ('string' === typeof v) v = 'on' === v || 'true' === v
Iif (v !== this.source) {
this.previous = this.e.checked
this.e.checked = this.source = v
this.site.request_queue(this.id)
}
}
listen(e: MouseEvent) {
this.set(this.e.checked)
}
}
|