UNPKG

263 kBSource Map (JSON)View Raw
1{"version":3,"file":"form-create.min.js","sources":["../../../node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","../../utils/lib/tostring.js","../../utils/lib/modify.js","../../utils/lib/type.js","../../utils/lib/deepextend.js","../../utils/lib/toarray.js","../../utils/lib/slot.js","../../../components/ant-design-vue/upload/src/component.jsx","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/ant-design-vue/frame/src/component.jsx","../../utils/lib/extend.js","../../../components/ant-design-vue/group/src/component.jsx","../../../components/common/subform/src/component.jsx","../src/components/index.js","../src/parsers/checkbox.js","../src/parsers/radio.js","../src/parsers/select.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/console.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../core/src/render/cache.js","../../utils/lib/tocase.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/render.js","../../core/src/render/index.js","../../core/src/handler/inject.js","../../core/src/handler/page.js","../../core/src/handler/render.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/parser/html.js","../../core/src/frame/index.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/timePicker.js","../src/parsers/tree.js","../src/parsers/row.js","../src/parsers/index.js","../src/core/alias.js","../src/core/config.js","../src/core/manager.js","../src/core/maker.js","../src/core/api.js","../src/core/index.js","../src/index.js"],"sourcesContent":["\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","export default function toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n","import Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","const is = {\n type(arg, type) {\n return Object.prototype.toString.call(arg) === '[object ' + type + ']'\n },\n Undef(v) {\n return v === undefined || v === null\n },\n Element(arg) {\n return typeof arg === 'object' && arg !== null && arg.nodeType === 1 && !is.Object(arg)\n },\n trueArray(data) {\n return Array.isArray(data) && data.length > 0;\n },\n Function(v) {\n const type = this.getType(v);\n return type === 'Function' || type === 'AsyncFunction';\n },\n getType(v) {\n const str = Object.prototype.toString.call(v)\n return /^\\[object (.*)\\]$/.exec(str)[1]\n },\n empty(value) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (Array.isArray(value) && Array.isArray(value) && !value.length) {\n return true;\n }\n\n return typeof value === 'string' && !value;\n }\n};\n\n['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(t => {\n is[t] = function (arg) {\n return is.type(arg, t);\n }\n})\n\nexport function hasProperty(rule, k) {\n return ({}).hasOwnProperty.call(rule, k)\n}\n\nexport default is;\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","export default function getSlot(slots, exclude) {\n return Object.keys(slots).reduce((lst, name) => {\n if (!exclude || exclude.indexOf(name) === -1) {\n lst.push(slots[name])\n }\n return lst;\n }, [])\n}","import toString from '@form-create/utils/lib/tostring';\nimport deepExtend from '@form-create/utils/lib/deepextend';\nimport toArray from '@form-create/utils/lib/toarray';\nimport getSlot from '@form-create/utils/lib/slot';\n\nconst parseFile = function (file, uid) {\n return {\n url: file,\n name: getFileName(file),\n status: 'done',\n uid: uid + 1\n };\n }, getFileName = function (file) {\n return toString(file).split('/').pop()\n }, parseUpload = function (file) {\n return {url: file.url, file};\n };\n\nconst NAME = 'fcUpload';\n\nexport default {\n name: NAME,\n formCreateParser: {\n toFormValue(value) {\n return toArray(value);\n },\n toValue(formValue, ctx) {\n return ctx.prop.props.limit === 1 ? (formValue[0] || '') : formValue;\n }\n },\n props: {\n limit: {\n type: Number,\n default: 0\n },\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Array,\n default: () => []\n },\n onSuccess: {\n type: Function,\n required: true\n },\n onHandle: {\n type: Function,\n default: function (file) {\n this.previewImage = file.url;\n this.previewVisible = true;\n }\n },\n modalTitle: String,\n previewMask: undefined,\n },\n data() {\n const fileList = this.value.map(parseFile);\n return {\n defaultUploadList: fileList,\n previewImage: '',\n previewVisible: false,\n uploadList: fileList.map(parseUpload)\n };\n },\n watch: {\n value(n) {\n const fileList = n.map(parseFile);\n this.$refs.upload.sFileList = fileList;\n this.uploadList = fileList.map(parseUpload)\n }\n },\n methods: {\n handleChange({file, fileList}) {\n const list = this.uploadList;\n if (file.status === 'done') {\n this.onSuccess(file, fileList);\n if (file.url) list.push({\n url: file.url,\n file: fileList[fileList.length - 1]\n });\n this.input();\n } else if (file.status === 'removed') {\n list.forEach((v, i) => {\n if (v.file === file) {\n list.splice(i, 1);\n }\n });\n this.input();\n }\n },\n input() {\n this.$emit('input', this.uploadList.map(v => v.url));\n },\n\n },\n render() {\n const isShow = (!this.limit || this.limit > this.uploadList.length);\n const ctx = {...this.formCreateInject.prop};\n ctx.on = deepExtend({}, ctx.on || {});\n return <div>\n <AUpload {...ctx} on-preview={this.onHandle.bind(this)}\n on-change={this.handleChange}\n ref=\"upload\" props={{defaultFileList: this.defaultUploadList}}>\n {isShow ? <template slot=\"default\">{this.$slots.default ||\n <AIcon type=\"plus\"/>}</template> : null}{getSlot(this.$slots, ['default'])}\n </AUpload>\n <aModal props={{mask: this.previewMask, title: this.modalTitle, footer: null}}\n v-model={this.previewVisible}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </aModal>\n </div>;\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css';\n\nconst NAME = 'fcFrame';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'input'\n },\n field: String,\n helper: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n src: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n default: 'folder'\n },\n width: {\n type: [Number, String],\n default: 500\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModal(close) {\n this.$emit(close ? '$close' : '$ok');\n if (this.reload) {\n this.$off('$ok');\n this.$off('$close');\n }\n this.frameVisible = false;\n },\n\n showModal() {\n if (this.disabled || false === this.onOpen()) return;\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n readonly: true\n };\n\n return <AInput props={props} key={this.key('input')}>\n <AIcon type={this.icon} slot=\"addonAfter\" on-click={this.showModal}/>\n {this.fileList.length ?\n <AIcon type=\"close-circle\" slot=\"suffix\" on-click={() => this.fileList = []}/> : null}\n </AInput>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength)\n children.push(this.makeBtn());\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field)\n throw new Error('[frame]无效的字段值');\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon))\n icons.push(this.makeHandleIcon(val, index));\n if (this.allowRemove)\n icons.push(this.makeRemoveIcon(val, index));\n\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <AIcon\n type={(this.handleIcon === true || this.handleIcon === undefined) ? 'eye-o' : this.handleIcon}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <AIcon type=\"delete\" on-click={() => this.handleRemove(val)} key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<AIcon type=\"file\"\n on-click={() => this.handleClick(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeImages() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<img src={this.getSrc(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeBtn() {\n return <div class='fc-upload-btn' on-click={() => this.showModal()} key={this.key('btn')}>\n <AIcon type={this.icon} theme=\"filled\"/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) return;\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !this.srcKey ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n api: this.formCreateInject.api,\n close: (field) => {\n this.valid(field);\n this.closeModal();\n },\n set: (field, value) => {\n this.valid(field);\n if (!this.disabled)\n this.$emit('input', value);\n\n },\n get: (field) => {\n this.valid(field);\n return this.value;\n },\n onOk: fn => this.$on('$ok', fn),\n onClose: fn => this.$on('$close', fn)\n };\n\n }\n } catch (e) {\n console.log(e);\n }\n },\n makeFooter() {\n const {okBtnText, closeBtnText, closeBtn, okBtn, footer} = this.$props;\n\n const node = [];\n if (!footer) return node;\n\n if (closeBtn)\n node.push(<AButton\n on-click={() => (this.onCancel() !== false && this.closeModal(true))}>{closeBtnText}</AButton>);\n if (okBtn)\n node.push(<AButton type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModal())}>{okBtnText}</AButton>);\n return node;\n }\n },\n render() {\n const type = this.type;\n let Node;\n if (type === 'input')\n Node = this.makeInput();\n else if (type === 'image')\n Node = this.makeImages();\n else\n Node = this.makeFiles();\n\n const {width = '30%', height, src, title, modalTitle} = this.$props;\n this.$nextTick(() => {\n if (this.$refs.frame) {\n this.frameLoad(this.$refs.frame.contentWindow || {});\n }\n });\n return <div class=\"_fc-frame\">{Node}\n <aModal props={{mask: this.previewMask, title: modalTitle, footer: null}} v-model={this.previewVisible}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </aModal>\n <aModal props={{width, title, ...this.modal, visible: this.frameVisible}}\n on-cancel={() => (this.closeModal(true))}>\n {(this.frameVisible || !this.reload) ? <iframe ref=\"frame\" src={src} frameborder=\"0\" style={{\n 'height': height,\n 'border': '0 none',\n 'width': '100%'\n }}/> : null}\n <div slot=\"footer\">\n {this.makeFooter()}\n </div>\n </aModal>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'fcGroup';\n\nexport default {\n name: NAME,\n props: {\n field: String,\n rule: [Array, Object],\n rules: Array,\n expand: Number,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n button: {\n type: Boolean,\n default: true\n },\n max: {\n type: Number,\n default: 0\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: () => []\n },\n defaultValue: Object,\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n fontSize: {\n type: Number,\n default: 28\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rules) {\n return this.rules;\n }\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n return [];\n }\n },\n watch: {\n formRule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n disabled(n) {\n if (this.syncDisabled) {\n const lst = this.cacheRule;\n Object.keys(lst).forEach(k => {\n lst[k].$f.disabled(n);\n })\n }\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n) {\n n = n || [];\n let keys = Object.keys(this.cacheRule), total = keys.length, len = total - n.length;\n if (len < 0) {\n for (let i = len; i < 0; i++) {\n this.addRule(n.length + i);\n }\n for (let i = 0; i < total; i++) {\n this.setValue(keys[i], n[i]);\n }\n } else {\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n this.removeRule(keys[total - i - 1]);\n }\n }\n n.forEach((val, i) => {\n this.setValue(keys[i], n[i]);\n });\n }\n }\n },\n methods: {\n _value(v) {\n return (v && hasProperty(v, this.field)) ? v[this.field] : v;\n },\n cache(k, val) {\n this.cacheValue[k] = JSON.stringify(val);\n },\n input(value) {\n this.$emit('input', value);\n this.$emit('change', value);\n },\n formData(key, formData) {\n const cacheRule = this.cacheRule;\n const keys = Object.keys(cacheRule);\n if (keys.filter(k => cacheRule[k].$f).length !== keys.length) {\n return;\n }\n const value = keys.map(k => {\n const data = key === k ? formData : {...this.cacheRule[k].$f.form};\n const value = this.field ? data[this.field] || null : data;\n this.cache(k, value);\n return value;\n });\n this.input(value);\n },\n setValue(key, value) {\n const field = this.field, $f = this.cacheRule[key].$f;\n if (field) {\n value = {[field]: this._value(value)};\n }\n if (this.cacheValue[key] === JSON.stringify(field ? value[field] : value)) {\n return;\n }\n this.cache(key, value);\n $f.coverValue(value || {});\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.formRule);\n const options = this.options ? {...this.options} : {\n submitBtn: false,\n resetBtn: false,\n };\n if (this.defaultValue) {\n if (!options.formData) options.formData = {};\n const defVal = deepCopy(this.defaultValue);\n extend(options.formData, this.field ? {[this.field]: defVal} : defVal);\n }\n this.$set(this.cacheRule, ++this.len, {rule, options});\n if (emit) {\n this.$nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));\n }\n },\n add$f(i, key, $f) {\n this.cacheRule[key].$f = $f;\n this.formData(key, $f.formData());\n this.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n this.value.splice(index, 1);\n this.input(this.value);\n },\n addIcon(key) {\n return <AIcon key={`a${key}`} type=\"plus-circle\"\n style={`font-size:${this.fontSize}px;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer'};`}\n on-click={this.add}/>;\n },\n delIcon(index, key) {\n return <AIcon key={`d${key}`} type=\"minus-circle\"\n style={`font-size:${this.fontSize}px;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer;color:#606266'};`}\n on-click={() => this.del(index, key)}/>;\n },\n makeIcon(total, index, key) {\n if (this.$scopedSlots.button) {\n return this.$scopedSlots.button({\n total,\n index,\n vm: this,\n key,\n del: () => this.del(index, key),\n add: this.add\n });\n }\n if (index === 0) {\n return [(this.max !== 0 && total >= this.max) ? null : this.addIcon(key), (this.min === 0 || total > this.min) ? this.delIcon(index, key) : null];\n }\n if (index >= this.min) {\n return this.delIcon(index, key);\n }\n },\n emitEvent(name, args, index, key) {\n this.$emit(name, ...args, this.cacheRule[key].$f, index);\n },\n expandRule(n) {\n for (let i = 0; i < n; i++) {\n this.value.push(this.field ? null : {});\n }\n }\n },\n created() {\n this.type = this.formCreateInject.form.$form();\n const d = (this.expand || 0) - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n for (let i = 0; i < this.value.length; i++) {\n this.addRule(i);\n }\n },\n render() {\n const keys = Object.keys(this.cacheRule);\n const button = this.button;\n const Type = this.type;\n return keys.length === 0 ?\n (this.$scopedSlots.default ? (this.$scopedSlots.default({\n vm: this,\n add: this.add\n })) : <AIcon key={'a_def'} type=\"plus-circle\"\n style={`font-size:${this.fontSize}px;vertical-align:middle;color:${this.disabled ? '#c9cdd4;cursor: not-allowed' : '#606266;cursor:pointer'};`}\n on-click={this.add}/>) :\n <div key={'con'}>{keys.map((key, index) => {\n const {rule, options} = this.cacheRule[key];\n return <ARow align=\"middle\" type=\"flex\" key={key}\n style=\"border-bottom:1px dashed #d9d9d9;margin-bottom:10px;\">\n <ACol span={button ? 20 : 24}><Type\n key={key}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n props={{\n inFor: true,\n value: this.field ? {[this.field]: this._value(this.value[index])} : this.value[index],\n rule,\n option: options,\n extendOption: true\n }}\n /></ACol>\n {button ? <ACol\n props={{span: 1, pull: 1, push: 1}}>{this.makeIcon(keys.length, index, key)}</ACol> : null}\n </ARow>\n })}</div>\n }\n}\n","const NAME = 'fcSubForm';\n\nexport default {\n name: NAME,\n props: {\n rule: Array,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n default: () => ({})\n },\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n },\n data() {\n return {\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n watch: {\n disabled(n) {\n this.syncDisabled && this.cacheRule.$f.disabled(n);\n },\n value(n) {\n this.setValue(n);\n }\n },\n methods: {\n formData(value) {\n this.cacheValue = JSON.stringify(value);\n this.$emit('input', value);\n this.$emit('change', value);\n },\n setValue(value) {\n const str = JSON.stringify(value);\n if (this.cacheValue === str) {\n return;\n }\n this.cacheValue = str;\n this.cacheRule.$f.coverValue(value || {});\n },\n addRule() {\n const options = this.options ? this.options : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = {...(this.value || {})};\n this.cacheRule = {rule: this.rule, options};\n },\n add$f($f) {\n this.cacheRule.$f = $f;\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n props={{rule, option: options, extendOption: true}}/>\n }\n}\n","import upload from '@form-create/component-antdv-upload/src/index'\nimport frame from '@form-create/component-antdv-frame/src/index'\nimport group from '@form-create/component-antdv-group/src/index'\nimport subForm from '@form-create/component-subform/src/index'\n\nexport default [\n upload, frame, group, subForm\n]\n","import {hasProperty} from '@form-create/utils/lib/type';\n\nexport default {\n name: 'checkbox',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n\n}\n","import checkbox from './checkbox';\n\nexport default {\n ...checkbox, name: 'radio'\n};\n","import checkbox from './checkbox';\n\nexport default {\n ...checkbox, name: 'select'\n};\n","import extend from '@form-create/utils/lib/extend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'FormCreate';\n\nconst getRuleInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.formCreateInject) {\n return vm.formCreateInject\n }\n if (vm.$parent) {\n return getRuleInject(vm.$parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n value: Object,\n api: Object,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: JSON.stringify(this.value || {}),\n isMore: !!this.inFor,\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n || {}) === this.updateValue) return;\n this.$f.setValue(n || {});\n },\n deep: true\n },\n option: {\n handler(n) {\n this.formCreate.initOptions(n);\n this.$f.refresh();\n },\n deep: true\n },\n rule(n) {\n if (n.length === this.renderRule.length && n.every(v => this.renderRule.indexOf(v) > -1)) return;\n this.formCreate.$handle.reloadRule(n);\n this._renderRule();\n }\n },\n beforeCreate() {\n const {rule, option} = this.$options.propsData;\n this.formCreate = new FormCreate(this, rule, option);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n created() {\n const vm = this, fapi = this.formCreate.api();\n const addSubForm = () => {\n if (vm.$pfc) {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n let sub;\n if (vm.isMore) {\n sub = toArray(inject.getSubForm());\n sub.push(fapi);\n\n } else {\n sub = fapi;\n }\n inject.subForm(sub);\n }\n }\n };\n\n const rmSubForm = () => {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n if (vm.isMore) {\n const sub = toArray(inject.getSubForm());\n const idx = sub.indexOf(fapi);\n if (idx > -1) {\n sub.splice(idx, 1);\n }\n } else {\n inject.subForm();\n }\n }\n };\n\n vm.$on('hook:beforeDestroy', () => {\n rmSubForm();\n });\n\n this.$watch(() => this.subForm, (n) => {\n n ? addSubForm() : rmSubForm();\n }, {immediate: true});\n }\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'preview', 'component', 'cache'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return eval('(' + FUNCTION + '(){return ' + fn + ' })()')\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n return is.Function(rule.getRule) ? rule.getRule() : rule;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, h.options.appendValue ? copy(h.appendData) : {});\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n const flag = hasProperty(formData, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? formData[key] : undefined;\n })\n });\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rule.props && $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n ctx.rule.effect = {};\n }\n $set(ctx.rule.effect, attr, value);\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n deferSyncValue(fn, sync){\n h.deferSyncValue(fn, sync);\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off', 'set'].forEach(n => {\n api[n] = function (...args) {\n h.vm[`$${n}`](...args);\n }\n });\n\n api.changeValue = api.changeField = api.setValue;\n\n return api;\n}\n","import extend from '@form-create/utils/lib/extend';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n if (cache) {\n cache.use = true;\n return cache.vnode;\n }\n return undefined;\n }\n })\n\n}\n","export default function toCase(str) {\n const to = str.replace(/(-[a-z])/g, function (v) {\n return v.replace('-', '').toLocaleUpperCase();\n });\n\n return lower(to);\n}\n\nexport function lower(str) {\n return str.replace(str[0], str[0].toLowerCase());\n}\n","export default function toLine(name) {\n let line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();\n if (line.indexOf('-') === 0)\n line = line.substr(1);\n return line;\n}\n","let id = 0;\n\nexport default function uniqueId() {\n return Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}${++id}`).toString(36);\n}\n","export default function deepSet(data, idx, val) {\n let _data = data, to;\n (idx || '').split('.').forEach(v => {\n if (to) {\n if (!_data[to] || typeof _data[to] != 'object') {\n _data[to] = {}\n }\n _data = _data[to];\n }\n to = v;\n })\n _data[to] = val;\n return _data;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {_vue as Vue} from '../frame';\nimport {tip} from '@form-create/utils/lib/console';\nimport {invoke, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {$set, deepSet, toLine} from '@form-create/utils';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.tempList = {};\n this.clearOrgChildren();\n },\n initOrgChildren() {\n const ctxs = this.$handle.ctxs;\n this.orgChildren = Object.keys(ctxs).reduce((initial, id) => {\n if (ctxs[id].parser.loadChildren !== false) {\n const children = ctxs[id].rule.children;\n initial[id] = is.trueArray(children) ? [...children] : [];\n }\n\n return initial;\n }, {});\n\n },\n clearOrgChildren() {\n this.orgChildren = {};\n },\n getTypeSlot(type) {\n const name = 'type-' + toLine(type);\n const _fn = (vm) => {\n if (vm) {\n const slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n }\n return _fn(this.vm);\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side) {\n return is.Object(side) ? mergeRule({}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix)), vn, this.renderRule(this.parseSide(prop.suffix))];\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = rule.cache !== false;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.preview = !!(hasProperty(prop, 'preview') ? prop.preview : (this.options.preview || false))\n prop.props.formCreateInject = this.injectProp(ctx);\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = this.getTypeSlot(ctx.type);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else if(is.String(vn.data.style)) {\n vn.data.style += ';display:none;';\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n getSubForm: () => {\n return this.$handle.subForm[ctx.id];\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx, custom) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx, custom);\n ctx.parser.mergeProp(ctx, custom);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n 'hook:mounted': () => {\n this.onMounted(ctx);\n },\n 'fc.sub-form': (subForm) => {\n this.$handle.addSubForm(ctx, subForm);\n }\n },\n }\n ]\n\n if (!custom && ctx.input) {\n ctx.prop.model = {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n };\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if(prop.component)\n return this.vNode.makeComponent(prop.component, prop, children)\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nexport default function Render(handle) {\n extend(this, {\n $handle: handle,\n fc: handle.fc,\n vm: handle.vm,\n $manager: handle.$manager,\n vNode: new handle.fc.CreateNode(handle.vm),\n });\n\n funcProxy(this, {\n options() {\n return handle.options;\n },\n sort() {\n return handle.sort;\n }\n })\n\n this.initCache();\n this.initRender();\n}\n\nuseCache(Render);\nuseRender(Render)\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport toLine from '@form-create/utils/lib/toline';\nimport {parseFn} from '../frame/util';\n\n\nexport default function useInject(Handler) {\n extend(Handler.prototype, {\n parseInjectEvent(rule, on) {\n const inject = rule.inject || this.options.injectEvent;\n return this.parseEventLst(rule, on, inject);\n },\n parseEventLst(rule, data, inject, deep) {\n Object.keys(data).forEach(k => {\n const fn = this.parseEvent(rule, data[k], inject, deep);\n if (fn) {\n data[k] = fn;\n }\n });\n return data;\n },\n parseEvent(rule, fn, inject, deep) {\n if (is.Function(fn) && ((inject !== false && !is.Undef(inject)) || fn.__inject)) {\n return this.inject(rule, fn, inject)\n } else if (!deep && Array.isArray(fn) && fn[0] && (is.String(fn[0]) || is.Function(fn[0]))) {\n return this.parseEventLst(rule, fn, inject, true);\n } else if (is.String(fn)) {\n const val = parseFn(fn);\n if (val && fn !== val) {\n return val.__inject ? this.parseEvent(rule, val, inject, true) : val;\n }\n }\n },\n parseEmit(ctx, on) {\n let event = {}, rule = ctx.rule, {emitPrefix, field, name, inject} = rule;\n let emit = rule[on ? 'emit' : 'nativeEmit'] || [];\n if (is.trueArray(emit)) {\n let emitKey = emitPrefix || field || name;\n if (emitKey) {\n if (!on) emitKey = `native-${emitKey}`;\n emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n }\n const fieldKey = toLine(`${emitKey}-${eventName}`);\n const fn = (...arg) => {\n this.vm.$emit(fieldKey, ...arg);\n this.vm.$emit('emit-event', fieldKey, ...arg);\n };\n fn.__emit = true;\n\n if (!eventInject && inject === false) {\n event[eventName] = fn;\n } else {\n let _inject = eventInject || inject || this.options.injectEvent;\n event[eventName] = is.Undef(_inject) ? fn : this.inject(rule, fn, _inject);\n }\n });\n }\n\n }\n ctx.computed[on ? 'on' : 'nativeOn'] = event;\n return event;\n },\n getInjectData(self, inject) {\n const {option, rule} = this.vm.$options.propsData;\n return {\n api: this.api,\n $f: this.api,\n rule,\n self: self.__origin__,\n option,\n inject\n };\n },\n inject(self, _fn, inject) {\n if (_fn.__origin) {\n if (this.watching && !this.loading)\n return _fn;\n _fn = _fn.__origin;\n }\n\n const h = this;\n\n const fn = function (...args) {\n const data = h.getInjectData(self, inject);\n data.args = [...args];\n args.unshift(data);\n return _fn.apply(this, args);\n };\n fn.__origin = _fn;\n fn.__json = _fn.__json;\n return fn;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\n\nconst EVENT = ['hook:updated', 'hook:mounted'];\n\nexport default function usePage(Handler) {\n extend(Handler.prototype, {\n usePage() {\n const page = this.options.page;\n if (!page) return;\n let first = 25;\n let limit = getLimit(this.rules);\n if (is.Object(page)) {\n if (page.first) first = parseInt(page.first, 10) || first;\n if (page.limit) limit = parseInt(page.limit, 10) || limit;\n }\n extend(this, {\n first,\n limit,\n pageEnd: this.rules.length <= first,\n })\n\n this.bus.$on('page-end', () => this.vm.$emit('page-end', this.api));\n this.pageLoad();\n },\n pageLoad() {\n const pageFn = () => {\n if (this.pageEnd) {\n this.vm.$off(EVENT, pageFn);\n this.bus.$emit('page-end');\n } else {\n this.first += this.limit;\n this.pageEnd = this.rules.length <= this.first;\n this.loadRule();\n this.refresh();\n }\n }\n this.vm.$on(EVENT, pageFn);\n },\n })\n}\n\n\nfunction getLimit(rules) {\n return rules.length < 31 ? 31 : Math.ceil(rules.length / 3);\n}\n","import extend from '@form-create/utils/lib/extend';\n\n\nexport default function useRender(Handler) {\n extend(Handler.prototype, {\n clearNextTick() {\n this.nextTick && clearTimeout(this.nextTick);\n this.nextTick = null;\n },\n bindNextTick(fn) {\n this.clearNextTick();\n this.nextTick = setTimeout(() => {\n fn()\n this.nextTick = null;\n }, 10);\n },\n render() {\n // console.warn('%c render', 'color:green');\n ++this.loadedId;\n\n if (this.vm.unique > 0)\n return this.$render.render();\n else {\n this.vm.unique = 1;\n return [];\n }\n },\n });\n}\n","import unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {enumerable} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(ctx, true)\n });\n}\n\nexport default function RuleContext(handle, rule) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n defaultValue: rule.field ? deepCopy(rule.value) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n delete this.payload[name]\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeProps([rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n check(handle) {\n return this.vm === handle.vm\n },\n unwatch() {\n this.watch.forEach(un => un());\n this.watch = [];\n },\n unlink() {\n this.linkOn.forEach(un => un());\n this.linkOn = [];\n },\n link() {\n this.unlink();\n this.$handle.appendLink(this);\n },\n watchTo() {\n this.$handle.watchCtx(this);\n },\n delete() {\n const undef = void 0;\n this.unwatch();\n this.unlink();\n this.rmCtrl();\n extend(this, {\n deleted: true,\n prop: {...this.rule},\n computed: {},\n el: undef,\n $handle: undef,\n $render: undef,\n $api: undef,\n vm: undef,\n vNode: undef,\n parent: null,\n cacheConfig: null,\n })\n },\n rmCtrl() {\n this.ctrlRule.forEach(ctrl => ctrl.__fc__ && ctrl.__fc__.rm());\n this.ctrlRule = [];\n },\n rm() {\n const _rm = () => {\n let index = this.root.indexOf(this.origin);\n if (index > -1) {\n this.root.splice(index, 1);\n this.$handle && this.$handle.refresh();\n }\n }\n if (this.deleted) {\n _rm();\n return;\n }\n this.$handle.noWatch(() => {\n this.$handle.deferSyncValue(() => {\n this.rmCtrl();\n _rm();\n this.$handle.rmCtx(this);\n extend(this, {\n root: []\n });\n }, this.input);\n });\n },\n update(handle, init) {\n extend(this, {\n deleted: false,\n $handle: handle,\n $render: handle.$render,\n $api: handle.api,\n vm: handle.vm,\n trueType: handle.getType(this.originType),\n vNode: handle.$render.vNode,\n updated: false,\n });\n !init && this.unwatch();\n this.watchTo();\n this.link();\n }\n})\n","import extend from '@form-create/utils/lib/extend';\nimport {byCtx, copyRule, enumerable, getRule, invoke, parseFn} from '../frame/util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {err} from '@form-create/utils/lib/console';\nimport {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {$set} from '@form-create/utils';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && (is.String(_rule) || is.Undef(_rule))) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (!is.Object(_rule) || !getRule(_rule).type)\n return err('未定义生成规则的 type 字段', _rule);\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n if (isInit) {\n ctx = _rule.__fc__;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n ctx = new RuleContext(this, this.parseRule(_rule));\n this.bindParser(ctx);\n } else {\n if (ctx.originType !== ctx.rule.type) {\n ctx.updateType();\n this.bindParser(ctx);\n }\n this.appendValue(ctx.rule);\n }\n [false, true].forEach(b => this.parseEmit(ctx, b));\n this.syncProp(ctx);\n ctx.parent = parent || null;\n ctx.root = rules;\n this.setCtx(ctx);\n\n !isCopy && !isInit && this.effect(ctx, 'load');\n\n ctx.parser.loadChildren === false || loadChildren(ctx.rule.children, ctx);\n\n if (!parent) {\n const _preIndex = preIndex(index);\n if (_preIndex > -1 || !index) {\n this.sort.splice(_preIndex + 1, 0, ctx.id);\n } else {\n this.sort.push(ctx.id);\n }\n }\n\n const r = ctx.rule;\n if (!ctx.updated) {\n ctx.updated = true;\n if (is.Function(r.update)) {\n this.bus.$once('load-end', () => {\n this.refreshUpdate(ctx, r.value);\n });\n }\n this.effect(ctx, 'loaded');\n }\n\n if (ctx.input)\n Object.defineProperty(r, 'value', this.valueHandle(ctx));\n if (this.refreshControl(ctx)) this.cycleLoad = true;\n return ctx;\n });\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || (val => val === control.value);\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n const hideLst = [];\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n hideLst[valid ? 'push' : 'unshift'](() => {\n this.api.hidden(!valid, rule);\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n hideLst.length && this.vm.$nextTick(() => {\n hideLst.forEach(v => v());\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n this.deferSyncValue(() => {\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n this.vm.$emit('reloading', this.api);\n });\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) $set(rule, k, def[k]);\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value === null ? undefined : value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, this.options.appendValue ? Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {}) : {}));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n this.subForm[ctx.id] = subForm;\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value === null ? undefined : value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return this.render(children, ctx);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'component', 'cache'];\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule).filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o);\n this.$render.initOrgChildren();\n }\n flag && this.loadChildren(n, ctx);\n this.vm.$emit('update', this.api);\n });\n }\n this.$render.clearCache(ctx);\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n if (input && !hasProperty(this.fieldCtx, field)) {\n $del(this.form, field);\n }\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\n\nexport default function useLifecycle(Handler) {\n extend(Handler.prototype, {\n mounted() {\n const _mounted = () => {\n this.isMounted = true;\n this.lifecycle('mounted');\n }\n if (this.pageEnd) {\n _mounted();\n } else {\n this.bus.$once('page-end', _mounted);\n }\n },\n lifecycle(name) {\n const fn = this.options[name];\n is.Function(fn) && invoke(() => fn(this.api));\n this.vm.$emit(name, this.api);\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n const prop = ps[k];\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n let effect = {};\n Object.keys(ctx.rule.effect || {}).forEach(k => {\n effect[k] = () => ctx.rule.effect[k];\n })\n Object.keys(ctx.rule).forEach(k => {\n if (k[0] === '$') {\n effect[k.substr(1)] = () => ctx.rule[k];\n }\n })\n Object.keys(effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(effect[k], (n) => {\n this.effect(ctx, 'watch', {[k]: n});\n }, {deep: true}));\n });\n },\n ruleEffect(rule, event, append) {\n this.emitEffect({\n rule,\n input: !!rule.field,\n type: this.getType(rule.type)\n }, event, append);\n },\n effect(ctx, event, custom) {\n this.emitEffect({\n rule: ctx.rule,\n input: ctx.input,\n type: ctx.trueType,\n ctx,\n custom\n }, event);\n },\n getEffect(rule, name) {\n if (hasProperty(rule, '$' + name)) {\n return rule['$' + name];\n }\n if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (Object.keys(rule).reduce((i, k) => {\n if (k[0] === '$') {\n i[k.substr(1)] = rule[k];\n }\n return i;\n }, {...rule.effect || {}}));\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeProps([prop], data.getProp());\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) return unique(c.filter(v => v !== '*'));\n else if (is.String(c)) return [c];\n else return false;\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\n\n\nexport default function Handler(fc) {\n extend(this, {\n fc,\n vm: fc.vm,\n watching: false,\n loading: false,\n reloading: false,\n noWatchFn: null,\n deferSyncFn: null,\n isMounted: false,\n formData: {},\n subForm: {},\n form: {},\n appendData: {},\n providers: {},\n cycleLoad: null,\n loadedId: 1,\n nextTick: null,\n changeStatus: false,\n pageEnd: true,\n nextReload: () => {\n this.lifecycle('reload');\n }\n });\n\n funcProxy(this, {\n options() {\n return fc.options;\n },\n bus() {\n return fc.bus;\n },\n })\n\n this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApi(Api(this), this);\n}\n\nextend(Handler.prototype, {\n initData(rules) {\n extend(this, {\n ctxs: {},\n fieldCtx: {},\n nameCtx: {},\n sort: [],\n rules,\n });\n },\n init() {\n this.appendData = {...this.fc.options.formData || {}, ...this.vm.value || {}, ...this.appendData};\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.vm.$set(this.vm, 'formData', this.formData);\n },\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nfunction getError(action, option, xhr) {\n const msg = `fail to ${action} ${xhr.status}'`;\n const err = new Error(msg);\n err.status = xhr.status;\n err.url = action;\n return err;\n}\n\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function fetch(option) {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n\n const xhr = new XMLHttpRequest();\n const action = option.action;\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr), getBody(xhr));\n }\n\n option.onSuccess(getBody(xhr));\n };\n\n xhr.open(option.method || 'get', action, true);\n\n let formData;\n if (option.data) {\n if ((option.dataType || '').toLowerCase() !== 'json') {\n formData = new FormData();\n Object.keys(option.data).map(key => {\n formData.append(key, option.data[key]);\n });\n } else {\n formData = JSON.stringify(option.data);\n xhr.setRequestHeader('content-type', 'application/json');\n }\n }\n\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const headers = option.headers || {};\n\n Object.keys(headers).forEach(item => {\n if (headers[item] !== null) {\n xhr.setRequestHeader(item, headers[item]);\n }\n });\n xhr.send(formData);\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n return this.makeComponent(tag, data, children);\n },\n makeComponent(type, data, children) {\n let Node = this.$h(type, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","import mergeProps from '@form-create/utils/lib/mergeprops';\nimport unique from '@form-create/utils/lib/unique';\nimport extend from '@form-create/utils/lib/extend';\n\nexport function createManager(proto) {\n class CustomManager extends Manager {\n }\n\n Object.assign(CustomManager.prototype, proto);\n return CustomManager;\n}\n\nexport default function Manager(handler) {\n extend(this, {\n $handle: handler,\n vm: handler.vm,\n options: {},\n ref: 'fcForm',\n mergeOptionsRule: {\n normal: ['form', 'row', 'info', 'submitBtn', 'resetBtn']\n }\n });\n this.updateKey();\n this.init();\n}\n\nextend(Manager.prototype, {\n __init() {\n this.$render = this.$handle.$render;\n this.$r = (...args) => this.$render.renderRule(...args);\n },\n updateKey() {\n this.key = unique();\n },\n //TODO interface\n init() {\n },\n update() {\n },\n beforeRender() {\n },\n form() {\n return this.vm.$refs[this.ref];\n },\n mergeOptions(args, opt) {\n return mergeProps(args.map(v => this.tidyOptions(v)), opt, this.mergeOptionsRule);\n },\n updateOptions(options) {\n this.options = this.mergeOptions([options], this.getDefaultOptions());\n this.update();\n },\n tidyOptions(options) {\n return options;\n },\n tidyRule(ctx) {\n },\n mergeProp(ctx) {\n },\n getDefaultOptions() {\n return {};\n },\n render(children) {\n }\n})\n","import {err} from '@form-create/utils/lib/console';\nimport fetch from './fetch';\nimport {invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\n\nconst $fetch = {\n name: 'fetch',\n loaded(...args) {\n run(...args);\n },\n watch(inject, rule, api) {\n if (!run(inject, rule, api)) {\n inject.clearProp();\n api.sync(rule);\n }\n }\n};\n\nconst $required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n } else {\n const validate = {\n required: true,\n validator(_, v, call) {\n is.empty(v) ? call(validate.message) : call();\n },\n ...val,\n };\n if (!validate.message) {\n let title = rule.title || '';\n validate.message = ((typeof title === 'object' ? title.title : title) || '') + '不能为空';\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n $required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\nfunction parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n}\n\nfunction run(inject, rule, api) {\n let option = inject.value;\n if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n return false;\n }\n if (!option.to) {\n option.to = 'options';\n }\n const onError = option.onError;\n\n const check = () => {\n if (!inject.getValue()) {\n inject.clearProp();\n api.sync(rule);\n return true;\n }\n }\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to, val);\n }\n }\n\n invoke(() => fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n let fn = (v) => v.data;\n if(is.Function(option.parse)){\n fn = option.parse;\n }\n set(fn(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }));\n\n return true;\n}\n\nexport default {\n fetch: $fetch,\n required: $required,\n};\n","import is from '@form-create/utils/lib/type';\n\nconst name = 'html';\n\nexport default {\n name,\n loadChildren: false,\n render(children, ctx) {\n if (!ctx.prop.domProps) ctx.prop.domProps = {};\n ctx.prop.domProps.innerHTML = children;\n return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);\n },\n renderChildren(ctx) {\n if (Array.isArray(ctx.rule.children)) {\n return ctx.rule.children.filter(v => is.String(v)).join('');\n }\n return '';\n }\n}\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $provider from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport html from '../parser/html';\n\nexport let _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;\n\nfunction _parseProp(name, id) {\n let prop;\n if (arguments.length === 2) {\n prop = arguments[1];\n id = prop[name];\n } else {\n prop = arguments[2];\n }\n return {id, prop};\n}\n\nfunction nameProp() {\n return _parseProp('name', ...arguments);\n}\n\nfunction _getEl(options) {\n if (!options || !options.el) return window.document.body;\n return is.Element(options.el)\n ? options.el\n : document.querySelector(options.el);\n}\n\nfunction mountForm(rules, option) {\n const $vm = new _vue({\n data() {\n //todo 外部无法修改\n return {rule: rules, option: option || {}};\n },\n render(h) {\n return h('FormCreate', {ref: 'fc', props: this.$data});\n }\n });\n $vm.$mount();\n return $vm;\n}\n\nfunction exportAttrs(attrs) {\n const key = attrs.key || [];\n const array = attrs.array || [];\n const normal = attrs.normal || [];\n keyAttrs.push(...key);\n arrayAttrs.push(...array);\n normalAttrs.push(...normal);\n\n appendProto([...key, ...array, ...normal]);\n}\n\nlet id = 1;\nconst instance = {};\n\n//todo 表单嵌套\nexport default function FormCreateFactory(config) {\n\n const components = {\n [fragment.name]: fragment\n };\n const parsers = {};\n const directives = {};\n const providers = {\n ...$provider\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val))\n return [...val];\n return val;\n }\n\n function directive() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) directives[data.id] = data.prop;\n }\n\n function register() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) providers[data.id] = {...data.prop, name: data.id};\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser() {\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = {...(base || BaseParser), ...parser};\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = toCase(id);\n if (['form-create', 'formcreate'].indexOf(name) > -1) {\n return $form();\n } else if (component === undefined) {\n return components[name];\n }\n } else {\n name = toCase(id.name);\n component = id;\n }\n if (!name || !component) return;\n components[name] = component;\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return _vue.extend($FormCreate(FormCreate));\n }\n\n function $vnode() {\n return _vue.extend(fragment);\n }\n\n //todo 检查回调函数作用域\n function use(fn, opt) {\n if (is.Function(fn.install)) fn.install(create, opt);\n else if (is.Function(fn)) fn(create, opt);\n return this;\n }\n\n function create(rules, _opt, parent) {\n let $vm = mountForm(rules, _opt || {});\n const _this = $vm.$refs.fc.formCreate;\n _this.$parent = parent;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n }\n\n function factory(inherit) {\n let _config = {...config};\n if (inherit) {\n _config.inherit = {\n components,\n parsers,\n directives,\n providers,\n maker,\n data\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n id: id++,\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n name: vm.$options.propsData.name,\n inFor: vm.$options.propsData.inFor,\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n options: options || {},\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(this.options);\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this.api());\n } else {\n instance[this.name] = this.api();\n }\n }\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions(this.options);\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions(this.options);\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this.api());\n instance[this.name].splice(idx, 1);\n } else {\n delete instance[this.name];\n }\n }\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions(options) {\n this.options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = deepCopy(opt);\n parent && ['page', 'onSubmit', 'mounted', 'reload', 'formData', 'el'].forEach((n) => {\n delete opt[n];\n });\n if (opt.global) {\n target.global = mergeGlobal(target.global, opt.global);\n delete opt.global;\n }\n this.$handle.$manager.mergeOptions([opt], target);\n return target;\n },\n updateOptions(options) {\n this.mergeOptions(this.options, options);\n this.$handle.$manager.updateOptions(this.options);\n },\n created() {\n this.$handle.init();\n this.vm.$emit('created', this.api());\n },\n api() {\n return this.$handle.api;\n },\n render() {\n return this.$handle.render();\n },\n mounted() {\n this.$handle.mounted();\n },\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n data,\n maker,\n component,\n directive,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n getApi,\n init(rules, _opt = {}) {\n let $vm = mountForm(rules, _opt), _this = $vm.$refs.fc.formCreate;\n return {\n mount($el) {\n if ($el && is.Element($el))\n _this.options.el = $el;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n },\n remove() {\n $vm.$el.parentNode && $vm.$el.parentNode.removeChild($vm.$el);\n },\n destroy() {\n this.remove();\n $vm.$destroy();\n },\n $f: _this.api()\n };\n }\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(Vue, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n if (Vue._installedFormCreate === true) return;\n Vue._installedFormCreate = true;\n _vue = Vue;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n Vue.prototype.$formCreate = $formCreate;\n Vue.component('FormCreate', $form());\n Vue.component('FcFragment', $vnode());\n }\n })\n }\n\n useAttr(create);\n useStatic(create);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n parser(html);\n\n if (config.install) create.use(config);\n\n if (config.inherit) {\n const inherit = config.inherit;\n inherit.components && extend(components, inherit.components);\n inherit.parsers && extend(parsers, inherit.parsers);\n inherit.directives && extend(directives, inherit.directives);\n inherit.providers && extend(providers, inherit.providers);\n inherit.maker && extend(maker, inherit.maker);\n inherit.data && extend(data, inherit.data);\n }\n\n return create;\n}\n","import moment from 'moment';\nimport {creatorFactory} from '@form-create/core/src/index';\n\nconst FORMAT_TYPE = {\n date: 'YYYY-MM-DD',\n month: 'YYYY-MM',\n week: 'YYYY-wo',\n range: 'YYYY-MM-DD HH:mm:ss'\n};\n\nconst getType = function (ctx) {\n const type = ctx.prop.props.type;\n if (['date', 'month', 'week', 'range'].indexOf(type) === -1) return 'date';\n return type;\n};\n\nconst toMoment = function (val) {\n return val instanceof moment ? val : moment(val);\n};\n\nfunction getFormat(ctx) {\n return ctx.prop.props.format || (ctx.el ? ctx.el.format : '') || FORMAT_TYPE[getType(ctx)];\n}\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'month', 'week'].reduce((initial, type) => {\n initial[type] = creatorFactory(name, {type});\n return initial\n }, {\n dateRange: creatorFactory(name, {type:'range'}),\n datetimeRange: creatorFactory(name, m => m.props({type: 'range', showTime: true}))\n })\n }()),\n toFormValue(value, ctx) {\n let parseValue, type = getType(ctx);\n const isArr = Array.isArray(value);\n if (type === 'range') {\n if (isArr) {\n parseValue = value.map(v => v ? toMoment(v) : null);\n } else {\n parseValue = []\n }\n } else {\n parseValue = isArr ? ((value[0] ? toMoment(value[0]) : null) || null) : (value ? toMoment(value) : null);\n }\n return parseValue;\n },\n toValue(formValue, ctx) {\n const format = getFormat(ctx);\n if (Array.isArray(formValue))\n return formValue.map(v => v ? v.format(format) : v);\n else\n return formValue ? formValue.format(format) : formValue;\n },\n render(children, ctx) {\n const type = getType(ctx) + 'Picker';\n return ctx.$render.vNode[type](ctx.prop, children);\n }\n\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\n\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value),\n },\n render() {\n return [];\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'input';\nexport default {\n name,\n maker: (function () {\n return ['password', 'url', 'email', 'text', 'textarea', 'search'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type});\n return maker;\n }, {\n idate: creatorFactory(name, {type:'date'})\n });\n }()),\n render(children, ctx) {\n let type = ctx.prop.props.type;\n if (['textarea', 'search'].indexOf(type) === -1) type = 'input';\n\n type = (type === 'textarea' ? 'ATextarea' : (type === 'search' ? 'AInputSearch' : 'AInput'));\n return ctx.$render.vNode.make(type, ctx.prop, children);\n }\n}\n","import moment from 'moment';\n\nconst toMoment = function (val, format) {\n return val instanceof moment ? val : moment(val, format);\n};\n\nfunction getFormat(ctx) {\n return ctx.prop.props.format || (ctx.el ? ctx.el.format : '') || 'HH:mm:ss';\n}\n\nexport default {\n name: 'timePicker',\n toFormValue(value, ctx) {\n return value ? toMoment(value, getFormat(ctx)) : null;\n },\n\n toValue(formValue, ctx) {\n return formValue ? formValue.format(getFormat(ctx)) : formValue;\n },\n\n}\n\n","export default {\n name: 'tree',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.replaceFields)\n props.replaceFields = {\n key: 'id'\n };\n else if (!props.replaceFields.key) props.replaceFields.key = 'id';\n props.checkedKeys = ctx.rule.value;\n props.checkable = true;\n },\n\n}\n\n","export default {\n name: 'FcRow',\n render(_, ctx) {\n return ctx.vNode.col({props: {span: 24}}, [\n ctx.vNode.row(ctx.prop, _)\n ])\n }\n}","import checkbox from './checkbox';\nimport radio from './radio';\nimport select from './select';\nimport datePicker from './datePicker';\nimport hidden from './hidden';\nimport input from './input';\nimport timePicker from './timePicker';\nimport tree from './tree';\nimport row from './row';\n\nexport default [\n checkbox,\n datePicker,\n hidden,\n input,\n timePicker,\n tree,\n radio,\n select,\n row,\n]\n","const PRE = 'a';\nexport default {\n tooltip: PRE + 'Tooltip',\n popover: PRE + 'Popover',\n button: PRE + 'Button',\n icon: PRE + 'Icon',\n slider: PRE + 'Slider',\n rate: PRE + 'Rate',\n upload: 'fcUpload',\n cascader: PRE + 'Cascader',\n timePicker: PRE + 'TimePicker',\n datePicker: PRE + 'DatePicker',\n rangePicker: PRE + 'RangePicker',\n weekPicker: PRE + 'WeekPicker',\n monthPicker: PRE + 'MonthPicker',\n 'switch': PRE + 'Switch',\n select: PRE + 'Select',\n checkbox: PRE + 'CheckboxGroup',\n radio: PRE + 'RadioGroup',\n inputNumber: PRE + 'InputNumber',\n search: PRE + 'InputSearch',\n textarea: PRE + 'Textarea',\n formItem: PRE + 'FormModelItem',\n form: PRE + 'FormModel',\n frame: 'fcFrame',\n col: PRE + 'Col',\n row: PRE + 'Row',\n tree: PRE + 'Tree',\n autoComplete: PRE + 'AutoComplete',\n group: 'fcGroup',\n subForm: 'fcSubForm',\n object: 'fcSubForm',\n}\n","const UNDEF = undefined;\n\nexport default function getConfig() {\n return {\n form: {\n hideRequiredMark: false,\n layout: 'horizontal',\n labelAlign: 'right',\n labelCol: {\n span: 3\n },\n wrapperCol: {\n span: 21\n },\n validateOnRuleChange: true\n },\n row: {\n gutter: 0,\n },\n submitBtn: {\n disabled: false,\n loading: false,\n type: 'primary',\n innerText: '提交',\n show: true,\n col: UNDEF,\n click: UNDEF,\n },\n resetBtn: {\n disabled: false,\n icon: 'sync',\n loading: false,\n type: 'default',\n innerText: '重置',\n show: false,\n col: UNDEF,\n click: UNDEF\n },\n };\n}\n","import getConfig from './config';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\n\nfunction isTooltip(info) {\n return info.type === 'tooltip';\n}\n\nfunction tidy(props, name) {\n if (!hasProperty(props, name)) return;\n if (is.String(props[name])) {\n props[name] = {[name]: props[name], show: true};\n }\n}\n\nfunction isFalse(val) {\n return val === false;\n}\n\nfunction tidyBool(opt, name) {\n if (hasProperty(opt, name) && !is.Object(opt[name])) {\n opt[name] = {show: !!opt[name]};\n }\n}\n\nexport default {\n validate(call) {\n this.form().validate(call);\n },\n validateField(field, call) {\n this.form().validateField(field, call);\n },\n clearValidateState(ctx) {\n const fItem = this.vm.$refs[ctx.wrapRef];\n if (fItem) {\n fItem.validateMessage = '';\n fItem.validateState = '';\n }\n },\n tidyOptions(options) {\n ['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col'].forEach(name => {\n tidyBool(options, name);\n })\n return options;\n },\n tidyRule({prop}) {\n tidy(prop, 'title');\n tidy(prop, 'info');\n return prop;\n },\n mergeProp(ctx) {\n ctx.prop = mergeProps([{\n info: this.options.info || {},\n wrap: this.options.wrap || {},\n col: this.options.col || {},\n }, ctx.prop], {\n info: {\n type: 'popover',\n placement: 'topLeft',\n icon: 'question-circle-o'\n },\n title: {},\n col: {span: 24},\n wrap: {},\n }, {normal: ['title', 'info', 'col', 'wrap']});\n },\n getDefaultOptions() {\n return getConfig();\n },\n update() {\n const form = this.options.form;\n this.rule = {\n props: {...form},\n nativeOn: {\n submit: (e) => {\n e.preventDefault();\n }\n },\n class: [form.className, form.class, 'form-create'],\n style: form.style,\n type: 'form',\n };\n },\n beforeRender() {\n const {key, ref, $handle} = this;\n extend(this.rule, {key, ref});\n extend(this.rule.props, {\n model: $handle.formData,\n rules: $handle.validate(),\n });\n },\n render(children) {\n if (children.length) {\n children.push(this.makeFormBtn());\n }\n return this.$r(this.rule, isFalse(this.options.row.show) ? children : [this.makeRow(children)]);\n },\n makeWrap(ctx, children) {\n const rule = ctx.prop;\n const uni = `${this.key}${ctx.key}`;\n const col = rule.col;\n const {layout, col: _col} = this.rule.props;\n const item = isFalse(rule.wrap.show) ? children : this.$r(mergeProps([rule.wrap, {\n props: {\n ...(rule.wrap || {}),\n prop: ctx.id,\n rules: rule.validate,\n ...(layout !== 'horizontal' ? {labelCol: {}, wrapperCol: {}} : {})\n },\n class: rule.className,\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), [children, this.makeInfo(rule, uni)]);\n return (layout === 'inline' || isFalse(_col) || isFalse(col.show)) ? item : this.makeCol(rule, uni, [item]);\n },\n makeInfo(rule, uni) {\n const titleProp = rule.title;\n const infoProp = rule.info;\n if (this.options.form.title === false) return false;\n if ((!titleProp.title && !titleProp.native) || isFalse(titleProp.show)) return;\n const isTool = isTooltip(infoProp);\n const children = [titleProp.title];\n\n if (!isFalse(infoProp.show) && (infoProp.info || infoProp.native) && !isFalse(infoProp.icon)) {\n const prop = {\n type: infoProp.type || 'popover',\n props: {...infoProp},\n key: `${uni}pop`,\n slot: 'label',\n };\n const field = isTool ? 'title' : 'content';\n if (infoProp.info && !hasProperty(prop.props, field)) {\n prop.props[field] = infoProp.info;\n }\n children[infoProp.align !== 'left' ? 'unshift' : 'push'](this.$r(mergeProps([infoProp, prop]), [\n this.$r({\n type: 'icon',\n props: {type: infoProp.icon === true ? 'question-circle-o' : infoProp.icon},\n key: `${uni}i`\n })\n ]));\n }\n return this.$r(mergeProps([titleProp, {\n props: titleProp,\n slot: titleProp.slot || 'label',\n key: `${uni}tit`,\n type: titleProp.type || 'span',\n }]), children);\n },\n makeCol(rule, uni, children) {\n const col = rule.col;\n return this.$r({\n class: col.class,\n type: 'col',\n props: col || {span: 24},\n key: `${uni}col`\n }, children);\n },\n makeRow(children) {\n const row = this.options.row || {};\n return this.$r({\n type: 'row',\n props: row,\n class: row.class,\n key: `${this.key}row`\n }, children)\n },\n makeFormBtn() {\n let vn = [];\n if (!isFalse(this.options.submitBtn.show)) {\n vn.push(this.makeSubmitBtn())\n }\n if (!isFalse(this.options.resetBtn.show)) {\n vn.push(this.makeResetBtn())\n }\n if (!vn.length) {\n return;\n }\n let {labelCol, wrapperCol, layout} = this.rule.props;\n if (layout !== 'horizontal') {\n labelCol = wrapperCol = {};\n }\n const item = this.$r({\n type: 'formItem',\n key: `${this.key}fb`,\n props: {\n labelCol,\n wrapperCol,\n label: ' ', colon: false\n }\n }, vn);\n\n return layout === 'inline'\n ? item\n : this.$r({\n type: 'col',\n props: {span: 24},\n key: `${this.key}fc`\n }, [item]);\n },\n makeResetBtn() {\n const resetBtn = this.options.resetBtn;\n return this.$r({\n type: 'button',\n props: resetBtn,\n style: {width: resetBtn.width, marginLeft: '10px'},\n on: {\n click: () => {\n const fApi = this.$handle.api;\n resetBtn.click\n ? resetBtn.click(fApi)\n : fApi.resetFields();\n }\n },\n key: `${this.key}b2`,\n }, [resetBtn.innerText]);\n },\n makeSubmitBtn() {\n const submitBtn = this.options.submitBtn;\n\n return this.$r({\n type: 'button',\n props: submitBtn,\n style: {width: submitBtn.width},\n on: {\n click: () => {\n const fApi = this.$handle.api;\n submitBtn.click\n ? submitBtn.click(fApi)\n : fApi.submit();\n }\n },\n key: `${this.key}b1`,\n }, [submitBtn.innerText]);\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst maker = {};\n\nfunction useAlias(maker) {\n ['upload', 'frame', 'autoComplete', 'cascader', 'datePicker', 'frame', 'inputNumber', 'radio', 'rate', 'switch', 'rate', 'slider', 'timePicker'].reduce((maker, name) => {\n maker[name] = creatorFactory(name);\n return maker;\n }, maker);\n maker.auto = maker.autoComplete;\n maker.number = maker.inputNumber;\n maker.time = maker.timePicker;\n}\n\nfunction useFrame(maker) {\n const types = {\n frameInputs: ['input', 0],\n frameFiles: ['file', 0],\n frameImages: ['image', 0],\n frameInputOne: ['input', 1],\n frameFileOne: ['file', 1],\n frameImageOne: ['image', 1]\n };\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('frame', m => m.props({type: types[key][0], maxLength: types[key][1]}));\n return maker\n }, maker);\n\n maker.frameInput = maker.frameInputs;\n maker.frameFile = maker.frameFiles;\n maker.frameImage = maker.frameImages;\n}\n\nfunction useSlider(maker) {\n maker['sliderRange'] = creatorFactory('slider', {range: true})\n}\n\nfunction useSelect(m) {\n const name = 'select';\n m.selectMultiple = creatorFactory(name, {mode:'multiple'});\n m.selectTags = creatorFactory(name, {mode: 'tags'});\n m.selectCombobox = creatorFactory(name, {mode:'combobox'});\n}\n\nfunction useUpload(maker) {\n const types = {\n image: ['image', 0],\n file: ['file', 0],\n uploadFileOne: ['file', 1],\n uploadImageOne: ['image', 1],\n };\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory('upload', m => m.props({uploadType: types[key][0], maxLength: types[key][1]}));\n return maker\n }, maker);\n\n maker.uploadImage = maker.image;\n maker.uploadFile = maker.file;\n}\n\nuseAlias(maker);\nuseSlider(maker);\nuseFrame(maker);\nuseUpload(maker);\nuseSelect(maker);\n\nexport default maker;\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '@form-create/core/src/frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nfunction tidyBtnProp(btn, def) {\n if (is.Boolean(btn))\n btn = {show: btn};\n else if (!is.Undef(btn) && !is.Object(btn)) btn = {show: def};\n return btn;\n}\n\nexport default function extendApi(api, h) {\n extend(api, {\n validate(callback) {\n let flag;\n const forms = api.children;\n let len = forms.length;\n const validate = () => {\n h.$manager.validate((...args) => {\n if (!args[0] || !flag) {\n flag = args;\n }\n callback && callback(...flag);\n });\n };\n\n const validFn = (args) => {\n setTimeout(() => {\n if (!args[0]) {\n if (!flag) {\n flag = args;\n }\n }\n if (!--len) {\n validate();\n }\n });\n };\n\n forms.forEach(form => {\n form.validate((...args) => validFn(args))\n })\n\n if (!len) {\n validate();\n }\n },\n validateField: (field, callback) => {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n const sub = h.subForm[ctx.id];\n let len = 0;\n let flag;\n const validate = () => {\n h.$manager.validateField(ctx.id, (...args) => {\n if (args[0]) {\n flag = args;\n } else if (flag) {\n return callback && callback('子表单验证未通过', flag[1]);\n }\n callback && callback(...flag || args);\n });\n };\n const validFn = (args) => {\n setTimeout(() => {\n if (!args[0]) {\n if (!flag) {\n flag = args;\n }\n }\n if (!--len) {\n validate();\n }\n });\n };\n sub && toArray(sub).forEach(form => {\n len++;\n form.validate((...args) => validFn(args))\n });\n\n if (!len) {\n validate();\n }\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach(field => {\n if (clearSub) this.clearSubValidateState(field);\n h.getCtxs(field).forEach(ctx => {\n h.$manager.clearValidateState(ctx);\n });\n });\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n const subForm = h.subForm[ctx.id];\n if (!subForm) return;\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.clearValidateState();\n })\n } else if (subForm) {\n subForm.clearValidateState();\n }\n });\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.submitBtnProps({show: !!isShow});\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.resetBtnProps({show: !!isShow});\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true);\n extend(btn, props);\n h.options.submitBtn = btn;\n api.refreshOptions();\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false);\n extend(btn, props);\n h.options.resetBtn = btn;\n api.refreshOptions();\n },\n submit(successFn, failFn) {\n api.validate((valid) => {\n if (valid) {\n let formData = api.formData();\n if (is.Function(successFn))\n invoke(() => successFn(formData, this));\n else {\n is.Function(h.options.onSubmit) && invoke(() => h.options.onSubmit(formData, this));\n h.vm.$emit('submit', formData, this);\n }\n } else {\n is.Function(failFn) && invoke(() => failFn(this, ...arguments));\n }\n });\n },\n });\n\n return api;\n}\n","import components from '../components';\nimport parsers from '../parsers';\nimport alias from './alias';\nimport manager from './manager';\nimport FormCreateFactory from '@form-create/core/src/index';\nimport makers from './maker';\nimport '../style/index.css';\nimport extendApi from './api';\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias);\n\n components.forEach(component => {\n FormCreate.component(component.name, component);\n });\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser);\n });\n\n Object.keys(makers).forEach(name => {\n FormCreate.maker[name] = makers[name];\n });\n}\n\nexport default function antdvFormCreate() {\n return FormCreateFactory({\n ui: `${process.env.UI}`,\n version: `${process.env.VERSION}`,\n manager,\n install,\n extendApi,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info'],\n }\n });\n}\n","import antdvFormCreate from './core/index';\n\nconst FormCreate = antdvFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreate = FormCreate;\n if (window.Vue) {\n FormCreate.install(window.Vue);\n }\n}\n\nconst maker = FormCreate.maker;\n\nexport {maker}\n\nexport default FormCreate;\n"],"names":["_extends","Object","assign","a","b","c","arguments","length","d","prototype","hasOwnProperty","call","apply","this","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","e","concat","f","g","h","i","mergeFn","toString","val","_typeof","JSON","stringify","String","$set","target","field","value","Vue","set","$del","is","type","arg","Undef","v","Element","nodeType","trueArray","data","isArray","Function","getType","str","exec","empty","hasProperty","rule","k","deepExtend","origin","mode","isArr","key","clone","nst","undefined","_clone","getRule","__json","__origin","filter","__ctrl","deepCopy","toArray","getSlot","slots","exclude","keys","lst","name","push","forEach","t","parseFile","file","uid","url","getFileName","status","split","pop","parseUpload","NAME","formCreateParser","toFormValue","toValue","formValue","ctx","prop","props","limit","Number","formCreateInject","required","onSuccess","onHandle","previewImage","previewVisible","modalTitle","previewMask","fileList","map","defaultUploadList","uploadList","watch","n","$refs","upload","sFileList","methods","handleChange","list","input","splice","$emit","render","isShow","on","bind","defaultFileList","$slots","mask","title","footer","_this","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","helper","Boolean","disabled","src","icon","width","height","maxLength","okBtnText","closeBtnText","handleIcon","allowRemove","onOpen","onOk","onCancel","onLoad","onBeforeRemove","onRemove","getSrc","modal","srcKey","reload","closeBtn","okBtn","frameVisible","unique","closeModal","close","$off","showModal","makeInput","readonly","makeGroup","children","makeBtn","makeItem","index","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","_this2","handleClick","_this3","handleRemove","makeFiles","_this4","makeImages","_this5","_this6","frameLoad","iframe","api","_this7","get","fn","$on","onClose","console","log","makeFooter","$props","node","_this8","Node","$nextTick","_this9","frame","contentWindow","visible","mounted","extend","rules","expand","options","button","max","min","defaultValue","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","handler","o","item","$f","formData","deferSyncValue","setValue","once","deep","expandRule","total","addRule","removeRule","_value","cache","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","makeIcon","$scopedSlots","vm","emitEvent","args","created","$form","Type","inFor","option","extendOption","span","pull","group","subForm","mergeProp","checkbox","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","destroyed","validate","renderRule","ctxInject","updateValue","isMore","formCreate","_refresh","_renderRule","_updateValue","initOptions","refresh","every","$handle","reloadRule","beforeCreate","$options","propsData","fapi","rmSubForm","sub","getSubForm","idx","$watch","addSubForm","immediate","mergeProps","objects","initial","opt","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","format","msg","tip","warn","err","error","logError","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","eval","parseFn","trim","flag","replace","__inject","parseJson","json","parse","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","baseRule","hidden","display","creatorFactory","init","maker","Creator","_data","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","id","getFieldCtx","appendValue","appendData","getValue","ctxs","fieldCtx","removeField","getCtx","rm","destroy","$el","parentNode","removeChild","$destroy","append","after","child","sort","root","prepend","state","hiddenStatus","displayStatus","all","component","nameCtx","updateOptions","fc","onSubmit","sync","deleted","clearCacheAll","refreshOptions","$manager","hideForm","hide","changeStatus","clearChangeStatus","updateRule","updateRules","mergeRules","setEffect","attr","substr","effect","updateValidate","updateValidates","validates","refreshValidate","resetFields","method","el","trigger","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","setCache","vnode","slot","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","toLocaleLowerCase","uniqueId","Math","random","Date","now","deepSet","to","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","onInput","parseSide","side","renderSides","temp","prefix","suffix","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","preview","makeWrap","custom","onMounted","getFormData","callback","expression","__rule__","isRm","rmCtx","defaultRender","vNode","makeComponent","alias","aliasMap","_this10","handle","CreateNode","useInject","Handler","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","watching","loading","unshift","EVENT","usePage","page","first","getLimit","parseInt","pageEnd","pageLoad","pageFn","loadRule","ceil","clearNextTick","clearTimeout","bindNextTick","setTimeout","loadedId","RuleContext","wrapRef","linkOn","ctrlRule","payload","updateType","updateKey","update","useLoader","parseRule","_rule","fullRule","loadFn","loadCtrl","control","ctrl","syncProp","pre","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","check","isCtrl","bindParser","setCtx","_preIndex","preIndex","r","updated","refreshUpdate","defineProperty","valueHandle","refreshControl","useCtrl","controls","getCtrl","handleFn","findCtrl","isHidden","hideLst","reverse","ruleCon","ctrlCtx","_reloadRule","initData","reloading","nextReload","useInput","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","toEmpty","deferSyncFn","strFn","refreshRule","appendLink","link","effectData","clearEffectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","BaseParser","noneKey","useContext","getNameCtx","setIdCtx","rmIdCtx","isMounted","getParser","parsers","noWatchFn","rmSub","watchEffect","useLifecycle","_mounted","lifecycle","useEffect","useProvider","ps","providers","_c","getComponent","onEffect","provider","used","_used","emitEffect","getEffect","p","getProp","clearProp","arr","components","manager","extendApi","getError","action","xhr","getBody","text","responseText","response","fetch","XMLHttpRequest","onerror","onError","onload","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","__init","functional","parseProp","domProps","innerHTML","CreateNodeFactory","setVm","tag","config","isReservedTag","nativeOn","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","$fetch","loaded","run","$required","load","parseVal","validator","_","message","parseOpt","body","join","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","instance","FormCreateFactory","fragment","directives","$provider","globalConfig","getApi","directive","register","componentAlias","base","$vnode","install","_opt","inherit","_config","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","html","FORMAT_TYPE","date","month","week","range","toMoment","moment","getFormat","dateRange","datetimeRange","m","showTime","idate","replaceFields","checkedKeys","checkable","col","row","datePicker","timePicker","tree","radio","select","PRE","tooltip","popover","slider","rate","cascader","rangePicker","weekPicker","monthPicker","inputNumber","search","textarea","formItem","autoComplete","object","UNDEF","getConfig","hideRequiredMark","layout","labelAlign","labelCol","wrapperCol","validateOnRuleChange","gutter","innerText","show","click","isTooltip","info","tidy","isFalse","tidyBool","validateField","clearValidateState","fItem","validateMessage","validateState","wrap","placement","submit","preventDefault","className","makeFormBtn","makeRow","uni","_col","makeInfo","makeCol","titleProp","infoProp","isTool","align","makeSubmitBtn","makeResetBtn","label","colon","marginLeft","fApi","useAlias","auto","number","time","useFrame","types","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","frameInput","frameFile","frameImage","useSlider","useSelect","selectMultiple","selectTags","selectCombobox","useUpload","image","uploadFileOne","uploadImageOne","uploadType","uploadImage","uploadFile","tidyBtnProp","btn","forms","validFn","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","antdvFormCreate","process"],"mappings":"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"}
\No newline at end of file