Sha256: ed8fc980d021aa2d6ba76cc9980666968b37feb0e6bffa0ed67821134cd7361d

Contents?: true

Size: 1.79 KB

Versions: 18

Compression:

Stored size: 1.79 KB

Contents

import {VBaseComponent, hookupComponents} from './base-component';
import {eventHandlerMixin} from './mixins/event-handler';
import {MDCSlider} from '@material/slider';
import {visibilityObserverMixin} from './mixins/visibility-observer';
import {VEvents} from './events';
import {dirtyableMixin} from './mixins/dirtyable';

export function initSliders(e) {
    console.debug('\tSliders');
    hookupComponents(e, '.v-slider', VSlider, MDCSlider);
}

export class VSlider extends dirtyableMixin(visibilityObserverMixin(
    eventHandlerMixin(VBaseComponent))) {
    constructor(element, mdcComponent) {
        super(element, mdcComponent);
        this.recalcWhenVisible(this);
        this.originalValue = this.value();
    }

    prepareSubmit(params) {
        params.push([this.name(), this.value()]);
    }

    name() {
        return this.element.getAttribute('data-name');
    }

    value() {
        return this.mdcComponent.value;
    }

    clear() {
        this.setValue(0);
    }

    reset() {
        this.setValue(this.originalValue);
    }

    setValue(value) {
        this.mdcComponent.value = value;
    }

    isDirty() {
        return this.dirtyable && this.value() !== this.originalValue;
    }

    initEventListener(eventName, eventHandler) {
        if (eventName === 'change') {
            eventName = 'MDCSlider:change';
        }
        super.initEventListener(eventName, eventHandler);
    }


    createEventHandler(actionsData, root) {
        return function(event) {
            // The MDC slider was firing duplicate change events - this prevents that
            if (!this.lastEvent ||
                (event.timeStamp - this.lastEvent.timeStamp) > 10.0) {
                new VEvents(actionsData, event, root).call();
            }
            this.lastEvent = event;
        };
    }
}

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
coprl-3.0.0.beta.12 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.11 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.10 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.9 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.8 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.7 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.6 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.5 views/mdc/assets/js/components/sliders.js
voom-presenters-2.1.2 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.4 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.3 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.2 views/mdc/assets/js/components/sliders.js
coprl-3.0.0.beta.1 views/mdc/assets/js/components/sliders.js
voom-presenters-2.1.0 views/mdc/assets/js/components/sliders.js
voom-presenters-2.0.3 views/mdc/assets/js/components/sliders.js
voom-presenters-2.0.2 views/mdc/assets/js/components/sliders.js
voom-presenters-2.0.1 views/mdc/assets/js/components/sliders.js
voom-presenters-2.0.0 views/mdc/assets/js/components/sliders.js