@form-create/element-ui 2.5.12 → 2.5.13

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.
@@ -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","../../../components/element-ui/group/src/component.jsx","../../../components/common/subform/src/component.jsx","../src/components/index.js","../../utils/lib/modify.js","../../utils/lib/extend.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/deepextend.js","../../utils/lib/console.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.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","../../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/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 value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n computed: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n }\n },\n methods: {\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 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 alt=\"example\" 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 value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n computed: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n }\n },\n methods: {\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};\n\n['Date', 'Object', 'Function', '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 }\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 this.$emit('input', this.limit === 1 ? (files[0] || '') : files);\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 {hasProperty} from '@form-create/utils/lib/type';\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 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.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n if (this.rules) {\n return this.rules;\n }\n return [];\n }\n },\n watch: {\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 this.subForm();\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 options.formData = this.field ? ({[this.field]: this._value(this.value[i])}) : (this.value[i] || {});\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.subForm();\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 subForm() {\n this.formCreateInject.subForm(Object.keys(this.cacheRule).map(k => this.cacheRule[k].$f));\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.subForm();\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}\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 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.subForm();\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n subForm() {\n this.formCreateInject.subForm(this.cacheRule.$f);\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 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';\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 extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'FormCreate';\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 },\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: ''\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 },\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'];\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","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 if (is.Undef(clone)) {\n $set(origin, key, clone);\n } else if (clone.__json !== undefined) {\n $set(origin, key, clone.__json);\n } else if (clone.__origin !== undefined) {\n $set(origin, key, clone.__origin);\n } else {\n $set(origin, key, clone);\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","export 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 (hasProperty(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 deepExtend from '@form-create/utils/lib/deepextend';\nimport 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';\nexport {parseJson,parseFn,toJson} from '@form-create/utils/lib/json';\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, mode) {\n return copyRules([rule], mode || false)[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","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 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';\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 helper: {\n tidyFields, props\n },\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 }, 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 $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\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 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 h.refreshControl(ctx);\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 };\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","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 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 = true;\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.props.formCreateInject = this.injectProp(ctx);\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 = 'type-' + toLine(ctx.type);\n if (this.vm.$scopedSlots[slot]) {\n vn = this.vm.$scopedSlots[slot]({\n rule,\n prop,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = 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 {\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 }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n field: ctx.field,\n options: ctx.prop.options,\n children: ctx.rule.children,\n rule: ctx.rule,\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 props.push({\n model: {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n },\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 (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';\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\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\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\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)) 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';\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 (!hasProperty(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);\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);\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 }, 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 if (ctx.input) {\n this.subForm[ctx.id] = subForm;\n }\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) !== JSON.stringify(value);\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.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\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 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';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\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 const none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];\n Object.keys(ctx.rule).filter(k => none.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 });\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 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 Object.keys(ctx.rule.effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(() => ctx.rule.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, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n else\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (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 let Node = this.$h(tag, 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\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 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 $fetch;","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} 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 $fetch from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\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\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 fetch: $fetch\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\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() {\n return FormCreateFactory(config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(options || {});\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 });\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 },\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 parseJson,\n toJson,\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 if (config.install) create.use(config);\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 week: 'yyyywWW',\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 const titleFn = (pop) => this.$r(mergeProps([titleProp, {\n props: titleProp,\n slot: titleProp.slot || (pop ? (isTip ? 'default' : 'reference') : 'label'),\n key: `${uni}tit`,\n type: titleProp.type || 'span',\n }]), children);\n\n if (!isFalse(infoProp.show) && (infoProp.info || infoProp.native)) {\n if (infoProp.icon !== false) {\n children[infoProp.align !== 'left' ? 'unshift' : 'push'](this.$r({\n type: 'i',\n class: infoProp.icon === true ? 'el-icon-warning' : infoProp.icon,\n key: `${uni}i`\n }));\n }\n const prop = {\n type: infoProp.type || 'popover',\n props: {...infoProp},\n key: `${uni}pop`,\n slot: 'label'\n };\n\n const field = 'content';\n if (infoProp.info && !hasProperty(prop.props, field)) {\n prop.props[field] = infoProp.info;\n }\n\n return this.$r(mergeProps([infoProp, prop]), [\n titleFn(true)\n ])\n }\n return titleFn();\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","update","data","trueValue","computed","options","opt","isArray","methods","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","_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","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","showFileList","upload","uploadFiles","every","status","o","isDisabled","makeProgress","percentage","$scopedSlots","vm","makeUpload","isShow","display","files","$watch","deep","rules","expand","button","max","min","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","formRule","$f","expandRule","total","addRule","removeRule","subForm","_value","cache","JSON","stringify","input","formData","form","coverValue","emit","copyRules","submitBtn","resetBtn","$set","add$f","$delete","add","del","addIcon","delIcon","makeIcon","emitEvent","args","$form","str","checkbox","radio","select","group","target","Vue","$del","extend","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","extendOption","api","destroyed","validate","renderRule","ctxInject","formCreate","_refresh","_renderRule","_updateValue","handler","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","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","toLine","line","substr","id","uniqueId","Math","random","Date","now","deepSet","idx","to","_data","baseRule","on","hidden","creatorFactory","init","maker","Creator","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","sub","getFieldCtx","appendData","getValue","deferSyncValue","ctxs","fieldCtx","removeField","getCtx","rm","destroy","$el","parentNode","removeChild","$destroy","append","after","child","sort","root","prepend","state","hiddenStatus","displayStatus","component","nameCtx","bind","updateOptions","fc","onSubmit","sync","deleted","clearCacheAll","refreshOptions","$manager","hideForm","hide","changeStatus","clearChangeStatus","updateRule","updateRules","mergeRules","updateValidate","updateValidates","validates","refreshValidate","resetFields","defaultValue","refreshControl","method","el","exec","trigger","getSubForm","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","parent","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","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","makeWrap","item","addSubForm","custom","onMounted","getFormData","callback","expression","__rule__","effect","isRm","rmCtx","defaultRender","vNode","alias","aliasMap","_this10","handle","CreateNode","useInject","Handler","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","_fn","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","appendValue","loadFn","loadCtrl","control","ctrl","syncProp","pre","fapi","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","check","isCtrl","bindParser","setCtx","_preIndex","preIndex","r","updated","refreshUpdate","defineProperty","valueHandle","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","refreshRule","appendLink","link","effectData","clearEffectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","getType","BaseParser","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","attr","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","parseOpt","body","message","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","FormCreateFactory","fragment","directives","globalConfig","directive","register","componentAlias","base","$vnode","install","_opt","$parent","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","DEFAULT_FORMATS","date","month","datetime","week","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","titleFn","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","../../../components/element-ui/group/src/component.jsx","../../../components/common/subform/src/component.jsx","../src/components/index.js","../../utils/lib/modify.js","../../utils/lib/extend.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/deepextend.js","../../utils/lib/console.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.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","../../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/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 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 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 alt=\"example\" 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 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};\n\n['Date', 'Object', 'Function', '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 }\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 this.$emit('input', this.limit === 1 ? (files[0] || '') : files);\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 {hasProperty} from '@form-create/utils/lib/type';\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 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.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n if (this.rules) {\n return this.rules;\n }\n return [];\n }\n },\n watch: {\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 this.subForm();\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 options.formData = this.field ? ({[this.field]: this._value(this.value[i])}) : (this.value[i] || {});\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.subForm();\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 subForm() {\n this.formCreateInject.subForm(Object.keys(this.cacheRule).map(k => this.cacheRule[k].$f));\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.subForm();\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}\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 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.subForm();\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n subForm() {\n this.formCreateInject.subForm(this.cacheRule.$f);\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 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';\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 extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'FormCreate';\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 },\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: ''\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 }\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'];\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","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 if (is.Undef(clone)) {\n $set(origin, key, clone);\n } else if (clone.__json !== undefined) {\n $set(origin, key, clone.__json);\n } else if (clone.__origin !== undefined) {\n $set(origin, key, clone.__origin);\n } else {\n $set(origin, key, clone);\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","export 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 (hasProperty(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 deepExtend from '@form-create/utils/lib/deepextend';\nimport 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';\nexport {parseJson,parseFn,toJson} from '@form-create/utils/lib/json';\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, mode) {\n return copyRules([rule], mode || false)[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","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 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';\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 }, 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 $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 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 h.refreshControl(ctx);\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 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","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 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 const preview = this.options.preview || false;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = true;\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.props.formCreateInject = this.injectProp(ctx);\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 = 'type-' + toLine(ctx.type);\n if (this.vm.$scopedSlots[slot]) {\n vn = this.vm.$scopedSlots[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 {\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 field: ctx.field,\n rule: ctx.rule,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: this.options.preview || false,\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 props.push({\n model: {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n },\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 (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';\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\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\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)) 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';\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);\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);\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 }, 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 if (ctx.input) {\n this.subForm[ctx.id] = subForm;\n }\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) !== JSON.stringify(value);\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\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 ctx.$render.defaultRender(ctx, children);\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';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\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 const none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];\n Object.keys(ctx.rule).filter(k => none.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 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 Object.keys(ctx.rule.effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(() => ctx.rule.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, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n else\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (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 let Node = this.$h(tag, 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\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 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 $fetch;","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} 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 $fetch from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\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\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 fetch: $fetch\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\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() {\n return FormCreateFactory(config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(options || {});\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 });\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 parseJson,\n toJson,\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 if (config.install) create.use(config);\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 week: 'yyyywWW',\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","update","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","_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","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","showFileList","upload","uploadFiles","every","status","o","isDisabled","makeProgress","percentage","$scopedSlots","vm","makeUpload","isShow","display","files","$watch","deep","rules","expand","button","max","min","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","$f","expandRule","total","addRule","removeRule","subForm","_value","cache","JSON","stringify","input","formData","form","coverValue","emit","copyRules","submitBtn","resetBtn","$set","add$f","$delete","add","del","addIcon","delIcon","makeIcon","emitEvent","args","$form","str","checkbox","radio","select","group","target","Vue","$del","extend","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","extendOption","api","destroyed","validate","renderRule","ctxInject","formCreate","_refresh","_renderRule","_updateValue","handler","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","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","toLine","line","substr","id","uniqueId","Math","random","Date","now","deepSet","idx","to","_data","baseRule","on","hidden","creatorFactory","init","maker","Creator","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","sub","getFieldCtx","appendData","getValue","deferSyncValue","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","updateValidate","updateValidates","validates","refreshValidate","resetFields","defaultValue","refreshControl","method","el","exec","trigger","getSubForm","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","parent","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","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","preview","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","makeWrap","item","addSubForm","custom","onMounted","getFormData","callback","expression","__rule__","effect","isRm","rmCtx","defaultRender","vNode","alias","aliasMap","_this10","handle","CreateNode","useInject","Handler","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","_fn","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","appendValue","loadFn","loadCtrl","control","ctrl","syncProp","pre","fapi","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","check","isCtrl","bindParser","setCtx","_preIndex","preIndex","r","updated","refreshUpdate","defineProperty","valueHandle","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","refreshRule","appendLink","link","effectData","clearEffectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","getType","BaseParser","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","attr","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","parseOpt","body","message","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","FormCreateFactory","fragment","directives","globalConfig","directive","register","componentAlias","base","$vnode","install","_opt","$parent","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","DEFAULT_FORMATS","date","month","datetime","week","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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"}