/*! * @form-create/core v2.5.27 * (c) 2018-2022 xaboy * Github https://github.com/xaboy/form-create * Released under the MIT License. */ import Vue from"vue";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1?[]:[e]}var NAME="FormCreate",getRuleInject=function e(t,n){if(t&&t!==n)return t.formCreateInject?t.formCreateInject:t.$parent?e(t.$parent,n):void 0};function $FormCreate(e){return{name:NAME,componentName:NAME,model:{prop:"api"},provide:function(){return{$pfc:this}},inject:{$pfc:{default:null}},props:{rule:{type:Array,required:!0},option:{type:Object,default:function(){return{}}},extendOption:Boolean,value:Object,api:Object,name:String,subForm:{type:Boolean,default:!0},inFor:Boolean},data:function(){return{formData:void 0,destroyed:!1,validate:{},$f:void 0,isShow:!0,unique:1,renderRule:_toConsumableArray(this.rule||[]),ctxInject:{},updateValue:JSON.stringify(this.value||{}),isMore:!!this.inFor}},render:function(){return this.formCreate.render()},methods:{_refresh:function(){++this.unique},_renderRule:function(){this.renderRule=_toConsumableArray(this.rule||[])},_updateValue:function(e){this.destroyed||(this.updateValue=JSON.stringify(e),this.$emit("update:value",e))}},watch:{value:{handler:function(e){JSON.stringify(e||{})!==this.updateValue&&(this.$f.config.forceCoverValue?this.$f.coverValue(e||{}):this.$f.setValue(e||{}))},deep:!0},option:{handler:function(e){this.formCreate.initOptions(e),this.$f.refresh()},deep:!0},rule:function(e){var t=this;e.length===this.renderRule.length&&e.every(function(e){return t.renderRule.indexOf(e)>-1})||(this.formCreate.$handle.reloadRule(e),this._renderRule())}},beforeCreate:function(){var t=this,n=this.$options.propsData,r=n.rule,i=n.option;this.formCreate=new e(this,r,i),Object.keys(this.formCreate.prop).forEach(function(e){extend(t.$options[e],t.formCreate.prop[e])}),this.$emit("beforeCreate",this.formCreate.api())},created:function(){var e=this,t=this,n=this.formCreate.api(),r=function(){var e=getRuleInject(t,t.$pfc);if(e)if(t.isMore){var r=toArray(e.getSubForm()),i=r.indexOf(n);i>-1&&r.splice(i,1)}else e.subForm()};t.$on("hook:beforeDestroy",function(){r()}),this.$watch(function(){return e.subForm},function(e){e?function(){if(t.$pfc){var e,r=getRuleInject(t,t.$pfc);r&&(t.isMore?(e=toArray(r.getSubForm())).push(n):e=n,r.subForm(e))}}():r()},{immediate:!0})}}}var is={type:function(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"},Undef:function(e){return null==e},Element:function(e){return"object"===_typeof(e)&&null!==e&&1===e.nodeType&&!is.Object(e)},trueArray:function(e){return Array.isArray(e)&&e.length>0},Function:function(e){var t=this.getType(e);return"Function"===t||"AsyncFunction"===t},getType:function(e){var t=Object.prototype.toString.call(e);return/^\[object (.*)\]$/.exec(t)[1]},empty:function(e){return null==e||(!(!Array.isArray(e)||!Array.isArray(e)||e.length)||"string"==typeof e&&!e)}};function hasProperty(e,t){return{}.hasOwnProperty.call(e,t)}["Date","Object","String","Boolean","Array","Number"].forEach(function(e){is[e]=function(t){return is.type(t,e)}});var normalMerge=["attrs","props","domProps","scopedSlots"],toArrayMerge=["class","style","directives"],functionalMerge=["on","nativeOn"],mergeProps=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=[].concat(normalMerge,_toConsumableArray(r.normal||[])),o=[].concat(toArrayMerge,_toConsumableArray(r.array||[])),a=[].concat(functionalMerge,_toConsumableArray(r.functional||[])),u=r.props||[];return t.reduce(function(t,n){for(var r in n)if(t[r])if(u.indexOf(r)>-1)t[r]=e([n[r]],t[r]);else if(i.indexOf(r)>-1)t[r]=_objectSpread2(_objectSpread2({},t[r]),n[r]);else if(o.indexOf(r)>-1){var c=t[r]instanceof Array?t[r]:[t[r]],s=n[r]instanceof Array?n[r]:[n[r]];t[r]=[].concat(_toConsumableArray(c),_toConsumableArray(s))}else if(a.indexOf(r)>-1)for(var f in n[r])if(t[r][f]){var l=t[r][f]instanceof Array?t[r][f]:[t[r][f]],d=n[r][f]instanceof Array?n[r][f]:[n[r][f]];t[r][f]=[].concat(_toConsumableArray(l),_toConsumableArray(d))}else t[r][f]=n[r][f];else if("hook"===r)for(var p in n[r])t[r][p]?t[r][p]=mergeFn(t[r][p],n[r][p]):t[r][p]=n[r][p];else t[r]=n[r];else i.indexOf(r)>-1||a.indexOf(r)>-1||u.indexOf(r)>-1?t[r]=_objectSpread2({},n[r]):o.indexOf(r)>-1?t[r]=n[r]instanceof Array?_toConsumableArray(n[r]):"object"===_typeof(n[r])?_objectSpread2({},n[r]):n[r]:t[r]=n[r];return t},n)},mergeFn=function(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}},keyAttrs=["type","slot","emitPrefix","value","name","native","hidden","display","inject","options","emit","nativeEmit","link","prefix","suffix","update","sync","optionsTo","key","preview","component","cache"],arrayAttrs=["validate","children","control"],normalAttrs=["effect","deep"];function attrs(){return[].concat(keyAttrs,_toConsumableArray(normalMerge),_toConsumableArray(toArrayMerge),_toConsumableArray(functionalMerge),arrayAttrs,normalAttrs)}function format(e,t,n){return"[form-create ".concat(e,"]: ").concat(t)+(n?"\n\nrule: "+JSON.stringify(n.getRule?n.getRule():n):"")}function tip(e,t){console.warn(format("tip",e,t))}function err(e,t){console.error(format("err",e,t))}function logError(e){err(e.toString()),console.error(e)}function deepExtend(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=!1;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=t[i];if((r=Array.isArray(o))||is.Object(o)){var a=void 0===e[i];if(r)r=!1,a&&$set(e,i,[]);else if(o._clone&&void 0!==n){if(!n){$set(e,i,o._clone());continue}o=o.getRule(),a&&$set(e,i,{})}else a&&$set(e,i,{});e[i]=deepExtend(e[i],o,n)}else $set(e,i,o),is.Undef(o)||(is.Undef(o.__json)||(e[i].__json=o.__json),is.Undef(o.__origin)||(e[i].__origin=o.__origin))}return void 0!==n&&Array.isArray(e)?e.filter(function(e){return!e||!e.__ctrl}):e}function deepCopy(e){return deepExtend({},{value:e}).value}var PREFIX="[[FORM-CREATE-PREFIX-",SUFFIX="-FORM-CREATE-SUFFIX]]",$T="$FN:",$TX="$FNX:",FUNCTION="function";function toJson(e,t){return JSON.stringify(deepExtend([],e,!0),function(e,t){if(!t||!0!==t._isVue){if(_typeof(t)!==FUNCTION)return t;if(t.__json)return t.__json;if(t.__origin&&(t=t.__origin),!t.__emit)return PREFIX+t+SUFFIX}},t)}function makeFn(fn){return eval("("+FUNCTION+"(){return "+fn+" })()")}function parseFn(e,t){if(e&&is.String(e)&&e.length>4){var n=e.trim(),r=!1;try{if(n.indexOf(SUFFIX)>0&&0===n.indexOf(PREFIX))n=n.replace(SUFFIX,"").replace(PREFIX,""),r=!0;else if(0===n.indexOf($T))n=n.replace($T,""),r=!0;else{if(0===n.indexOf($TX))return(n=makeFn("function($inject){"+n.replace($TX,"")+"}")).__json=e,n.__inject=!0,n;t||0!==n.indexOf(FUNCTION)||n===FUNCTION||(r=!0)}if(!r)return e;var i=makeFn(-1===n.indexOf(FUNCTION)&&0!==n.indexOf("(")?FUNCTION+" "+n:n);return i.__json=e,i}catch(e){return void err("解析失败:".concat(n,"\n\nerr: ").concat(e))}}return e}function parseJson(e,t){return JSON.parse(e,function(e,n){return is.Undef(n)||!n.indexOf?n:parseFn(n,t)})}function enumerable(e,t){return{value:e,enumerable:!1,configurable:!1,writable:!!t}}function copyRule(e){return copyRules([e])[0]}function copyRules(e,t){return deepExtend([],_toConsumableArray(e),t||!1)}function mergeRule(e,t){return mergeProps(Array.isArray(t)?t:[t],e,{array:arrayAttrs,normal:normalAttrs}),e}function getRule(e){var t=is.Function(e.getRule)?e.getRule():e;return t.type||(t.type="input"),t}function mergeGlobal(e,t){return e?(Object.keys(t||{}).forEach(function(n){t[n]&&(e[n]=mergeRule(e[n]||{},t[n]))}),e):t}function funcProxy(e,t){Object.defineProperties(e,Object.keys(t).reduce(function(e,n){return e[n]={get:function(){return t[n]()}},e},{}))}function byCtx(e){return e.__fc__||(e.__origin__?e.__origin__.__fc__:null)}function invoke(e,t){try{t=e()}catch(e){logError(e)}return t}function baseRule(){return{props:{},on:{},options:[],children:[],hidden:!1,display:!0,value:void 0}}function creatorFactory(e,t){return function(n,r,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=new Creator(e,n,r,i,o);return t&&(is.Function(t)?t(a):a.props(t)),a}}function Creator(e,t,n,r,i){this._data=extend(baseRule(),{type:e,title:t,field:n,value:r,props:i||{}}),this.event=this.on}function appendProto(e){e.forEach(function(e){Creator.prototype[e]=function(t){return mergeRule(this._data,_defineProperty({},e,arguments.length<2?t:_defineProperty({},t,arguments[1]))),this}})}extend(Creator.prototype,{getRule:function(){return this._data},setProp:function(e,t){return $set(this._data,e,t),this},_clone:function(){var e=new this.constructor;return e._data=copyRule(this._data),e}}),appendProto(attrs());var commonMaker=creatorFactory("");function create(e,t,n){var r=commonMaker("",t);return r._data.type=e,r._data.title=n,r}function createTmp(e,t,n,r){var i=commonMaker("",n);return i._data.type="template",i._data.template=e,i._data.title=r,i._data.vm=t,i}function makerFactory(){return{create:create,createTmp:createTmp,template:createTmp,factory:creatorFactory}}function copy(e){return deepCopy(e)}function Api(e){function t(t){return is.Undef(t)?t=e.fields():Array.isArray(t)||(t=[t]),t}function n(n,r,i){t(n).forEach(function(t){e.getCtxs(t).forEach(function(t){$set(t.rule,r,i),e.$render.clearCache(t)})})}function r(){var t=e.subForm;return Object.keys(t).reduce(function(e,n){var r=t[n];return r?(Array.isArray(r)?e.push.apply(e,_toConsumableArray(r)):e.push(r),e):e},[])}var i={get config(){return e.options},get options(){return e.options},get form(){return e.form},get rule(){return e.rules},get parent(){return e.vm.$pfc&&e.vm.$pfc.$f},get children(){return r()},formData:function(n){return t(n).reduce(function(t,n){var r=e.getFieldCtx(n);return r?(t[r.field]=copy(r.rule.value),t):t},e.options.appendValue?copy(e.appendData):{})},getValue:function(t){var n=e.getFieldCtx(t);if(n)return copy(n.rule.value)},coverValue:function(t){var n=_objectSpread2({},t||{});e.deferSyncValue(function(){i.fields().forEach(function(t){var r=e.fieldCtx[t];if(r){var i=hasProperty(n,t);r.forEach(function(e){e.rule.value=i?n[t]:void 0}),delete n[t]}}),extend(e.appendData,n)})},setValue:function(t){var n=t;arguments.length>=2&&(n=_defineProperty({},t,arguments[1])),e.deferSyncValue(function(){Object.keys(n).forEach(function(t){var r=e.fieldCtx[t];if(!r)return e.appendData[t]=n[t];r.forEach(function(e){e.rule.value=n[t]})})})},removeField:function(t){var n=e.getCtx(t);return e.deferSyncValue(function(){e.getCtxs(t).forEach(function(e){e.rm()})},!0),n?n.origin:void 0},removeRule:function(e){var t=e&&byCtx(e);if(t)return t.rm(),t.origin},destroy:function(){e.vm.$el.parentNode&&e.vm.$el.parentNode.removeChild(e.vm.$el),e.vm.$destroy()},fields:function(){return e.fields()},append:function(t,n,r){var i,o=e.sort.length-1,a=e.getCtx(n);a?r?(i=a.rule.children,o=a.rule.children.length-1):(o=a.root.indexOf(a.origin),i=a.root):i=e.rules,i.splice(o+1,0,t)},prepend:function(t,n,r){var i,o=0,a=e.getCtx(n);a?r?i=a.rule.children:(o=a.root.indexOf(a.origin),i=a.root):i=e.rules,i.splice(o,0,t)},hidden:function(t,r){n(r,"hidden",!!t),e.refresh()},hiddenStatus:function(t){var n=e.getCtx(t);if(n)return!!n.rule.hidden},display:function(t,r){n(r,"display",!!t),e.refresh()},displayStatus:function(t){var n=e.getCtx(t);if(n)return!!n.rule.display},disabled:function(n,r){t(r).forEach(function(t){e.getCtxs(t).forEach(function(e){e.rule.props&&$set(e.rule.props,"disabled",!!n)})}),e.refresh()},all:function(t){return Object.keys(e.ctxs).map(function(n){var r=e.ctxs[n];return t?r.origin:r.rule})},model:function(t){return e.fields().reduce(function(n,r){var i=e.fieldCtx[r][0];return n[r]=t?i.origin:i.rule,n},{})},component:function(t){return Object.keys(e.nameCtx).reduce(function(n,r){var i=e.nameCtx[r].map(function(e){return t?e.origin:e.rule});return n[r]=1===i.length?i[0]:i,n},{})},bind:function(){return i.form},reload:function(t){e.reloadRule(t)},updateOptions:function(t){e.fc.updateOptions(t),i.refresh()},onSubmit:function(e){i.updateOptions({onSubmit:e})},sync:function(t){if(Array.isArray(t))t.forEach(function(e){return i.sync(e)});else{var n=is.Object(t)?byCtx(t):e.getCtxs(t);n&&((n=Array.isArray(n)?n:[n]).forEach(function(t){if(!t.deleted){var n=e.subForm[t.id];n&&(Array.isArray(n)?n.forEach(function(e){e.refresh()}):n&&n.refresh()),e.$render.clearCache(t)}}),e.refresh())}},refresh:function(){r().forEach(function(e){e.refresh()}),e.$render.clearCacheAll(),e.refresh()},refreshOptions:function(){e.$manager.updateOptions(e.options),i.refresh()},hideForm:function(t){$set(e.vm,"isShow",!t)},changeStatus:function(){return e.changeStatus},clearChangeStatus:function(){e.changeStatus=!1},updateRule:function(t,n){e.getCtxs(t).forEach(function(e){extend(e.rule,n)})},updateRules:function(e){Object.keys(e).forEach(function(t){i.updateRule(t,e[t])})},mergeRule:function(t,n){e.getCtxs(t).forEach(function(e){mergeRule(e.rule,n)})},mergeRules:function(e){Object.keys(e).forEach(function(t){i.mergeRule(t,e[t])})},getRule:function(t,n){var r=e.getCtx(t);if(r)return n?r.origin:r.rule},setEffect:function(t,n,r){var i=e.getCtx(t);i&&n&&("$"===n[0]&&(n=n.substr(1)),hasProperty(i.rule,"$"+n)&&$set(i.rule,"$"+n,r),hasProperty(i.rule,"effect")||(i.rule.effect={}),$set(i.rule.effect,n,r))},clearEffectData:function(t,n){var r=e.getCtx(t);r&&(n&&"$"===n[0]&&(n=n.substr(1)),r.clearEffectData(n),i.sync(t))},updateValidate:function(e,t,r){r?i.mergeRule(e,{validate:t}):n(e,"validate",t)},updateValidates:function(e,t){Object.keys(e).forEach(function(n){i.updateValidate(n,e[n],t)})},refreshValidate:function(){e.vm.validate={},i.refresh()},resetFields:function(n){t(n).forEach(function(t){e.getCtxs(t).forEach(function(t){e.$render.clearCache(t),t.rule.value=copy(t.defaultValue)})})},method:function(e,t){var n=i.el(e);if(!n||!n[t])throw new Error(format("err","".concat(t,"方法不存在")));return function(){return n[t].apply(n,arguments)}},exec:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o2?r-2:0),a=2;a1?r-1:0),o=1;o-1&&(e.$props[t]=i[t])});var a=e.$options.model&&e.$options.model.prop||"value";r.indexOf(a)>-1&&(e.$props[a]=n.value)}},renderTemp:function(e){var t=this;if(!_vue.compile)return tip("当前使用的Vue构建版本不支持compile,无法使用template功能"),[];var n=e.prop,r=e.id,i=e.key;if(!this.tempList[r]){e.el||(e.el=this.makeVm(n),this.vm.$nextTick(function(){return e.parser.mounted(e)}));var o=e.el;e.input&&o.$on(o.$options.model&&o.$options.model.event||"input",function(n){t.onInput(e,n)}),this.tempList[r]={vm:o,template:_vue.compile(n.template)}}var a=this.tempList[r],u=a.vm,c=a.template;this.setTempProps(u,e);var s=c.render.call(u);return is.Undef(s.data)&&(s.data={}),s.key=i,s.data.ref=e.ref,s.data.key=i,s},parseSide:function(e){return is.Object(e)?mergeRule({},e):e},renderSides:function(e,t,n){var r=t[n?"rule":"prop"];return[this.renderRule(this.parseSide(r.prefix)),e,this.renderRule(this.parseSide(r.suffix))]},renderSlot:function(e,t){return e.rule.slot===t?this.renderCtx(e):void 0},renderId:function(e,t){var n=this,r=this.$handle["field"===t?"fieldCtx":"nameCtx"][e];return r?r.map(function(e){return n.renderCtx(e,e.parent)}):void 0},renderCtx:function(e,t){if("hidden"!==e.type){var n=e.rule;if(!this.cache[e.id]||this.cache[e.id].slot!==n.slot){var r,i=!1!==n.cache,o=e.trueType,a=!(is.Undef(n.display)||n.display);if("template"!==o||n.template)if("fcFragment"===o)r=this.renderChildren(e);else{e.initProp(),this.mergeGlobal(e),this.$manager.tidyRule(e),this.deepSet(e),this.setOptions(e),this.ctxProp(e);var u=e.prop;u.preview=!!(hasProperty(u,"preview")?u.preview:this.options.preview),u.props.formCreateInject=this.injectProp(e);var c=u.preview;if(u.hidden)return void this.setCache(e,void 0,t);if("template"===o&&u.template)r=this.renderTemp(e),i=!1;else{var s=[];e.parser.renderChildren?s=e.parser.renderChildren(e):!1!==e.parser.loadChildren&&(s=this.renderChildren(e));var f=this.getTypeSlot(e.type);r=f?f({rule:n,prop:u,preview:c,children:s,api:this.$handle.api,model:u.model||{}}):c?e.parser.preview(s,e):e.parser.render(s,e)}r=this.renderSides(r,e),!e.input&&is.Undef(u.native)||!0===u.native||(r=this.$manager.makeWrap(e,r)),a&&(r=this.display(r)),r=this.item(e,r)}else r=this.renderSides(this.renderChildren(e),e,!0),a&&this.display(r),r=this.item(e,r);return i&&this.setCache(e,r,t),r}return this.getCache(e)}},display:function(e){var t=this;if(Array.isArray(e)){var n=[];return e.forEach(function(e){if(Array.isArray(e))return t.display(e);t.none(e)&&n.push(e)}),n}return this.none(e)},none:function(e){if(e&&e.data)return Array.isArray(e.data.style)?e.data.style.push({display:"none"}):is.String(e.data.style)?e.data.style+=";display:none;":e.data.style=[e.data.style,{display:"none"}],e},item:function(e,t){return this.$h("fcFragment",{slot:e.rule.slot,key:e.key},[t])},injectProp:function(e){var t=this;this.vm.ctxInject[e.id]||$set(this.vm.ctxInject,e.id,{api:this.$handle.api,form:this.fc.create,subForm:function(n){t.$handle.addSubForm(e,n)},getSubForm:function(){return t.$handle.subForm[e.id]},options:[],children:[],prop:{},preview:!1,field:e.field,rule:e.rule,input:e.input});var n,r=this.vm.ctxInject[e.id];return extend(r,{preview:e.prop.preview,options:e.prop.options,children:e.rule.children,prop:(n=_objectSpread2({},e.prop),n.on=n.on?_objectSpread2({},n.on):{},delete n.model,n)}),r},ctxProp:function(e,t){var n=this,r=e.ref,i=e.key,o=e.rule;this.$manager.mergeProp(e,t),e.parser.mergeProp(e,t);var a=[{ref:r,key:o.key||"".concat(i,"fc"),slot:void 0,on:{"hook:mounted":function(){n.onMounted(e)},"fc.sub-form":function(t){n.$handle.addSubForm(e,t)}}}];return!t&&e.input&&(e.prop.model={value:this.$handle.getFormData(e),callback:function(t){n.onInput(e,t)},expression:"formData.".concat(e.id)}),mergeProps(a,e.prop),e.prop},onMounted:function(e){e.el=this.vm.$refs[e.ref],e.el&&((e.el.$el||e.el).__rule__=e.rule),e.parser.mounted(e),this.$handle.effect(e,"mounted")},onInput:function(e,t){this.$handle.onInput(e,t)},renderChildren:function(e){var t=this,n=e.rule.children,r=this.orgChildren[e.id],i=function(e){return!is.String(e)&&e.__fc__&&!t.$handle.ctxs[e.__fc__.id]};return!is.trueArray(n)&&r?(this.$handle.deferSyncValue(function(){r.forEach(function(e){e&&i(e)&&t.$handle.rmCtx(e.__fc__)})}),this.orgChildren[e.id]=[],[]):(r&&this.$handle.deferSyncValue(function(){r.forEach(function(e){e&&-1===n.indexOf(e)&&i(e)&&t.$handle.rmCtx(e.__fc__)})}),n.map(function(r){if(r)return is.String(r)?r:r.__fc__?t.renderCtx(r.__fc__,e):void(r.type&&t.vm.$nextTick(function(){t.$handle.loadChildren(n,e),t.$handle.refresh()}))}))},defaultRender:function(e,t){var n=e.prop;return n.component?this.vNode.makeComponent(n.component,n,t):this.vNode[e.type]?this.vNode[e.type](n,t):this.vNode[e.originType]?this.vNode[e.originType](n,t):this.vNode.make(lower(e.originType),n,t)},renderRule:function(e,t,n){var r=this;if(e){if(is.String(e))return e;var i;if(n)i=e.type;else if(i=e.is,e.type){i=toCase(e.type);var o=this.vNode.aliasMap[i];o&&(i=toCase(o))}if(i){var a=[[t]];return is.trueArray(e.children)&&a.push(e.children.map(function(e){return r.renderRule(e)})),this.$h(i,_objectSpread2({},e),a)}}}})}function Render(e){extend(this,{$handle:e,fc:e.fc,vm:e.vm,$manager:e.$manager,vNode:new e.fc.CreateNode(e.vm)}),funcProxy(this,{options:function(){return e.options},sort:function(){return e.sort}}),this.initCache(),this.initRender()}function useInject(e){extend(e.prototype,{parseInjectEvent:function(e,t){var n=e.inject||this.options.injectEvent;return this.parseEventLst(e,t,n)},parseEventLst:function(e,t,n,r){var i=this;return Object.keys(t).forEach(function(o){var a=i.parseEvent(e,t[o],n,r);a&&(t[o]=a)}),t},parseEvent:function(e,t,n,r){if(is.Function(t)&&(!1!==n&&!is.Undef(n)||t.__inject))return this.inject(e,t,n);if(!r&&Array.isArray(t)&&t[0]&&(is.String(t[0])||is.Function(t[0])))return this.parseEventLst(e,t,n,!0);if(is.String(t)){var i=parseFn(t);if(i&&t!==i)return i.__inject?this.parseEvent(e,i,n,!0):i}},parseEmit:function(e,t){var n=this,r={},i=e.rule,o=i.emitPrefix,a=i.field,u=i.name,c=i.inject,s=i[t?"emit":"nativeEmit"]||[];if(is.trueArray(s)){var f=o||a||u;f&&(t||(f="native-".concat(f)),s.forEach(function(e){if(e){var t;is.Object(e)&&(t=e.inject,e=e.name);var o=toLine("".concat(f,"-").concat(e)),a=function(){for(var e,t,r=arguments.length,i=new Array(r),a=0;a0?this.$render.render():(this.vm.unique=1,[])}})}function bind(e){Object.defineProperties(e.origin,{__fc__:enumerable(e,!0)})}function RuleContext(e,t,n){var r=uniqueId();extend(this,{id:r,ref:r,wrapRef:r+"fi",rule:t,origin:t.__origin__||t,name:t.name,watch:[],linkOn:[],root:[],ctrlRule:[],parent:null,cacheConfig:null,prop:_objectSpread2({},t),computed:{},payload:{},input:!!t.field,el:void 0,defaultValue:t.field?deepCopy(n):void 0,field:t.field||void 0}),this.updateType(),this.updateKey(),bind(this),this.update(e,!0)}function useLoader(e){extend(e.prototype,{nextRefresh:function(e){var t=this,n=this.loadedId;this.vm.$nextTick(function(){n===t.loadedId&&(e?e():t.refresh())})},parseRule:function(e){var t=this,n=getRule(e);return Object.defineProperties(n,{__origin__:enumerable(e,!0)}),fullRule(n),this.appendValue(n),n.options=Array.isArray(n.options)?n.options:[],[n,n.prefix,n.suffix].forEach(function(e){e&&t.loadFn(e,n)}),this.loadCtrl(n),n.update&&(n.update=parseFn(n.update)),n},loadFn:function(e,t){var n=this;["on","props","nativeOn","deep"].forEach(function(r){e[r]&&n.parseInjectEvent(t,e[r])})},loadCtrl:function(e){e.control&&e.control.forEach(function(e){e.handle&&(e.handle=parseFn(e.handle))})},syncProp:function(e){var t=this,n=e.rule;is.trueArray(n.sync)&&mergeProps([{on:n.sync.reduce(function(e,r){return e["update:".concat(r)]=function(e){n.props[r]=e,t.vm.$emit("sync",r,e,n,t.fapi)},e},{})}],e.computed)},loadRule:function(){var e=this;this.cycleLoad=!1,this.loading=!0,this.pageEnd&&this.bus.$emit("load-start"),this.deferSyncValue(function(){if(e._loadRule(e.rules),e.loading=!1,e.cycleLoad&&e.pageEnd)return e.loadRule();e.pageEnd&&e.bus.$emit("load-end"),e.vm._renderRule(),e.$render.initOrgChildren(),e.syncForm()})},loadChildren:function(e,t){if(this.cycleLoad=!1,this.loading=!0,this.bus.$emit("load-start"),this._loadRule(e,t),this.loading=!1,this.cycleLoad)return this.loadRule();this.bus.$emit("load-end"),this.syncForm(),this.$render.clearCache(t)},_loadRule:function(e,t){var n=this,r=function(e,t){is.trueArray(e)&&n._loadRule(e,t)};e.map(function(i,o){if((!t||!is.String(i)&&!is.Undef(i))&&(n.pageEnd||t||!(o>=n.first))){if(i.__fc__&&i.__fc__.root===e&&n.ctxs[i.__fc__.id])return r(i.__fc__.rule.children,i.__fc__),i.__fc__;var a,u=getRule(i),c=function(){return!(!u.field||!n.fieldCtx[u.field]||n.fieldCtx[u.field][0]===i.__fc__)};n.ruleEffect(u,"init",{repeat:c()}),c()&&n.vm.$emit("repeat-field",i,n.api);var s=!1,f=!!i.__fc__,l=u.value;if(f){l=(a=i.__fc__).defaultValue;var d=!a.check(n);if(a.deleted){if(d){if(isCtrl(a))return;a.update(n)}}else if(d){if(isCtrl(a))return;e[o]=i=i._clone?i._clone():copyRule(i),a=null,s=!0}}if(a)a.originType!==a.rule.type&&(a.updateType(),n.bindParser(a)),n.appendValue(a.rule);else{var p=n.parseRule(i);a=new RuleContext(n,p,f?l:p.value),n.bindParser(a)}if([!1,!0].forEach(function(e){return n.parseEmit(a,e)}),n.syncProp(a),a.parent=t||null,a.root=e,n.setCtx(a),!s&&!f&&n.effect(a,"load"),!1===a.parser.loadChildren||r(a.rule.children,a),!t){var h=function t(r){var i=e[r-1];if(!i||!i.__fc__)return r>0?t(r-1):-1;var o=n.sort.indexOf(i.__fc__.id);return o>-1?o:t(r-1)}(o);h>-1||!o?n.sort.splice(h+1,0,a.id):n.sort.push(a.id)}var m=a.rule;return a.updated||(a.updated=!0,is.Function(m.update)&&n.bus.$once("load-end",function(){n.refreshUpdate(a,m.value)}),n.effect(a,"loaded")),a.input&&Object.defineProperty(m,"value",n.valueHandle(a)),n.refreshControl(a)&&(n.cycleLoad=!0),a}})},refreshControl:function(e){return e.input&&e.rule.control&&this.useCtrl(e)},useCtrl:function(e){var t=this,n=getCtrl(e),r=[],i=this.api;if(!n.length)return!1;for(var o=function(t){var o=n[t],a=o.handle||function(e){return e===o.value};if(!is.trueArray(o.rule))return"continue";var u=_objectSpread2(_objectSpread2({},o),{},{valid:invoke(function(){return a(e.rule.value,i)}),ctrl:findCtrl(e,o.rule),isHidden:is.String(o.rule[0])});if(u.valid&&u.ctrl||!u.valid&&!u.ctrl&&!u.isHidden)return"continue";r.push(u)},a=0;a-1&&(e.root.splice(t,1),e.$handle&&e.$handle.refresh())};this.deleted?t():this.$handle.noWatch(function(){e.$handle.deferSyncValue(function(){e.rmCtrl(),t(),e.$handle.rmCtx(e),extend(e,{root:[]})},e.input)})},update:function(e,t){extend(this,{deleted:!1,$handle:e,$render:e.$render,$api:e.api,vm:e.vm,trueType:e.getType(this.originType),vNode:e.$render.vNode,updated:!1}),!t&&this.unwatch(),this.watchTo(),this.link()}});var BaseParser={init:function(e){},toFormValue:function(e,t){return e},toValue:function(e,t){return e},mounted:function(e){},render:function(e,t){return t.$render.defaultRender(t,e)},preview:function(e,t){return this.render(e,t)},mergeProp:function(e){}},noneKey=["field","value","vm","template","name","config","control","inject","sync","payload","optionsTo","update","component","cache"];function useContext(e){extend(e.prototype,{getCtx:function(e){return this.getFieldCtx(e)||this.getNameCtx(e)[0]||this.ctxs[e]},getCtxs:function(e){return this.fieldCtx[e]||this.nameCtx[e]||(this.ctxs[e]?[this.ctxs[e]]:[])},setIdCtx:function(e,t,n){var r="".concat(n,"Ctx");this[r][t]?this[r][t].push(e):this[r][t]=[e]},rmIdCtx:function(e,t,n){var r="".concat(n,"Ctx"),i=this[r][t];if(!i)return!1;var o=i.splice(i.indexOf(e)>>>0,1).length>0;return i.length||delete this[r][t],o},getFieldCtx:function(e){return(this.fieldCtx[e]||[])[0]},getNameCtx:function(e){return this.nameCtx[e]||[]},setCtx:function(e){var t=e.id,n=e.field,r=e.name,i=e.rule;this.ctxs[t]=e,r&&this.setIdCtx(e,r,"name"),e.input&&(this.setIdCtx(e,n,"field"),this.setFormData(e,e.parser.toFormValue(i.value,e)),this.isMounted&&!this.reloading&&this.vm.$emit("change",e.field,i.value,e.origin,this.api))},getParser:function(e){var t=this.fc.parsers;return t[e.originType]||t[toCase(e.type)]||t[e.trueType]||BaseParser},bindParser:function(e){e.setParser(this.getParser(e))},getType:function(e){var t=this.fc.CreateNode.aliasMap,n=t[e]||t[toCase(e)]||e;return toCase(n)},noWatch:function(e){this.noWatchFn||(this.noWatchFn=e),invoke(e),this.noWatchFn===e&&(this.noWatchFn=null)},watchCtx:function(e){var t=this,n=this.vm;Object.keys(e.rule).filter(function(e){return"_"!==e[0]&&"$"!==e[0]&&-1===noneKey.indexOf(e)}).forEach(function(r){var i="children"===r;e.watch.push(n.$watch(function(){return e.rule[r]},function(n,o){if(!(t.loading||t.noWatchFn||t.reloading)){if(i&&!1===e.parser.loadChildren)return t.$render.clearCache(e),void t.nextRefresh();if(t.watching=!0,"link"!==r){if(["props","on","nativeOn","deep"].indexOf(r)>-1)t.parseInjectEvent(e.rule,n||{}),"props"===r&&e.input&&t.setFormData(e,e.parser.toFormValue(e.rule.value,e));else if(["emit","nativeEmit"].indexOf(r)>-1)t.parseEmit(e,"emit"===r);else if(["prefix","suffix"].indexOf(r)>-1)n&&t.loadFn(n,e.rule);else if("type"===r)e.updateType(),t.bindParser(e);else if("children"===r){var a=is.trueArray(n);t.deferSyncValue(function(){n!==o&&(t.rmSub(o,e),t.$render.initOrgChildren()),a&&t.loadChildren(n,e),t.vm.$emit("update",t.api)})}t.$render.clearCache(e),t.refresh(),t.watching=!1}else e.link()}},{deep:!i,sync:i}))}),this.watchEffect(e)},rmSub:function(e,t){var n=this;is.trueArray(e)&&e.forEach(function(e){e&&e.__fc__&&e.__fc__.parent===t&&n.rmCtx(e.__fc__)})},rmCtx:function(e){var t=this;if(!e.deleted){var n=e.id,r=e.field,i=e.input,o=e.name;e.input&&Object.defineProperty(e.rule,"value",{value:e.rule.value,writable:!0}),$del(this.ctxs,n),$del(this.$render.tempList,n),$del(this.$render.orgChildren,n),$del(this.vm.ctxInject,n),$del(this.formData,n),$del(this.subForm,n),$del(e,"cacheValue"),i&&this.rmIdCtx(e,r,"field"),o&&this.rmIdCtx(e,o,"name"),i&&!hasProperty(this.fieldCtx,r)&&$del(this.form,r),this.deferSyncValue(function(){t.reloading||(!1!==e.parser.loadChildren&&is.trueArray(e.rule.children)&&e.rule.children.forEach(function(e){return e.__fc__&&t.rmCtx(e.__fc__)}),e.root===t.rules&&t.vm._renderRule())},i);var a=this.sort.indexOf(n);return a>-1&&this.sort.splice(a,1),this.$render.clearCache(e),e.delete(),this.effect(e,"deleted"),i&&!this.fieldCtx[r]&&this.vm.$emit("removeField",r,e.rule,this.api),e.rule.__ctrl||this.vm.$emit("removeRule",e.rule,this.api),e}}})}function useLifecycle(e){extend(e.prototype,{mounted:function(){var e=this,t=function(){e.isMounted=!0,e.lifecycle("mounted")};this.pageEnd?t():this.bus.$once("page-end",t)},lifecycle:function(e){var t=this,n=this.options[e];is.Function(n)&&invoke(function(){return n(t.api)}),this.vm.$emit(e,this.api)}})}function useEffect(e){extend(e.prototype,{useProvider:function(){var e=this,t=this.fc.providers;Object.keys(t).forEach(function(n){var r=t[n];is.Function(r)&&(r=r(e.fc)),r._c=getComponent(r),e.onEffect(r),e.providers[n]=r})},onEffect:function(e){var t=this,n=[];(e._c||["*"]).forEach(function(r){var i="*"===r?"*":t.getType(r);n.indexOf(i)>-1||(n.push(i),t.bus.$on("p:".concat(e.name,":").concat(i,":").concat(e.input?1:0),function(t,n){e[t]&&e[t].apply(e,_toConsumableArray(n))}))}),e._used=n},watchEffect:function(e){var t=this,n=this.vm,r={};Object.keys(e.rule.effect||{}).forEach(function(t){r[t]=function(){return e.rule.effect[t]}}),Object.keys(e.rule).forEach(function(t){"$"===t[0]&&(r[t.substr(1)]=function(){return e.rule[t]})}),Object.keys(r||{}).forEach(function(i){e.watch.push(n.$watch(r[i],function(n){t.effect(e,"watch",_defineProperty({},i,n))},{deep:!0}))})},ruleEffect:function(e,t,n){this.emitEffect({rule:e,input:!!e.field,type:this.getType(e.type)},t,n)},effect:function(e,t,n){this.emitEffect({rule:e.rule,input:e.input,type:e.trueType,ctx:e,custom:n},t)},getEffect:function(e,t){return hasProperty(e,"$"+t)?e["$"+t]:hasProperty(e,"effect")&&hasProperty(e.effect,t)?e.effect[t]:void 0},emitEffect:function(e,t,n){var r=this,i=e.ctx,o=e.rule,a=e.input,u=e.type,c=e.custom;if(u&&"fcFragment"!==u){var s=c||Object.keys(o).reduce(function(e,t){return"$"===t[0]&&(e[t.substr(1)]=o[t]),e},_objectSpread2({},o.effect||{}));Object.keys(s).forEach(function(e){var c=r.providers[e];if(c&&(!c.input||a)){var f;if(c._c){if(!(c._used.indexOf(u)>-1))return;f=u}else f="*";var l=_objectSpread2({value:s[e],getValue:function(){return r.getEffect(o,e)}},n||{});i&&(l.getProp=function(){return i.effectData(e)},l.clearProp=function(){return i.clearEffectData(e)},l.mergeProp=function(e){return mergeProps([e],l.getProp())}),r.bus.$emit("p:".concat(e,":").concat(f,":").concat(c.input?1:0),t,[l,o,r.api])}})}}})}function unique(e){return e.filter(function(e,t,n){return n.indexOf(e,0)===t})}function getComponent(e){var t=e.components;return Array.isArray(t)?unique(t.filter(function(e){return"*"!==e})):!!is.String(t)&&[t]}function Handler(e){var t=this;extend(this,{fc:e,vm:e.vm,watching:!1,loading:!1,reloading:!1,noWatchFn:null,deferSyncFn:null,isMounted:!1,formData:{},subForm:{},form:{},appendData:{},providers:{},cycleLoad:null,loadedId:1,nextTick:null,changeStatus:!1,pageEnd:!0,nextReload:function(){t.lifecycle("reload")}}),funcProxy(this,{options:function(){return e.options},bus:function(){return e.bus}}),this.initData(e.rules),this.$manager=new e.manager(this),this.$render=new Render(this),this.api=e.extendApi(Api(this),this)}function getError(e,t,n){var r="fail to ".concat(e," ").concat(n.status,"'"),i=new Error(r);return i.status=n.status,i.url=e,i}function getBody(e){var t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}function fetch(e){if("undefined"!=typeof XMLHttpRequest){var t,n=new XMLHttpRequest,r=e.action;n.onerror=function(t){e.onError(t)},n.onload=function(){if(n.status<200||n.status>=300)return e.onError(getError(r,e,n),getBody(n));e.onSuccess(getBody(n))},n.open(e.method||"get",r,!0),e.data&&("json"!==(e.dataType||"").toLowerCase()?(t=new FormData,Object.keys(e.data).map(function(n){t.append(n,e.data[n])})):(t=JSON.stringify(e.data),n.setRequestHeader("content-type","application/json"))),e.withCredentials&&"withCredentials"in n&&(n.withCredentials=!0);var i=e.headers||{};Object.keys(i).forEach(function(e){null!==i[e]&&n.setRequestHeader(e,i[e])}),n.send(t)}}extend(Handler.prototype,{initData:function(e){extend(this,{ctxs:{},fieldCtx:{},nameCtx:{},sort:[],rules:e})},init:function(){this.appendData=_objectSpread2(_objectSpread2(_objectSpread2({},this.fc.options.formData||{}),this.vm.value||{}),this.appendData),this.useProvider(),this.usePage(),this.loadRule(),this.$manager.__init(),this.vm.$set(this.vm,"formData",this.formData)}}),useInject(Handler),usePage(Handler),useRender$1(Handler),useLoader(Handler),useInput(Handler),useContext(Handler),useLifecycle(Handler),useEffect(Handler);var NAME$1="fcFragment",fragment={name:NAME$1,functional:!0,props:["vnode"],render:function(e,t){return t.props.vnode?t.props.vnode:t.children}};function parseProp(e){return is.String(e)?{domProps:{innerHTML:e}}:e}function CreateNodeFactory(){var e={};function t(e){e&&this.setVm(e)}return extend(t.prototype,{setVm:function(e){this.vm=e,this.$h=e.$createElement},make:function(e,t,n){return Vue.config.isReservedTag(e)&&t.nativeOn&&delete t.nativeOn,this.makeComponent(e,t,n)},makeComponent:function(e,t,n){var r=this.$h(e,parseProp(t),n||[]);return r.context=this.vm,r},aliasMap:e}),extend(t,{aliasMap:e,alias:function(t,n){e[t]=n},use:function(e){Object.keys(e).forEach(function(n){var r=toLine(n),i=toString(n).toLocaleLowerCase(),o=e[n];[n,r,i].forEach(function(e){t.alias(n,o),t.prototype[e]=function(e,t){return this.make(o,e,t)}})})}}),t}function createManager(e){var t=function(e){_inherits(n,Manager);var t=_createSuper(n);function n(){return _classCallCheck(this,n),t.apply(this,arguments)}return n}();return Object.assign(t.prototype,e),t}function Manager(e){extend(this,{$handle:e,vm:e.vm,options:{},ref:"fcForm",mergeOptionsRule:{normal:["form","row","info","submitBtn","resetBtn"]}}),this.updateKey(),this.init()}extend(Manager.prototype,{__init:function(){var e=this;this.$render=this.$handle.$render,this.$r=function(){var t;return(t=e.$render).renderRule.apply(t,arguments)}},updateKey:function(){this.key=uniqueId()},init:function(){},update:function(){},beforeRender:function(){},form:function(){return this.vm.$refs[this.ref]},mergeOptions:function(e,t){var n=this;return mergeProps(e.map(function(e){return n.tidyOptions(e)}),t,this.mergeOptionsRule)},updateOptions:function(e){this.options=this.mergeOptions([e],this.getDefaultOptions()),this.update()},tidyOptions:function(e){return e},tidyRule:function(e){},mergeProp:function(e){},getDefaultOptions:function(){return{}},render:function(e){}});var fetch$1=function(e){function t(t,n,r){var i=t.value;if(is.Function(i)&&(i=i(n,r)),!(i=function(e){return is.String(e)&&(e={action:e,to:"options"}),e}(i))||!i.action)return!1;i.to||(i.to="options");var o=i.onError,a=function(){if(!t.getValue())return t.clearProp(),r.sync(n),!0},u=function(e){void 0===e?(t.clearProp(),r.sync(n)):deepSet(t.getProp(),i.to,e)};return invoke(function(){return e.create.fetch(_objectSpread2(_objectSpread2({},i),{},{onSuccess:function(e){if(!a()){var t=function(e){return e.data};is.Function(i.parse)&&(t=i.parse),u(t(e,n,r)),r.sync(n)}},onError:function(e){u(void 0),a()||(o||function(e){return err(e.message||"fetch fail "+i.action)})(e,n,r)}}),{inject:t,rule:n,api:r})}),!0}return{name:"fetch",loaded:function(){t.apply(void 0,arguments)},watch:function(e,n,r){t(e,n,r)||(e.clearProp(),r.sync(n))}}},$required={name:"required",load:function(e,t,n){var r=parseVal(e.getValue());if(!1===r.required)e.clearProp();else{var i=_objectSpread2({required:!0,validator:function(e,t,n){is.empty(t)?n(i.message):n()}},r);if(!i.message){var o=t.title||"";i.message=(("object"===_typeof(o)?o.title:o)||"")+"不能为空"}e.getProp().validate=[i]}n.sync(t)},watch:function(){$required.load.apply($required,arguments)}};function parseVal(e){return is.Boolean(e)?{required:e}:is.String(e)?{message:e}:is.Function(e)?{validator:e}:is.Object(e)?e:{}}var $provider={fetch:fetch$1,required:$required},name="html",html={name:name,loadChildren:!1,render:function(e,t){return t.prop.domProps||(t.prop.domProps={}),t.prop.domProps.innerHTML=e,t.vNode.make(t.prop.props.tag||"div",t.prop)},renderChildren:function(e){return Array.isArray(e.rule.children)?e.rule.children.filter(function(e){return is.String(e)}).join(""):""}},_vue="undefined"!=typeof window&&window.Vue?window.Vue:Vue;function _parseProp(e,t){var n;return 2===arguments.length?t=(n=arguments[1])[e]:n=arguments[2],{id:t,prop:n}}function nameProp(){return _parseProp.apply(void 0,["name"].concat(Array.prototype.slice.call(arguments)))}function _getEl(e){return e&&e.el?is.Element(e.el)?e.el:document.querySelector(e.el):window.document.body}function mountForm(e,t){var n=new _vue({data:function(){return{rule:e,option:t||{}}},render:function(e){return e("FormCreate",{ref:"fc",props:this.$data})}});return n.$mount(),n}function exportAttrs(e){var t=e.key||[],n=e.array||[],r=e.normal||[];keyAttrs.push.apply(keyAttrs,_toConsumableArray(t)),arrayAttrs.push.apply(arrayAttrs,_toConsumableArray(n)),normalAttrs.push.apply(normalAttrs,_toConsumableArray(r)),appendProto([].concat(_toConsumableArray(t),_toConsumableArray(n),_toConsumableArray(r)))}var id$1=1,instance={};function FormCreateFactory(e){var t=_defineProperty({},fragment.name,fragment),n={},r={},i=_objectSpread2({},$provider),o=makerFactory(),a={global:{}},u={},c=CreateNodeFactory();function s(e){var t=instance[e];return Array.isArray(t)?_toConsumableArray(t):t}function f(){var e=nameProp.apply(void 0,arguments);e.id&&e.prop&&(r[e.id]=e.prop)}function l(){var e=nameProp.apply(void 0,arguments);e.id&&e.prop&&(i[e.id]=_objectSpread2(_objectSpread2({},e.prop),{},{name:e.id}))}function d(e){c.use(e)}function p(){var e=nameProp.apply(void 0,arguments);if(e.id&&e.prop){var t=toCase(e.id),r=e.prop,i=!0===r.merge?n[t]:void 0;n[t]=_objectSpread2(_objectSpread2({},i||BaseParser),r),o[t]=creatorFactory(t),r.maker&&extend(o,r.maker)}}function h(e,n){var r;if(is.String(e)){if(r=toCase(e),["form-create","formcreate"].indexOf(r)>-1)return m();if(void 0===n)return t[r]}else r=toCase(e.name),n=e;r&&n&&(t[r]=n,n.formCreateParser&&p(r,n.formCreateParser))}function m(){return _vue.extend($FormCreate(b))}function v(){return _vue.extend(fragment)}function y(e,t){return is.Function(e.install)?e.install(g,t):is.Function(e)&&e(g,t),this}function g(e,t,n){var r=mountForm(e,t||{}),i=r.$refs.fc.formCreate;return i.$parent=n,_getEl(i.options).appendChild(r.$el),i.api()}function _(a){var c=_objectSpread2({},e);return a?c.inherit={components:t,parsers:n,directives:r,providers:i,maker:o,data:u}:delete c.inherit,FormCreateFactory(c)}function b(o,a,u){extend(this,{id:id$1++,vm:o,create:g,manager:createManager(e.manager),parsers:n,providers:i,rules:Array.isArray(a)?a:[],name:o.$options.propsData.name,inFor:o.$options.propsData.inFor,prop:{components:t,directives:r},CreateNode:c,bus:new _vue,unwatch:null,options:u||{},extendApi:e.extendApi||function(e){return e}}),this.init(),this.initOptions(this.options),this.name&&(this.inFor?(instance[this.name]||(instance[this.name]=[]),instance[this.name].push(this.api())):instance[this.name]=this.api())}function $(t){extend(t,{version:e.version,ui:e.ui,data:u,maker:o,component:h,directive:f,register:l,$vnode:v,parser:p,use:y,factory:_,componentAlias:d,copyRule:copyRule,copyRules:copyRules,fetch:fetch,$form:m,parseFn:parseFn,parseJson:parseJson,toJson:toJson,getApi:s,init:function(e){var t=mountForm(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),n=t.$refs.fc.formCreate;return{mount:function(e){return e&&is.Element(e)&&(n.options.el=e),_getEl(n.options).appendChild(t.$el),n.api()},remove:function(){t.$el.parentNode&&t.$el.parentNode.removeChild(t.$el)},destroy:function(){this.remove(),t.$destroy()},$f:n.api()}}})}if(exportAttrs(e.attrs||{}),extend(b.prototype,{init:function(){var e=this,t=this.vm,n=new Handler(this);this.$handle=n,t.$f=n.api,t.$emit("input",n.api),t.$on("hook:created",function(){e.isSub()&&(e.unwatch=t.$watch(function(){return t.$pfc.option},function(){e.initOptions(e.options),t.$f.refresh()},{deep:!0}),e.initOptions(e.options)),e.created()}),t.$on("hook:mounted",function(){e.mounted()}),t.$on("hook:beforeDestroy",function(){if(t.destroyed=!0,e.unwatch&&e.unwatch(),n.reloadRule([]),e.name)if(e.inFor){var r=instance[e.name].indexOf(e.api());instance[e.name].splice(r,1)}else delete instance[e.name]}),t.$on("hook:updated",function(){n.bindNextTick(function(){return e.bus.$emit("next-tick",n.api)})})},isSub:function(){return this.vm.$pfc&&this.vm.extendOption},initOptions:function(e){this.options=_objectSpread2({formData:{},submitBtn:{},resetBtn:{}},deepCopy(a)),this.isSub()&&this.mergeOptions(this.options,this.vm.$pfc.$f.config||{},!0),this.updateOptions(e)},mergeOptions:function(e,t,n){return t=deepCopy(t),n&&["page","onSubmit","mounted","reload","formData","el"].forEach(function(e){delete t[e]}),t.global&&(e.global=mergeGlobal(e.global,t.global),delete t.global),this.$handle.$manager.mergeOptions([t],e),e},updateOptions:function(e){this.mergeOptions(this.options,e),this.$handle.$manager.updateOptions(this.options)},created:function(){this.$handle.init(),this.vm.$emit("created",this.api())},api:function(){return this.$handle.api},render:function(){return this.$handle.render()},mounted:function(){this.$handle.mounted()}}),$(g),extend(g,{create:g,install:function(e,t){if(a=_objectSpread2(_objectSpread2({},a),t||{}),!0!==e._installedFormCreate){e._installedFormCreate=!0,_vue=e;var n=function(e){return g(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},this)};$(n),e.prototype.$formCreate=n,e.component("FormCreate",m()),e.component("FcFragment",v())}}}),c.use({fragment:"fcFragment"}),p(html),e.install&&g.use(e),e.inherit){var C=e.inherit;C.components&&extend(t,C.components),C.parsers&&extend(n,C.parsers),C.directives&&extend(r,C.directives),C.providers&&extend(i,C.providers),C.maker&&extend(o,C.maker),C.data&&extend(u,C.data)}return g}export default FormCreateFactory;export{Creator,Manager,copyRule,copyRules,creatorFactory,fragment,mergeRule,parseJson,toJson}; //# sourceMappingURL=index.min.js.map