@form-create/element-ui 2.5.17 → 2.5.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form-create.js +285 -133
- package/dist/form-create.min.js +2 -2
- package/dist/form-create.min.js.map +1 -1
- package/package.json +11 -11
- package/src/style/index.css +0 -4
|
@@ -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/console.js","../../utils/lib/deepextend.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../core/src/render/cache.js","../../utils/lib/tocase.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/render.js","../../core/src/render/index.js","../../core/src/handler/inject.js","../../core/src/handler/page.js","../../core/src/handler/render.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/frame/index.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/slider.js","../src/parsers/timePicker.js","../src/parsers/row.js","../src/parsers/select.js","../src/parsers/index.js","../src/core/alias.js","../src/core/config.js","../src/core/manager.js","../src/core/maker.js","../src/core/api.js","../src/core/index.js","../src/index.js"],"sourcesContent":["\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","export default function getSlot(slots, exclude) {\n return Object.keys(slots).reduce((lst, name) => {\n if (!exclude || exclude.indexOf(name) === -1) {\n lst.push(slots[name])\n }\n return lst;\n }, [])\n}","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcCheckbox';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Array,\n default: () => []\n },\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => n.indexOf(opt.label) !== -1).map((opt) => opt.value).filter(v => v !== undefined));\n },\n update() {\n this.trueValue = this.value ? this.options().filter((opt) => this.value.indexOf(opt.value) !== -1)\n .map((option) => option.label) : []\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElCheckboxGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElCheckboxButton' : 'ElCheckbox';\n delete props.value;\n return <Type {...{props}} key={Type + index + opt.value}/>\n })}{getSlot(this.$slots)}</ElCheckboxGroup>\n }\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css';\n\nconst NAME = 'fcFrame';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'input'\n },\n field: String,\n helper: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n src: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n default: 'el-icon-upload2'\n },\n width: {\n type: String,\n default: '500px'\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n },\n src(n) {\n this.modalVm && (this.modalVm.src = n);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModel(close) {\n this.$emit(close ? '$close' : '$ok');\n if (this.reload) {\n this.$off('$ok');\n this.$off('$close');\n }\n this.frameVisible = false;\n },\n handleCancel() {\n this.previewVisible = false;\n },\n\n showModel() {\n if (this.disabled || false === this.onOpen()) {\n return;\n }\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n readonly: true\n };\n\n return <ElInput props={props} key={this.key('input')}>\n {this.fileList.length ? <i slot=\"suffix\" class=\"el-input__icon el-icon-circle-close\"\n on-click={() => this.fileList = []}/> : null}\n <ElButton icon={this.icon} on={{'click': () => this.showModel()}} slot=\"append\"/>\n </ElInput>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength) {\n children.push(this.makeBtn());\n }\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field) {\n throw new Error('[frame]无效的字段值');\n }\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon)) {\n icons.push(this.makeHandleIcon(val, index));\n }\n if (this.allowRemove) {\n icons.push(this.makeRemoveIcon(val, index));\n }\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <i class=\"el-icon-delete\" on-click={() => this.handleRemove(val)} key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<i class=\"el-icon-tickets\"\n on-click={() => this.handleClick(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeImages() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<img src={this.getSrc(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeBtn() {\n return <div class='fc-upload-btn' on-click={() => this.showModel()} key={this.key('btn')}>\n <i class={this.icon}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) {\n return;\n }\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !this.srcKey ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n 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 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => opt.label === n).reduce((initial, opt) => opt.value, ''));\n },\n update() {\n this.trueValue = this.options().filter((opt) => opt.value === this.value).reduce((initial, opt) => opt.label, '');\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElRadioGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElRadioButton' : 'ElRadio';\n delete props.value;\n return <Type {...{props}} key={Type + index + opt.value}/>\n })}{getSlot(this.$slots)}</ElRadioGroup>\n }\n}\n","const is = {\n type(arg, type) {\n return Object.prototype.toString.call(arg) === '[object ' + type + ']'\n },\n Undef(v) {\n return v === undefined || v === null\n },\n Element(arg) {\n return typeof arg === 'object' && arg !== null && arg.nodeType === 1 && !is.Object(arg)\n },\n trueArray(data) {\n return Array.isArray(data) && data.length > 0;\n }\n};\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 cacheFiles: [],\n }\n },\n created() {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = false;\n }\n this.formCreateInject.prop.props.fileList = toArray(this.value).map(parseFile);\n },\n watch: {\n value(n) {\n if (this.$refs.upload.uploadFiles.every(file => {\n return !file.status || file.status === 'success';\n })) {\n this.$refs.upload.uploadFiles = toArray(n).map(parseFile);\n this.uploadList = this.$refs.upload.uploadFiles;\n }\n },\n limit(n, o) {\n if (o === 1 || n === 1) {\n this.update();\n }\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n isDisabled() {\n return this.formCreateInject.prop.props.disabled === true;\n },\n onRemove(file) {\n if (this.isDisabled()) {\n return;\n }\n this.$refs.upload.handleRemove(file);\n },\n handleClick(file) {\n this.onHandle(file);\n },\n makeItem(file, index) {\n return this.uploadType === 'image'\n ? <img src={file.url} key={this.key('img' + index)}/>\n : <i class=\"el-icon-tickets\" key={this.key('i' + index)}/>\n },\n makeRemoveIcon(file, index) {\n return <i class=\"el-icon-delete\" on-click={() => this.onRemove(file)} key={this.key('ri' + index)}/>;\n },\n makeHandleIcon(file, index) {\n return <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(file)} key={this.key('hi' + index)}/>;\n },\n makeProgress(file, index) {\n return <ElProgress props={{percentage: file.percentage, type: 'circle', width: 52}} style=\"margin-top:2px;\"\n key={this.key('pg' + index)}/>\n },\n makeIcons(file, index) {\n const icons = [];\n if (this.allowRemove || this.handleIcon !== false) {\n if ((this.uploadType !== 'file' && this.handleIcon !== false) || (this.uploadType === 'file' && this.handleIcon)) {\n icons.push(this.makeHandleIcon(file, index));\n }\n if (this.allowRemove) {\n icons.push(this.makeRemoveIcon(file, index));\n }\n\n return <div class='fc-upload-cover'>{icons}</div>;\n }\n },\n makeFiles() {\n return this.uploadList.map((file, index) => this.$scopedSlots.fileList ? this.$scopedSlots.fileList({\n file,\n index,\n vm: this\n }) : <div key={this.key(index)}\n class='fc-files'>{(file.percentage !== undefined && file.status !== 'success') ? this.makeProgress(file, index) : [this.makeItem(file, index), this.makeIcons(file, index)]}</div>);\n },\n makeUpload() {\n const isShow = (!this.limit || this.limit > this.uploadList.length);\n return <ElUpload {...this.formCreateInject.prop} ref=\"upload\"\n style={{display: 'inline-block'}}\n key={this.key('upload')}>\n {isShow ? <template slot=\"default\">\n {this.$slots.default || <div class='fc-upload-btn'>\n <i class=\"el-icon-upload2\"/>\n </div>}\n </template> : null}{getSlot(this.$slots, ['default'])}\n </ElUpload>;\n },\n update() {\n let files = this.$refs.upload.uploadFiles.map((file) => file.url).filter((url) => url !== undefined);\n if(this.cacheFiles.length !== files.length){\n this.cacheFiles = [...files];\n this.$emit('input', this.limit === 1 ? (files[0] || '') : files);\n }\n },\n handleCancel() {\n this.previewVisible = false;\n },\n },\n render() {\n if (this.$refs.upload) {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = this.$refs.upload.showFileList;\n }\n this.formCreateInject.prop.props.fileList = this.$refs.upload.fileList;\n }\n return (\n <div\n class='_fc-upload'>{[this.formCreateInject.prop.props.showFileList ? [] : this.makeFiles(), this.makeUpload()]}\n <el-dialog appendToBody={true} modal={this.previewMask} title={this.modalTitle}\n visible={this.previewVisible}\n on-close={this.handleCancel}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.uploadFiles;\n this.$watch(() => this.$refs.upload.uploadFiles, () => {\n this.update();\n }, {deep: true});\n }\n}\n","import {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","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 {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return eval('(' + FUNCTION + '(){return ' + fn + ' })()')\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n return is.Function(rule.getRule) ? rule.getRule() : rule;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, 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","export default function toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n","export default function toLine(name) {\n let line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();\n if (line.indexOf('-') === 0)\n line = line.substr(1);\n return line;\n}\n","let id = 0;\n\nexport default function uniqueId() {\n return Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}${++id}`).toString(36);\n}\n","export default function deepSet(data, idx, val) {\n let _data = data, to;\n (idx || '').split('.').forEach(v => {\n if (to) {\n if (!_data[to] || typeof _data[to] != 'object') {\n _data[to] = {}\n }\n _data = _data[to];\n }\n to = v;\n })\n _data[to] = val;\n return _data;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {_vue as Vue} from '../frame';\nimport {tip} from '@form-create/utils/lib/console';\nimport {invoke, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {$set, deepSet, toLine} from '@form-create/utils';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.tempList = {};\n this.clearOrgChildren();\n },\n initOrgChildren() {\n const ctxs = this.$handle.ctxs;\n this.orgChildren = Object.keys(ctxs).reduce((initial, id) => {\n if (ctxs[id].parser.loadChildren !== false) {\n const children = ctxs[id].rule.children;\n initial[id] = is.trueArray(children) ? [...children] : [];\n }\n\n return initial;\n }, {});\n\n },\n clearOrgChildren() {\n this.orgChildren = {};\n },\n getTypeSlot(type) {\n const name = 'type-' + toLine(type);\n const _fn = (vm) => {\n if (vm) {\n const slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n }\n return _fn(this.vm);\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side) {\n return is.Object(side) ? mergeRule({}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix)), vn, this.renderRule(this.parseSide(prop.suffix))];\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n 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 = this.getTypeSlot(ctx.type);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else {\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 options: [],\n children: [],\n prop: {},\n preview: false,\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/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag);\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, strFn) !== JSON.stringify(value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return 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/modify';\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 => k[0] !== '_' && 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 if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n return false;\n }\n if (!option.to) {\n option.to = 'options';\n }\n const onError = option.onError;\n\n const check = () => {\n if (!inject.getValue()) {\n inject.clearProp();\n api.sync(rule);\n return true;\n }\n }\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to, val);\n }\n }\n\n invoke(() => fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n set((option.parse || ((v) => v.data))(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }));\n\n return true;\n}\n\nexport default $fetch;\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $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 parseFn,\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","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","_this","option","created","render","prop","index","Type","_this2","$slots","toArray","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","field","helper","Boolean","disabled","src","icon","width","height","maxLength","Number","okBtnText","closeBtnText","modalTitle","handleIcon","title","allowRemove","onOpen","Function","onOk","onCancel","onLoad","onBeforeRemove","onRemove","onHandle","previewImage","getSrc","previewVisible","modal","srcKey","previewMask","footer","reload","closeBtn","okBtn","fileList","frameVisible","val","modalVm","key","unique","closeModel","close","$off","handleCancel","showModel","makeInput","toString","readonly","makeGroup","children","makeBtn","makeItem","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","handleClick","_this3","handleRemove","makeFiles","_this4","makeImages","_this5","_this6","splice","frameLoad","iframe","_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","cacheFiles","showFileList","upload","uploadFiles","every","status","o","isDisabled","makeProgress","percentage","$scopedSlots","vm","makeUpload","isShow","display","files","$watch","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","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","format","msg","getRule","tip","warn","err","error","logError","deepExtend","origin","mode","isArr","clone","nst","_clone","__json","__origin","__ctrl","deepCopy","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","eval","parseFn","trim","flag","replace","__inject","parseJson","json","parse","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","baseRule","on","hidden","creatorFactory","init","maker","Creator","_data","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","sub","id","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","toLine","line","substr","uniqueId","Math","random","Date","now","deepSet","idx","to","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","parseSide","side","renderSides","temp","prefix","suffix","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","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","strFn","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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"}
|
|
1
|
+
{"version":3,"file":"form-create.min.js","sources":["../../../node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","../../utils/lib/slot.js","../../../components/element-ui/checkbox/src/component.jsx","../../utils/lib/toarray.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/element-ui/frame/src/component.jsx","../../../components/element-ui/radio/src/component.jsx","../../utils/lib/type.js","../../../components/element-ui/select/src/component.jsx","../../../components/element-ui/tree/src/component.jsx","../../../components/element-ui/upload/src/component.jsx","../../utils/lib/modify.js","../../utils/lib/deepextend.js","../../utils/lib/extend.js","../../../components/element-ui/group/src/component.jsx","../../../components/common/subform/src/component.jsx","../src/components/index.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/console.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../core/src/render/cache.js","../../utils/lib/tocase.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/render.js","../../core/src/render/index.js","../../core/src/handler/inject.js","../../core/src/handler/page.js","../../core/src/handler/render.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/parser/html.js","../../core/src/frame/index.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/slider.js","../src/parsers/timePicker.js","../src/parsers/row.js","../src/parsers/select.js","../src/parsers/index.js","../src/core/alias.js","../src/core/config.js","../src/core/manager.js","../src/core/maker.js","../src/core/api.js","../src/core/index.js","../src/index.js"],"sourcesContent":["\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","export default function getSlot(slots, exclude) {\n return Object.keys(slots).reduce((lst, name) => {\n if (!exclude || exclude.indexOf(name) === -1) {\n lst.push(slots[name])\n }\n return lst;\n }, [])\n}","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcCheckbox';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Array,\n default: () => []\n },\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => n.indexOf(opt.label) !== -1).map((opt) => opt.value).filter(v => v !== undefined));\n },\n update() {\n this.trueValue = this.value ? this.options().filter((opt) => this.value.indexOf(opt.value) !== -1)\n .map((option) => option.label) : []\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElCheckboxGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElCheckboxButton' : 'ElCheckbox';\n delete props.value;\n return <Type {...{props}} key={Type + index + opt.value}/>\n })}{getSlot(this.$slots)}</ElCheckboxGroup>\n }\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css';\n\nconst NAME = 'fcFrame';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'input'\n },\n field: String,\n helper: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n src: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n default: 'el-icon-upload2'\n },\n width: {\n type: String,\n default: '500px'\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n },\n src(n) {\n this.modalVm && (this.modalVm.src = n);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModel(close) {\n this.$emit(close ? '$close' : '$ok');\n if (this.reload) {\n this.$off('$ok');\n this.$off('$close');\n }\n this.frameVisible = false;\n },\n handleCancel() {\n this.previewVisible = false;\n },\n\n showModel() {\n if (this.disabled || false === this.onOpen()) {\n return;\n }\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n readonly: true\n };\n\n return <ElInput props={props} key={this.key('input')}>\n {this.fileList.length ? <i slot=\"suffix\" class=\"el-input__icon el-icon-circle-close\"\n on-click={() => this.fileList = []}/> : null}\n <ElButton icon={this.icon} on={{'click': () => this.showModel()}} slot=\"append\"/>\n </ElInput>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength) {\n children.push(this.makeBtn());\n }\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field) {\n throw new Error('[frame]无效的字段值');\n }\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon)) {\n icons.push(this.makeHandleIcon(val, index));\n }\n if (this.allowRemove) {\n icons.push(this.makeRemoveIcon(val, index));\n }\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <i class=\"el-icon-delete\" on-click={() => this.handleRemove(val)} key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<i class=\"el-icon-tickets\"\n on-click={() => this.handleClick(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeImages() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<img src={this.getSrc(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeBtn() {\n return <div class='fc-upload-btn' on-click={() => this.showModel()} key={this.key('btn')}>\n <i class={this.icon}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) {\n return;\n }\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !this.srcKey ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n api: this.formCreateInject.api,\n close: (field) => {\n this.valid(field);\n this.closeModel();\n },\n set: (field, value) => {\n this.valid(field);\n if (!this.disabled)\n this.$emit('input', value);\n\n },\n get: (field) => {\n this.valid(field);\n return this.value;\n },\n onOk: fn => this.$on('$ok', fn),\n onClose: fn => this.$on('$close', fn)\n };\n\n }\n } catch (e) {\n console.log(e);\n }\n },\n makeFooter() {\n const {okBtnText, closeBtnText, closeBtn, okBtn, footer} = this.$props;\n\n if (!footer) {\n return;\n }\n return <div slot=\"footer\">\n {closeBtn ? <ElButton\n on-click={() => (this.onCancel() !== false && (this.frameVisible = false))}>{closeBtnText}</ElButton> : null}\n {okBtn ? <ElButton type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</ElButton> : null}\n </div>\n }\n },\n render() {\n const type = this.type;\n\n let node;\n if (type === 'input') {\n node = this.makeInput();\n } else if (type === 'image') {\n node = this.makeImages();\n } else {\n node = this.makeFiles();\n }\n\n const {width = '30%', height, src, title, modalTitle} = this.$props;\n this.$nextTick(() => {\n if (this.$refs.frame) {\n this.frameLoad(this.$refs.frame.contentWindow || {});\n }\n });\n return <div class=\"_fc-frame\">{node}\n <el-dialog appendToBody={true} modal={this.previewMask} title={modalTitle} visible={this.previewVisible}\n on-close={this.handleCancel}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n <el-dialog appendToBody={true} {...{width, title, ...this.modal}} visible={this.frameVisible}\n on-close={() => (this.closeModel(true))}>\n {(this.frameVisible || !this.reload) ? <iframe ref=\"frame\" src={src} frameBorder=\"0\" style={{\n 'height': height,\n 'border': '0 none',\n 'width': '100%'\n }}/> : null}\n {this.makeFooter()}\n </el-dialog>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n}\n","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcRadio';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {},\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => opt.label === n).reduce((initial, opt) => opt.value, ''));\n },\n update() {\n this.trueValue = this.options().filter((opt) => opt.value === this.value).reduce((initial, opt) => opt.label, '');\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElRadioGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElRadioButton' : 'ElRadio';\n delete props.value;\n return <Type {...{props}} key={Type + index + opt.value}/>\n })}{getSlot(this.$slots)}</ElRadioGroup>\n }\n}\n","const is = {\n type(arg, type) {\n return Object.prototype.toString.call(arg) === '[object ' + type + ']'\n },\n Undef(v) {\n return v === undefined || v === null\n },\n Element(arg) {\n return typeof arg === 'object' && arg !== null && arg.nodeType === 1 && !is.Object(arg)\n },\n trueArray(data) {\n return Array.isArray(data) && data.length > 0;\n },\n Function(v) {\n const type = this.getType(v);\n return type === 'Function' || type === 'AsyncFunction';\n },\n getType(v) {\n const str = Object.prototype.toString.call(v)\n return /^\\[object (.*)\\]$/.exec(str)[1]\n },\n empty(value) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (Array.isArray(value) && Array.isArray(value) && !value.length) {\n return true;\n }\n\n return typeof value === 'string' && !value;\n }\n};\n\n['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(t => {\n is[t] = function (arg) {\n return is.type(arg, t);\n }\n})\n\nexport function hasProperty(rule, k) {\n return ({}).hasOwnProperty.call(rule, k)\n}\n\nexport default is;\n","import is from '@form-create/utils/lib/type';\n\nconst NAME = 'fcSelect';\nexport default {\n name: NAME,\n functional: true,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n },\n render(h, ctx) {\n const options = ctx.props.formCreateInject.options;\n return <ElSelect {...ctx.data}>{(Array.isArray(options) ? options : []).map((props, index) => {\n const slot = props.slot;\n return <ElOption {...{props}}\n key={'' + index + props.value}>\n {slot ? <template\n slot={props.slotName || 'default'}>{is.Function(slot) ? props.slot(h) : slot}</template> : null}\n </ElOption>\n })}{ctx.children}</ElSelect>;\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcTree';\n\nexport default {\n name: NAME,\n formCreateParser: {\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.nodeKey) props.nodeKey = 'id';\n if (!props.props) props.props = {\n label: 'title'\n };\n }\n },\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'checked'\n },\n value: {\n type: [Array, String, Number],\n default: () => ([])\n }\n },\n watch: {\n value() {\n this.setValue();\n }\n },\n methods: {\n onChange() {\n this.updateValue()\n },\n updateValue() {\n if (!this.$refs.tree) return;\n const type = this.type.toLocaleLowerCase();\n let value;\n\n if (type === 'selected') {\n value = this.$refs.tree.getCurrentKey();\n } else {\n value = this.$refs.tree.getCheckedKeys();\n }\n\n this.$emit('input', value);\n },\n setValue() {\n const type = this.type.toLocaleLowerCase();\n\n if (type === 'selected') {\n this.$refs.tree.setCurrentKey(this.value);\n } else {\n this.$refs.tree.setCheckedKeys(toArray(this.value));\n }\n }\n },\n render() {\n return <ElTree {...this.formCreateInject.prop} ref=\"tree\" on-check={() => this.updateValue()}\n on-node-click={() => this.updateValue()}>{getSlot(this.$slots)}</ElTree>;\n },\n mounted() {\n this.setValue();\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport getSlot from '@form-create/utils/lib/slot';\nimport './style.css';\n\nfunction parseFile(file, i) {\n return {\n url: file,\n name: getFileName(file),\n uid: i\n };\n}\n\nfunction getFileName(file) {\n return ('' + file).split('/').pop()\n}\n\nconst NAME = 'fcUpload';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n onHandle: {\n type: Function,\n default(file) {\n this.previewImage = file.url;\n this.previewVisible = true;\n }\n },\n uploadType: {\n type: String,\n default: 'file'\n },\n limit: {\n type: Number,\n default: 0\n },\n allowRemove: {\n type: Boolean,\n default: true\n },\n previewMask: undefined,\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: () => undefined\n },\n value: [Array, String]\n },\n data() {\n return {\n uploadList: [],\n previewVisible: false,\n previewImage: '',\n cacheFiles: [],\n }\n },\n created() {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = false;\n }\n this.formCreateInject.prop.props.fileList = toArray(this.value).map(parseFile);\n },\n watch: {\n value(n) {\n if (this.$refs.upload.uploadFiles.every(file => {\n return !file.status || file.status === 'success';\n })) {\n this.$refs.upload.uploadFiles = toArray(n).map(parseFile);\n this.uploadList = this.$refs.upload.uploadFiles;\n }\n },\n limit(n, o) {\n if (o === 1 || n === 1) {\n this.update();\n }\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n isDisabled() {\n return this.formCreateInject.prop.props.disabled === true;\n },\n onRemove(file) {\n if (this.isDisabled()) {\n return;\n }\n this.$refs.upload.handleRemove(file);\n },\n handleClick(file) {\n this.onHandle(file);\n },\n makeItem(file, index) {\n return this.uploadType === 'image'\n ? <img src={file.url} key={this.key('img' + index)}/>\n : <i class=\"el-icon-tickets\" key={this.key('i' + index)}/>\n },\n makeRemoveIcon(file, index) {\n return <i class=\"el-icon-delete\" on-click={() => this.onRemove(file)} key={this.key('ri' + index)}/>;\n },\n makeHandleIcon(file, index) {\n return <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(file)} key={this.key('hi' + index)}/>;\n },\n makeProgress(file, index) {\n return <ElProgress props={{percentage: file.percentage, type: 'circle', width: 52}} style=\"margin-top:2px;\"\n key={this.key('pg' + index)}/>\n },\n makeIcons(file, index) {\n const icons = [];\n if (this.allowRemove || this.handleIcon !== false) {\n if ((this.uploadType !== 'file' && this.handleIcon !== false) || (this.uploadType === 'file' && this.handleIcon)) {\n icons.push(this.makeHandleIcon(file, index));\n }\n if (this.allowRemove) {\n icons.push(this.makeRemoveIcon(file, index));\n }\n\n return <div class='fc-upload-cover'>{icons}</div>;\n }\n },\n makeFiles() {\n return this.uploadList.map((file, index) => this.$scopedSlots.fileList ? this.$scopedSlots.fileList({\n file,\n index,\n vm: this\n }) : <div key={this.key(index)}\n class='fc-files'>{(file.percentage !== undefined && file.status !== 'success') ? this.makeProgress(file, index) : [this.makeItem(file, index), this.makeIcons(file, index)]}</div>);\n },\n makeUpload() {\n const isShow = (!this.limit || this.limit > this.uploadList.length);\n return <ElUpload {...this.formCreateInject.prop} ref=\"upload\"\n style={{display: 'inline-block'}}\n key={this.key('upload')}>\n {isShow ? <template slot=\"default\">\n {this.$slots.default || <div class='fc-upload-btn'>\n <i class=\"el-icon-upload2\"/>\n </div>}\n </template> : null}{getSlot(this.$slots, ['default'])}\n </ElUpload>;\n },\n update() {\n let files = this.$refs.upload.uploadFiles.map((file) => file.url).filter((url) => url !== undefined);\n if(this.cacheFiles.length !== files.length){\n this.cacheFiles = [...files];\n this.$emit('input', this.limit === 1 ? (files[0] || '') : files);\n }\n },\n handleCancel() {\n this.previewVisible = false;\n },\n },\n render() {\n if (this.$refs.upload) {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = this.$refs.upload.showFileList;\n }\n this.formCreateInject.prop.props.fileList = this.$refs.upload.fileList;\n }\n return (\n <div\n class='_fc-upload'>{[this.formCreateInject.prop.props.showFileList ? [] : this.makeFiles(), this.makeUpload()]}\n <el-dialog appendToBody={true} modal={this.previewMask} title={this.modalTitle}\n visible={this.previewVisible}\n on-close={this.handleCancel}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.uploadFiles;\n this.$watch(() => this.$refs.upload.uploadFiles, () => {\n this.update();\n }, {deep: true});\n }\n}\n","import Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'fcGroup';\n\nexport default {\n name: NAME,\n props: {\n field: String,\n rule: [Array, Object],\n rules: Array,\n expand: Number,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n button: {\n type: Boolean,\n default: true\n },\n max: {\n type: Number,\n default: 0\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: () => []\n },\n defaultValue: Object,\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n fontSize: {\n type: Number,\n default: 28\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.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 if (this.defaultValue) {\n if (!options.formData) options.formData = {};\n const defVal = deepCopy(this.defaultValue);\n extend(options.formData, this.field ? {[this.field]: defVal} : defVal);\n }\n this.$set(this.cacheRule, ++this.len, {rule, options});\n if (emit) {\n this.$nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));\n }\n },\n add$f(i, key, $f) {\n this.cacheRule[key].$f = $f;\n this.subForm();\n this.formData(key, $f.formData());\n this.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n 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 value={this.field ? {[this.field]: this._value(this.value[index])} : this.value[index]}\n rule={rule}\n option={options} extendOption={true}/></ElFormItem></ElCol>\n {button ? <ElCol span={2} pull={1} push={1}>{this.makeIcon(keys.length, index, key)}</ElCol> : null}\n </ElRow>\n })}</div>\n }\n}\n","const NAME = 'fcSubForm';\n\nexport default {\n name: NAME,\n props: {\n rule: Array,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n default: () => ({})\n },\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n },\n data() {\n return {\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n watch: {\n disabled(n) {\n this.syncDisabled && this.cacheRule.$f.disabled(n);\n },\n value(n) {\n this.setValue(n);\n }\n },\n methods: {\n formData(value) {\n this.cacheValue = JSON.stringify(value);\n this.$emit('input', value);\n this.$emit('change', value);\n },\n setValue(value) {\n const str = JSON.stringify(value);\n if (this.cacheValue === str) {\n return;\n }\n this.cacheValue = str;\n this.cacheRule.$f.coverValue(value || {});\n },\n addRule() {\n const options = this.options ? this.options : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = {...(this.value || {})};\n this.cacheRule = {rule: this.rule, options};\n },\n add$f($f) {\n this.cacheRule.$f = $f;\n this.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 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 name: String,\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","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return eval('(' + FUNCTION + '(){return ' + fn + ' })()')\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n return is.Function(rule.getRule) ? rule.getRule() : rule;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, copy(h.appendData));\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n const flag = hasProperty(formData, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? formData[key] : undefined;\n })\n });\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rule.props && $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n 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","export default function toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n","export default function toLine(name) {\n let line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();\n if (line.indexOf('-') === 0)\n line = line.substr(1);\n return line;\n}\n","let id = 0;\n\nexport default function uniqueId() {\n return Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}${++id}`).toString(36);\n}\n","export default function deepSet(data, idx, val) {\n let _data = data, to;\n (idx || '').split('.').forEach(v => {\n if (to) {\n if (!_data[to] || typeof _data[to] != 'object') {\n _data[to] = {}\n }\n _data = _data[to];\n }\n to = v;\n })\n _data[to] = val;\n return _data;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {_vue as Vue} from '../frame';\nimport {tip} from '@form-create/utils/lib/console';\nimport {invoke, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {$set, deepSet, toLine} from '@form-create/utils';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.tempList = {};\n this.clearOrgChildren();\n },\n initOrgChildren() {\n const ctxs = this.$handle.ctxs;\n this.orgChildren = Object.keys(ctxs).reduce((initial, id) => {\n if (ctxs[id].parser.loadChildren !== false) {\n const children = ctxs[id].rule.children;\n initial[id] = is.trueArray(children) ? [...children] : [];\n }\n\n return initial;\n }, {});\n\n },\n clearOrgChildren() {\n this.orgChildren = {};\n },\n getTypeSlot(type) {\n const name = 'type-' + toLine(type);\n const _fn = (vm) => {\n if (vm) {\n const slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n }\n return _fn(this.vm);\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side) {\n return is.Object(side) ? mergeRule({}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix)), vn, this.renderRule(this.parseSide(prop.suffix))];\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n 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 = this.getTypeSlot(ctx.type);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else {\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 options: [],\n children: [],\n prop: {},\n preview: false,\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 ctx.prop.model = {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n };\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if (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/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value === null ? undefined : value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, 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, strFn) !== JSON.stringify(value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return 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/modify';\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 => k[0] !== '_' && k[0] !== '$' && 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 let effect = {};\n Object.keys(ctx.rule.effect || {}).forEach(k => {\n effect[k] = () => ctx.rule.effect[k];\n })\n Object.keys(ctx.rule).forEach(k => {\n if (k[0] === '$') {\n effect[k.substr(1)] = () => ctx.rule[k];\n }\n })\n Object.keys(effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(effect[k], (n) => {\n this.effect(ctx, 'watch', {[k]: n});\n }, {deep: true}));\n });\n },\n ruleEffect(rule, event, append) {\n this.emitEffect({\n rule,\n input: !!rule.field,\n type: this.getType(rule.type)\n }, event, append);\n },\n effect(ctx, event, custom) {\n this.emitEffect({\n rule: ctx.rule,\n input: ctx.input,\n type: ctx.trueType,\n ctx,\n custom\n }, event);\n },\n getEffect(rule, name) {\n if (hasProperty(rule, '$' + name)) {\n return rule['$' + name];\n }\n if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (Object.keys(rule).reduce((i, k) => {\n if (k[0] === '$') {\n i[k.substr(1)] = rule[k];\n }\n return i;\n }, {...rule.effect || {}}));\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeProps([prop], data.getProp());\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) return unique(c.filter(v => v !== '*'));\n else if (is.String(c)) return [c];\n else return false;\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\n\n\nexport default function Handler(fc) {\n extend(this, {\n fc,\n vm: fc.vm,\n watching: false,\n loading: false,\n reloading: false,\n noWatchFn: null,\n deferSyncFn: null,\n isMounted: false,\n formData: {},\n subForm: {},\n form: {},\n appendData: {},\n providers: {},\n cycleLoad: null,\n loadedId: 1,\n nextTick: null,\n changeStatus: false,\n pageEnd: true,\n nextReload: () => {\n this.lifecycle('reload');\n }\n });\n\n funcProxy(this, {\n options() {\n return fc.options;\n },\n bus() {\n return fc.bus;\n },\n })\n\n this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApi(Api(this), this);\n}\n\nextend(Handler.prototype, {\n initData(rules) {\n extend(this, {\n ctxs: {},\n fieldCtx: {},\n nameCtx: {},\n sort: [],\n rules,\n });\n },\n init() {\n this.appendData = {...this.fc.options.formData || {}, ...this.vm.value || {}, ...this.appendData};\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.vm.$set(this.vm, 'formData', this.formData);\n },\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nfunction getError(action, option, xhr) {\n const msg = `fail to ${action} ${xhr.status}'`;\n const err = new Error(msg);\n err.status = xhr.status;\n err.url = action;\n return err;\n}\n\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function fetch(option) {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n\n const xhr = new XMLHttpRequest();\n const action = option.action;\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr), getBody(xhr));\n }\n\n option.onSuccess(getBody(xhr));\n };\n\n xhr.open(option.method || 'get', action, true);\n\n let formData;\n if (option.data) {\n if ((option.dataType || '').toLowerCase() !== 'json') {\n formData = new FormData();\n Object.keys(option.data).map(key => {\n formData.append(key, option.data[key]);\n });\n } else {\n formData = JSON.stringify(option.data);\n xhr.setRequestHeader('content-type', 'application/json');\n }\n }\n\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const headers = option.headers || {};\n\n Object.keys(headers).forEach(item => {\n if (headers[item] !== null) {\n xhr.setRequestHeader(item, headers[item]);\n }\n });\n xhr.send(formData);\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n 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\nconst $required = {\n name: 'required',\n load(inject, rule) {\n const val = parseVa(inject.getValue());\n const validate = {\n ...val,\n required: true,\n validator(_, v, c) {\n is.empty(v) ? c(validate.message) : c();\n }\n };\n if (!validate.message) {\n validate.message = rule.title + ' is required';\n }\n inject.getProp().validate = [validate];\n },\n watch(...args) {\n $required.load(...args);\n }\n}\n\nfunction parseVa(val) {\n if (is.Boolean(val)) {\n return {}\n } else if (is.String(val)) {\n return {message: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\nfunction parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n}\n\nfunction run(inject, rule, api) {\n let option = inject.value;\n if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n return false;\n }\n if (!option.to) {\n option.to = 'options';\n }\n const onError = option.onError;\n\n const check = () => {\n if (!inject.getValue()) {\n inject.clearProp();\n api.sync(rule);\n return true;\n }\n }\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to, val);\n }\n }\n\n invoke(() => fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n set((option.parse || ((v) => v.data))(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }));\n\n return true;\n}\n\nexport default {\n fetch: $fetch,\n required: $required,\n};\n","import is from '@form-create/utils/lib/type';\n\nconst name = 'html';\n\nexport default {\n name,\n loadChildren: false,\n render(children, ctx) {\n if (!ctx.prop.domProps) ctx.prop.domProps = {};\n ctx.prop.domProps.innerHTML = children;\n return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);\n },\n renderChildren(ctx) {\n if (Array.isArray(ctx.rule.children)) {\n return ctx.rule.children.filter(v => is.String(v)).join('');\n }\n return '';\n }\n}\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $provider from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport html from '../parser/html';\n\nexport let _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;\n\nfunction _parseProp(name, id) {\n let prop;\n if (arguments.length === 2) {\n prop = arguments[1];\n id = prop[name];\n } else {\n prop = arguments[2];\n }\n return {id, prop};\n}\n\nfunction nameProp() {\n return _parseProp('name', ...arguments);\n}\n\nfunction _getEl(options) {\n if (!options || !options.el) return window.document.body;\n return is.Element(options.el)\n ? options.el\n : document.querySelector(options.el);\n}\n\nfunction mountForm(rules, option) {\n const $vm = new _vue({\n data() {\n //todo 外部无法修改\n return {rule: rules, option: option || {}};\n },\n render(h) {\n return h('FormCreate', {ref: 'fc', props: this.$data});\n }\n });\n $vm.$mount();\n return $vm;\n}\n\nfunction exportAttrs(attrs) {\n const key = attrs.key || [];\n const array = attrs.array || [];\n const normal = attrs.normal || [];\n keyAttrs.push(...key);\n arrayAttrs.push(...array);\n normalAttrs.push(...normal);\n\n appendProto([...key, ...array, ...normal]);\n}\n\nlet id = 1;\nconst instance = {};\n\n//todo 表单嵌套\nexport default function FormCreateFactory(config) {\n\n const components = {\n [fragment.name]: fragment\n };\n const parsers = {};\n const directives = {};\n const providers = {\n ...$provider\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n return instance[name];\n }\n\n function directive() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) directives[data.id] = data.prop;\n }\n\n function register() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) providers[data.id] = {...data.prop, name: data.id};\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser() {\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = {...(base || BaseParser), ...parser};\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = toCase(id);\n if (['form-create', 'formcreate'].indexOf(name) > -1) {\n return $form();\n } else if (component === undefined) {\n return components[name];\n }\n } else {\n name = toCase(id.name);\n component = id;\n }\n if (!name || !component) return;\n components[name] = component;\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return _vue.extend($FormCreate(FormCreate));\n }\n\n function $vnode() {\n return _vue.extend(fragment);\n }\n\n //todo 检查回调函数作用域\n function use(fn, opt) {\n if (is.Function(fn.install)) fn.install(create, opt);\n else if (is.Function(fn)) fn(create, opt);\n return this;\n }\n\n function create(rules, _opt, parent) {\n let $vm = mountForm(rules, _opt || {});\n const _this = $vm.$refs.fc.formCreate;\n _this.$parent = parent;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n }\n\n function factory(inherit) {\n let _config = {...config};\n if (inherit) {\n _config.inherit = {\n components,\n parsers,\n directives,\n providers,\n maker,\n data\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n id: id++,\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n name: vm.$options.propsData.name,\n 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 if (this.name) {\n instance[this.name] = this.api();\n }\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions(this.options);\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions(this.options);\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n if (this.name) {\n delete instance[this.name];\n }\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions(options) {\n this.options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = deepCopy(opt);\n parent && ['page', 'onSubmit', 'mounted', 'reload', 'formData', 'el'].forEach((n) => {\n delete opt[n];\n });\n if (opt.global) {\n target.global = mergeGlobal(target.global, opt.global);\n delete opt.global;\n }\n this.$handle.$manager.mergeOptions([opt], target);\n return target;\n },\n updateOptions(options) {\n this.mergeOptions(this.options, options);\n this.$handle.$manager.updateOptions(this.options);\n },\n created() {\n this.$handle.init();\n this.vm.$emit('created', this.api());\n },\n api() {\n return this.$handle.api;\n },\n render() {\n return this.$handle.render();\n },\n mounted() {\n this.$handle.mounted();\n },\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n data,\n maker,\n component,\n directive,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n getApi,\n init(rules, _opt = {}) {\n let $vm = mountForm(rules, _opt), _this = $vm.$refs.fc.formCreate;\n return {\n mount($el) {\n if ($el && is.Element($el))\n _this.options.el = $el;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n },\n remove() {\n $vm.$el.parentNode && $vm.$el.parentNode.removeChild($vm.$el);\n },\n destroy() {\n this.remove();\n $vm.$destroy();\n },\n $f: _this.api()\n };\n }\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(Vue, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n if (Vue._installedFormCreate === true) return;\n Vue._installedFormCreate = true;\n _vue = Vue;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n Vue.prototype.$formCreate = $formCreate;\n Vue.component('FormCreate', $form());\n Vue.component('FcFragment', $vnode());\n }\n })\n }\n\n useAttr(create);\n useStatic(create);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n parser(html);\n\n if (config.install) create.use(config);\n\n if (config.inherit) {\n const inherit = config.inherit;\n inherit.components && extend(components, inherit.components);\n inherit.parsers && extend(parsers, inherit.parsers);\n inherit.directives && extend(directives, inherit.directives);\n inherit.providers && extend(providers, inherit.providers);\n inherit.maker && extend(maker, inherit.maker);\n inherit.data && extend(data, inherit.data);\n }\n\n return create;\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst DEFAULT_FORMATS = {\n date: 'yyyy-MM-dd',\n month: 'yyyy-MM',\n datetime: 'yyyy-MM-dd HH:mm:ss',\n 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","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","_this","option","created","render","prop","index","Type","_this2","$slots","toArray","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","field","helper","Boolean","disabled","src","icon","width","height","maxLength","Number","okBtnText","closeBtnText","modalTitle","handleIcon","title","allowRemove","onOpen","Function","onOk","onCancel","onLoad","onBeforeRemove","onRemove","onHandle","previewImage","getSrc","previewVisible","modal","srcKey","previewMask","footer","reload","closeBtn","okBtn","fileList","frameVisible","val","modalVm","key","unique","closeModel","close","$off","handleCancel","showModel","makeInput","toString","readonly","makeGroup","children","makeBtn","makeItem","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","handleClick","_this3","handleRemove","makeFiles","_this4","makeImages","_this5","_this6","splice","frameLoad","iframe","api","_this7","set","get","fn","$on","onClose","console","log","makeFooter","$props","_this8","node","$nextTick","_this9","$refs","frame","contentWindow","mounted","closeModal","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","slot","slotName","formCreateParser","mergeProp","nodeKey","setValue","onChange","updateValue","tree","toLocaleLowerCase","getCurrentKey","getCheckedKeys","setCurrentKey","setCheckedKeys","parseFile","file","url","getFileName","uid","split","pop","uploadType","limit","uploadList","cacheFiles","showFileList","upload","uploadFiles","every","status","o","isDisabled","makeProgress","percentage","$scopedSlots","vm","makeUpload","isShow","display","files","$watch","$set","target","Vue","$del","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","extend","rules","expand","button","max","min","defaultValue","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","$f","expandRule","total","addRule","removeRule","subForm","_value","cache","JSON","stringify","input","formData","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","makeIcon","emitEvent","args","$form","checkbox","radio","select","group","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","extendOption","destroyed","validate","renderRule","ctxInject","formCreate","_refresh","_renderRule","_updateValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","format","msg","tip","warn","err","error","logError","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","eval","parseFn","trim","flag","replace","__inject","parseJson","json","parse","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","baseRule","on","hidden","creatorFactory","init","maker","Creator","_data","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","sub","id","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","refreshControl","method","el","trigger","getSubForm","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","parent","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","substr","uniqueId","Math","random","Date","now","deepSet","idx","to","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","parseSide","side","renderSides","temp","prefix","suffix","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","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","strFn","refreshRule","appendLink","link","effectData","clearEffectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","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","$required","load","parseVa","validator","_","message","parseOpt","body","join","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","instance","FormCreateFactory","fragment","directives","$provider","globalConfig","getApi","directive","register","componentAlias","base","$vnode","install","_opt","$parent","inherit","_config","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","html","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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"}
|