mutt-forms-vue
Advanced tools
Comparing version 1.2.2 to 1.2.3
@@ -1,1 +0,1 @@ | ||
import Mutt from"mutt-forms";var MuttVue={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.form?_c("form",{attrs:{role:"form"},on:{submit:function submit($event){$event.preventDefault()}}},_vm._l(_vm.form.fieldsets,function(fieldset){return _c("fieldset",[fieldset.label?_c("legend",[_vm._v(_vm._s(fieldset.label))]):_vm._e(),_vm._v(" "),_vm._l(fieldset.fields,function(field){return _c("mutt-widget",{key:field.id,attrs:{field:field,readonly:_vm.readonly},on:{callback:_vm.callback}})}),_vm._v(" "),_c("button",{on:{click:_vm.submit}},[_vm._v("Submit")])],2)})):_vm._e()},staticRenderFns:[],name:"mutt-vue",props:{schema:{type:Object,required:!0},options:{type:Object},data:{type:Object},readonly:{type:Boolean,default:!1}},created:function created(){this.form=new this.$mutt(this.schema,this.options),this.$emit("init",this.form)},mounted:function mounted(){this.data&&this.form.populate(this.data)},data:function data(){return{form:null}},methods:{callback:function callback(payload){this.$emit("callback",payload)},submit:function submit(){this.$emit("submit",this.form)}}},Formatters={datetime:function datetime(value,options){return new Date(Date.parse(value)).toLocaleString()},date:function date(value,options){var date=new Date(Date.parse(value));return date.toLocaleDateString()},capitalize:function capitalize(value,options){var output=value.toLowerCase();return output.charAt(0).toUpperCase()+output.slice(1)},prefix:function prefix(value,options){return""+options.prefix+value}},MuttWatcher={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:{"mutt-watcher":!0,"mutt-watcher--errors":_vm.hasFieldErrors}},[_vm.getLabel?_c("span",{staticClass:"mutt-watcher__title"},[_vm._v(" "+_vm._s(_vm.getLabel)+": ")]):_vm._e(),_vm._v(" "),"object"===_vm.field.type?_c("span",{staticClass:"mutt-watcher__value"},[_vm.field.options.hasOwnProperty("format")?_c("span",{staticClass:"mutt-watcher__value--formatter"},[_vm._v(" "+_vm._s(_vm.getFieldValue)+" ")]):_c("span",{staticClass:"mutt-watcher__value--object"},_vm._l(_vm.field.object,function(objectField){return _c("mutt-watcher",{key:objectField.id,attrs:{field:objectField}})}))]):"array"===_vm.field.type?_c("span",{staticClass:"mutt-watcher__value"},_vm._l(_vm.field.slots,function(slotField){return _c("mutt-watcher",{key:slotField.id,attrs:{field:slotField,formatter:_vm.getItemFormatter,allowLabel:_vm.stopLabelPropogation}})})):_c("span",{staticClass:"mutt-watcher__value"},[_vm._v(" "+_vm._s(_vm.getFieldValue)+" ")])]):_vm._e()},staticRenderFns:[],name:"mutt-watcher",props:{field:{type:Object,required:!0},formatter:{type:Object,required:!1,default:null},allowLabel:{type:Boolean,default:!0}},computed:{getFieldValue:function getFieldValue(){if(null===this.field.value)return"-";if(this.formatter)return this.getFormattedValue(this.formatter,this.field.value);if(this.field.options.hasOwnProperty("format")){var fieldFormat=this.field.options.format;return this.getFormattedValue(fieldFormat,this.field.value)}return this.field.value},hasFieldErrors:function hasFieldErrors(){return this.field.errors.length>0},getLabel:function getLabel(){if(!this.allowLabel)return!1;var label=this.field.label;return!!label&&(this.field.label.indexOf("_")>-1&&(label=Formatters.capitalize(this.field.label.replace("_"," "))),label)},stopLabelPropogation:function stopLabelPropogation(){if(this.field.options.hasOwnProperty("format")){if("list"===this.field.options.format)return!1;if(this.field.options.format.hasOwnProperty("list")&&this.field.options.format.list)return!1}return!0},getItemFormatter:function getItemFormatter(){return this.field.options.hasOwnProperty("format")&&this.field.options.format.hasOwnProperty("item")?this.field.options.format.item:null}},methods:{getFormattedValue:function getFormattedValue(formatter,value){if("string"==typeof formatter){if(Formatters.hasOwnProperty(formatter))return Formatters[formatter](value)}else{var formatType=formatter.type;if(Formatters.hasOwnProperty(formatType))return Formatters[formatType](this.field.value,formatter)}return value}}},LabelWidget={render:function render(){var _h=this.$createElement,_c=this._self._c||_h;return this.field.label?_c("label",{staticClass:"mutt-label",attrs:{for:this.fieldId}},[this._v(" "+this._s(this.getLabel())+" ")]):this._e()},staticRenderFns:[],name:"label-widget",props:["field","fieldId"],methods:{getLabel:function getLabel(){var label=this.field.label;return this.field.label.indexOf("_")>-1&&(label=Formatters.capitalize(this.field.label.replace("_"," "))),label}}},ErrorWidget={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.errors&&_vm.errors.length>0?_c("ul",{class:_vm.errorClass},_vm._l(_vm.errors,function(error){return _c("li",{attrs:{role:"alert"}},[_vm._v(" "+_vm._s(error)+" ")])})):_vm._e()},staticRenderFns:[],name:"error-widget",props:["errors","errorClass","field"]},HelpWidget={render:function render(){var _h=this.$createElement,_c=this._self._c||_h;return this.field.options.hasOwnProperty("help")?_c("span",{staticClass:"mutt-help",attrs:{id:this.getFieldId()+"-help"},domProps:{innerHTML:this._s(this.field.options.help)}}):this._e()},staticRenderFns:[],name:"help-widget",props:["field"],methods:{getFieldId:function getFieldId(){return this.field.name}}},ReadonlyWidget={render:function render(){var _h=this.$createElement;return(this._self._c||_h)("span",{staticClass:"mutt-readonly",domProps:{innerHTML:this._s(this.value)}})},staticRenderFns:[],name:"readonly-widget",props:["value"]},PropsProxy={field:{type:Object,required:!0},readonly:{type:Boolean,default:!1}},DataProxy=function DataProxy(){return{errors:null,value:null}},ComputedProxy={isReadOnly:function isReadOnly(){return this.field.options.hasOwnProperty("readonly")?this.field.options.readonly:this.readonly},hasErrors:function hasErrors(){return this.errors&&this.errors.length>0}},MethodProxy={getValue:function getValue(){return this.value},setValue:function setValue(value){this.value=value},getFieldClass:function getFieldClass(){return this.field.attribs.hasOwnProperty("class")?"mutt-field "+this.field.attribs.class:"mutt-field"},getFieldWrapperClass:function getFieldWrapperClass(){return"mutt-field-wrapper"},getErrorClass:function getErrorClass(){return"mutt-error"},getErrorWrapperClass:function getErrorWrapperClass(){return"mutt-error-wrapper"},getFieldId:function getFieldId(){return this.field.name},refreshErrorState:function refreshErrorState(errors){errors.length>0&&(this.errors=errors)},submitCallback:function submitCallback(){this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"submit",validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"submit",validated:!1})}},MuttWidgetProxy={props:PropsProxy,data:DataProxy,computed:ComputedProxy,methods:MethodProxy,components:{LabelWidget:LabelWidget,ErrorWidget:ErrorWidget,HelpWidget:HelpWidget,ReadonlyWidget:ReadonlyWidget},created:function created(){this.value=this.field.value,this.field.widget=this}},MuttText=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"text",class:_vm.getFieldClass(),attrs:{type:"text",id:_vm.getFieldId(),placeholder:_vm.field.options.placeholder,autocomplete:_vm.field.options.autocomplete,name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-text",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-text input"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.text.focus()})}})}),MuttTextarea=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("textarea",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"textarea",class:_vm.getFieldClass(),attrs:{id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-textarea",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-text textarea"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.textarea.focus()})}})}),MuttNumber=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"number",class:_vm.getFieldClass(),attrs:{type:"number",id:_vm.getFieldId(),placeholder:_vm.field.options.placeholder,autocomplete:_vm.field.options.autocomplete,name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-number",for:"integer",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-number input"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.number.focus()})}})}),MuttCheckbox=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{staticClass:"mutt-field-wrapper--checkbox",class:_vm.getFieldWrapperClass()},[_c("label-widget",{class:_vm.getLabelClass,attrs:{for:_vm.field.name,field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"checkbox",id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{checked:Array.isArray(_vm.value)?_vm._i(_vm.value,null)>-1:_vm.value},on:{change:[function($event){var $$a=_vm.value,$$el=$event.target,$$c=!!$$el.checked;if(Array.isArray($$a)){var $$i=_vm._i($$a,null);$$el.checked?$$i<0&&(_vm.value=$$a.concat([null])):$$i>-1&&(_vm.value=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}else _vm.value=$$c},_vm.submitCallback]}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-checkbox",for:"boolean",computed:Object.assign({},ComputedProxy,{getLabelClass:function getLabelClass(){return{"mutt-label":!0,"mutt-field-checkbox-checked":this.value}}}),methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-checkbox checkbox"}})}),MuttRadio=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{staticClass:"mutt-field-wrapper--checkbox mutt-field-wrapper--radio",class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm._l(_vm.field.choices,function(choice,index){return _vm.isReadOnly?_vm._e():_c("div",{staticClass:"mutt-field-radio-item"},[_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"radio",name:_vm.field.id,id:_vm.field.id+"-"+choice[0],"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:choice[0],checked:_vm._q(_vm.value,choice[0])},on:{change:[function($event){_vm.value=choice[0]},function($event){_vm.select(choice[0],choice[1])}]}}),_vm._v(" "),_c("label",{staticClass:"mutt-label",attrs:{for:_vm.field.id+"-"+choice[0]}},[_vm._v(_vm._s(choice[1]))])])}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],2):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-radio",created:function created(){"boolean"===this.field.type&&(this.field.options.hasOwnProperty("choices")?this.field.choices=this.field.options.choices:this.field.choices=[[!0,"Yes"],[!1,"No"]]),this.field.options.hasOwnProperty("default")&&(this.field.value=this.field.options.default),this.value=this.field.value,this.field.widget=this,this.displayReadonly=this.readonly,this.field.options.hasOwnProperty("readonly")&&(this.displayReadonly=this.field.options.readonly)},methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-radio radio"},select:function select(choice,label){this.value=choice,this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"radioSelect",label:label,validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"radioSelect",label:label,validated:!1})}})}),MuttChoice=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_c("div",{staticClass:"mutt-field-choice-wrap select"},[_vm.isReadOnly?_vm._e():_c("select",{directives:[{name:"model",rawName:"v-model",value:_vm.field.value,expression:"field.value"}],class:_vm.getFieldClass(),attrs:{id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},on:{change:[function($event){var $$selectedVal=Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){return"_value"in o?o._value:o.value});_vm.$set(_vm.field,"value",$event.target.multiple?$$selectedVal:$$selectedVal[0])},_vm.submitCallback]}},[_c("option",{attrs:{hidden:"",default:""},domProps:{selected:null===_vm.field.value,value:null}},[_vm._v(" "+_vm._s(_vm.getDefaultSelect())+" ")]),_vm._v(" "),_vm._l(_vm.field.choices,function(option,index){return _c("option",{domProps:{value:option[0]}},[_vm._v(" "+_vm._s(option[1])+" ")])})],2)]),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-choice",methods:Object.assign({},MethodProxy,{getDefaultSelect:function getDefaultSelect(){return this.field.options.hasOwnProperty("defaultSelect")?this.field.options.defaultSelect:"Please select one"},getFieldClass:function getFieldClass(){return"mutt-field mutt-field-choice"},select:function select(){this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"select",validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"select",validated:!1})}}),watch:{value:function value(newVal,oldVal){this.field.options.callback&&this.field.options.callback(newVal,oldVal)}}}),MuttObject=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("fieldset",[_vm.field.label?_c("legend",[_vm._v(_vm._s(_vm.field.label))]):_vm._e(),_vm._v(" "),_vm._l(_vm.field.object,function(objectField){return _c("mutt-widget",{key:objectField.id,attrs:{field:objectField,readonly:_vm.readonly},on:{callback:_vm.bubble}})})],2)]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-object",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-object"},bubble:function bubble(payload){this.$emit("callback",payload)}})}),MuttArray=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("div",{class:_vm.getFieldClass()},[_vm._l(_vm.field.slots,function(slotField){return _c("mutt-widget",{key:slotField.id,attrs:{field:slotField,readonly:_vm.readonly},on:{callback:_vm.bubble}})}),_vm._v(" "),_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],2)]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-array",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-array"},bubble:function bubble(payload){this.$emit("callback",payload)}})}),MuttHidden=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"hidden",name:_vm.field.name},domProps:{value:_vm.value},on:{input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}})]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-hidden",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-hidden"}})}),classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)},possibleConstructorReturn=function(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call},VueWidget=function(_Mutt$widgets$Widget){function VueWidget(field,type,id,name,label){return classCallCheck(this,VueWidget),possibleConstructorReturn(this,_Mutt$widgets$Widget.call(this))}return inherits(VueWidget,_Mutt$widgets$Widget),VueWidget.prototype.render=function render(){return null},VueWidget}(Mutt.widgets.Widget),main={install:function install(Vue,options){var components={MuttText:MuttText,MuttTextarea:MuttTextarea,MuttNumber:MuttNumber,MuttCheckbox:MuttCheckbox,MuttChoice:MuttChoice,MuttObject:MuttObject,MuttArray:MuttArray,MuttRadio:MuttRadio,MuttHidden:MuttHidden};options&&options.hasOwnProperty("plugins")&&(components=_extends({},components,options.plugins));var _loop=function _loop(component){var name=component.name,type=name.replace("mutt-","");component.hasOwnProperty("for")&&(type=component.for);var VueWidgetProxy=function VueWidgetProxy(field,type,id,name,label){var attribs=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},options=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},initial=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null;return new VueWidget(field,type,id,name,label,attribs,options,initial)};VueWidgetProxy.getWidgetName=function(){return name},Mutt.config.registerWidget(type,VueWidgetProxy),"text"===type&&Mutt.config.registerWidget("string",VueWidgetProxy)},_iterator=Object.values(components),_isArray=Array.isArray(_iterator),_i=0;for(_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{if((_i=_iterator.next()).done)break;_ref=_i.value}_loop(_ref)}Vue.component("mutt-widget",{template:'<component @callback="callback" :is="this.getWidget()" v-bind:field="field" v-bind:readonly="readonly"></component>',props:["field","widget","readonly"],components:components,methods:{getWidget:function getWidget(){var resolveWidget=function resolveWidget(widget){return"function"==typeof widget&&"VueWidgetProxy"===widget.name?widget.getWidgetName():widget};return this.widget?resolveWidget(Mutt.config.getWidget(this.widget)):this.field.options.hasOwnProperty("widget")?resolveWidget(Mutt.config.getWidget(this.field.options.widget)):this.field.options.hasOwnProperty("hidden")&&this.field.options.hidden?resolveWidget(Mutt.config.getWidget("hidden")):resolveWidget(Mutt.config.getWidget(this.field.type))},callback:function callback(options){this.$emit("callback",options)}}}),Vue.component("mutt-watcher",MuttWatcher),Vue.component("mutt-vue",MuttVue),Vue.prototype.$mutt=Mutt},utils:{PropsProxy:PropsProxy,DataProxy:DataProxy,ComputedProxy:ComputedProxy,MethodProxy:MethodProxy,MuttWidgetProxy:MuttWidgetProxy}};export default main; | ||
import Mutt from"mutt-forms";var MuttVue={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.form?_c("form",{attrs:{role:"form"},on:{submit:function submit($event){$event.preventDefault()}}},_vm._l(_vm.form.fieldsets,function(fieldset){return _c("fieldset",[fieldset.label?_c("legend",[_vm._v(_vm._s(fieldset.label))]):_vm._e(),_vm._v(" "),_vm._l(fieldset.fields,function(field){return _c("mutt-widget",{key:field.id,attrs:{field:field,readonly:_vm.readonly},on:{callback:_vm.callback}})}),_vm._v(" "),_c("button",{on:{click:_vm.submit}},[_vm._v("Submit")])],2)})):_vm._e()},staticRenderFns:[],name:"mutt-vue",props:{schema:{type:Object,required:!0},options:{type:Object},data:{type:Object},readonly:{type:Boolean,default:!1}},created:function created(){this.form=new this.$mutt(this.schema,this.options),this.$emit("init",this.form)},mounted:function mounted(){this.data&&this.form.populate(this.data)},data:function data(){return{form:null}},methods:{callback:function callback(payload){this.$emit("callback",payload)},submit:function submit(){this.$emit("submit",this.form)}}},Formatters={datetime:function datetime(value,options){return new Date(Date.parse(value)).toLocaleString()},date:function date(value,options){var date=new Date(Date.parse(value));return date.toLocaleDateString()},capitalize:function capitalize(value,options){var output=value.toLowerCase();return output.charAt(0).toUpperCase()+output.slice(1)},prefix:function prefix(value,options){return""+options.prefix+value}},MuttWatcher={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:{"mutt-watcher":!0,"mutt-watcher--errors":_vm.hasFieldErrors}},[_vm.getLabel?_c("span",{staticClass:"mutt-watcher__title"},[_vm._v(" "+_vm._s(_vm.getLabel)+": ")]):_vm._e(),_vm._v(" "),"object"===_vm.field.type?_c("span",{staticClass:"mutt-watcher__value"},[_vm.field.options.hasOwnProperty("format")?_c("span",{staticClass:"mutt-watcher__value--formatter"},[_vm._v(" "+_vm._s(_vm.getFieldValue)+" ")]):_c("span",{staticClass:"mutt-watcher__value--object"},_vm._l(_vm.field.object,function(objectField){return _c("mutt-watcher",{key:objectField.id,attrs:{field:objectField}})}))]):"array"===_vm.field.type?_c("span",{staticClass:"mutt-watcher__value"},_vm._l(_vm.field.slots,function(slotField){return _c("mutt-watcher",{key:slotField.id,attrs:{field:slotField,formatter:_vm.getItemFormatter,allowLabel:_vm.stopLabelPropogation}})})):_c("span",{staticClass:"mutt-watcher__value"},[_vm._v(" "+_vm._s(_vm.getFieldValue)+" ")])]):_vm._e()},staticRenderFns:[],name:"mutt-watcher",props:{field:{type:Object,required:!0},formatter:{type:Object,required:!1,default:null},allowLabel:{type:Boolean,default:!0}},computed:{getFieldValue:function getFieldValue(){if(null===this.field.value)return"-";if(this.formatter)return this.getFormattedValue(this.formatter,this.field.value);if(this.field.options.hasOwnProperty("format")){var fieldFormat=this.field.options.format;return this.getFormattedValue(fieldFormat,this.field.value)}return this.field.value},hasFieldErrors:function hasFieldErrors(){return this.field.errors.length>0},getLabel:function getLabel(){if(!this.allowLabel)return!1;var label=this.field.label;return!!label&&(this.field.label.indexOf("_")>-1&&(label=Formatters.capitalize(this.field.label.replace("_"," "))),label)},stopLabelPropogation:function stopLabelPropogation(){if(this.field.options.hasOwnProperty("format")){if("list"===this.field.options.format)return!1;if(this.field.options.format.hasOwnProperty("list")&&this.field.options.format.list)return!1}return!0},getItemFormatter:function getItemFormatter(){return this.field.options.hasOwnProperty("format")&&this.field.options.format.hasOwnProperty("item")?this.field.options.format.item:null}},methods:{getFormattedValue:function getFormattedValue(formatter,value){if("string"==typeof formatter){if(Formatters.hasOwnProperty(formatter))return Formatters[formatter](value)}else{var formatType=formatter.type;if(Formatters.hasOwnProperty(formatType))return Formatters[formatType](this.field.value,formatter)}return value}}},LabelWidget={render:function render(){var _h=this.$createElement,_c=this._self._c||_h;return this.field.label?_c("label",{staticClass:"mutt-label",attrs:{for:this.fieldId}},[this._v(" "+this._s(this.getLabel())+" ")]):this._e()},staticRenderFns:[],name:"label-widget",props:["field","fieldId"],methods:{getLabel:function getLabel(){var label=this.field.label;return this.field.label.indexOf("_")>-1&&(label=Formatters.capitalize(this.field.label.replace("_"," "))),label}}},ErrorWidget={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.errors&&_vm.errors.length>0?_c("ul",{class:_vm.errorClass},_vm._l(_vm.errors,function(error){return _c("li",{attrs:{role:"alert"}},[_vm._v(" "+_vm._s(error)+" ")])})):_vm._e()},staticRenderFns:[],name:"error-widget",props:["errors","errorClass","field"]},HelpWidget={render:function render(){var _h=this.$createElement,_c=this._self._c||_h;return this.field.options.hasOwnProperty("help")?_c("span",{staticClass:"mutt-help",attrs:{id:this.getFieldId()+"-help"},domProps:{innerHTML:this._s(this.field.options.help)}}):this._e()},staticRenderFns:[],name:"help-widget",props:["field"],methods:{getFieldId:function getFieldId(){return this.field.name}}},ReadonlyWidget={render:function render(){var _h=this.$createElement;return(this._self._c||_h)("span",{staticClass:"mutt-readonly",domProps:{innerHTML:this._s(this.value)}})},staticRenderFns:[],name:"readonly-widget",props:["value"]},PropsProxy={field:{type:Object,required:!0},readonly:{type:Boolean,default:!1}},DataProxy=function DataProxy(){return{errors:null,value:null}},ComputedProxy={isReadOnly:function isReadOnly(){return this.field.options.hasOwnProperty("readonly")?this.field.options.readonly:this.readonly},hasErrors:function hasErrors(){return this.errors&&this.errors.length>0}},MethodProxy={getValue:function getValue(){return this.value},setValue:function setValue(value){this.value=value},getFieldClass:function getFieldClass(){return this.field.attribs.hasOwnProperty("class")?"mutt-field "+this.field.attribs.class:"mutt-field"},getFieldWrapperClass:function getFieldWrapperClass(){return"mutt-field-wrapper"},getErrorClass:function getErrorClass(){return"mutt-error"},getErrorWrapperClass:function getErrorWrapperClass(){return"mutt-error-wrapper"},getFieldId:function getFieldId(){return this.field.name},refreshErrorState:function refreshErrorState(errors){errors.length>0&&(this.errors=errors)},submitCallback:function submitCallback(){this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"submit",validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"submit",validated:!1})}},MuttWidgetProxy={props:PropsProxy,data:DataProxy,computed:ComputedProxy,methods:MethodProxy,components:{LabelWidget:LabelWidget,ErrorWidget:ErrorWidget,HelpWidget:HelpWidget,ReadonlyWidget:ReadonlyWidget},created:function created(){this.value=this.field.value,this.field.widget=this}},MuttText=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"text",class:_vm.getFieldClass(),attrs:{type:"text",id:_vm.getFieldId(),placeholder:_vm.field.options.placeholder,autocomplete:_vm.field.options.autocomplete,name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-text",alternative:"string",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-text input"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.text.focus()})}})}),MuttTextarea=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("textarea",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"textarea",class:_vm.getFieldClass(),attrs:{id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.describedBy},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-textarea",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-text textarea"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.textarea.focus()})}}),computed:Object.assign({},ComputedProxy,{describedBy:function describedBy(){var help=getFieldId()+"-help";return field.options.hasOwnProperty("help")?help:null}})}),MuttNumber=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"number",class:_vm.getFieldClass(),attrs:{type:"number",id:_vm.getFieldId(),placeholder:_vm.field.options.placeholder,autocomplete:_vm.field.options.autocomplete,name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-number",alternative:"integer",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-number input"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.number.focus()})}})}),MuttCheckbox=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{staticClass:"mutt-field-wrapper--checkbox",class:_vm.getFieldWrapperClass()},[_c("label-widget",{class:_vm.getLabelClass,attrs:{for:_vm.field.name,field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"checkbox",id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{checked:Array.isArray(_vm.value)?_vm._i(_vm.value,null)>-1:_vm.value},on:{change:[function($event){var $$a=_vm.value,$$el=$event.target,$$c=!!$$el.checked;if(Array.isArray($$a)){var $$i=_vm._i($$a,null);$$el.checked?$$i<0&&(_vm.value=$$a.concat([null])):$$i>-1&&(_vm.value=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}else _vm.value=$$c},_vm.submitCallback]}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-checkbox",for:"boolean",computed:Object.assign({},ComputedProxy,{getLabelClass:function getLabelClass(){return{"mutt-label":!0,"mutt-field-checkbox-checked":this.value}}}),methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-checkbox checkbox"}})}),MuttRadio=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{staticClass:"mutt-field-wrapper--checkbox mutt-field-wrapper--radio",class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm._l(_vm.field.choices,function(choice,index){return _vm.isReadOnly?_vm._e():_c("div",{staticClass:"mutt-field-radio-item"},[_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"radio",name:_vm.field.id,id:_vm.field.id+"-"+choice[0],"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:choice[0],checked:_vm._q(_vm.value,choice[0])},on:{change:[function($event){_vm.value=choice[0]},function($event){_vm.select(choice[0],choice[1])}]}}),_vm._v(" "),_c("label",{staticClass:"mutt-label",attrs:{for:_vm.field.id+"-"+choice[0]}},[_vm._v(_vm._s(choice[1]))])])}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],2):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-radio",created:function created(){"boolean"===this.field.type&&(this.field.options.hasOwnProperty("choices")?this.field.choices=this.field.options.choices:this.field.choices=[[!0,"Yes"],[!1,"No"]]),this.field.options.hasOwnProperty("default")&&(this.field.value=this.field.options.default),this.value=this.field.value,this.field.widget=this,this.displayReadonly=this.readonly,this.field.options.hasOwnProperty("readonly")&&(this.displayReadonly=this.field.options.readonly)},methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-radio radio"},select:function select(choice,label){this.value=choice,this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"radioSelect",label:label,validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"radioSelect",label:label,validated:!1})}})}),MuttChoice=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_c("div",{staticClass:"mutt-field-choice-wrap select"},[_vm.isReadOnly?_vm._e():_c("select",{directives:[{name:"model",rawName:"v-model",value:_vm.field.value,expression:"field.value"}],class:_vm.getFieldClass(),attrs:{id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},on:{change:[function($event){var $$selectedVal=Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){return"_value"in o?o._value:o.value});_vm.$set(_vm.field,"value",$event.target.multiple?$$selectedVal:$$selectedVal[0])},_vm.submitCallback]}},[_c("option",{attrs:{hidden:"",default:""},domProps:{selected:null===_vm.field.value,value:null}},[_vm._v(" "+_vm._s(_vm.getDefaultSelect())+" ")]),_vm._v(" "),_vm._l(_vm.field.choices,function(option,index){return _c("option",{domProps:{value:option[0]}},[_vm._v(" "+_vm._s(option[1])+" ")])})],2)]),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-choice",methods:Object.assign({},MethodProxy,{getDefaultSelect:function getDefaultSelect(){return this.field.options.hasOwnProperty("defaultSelect")?this.field.options.defaultSelect:"Please select one"},getFieldClass:function getFieldClass(){return"mutt-field mutt-field-choice"},select:function select(){this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"select",validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"select",validated:!1})}}),watch:{value:function value(newVal,oldVal){this.field.options.callback&&this.field.options.callback(newVal,oldVal)}}}),MuttObject=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("fieldset",[_vm.field.label?_c("legend",[_vm._v(_vm._s(_vm.field.label))]):_vm._e(),_vm._v(" "),_vm._l(_vm.field.object,function(objectField){return _c("mutt-widget",{key:objectField.id,attrs:{field:objectField,readonly:_vm.readonly},on:{callback:_vm.bubble}})})],2)]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-object",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-object"},bubble:function bubble(payload){this.$emit("callback",payload)}})}),MuttArray=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("div",{class:_vm.getFieldClass()},[_vm._l(_vm.field.slots,function(slotField){return _c("mutt-widget",{key:slotField.id,attrs:{field:slotField,readonly:_vm.readonly},on:{callback:_vm.bubble}})}),_vm._v(" "),_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],2)]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-array",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-array"},bubble:function bubble(payload){this.$emit("callback",payload)}})}),MuttHidden=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"hidden",name:_vm.field.name},domProps:{value:_vm.value},on:{input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}})]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-hidden",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-hidden"}})}),classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)},possibleConstructorReturn=function(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call},VueWidget=function(_Mutt$widgets$Widget){function VueWidget(field,type,id,name,label){return classCallCheck(this,VueWidget),possibleConstructorReturn(this,_Mutt$widgets$Widget.call(this))}return inherits(VueWidget,_Mutt$widgets$Widget),VueWidget.prototype.render=function render(){return null},VueWidget}(Mutt.widgets.Widget),main={install:function install(Vue,options){var components={MuttText:MuttText,MuttTextarea:MuttTextarea,MuttNumber:MuttNumber,MuttCheckbox:MuttCheckbox,MuttChoice:MuttChoice,MuttObject:MuttObject,MuttArray:MuttArray,MuttRadio:MuttRadio,MuttHidden:MuttHidden};options&&options.hasOwnProperty("plugins")&&(components=_extends({},components,options.plugins));var _loop=function _loop(component){var name=component.name,type=name.replace("mutt-","");component.hasOwnProperty("for")&&(type=component.for);var VueWidgetProxy=function VueWidgetProxy(field,type,id,name,label){var attribs=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},options=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},initial=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null;return new VueWidget(field,type,id,name,label,attribs,options,initial)};VueWidgetProxy.getWidgetName=function(){return name},Mutt.config.registerWidget(type,VueWidgetProxy),component.hasOwnProperty("alternative")&&Mutt.config.registerWidget(component.alternative,VueWidgetProxy)},_iterator=Object.values(components),_isArray=Array.isArray(_iterator),_i=0;for(_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{if((_i=_iterator.next()).done)break;_ref=_i.value}_loop(_ref)}Vue.component("mutt-widget",{template:'\n <component\n @callback="callback"\n :is="this.getWidget()"\n v-bind:field="field"\n v-bind:readonly="readonly"\n ></component>\n ',props:["field","widget","readonly"],components:components,methods:{getWidget:function getWidget(){var resolveWidget=function resolveWidget(widget){return"function"==typeof widget&&"VueWidgetProxy"===widget.name?widget.getWidgetName():widget};return this.widget?resolveWidget(Mutt.config.getWidget(this.widget)):this.field.options.hasOwnProperty("widget")?resolveWidget(Mutt.config.getWidget(this.field.options.widget)):this.field.options.hasOwnProperty("hidden")&&this.field.options.hidden?resolveWidget(Mutt.config.getWidget("hidden")):resolveWidget(Mutt.config.getWidget(this.field.type))},callback:function callback(options){this.$emit("callback",options)}}}),Vue.component("mutt-watcher",MuttWatcher),Vue.component("mutt-vue",MuttVue),Vue.prototype.$mutt=Mutt},utils:{PropsProxy:PropsProxy,DataProxy:DataProxy,ComputedProxy:ComputedProxy,MethodProxy:MethodProxy,MuttWidgetProxy:MuttWidgetProxy}};export default main; |
@@ -1,1 +0,1 @@ | ||
var MuttVue=function(Mutt){"use strict";Mutt=Mutt&&Mutt.hasOwnProperty("default")?Mutt.default:Mutt;var MuttVue={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.form?_c("form",{attrs:{role:"form"},on:{submit:function submit($event){$event.preventDefault()}}},_vm._l(_vm.form.fieldsets,function(fieldset){return _c("fieldset",[fieldset.label?_c("legend",[_vm._v(_vm._s(fieldset.label))]):_vm._e(),_vm._v(" "),_vm._l(fieldset.fields,function(field){return _c("mutt-widget",{key:field.id,attrs:{field:field,readonly:_vm.readonly},on:{callback:_vm.callback}})}),_vm._v(" "),_c("button",{on:{click:_vm.submit}},[_vm._v("Submit")])],2)})):_vm._e()},staticRenderFns:[],name:"mutt-vue",props:{schema:{type:Object,required:!0},options:{type:Object},data:{type:Object},readonly:{type:Boolean,default:!1}},created:function created(){this.form=new this.$mutt(this.schema,this.options),this.$emit("init",this.form)},mounted:function mounted(){this.data&&this.form.populate(this.data)},data:function data(){return{form:null}},methods:{callback:function callback(payload){this.$emit("callback",payload)},submit:function submit(){this.$emit("submit",this.form)}}},Formatters={datetime:function datetime(value,options){return new Date(Date.parse(value)).toLocaleString()},date:function date(value,options){var date=new Date(Date.parse(value));return date.toLocaleDateString()},capitalize:function capitalize(value,options){var output=value.toLowerCase();return output.charAt(0).toUpperCase()+output.slice(1)},prefix:function prefix(value,options){return""+options.prefix+value}},MuttWatcher={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:{"mutt-watcher":!0,"mutt-watcher--errors":_vm.hasFieldErrors}},[_vm.getLabel?_c("span",{staticClass:"mutt-watcher__title"},[_vm._v(" "+_vm._s(_vm.getLabel)+": ")]):_vm._e(),_vm._v(" "),"object"===_vm.field.type?_c("span",{staticClass:"mutt-watcher__value"},[_vm.field.options.hasOwnProperty("format")?_c("span",{staticClass:"mutt-watcher__value--formatter"},[_vm._v(" "+_vm._s(_vm.getFieldValue)+" ")]):_c("span",{staticClass:"mutt-watcher__value--object"},_vm._l(_vm.field.object,function(objectField){return _c("mutt-watcher",{key:objectField.id,attrs:{field:objectField}})}))]):"array"===_vm.field.type?_c("span",{staticClass:"mutt-watcher__value"},_vm._l(_vm.field.slots,function(slotField){return _c("mutt-watcher",{key:slotField.id,attrs:{field:slotField,formatter:_vm.getItemFormatter,allowLabel:_vm.stopLabelPropogation}})})):_c("span",{staticClass:"mutt-watcher__value"},[_vm._v(" "+_vm._s(_vm.getFieldValue)+" ")])]):_vm._e()},staticRenderFns:[],name:"mutt-watcher",props:{field:{type:Object,required:!0},formatter:{type:Object,required:!1,default:null},allowLabel:{type:Boolean,default:!0}},computed:{getFieldValue:function getFieldValue(){if(null===this.field.value)return"-";if(this.formatter)return this.getFormattedValue(this.formatter,this.field.value);if(this.field.options.hasOwnProperty("format")){var fieldFormat=this.field.options.format;return this.getFormattedValue(fieldFormat,this.field.value)}return this.field.value},hasFieldErrors:function hasFieldErrors(){return this.field.errors.length>0},getLabel:function getLabel(){if(!this.allowLabel)return!1;var label=this.field.label;return!!label&&(this.field.label.indexOf("_")>-1&&(label=Formatters.capitalize(this.field.label.replace("_"," "))),label)},stopLabelPropogation:function stopLabelPropogation(){if(this.field.options.hasOwnProperty("format")){if("list"===this.field.options.format)return!1;if(this.field.options.format.hasOwnProperty("list")&&this.field.options.format.list)return!1}return!0},getItemFormatter:function getItemFormatter(){return this.field.options.hasOwnProperty("format")&&this.field.options.format.hasOwnProperty("item")?this.field.options.format.item:null}},methods:{getFormattedValue:function getFormattedValue(formatter,value){if("string"==typeof formatter){if(Formatters.hasOwnProperty(formatter))return Formatters[formatter](value)}else{var formatType=formatter.type;if(Formatters.hasOwnProperty(formatType))return Formatters[formatType](this.field.value,formatter)}return value}}},PropsProxy={field:{type:Object,required:!0},readonly:{type:Boolean,default:!1}},DataProxy=function DataProxy(){return{errors:null,value:null}},ComputedProxy={isReadOnly:function isReadOnly(){return this.field.options.hasOwnProperty("readonly")?this.field.options.readonly:this.readonly},hasErrors:function hasErrors(){return this.errors&&this.errors.length>0}},MethodProxy={getValue:function getValue(){return this.value},setValue:function setValue(value){this.value=value},getFieldClass:function getFieldClass(){return this.field.attribs.hasOwnProperty("class")?"mutt-field "+this.field.attribs.class:"mutt-field"},getFieldWrapperClass:function getFieldWrapperClass(){return"mutt-field-wrapper"},getErrorClass:function getErrorClass(){return"mutt-error"},getErrorWrapperClass:function getErrorWrapperClass(){return"mutt-error-wrapper"},getFieldId:function getFieldId(){return this.field.name},refreshErrorState:function refreshErrorState(errors){errors.length>0&&(this.errors=errors)},submitCallback:function submitCallback(){this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"submit",validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"submit",validated:!1})}},MuttWidgetProxy={props:PropsProxy,data:DataProxy,computed:ComputedProxy,methods:MethodProxy,components:{LabelWidget:{render:function render(){var _h=this.$createElement,_c=this._self._c||_h;return this.field.label?_c("label",{staticClass:"mutt-label",attrs:{for:this.fieldId}},[this._v(" "+this._s(this.getLabel())+" ")]):this._e()},staticRenderFns:[],name:"label-widget",props:["field","fieldId"],methods:{getLabel:function getLabel(){var label=this.field.label;return this.field.label.indexOf("_")>-1&&(label=Formatters.capitalize(this.field.label.replace("_"," "))),label}}},ErrorWidget:{render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.errors&&_vm.errors.length>0?_c("ul",{class:_vm.errorClass},_vm._l(_vm.errors,function(error){return _c("li",{attrs:{role:"alert"}},[_vm._v(" "+_vm._s(error)+" ")])})):_vm._e()},staticRenderFns:[],name:"error-widget",props:["errors","errorClass","field"]},HelpWidget:{render:function render(){var _h=this.$createElement,_c=this._self._c||_h;return this.field.options.hasOwnProperty("help")?_c("span",{staticClass:"mutt-help",attrs:{id:this.getFieldId()+"-help"},domProps:{innerHTML:this._s(this.field.options.help)}}):this._e()},staticRenderFns:[],name:"help-widget",props:["field"],methods:{getFieldId:function getFieldId(){return this.field.name}}},ReadonlyWidget:{render:function render(){var _h=this.$createElement;return(this._self._c||_h)("span",{staticClass:"mutt-readonly",domProps:{innerHTML:this._s(this.value)}})},staticRenderFns:[],name:"readonly-widget",props:["value"]}},created:function created(){this.value=this.field.value,this.field.widget=this}},MuttText=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"text",class:_vm.getFieldClass(),attrs:{type:"text",id:_vm.getFieldId(),placeholder:_vm.field.options.placeholder,autocomplete:_vm.field.options.autocomplete,name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-text",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-text input"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.text.focus()})}})}),MuttTextarea=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("textarea",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"textarea",class:_vm.getFieldClass(),attrs:{id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-textarea",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-text textarea"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.textarea.focus()})}})}),MuttNumber=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"number",class:_vm.getFieldClass(),attrs:{type:"number",id:_vm.getFieldId(),placeholder:_vm.field.options.placeholder,autocomplete:_vm.field.options.autocomplete,name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-number",for:"integer",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-number input"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.number.focus()})}})}),MuttCheckbox=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{staticClass:"mutt-field-wrapper--checkbox",class:_vm.getFieldWrapperClass()},[_c("label-widget",{class:_vm.getLabelClass,attrs:{for:_vm.field.name,field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"checkbox",id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{checked:Array.isArray(_vm.value)?_vm._i(_vm.value,null)>-1:_vm.value},on:{change:[function($event){var $$a=_vm.value,$$el=$event.target,$$c=!!$$el.checked;if(Array.isArray($$a)){var $$i=_vm._i($$a,null);$$el.checked?$$i<0&&(_vm.value=$$a.concat([null])):$$i>-1&&(_vm.value=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}else _vm.value=$$c},_vm.submitCallback]}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-checkbox",for:"boolean",computed:Object.assign({},ComputedProxy,{getLabelClass:function getLabelClass(){return{"mutt-label":!0,"mutt-field-checkbox-checked":this.value}}}),methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-checkbox checkbox"}})}),MuttRadio=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{staticClass:"mutt-field-wrapper--checkbox mutt-field-wrapper--radio",class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm._l(_vm.field.choices,function(choice,index){return _vm.isReadOnly?_vm._e():_c("div",{staticClass:"mutt-field-radio-item"},[_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"radio",name:_vm.field.id,id:_vm.field.id+"-"+choice[0],"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:choice[0],checked:_vm._q(_vm.value,choice[0])},on:{change:[function($event){_vm.value=choice[0]},function($event){_vm.select(choice[0],choice[1])}]}}),_vm._v(" "),_c("label",{staticClass:"mutt-label",attrs:{for:_vm.field.id+"-"+choice[0]}},[_vm._v(_vm._s(choice[1]))])])}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],2):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-radio",created:function created(){"boolean"===this.field.type&&(this.field.options.hasOwnProperty("choices")?this.field.choices=this.field.options.choices:this.field.choices=[[!0,"Yes"],[!1,"No"]]),this.field.options.hasOwnProperty("default")&&(this.field.value=this.field.options.default),this.value=this.field.value,this.field.widget=this,this.displayReadonly=this.readonly,this.field.options.hasOwnProperty("readonly")&&(this.displayReadonly=this.field.options.readonly)},methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-radio radio"},select:function select(choice,label){this.value=choice,this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"radioSelect",label:label,validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"radioSelect",label:label,validated:!1})}})}),MuttChoice=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_c("div",{staticClass:"mutt-field-choice-wrap select"},[_vm.isReadOnly?_vm._e():_c("select",{directives:[{name:"model",rawName:"v-model",value:_vm.field.value,expression:"field.value"}],class:_vm.getFieldClass(),attrs:{id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},on:{change:[function($event){var $$selectedVal=Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){return"_value"in o?o._value:o.value});_vm.$set(_vm.field,"value",$event.target.multiple?$$selectedVal:$$selectedVal[0])},_vm.submitCallback]}},[_c("option",{attrs:{hidden:"",default:""},domProps:{selected:null===_vm.field.value,value:null}},[_vm._v(" "+_vm._s(_vm.getDefaultSelect())+" ")]),_vm._v(" "),_vm._l(_vm.field.choices,function(option,index){return _c("option",{domProps:{value:option[0]}},[_vm._v(" "+_vm._s(option[1])+" ")])})],2)]),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-choice",methods:Object.assign({},MethodProxy,{getDefaultSelect:function getDefaultSelect(){return this.field.options.hasOwnProperty("defaultSelect")?this.field.options.defaultSelect:"Please select one"},getFieldClass:function getFieldClass(){return"mutt-field mutt-field-choice"},select:function select(){this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"select",validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"select",validated:!1})}}),watch:{value:function value(newVal,oldVal){this.field.options.callback&&this.field.options.callback(newVal,oldVal)}}}),MuttObject=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("fieldset",[_vm.field.label?_c("legend",[_vm._v(_vm._s(_vm.field.label))]):_vm._e(),_vm._v(" "),_vm._l(_vm.field.object,function(objectField){return _c("mutt-widget",{key:objectField.id,attrs:{field:objectField,readonly:_vm.readonly},on:{callback:_vm.bubble}})})],2)]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-object",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-object"},bubble:function bubble(payload){this.$emit("callback",payload)}})}),MuttArray=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("div",{class:_vm.getFieldClass()},[_vm._l(_vm.field.slots,function(slotField){return _c("mutt-widget",{key:slotField.id,attrs:{field:slotField,readonly:_vm.readonly},on:{callback:_vm.bubble}})}),_vm._v(" "),_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],2)]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-array",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-array"},bubble:function bubble(payload){this.$emit("callback",payload)}})}),MuttHidden=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"hidden",name:_vm.field.name},domProps:{value:_vm.value},on:{input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}})]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-hidden",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-hidden"}})}),classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},possibleConstructorReturn=function(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call},VueWidget=function(_Mutt$widgets$Widget){function VueWidget(field,type,id,name,label){return classCallCheck(this,VueWidget),possibleConstructorReturn(this,_Mutt$widgets$Widget.call(this))}return function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(VueWidget,_Mutt$widgets$Widget),VueWidget.prototype.render=function render(){return null},VueWidget}(Mutt.widgets.Widget);return{install:function install(Vue,options){var components={MuttText:MuttText,MuttTextarea:MuttTextarea,MuttNumber:MuttNumber,MuttCheckbox:MuttCheckbox,MuttChoice:MuttChoice,MuttObject:MuttObject,MuttArray:MuttArray,MuttRadio:MuttRadio,MuttHidden:MuttHidden};options&&options.hasOwnProperty("plugins")&&(components=_extends({},components,options.plugins));var _loop=function _loop(component){var name=component.name,type=name.replace("mutt-","");component.hasOwnProperty("for")&&(type=component.for);var VueWidgetProxy=function VueWidgetProxy(field,type,id,name,label){var attribs=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},options=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},initial=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null;return new VueWidget(field,type,id,name,label,attribs,options,initial)};VueWidgetProxy.getWidgetName=function(){return name},Mutt.config.registerWidget(type,VueWidgetProxy),"text"===type&&Mutt.config.registerWidget("string",VueWidgetProxy)},_iterator=Object.values(components),_isArray=Array.isArray(_iterator),_i=0;for(_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{if((_i=_iterator.next()).done)break;_ref=_i.value}_loop(_ref)}Vue.component("mutt-widget",{template:'<component @callback="callback" :is="this.getWidget()" v-bind:field="field" v-bind:readonly="readonly"></component>',props:["field","widget","readonly"],components:components,methods:{getWidget:function getWidget(){var resolveWidget=function resolveWidget(widget){return"function"==typeof widget&&"VueWidgetProxy"===widget.name?widget.getWidgetName():widget};return this.widget?resolveWidget(Mutt.config.getWidget(this.widget)):this.field.options.hasOwnProperty("widget")?resolveWidget(Mutt.config.getWidget(this.field.options.widget)):this.field.options.hasOwnProperty("hidden")&&this.field.options.hidden?resolveWidget(Mutt.config.getWidget("hidden")):resolveWidget(Mutt.config.getWidget(this.field.type))},callback:function callback(options){this.$emit("callback",options)}}}),Vue.component("mutt-watcher",MuttWatcher),Vue.component("mutt-vue",MuttVue),Vue.prototype.$mutt=Mutt},utils:{PropsProxy:PropsProxy,DataProxy:DataProxy,ComputedProxy:ComputedProxy,MethodProxy:MethodProxy,MuttWidgetProxy:MuttWidgetProxy}}}(Mutt); | ||
var MuttVue=function(Mutt){"use strict";Mutt=Mutt&&Mutt.hasOwnProperty("default")?Mutt.default:Mutt;var MuttVue={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.form?_c("form",{attrs:{role:"form"},on:{submit:function submit($event){$event.preventDefault()}}},_vm._l(_vm.form.fieldsets,function(fieldset){return _c("fieldset",[fieldset.label?_c("legend",[_vm._v(_vm._s(fieldset.label))]):_vm._e(),_vm._v(" "),_vm._l(fieldset.fields,function(field){return _c("mutt-widget",{key:field.id,attrs:{field:field,readonly:_vm.readonly},on:{callback:_vm.callback}})}),_vm._v(" "),_c("button",{on:{click:_vm.submit}},[_vm._v("Submit")])],2)})):_vm._e()},staticRenderFns:[],name:"mutt-vue",props:{schema:{type:Object,required:!0},options:{type:Object},data:{type:Object},readonly:{type:Boolean,default:!1}},created:function created(){this.form=new this.$mutt(this.schema,this.options),this.$emit("init",this.form)},mounted:function mounted(){this.data&&this.form.populate(this.data)},data:function data(){return{form:null}},methods:{callback:function callback(payload){this.$emit("callback",payload)},submit:function submit(){this.$emit("submit",this.form)}}},Formatters={datetime:function datetime(value,options){return new Date(Date.parse(value)).toLocaleString()},date:function date(value,options){var date=new Date(Date.parse(value));return date.toLocaleDateString()},capitalize:function capitalize(value,options){var output=value.toLowerCase();return output.charAt(0).toUpperCase()+output.slice(1)},prefix:function prefix(value,options){return""+options.prefix+value}},MuttWatcher={render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:{"mutt-watcher":!0,"mutt-watcher--errors":_vm.hasFieldErrors}},[_vm.getLabel?_c("span",{staticClass:"mutt-watcher__title"},[_vm._v(" "+_vm._s(_vm.getLabel)+": ")]):_vm._e(),_vm._v(" "),"object"===_vm.field.type?_c("span",{staticClass:"mutt-watcher__value"},[_vm.field.options.hasOwnProperty("format")?_c("span",{staticClass:"mutt-watcher__value--formatter"},[_vm._v(" "+_vm._s(_vm.getFieldValue)+" ")]):_c("span",{staticClass:"mutt-watcher__value--object"},_vm._l(_vm.field.object,function(objectField){return _c("mutt-watcher",{key:objectField.id,attrs:{field:objectField}})}))]):"array"===_vm.field.type?_c("span",{staticClass:"mutt-watcher__value"},_vm._l(_vm.field.slots,function(slotField){return _c("mutt-watcher",{key:slotField.id,attrs:{field:slotField,formatter:_vm.getItemFormatter,allowLabel:_vm.stopLabelPropogation}})})):_c("span",{staticClass:"mutt-watcher__value"},[_vm._v(" "+_vm._s(_vm.getFieldValue)+" ")])]):_vm._e()},staticRenderFns:[],name:"mutt-watcher",props:{field:{type:Object,required:!0},formatter:{type:Object,required:!1,default:null},allowLabel:{type:Boolean,default:!0}},computed:{getFieldValue:function getFieldValue(){if(null===this.field.value)return"-";if(this.formatter)return this.getFormattedValue(this.formatter,this.field.value);if(this.field.options.hasOwnProperty("format")){var fieldFormat=this.field.options.format;return this.getFormattedValue(fieldFormat,this.field.value)}return this.field.value},hasFieldErrors:function hasFieldErrors(){return this.field.errors.length>0},getLabel:function getLabel(){if(!this.allowLabel)return!1;var label=this.field.label;return!!label&&(this.field.label.indexOf("_")>-1&&(label=Formatters.capitalize(this.field.label.replace("_"," "))),label)},stopLabelPropogation:function stopLabelPropogation(){if(this.field.options.hasOwnProperty("format")){if("list"===this.field.options.format)return!1;if(this.field.options.format.hasOwnProperty("list")&&this.field.options.format.list)return!1}return!0},getItemFormatter:function getItemFormatter(){return this.field.options.hasOwnProperty("format")&&this.field.options.format.hasOwnProperty("item")?this.field.options.format.item:null}},methods:{getFormattedValue:function getFormattedValue(formatter,value){if("string"==typeof formatter){if(Formatters.hasOwnProperty(formatter))return Formatters[formatter](value)}else{var formatType=formatter.type;if(Formatters.hasOwnProperty(formatType))return Formatters[formatType](this.field.value,formatter)}return value}}},PropsProxy={field:{type:Object,required:!0},readonly:{type:Boolean,default:!1}},DataProxy=function DataProxy(){return{errors:null,value:null}},ComputedProxy={isReadOnly:function isReadOnly(){return this.field.options.hasOwnProperty("readonly")?this.field.options.readonly:this.readonly},hasErrors:function hasErrors(){return this.errors&&this.errors.length>0}},MethodProxy={getValue:function getValue(){return this.value},setValue:function setValue(value){this.value=value},getFieldClass:function getFieldClass(){return this.field.attribs.hasOwnProperty("class")?"mutt-field "+this.field.attribs.class:"mutt-field"},getFieldWrapperClass:function getFieldWrapperClass(){return"mutt-field-wrapper"},getErrorClass:function getErrorClass(){return"mutt-error"},getErrorWrapperClass:function getErrorWrapperClass(){return"mutt-error-wrapper"},getFieldId:function getFieldId(){return this.field.name},refreshErrorState:function refreshErrorState(errors){errors.length>0&&(this.errors=errors)},submitCallback:function submitCallback(){this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"submit",validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"submit",validated:!1})}},MuttWidgetProxy={props:PropsProxy,data:DataProxy,computed:ComputedProxy,methods:MethodProxy,components:{LabelWidget:{render:function render(){var _h=this.$createElement,_c=this._self._c||_h;return this.field.label?_c("label",{staticClass:"mutt-label",attrs:{for:this.fieldId}},[this._v(" "+this._s(this.getLabel())+" ")]):this._e()},staticRenderFns:[],name:"label-widget",props:["field","fieldId"],methods:{getLabel:function getLabel(){var label=this.field.label;return this.field.label.indexOf("_")>-1&&(label=Formatters.capitalize(this.field.label.replace("_"," "))),label}}},ErrorWidget:{render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.errors&&_vm.errors.length>0?_c("ul",{class:_vm.errorClass},_vm._l(_vm.errors,function(error){return _c("li",{attrs:{role:"alert"}},[_vm._v(" "+_vm._s(error)+" ")])})):_vm._e()},staticRenderFns:[],name:"error-widget",props:["errors","errorClass","field"]},HelpWidget:{render:function render(){var _h=this.$createElement,_c=this._self._c||_h;return this.field.options.hasOwnProperty("help")?_c("span",{staticClass:"mutt-help",attrs:{id:this.getFieldId()+"-help"},domProps:{innerHTML:this._s(this.field.options.help)}}):this._e()},staticRenderFns:[],name:"help-widget",props:["field"],methods:{getFieldId:function getFieldId(){return this.field.name}}},ReadonlyWidget:{render:function render(){var _h=this.$createElement;return(this._self._c||_h)("span",{staticClass:"mutt-readonly",domProps:{innerHTML:this._s(this.value)}})},staticRenderFns:[],name:"readonly-widget",props:["value"]}},created:function created(){this.value=this.field.value,this.field.widget=this}},MuttText=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"text",class:_vm.getFieldClass(),attrs:{type:"text",id:_vm.getFieldId(),placeholder:_vm.field.options.placeholder,autocomplete:_vm.field.options.autocomplete,name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-text",alternative:"string",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-text input"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.text.focus()})}})}),MuttTextarea=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("textarea",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"textarea",class:_vm.getFieldClass(),attrs:{id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.describedBy},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-textarea",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-text textarea"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.textarea.focus()})}}),computed:Object.assign({},ComputedProxy,{describedBy:function describedBy(){var help=getFieldId()+"-help";return field.options.hasOwnProperty("help")?help:null}})}),MuttNumber=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],ref:"number",class:_vm.getFieldClass(),attrs:{type:"number",id:_vm.getFieldId(),placeholder:_vm.field.options.placeholder,autocomplete:_vm.field.options.autocomplete,name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:_vm.value},on:{keypress:function keypress($event){return"button"in $event||!_vm._k($event.keyCode,"enter",13,$event.key,"Enter")?($event.preventDefault(),_vm.submitCallback($event)):null},input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-number",alternative:"integer",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-number input"},focus:function focus(){var _this=this;this.$nextTick(function(){_this.$refs.number.focus()})}})}),MuttCheckbox=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{staticClass:"mutt-field-wrapper--checkbox",class:_vm.getFieldWrapperClass()},[_c("label-widget",{class:_vm.getLabelClass,attrs:{for:_vm.field.name,field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"checkbox",id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{checked:Array.isArray(_vm.value)?_vm._i(_vm.value,null)>-1:_vm.value},on:{change:[function($event){var $$a=_vm.value,$$el=$event.target,$$c=!!$$el.checked;if(Array.isArray($$a)){var $$i=_vm._i($$a,null);$$el.checked?$$i<0&&(_vm.value=$$a.concat([null])):$$i>-1&&(_vm.value=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}else _vm.value=$$c},_vm.submitCallback]}}),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-checkbox",for:"boolean",computed:Object.assign({},ComputedProxy,{getLabelClass:function getLabelClass(){return{"mutt-label":!0,"mutt-field-checkbox-checked":this.value}}}),methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-checkbox checkbox"}})}),MuttRadio=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{staticClass:"mutt-field-wrapper--checkbox mutt-field-wrapper--radio",class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm._l(_vm.field.choices,function(choice,index){return _vm.isReadOnly?_vm._e():_c("div",{staticClass:"mutt-field-radio-item"},[_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"radio",name:_vm.field.id,id:_vm.field.id+"-"+choice[0],"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},domProps:{value:choice[0],checked:_vm._q(_vm.value,choice[0])},on:{change:[function($event){_vm.value=choice[0]},function($event){_vm.select(choice[0],choice[1])}]}}),_vm._v(" "),_c("label",{staticClass:"mutt-label",attrs:{for:_vm.field.id+"-"+choice[0]}},[_vm._v(_vm._s(choice[1]))])])}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],2):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-radio",created:function created(){"boolean"===this.field.type&&(this.field.options.hasOwnProperty("choices")?this.field.choices=this.field.options.choices:this.field.choices=[[!0,"Yes"],[!1,"No"]]),this.field.options.hasOwnProperty("default")&&(this.field.value=this.field.options.default),this.value=this.field.value,this.field.widget=this,this.displayReadonly=this.readonly,this.field.options.hasOwnProperty("readonly")&&(this.displayReadonly=this.field.options.readonly)},methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-radio radio"},select:function select(choice,label){this.value=choice,this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"radioSelect",label:label,validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"radioSelect",label:label,validated:!1})}})}),MuttChoice=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("label-widget",{attrs:{field:_vm.field,fieldId:_vm.getFieldId()}}),_vm._v(" "),_vm.isReadOnly?_c("readonly-widget",{attrs:{value:_vm.field.value}}):_vm._e(),_vm._v(" "),_c("div",{staticClass:"mutt-field-choice-wrap select"},[_vm.isReadOnly?_vm._e():_c("select",{directives:[{name:"model",rawName:"v-model",value:_vm.field.value,expression:"field.value"}],class:_vm.getFieldClass(),attrs:{id:_vm.getFieldId(),name:_vm.field.name,"aria-invalid":_vm.hasErrors?"true":null,"aria-describedby":_vm.field.options.hasOwnProperty("help")?_vm.getFieldId()+"-help":null},on:{change:[function($event){var $$selectedVal=Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){return"_value"in o?o._value:o.value});_vm.$set(_vm.field,"value",$event.target.multiple?$$selectedVal:$$selectedVal[0])},_vm.submitCallback]}},[_c("option",{attrs:{hidden:"",default:""},domProps:{selected:null===_vm.field.value,value:null}},[_vm._v(" "+_vm._s(_vm.getDefaultSelect())+" ")]),_vm._v(" "),_vm._l(_vm.field.choices,function(option,index){return _c("option",{domProps:{value:option[0]}},[_vm._v(" "+_vm._s(option[1])+" ")])})],2)]),_vm._v(" "),_c("help-widget",{attrs:{field:_vm.field}}),_vm._v(" "),_vm.isReadOnly?_vm._e():_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],1):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-choice",methods:Object.assign({},MethodProxy,{getDefaultSelect:function getDefaultSelect(){return this.field.options.hasOwnProperty("defaultSelect")?this.field.options.defaultSelect:"Please select one"},getFieldClass:function getFieldClass(){return"mutt-field mutt-field-choice"},select:function select(){this.field.validate()?this.$emit("callback",{key:this.field.name,value:this.field.value,action:"select",validated:!0}):this.$emit("callback",{key:this.field.name,value:this.field.value,action:"select",validated:!1})}}),watch:{value:function value(newVal,oldVal){this.field.options.callback&&this.field.options.callback(newVal,oldVal)}}}),MuttObject=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("fieldset",[_vm.field.label?_c("legend",[_vm._v(_vm._s(_vm.field.label))]):_vm._e(),_vm._v(" "),_vm._l(_vm.field.object,function(objectField){return _c("mutt-widget",{key:objectField.id,attrs:{field:objectField,readonly:_vm.readonly},on:{callback:_vm.bubble}})})],2)]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-object",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-object"},bubble:function bubble(payload){this.$emit("callback",payload)}})}),MuttArray=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("div",{class:_vm.getFieldClass()},[_vm._l(_vm.field.slots,function(slotField){return _c("mutt-widget",{key:slotField.id,attrs:{field:slotField,readonly:_vm.readonly},on:{callback:_vm.bubble}})}),_vm._v(" "),_c("error-widget",{attrs:{field:_vm.field,errors:_vm.errors,errorClass:_vm.getErrorClass()}})],2)]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-array",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-array"},bubble:function bubble(payload){this.$emit("callback",payload)}})}),MuttHidden=Object.assign({render:function render(){var _vm=this,_h=_vm.$createElement,_c=_vm._self._c||_h;return _vm.field?_c("div",{class:_vm.getFieldWrapperClass()},[_c("input",{directives:[{name:"model",rawName:"v-model",value:_vm.value,expression:"value"}],class:_vm.getFieldClass(),attrs:{type:"hidden",name:_vm.field.name},domProps:{value:_vm.value},on:{input:function input($event){$event.target.composing||(_vm.value=$event.target.value)}}})]):_vm._e()},staticRenderFns:[]},MuttWidgetProxy,{name:"mutt-hidden",methods:Object.assign({},MethodProxy,{getFieldClass:function getFieldClass(){return"mutt-field mutt-field-hidden"}})}),classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},possibleConstructorReturn=function(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call},VueWidget=function(_Mutt$widgets$Widget){function VueWidget(field,type,id,name,label){return classCallCheck(this,VueWidget),possibleConstructorReturn(this,_Mutt$widgets$Widget.call(this))}return function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(VueWidget,_Mutt$widgets$Widget),VueWidget.prototype.render=function render(){return null},VueWidget}(Mutt.widgets.Widget);return{install:function install(Vue,options){var components={MuttText:MuttText,MuttTextarea:MuttTextarea,MuttNumber:MuttNumber,MuttCheckbox:MuttCheckbox,MuttChoice:MuttChoice,MuttObject:MuttObject,MuttArray:MuttArray,MuttRadio:MuttRadio,MuttHidden:MuttHidden};options&&options.hasOwnProperty("plugins")&&(components=_extends({},components,options.plugins));var _loop=function _loop(component){var name=component.name,type=name.replace("mutt-","");component.hasOwnProperty("for")&&(type=component.for);var VueWidgetProxy=function VueWidgetProxy(field,type,id,name,label){var attribs=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},options=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},initial=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null;return new VueWidget(field,type,id,name,label,attribs,options,initial)};VueWidgetProxy.getWidgetName=function(){return name},Mutt.config.registerWidget(type,VueWidgetProxy),component.hasOwnProperty("alternative")&&Mutt.config.registerWidget(component.alternative,VueWidgetProxy)},_iterator=Object.values(components),_isArray=Array.isArray(_iterator),_i=0;for(_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++]}else{if((_i=_iterator.next()).done)break;_ref=_i.value}_loop(_ref)}Vue.component("mutt-widget",{template:'\n <component\n @callback="callback"\n :is="this.getWidget()"\n v-bind:field="field"\n v-bind:readonly="readonly"\n ></component>\n ',props:["field","widget","readonly"],components:components,methods:{getWidget:function getWidget(){var resolveWidget=function resolveWidget(widget){return"function"==typeof widget&&"VueWidgetProxy"===widget.name?widget.getWidgetName():widget};return this.widget?resolveWidget(Mutt.config.getWidget(this.widget)):this.field.options.hasOwnProperty("widget")?resolveWidget(Mutt.config.getWidget(this.field.options.widget)):this.field.options.hasOwnProperty("hidden")&&this.field.options.hidden?resolveWidget(Mutt.config.getWidget("hidden")):resolveWidget(Mutt.config.getWidget(this.field.type))},callback:function callback(options){this.$emit("callback",options)}}}),Vue.component("mutt-watcher",MuttWatcher),Vue.component("mutt-vue",MuttVue),Vue.prototype.$mutt=Mutt},utils:{PropsProxy:PropsProxy,DataProxy:DataProxy,ComputedProxy:ComputedProxy,MethodProxy:MethodProxy,MuttWidgetProxy:MuttWidgetProxy}}}(Mutt); |
{ | ||
"name": "mutt-forms-vue", | ||
"description": "Mutt forms - VueJS integration", | ||
"version": "1.2.2", | ||
"version": "1.2.3", | ||
"author": "Bought By Many <dev@boughtbymany.com>", | ||
@@ -30,3 +30,4 @@ "license": "MIT", | ||
"build": "rollup -c", | ||
"prepublish": "yarn run build" | ||
"lint": "eslint src --ext .vue", | ||
"prepublish": "yarn run lint && yarn run build" | ||
}, | ||
@@ -58,2 +59,3 @@ "keywords": [ | ||
"eslint-plugin-html": "^3.0.0", | ||
"eslint-plugin-vue": "^4.5.0", | ||
"jest": "^21.2.1", | ||
@@ -60,0 +62,0 @@ "rollup": "^0.57.1", |
@@ -25,3 +25,3 @@ /** | ||
return `${options.prefix}${value}` | ||
} | ||
}, | ||
} |
@@ -28,11 +28,11 @@ /** | ||
MethodProxy, | ||
MuttWidgetProxy | ||
MuttWidgetProxy, | ||
} from './utils' | ||
/* | ||
Proxy used to mock Widget interface to Mutt. | ||
NOTE: This is never used in practice as Vue components | ||
overwrite this value and masqurade as Mutt Widgets | ||
*/ | ||
// Proxy used to mock Widget interface to Mutt. | ||
// NOTE: This is never used in practice as Vue components | ||
// overwrite this value and masqurade as Mutt Widgets | ||
/* eslint-disable */ | ||
class VueWidget extends Mutt.widgets.Widget { | ||
@@ -48,2 +48,3 @@ constructor(field, type, id, name, label, | ||
} | ||
/* eslint-enable */ | ||
@@ -62,3 +63,3 @@ export default { | ||
MuttRadio, | ||
MuttHidden | ||
MuttHidden, | ||
} | ||
@@ -71,3 +72,3 @@ | ||
...components, | ||
...options.plugins | ||
...options.plugins, | ||
} | ||
@@ -82,3 +83,3 @@ } | ||
if(component.hasOwnProperty('for')) { | ||
if (component.hasOwnProperty('for')) { | ||
type = component.for | ||
@@ -103,4 +104,5 @@ } | ||
if(type === 'text') { | ||
Mutt.config.registerWidget('string', VueWidgetProxy) | ||
if (component.hasOwnProperty('alternative')) { | ||
Mutt.config.registerWidget( | ||
component.alternative, VueWidgetProxy) | ||
} | ||
@@ -111,4 +113,11 @@ } | ||
Vue.component('mutt-widget', { | ||
template: '<component @callback="callback" :is="this.getWidget()" v-bind:field="field" v-bind:readonly="readonly"></component>', | ||
props: [ 'field', 'widget', 'readonly' ], | ||
template: ` | ||
<component | ||
@callback="callback" | ||
:is="this.getWidget()" | ||
v-bind:field="field" | ||
v-bind:readonly="readonly" | ||
></component> | ||
`, | ||
props: ['field', 'widget', 'readonly'], | ||
components: components, | ||
@@ -123,3 +132,3 @@ methods: { | ||
if (typeof widget === 'function') { | ||
if(widget.name === 'VueWidgetProxy') { | ||
if (widget.name === 'VueWidgetProxy') { | ||
return widget.getWidgetName() | ||
@@ -149,4 +158,6 @@ } | ||
if (this.field.options.hasOwnProperty('hidden')) { | ||
if(this.field.options.hidden) { | ||
return resolveWidget(Mutt.config.getWidget('hidden')) | ||
if (this.field.options.hidden) { | ||
return resolveWidget( | ||
Mutt.config.getWidget('hidden') | ||
) | ||
} | ||
@@ -159,11 +170,11 @@ } | ||
/** | ||
* In order to pass events back to the parent component, we | ||
* provide a single generic options variable so you can get | ||
* everything with $event template var. | ||
*/ | ||
/* | ||
In order to pass events back to the parent component, we | ||
provide a single generic options variable so you can get | ||
everything with $event template var. | ||
*/ | ||
callback(options) { | ||
this.$emit('callback', options) | ||
} | ||
} | ||
}, | ||
}, | ||
}) | ||
@@ -170,0 +181,0 @@ |
@@ -20,8 +20,8 @@ /** | ||
type: Object, | ||
required: true | ||
required: true, | ||
}, | ||
readonly: { | ||
type: Boolean, | ||
default: false | ||
} | ||
default: false, | ||
}, | ||
} | ||
@@ -32,3 +32,3 @@ | ||
errors: null, | ||
value: null | ||
value: null, | ||
} | ||
@@ -44,3 +44,3 @@ } | ||
*/ | ||
if(this.field.options.hasOwnProperty('readonly')) { | ||
if (this.field.options.hasOwnProperty('readonly')) { | ||
return this.field.options.readonly | ||
@@ -54,3 +54,3 @@ } | ||
return (this.errors && this.errors.length > 0) | ||
} | ||
}, | ||
} | ||
@@ -68,3 +68,3 @@ | ||
getFieldClass() { | ||
if(this.field.attribs.hasOwnProperty('class')) { | ||
if (this.field.attribs.hasOwnProperty('class')) { | ||
return `mutt-field ${this.field.attribs.class}` | ||
@@ -75,9 +75,20 @@ } | ||
getFieldWrapperClass() { return 'mutt-field-wrapper' }, | ||
getErrorClass() { return 'mutt-error' }, | ||
getErrorWrapperClass() { return 'mutt-error-wrapper' }, | ||
getFieldId() { return this.field.name }, | ||
getFieldWrapperClass() { | ||
return 'mutt-field-wrapper' | ||
}, | ||
getErrorClass() { | ||
return 'mutt-error' | ||
}, | ||
getErrorWrapperClass() { | ||
return 'mutt-error-wrapper' | ||
}, | ||
getFieldId() { | ||
return this.field.name | ||
}, | ||
refreshErrorState(errors) { | ||
if(errors.length > 0) { | ||
if (errors.length > 0) { | ||
this.errors = errors | ||
@@ -88,3 +99,3 @@ } | ||
submitCallback() { | ||
if(this.field.validate()) { | ||
if (this.field.validate()) { | ||
this.$emit('callback', { | ||
@@ -94,3 +105,3 @@ key: this.field.name, | ||
action: 'submit', | ||
validated: true | ||
validated: true, | ||
}) | ||
@@ -102,6 +113,6 @@ } else { | ||
action: 'submit', | ||
validated: false | ||
validated: false, | ||
}) | ||
} | ||
} | ||
}, | ||
} | ||
@@ -118,3 +129,3 @@ | ||
HelpWidget, | ||
ReadonlyWidget | ||
ReadonlyWidget, | ||
}, | ||
@@ -125,4 +136,3 @@ created() { | ||
this.field.widget = this | ||
} | ||
}, | ||
} | ||
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
83169
481
19