Initial reactivity for FormulateForm
This commit is contained in:
parent
3ad166ac90
commit
942ff41ad9
152
dist/formulate.esm.js
vendored
152
dist/formulate.esm.js
vendored
@ -152,6 +152,7 @@ var context = {
|
|||||||
}
|
}
|
||||||
return defineModel.call(this, Object.assign({}, {type: this.type,
|
return defineModel.call(this, Object.assign({}, {type: this.type,
|
||||||
value: this.value,
|
value: this.value,
|
||||||
|
name: this.nameOrFallback,
|
||||||
classification: this.classification,
|
classification: this.classification,
|
||||||
component: this.component,
|
component: this.component,
|
||||||
id: this.id || this.defaultId,
|
id: this.id || this.defaultId,
|
||||||
@ -160,6 +161,7 @@ var context = {
|
|||||||
attributes: this.elementAttributes},
|
attributes: this.elementAttributes},
|
||||||
this.typeContext))
|
this.typeContext))
|
||||||
},
|
},
|
||||||
|
nameOrFallback: nameOrFallback,
|
||||||
typeContext: typeContext,
|
typeContext: typeContext,
|
||||||
elementAttributes: elementAttributes,
|
elementAttributes: elementAttributes,
|
||||||
logicalLabelPosition: logicalLabelPosition
|
logicalLabelPosition: logicalLabelPosition
|
||||||
@ -222,6 +224,19 @@ function logicalLabelPosition () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the element’s name, or select a fallback.
|
||||||
|
*/
|
||||||
|
function nameOrFallback () {
|
||||||
|
if (this.name === true) {
|
||||||
|
return ((this.type) + "_" + (this.elementAttributes.id))
|
||||||
|
}
|
||||||
|
if (this.name === false) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return this.name
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given an object or array of options, create an array of objects with label,
|
* Given an object or array of options, create an array of objects with label,
|
||||||
* value, and id.
|
* value, and id.
|
||||||
@ -260,7 +275,7 @@ function modelGetter () {
|
|||||||
if (this.type === 'checkbox' && !Array.isArray(this.formulateValue) && this.options) {
|
if (this.type === 'checkbox' && !Array.isArray(this.formulateValue) && this.options) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
if (this.formulateValue === false) {
|
if (!this.formulateValue) {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
return this.formulateValue
|
return this.formulateValue
|
||||||
@ -271,6 +286,9 @@ function modelGetter () {
|
|||||||
**/
|
**/
|
||||||
function modelSetter (value) {
|
function modelSetter (value) {
|
||||||
this.$emit('input', value);
|
this.$emit('input', value);
|
||||||
|
if (this.context.name && typeof this.formulateFormSetter === 'function') {
|
||||||
|
this.formulateFormSetter(this.context.name, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -278,6 +296,10 @@ function modelSetter (value) {
|
|||||||
var script = {
|
var script = {
|
||||||
name: 'FormulateInput',
|
name: 'FormulateInput',
|
||||||
inheritAttrs: false,
|
inheritAttrs: false,
|
||||||
|
inject: {
|
||||||
|
formulateFormSetter: { default: undefined },
|
||||||
|
formulateFormRegister: { default: undefined }
|
||||||
|
},
|
||||||
model: {
|
model: {
|
||||||
prop: 'formulateValue',
|
prop: 'formulateValue',
|
||||||
event: 'input'
|
event: 'input'
|
||||||
@ -287,14 +309,18 @@ var script = {
|
|||||||
type: String,
|
type: String,
|
||||||
default: 'text'
|
default: 'text'
|
||||||
},
|
},
|
||||||
|
name: {
|
||||||
|
type: [Boolean, String],
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
/* eslint-disable */
|
||||||
formulateValue: {
|
formulateValue: {
|
||||||
type: [String, Number, Object, Boolean, Array],
|
default: undefined
|
||||||
default: ''
|
|
||||||
},
|
},
|
||||||
value: {
|
value: {
|
||||||
type: [String, Number, Object, Boolean, Array],
|
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
/* eslint-enable */
|
||||||
options: {
|
options: {
|
||||||
type: [Object, Array, Boolean],
|
type: [Object, Array, Boolean],
|
||||||
default: false
|
default: false
|
||||||
@ -347,6 +373,9 @@ var script = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created: function created () {
|
created: function created () {
|
||||||
|
if (this.formulateFormRegister && typeof this.formulateFormRegister === 'function') {
|
||||||
|
this.formulateFormRegister(this.name, this);
|
||||||
|
}
|
||||||
this.updateLocalAttributes(this.$attrs);
|
this.updateLocalAttributes(this.$attrs);
|
||||||
},
|
},
|
||||||
mounted: function mounted () {
|
mounted: function mounted () {
|
||||||
@ -554,14 +583,85 @@ __vue_render__._withStripped = true;
|
|||||||
undefined
|
undefined
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
var script$1 = {
|
||||||
|
provide: function provide () {
|
||||||
|
return {
|
||||||
|
formulateFormSetter: this.setFieldValue,
|
||||||
|
formulateFormRegister: this.register
|
||||||
|
}
|
||||||
|
},
|
||||||
|
name: 'FormulateForm',
|
||||||
|
model: {
|
||||||
|
prop: 'formulateValue',
|
||||||
|
event: 'input'
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
name: {
|
||||||
|
type: [String, Boolean],
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
formulateValue: {
|
||||||
|
type: Object,
|
||||||
|
default: function () { return ({}); }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: function data () {
|
||||||
|
return {
|
||||||
|
registry: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
formModel: {
|
||||||
|
get: function get () {
|
||||||
|
return this.formulateValue
|
||||||
|
},
|
||||||
|
set: function set (value) {
|
||||||
|
this.$emit('input', value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
setFieldValue: function setFieldValue (field, value) {
|
||||||
|
var obj;
|
||||||
|
|
||||||
|
this.formModel = Object.assign({}, this.formulateValue, ( obj = {}, obj[field] = value, obj ));
|
||||||
|
},
|
||||||
|
register: function register (field, component) {
|
||||||
|
this.registry[field] = component;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
|
var __vue_script__$1 = script$1;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$1 = function() {
|
var __vue_render__$1 = function() {
|
||||||
var _vm = this;
|
var _vm = this;
|
||||||
var _h = _vm.$createElement;
|
var _h = _vm.$createElement;
|
||||||
var _c = _vm._self._c || _h;
|
var _c = _vm._self._c || _h;
|
||||||
return _c("form", [_vm._t("default")], 2)
|
return _c(
|
||||||
|
"form",
|
||||||
|
{
|
||||||
|
on: {
|
||||||
|
submit: function($event) {
|
||||||
|
$event.preventDefault();
|
||||||
|
return _vm.formSubmitted($event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[_vm._t("default")],
|
||||||
|
2
|
||||||
|
)
|
||||||
};
|
};
|
||||||
var __vue_staticRenderFns__$1 = [];
|
var __vue_staticRenderFns__$1 = [];
|
||||||
__vue_render__$1._withStripped = true;
|
__vue_render__$1._withStripped = true;
|
||||||
@ -583,7 +683,7 @@ __vue_render__$1._withStripped = true;
|
|||||||
var FormulateForm = normalizeComponent_1(
|
var FormulateForm = normalizeComponent_1(
|
||||||
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
||||||
__vue_inject_styles__$1,
|
__vue_inject_styles__$1,
|
||||||
{},
|
__vue_script__$1,
|
||||||
__vue_scope_id__$1,
|
__vue_scope_id__$1,
|
||||||
__vue_is_functional_template__$1,
|
__vue_is_functional_template__$1,
|
||||||
__vue_module_identifier__$1,
|
__vue_module_identifier__$1,
|
||||||
@ -606,7 +706,7 @@ __vue_render__$1._withStripped = true;
|
|||||||
//
|
//
|
||||||
|
|
||||||
function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
|
function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
|
||||||
var script$1 = {
|
var script$2 = {
|
||||||
name: 'FormulateInputGroup',
|
name: 'FormulateInputGroup',
|
||||||
props: {
|
props: {
|
||||||
context: {
|
context: {
|
||||||
@ -644,7 +744,7 @@ var script$1 = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$1 = script$1;
|
var __vue_script__$2 = script$2;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$2 = function() {
|
var __vue_render__$2 = function() {
|
||||||
@ -699,7 +799,7 @@ __vue_render__$2._withStripped = true;
|
|||||||
var FormulateInputGroup = normalizeComponent_1(
|
var FormulateInputGroup = normalizeComponent_1(
|
||||||
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
|
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
|
||||||
__vue_inject_styles__$2,
|
__vue_inject_styles__$2,
|
||||||
__vue_script__$1,
|
__vue_script__$2,
|
||||||
__vue_scope_id__$2,
|
__vue_scope_id__$2,
|
||||||
__vue_is_functional_template__$2,
|
__vue_is_functional_template__$2,
|
||||||
__vue_module_identifier__$2,
|
__vue_module_identifier__$2,
|
||||||
@ -711,18 +811,10 @@ __vue_render__$2._withStripped = true;
|
|||||||
* Default base for input components.
|
* Default base for input components.
|
||||||
*/
|
*/
|
||||||
var FormulateInputMixin = {
|
var FormulateInputMixin = {
|
||||||
model: {
|
|
||||||
prop: 'formulateValue',
|
|
||||||
event: 'input'
|
|
||||||
},
|
|
||||||
props: {
|
props: {
|
||||||
context: {
|
context: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
},
|
|
||||||
formulateValue: {
|
|
||||||
type: [Object, Array, Boolean, String, Number],
|
|
||||||
default: ''
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -736,20 +828,20 @@ var FormulateInputMixin = {
|
|||||||
return this.context.attributes || {}
|
return this.context.attributes || {}
|
||||||
},
|
},
|
||||||
hasValue: function hasValue () {
|
hasValue: function hasValue () {
|
||||||
return !!this.model
|
return !!this.context.model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$2 = {
|
var script$3 = {
|
||||||
name: 'FormulateInputBox',
|
name: 'FormulateInputBox',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$2 = script$2;
|
var __vue_script__$3 = script$3;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$3 = function() {
|
var __vue_render__$3 = function() {
|
||||||
@ -901,7 +993,7 @@ __vue_render__$3._withStripped = true;
|
|||||||
var FormulateInputBox = normalizeComponent_1(
|
var FormulateInputBox = normalizeComponent_1(
|
||||||
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
|
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
|
||||||
__vue_inject_styles__$3,
|
__vue_inject_styles__$3,
|
||||||
__vue_script__$2,
|
__vue_script__$3,
|
||||||
__vue_scope_id__$3,
|
__vue_scope_id__$3,
|
||||||
__vue_is_functional_template__$3,
|
__vue_is_functional_template__$3,
|
||||||
__vue_module_identifier__$3,
|
__vue_module_identifier__$3,
|
||||||
@ -911,13 +1003,13 @@ __vue_render__$3._withStripped = true;
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$3 = {
|
var script$4 = {
|
||||||
name: 'FormulateInputText',
|
name: 'FormulateInputText',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$3 = script$3;
|
var __vue_script__$4 = script$4;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$4 = function() {
|
var __vue_render__$4 = function() {
|
||||||
@ -1056,7 +1148,7 @@ __vue_render__$4._withStripped = true;
|
|||||||
var FormulateInputText = normalizeComponent_1(
|
var FormulateInputText = normalizeComponent_1(
|
||||||
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
|
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
|
||||||
__vue_inject_styles__$4,
|
__vue_inject_styles__$4,
|
||||||
__vue_script__$3,
|
__vue_script__$4,
|
||||||
__vue_scope_id__$4,
|
__vue_scope_id__$4,
|
||||||
__vue_is_functional_template__$4,
|
__vue_is_functional_template__$4,
|
||||||
__vue_module_identifier__$4,
|
__vue_module_identifier__$4,
|
||||||
@ -1066,7 +1158,7 @@ __vue_render__$4._withStripped = true;
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$4 = {
|
var script$5 = {
|
||||||
name: 'FormulateInputSelect',
|
name: 'FormulateInputSelect',
|
||||||
mixins: [FormulateInputMixin],
|
mixins: [FormulateInputMixin],
|
||||||
computed: {
|
computed: {
|
||||||
@ -1083,7 +1175,7 @@ var script$4 = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$4 = script$4;
|
var __vue_script__$5 = script$5;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$5 = function() {
|
var __vue_render__$5 = function() {
|
||||||
@ -1213,7 +1305,7 @@ __vue_render__$5._withStripped = true;
|
|||||||
var FormulateInputSelect = normalizeComponent_1(
|
var FormulateInputSelect = normalizeComponent_1(
|
||||||
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
|
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
|
||||||
__vue_inject_styles__$5,
|
__vue_inject_styles__$5,
|
||||||
__vue_script__$4,
|
__vue_script__$5,
|
||||||
__vue_scope_id__$5,
|
__vue_scope_id__$5,
|
||||||
__vue_is_functional_template__$5,
|
__vue_is_functional_template__$5,
|
||||||
__vue_module_identifier__$5,
|
__vue_module_identifier__$5,
|
||||||
@ -1223,13 +1315,13 @@ __vue_render__$5._withStripped = true;
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$5 = {
|
var script$6 = {
|
||||||
name: 'FormulateInputTextArea',
|
name: 'FormulateInputTextArea',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$5 = script$5;
|
var __vue_script__$6 = script$6;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$6 = function() {
|
var __vue_render__$6 = function() {
|
||||||
@ -1292,7 +1384,7 @@ __vue_render__$6._withStripped = true;
|
|||||||
var FormulateInputTextArea = normalizeComponent_1(
|
var FormulateInputTextArea = normalizeComponent_1(
|
||||||
{ render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
|
{ render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
|
||||||
__vue_inject_styles__$6,
|
__vue_inject_styles__$6,
|
||||||
__vue_script__$5,
|
__vue_script__$6,
|
||||||
__vue_scope_id__$6,
|
__vue_scope_id__$6,
|
||||||
__vue_is_functional_template__$6,
|
__vue_is_functional_template__$6,
|
||||||
__vue_module_identifier__$6,
|
__vue_module_identifier__$6,
|
||||||
|
152
dist/formulate.min.js
vendored
152
dist/formulate.min.js
vendored
@ -155,6 +155,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
}
|
}
|
||||||
return defineModel.call(this, Object.assign({}, {type: this.type,
|
return defineModel.call(this, Object.assign({}, {type: this.type,
|
||||||
value: this.value,
|
value: this.value,
|
||||||
|
name: this.nameOrFallback,
|
||||||
classification: this.classification,
|
classification: this.classification,
|
||||||
component: this.component,
|
component: this.component,
|
||||||
id: this.id || this.defaultId,
|
id: this.id || this.defaultId,
|
||||||
@ -163,6 +164,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
attributes: this.elementAttributes},
|
attributes: this.elementAttributes},
|
||||||
this.typeContext))
|
this.typeContext))
|
||||||
},
|
},
|
||||||
|
nameOrFallback: nameOrFallback,
|
||||||
typeContext: typeContext,
|
typeContext: typeContext,
|
||||||
elementAttributes: elementAttributes,
|
elementAttributes: elementAttributes,
|
||||||
logicalLabelPosition: logicalLabelPosition
|
logicalLabelPosition: logicalLabelPosition
|
||||||
@ -225,6 +227,19 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the element’s name, or select a fallback.
|
||||||
|
*/
|
||||||
|
function nameOrFallback () {
|
||||||
|
if (this.name === true) {
|
||||||
|
return ((this.type) + "_" + (this.elementAttributes.id))
|
||||||
|
}
|
||||||
|
if (this.name === false) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return this.name
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given an object or array of options, create an array of objects with label,
|
* Given an object or array of options, create an array of objects with label,
|
||||||
* value, and id.
|
* value, and id.
|
||||||
@ -263,7 +278,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
if (this.type === 'checkbox' && !Array.isArray(this.formulateValue) && this.options) {
|
if (this.type === 'checkbox' && !Array.isArray(this.formulateValue) && this.options) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
if (this.formulateValue === false) {
|
if (!this.formulateValue) {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
return this.formulateValue
|
return this.formulateValue
|
||||||
@ -274,6 +289,9 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
**/
|
**/
|
||||||
function modelSetter (value) {
|
function modelSetter (value) {
|
||||||
this.$emit('input', value);
|
this.$emit('input', value);
|
||||||
|
if (this.context.name && typeof this.formulateFormSetter === 'function') {
|
||||||
|
this.formulateFormSetter(this.context.name, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -281,6 +299,10 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
var script = {
|
var script = {
|
||||||
name: 'FormulateInput',
|
name: 'FormulateInput',
|
||||||
inheritAttrs: false,
|
inheritAttrs: false,
|
||||||
|
inject: {
|
||||||
|
formulateFormSetter: { default: undefined },
|
||||||
|
formulateFormRegister: { default: undefined }
|
||||||
|
},
|
||||||
model: {
|
model: {
|
||||||
prop: 'formulateValue',
|
prop: 'formulateValue',
|
||||||
event: 'input'
|
event: 'input'
|
||||||
@ -290,14 +312,18 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
type: String,
|
type: String,
|
||||||
default: 'text'
|
default: 'text'
|
||||||
},
|
},
|
||||||
|
name: {
|
||||||
|
type: [Boolean, String],
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
/* eslint-disable */
|
||||||
formulateValue: {
|
formulateValue: {
|
||||||
type: [String, Number, Object, Boolean, Array],
|
default: undefined
|
||||||
default: ''
|
|
||||||
},
|
},
|
||||||
value: {
|
value: {
|
||||||
type: [String, Number, Object, Boolean, Array],
|
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
/* eslint-enable */
|
||||||
options: {
|
options: {
|
||||||
type: [Object, Array, Boolean],
|
type: [Object, Array, Boolean],
|
||||||
default: false
|
default: false
|
||||||
@ -350,6 +376,9 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created: function created () {
|
created: function created () {
|
||||||
|
if (this.formulateFormRegister && typeof this.formulateFormRegister === 'function') {
|
||||||
|
this.formulateFormRegister(this.name, this);
|
||||||
|
}
|
||||||
this.updateLocalAttributes(this.$attrs);
|
this.updateLocalAttributes(this.$attrs);
|
||||||
},
|
},
|
||||||
mounted: function mounted () {
|
mounted: function mounted () {
|
||||||
@ -557,14 +586,85 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
undefined
|
undefined
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
var script$1 = {
|
||||||
|
provide: function provide () {
|
||||||
|
return {
|
||||||
|
formulateFormSetter: this.setFieldValue,
|
||||||
|
formulateFormRegister: this.register
|
||||||
|
}
|
||||||
|
},
|
||||||
|
name: 'FormulateForm',
|
||||||
|
model: {
|
||||||
|
prop: 'formulateValue',
|
||||||
|
event: 'input'
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
name: {
|
||||||
|
type: [String, Boolean],
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
formulateValue: {
|
||||||
|
type: Object,
|
||||||
|
default: function () { return ({}); }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: function data () {
|
||||||
|
return {
|
||||||
|
registry: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
formModel: {
|
||||||
|
get: function get () {
|
||||||
|
return this.formulateValue
|
||||||
|
},
|
||||||
|
set: function set (value) {
|
||||||
|
this.$emit('input', value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
setFieldValue: function setFieldValue (field, value) {
|
||||||
|
var obj;
|
||||||
|
|
||||||
|
this.formModel = Object.assign({}, this.formulateValue, ( obj = {}, obj[field] = value, obj ));
|
||||||
|
},
|
||||||
|
register: function register (field, component) {
|
||||||
|
this.registry[field] = component;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
|
var __vue_script__$1 = script$1;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$1 = function() {
|
var __vue_render__$1 = function() {
|
||||||
var _vm = this;
|
var _vm = this;
|
||||||
var _h = _vm.$createElement;
|
var _h = _vm.$createElement;
|
||||||
var _c = _vm._self._c || _h;
|
var _c = _vm._self._c || _h;
|
||||||
return _c("form", [_vm._t("default")], 2)
|
return _c(
|
||||||
|
"form",
|
||||||
|
{
|
||||||
|
on: {
|
||||||
|
submit: function($event) {
|
||||||
|
$event.preventDefault();
|
||||||
|
return _vm.formSubmitted($event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[_vm._t("default")],
|
||||||
|
2
|
||||||
|
)
|
||||||
};
|
};
|
||||||
var __vue_staticRenderFns__$1 = [];
|
var __vue_staticRenderFns__$1 = [];
|
||||||
__vue_render__$1._withStripped = true;
|
__vue_render__$1._withStripped = true;
|
||||||
@ -586,7 +686,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
var FormulateForm = normalizeComponent_1(
|
var FormulateForm = normalizeComponent_1(
|
||||||
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
||||||
__vue_inject_styles__$1,
|
__vue_inject_styles__$1,
|
||||||
{},
|
__vue_script__$1,
|
||||||
__vue_scope_id__$1,
|
__vue_scope_id__$1,
|
||||||
__vue_is_functional_template__$1,
|
__vue_is_functional_template__$1,
|
||||||
__vue_module_identifier__$1,
|
__vue_module_identifier__$1,
|
||||||
@ -609,7 +709,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
//
|
//
|
||||||
|
|
||||||
function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
|
function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
|
||||||
var script$1 = {
|
var script$2 = {
|
||||||
name: 'FormulateInputGroup',
|
name: 'FormulateInputGroup',
|
||||||
props: {
|
props: {
|
||||||
context: {
|
context: {
|
||||||
@ -647,7 +747,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$1 = script$1;
|
var __vue_script__$2 = script$2;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$2 = function() {
|
var __vue_render__$2 = function() {
|
||||||
@ -702,7 +802,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
var FormulateInputGroup = normalizeComponent_1(
|
var FormulateInputGroup = normalizeComponent_1(
|
||||||
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
|
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
|
||||||
__vue_inject_styles__$2,
|
__vue_inject_styles__$2,
|
||||||
__vue_script__$1,
|
__vue_script__$2,
|
||||||
__vue_scope_id__$2,
|
__vue_scope_id__$2,
|
||||||
__vue_is_functional_template__$2,
|
__vue_is_functional_template__$2,
|
||||||
__vue_module_identifier__$2,
|
__vue_module_identifier__$2,
|
||||||
@ -714,18 +814,10 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
* Default base for input components.
|
* Default base for input components.
|
||||||
*/
|
*/
|
||||||
var FormulateInputMixin = {
|
var FormulateInputMixin = {
|
||||||
model: {
|
|
||||||
prop: 'formulateValue',
|
|
||||||
event: 'input'
|
|
||||||
},
|
|
||||||
props: {
|
props: {
|
||||||
context: {
|
context: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
},
|
|
||||||
formulateValue: {
|
|
||||||
type: [Object, Array, Boolean, String, Number],
|
|
||||||
default: ''
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -739,20 +831,20 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
return this.context.attributes || {}
|
return this.context.attributes || {}
|
||||||
},
|
},
|
||||||
hasValue: function hasValue () {
|
hasValue: function hasValue () {
|
||||||
return !!this.model
|
return !!this.context.model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$2 = {
|
var script$3 = {
|
||||||
name: 'FormulateInputBox',
|
name: 'FormulateInputBox',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$2 = script$2;
|
var __vue_script__$3 = script$3;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$3 = function() {
|
var __vue_render__$3 = function() {
|
||||||
@ -904,7 +996,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
var FormulateInputBox = normalizeComponent_1(
|
var FormulateInputBox = normalizeComponent_1(
|
||||||
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
|
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
|
||||||
__vue_inject_styles__$3,
|
__vue_inject_styles__$3,
|
||||||
__vue_script__$2,
|
__vue_script__$3,
|
||||||
__vue_scope_id__$3,
|
__vue_scope_id__$3,
|
||||||
__vue_is_functional_template__$3,
|
__vue_is_functional_template__$3,
|
||||||
__vue_module_identifier__$3,
|
__vue_module_identifier__$3,
|
||||||
@ -914,13 +1006,13 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$3 = {
|
var script$4 = {
|
||||||
name: 'FormulateInputText',
|
name: 'FormulateInputText',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$3 = script$3;
|
var __vue_script__$4 = script$4;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$4 = function() {
|
var __vue_render__$4 = function() {
|
||||||
@ -1059,7 +1151,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
var FormulateInputText = normalizeComponent_1(
|
var FormulateInputText = normalizeComponent_1(
|
||||||
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
|
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
|
||||||
__vue_inject_styles__$4,
|
__vue_inject_styles__$4,
|
||||||
__vue_script__$3,
|
__vue_script__$4,
|
||||||
__vue_scope_id__$4,
|
__vue_scope_id__$4,
|
||||||
__vue_is_functional_template__$4,
|
__vue_is_functional_template__$4,
|
||||||
__vue_module_identifier__$4,
|
__vue_module_identifier__$4,
|
||||||
@ -1069,7 +1161,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$4 = {
|
var script$5 = {
|
||||||
name: 'FormulateInputSelect',
|
name: 'FormulateInputSelect',
|
||||||
mixins: [FormulateInputMixin],
|
mixins: [FormulateInputMixin],
|
||||||
computed: {
|
computed: {
|
||||||
@ -1086,7 +1178,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$4 = script$4;
|
var __vue_script__$5 = script$5;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$5 = function() {
|
var __vue_render__$5 = function() {
|
||||||
@ -1216,7 +1308,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
var FormulateInputSelect = normalizeComponent_1(
|
var FormulateInputSelect = normalizeComponent_1(
|
||||||
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
|
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
|
||||||
__vue_inject_styles__$5,
|
__vue_inject_styles__$5,
|
||||||
__vue_script__$4,
|
__vue_script__$5,
|
||||||
__vue_scope_id__$5,
|
__vue_scope_id__$5,
|
||||||
__vue_is_functional_template__$5,
|
__vue_is_functional_template__$5,
|
||||||
__vue_module_identifier__$5,
|
__vue_module_identifier__$5,
|
||||||
@ -1226,13 +1318,13 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$5 = {
|
var script$6 = {
|
||||||
name: 'FormulateInputTextArea',
|
name: 'FormulateInputTextArea',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$5 = script$5;
|
var __vue_script__$6 = script$6;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$6 = function() {
|
var __vue_render__$6 = function() {
|
||||||
@ -1295,7 +1387,7 @@ var Formulate = (function (exports, isPlainObject, nanoid) {
|
|||||||
var FormulateInputTextArea = normalizeComponent_1(
|
var FormulateInputTextArea = normalizeComponent_1(
|
||||||
{ render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
|
{ render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
|
||||||
__vue_inject_styles__$6,
|
__vue_inject_styles__$6,
|
||||||
__vue_script__$5,
|
__vue_script__$6,
|
||||||
__vue_scope_id__$6,
|
__vue_scope_id__$6,
|
||||||
__vue_is_functional_template__$6,
|
__vue_is_functional_template__$6,
|
||||||
__vue_module_identifier__$6,
|
__vue_module_identifier__$6,
|
||||||
|
152
dist/formulate.umd.js
vendored
152
dist/formulate.umd.js
vendored
@ -158,6 +158,7 @@
|
|||||||
}
|
}
|
||||||
return defineModel.call(this, Object.assign({}, {type: this.type,
|
return defineModel.call(this, Object.assign({}, {type: this.type,
|
||||||
value: this.value,
|
value: this.value,
|
||||||
|
name: this.nameOrFallback,
|
||||||
classification: this.classification,
|
classification: this.classification,
|
||||||
component: this.component,
|
component: this.component,
|
||||||
id: this.id || this.defaultId,
|
id: this.id || this.defaultId,
|
||||||
@ -166,6 +167,7 @@
|
|||||||
attributes: this.elementAttributes},
|
attributes: this.elementAttributes},
|
||||||
this.typeContext))
|
this.typeContext))
|
||||||
},
|
},
|
||||||
|
nameOrFallback: nameOrFallback,
|
||||||
typeContext: typeContext,
|
typeContext: typeContext,
|
||||||
elementAttributes: elementAttributes,
|
elementAttributes: elementAttributes,
|
||||||
logicalLabelPosition: logicalLabelPosition
|
logicalLabelPosition: logicalLabelPosition
|
||||||
@ -228,6 +230,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the element’s name, or select a fallback.
|
||||||
|
*/
|
||||||
|
function nameOrFallback () {
|
||||||
|
if (this.name === true) {
|
||||||
|
return ((this.type) + "_" + (this.elementAttributes.id))
|
||||||
|
}
|
||||||
|
if (this.name === false) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return this.name
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given an object or array of options, create an array of objects with label,
|
* Given an object or array of options, create an array of objects with label,
|
||||||
* value, and id.
|
* value, and id.
|
||||||
@ -266,7 +281,7 @@
|
|||||||
if (this.type === 'checkbox' && !Array.isArray(this.formulateValue) && this.options) {
|
if (this.type === 'checkbox' && !Array.isArray(this.formulateValue) && this.options) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
if (this.formulateValue === false) {
|
if (!this.formulateValue) {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
return this.formulateValue
|
return this.formulateValue
|
||||||
@ -277,6 +292,9 @@
|
|||||||
**/
|
**/
|
||||||
function modelSetter (value) {
|
function modelSetter (value) {
|
||||||
this.$emit('input', value);
|
this.$emit('input', value);
|
||||||
|
if (this.context.name && typeof this.formulateFormSetter === 'function') {
|
||||||
|
this.formulateFormSetter(this.context.name, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -284,6 +302,10 @@
|
|||||||
var script = {
|
var script = {
|
||||||
name: 'FormulateInput',
|
name: 'FormulateInput',
|
||||||
inheritAttrs: false,
|
inheritAttrs: false,
|
||||||
|
inject: {
|
||||||
|
formulateFormSetter: { default: undefined },
|
||||||
|
formulateFormRegister: { default: undefined }
|
||||||
|
},
|
||||||
model: {
|
model: {
|
||||||
prop: 'formulateValue',
|
prop: 'formulateValue',
|
||||||
event: 'input'
|
event: 'input'
|
||||||
@ -293,14 +315,18 @@
|
|||||||
type: String,
|
type: String,
|
||||||
default: 'text'
|
default: 'text'
|
||||||
},
|
},
|
||||||
|
name: {
|
||||||
|
type: [Boolean, String],
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
/* eslint-disable */
|
||||||
formulateValue: {
|
formulateValue: {
|
||||||
type: [String, Number, Object, Boolean, Array],
|
default: undefined
|
||||||
default: ''
|
|
||||||
},
|
},
|
||||||
value: {
|
value: {
|
||||||
type: [String, Number, Object, Boolean, Array],
|
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
/* eslint-enable */
|
||||||
options: {
|
options: {
|
||||||
type: [Object, Array, Boolean],
|
type: [Object, Array, Boolean],
|
||||||
default: false
|
default: false
|
||||||
@ -353,6 +379,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created: function created () {
|
created: function created () {
|
||||||
|
if (this.formulateFormRegister && typeof this.formulateFormRegister === 'function') {
|
||||||
|
this.formulateFormRegister(this.name, this);
|
||||||
|
}
|
||||||
this.updateLocalAttributes(this.$attrs);
|
this.updateLocalAttributes(this.$attrs);
|
||||||
},
|
},
|
||||||
mounted: function mounted () {
|
mounted: function mounted () {
|
||||||
@ -560,14 +589,85 @@
|
|||||||
undefined
|
undefined
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
var script$1 = {
|
||||||
|
provide: function provide () {
|
||||||
|
return {
|
||||||
|
formulateFormSetter: this.setFieldValue,
|
||||||
|
formulateFormRegister: this.register
|
||||||
|
}
|
||||||
|
},
|
||||||
|
name: 'FormulateForm',
|
||||||
|
model: {
|
||||||
|
prop: 'formulateValue',
|
||||||
|
event: 'input'
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
name: {
|
||||||
|
type: [String, Boolean],
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
formulateValue: {
|
||||||
|
type: Object,
|
||||||
|
default: function () { return ({}); }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: function data () {
|
||||||
|
return {
|
||||||
|
registry: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
formModel: {
|
||||||
|
get: function get () {
|
||||||
|
return this.formulateValue
|
||||||
|
},
|
||||||
|
set: function set (value) {
|
||||||
|
this.$emit('input', value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
setFieldValue: function setFieldValue (field, value) {
|
||||||
|
var obj;
|
||||||
|
|
||||||
|
this.formModel = Object.assign({}, this.formulateValue, ( obj = {}, obj[field] = value, obj ));
|
||||||
|
},
|
||||||
|
register: function register (field, component) {
|
||||||
|
this.registry[field] = component;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
|
var __vue_script__$1 = script$1;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$1 = function() {
|
var __vue_render__$1 = function() {
|
||||||
var _vm = this;
|
var _vm = this;
|
||||||
var _h = _vm.$createElement;
|
var _h = _vm.$createElement;
|
||||||
var _c = _vm._self._c || _h;
|
var _c = _vm._self._c || _h;
|
||||||
return _c("form", [_vm._t("default")], 2)
|
return _c(
|
||||||
|
"form",
|
||||||
|
{
|
||||||
|
on: {
|
||||||
|
submit: function($event) {
|
||||||
|
$event.preventDefault();
|
||||||
|
return _vm.formSubmitted($event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[_vm._t("default")],
|
||||||
|
2
|
||||||
|
)
|
||||||
};
|
};
|
||||||
var __vue_staticRenderFns__$1 = [];
|
var __vue_staticRenderFns__$1 = [];
|
||||||
__vue_render__$1._withStripped = true;
|
__vue_render__$1._withStripped = true;
|
||||||
@ -589,7 +689,7 @@
|
|||||||
var FormulateForm = normalizeComponent_1(
|
var FormulateForm = normalizeComponent_1(
|
||||||
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
||||||
__vue_inject_styles__$1,
|
__vue_inject_styles__$1,
|
||||||
{},
|
__vue_script__$1,
|
||||||
__vue_scope_id__$1,
|
__vue_scope_id__$1,
|
||||||
__vue_is_functional_template__$1,
|
__vue_is_functional_template__$1,
|
||||||
__vue_module_identifier__$1,
|
__vue_module_identifier__$1,
|
||||||
@ -612,7 +712,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
|
function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
|
||||||
var script$1 = {
|
var script$2 = {
|
||||||
name: 'FormulateInputGroup',
|
name: 'FormulateInputGroup',
|
||||||
props: {
|
props: {
|
||||||
context: {
|
context: {
|
||||||
@ -650,7 +750,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$1 = script$1;
|
var __vue_script__$2 = script$2;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$2 = function() {
|
var __vue_render__$2 = function() {
|
||||||
@ -705,7 +805,7 @@
|
|||||||
var FormulateInputGroup = normalizeComponent_1(
|
var FormulateInputGroup = normalizeComponent_1(
|
||||||
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
|
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
|
||||||
__vue_inject_styles__$2,
|
__vue_inject_styles__$2,
|
||||||
__vue_script__$1,
|
__vue_script__$2,
|
||||||
__vue_scope_id__$2,
|
__vue_scope_id__$2,
|
||||||
__vue_is_functional_template__$2,
|
__vue_is_functional_template__$2,
|
||||||
__vue_module_identifier__$2,
|
__vue_module_identifier__$2,
|
||||||
@ -717,18 +817,10 @@
|
|||||||
* Default base for input components.
|
* Default base for input components.
|
||||||
*/
|
*/
|
||||||
var FormulateInputMixin = {
|
var FormulateInputMixin = {
|
||||||
model: {
|
|
||||||
prop: 'formulateValue',
|
|
||||||
event: 'input'
|
|
||||||
},
|
|
||||||
props: {
|
props: {
|
||||||
context: {
|
context: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
},
|
|
||||||
formulateValue: {
|
|
||||||
type: [Object, Array, Boolean, String, Number],
|
|
||||||
default: ''
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -742,20 +834,20 @@
|
|||||||
return this.context.attributes || {}
|
return this.context.attributes || {}
|
||||||
},
|
},
|
||||||
hasValue: function hasValue () {
|
hasValue: function hasValue () {
|
||||||
return !!this.model
|
return !!this.context.model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$2 = {
|
var script$3 = {
|
||||||
name: 'FormulateInputBox',
|
name: 'FormulateInputBox',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$2 = script$2;
|
var __vue_script__$3 = script$3;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$3 = function() {
|
var __vue_render__$3 = function() {
|
||||||
@ -907,7 +999,7 @@
|
|||||||
var FormulateInputBox = normalizeComponent_1(
|
var FormulateInputBox = normalizeComponent_1(
|
||||||
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
|
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
|
||||||
__vue_inject_styles__$3,
|
__vue_inject_styles__$3,
|
||||||
__vue_script__$2,
|
__vue_script__$3,
|
||||||
__vue_scope_id__$3,
|
__vue_scope_id__$3,
|
||||||
__vue_is_functional_template__$3,
|
__vue_is_functional_template__$3,
|
||||||
__vue_module_identifier__$3,
|
__vue_module_identifier__$3,
|
||||||
@ -917,13 +1009,13 @@
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$3 = {
|
var script$4 = {
|
||||||
name: 'FormulateInputText',
|
name: 'FormulateInputText',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$3 = script$3;
|
var __vue_script__$4 = script$4;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$4 = function() {
|
var __vue_render__$4 = function() {
|
||||||
@ -1062,7 +1154,7 @@
|
|||||||
var FormulateInputText = normalizeComponent_1(
|
var FormulateInputText = normalizeComponent_1(
|
||||||
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
|
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
|
||||||
__vue_inject_styles__$4,
|
__vue_inject_styles__$4,
|
||||||
__vue_script__$3,
|
__vue_script__$4,
|
||||||
__vue_scope_id__$4,
|
__vue_scope_id__$4,
|
||||||
__vue_is_functional_template__$4,
|
__vue_is_functional_template__$4,
|
||||||
__vue_module_identifier__$4,
|
__vue_module_identifier__$4,
|
||||||
@ -1072,7 +1164,7 @@
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$4 = {
|
var script$5 = {
|
||||||
name: 'FormulateInputSelect',
|
name: 'FormulateInputSelect',
|
||||||
mixins: [FormulateInputMixin],
|
mixins: [FormulateInputMixin],
|
||||||
computed: {
|
computed: {
|
||||||
@ -1089,7 +1181,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$4 = script$4;
|
var __vue_script__$5 = script$5;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$5 = function() {
|
var __vue_render__$5 = function() {
|
||||||
@ -1219,7 +1311,7 @@
|
|||||||
var FormulateInputSelect = normalizeComponent_1(
|
var FormulateInputSelect = normalizeComponent_1(
|
||||||
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
|
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
|
||||||
__vue_inject_styles__$5,
|
__vue_inject_styles__$5,
|
||||||
__vue_script__$4,
|
__vue_script__$5,
|
||||||
__vue_scope_id__$5,
|
__vue_scope_id__$5,
|
||||||
__vue_is_functional_template__$5,
|
__vue_is_functional_template__$5,
|
||||||
__vue_module_identifier__$5,
|
__vue_module_identifier__$5,
|
||||||
@ -1229,13 +1321,13 @@
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
var script$5 = {
|
var script$6 = {
|
||||||
name: 'FormulateInputTextArea',
|
name: 'FormulateInputTextArea',
|
||||||
mixins: [FormulateInputMixin]
|
mixins: [FormulateInputMixin]
|
||||||
};
|
};
|
||||||
|
|
||||||
/* script */
|
/* script */
|
||||||
var __vue_script__$5 = script$5;
|
var __vue_script__$6 = script$6;
|
||||||
|
|
||||||
/* template */
|
/* template */
|
||||||
var __vue_render__$6 = function() {
|
var __vue_render__$6 = function() {
|
||||||
@ -1298,7 +1390,7 @@
|
|||||||
var FormulateInputTextArea = normalizeComponent_1(
|
var FormulateInputTextArea = normalizeComponent_1(
|
||||||
{ render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
|
{ render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
|
||||||
__vue_inject_styles__$6,
|
__vue_inject_styles__$6,
|
||||||
__vue_script__$5,
|
__vue_script__$6,
|
||||||
__vue_scope_id__$6,
|
__vue_scope_id__$6,
|
||||||
__vue_is_functional_template__$6,
|
__vue_is_functional_template__$6,
|
||||||
__vue_module_identifier__$6,
|
__vue_module_identifier__$6,
|
||||||
|
@ -1,5 +1,56 @@
|
|||||||
<template>
|
<template>
|
||||||
<form>
|
<form
|
||||||
|
@submit.prevent="formSubmitted"
|
||||||
|
>
|
||||||
<slot />
|
<slot />
|
||||||
</form>
|
</form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
provide () {
|
||||||
|
return {
|
||||||
|
formulateFormSetter: this.setFieldValue,
|
||||||
|
formulateFormRegister: this.register
|
||||||
|
}
|
||||||
|
},
|
||||||
|
name: 'FormulateForm',
|
||||||
|
model: {
|
||||||
|
prop: 'formulateValue',
|
||||||
|
event: 'input'
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
name: {
|
||||||
|
type: [String, Boolean],
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
formulateValue: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
registry: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
formModel: {
|
||||||
|
get () {
|
||||||
|
return this.formulateValue
|
||||||
|
},
|
||||||
|
set (value) {
|
||||||
|
this.$emit('input', value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
setFieldValue (field, value) {
|
||||||
|
this.formModel = Object.assign({}, this.formulateValue, { [field]: value })
|
||||||
|
},
|
||||||
|
register (field, component) {
|
||||||
|
this.registry[field] = component
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
@ -46,11 +46,14 @@
|
|||||||
import context from './libs/context'
|
import context from './libs/context'
|
||||||
import { shallowEqualObjects } from './libs/utils'
|
import { shallowEqualObjects } from './libs/utils'
|
||||||
import nanoid from 'nanoid'
|
import nanoid from 'nanoid'
|
||||||
import library from './libs/library'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'FormulateInput',
|
name: 'FormulateInput',
|
||||||
inheritAttrs: false,
|
inheritAttrs: false,
|
||||||
|
inject: {
|
||||||
|
formulateFormSetter: { default: undefined },
|
||||||
|
formulateFormRegister: { default: undefined }
|
||||||
|
},
|
||||||
model: {
|
model: {
|
||||||
prop: 'formulateValue',
|
prop: 'formulateValue',
|
||||||
event: 'input'
|
event: 'input'
|
||||||
@ -60,14 +63,18 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
default: 'text'
|
default: 'text'
|
||||||
},
|
},
|
||||||
|
name: {
|
||||||
|
type: [Boolean, String],
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
/* eslint-disable */
|
||||||
formulateValue: {
|
formulateValue: {
|
||||||
type: [String, Number, Object, Boolean, Array],
|
default: undefined
|
||||||
default: ''
|
|
||||||
},
|
},
|
||||||
value: {
|
value: {
|
||||||
type: [String, Number, Object, Boolean, Array],
|
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
/* eslint-enable */
|
||||||
options: {
|
options: {
|
||||||
type: [Object, Array, Boolean],
|
type: [Object, Array, Boolean],
|
||||||
default: false
|
default: false
|
||||||
@ -122,6 +129,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
|
if (this.formulateFormRegister && typeof this.formulateFormRegister === 'function') {
|
||||||
|
this.formulateFormRegister(this.name, this)
|
||||||
|
}
|
||||||
this.updateLocalAttributes(this.$attrs)
|
this.updateLocalAttributes(this.$attrs)
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
|
@ -2,18 +2,10 @@
|
|||||||
* Default base for input components.
|
* Default base for input components.
|
||||||
*/
|
*/
|
||||||
export default {
|
export default {
|
||||||
model: {
|
|
||||||
prop: 'formulateValue',
|
|
||||||
event: 'input'
|
|
||||||
},
|
|
||||||
props: {
|
props: {
|
||||||
context: {
|
context: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
},
|
|
||||||
formulateValue: {
|
|
||||||
type: [Object, Array, Boolean, String, Number],
|
|
||||||
default: ''
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -27,7 +19,7 @@ export default {
|
|||||||
return this.context.attributes || {}
|
return this.context.attributes || {}
|
||||||
},
|
},
|
||||||
hasValue () {
|
hasValue () {
|
||||||
return !!this.model
|
return !!this.context.model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import nanoid from 'nanoid'
|
import nanoid from 'nanoid'
|
||||||
import { reduce, map } from './utils'
|
import { map } from './utils'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For a single instance of an input, export all of the context needed to fully
|
* For a single instance of an input, export all of the context needed to fully
|
||||||
@ -14,6 +14,7 @@ export default {
|
|||||||
return defineModel.call(this, {
|
return defineModel.call(this, {
|
||||||
type: this.type,
|
type: this.type,
|
||||||
value: this.value,
|
value: this.value,
|
||||||
|
name: this.nameOrFallback,
|
||||||
classification: this.classification,
|
classification: this.classification,
|
||||||
component: this.component,
|
component: this.component,
|
||||||
id: this.id || this.defaultId,
|
id: this.id || this.defaultId,
|
||||||
@ -23,6 +24,7 @@ export default {
|
|||||||
...this.typeContext
|
...this.typeContext
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
nameOrFallback,
|
||||||
typeContext,
|
typeContext,
|
||||||
elementAttributes,
|
elementAttributes,
|
||||||
logicalLabelPosition
|
logicalLabelPosition
|
||||||
@ -83,6 +85,19 @@ function logicalLabelPosition () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the element’s name, or select a fallback.
|
||||||
|
*/
|
||||||
|
function nameOrFallback () {
|
||||||
|
if (this.name === true) {
|
||||||
|
return `${this.type}_${this.elementAttributes.id}`
|
||||||
|
}
|
||||||
|
if (this.name === false) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return this.name
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given an object or array of options, create an array of objects with label,
|
* Given an object or array of options, create an array of objects with label,
|
||||||
* value, and id.
|
* value, and id.
|
||||||
@ -121,7 +136,7 @@ function modelGetter () {
|
|||||||
if (this.type === 'checkbox' && !Array.isArray(this.formulateValue) && this.options) {
|
if (this.type === 'checkbox' && !Array.isArray(this.formulateValue) && this.options) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
if (this.formulateValue === false) {
|
if (!this.formulateValue) {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
return this.formulateValue
|
return this.formulateValue
|
||||||
@ -132,4 +147,7 @@ function modelGetter () {
|
|||||||
**/
|
**/
|
||||||
function modelSetter (value) {
|
function modelSetter (value) {
|
||||||
this.$emit('input', value)
|
this.$emit('input', value)
|
||||||
|
if (this.context.name && typeof this.formulateFormSetter === 'function') {
|
||||||
|
this.formulateFormSetter(this.context.name, value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user