Sha256: fc9fba72d932a5456402d38cdf8860111491dbf671260176eb4dc2ed5808ac42
Contents?: true
Size: 1.32 KB
Versions: 18
Compression:
Stored size: 1.32 KB
Contents
import {VBaseComponent} from './base-component'; import {eventHandlerMixin} from './mixins/event-handler'; import {dirtyableMixin} from './mixins/dirtyable'; export class VBaseToggle extends dirtyableMixin(eventHandlerMixin(VBaseComponent)) { constructor(element, mdcComponent) { super(element, mdcComponent); this.input = element.querySelector('input') || element; element.addEventListener('V:postFailed', (event) => { // Revert to previous checked state on failed post. this.mdcComponent.checked = !this.mdcComponent.checked; }); this.originalValue = this.input.checked; } prepareSubmit(params) { if (this.submittedValue()) { params.push([this.name(), this.submittedValue()]); } } submittedValue() { return this.input.checked ? this.value() : this.offValue(); } name() { return this.input.name; } value() { return this.input.value; } offValue() { return this.input.dataset.off; } clear() { this.input.checked = false; } reset() { this.input.checked = this.originalValue; } setValue(value) { this.input.value = value; } isDirty() { return this.dirtyable && this.input.checked !== this.originalValue; } }
Version data entries
18 entries across 18 versions & 2 rubygems