@form-create/element-ui 2.5.23 → 2.5.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form-create.js +202 -150
- package/dist/form-create.min.js +2 -2
- package/dist/form-create.min.js.map +1 -1
- package/package.json +11 -12
- package/types/config.d.ts +8 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-create.min.js","sources":["../../../node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","../../utils/lib/slot.js","../../../components/element-ui/checkbox/src/component.jsx","../../utils/lib/toarray.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/element-ui/frame/src/component.jsx","../../../components/element-ui/radio/src/component.jsx","../../utils/lib/type.js","../../../components/element-ui/select/src/component.jsx","../../../components/element-ui/tree/src/component.jsx","../../../components/element-ui/upload/src/component.jsx","../../utils/lib/modify.js","../../utils/lib/deepextend.js","../../utils/lib/extend.js","../../../components/element-ui/group/src/component.jsx","../../../components/common/subform/src/component.jsx","../src/components/index.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/tostring.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/slider.js","../src/parsers/timePicker.js","../src/parsers/row.js","../src/parsers/select.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 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 getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcCheckbox';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Array,\n default: () => []\n },\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => n.indexOf(opt.label) !== -1).map((opt) => opt.value).filter(v => v !== undefined));\n },\n update() {\n this.trueValue = this.value ? this.options().filter((opt) => this.value.indexOf(opt.value) !== -1)\n .map((option) => option.label) : []\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElCheckboxGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElCheckboxButton' : 'ElCheckbox';\n delete props.value;\n return <Type {...{props}} key={Type + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</ElCheckboxGroup>\n }\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\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: 'el-icon-upload2'\n },\n width: {\n type: String,\n default: '500px'\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 src(n) {\n this.modalVm && (this.modalVm.src = n);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModel(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 handleCancel() {\n this.previewVisible = false;\n },\n\n showModel() {\n if (this.disabled || false === this.onOpen()) {\n return;\n }\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 <ElInput props={props} key={this.key('input')}>\n {this.fileList.length ? <i slot=\"suffix\" class=\"el-input__icon el-icon-circle-close\"\n on-click={() => this.fileList = []}/> : null}\n <ElButton icon={this.icon} on={{'click': () => this.showModel()}} slot=\"append\"/>\n </ElInput>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength) {\n children.push(this.makeBtn());\n }\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\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 }\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 <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <i class=\"el-icon-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, [<i class=\"el-icon-tickets\"\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.showModel()} key={this.key('btn')}>\n <i class={this.icon}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) {\n return;\n }\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.closeModel();\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 if (!footer) {\n return;\n }\n return <div slot=\"footer\">\n {closeBtn ? <ElButton\n on-click={() => (this.onCancel() !== false && (this.frameVisible = false))}>{closeBtnText}</ElButton> : null}\n {okBtn ? <ElButton type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</ElButton> : null}\n </div>\n }\n },\n render() {\n const type = this.type;\n\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\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 <el-dialog appendToBody={true} modal={this.previewMask} title={modalTitle} visible={this.previewVisible}\n on-close={this.handleCancel}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n <el-dialog appendToBody={true} {...{props:{width, title, ...this.modal}}} visible={this.frameVisible}\n on-close={() => (this.closeModel(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 {this.makeFooter()}\n </el-dialog>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n}\n","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcRadio';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {},\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => opt.label === n).reduce((initial, opt) => opt.value, ''));\n },\n update() {\n this.trueValue = this.options().filter((opt) => opt.value === this.value).reduce((initial, opt) => opt.label, '');\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElRadioGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElRadioButton' : 'ElRadio';\n delete props.value;\n return <Type {...{props}} key={Type + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</ElRadioGroup>\n }\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 is from '@form-create/utils/lib/type';\n\nconst NAME = 'fcSelect';\nexport default {\n name: NAME,\n functional: true,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n },\n render(h, ctx) {\n const options = ctx.props.formCreateInject.options;\n return <ElSelect {...ctx.data}>{(Array.isArray(options) ? options : []).map((props, index) => {\n const slot = props.slot;\n return <ElOption {...{props}}\n key={'' + index + '-' + props.value}>\n {slot ? <template\n slot={props.slotName || 'default'}>{is.Function(slot) ? props.slot(h) : slot}</template> : null}\n </ElOption>\n })}{ctx.children}</ElSelect>;\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcTree';\n\nexport default {\n name: NAME,\n formCreateParser: {\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.nodeKey) props.nodeKey = 'id';\n if (!props.props) props.props = {\n label: 'title'\n };\n }\n },\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'checked'\n },\n value: {\n type: [Array, String, Number],\n default: () => ([])\n }\n },\n watch: {\n value() {\n this.setValue();\n }\n },\n methods: {\n onChange() {\n this.updateValue()\n },\n updateValue() {\n if (!this.$refs.tree) return;\n const type = this.type.toLocaleLowerCase();\n let value;\n\n if (type === 'selected') {\n value = this.$refs.tree.getCurrentKey();\n } else {\n value = this.$refs.tree.getCheckedKeys();\n }\n\n this.$emit('input', value);\n },\n setValue() {\n const type = this.type.toLocaleLowerCase();\n\n if (type === 'selected') {\n this.$refs.tree.setCurrentKey(this.value);\n } else {\n this.$refs.tree.setCheckedKeys(toArray(this.value));\n }\n }\n },\n render() {\n return <ElTree {...this.formCreateInject.prop} ref=\"tree\" on-check={() => this.updateValue()}\n on-node-click={() => this.updateValue()}>{getSlot(this.$slots)}</ElTree>;\n },\n mounted() {\n this.setValue();\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport getSlot from '@form-create/utils/lib/slot';\nimport './style.css';\n\nfunction parseFile(file, i) {\n return {\n url: file,\n name: getFileName(file),\n uid: i\n };\n}\n\nfunction getFileName(file) {\n return ('' + file).split('/').pop()\n}\n\nconst NAME = 'fcUpload';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n onHandle: {\n type: Function,\n default(file) {\n this.previewImage = file.url;\n this.previewVisible = true;\n }\n },\n uploadType: {\n type: String,\n default: 'file'\n },\n limit: {\n type: Number,\n default: 0\n },\n allowRemove: {\n type: Boolean,\n default: true\n },\n previewMask: undefined,\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: () => undefined\n },\n value: [Array, String]\n },\n data() {\n return {\n uploadList: [],\n previewVisible: false,\n previewImage: '',\n cacheFiles: [],\n }\n },\n created() {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = false;\n }\n this.formCreateInject.prop.props.fileList = toArray(this.value).map(parseFile);\n },\n watch: {\n value(n) {\n if (this.$refs.upload.uploadFiles.every(file => {\n return !file.status || file.status === 'success';\n })) {\n this.$refs.upload.uploadFiles = toArray(n).map(parseFile);\n this.uploadList = this.$refs.upload.uploadFiles;\n }\n },\n limit(n, o) {\n if (o === 1 || n === 1) {\n this.update();\n }\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n isDisabled() {\n return this.formCreateInject.prop.props.disabled === true;\n },\n onRemove(file) {\n if (this.isDisabled()) {\n return;\n }\n this.$refs.upload.handleRemove(file);\n },\n handleClick(file) {\n this.onHandle(file);\n },\n makeItem(file, index) {\n return this.uploadType === 'image'\n ? <img src={file.url} key={this.key('img' + index)}/>\n : <i class=\"el-icon-tickets\" key={this.key('i' + index)}/>\n },\n makeRemoveIcon(file, index) {\n return <i class=\"el-icon-delete\" on-click={() => this.onRemove(file)} key={this.key('ri' + index)}/>;\n },\n makeHandleIcon(file, index) {\n return <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(file)} key={this.key('hi' + index)}/>;\n },\n makeProgress(file, index) {\n return <ElProgress props={{percentage: file.percentage, type: 'circle', width: 52}} style=\"margin-top:2px;\"\n key={this.key('pg' + index)}/>\n },\n makeIcons(file, index) {\n const icons = [];\n if (this.allowRemove || this.handleIcon !== false) {\n if ((this.uploadType !== 'file' && this.handleIcon !== false) || (this.uploadType === 'file' && this.handleIcon)) {\n icons.push(this.makeHandleIcon(file, index));\n }\n if (this.allowRemove) {\n icons.push(this.makeRemoveIcon(file, index));\n }\n\n return <div class='fc-upload-cover'>{icons}</div>;\n }\n },\n makeFiles() {\n return this.uploadList.map((file, index) => this.$scopedSlots.fileList ? this.$scopedSlots.fileList({\n file,\n index,\n vm: this\n }) : <div key={this.key(index)}\n class='fc-files'>{(file.percentage !== undefined && file.status !== 'success') ? this.makeProgress(file, index) : [this.makeItem(file, index), this.makeIcons(file, index)]}</div>);\n },\n makeUpload() {\n const isShow = (!this.limit || this.limit > this.uploadList.length);\n return <ElUpload {...this.formCreateInject.prop} ref=\"upload\"\n style={{display: 'inline-block'}}\n key={this.key('upload')}>\n {isShow ? <template slot=\"default\">\n {this.$slots.default || <div class='fc-upload-btn'>\n <i class=\"el-icon-upload2\"/>\n </div>}\n </template> : null}{getSlot(this.$slots, ['default'])}\n </ElUpload>;\n },\n update() {\n let files = this.$refs.upload.uploadFiles.map((file) => file.url).filter((url) => url !== undefined);\n if(this.cacheFiles.length !== files.length){\n this.cacheFiles = [...files];\n this.$emit('input', this.limit === 1 ? (files[0] || '') : files);\n }\n },\n handleCancel() {\n this.previewVisible = false;\n },\n },\n render() {\n if (this.$refs.upload) {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = this.$refs.upload.showFileList;\n }\n this.formCreateInject.prop.props.fileList = this.$refs.upload.fileList;\n }\n return (\n <div\n class='_fc-upload'>{[this.formCreateInject.prop.props.showFileList ? [] : this.makeFiles(), this.makeUpload()]}\n <el-dialog appendToBody={true} modal={this.previewMask} title={this.modalTitle}\n visible={this.previewVisible}\n on-close={this.handleCancel}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.uploadFiles;\n this.$watch(() => this.$refs.upload.uploadFiles, () => {\n this.update();\n }, {deep: true});\n }\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","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","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 <i key={`a${key}`} class=\"el-icon-circle-plus-outline\"\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 <i key={`d${key}`} class=\"el-icon-remove-outline\"\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 })) : <i key={'a_def'} class=\"el-icon-circle-plus-outline\"\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 <ElRow align=\"middle\" type=\"flex\" key={key}\n style=\"border-bottom:1px dashed #DCDFE6;margin-bottom:10px;\">\n <ElCol span={button ? 20 : 24}><ElFormItem><Type\n key={key} inFor={true}\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 value={this.field ? {[this.field]: this._value(this.value[index])} : this.value[index]}\n rule={rule}\n option={options} extendOption={true}/></ElFormItem></ElCol>\n {button ? <ElCol span={2} pull={1} push={1}>{this.makeIcon(keys.length, index, key)}</ElCol> : null}\n </ElRow>\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 rule={rule}\n option={options} extendOption={true}/>\n }\n}\n","import checkbox from '@form-create/component-elm-checkbox/src/index';\nimport frame from '@form-create/component-elm-frame/src/index';\nimport radio from '@form-create/component-elm-radio/src/index';\nimport select from '@form-create/component-elm-select/src/index';\nimport tree from '@form-create/component-elm-tree/src/index';\nimport upload from '@form-create/component-elm-upload/src/index';\nimport group from '@form-create/component-elm-group/src/index';\nimport subForm from '@form-create/component-subform/src/index';\n\n\nexport default [\n checkbox,\n frame,\n radio,\n select,\n tree,\n upload,\n group,\n subForm,\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 cache.use = true;\n return cache.vnode;\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 toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\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 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 this.vm.$nextTick(() => {\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 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 validate.message = rule.title + ' is required';\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 set((option.parse || ((v) => v.data))(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 {creatorFactory} from '@form-create/core/src/index';\n\nconst DEFAULT_FORMATS = {\n date: 'yyyy-MM-dd',\n month: 'yyyy-MM',\n datetime: 'yyyy-MM-dd HH:mm:ss',\n timerange: 'HH:mm:ss',\n daterange: 'yyyy-MM-dd',\n monthrange: 'yyyy-MM',\n datetimerange: 'yyyy-MM-dd HH:mm:ss',\n year: 'yyyy'\n};\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['year', 'month', 'date', 'dates', 'week', 'datetime', 'datetimeRange', 'dateRange', 'monthRange'].reduce((initial, type) => {\n initial[type] = creatorFactory(name, {type: type.toLowerCase()});\n return initial\n }, {});\n }()),\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = DEFAULT_FORMATS[props.type] || DEFAULT_FORMATS['date'];\n }\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\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 const maker = ['password', 'url', 'email', 'text', 'textarea'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type});\n return maker;\n }, {});\n\n maker.idate = creatorFactory(name, {type:'date'});\n return maker;\n }()),\n mergeProp(ctx) {\n let {props} = ctx.prop;\n if (props && props.autosize && props.autosize.minRows) {\n props.rows = props.autosize.minRows || 2;\n }\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'slider';\n\nexport default {\n name,\n maker: {\n sliderRange: creatorFactory(name, {range:true})\n },\n toFormValue(value, ctx) {\n let isArr = Array.isArray(value), props = ctx.prop.props, min = props.min || 0,\n parseValue;\n if (props.range === true) {\n parseValue = isArr ? value : [min, (parseFloat(value) || min)];\n } else {\n parseValue = isArr ? (parseFloat(value[0]) || min) : parseFloat(value);\n }\n return parseValue;\n }\n\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'timePicker';\n\nexport default {\n name,\n maker: {\n time: creatorFactory(name, (m) => m.props.isRange = false),\n timeRange: creatorFactory(name, (m) => m.props.isRange = true)\n },\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = 'HH:mm:ss';\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 toArray from '@form-create/utils/lib/toarray';\n\nconst name = 'select';\n\nexport default {\n name,\n toFormValue(value, ctx) {\n if (ctx.prop.props.multiple && !Array.isArray(value)) {\n return toArray(value)\n } else {\n return value;\n }\n }\n\n}\n","import datePicker from './datePicker';\nimport hidden from './hidden';\nimport input from './input';\nimport slider from './slider';\nimport timePicker from './timePicker';\nimport row from './row';\nimport select from './select';\n\nexport default [\n datePicker,\n hidden,\n input,\n slider,\n timePicker,\n row,\n select\n]\n","const PRE = 'el';\nexport default {\n button: PRE + 'Button',\n icon: 'i',\n slider: PRE + 'Slider',\n rate: PRE + 'Rate',\n upload: 'fcUpload',\n cascader: PRE + 'Cascader',\n popover: PRE + 'Popover',\n tooltip: PRE + 'Tooltip',\n colorPicker: PRE + 'ColorPicker',\n timePicker: PRE + 'TimePicker',\n timeSelect: PRE + 'TimeSelect',\n datePicker: PRE + 'DatePicker',\n 'switch': PRE + 'Switch',\n select: 'fcSelect',\n checkbox: 'fcCheckbox',\n radio: 'fcRadio',\n inputNumber: PRE + 'InputNumber',\n number: PRE + 'InputNumber',\n input: PRE + 'Input',\n formItem: PRE + 'FormItem',\n form: PRE + 'Form',\n frame: 'fcFrame',\n col: PRE + 'Col',\n row: PRE + 'Row',\n tree: 'fcTree',\n autoComplete: PRE + 'Autocomplete',\n auto: PRE + 'Autocomplete',\n group: 'fcGroup',\n object: 'fcSubForm',\n subForm: 'fcSubForm',\n}\n","export default function getConfig() {\n return {\n form: {\n inline: false,\n labelPosition: 'right',\n labelWidth: '125px',\n disabled: false,\n size: undefined,\n },\n row: {\n show: true,\n gutter: 0,\n },\n submitBtn: {\n type: 'primary',\n loading: false,\n disabled: false,\n innerText: '提交',\n show: true,\n col: undefined,\n click: undefined,\n },\n resetBtn: {\n type: 'default',\n loading: false,\n disabled: false,\n icon: 'el-icon-refresh',\n innerText: '重置',\n show: false,\n col: undefined,\n click: undefined,\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 toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\n\nfunction isTooltip(info) {\n return info.type === 'tooltip';\n}\n\nconst upperCaseReg = /[A-Z]/;\n\nexport function isAttr(name, value) {\n return (!upperCaseReg.test(name) && (is.String(value) || is.Number(value)))\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 let props = ctx.prop.props;\n ctx.prop = mergeProps([{\n attrs: Object.keys(props).reduce((initial, val) => {\n if (isAttr(val, props[val]))\n initial[val] = props[val];\n return initial;\n }, {}),\n info: this.options.info || {},\n wrap: this.options.wrap || {},\n col: this.options.col || {},\n }, ctx.prop], {\n info: {\n trigger: 'hover',\n placement: 'top-start',\n icon: 'el-icon-warning',\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 isTitle = this.isTitle(rule);\n const labelWidth = (!col.labelWidth && !isTitle) ? 0 : col.labelWidth;\n const {inline, col: _col} = this.rule.props;\n const item = isFalse(rule.wrap.show) ? children : this.$r(mergeProps([rule.wrap, {\n props: {\n labelWidth: labelWidth === void 0 ? labelWidth : toString(labelWidth),\n label: isTitle ? rule.title.title : undefined,\n ...(rule.wrap || {}),\n prop: ctx.id,\n rules: rule.validate,\n },\n class: rule.className,\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), [children, isTitle ? this.makeInfo(rule, uni) : null]);\n return (inline === true || isFalse(_col) || isFalse(col.show)) ? item : this.makeCol(rule, uni, [item]);\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false;\n const title = rule.title;\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni) {\n const titleProp = rule.title;\n const infoProp = rule.info;\n const isTip = isTooltip(infoProp);\n const form = this.options.form;\n const children = [(titleProp.title || '') + (form.labelSuffix || form['label-suffix'] || '')];\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 = '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: 'i',\n slot: isTip ? 'default' : 'reference',\n class: infoProp.icon === true ? 'el-icon-warning' : 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 const item = this.$r({\n type: 'formItem',\n key: `${this.key}fb`\n }, vn);\n\n return this.rule.props.inline === true\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},\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\nuseAlias(maker);\nuseSelect(maker);\nuseTree(maker);\nuseUpload(maker);\nuseFrame(maker);\n\nfunction useAlias(maker) {\n ['group', 'tree', 'switch', 'upload', 'autoComplete', 'checkbox', 'cascader', 'colorPicker', 'datePicker', 'frame', 'inputNumber', 'radio', 'rate'].forEach(name => {\n maker[name] = creatorFactory(name);\n });\n maker.auto = maker.autoComplete;\n maker.number = maker.inputNumber;\n maker.color = maker.colorPicker;\n}\n\nfunction useSelect(maker) {\n const select = 'select';\n const multiple = 'multiple';\n maker['selectMultiple'] = creatorFactory(select, {[multiple]:true});\n maker['selectOne'] = creatorFactory(select, {[multiple]:false});\n}\n\nfunction useTree(maker) {\n const name = 'tree';\n const types = {'treeSelected': 'selected', 'treeChecked': 'checked'};\n\n Object.keys(types).reduce((m, key) => {\n m[key] = creatorFactory(name, {type:types[key]});\n return m;\n }, maker);\n}\n\nfunction useUpload(maker) {\n const name = 'upload';\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((m, key) => {\n m[key] = creatorFactory(name, m => m.props({uploadType: types[key][0], maxLength: types[key][1]}));\n return m\n }, maker);\n\n maker.uploadImage = maker.image;\n maker.uploadFile = maker.file;\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 return maker;\n}\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 elmFormCreate() {\n return FormCreateFactory({\n ui: `${process.env.UI}`,\n version: `${process.env.VERSION}`,\n manager,\n extendApi,\n install,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info'],\n }\n });\n}\n","import elmFormCreate from './core/index';\n\nconst FormCreate = elmFormCreate();\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","getSlot","slots","exclude","keys","lst","name","push","NAME","props","formCreateInject","type","required","value","String","watch","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","_this","option","created","render","prop","index","Type","_this2","$slots","toArray","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","field","helper","Boolean","disabled","src","icon","width","height","maxLength","Number","okBtnText","closeBtnText","modalTitle","handleIcon","title","allowRemove","onOpen","Function","onOk","onCancel","onLoad","onBeforeRemove","onRemove","onHandle","previewImage","getSrc","previewVisible","modal","srcKey","previewMask","footer","reload","closeBtn","okBtn","fileList","frameVisible","val","modalVm","key","unique","closeModel","close","$off","handleCancel","showModel","makeInput","toString","readonly","makeGroup","children","makeBtn","makeItem","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","handleClick","_this3","handleRemove","makeFiles","_this4","makeImages","_this5","_this6","splice","frameLoad","iframe","api","_this7","set","get","fn","$on","onClose","console","log","makeFooter","$props","_this8","node","$nextTick","_this9","$refs","frame","contentWindow","mounted","closeModal","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","slot","slotName","formCreateParser","mergeProp","nodeKey","setValue","onChange","updateValue","tree","toLocaleLowerCase","getCurrentKey","getCheckedKeys","setCurrentKey","setCheckedKeys","parseFile","file","url","getFileName","uid","split","pop","uploadType","limit","uploadList","cacheFiles","showFileList","upload","uploadFiles","every","status","o","isDisabled","makeProgress","percentage","$scopedSlots","vm","makeUpload","isShow","display","files","$watch","$set","target","Vue","$del","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","extend","rules","expand","button","max","min","defaultValue","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","item","$f","formData","deferSyncValue","once","expandRule","total","addRule","removeRule","_value","cache","JSON","stringify","input","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","makeIcon","emitEvent","args","$form","checkbox","radio","select","group","subForm","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","extendOption","inFor","destroyed","validate","renderRule","ctxInject","isMore","formCreate","_refresh","_renderRule","_updateValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","fapi","rmSubForm","sub","getSubForm","idx","addSubForm","immediate","mergeProps","objects","_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","on","hidden","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","bind","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","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","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","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","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","reverse","ruleCon","ctrlCtx","_reloadRule","initData","reloading","nextReload","useInput","toValue","formValue","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","toEmpty","toFormValue","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","list","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","onSuccess","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","__init","parseProp","domProps","innerHTML","CreateNodeFactory","setVm","tag","config","isReservedTag","nativeOn","Node","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","DEFAULT_FORMATS","date","month","datetime","timerange","daterange","monthrange","datetimerange","year","valueFormat","idate","autosize","minRows","rows","sliderRange","range","parseFloat","time","m","isRange","timeRange","col","span","row","multiple","datePicker","slider","timePicker","PRE","rate","cascader","popover","tooltip","colorPicker","timeSelect","inputNumber","number","formItem","autoComplete","auto","object","getConfig","inline","labelPosition","labelWidth","size","show","gutter","innerText","click","isTooltip","info","upperCaseReg","isAttr","test","tidy","isFalse","tidyBool","validateField","clearValidateState","fItem","validateMessage","validateState","wrap","placement","submit","preventDefault","className","makeFormBtn","makeRow","uni","isTitle","_col","makeInfo","makeCol","titleProp","infoProp","isTip","labelSuffix","align","makeSubmitBtn","makeResetBtn","fApi","useAlias","color","useSelect","useTree","types","useUpload","image","uploadFileOne","uploadImageOne","uploadImage","uploadFile","useFrame","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","frameInput","frameFile","frameImage","tidyBtnProp","btn","forms","validFn","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","elmFormCreate","process"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-create.min.js","sources":["../../../node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","../../utils/lib/slot.js","../../../components/element-ui/checkbox/src/component.jsx","../../utils/lib/toarray.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/element-ui/frame/src/component.jsx","../../../components/element-ui/radio/src/component.jsx","../../utils/lib/type.js","../../../components/element-ui/select/src/component.jsx","../../../components/element-ui/tree/src/component.jsx","../../../components/element-ui/upload/src/component.jsx","../../utils/lib/modify.js","../../utils/lib/deepextend.js","../../utils/lib/extend.js","../../../components/element-ui/group/src/component.jsx","../../../components/common/subform/src/component.jsx","../src/components/index.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/tostring.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/slider.js","../src/parsers/timePicker.js","../src/parsers/row.js","../src/parsers/select.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 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 getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcCheckbox';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Array,\n default: () => []\n },\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => n.indexOf(opt.label) !== -1).map((opt) => opt.value).filter(v => v !== undefined));\n },\n update() {\n this.trueValue = this.value ? this.options().filter((opt) => this.value.indexOf(opt.value) !== -1)\n .map((option) => option.label) : []\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElCheckboxGroup {...this.formCreateInject.prop} props={{value: this.trueValue}}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElCheckboxButton' : 'ElCheckbox';\n delete props.value;\n return <Type props={props} key={Type + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</ElCheckboxGroup>\n }\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\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: 'el-icon-upload2'\n },\n width: {\n type: String,\n default: '500px'\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 src(n) {\n this.modalVm && (this.modalVm.src = n);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModel(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 handleCancel() {\n this.previewVisible = false;\n },\n\n showModel() {\n if (this.disabled || false === this.onOpen()) {\n return;\n }\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 <ElInput props={props} key={this.key('input')}>\n {this.fileList.length ? <i slot=\"suffix\" class=\"el-input__icon el-icon-circle-close\"\n on-click={() => this.fileList = []}/> : null}\n <ElButton icon={this.icon} on={{'click': () => this.showModel()}} slot=\"append\"/>\n </ElInput>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength) {\n children.push(this.makeBtn());\n }\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\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 }\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 <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <i class=\"el-icon-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, [<i class=\"el-icon-tickets\"\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.showModel()} key={this.key('btn')}>\n <i class={this.icon}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) {\n return;\n }\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.closeModel();\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 if (!footer) {\n return;\n }\n return <div slot=\"footer\">\n {closeBtn ? <ElButton\n on-click={() => (this.onCancel() !== false && (this.frameVisible = false))}>{closeBtnText}</ElButton> : null}\n {okBtn ? <ElButton type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</ElButton> : null}\n </div>\n }\n },\n render() {\n const type = this.type;\n\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\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 <el-dialog\n props={{appendToBody: true, modal: this.previewMask, title: modalTitle, visible: this.previewVisible}}\n on-close={this.handleCancel}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n <el-dialog props={{width, title, appendToBody: true, ...this.modal, visible: this.frameVisible}}\n on-close={() => (this.closeModel(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 {this.makeFooter()}\n </el-dialog>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n}\n","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcRadio';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {},\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => opt.label === n).reduce((initial, opt) => opt.value, ''));\n },\n update() {\n this.trueValue = this.options().filter((opt) => opt.value === this.value).reduce((initial, opt) => opt.label, '');\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElRadioGroup {...this.formCreateInject.prop}\n props={{value: this.trueValue}}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElRadioButton' : 'ElRadio';\n delete props.value;\n return <Type props={props} key={Type + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</ElRadioGroup>\n }\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 is from '@form-create/utils/lib/type';\n\nconst NAME = 'fcSelect';\nexport default {\n name: NAME,\n functional: true,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n },\n render(h, ctx) {\n const options = ctx.props.formCreateInject.options;\n return <ElSelect {...ctx.data}>{(Array.isArray(options) ? options : []).map((props, index) => {\n const slot = props.slot;\n return <ElOption props={props}\n key={'' + index + '-' + props.value}>\n {slot ? <template\n slot={props.slotName || 'default'}>{is.Function(slot) ? props.slot(h) : slot}</template> : null}\n </ElOption>\n })}{ctx.children}</ElSelect>;\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcTree';\n\nexport default {\n name: NAME,\n formCreateParser: {\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.nodeKey) props.nodeKey = 'id';\n if (!props.props) props.props = {\n label: 'title'\n };\n }\n },\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'checked'\n },\n value: {\n type: [Array, String, Number],\n default: () => ([])\n }\n },\n watch: {\n value() {\n this.setValue();\n }\n },\n methods: {\n onChange() {\n this.updateValue()\n },\n updateValue() {\n if (!this.$refs.tree) return;\n const type = this.type.toLocaleLowerCase();\n let value;\n\n if (type === 'selected') {\n value = this.$refs.tree.getCurrentKey();\n } else {\n value = this.$refs.tree.getCheckedKeys();\n }\n\n this.$emit('input', value);\n },\n setValue() {\n const type = this.type.toLocaleLowerCase();\n\n if (type === 'selected') {\n this.$refs.tree.setCurrentKey(this.value);\n } else {\n this.$refs.tree.setCheckedKeys(toArray(this.value));\n }\n }\n },\n render() {\n return <ElTree {...this.formCreateInject.prop} ref=\"tree\" on-check={() => this.updateValue()}\n on-node-click={() => this.updateValue()}>{getSlot(this.$slots)}</ElTree>;\n },\n mounted() {\n this.setValue();\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport getSlot from '@form-create/utils/lib/slot';\nimport './style.css';\n\nfunction parseFile(file, i) {\n return {\n url: file,\n name: getFileName(file),\n uid: i\n };\n}\n\nfunction getFileName(file) {\n return ('' + file).split('/').pop()\n}\n\nconst NAME = 'fcUpload';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n onHandle: {\n type: Function,\n default(file) {\n this.previewImage = file.url;\n this.previewVisible = true;\n }\n },\n uploadType: {\n type: String,\n default: 'file'\n },\n limit: {\n type: Number,\n default: 0\n },\n allowRemove: {\n type: Boolean,\n default: true\n },\n previewMask: undefined,\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: () => undefined\n },\n value: [Array, String]\n },\n data() {\n return {\n uploadList: [],\n previewVisible: false,\n previewImage: '',\n cacheFiles: [],\n }\n },\n created() {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = false;\n }\n this.formCreateInject.prop.props.fileList = toArray(this.value).map(parseFile);\n },\n watch: {\n value(n) {\n if (this.$refs.upload.uploadFiles.every(file => {\n return !file.status || file.status === 'success';\n })) {\n this.$refs.upload.uploadFiles = toArray(n).map(parseFile);\n this.uploadList = this.$refs.upload.uploadFiles;\n }\n },\n limit(n, o) {\n if (o === 1 || n === 1) {\n this.update();\n }\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n isDisabled() {\n return this.formCreateInject.prop.props.disabled === true;\n },\n onRemove(file) {\n if (this.isDisabled()) {\n return;\n }\n this.$refs.upload.handleRemove(file);\n },\n handleClick(file) {\n this.onHandle(file);\n },\n makeItem(file, index) {\n return this.uploadType === 'image'\n ? <img src={file.url} key={this.key('img' + index)}/>\n : <i class=\"el-icon-tickets\" key={this.key('i' + index)}/>\n },\n makeRemoveIcon(file, index) {\n return <i class=\"el-icon-delete\" on-click={() => this.onRemove(file)} key={this.key('ri' + index)}/>;\n },\n makeHandleIcon(file, index) {\n return <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(file)} key={this.key('hi' + index)}/>;\n },\n makeProgress(file, index) {\n return <ElProgress props={{percentage: file.percentage, type: 'circle', width: 52}} style=\"margin-top:2px;\"\n key={this.key('pg' + index)}/>\n },\n makeIcons(file, index) {\n const icons = [];\n if (this.allowRemove || this.handleIcon !== false) {\n if ((this.uploadType !== 'file' && this.handleIcon !== false) || (this.uploadType === 'file' && this.handleIcon)) {\n icons.push(this.makeHandleIcon(file, index));\n }\n if (this.allowRemove) {\n icons.push(this.makeRemoveIcon(file, index));\n }\n\n return <div class='fc-upload-cover'>{icons}</div>;\n }\n },\n makeFiles() {\n return this.uploadList.map((file, index) => this.$scopedSlots.fileList ? this.$scopedSlots.fileList({\n file,\n index,\n vm: this\n }) : <div key={this.key(index)}\n class='fc-files'>{(file.percentage !== undefined && file.status !== 'success') ? this.makeProgress(file, index) : [this.makeItem(file, index), this.makeIcons(file, index)]}</div>);\n },\n makeUpload() {\n const isShow = (!this.limit || this.limit > this.uploadList.length);\n return <ElUpload {...this.formCreateInject.prop} ref=\"upload\"\n style={{display: 'inline-block'}}\n key={this.key('upload')}>\n {isShow ? <template slot=\"default\">\n {this.$slots.default || <div class='fc-upload-btn'>\n <i class=\"el-icon-upload2\"/>\n </div>}\n </template> : null}{getSlot(this.$slots, ['default'])}\n </ElUpload>;\n },\n update() {\n let files = this.$refs.upload.uploadFiles.map((file) => file.url).filter((url) => url !== undefined);\n if (this.cacheFiles.length !== files.length) {\n this.cacheFiles = [...files];\n this.$emit('input', this.limit === 1 ? (files[0] || '') : files);\n }\n },\n handleCancel() {\n this.previewVisible = false;\n },\n },\n render() {\n if (this.$refs.upload) {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = this.$refs.upload.showFileList;\n }\n this.formCreateInject.prop.props.fileList = this.$refs.upload.fileList;\n }\n return (\n <div\n class='_fc-upload'>{[this.formCreateInject.prop.props.showFileList ? [] : this.makeFiles(), this.makeUpload()]}\n <el-dialog\n props={{\n appendToBody: true,\n modal: this.previewMask,\n title: this.modalTitle,\n visible: this.previewVisible\n }}\n on-close={this.handleCancel}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.uploadFiles;\n this.$watch(() => this.$refs.upload.uploadFiles, () => {\n this.update();\n }, {deep: true});\n }\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","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","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 <i key={`a${key}`} class=\"el-icon-circle-plus-outline\"\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 <i key={`d${key}`} class=\"el-icon-remove-outline\"\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 })) : <i key={'a_def'} class=\"el-icon-circle-plus-outline\"\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 <ElRow align=\"middle\" type=\"flex\" key={key}\n style=\"border-bottom:1px dashed #DCDFE6;margin-bottom:10px;\">\n <ElCol 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 value: this.field ? {[this.field]: this._value(this.value[index])} : this.value[index],\n rule,\n option: options,\n extendOption: true,\n inFor: true\n }}/></ElCol>\n {button ? <ElCol\n props={{span: 2, pull: 1, push: 1}}>{this.makeIcon(keys.length, index, key)}</ElCol> : null}\n </ElRow>\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 checkbox from '@form-create/component-elm-checkbox/src/index';\nimport frame from '@form-create/component-elm-frame/src/index';\nimport radio from '@form-create/component-elm-radio/src/index';\nimport select from '@form-create/component-elm-select/src/index';\nimport tree from '@form-create/component-elm-tree/src/index';\nimport upload from '@form-create/component-elm-upload/src/index';\nimport group from '@form-create/component-elm-group/src/index';\nimport subForm from '@form-create/component-subform/src/index';\n\n\nexport default [\n checkbox,\n frame,\n radio,\n select,\n tree,\n upload,\n group,\n subForm,\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.config.forceCoverValue ? this.$f.coverValue(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 const r = is.Function(rule.getRule) ? rule.getRule() : rule;\n if (!r.type) {\n r.type = 'input';\n }\n return r;\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 const data = {...(formData || {})};\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (ctxs) {\n const flag = hasProperty(data, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? data[key] : undefined;\n })\n delete data[key];\n }\n });\n extend(h.appendData, data);\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 clearEffectData(id, attr) {\n const ctx = h.getCtx(id);\n if (ctx) {\n if (attr && attr[0] === '$') {\n attr = attr.substr(1);\n }\n ctx.clearEffectData(attr);\n api.sync(id);\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 toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\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, defaultValue) {\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(defaultValue) : 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 if (name === undefined) {\n this.payload = {};\n } else {\n delete this.payload[name];\n }\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 {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 (_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 let defaultValue = rule.value;\n if (isInit) {\n ctx = _rule.__fc__;\n defaultValue = ctx.defaultValue;\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 const rule = this.parseRule(_rule);\n ctx = new RuleContext(this, rule, isInit ? defaultValue : rule.value);\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.options.appendValue ? this.appendData : {}), ...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 let prop = ps[k];\n if (is.Function(prop)) {\n prop = prop(this.fc);\n }\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 {invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\n\nconst fetch = function (fc) {\n\n function parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n }\n\n function 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(() => fc.create.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 }, {inject, rule, api}));\n return true;\n }\n\n return {\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}\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\nexport default {\n 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 {creatorFactory} from '@form-create/core/src/index';\n\nconst DEFAULT_FORMATS = {\n date: 'yyyy-MM-dd',\n month: 'yyyy-MM',\n datetime: 'yyyy-MM-dd HH:mm:ss',\n timerange: 'HH:mm:ss',\n daterange: 'yyyy-MM-dd',\n monthrange: 'yyyy-MM',\n datetimerange: 'yyyy-MM-dd HH:mm:ss',\n year: 'yyyy'\n};\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['year', 'month', 'date', 'dates', 'week', 'datetime', 'datetimeRange', 'dateRange', 'monthRange'].reduce((initial, type) => {\n initial[type] = creatorFactory(name, {type: type.toLowerCase()});\n return initial\n }, {});\n }()),\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = DEFAULT_FORMATS[props.type] || DEFAULT_FORMATS['date'];\n }\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\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 const maker = ['password', 'url', 'email', 'text', 'textarea'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type});\n return maker;\n }, {});\n\n maker.idate = creatorFactory(name, {type:'date'});\n return maker;\n }()),\n mergeProp(ctx) {\n let {props} = ctx.prop;\n if (props && props.autosize && props.autosize.minRows) {\n props.rows = props.autosize.minRows || 2;\n }\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'slider';\n\nexport default {\n name,\n maker: {\n sliderRange: creatorFactory(name, {range:true})\n },\n toFormValue(value, ctx) {\n let isArr = Array.isArray(value), props = ctx.prop.props, min = props.min || 0,\n parseValue;\n if (props.range === true) {\n parseValue = isArr ? value : [min, (parseFloat(value) || min)];\n } else {\n parseValue = isArr ? (parseFloat(value[0]) || min) : parseFloat(value);\n }\n return parseValue;\n }\n\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'timePicker';\n\nexport default {\n name,\n maker: {\n time: creatorFactory(name, (m) => m.props.isRange = false),\n timeRange: creatorFactory(name, (m) => m.props.isRange = true)\n },\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = 'HH:mm:ss';\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 toArray from '@form-create/utils/lib/toarray';\n\nconst name = 'select';\n\nexport default {\n name,\n toFormValue(value, ctx) {\n if (ctx.prop.props.multiple && !Array.isArray(value)) {\n return toArray(value)\n } else {\n return value;\n }\n }\n\n}\n","import datePicker from './datePicker';\nimport hidden from './hidden';\nimport input from './input';\nimport slider from './slider';\nimport timePicker from './timePicker';\nimport row from './row';\nimport select from './select';\n\nexport default [\n datePicker,\n hidden,\n input,\n slider,\n timePicker,\n row,\n select\n]\n","const PRE = 'el';\nexport default {\n button: PRE + 'Button',\n icon: 'i',\n slider: PRE + 'Slider',\n rate: PRE + 'Rate',\n upload: 'fcUpload',\n cascader: PRE + 'Cascader',\n popover: PRE + 'Popover',\n tooltip: PRE + 'Tooltip',\n colorPicker: PRE + 'ColorPicker',\n timePicker: PRE + 'TimePicker',\n timeSelect: PRE + 'TimeSelect',\n datePicker: PRE + 'DatePicker',\n 'switch': PRE + 'Switch',\n select: 'fcSelect',\n checkbox: 'fcCheckbox',\n radio: 'fcRadio',\n inputNumber: PRE + 'InputNumber',\n number: PRE + 'InputNumber',\n input: PRE + 'Input',\n formItem: PRE + 'FormItem',\n form: PRE + 'Form',\n frame: 'fcFrame',\n col: PRE + 'Col',\n row: PRE + 'Row',\n tree: 'fcTree',\n autoComplete: PRE + 'Autocomplete',\n auto: PRE + 'Autocomplete',\n group: 'fcGroup',\n object: 'fcSubForm',\n subForm: 'fcSubForm',\n}\n","export default function getConfig() {\n return {\n form: {\n inline: false,\n labelPosition: 'right',\n labelWidth: '125px',\n disabled: false,\n size: undefined,\n },\n row: {\n show: true,\n gutter: 0,\n },\n submitBtn: {\n type: 'primary',\n loading: false,\n disabled: false,\n innerText: '提交',\n show: true,\n col: undefined,\n click: undefined,\n },\n resetBtn: {\n type: 'default',\n loading: false,\n disabled: false,\n icon: 'el-icon-refresh',\n innerText: '重置',\n show: false,\n col: undefined,\n click: undefined,\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 toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\n\nfunction isTooltip(info) {\n return info.type === 'tooltip';\n}\n\nconst upperCaseReg = /[A-Z]/;\n\nexport function isAttr(name, value) {\n return (!upperCaseReg.test(name) && (is.String(value) || is.Number(value)))\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 let props = ctx.prop.props;\n ctx.prop = mergeProps([{\n attrs: Object.keys(props).reduce((initial, val) => {\n if (isAttr(val, props[val]))\n initial[val] = props[val];\n return initial;\n }, {}),\n info: this.options.info || {},\n wrap: this.options.wrap || {},\n col: this.options.col || {},\n }, ctx.prop], {\n info: {\n trigger: 'hover',\n placement: 'top-start',\n icon: 'el-icon-warning',\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 isTitle = this.isTitle(rule);\n const labelWidth = (!col.labelWidth && !isTitle) ? 0 : col.labelWidth;\n const {inline, col: _col} = this.rule.props;\n const item = isFalse(rule.wrap.show) ? children : this.$r(mergeProps([rule.wrap, {\n props: {\n labelWidth: labelWidth === void 0 ? labelWidth : toString(labelWidth),\n label: isTitle ? rule.title.title : undefined,\n ...(rule.wrap || {}),\n prop: ctx.id,\n rules: rule.validate,\n },\n class: rule.className,\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), [children, isTitle ? this.makeInfo(rule, uni) : null]);\n return (inline === true || isFalse(_col) || isFalse(col.show)) ? item : this.makeCol(rule, uni, [item]);\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false;\n const title = rule.title;\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni) {\n const titleProp = rule.title;\n const infoProp = rule.info;\n const isTip = isTooltip(infoProp);\n const form = this.options.form;\n const children = [(titleProp.title || '') + (form.labelSuffix || form['label-suffix'] || '')];\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 = '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: 'i',\n slot: isTip ? 'default' : 'reference',\n class: infoProp.icon === true ? 'el-icon-warning' : 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 const item = this.$r({\n type: 'formItem',\n key: `${this.key}fb`\n }, vn);\n\n return this.rule.props.inline === true\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},\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\nuseAlias(maker);\nuseSelect(maker);\nuseTree(maker);\nuseUpload(maker);\nuseFrame(maker);\n\nfunction useAlias(maker) {\n ['group', 'tree', 'switch', 'upload', 'autoComplete', 'checkbox', 'cascader', 'colorPicker', 'datePicker', 'frame', 'inputNumber', 'radio', 'rate'].forEach(name => {\n maker[name] = creatorFactory(name);\n });\n maker.auto = maker.autoComplete;\n maker.number = maker.inputNumber;\n maker.color = maker.colorPicker;\n}\n\nfunction useSelect(maker) {\n const select = 'select';\n const multiple = 'multiple';\n maker['selectMultiple'] = creatorFactory(select, {[multiple]:true});\n maker['selectOne'] = creatorFactory(select, {[multiple]:false});\n}\n\nfunction useTree(maker) {\n const name = 'tree';\n const types = {'treeSelected': 'selected', 'treeChecked': 'checked'};\n\n Object.keys(types).reduce((m, key) => {\n m[key] = creatorFactory(name, {type:types[key]});\n return m;\n }, maker);\n}\n\nfunction useUpload(maker) {\n const name = 'upload';\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((m, key) => {\n m[key] = creatorFactory(name, m => m.props({uploadType: types[key][0], maxLength: types[key][1]}));\n return m\n }, maker);\n\n maker.uploadImage = maker.image;\n maker.uploadFile = maker.file;\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 return maker;\n}\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 elmFormCreate() {\n return FormCreateFactory({\n ui: `${process.env.UI}`,\n version: `${process.env.VERSION}`,\n manager,\n extendApi,\n install,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info'],\n }\n });\n}\n","import elmFormCreate from './core/index';\n\nconst FormCreate = elmFormCreate();\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","getSlot","slots","exclude","keys","lst","name","push","NAME","props","formCreateInject","type","required","value","String","watch","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","_this","option","created","render","prop","index","Type","_this2","$slots","toArray","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","field","helper","Boolean","disabled","src","icon","width","height","maxLength","Number","okBtnText","closeBtnText","modalTitle","handleIcon","title","allowRemove","onOpen","Function","onOk","onCancel","onLoad","onBeforeRemove","onRemove","onHandle","previewImage","getSrc","previewVisible","modal","srcKey","previewMask","footer","reload","closeBtn","okBtn","fileList","frameVisible","val","modalVm","key","unique","closeModel","close","$off","handleCancel","showModel","makeInput","toString","readonly","makeGroup","children","makeBtn","makeItem","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","handleClick","_this3","handleRemove","makeFiles","_this4","makeImages","_this5","_this6","splice","frameLoad","iframe","api","_this7","set","get","fn","$on","onClose","console","log","makeFooter","$props","_this8","node","$nextTick","_this9","$refs","frame","contentWindow","appendToBody","visible","mounted","closeModal","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","slot","slotName","formCreateParser","mergeProp","nodeKey","setValue","onChange","updateValue","tree","toLocaleLowerCase","getCurrentKey","getCheckedKeys","setCurrentKey","setCheckedKeys","parseFile","file","url","getFileName","uid","split","pop","uploadType","limit","uploadList","cacheFiles","showFileList","upload","uploadFiles","every","status","o","isDisabled","makeProgress","percentage","$scopedSlots","vm","makeUpload","isShow","display","files","$watch","$set","target","Vue","$del","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","extend","rules","expand","button","max","min","defaultValue","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","item","$f","formData","deferSyncValue","once","expandRule","total","addRule","removeRule","_value","cache","JSON","stringify","input","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","makeIcon","emitEvent","args","$form","extendOption","inFor","span","pull","checkbox","radio","select","group","subForm","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","destroyed","validate","renderRule","ctxInject","isMore","formCreate","_refresh","_renderRule","_updateValue","config","forceCoverValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","fapi","rmSubForm","sub","getSubForm","idx","addSubForm","immediate","mergeProps","objects","_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","r","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","baseRule","on","hidden","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","bind","updateOptions","fc","onSubmit","sync","deleted","clearCacheAll","refreshOptions","$manager","hideForm","hide","changeStatus","clearChangeStatus","updateRule","updateRules","mergeRules","setEffect","attr","substr","effect","clearEffectData","updateValidate","updateValidates","validates","refreshValidate","resetFields","method","el","trigger","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","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","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","useLoader","parseRule","_rule","fullRule","loadFn","loadCtrl","control","ctrl","syncProp","pre","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","check","isCtrl","bindParser","setCtx","_preIndex","preIndex","updated","refreshUpdate","defineProperty","valueHandle","refreshControl","useCtrl","controls","getCtrl","handleFn","findCtrl","isHidden","hideLst","reverse","ruleCon","ctrlCtx","_reloadRule","initData","reloading","nextReload","useInput","toValue","formValue","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","toEmpty","toFormValue","deferSyncFn","strFn","refreshRule","appendLink","link","effectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","BaseParser","noneKey","useContext","getNameCtx","setIdCtx","rmIdCtx","isMounted","getParser","list","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","onSuccess","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","__init","parseProp","domProps","innerHTML","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","run","parseOpt","body","message","loaded","$required","load","parseVal","validator","_","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","DEFAULT_FORMATS","date","month","datetime","timerange","daterange","monthrange","datetimerange","year","valueFormat","idate","autosize","minRows","rows","sliderRange","range","parseFloat","time","m","isRange","timeRange","col","row","multiple","datePicker","slider","timePicker","PRE","rate","cascader","popover","tooltip","colorPicker","timeSelect","inputNumber","number","formItem","autoComplete","auto","object","getConfig","inline","labelPosition","labelWidth","size","show","gutter","innerText","click","isTooltip","info","upperCaseReg","isAttr","test","tidy","isFalse","tidyBool","validateField","clearValidateState","fItem","validateMessage","validateState","wrap","placement","submit","preventDefault","className","makeFormBtn","makeRow","uni","isTitle","_col","makeInfo","makeCol","titleProp","infoProp","isTip","labelSuffix","align","makeSubmitBtn","makeResetBtn","fApi","useAlias","color","useSelect","useTree","types","useUpload","image","uploadFileOne","uploadImageOne","uploadImage","uploadFile","useFrame","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","frameInput","frameFile","frameImage","tidyBtnProp","btn","forms","validFn","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","elmFormCreate","process"],"mappings":"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"}
|