UNPKG

d3-view

Version:

View-model d3 plugin for building interactive data-driven web interfaces

57 lines (51 loc) • 1.37 kB
import formCheck from "./check"; import error from "./error"; import formGroup from "./form-group"; import help from "./help"; import inputGroup from "./input-group"; import label from "./label"; import submit from "./submit"; const bootstrap = { input: ["error", "inputGroup", "label", "help", "formGroup"], checkbox: ["error", "formCheck", "help", "formGroup"], textarea: ["error", "label", "help", "formGroup"], select: ["error", "label", "help", "formGroup"], submit: ["submit"], wrappers: { error, label, formGroup, inputGroup, formCheck, submit, help } }; // // Bootstrap plugin // =================== // // Simply add a new form extension to wrap form fields // export default { install(vm) { if (!vm.$formExtensions) return vm.logWarn( "form bootstrap requires the form plugin installed first!" ); vm.$formExtensions.push(wrapBootstrap); } }; function wrapBootstrap(field, wrappedEl, fieldEl) { var wrappers = bootstrap[fieldEl.attr("type")] || bootstrap[fieldEl.node().tagName.toLowerCase()]; if (!wrappers) return wrappedEl; let wrap; wrappers.forEach(wrapper => { wrap = bootstrap.wrappers[wrapper]; if (wrap) wrappedEl = wrap(field, wrappedEl, fieldEl); else field.logWarn(`Could not find form field wrapper ${wrapper}`); }); return wrappedEl; }