Sha256: 78de0028f5a30f70d2384ba015e690cf4f0113d56a659db4b93d88edb625c493

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

import {VErrors} from './errors';
import {VUrls} from '../../utils/urls';

export class VBase extends VUrls {
    constructor(options) {
        super();
        this.options = options;
    }

    clearErrors() {
        new VErrors().clearErrors();
    }

    parentElement() {
        return document.getElementById(this.options.__parent_id__);
    }

    inputValues(form) {
        let params = [];

        // If tagged input is asked for. Fetch all the matching tag elements and then call any bound components
        if (this.options.input_tag !== undefined) {
            var taggedInputs = document.querySelectorAll('[data-input-tag=' + this.options.input_tag + ']');
            for (let input of taggedInputs) {
                if (input.vComponent && typeof input.vComponent.prepareSubmit === 'function') {
                    input.vComponent.prepareSubmit(params);
                }
            }
        }
        // Let input components push parameters
        let vComp = this.component();
        if (vComp && typeof vComp.prepareSubmit === 'function') {
            vComp.prepareSubmit(params);
        }
        return params;
    }

    component() {
        let parent = this.parentElement();
        return parent ? parent.vComponent : null;
    }

    validate() {
        let errors = [];
        let comp = this.component();
        if (comp) {
            errors = comp.validate();
        }
        return errors;
    }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
voom-presenters-0.2.0 views/mdc/assets/js/components/events/base.js