@form-create/element-ui 2.5.36 → 2.5.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"form-create.min.js","sources":["../../../node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","../../utils/lib/slot.js","../../../components/element-ui/checkbox/src/component.jsx","../../utils/lib/toarray.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/element-ui/frame/src/component.jsx","../../../components/element-ui/radio/src/component.jsx","../../utils/lib/type.js","../../../components/element-ui/select/src/component.jsx","../../../components/element-ui/tree/src/component.jsx","../../../components/element-ui/upload/src/component.jsx","../../utils/lib/modify.js","../../utils/lib/deepextend.js","../../utils/lib/extend.js","../../../components/element-ui/group/src/component.jsx","../src/components/index.js","../../../components/common/subform/src/component.jsx","../../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/fetch.js","../../core/src/frame/api.js","../../utils/lib/tocase.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/index.js","../../core/src/render/cache.js","../../core/src/render/render.js","../../core/src/handler/page.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/index.js","../../core/src/handler/inject.js","../../core/src/handler/render.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.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/index.js","../src/parsers/input.js","../src/parsers/slider.js","../src/parsers/timePicker.js","../src/parsers/row.js","../src/parsers/select.js","../src/core/alias.js","../src/core/manager.js","../src/core/config.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 const checked = Array.isArray(this.value) ? this.value : [this.value];\n this.trueValue = this.options().filter((opt) => checked.indexOf(opt.value) !== -1)\n .map((option) => option.label);\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElCheckboxGroup {...this.formCreateInject.prop} props={{value: this.trueValue}} ref=\"el\"\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElCheckboxButton' : 'ElCheckbox';\n delete props.value;\n return <Type props={props} key={Type + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</ElCheckboxGroup>\n },\n mounted(){\n this.$emit('fc.el', this.$refs.el);\n }\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css';\n\nconst NAME = 'fcFrame';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'input'\n },\n field: String,\n helper: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n src: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n default: 'el-icon-upload2'\n },\n width: {\n type: String,\n default: '500px'\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n },\n src(n) {\n this.modalVm && (this.modalVm.src = n);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModel(close) {\n this.$emit(close ? '$close' : '$ok');\n if (this.reload) {\n this.$off('$ok');\n this.$off('$close');\n }\n this.frameVisible = false;\n },\n handleCancel() {\n this.previewVisible = false;\n },\n\n showModel() {\n if (this.disabled || false === this.onOpen()) {\n return;\n }\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n readonly: true\n };\n\n return <ElInput props={props} key={this.key('input')}>\n {this.fileList.length ? <i slot=\"suffix\" class=\"el-input__icon el-icon-circle-close\"\n on-click={() => this.fileList = []}/> : null}\n <ElButton icon={this.icon} on={{'click': () => this.showModel()}} slot=\"append\"/>\n </ElInput>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength) {\n children.push(this.makeBtn());\n }\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field) {\n throw new Error('[frame]无效的字段值');\n }\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon)) {\n icons.push(this.makeHandleIcon(val, index));\n }\n if (this.allowRemove) {\n icons.push(this.makeRemoveIcon(val, index));\n }\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <i class=\"el-icon-delete\" on-click={() => this.handleRemove(val)} key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<i class=\"el-icon-tickets\"\n on-click={() => this.handleClick(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeImages() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<img src={this.getSrc(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeBtn() {\n return <div class='fc-upload-btn' on-click={() => this.showModel()} key={this.key('btn')}>\n <i class={this.icon}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) {\n return;\n }\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !this.srcKey ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n api: this.formCreateInject.api,\n close: (field) => {\n this.valid(field);\n this.closeModel();\n },\n set: (field, value) => {\n this.valid(field);\n if (!this.disabled)\n this.$emit('input', value);\n\n },\n get: (field) => {\n this.valid(field);\n return this.value;\n },\n onOk: fn => this.$on('$ok', fn),\n onClose: fn => this.$on('$close', fn)\n };\n\n }\n } catch (e) {\n console.log(e);\n }\n },\n makeFooter() {\n const {okBtnText, closeBtnText, closeBtn, okBtn, footer} = this.$props;\n\n if (!footer) {\n return;\n }\n return <div slot=\"footer\">\n {closeBtn ? <ElButton\n on-click={() => (this.onCancel() !== false && (this.frameVisible = false))}>{closeBtnText}</ElButton> : null}\n {okBtn ? <ElButton type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</ElButton> : null}\n </div>\n }\n },\n render() {\n const type = this.type;\n\n let node;\n if (type === 'input') {\n node = this.makeInput();\n } else if (type === 'image') {\n node = this.makeImages();\n } else {\n node = this.makeFiles();\n }\n\n const {width = '30%', height, src, title, modalTitle} = this.$props;\n this.$nextTick(() => {\n if (this.$refs.frame) {\n this.frameLoad(this.$refs.frame.contentWindow || {});\n }\n });\n return <div class=\"_fc-frame\">{node}\n <el-dialog\n props={{appendToBody: true, modal: this.previewMask, title: modalTitle, visible: this.previewVisible}}\n on-close={this.handleCancel}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n <el-dialog props={{width, title, appendToBody: true, ...this.modal, visible: this.frameVisible}}\n on-close={() => (this.closeModel(true))}>\n {(this.frameVisible || !this.reload) ? <iframe ref=\"frame\" src={src} frameBorder=\"0\" style={{\n 'height': height,\n 'border': '0 none',\n 'width': '100%'\n }}/> : null}\n {this.makeFooter()}\n </el-dialog>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n}\n","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcRadio';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {},\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => opt.label === n).reduce((initial, opt) => opt.value, ''));\n },\n update() {\n this.trueValue = this.options().filter((opt) => opt.value === this.value).reduce((initial, opt) => opt.label, '');\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElRadioGroup {...this.formCreateInject.prop} ref=\"el\"\n props={{value: this.trueValue}}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElRadioButton' : 'ElRadio';\n delete props.value;\n return <Type props={props} key={Type + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</ElRadioGroup>\n },\n mounted(){\n this.$emit('fc.el', this.$refs.el);\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, {hasProperty} 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 makeOption = (props, index) => {\n const slot = props.slot;\n return <ElOption props={props}\n key={'' + index + '-' + props.value}>\n {slot ? <template\n slot={props.slotName || 'default'}>{is.Function(slot) ? props.slot(h) : slot}</template> : null}\n </ElOption>;\n }\n const makeOptionGroup = (props, index) => {\n return <ElOptionGroup label={props.label}\n key={'' + index + '-' + props.label}>\n {is.trueArray(props.options) && props.options.map((v, index) => {\n return makeOption(v, index);\n })}\n </ElOptionGroup>;\n }\n\n const options = ctx.props.formCreateInject.options;\n return <ElSelect {...ctx.data} ref=\"el\">{(Array.isArray(options) ? options : []).map((props, index) => {\n return hasProperty(props || '', 'options') ? makeOptionGroup(props, index) : makeOption(props, index);\n })}{ctx.children}</ElSelect>;\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\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 this.$emit('fc.el', this.$refs.tree);\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} {...{\n style: {display: 'inline-block'},\n key: this.key('upload'),\n ref: 'upload'\n }}>\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 || !files.length) {\n this.cacheFiles = [...files];\n this.$emit('input', this.limit === 1 ? (files[0] || '') : files);\n }\n },\n handleCancel() {\n this.previewVisible = false;\n },\n },\n render() {\n if (this.$refs.upload) {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = this.$refs.upload.showFileList;\n }\n this.formCreateInject.prop.props.fileList = this.$refs.upload.fileList;\n }\n return (\n <div\n class='_fc-upload'>{[this.formCreateInject.prop.props.showFileList ? [] : this.makeFiles(), this.makeUpload()]}\n <el-dialog\n props={{\n appendToBody: true,\n modal: this.previewMask,\n title: this.modalTitle,\n visible: this.previewVisible\n }}\n on-close={this.handleCancel}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.uploadFiles;\n this.$watch(() => this.$refs.upload.uploadFiles, () => {\n this.update();\n }, {deep: true});\n this.$emit('fc.el', this.$refs.upload);\n }\n}\n","import Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\nimport './style.css';\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 sortBtn: {\n type: Boolean,\n default: true\n },\n defaultValue: Object,\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n parse: Function,\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n sort: [],\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rules) {\n return this.rules;\n }\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n return [];\n }\n },\n watch: {\n cacheRule: {\n handler(n) {\n this.sort = Object.keys(n);\n },\n immediate: true\n },\n formRule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n disabled(n) {\n if (this.syncDisabled) {\n const lst = this.cacheRule;\n Object.keys(lst).forEach(k => {\n lst[k].$f.disabled(n);\n })\n }\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n, o) {\n n = n || [];\n let keys = this.sort, 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 this.sort = Object.keys(this.cacheRule);\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.sort = Object.keys(this.cacheRule);\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 = this.sort;\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 && $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.parse && this.parse({rule, options, index: this.sort.length});\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.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n const value = [...this.value];\n value.splice(index, 1);\n this.input(value);\n },\n addIcon(key) {\n return <div class=\"_fc-group-btn _fc-group-plus-minus\" on-click={this.add}></div>;\n },\n delIcon(index, key) {\n return <div class=\"_fc-group-btn _fc-group-plus-minus _fc-group-minus\"\n onClick={() => this.del(index, key)}></div>\n },\n sortUpIcon(index) {\n return <div class=\"_fc-group-btn _fc-group-arrow _fc-group-up\"\n onClick={() => this.changeSort(index, -1)}></div>\n },\n sortDownIcon(index) {\n return <div class=\"_fc-group-btn _fc-group-arrow _fc-group-down\"\n onClick={() => this.changeSort(index, 1)}></div>\n },\n changeSort(index, sort) {\n const a = this.sort[index];\n this.$set(this.sort, index, this.sort[index + sort]);\n this.sort[index + sort] = a;\n this.formData(0);\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 const btn = [];\n if ((!this.max || total < this.max) && total === index + 1) {\n btn.push(this.addIcon(key));\n }\n if (total > this.min) {\n btn.push(this.delIcon(index, key));\n }\n if (this.sortBtn && index) {\n btn.push(this.sortUpIcon(index));\n }\n if (this.sortBtn && index !== total - 1) {\n btn.push(this.sortDownIcon(index));\n }\n return btn;\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 = this.sort;\n const button = this.button;\n const Type = this.type;\n const disabled = this.disabled;\n\n const children = keys.length === 0 ?\n (this.$scopedSlots.default ? (this.$scopedSlots.default({\n vm: this,\n add: this.add\n })) : <div key={'a_def'} class=\"_fc-group-plus-minus _fc-group-add\"\n on-click={this.add}/>) : keys.map((key, index) => {\n const {rule, options} = this.cacheRule[key];\n const btn = button && !disabled ? this.makeIcon(keys.length, index, key) : [];\n return <div class=\"_fc-group-container\" key={key}>\n <Type\n key={key}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n props={{\n inFor: true,\n value: this.field ? {[this.field]: this._value(this.value[index])} : this.value[index],\n rule,\n option: options,\n extendOption: true\n }}\n />\n <div class=\"_fc-group-idx\">{index + 1}</div>\n {(btn.length) ? <div class=\"_fc-group-handle\">{btn}</div> : null}\n </div>\n });\n return <div key={'con'} class={'_fc-group ' + (disabled ? '_fc-group-disabled' : '')}>{children}</div>\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","const NAME = 'fcSubForm';\n\nexport default {\n name: NAME,\n props: {\n rule: Array,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n default: () => ({})\n },\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n },\n data() {\n return {\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n watch: {\n disabled(n) {\n this.syncDisabled && this.cacheRule.$f.disabled(n);\n },\n value(n) {\n this.setValue(n);\n }\n },\n methods: {\n formData(value) {\n this.cacheValue = JSON.stringify(value);\n this.$emit('input', value);\n this.$emit('change', value);\n },\n setValue(value) {\n const str = JSON.stringify(value);\n if (this.cacheValue === str) {\n return;\n }\n this.cacheValue = str;\n this.cacheRule.$f.coverValue(value || {});\n },\n addRule() {\n const options = this.options ? this.options : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = {...(this.value || {})};\n this.cacheRule = {rule: this.rule, options};\n },\n add$f($f) {\n this.cacheRule.$f = $f;\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n props={{rule, option: options, extendOption: true}}/>\n }\n}\n","import extend from '@form-create/utils/lib/extend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'FormCreate';\n\nconst getRuleInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.formCreateInject) {\n return vm.formCreateInject\n }\n if (vm.$parent) {\n return getRuleInject(vm.$parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n disabled: {\n type: Boolean,\n default: undefined,\n },\n value: Object,\n api: Object,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: JSON.stringify(this.value || {}),\n isMore: !!this.inFor,\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n || {}) === this.updateValue) return;\n this.$f.config.forceCoverValue ? this.$f.coverValue(n || {}) : this.$f.setValue(n || {});\n },\n deep: true\n },\n option: {\n handler() {\n this.formCreate.initOptions();\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 disabled() {\n this.$f.refresh();\n }\n },\n beforeCreate() {\n this.formCreate = new FormCreate(this);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n created() {\n const vm = this, fapi = this.formCreate.api();\n const addSubForm = () => {\n if (vm.$pfc) {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n let sub;\n if (vm.isMore) {\n sub = toArray(inject.getSubForm());\n sub.push(fapi);\n\n } else {\n sub = fapi;\n }\n inject.subForm(sub);\n }\n }\n };\n\n const rmSubForm = () => {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n if (vm.isMore) {\n const sub = toArray(inject.getSubForm());\n const idx = sub.indexOf(fapi);\n if (idx > -1) {\n sub.splice(idx, 1);\n }\n } else {\n inject.subForm();\n }\n }\n };\n\n vm.$on('hook:beforeDestroy', () => {\n rmSubForm();\n });\n\n this.$watch(() => this.subForm, (n) => {\n n ? addSubForm() : rmSubForm();\n }, {immediate: true});\n }\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'preview', 'component', 'cache'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is 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(Array.isArray(obj) ? [] : {}, 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 (new Function('return ' + fn))();\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n const r = is.Function(rule.getRule) ? rule.getRule() : rule;\n if (!r.type) {\n r.type = 'input';\n }\n return r;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n\nconst changeType = (a, b) => {\n if (typeof a === 'string') {\n return String(b);\n } else if (typeof a === 'number') {\n return Number(b);\n }\n return b;\n}\n\nexport const condition = {\n '==': (a, b) => {\n return JSON.stringify(a) === JSON.stringify(changeType(a, b));\n },\n '!=': (a, b) => {\n return !condition['=='](a, b);\n },\n '>': (a, b) => {\n return a > b;\n },\n '>=': (a, b) => {\n return a >= b;\n },\n '<': (a, b) => {\n return a < b;\n },\n '<=': (a, b) => {\n return a <= b;\n },\n on(a, b) {\n return a && a.indexOf && a.indexOf(changeType(a[0], b)) > -1;\n },\n notOn(a, b) {\n return !condition.on(a, b);\n },\n in(a, b) {\n return b && b.indexOf && b.indexOf(a) > -1;\n },\n notIn(a, b) {\n return !condition.in(a, b);\n },\n between(a, b) {\n return a > b[0] && a < b[1];\n },\n notBetween(a, b) {\n return a < b[0] || a > b[1];\n },\n empty(a) {\n return is.empty(a);\n },\n notEmpty(a) {\n return !is.empty(a);\n },\n pattern(a, b) {\n return new RegExp(b, 'g').test(a);\n }\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 effect: {},\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","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nimport is from '@form-create/utils/lib/type';\nimport {parseFn} from '@form-create/utils/lib/json';\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\nexport function asyncFetch(config) {\n return new Promise((resolve, reject) => {\n fetch({\n ...config,\n onSuccess(res) {\n let fn = (v) => v;\n const parse = parseFn(config.parse);\n if (is.Function(parse)) {\n fn = parse;\n } else if (parse && is.String(parse)) {\n fn = (v) => {\n parse.split('.').forEach(k => {\n if (v) {\n v = v[k];\n }\n })\n return v;\n }\n }\n resolve(fn(res));\n },\n onError(err) {\n reject(err);\n }\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';\nimport {asyncFetch} from './fetch';\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 top() {\n if (api.parent) {\n return api.parent.top;\n }\n return api;\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, h.options.appendValue ? copy(h.appendData) : {});\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n const data = {...(formData || {})};\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (ctxs) {\n const flag = hasProperty(data, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? data[key] : undefined;\n })\n delete data[key];\n }\n });\n extend(h.appendData, data);\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rule.props && $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n getRenderRule: (id) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return ctx.prop;\n }\n },\n getRefRule: (id) => {\n const ctxs = h.getCtxs(id);\n if (ctxs && ctxs.length) {\n const rules = ctxs.map(ctx => {\n return ctx.rule;\n })\n return rules.length === 1 ? rules[0] : rules;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n $set(ctx.rule, 'effect', {});\n }\n $set(ctx.rule.effect, attr, value);\n }\n },\n clearEffectData(id, attr) {\n const ctx = h.getCtx(id);\n if (ctx) {\n if (attr && attr[0] === '$') {\n attr = attr.substr(1);\n }\n ctx.clearEffectData(attr);\n api.sync(id);\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.exportEl || ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n deferSyncValue(fn, sync) {\n h.deferSyncValue(fn, sync);\n },\n fetch(opt) {\n h.options.beforeFetch && invoke(() => h.options.beforeFetch(opt, {api}));\n return asyncFetch(opt);\n },\n getData(id, def) {\n return hasProperty(h.fc.loadData, id) ? h.fc.loadData[id] : def;\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off', 'set', 'emit'].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","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 const num = 370 + (++id);\n return 'F' + Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}`).toString(36) + num.toString(36) + 'c';\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 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';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if(ctx.rule.cache){\n return;\n }\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n if (cache) {\n cache.use = true;\n return cache.vnode;\n }\n return undefined;\n }\n })\n\n}\n","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(ctx) {\n const _fn = (vm) => {\n if (vm) {\n let slot = undefined;\n if (ctx.rule.field) {\n slot = vm.$scopedSlots['field-' + toLine(ctx.rule.field)] || vm.$scopedSlots['field-' + ctx.rule.field];\n }\n if (!slot) {\n slot = vm.$scopedSlots['type-' + toLine(ctx.type)] || vm.$scopedSlots['type-' + ctx.type];\n }\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, ctx) {\n return is.Object(side) ? mergeRule({props: {formCreateInject: ctx.prop.props.formCreateInject}}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix, ctx)), vn, this.renderRule(this.parseSide(prop.suffix, ctx))];\n\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = rule.cache !== false;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.preview = !!(hasProperty(prop, 'preview') ? prop.preview : (this.options.preview || false))\n prop.props.formCreateInject = this.injectProp(ctx);\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = this.getTypeSlot(ctx);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else if(is.String(vn.data.style)) {\n vn.data.style += ';display:none;';\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n getSubForm: () => {\n return this.$handle.subForm[ctx.id];\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n id: ctx.id,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx);\n ctx.parser.mergeProp(ctx);\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 'fc.el': (el) => {\n ctx.exportEl = el;\n if (el) {\n (el.$el || el).__rule__ = ctx.rule;\n }\n }\n },\n }\n ]\n\n if (ctx.input) {\n if (this.vm.$props.disabled !== undefined) {\n ctx.prop.props.disabled = !!this.vm.$props.disabled;\n }\n ctx.prop.model = {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n };\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if(prop.component)\n return this.vNode.makeComponent(prop.component, prop, children)\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import 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 unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {enumerable, mergeRule} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is from '@form-create/utils/lib/type';\nimport toArray from '@form-create/utils/lib/toarray';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(ctx, true)\n });\n}\n\nexport default function RuleContext(handle, rule, defaultValue) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n exportEl: undefined,\n defaultValue: rule.field ? deepCopy(defaultValue) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n if (name === undefined) {\n this.payload = {};\n } else {\n delete this.payload[name];\n }\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeRule({}, [rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n injectValidate() {\n return toArray(this.prop.validate).map(item => {\n if (is.Function(item.validator)) {\n const temp = {...item};\n const that = this;\n temp.validator = function (...args) {\n return item.validator.call({\n that: this,\n id: that.id,\n field: that.field,\n rule: that.rule,\n api: that.$handle.api,\n }, ...args)\n }\n return temp;\n }\n return item;\n });\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 cacheValue: this.rule.value\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, condition} from '../frame/util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {$set} from '@form-create/utils';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && !is.Object(_rule)) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n let defaultValue = rule.value;\n if (isInit) {\n ctx = _rule.__fc__;\n defaultValue = ctx.defaultValue;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n const rule = this.parseRule(_rule);\n ctx = new RuleContext(this, rule, defaultValue);\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 this.effect(ctx, 'created');\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, 'init');\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 || function (val) {\n return ((condition[control.condition || '=='] || condition['=='])(val, control.value));\n };\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n const hideLst = [];\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl, method}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n hideLst[valid ? 'push' : 'unshift'](() => {\n if (method === 'disabled') {\n this.api.disabled(!valid, rule);\n } else if (method === 'display') {\n this.api.display(valid, rule);\n } else if (method === 'required') {\n rule.forEach(item => {\n this.api.setEffect(item, 'required', valid);\n })\n if(!valid){\n this.api.clearValidateState(rule);\n }\n } else {\n this.api.hidden(!valid, rule);\n }\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n hideLst.length && this.vm.$nextTick(() => {\n hideLst.forEach(v => v());\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n this.deferSyncValue(() => {\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n this.vm.$emit('reloading', this.api);\n });\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) $set(rule, k, def[k]);\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n this.emitEvent('change', ctx.field, value, {\n rule: ctx.origin,\n api: this.api,\n setFlag: setFlag || false\n })\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value === null ? undefined : value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, this.options.appendValue ? Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {}) : {}));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n this.subForm[ctx.id] = subForm;\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...(this.options.appendValue ? this.appendData : {}), ...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value === null ? undefined : value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val, origin, field) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api, {\n origin: origin || 'change',\n linkField: field\n }));\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, origin, field) {\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, origin, field);\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, 'link', field);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return this.render(children, ctx);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'component', 'cache'];\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule).filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o, ctx);\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.refresh();\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub, ctx) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && r.__fc__.parent === ctx && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n if (input && !hasProperty(this.fieldCtx, field)) {\n $del(this.form, field);\n }\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import 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.lifecycle('created');\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","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 emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n let emitKey = emitPrefix || field || name;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n emitKey = eventName.prefix || emitKey;\n }\n if (emitKey) {\n if (!on) emitKey = `native-${emitKey}`;\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';\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 extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke, parseFn} from '../frame/util';\nimport toCase from '@form-create/utils/lib/tocase';\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 this.vm.$emit(name, this.api);\n this.emitEvent(name, this.api);\n },\n emitEvent(name, ...args) {\n const _fn = this.options[name] || this.options[toCase('on-' + name)];\n if (_fn) {\n const fn = parseFn(_fn);\n is.Function(fn) && invoke(() => fn(...args));\n }\n this.bus.$emit(name, ...args);\n }\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {mergeRule} from '../frame/util';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n let prop = ps[k];\n if (is.Function(prop)) {\n prop = prop(this.fc);\n }\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n let effect = {\n required: () => {\n return (hasProperty(ctx.rule, '$required') ? ctx.rule['$required'] : ctx.rule?.effect?.required) || false;\n }\n };\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) => mergeRule(data.getProp(), [prop]);\n data.id = ctx.id;\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)) {\n const arr = unique(c.filter(v => v !== '*'));\n return arr.length ? arr : false;\n } else if (is.String(c)) return [c];\n else return false;\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n return this.makeComponent(tag, data, children);\n },\n makeComponent(type, data, children) {\n let Node = this.$h(type, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","import mergeProps from '@form-create/utils/lib/mergeprops';\nimport unique from '@form-create/utils/lib/unique';\nimport extend from '@form-create/utils/lib/extend';\n\nexport function createManager(proto) {\n class CustomManager extends Manager {\n }\n\n Object.assign(CustomManager.prototype, proto);\n return CustomManager;\n}\n\nexport default function Manager(handler) {\n extend(this, {\n $handle: handler,\n vm: handler.vm,\n options: {},\n ref: 'fcForm',\n mergeOptionsRule: {\n normal: ['form', 'row', 'info', 'submitBtn', 'resetBtn']\n }\n });\n this.updateKey();\n this.init();\n}\n\nextend(Manager.prototype, {\n __init() {\n this.$render = this.$handle.$render;\n this.$r = (...args) => this.$render.renderRule(...args);\n },\n updateKey() {\n this.key = unique();\n },\n //TODO interface\n init() {\n },\n update() {\n },\n beforeRender() {\n },\n form() {\n return this.vm.$refs[this.ref];\n },\n getSlot(name){\n const _fn = (vm) => {\n if (vm) {\n let slot = vm.$scopedSlots[name];\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n return undefined;\n }\n return _fn(this.vm);\n },\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 {byCtx, invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst loadData = function (fc) {\n const loadData = {\n name: 'loadData',\n _fn: [],\n created(inject, rule, api) {\n this.deleted(inject);\n let attrs = toArray(inject.getValue());\n const events = [];\n attrs.forEach(attr => {\n if (attr) {\n const on = () => {\n if (attr.watch !== false) {\n fc.bus.$off('p.loadData.' + attr.attr, on);\n fc.bus.$once('p.loadData.' + attr.attr, on);\n }\n let value = undefined;\n if (attr.attr) {\n value = fc.loadData[attr.attr] || attr.default;\n if (attr.copy) {\n value = deepCopy(value)\n }\n }\n deepSet(inject.getProp(), attr.to || 'options', value);\n api.sync(rule);\n }\n events.push(() => fc.bus.$off('p.loadData.' + attr.attr, on));\n on();\n }\n })\n this._fn[inject.id] = events;\n },\n deleted(inject) {\n if (this._fn[inject.id]) {\n this._fn[inject.id].forEach(un => {\n un();\n })\n delete this._fn[inject.id];\n }\n inject.clearProp();\n },\n };\n loadData.watch = loadData.created;\n return loadData;\n}\n\nconst componentValidate = {\n name: 'componentValidate',\n load(attr, rule, api) {\n const method = attr.getValue();\n if (!method) {\n attr.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n attr.getProp().validate = [{\n validator(...args) {\n const ctx = byCtx(rule);\n if (ctx) {\n return api.exec(ctx.id, method === true ? 'formCreateValidate' : method, ...args, {\n attr,\n rule,\n api\n });\n }\n }\n }];\n }\n },\n watch(...args) {\n componentValidate.load(...args);\n }\n};\n\nconst fetch = function (fc) {\n\n function parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n }\n\n function run(inject, rule, api) {\n let option = inject.value;\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to || 'options', val);\n }\n }\n if (is.Function(option)) {\n option = option(rule, api);\n\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n set(undefined);\n return;\n }\n option = deepCopy(option);\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 config = {\n headers: {},\n ...option,\n onSuccess(body, flag) {\n if (check()) return;\n let fn = (v) => flag ? v : v.data;\n if (is.Function(option.parse)) {\n fn = option.parse;\n } else if (option.parse && is.String(option.parse)) {\n fn = (v) => {\n option.parse.split('.').forEach(k => {\n if (v) {\n v = v[k];\n }\n })\n return v;\n }\n }\n set(fn(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n };\n fc.options.beforeFetch && invoke(() => fc.options.beforeFetch(config, {rule, api}));\n if (is.Function(option.action)) {\n option.action(rule, api).then((val) => {\n config.onSuccess(val, true);\n }).catch((e) => {\n config.onError(e);\n });\n return;\n }\n invoke(() => fc.create.fetch(config, {inject, rule, api}));\n }\n\n return {\n name: 'fetch',\n loaded(...args) {\n run(...args);\n },\n watch(...args) {\n run(...args);\n },\n };\n}\n\n\nconst $required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n const validate = {\n required: true,\n validator(_, v, call) {\n is.empty(v) ? call(validate.message) : call();\n },\n ...val,\n };\n if (!validate.message) {\n let title = rule.title || '';\n validate.message = ((typeof title === 'object' ? title.title : title) || '') + '不能为空';\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n $required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Undef(val)) {\n return {required: false};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\nexport default {\n fetch,\n loadData,\n required: $required,\n componentValidate,\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';\nimport uniqueId from '@form-create/utils/lib/unique';\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 loadData = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val)) {\n return val.map(v => {\n return v.api();\n });\n } else if (val) {\n return val.api();\n }\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 BaseParser;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = parser;\n Object.setPrototypeOf(parser, base || BaseParser);\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 const nameAlias = toCase(name);\n components[name] = component;\n components[nameAlias] = component;\n delete CreateNode.aliasMap[name];\n delete CreateNode.aliasMap[nameAlias];\n delete parsers[name];\n delete parsers[nameAlias];\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function _emitData(id) {\n Object.keys(instance).forEach(v => {\n const apis = Array.isArray(instance[v]) ? instance[v] : [instance[v]];\n apis.forEach(that => {\n that.bus.$emit('p.loadData.' + id);\n })\n })\n }\n\n function setData(id, data) {\n loadData[id] = data;\n _emitData(id);\n }\n\n function removeData(id) {\n delete loadData[id];\n _emitData(id);\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 loadData\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function FormCreate(vm) {\n const rules = vm.$options.propsData.rule;\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 || uniqueId(),\n inFor: vm.$options.propsData.inFor,\n prop: {\n components,\n directives,\n },\n loadData,\n CreateNode,\n bus: new _vue,\n unwatch: null,\n options: {},\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions();\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this);\n } else {\n instance[this.name] = this;\n }\n }\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions();\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions();\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this);\n instance[this.name].splice(idx, 1);\n if(!instance[this.name].length){\n delete instance[this.name];\n }\n } else {\n delete instance[this.name];\n }\n }\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions() {\n this.options = {};\n let options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n options = this.mergeOptions(options, this.vm.$options.propsData.option);\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 setData,\n removeData,\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.loadData && extend(loadData, inherit.loadData);\n }\n\n return create;\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst DEFAULT_FORMATS = {\n date: 'yyyy-MM-dd',\n month: 'yyyy-MM',\n datetime: 'yyyy-MM-dd HH:mm:ss',\n timerange: 'HH:mm:ss',\n daterange: 'yyyy-MM-dd',\n monthrange: 'yyyy-MM',\n datetimerange: 'yyyy-MM-dd HH:mm:ss',\n year: 'yyyy'\n};\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['year', 'month', 'date', 'dates', 'week', 'datetime', 'datetimeRange', 'dateRange', 'monthRange'].reduce((initial, type) => {\n initial[type] = creatorFactory(name, {type: type.toLowerCase()});\n return initial\n }, {});\n }()),\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = DEFAULT_FORMATS[props.type] || DEFAULT_FORMATS['date'];\n }\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return [];\n }\n}\n","import 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","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","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","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() {\n const form = this.form();\n if (form) {\n return form.validate();\n }\n return new Promise(v => v());\n },\n validateField(field) {\n const form = this.form();\n if (form) {\n return new Promise((resolve, reject) => {\n form.validateField(field, e => {\n e ? reject(e) : resolve(null);\n });\n })\n }\n return new Promise(v => v());\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', 'title'].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 title: this.options.title || {},\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: ctx.injectValidate(),\n },\n class: rule.className,\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), [children, isTitle ? this.makeInfo(rule, uni, ctx) : 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, ctx) {\n const titleProp = rule.title;\n const infoProp = rule.info;\n const isTip = isTooltip(infoProp);\n const form = this.options.form;\n const titleSlot = this.getSlot('title');\n const children = [titleSlot ? titleSlot({title: titleProp.title || '', rule: ctx.rule, options: this.options}) : ((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","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 {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 formEl() {\n return h.$manager.form();\n },\n wrapEl(id) {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return;\n return h.vm.$refs[ctx.wrapRef];\n },\n validate(callback) {\n return new Promise((resolve, reject) => {\n const forms = api.children;\n const all = [h.$manager.validate()];\n forms.forEach(v => {\n all.push(v.validate());\n })\n Promise.all(all).then(() => {\n resolve(true);\n callback && callback(true);\n }).catch((e) => {\n reject(e);\n callback && callback(false, e);\n h.vm.$emit('validate-fail', e, {api});\n })\n });\n },\n validateField: (field, callback) => {\n return new Promise((resolve, reject) => {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n const sub = h.subForm[ctx.id];\n const all = [h.$manager.validateField(ctx.id)];\n toArray(sub).forEach(v => {\n all.push(v.validate().catch(() => {\n return Promise.reject('子表单验证未通过');\n }));\n })\n Promise.all(all).then(() => {\n resolve(null);\n callback && callback(null);\n }).catch((e) => {\n reject(e);\n callback && callback(e);\n h.vm.$emit('validate-field-fail', e, {field, api});\n })\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","mergeFn","reduce","indexOf","Array","e","concat","f","g","h","i","getSlot","slots","exclude","keys","lst","name","push","props","formCreateInject","type","required","value","String","watch","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","checked","option","created","render","prop","index","Type","_this","$slots","mounted","$refs","el","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","_this2","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","frame","contentWindow","appendToBody","visible","closeModal","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","makeOption","slot","slotName","makeOptionGroup","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","checkbox","radio","select","rules","expand","button","max","min","sortBtn","defaultValue","syncDisabled","onBeforeAdd","parse","len","cacheRule","cacheValue","sort","computed","formRule","immediate","item","$f","formData","deferSyncValue","once","expandRule","total","addRule","removeRule","_value","cache","JSON","stringify","input","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","sortUpIcon","changeSort","sortDownIcon","makeIcon","_this10","btn","emitEvent","args","$form","_this11","inFor","extendOption","NAME","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","subForm","destroyed","validate","renderRule","ctxInject","isMore","formCreate","_refresh","_renderRule","_updateValue","config","forceCoverValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","fapi","rmSubForm","sub","getSubForm","idx","addSubForm","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","format","msg","err","error","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","parseFn","trim","flag","replace","__inject","parseJson","json","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","r","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","logError","changeType","condition","on","notOn","notIn","between","notBetween","notEmpty","pattern","RegExp","test","creatorFactory","init","maker","Creator","_data","effect","hidden","appendProto","attrs","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","getBody","xhr","text","responseText","response","fetch","XMLHttpRequest","action","onerror","onError","onload","getError","onSuccess","open","method","dataType","toLowerCase","FormData","append","setRequestHeader","withCredentials","headers","send","asyncFetch","Promise","resolve","reject","res","copy","toCase","lower","toLocaleUpperCase","toLine","line","substr","id","uniqueId","num","Math","random","Date","now","deepSet","to","Render","handle","fc","$manager","vNode","CreateNode","initCache","initRender","clearCacheAll","clearCache","use","setCache","vnode","getCache","useCache","tempList","clearOrgChildren","initOrgChildren","ctxs","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","mergeGlobal","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","warn","tip","parseSide","side","renderSides","temp","prefix","suffix","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","preview","makeWrap","onMounted","exportEl","$el","__rule__","getFormData","callback","expression","isRm","child","rmCtx","defaultRender","component","makeComponent","alias","aliasMap","useRender","EVENT","RuleContext","wrapRef","linkOn","root","ctrlRule","payload","updateType","updateKey","findCtrl","ctrl","isCtrl","strFn","toEmpty","effectData","clearEffectData","setParser","injectValidate","validator","check","unwatch","un","unlink","link","appendLink","watchTo","watchCtx","rmCtrl","deleted","$render","$api","rm","_rm","noWatch","updated","BaseParser","toFormValue","toValue","formValue","noneKey","Handler","watching","loading","reloading","noWatchFn","deferSyncFn","isMounted","appendData","providers","cycleLoad","loadedId","nextTick","changeStatus","pageEnd","nextReload","lifecycle","bus","initData","manager","extendApi","tidyFields","fields","getCtxs","allSubForm","subs","top","getFieldCtx","appendValue","getValue","fieldCtx","removeField","getCtx","destroy","parentNode","removeChild","$destroy","after","prepend","state","hiddenStatus","displayStatus","all","nameCtx","bind","updateOptions","onSubmit","sync","refreshOptions","hideForm","hide","clearChangeStatus","updateRule","updateRules","mergeRules","getRenderRule","getRefRule","setEffect","attr","updateValidate","updateValidates","validates","refreshValidate","resetFields","trigger","$once","nextRefresh","beforeFetch","getData","loadData","changeValue","changeField","Api","useProvider","usePage","loadRule","__init","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","eventName","eventInject","emitKey","fieldKey","_inject","self","propsData","unshift","useInject","page","first","ceil","parseInt","pageLoad","pageFn","clearNextTick","clearTimeout","bindNextTick","setTimeout","parseRule","_rule","fullRule","loadFn","loadCtrl","control","syncProp","pre","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","bindParser","setCtx","_preIndex","preIndex","refreshUpdate","defineProperty","valueHandle","refreshControl","useCtrl","controls","getCtrl","handleFn","isHidden","hideLst","reverse","clearValidateState","ruleCon","ctrlCtx","_reloadRule","useLoader","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","linkField","refreshRule","useInput","getNameCtx","setIdCtx","rmIdCtx","getParser","list","parsers","rmSub","watchEffect","useContext","_mounted","useLifecycle","ps","_c","p","components","arr","getComponent","onEffect","provider","used","_used","_ctx$rule","_ctx$rule$effect","emitEffect","custom","getEffect","getProp","clearProp","useEffect","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","domProps","innerHTML","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","componentValidate","load","$required","message","parseVal","_","run","parseOpt","body","then","loaded","events","join","_vue","window","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","instance","FormCreateFactory","fragment","directives","$provider","globalConfig","getApi","directive","register","componentAlias","base","setPrototypeOf","nameAlias","_emitData","setData","removeData","$vnode","install","_opt","inherit","_config","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","html","DEFAULT_FORMATS","date","month","datetime","timerange","daterange","monthrange","datetimerange","year","valueFormat","datePicker","idate","autosize","minRows","rows","sliderRange","range","parseFloat","time","m","isRange","timeRange","col","span","row","multiple","PRE","slider","rate","cascader","popover","tooltip","colorPicker","timePicker","timeSelect","inputNumber","number","formItem","autoComplete","auto","group","object","upperCaseReg","tidy","isFalse","validateField","fItem","validateMessage","validateState","show","tidyBool","info","wrap","placement","inline","labelPosition","labelWidth","size","gutter","innerText","click","submit","preventDefault","className","makeFormBtn","makeRow","uni","isTitle","_col","makeInfo","makeCol","titleProp","infoProp","isTip","titleSlot","labelSuffix","align","makeSubmitBtn","makeResetBtn","fApi","color","useAlias","useSelect","types","useTree","image","uploadFileOne","uploadImageOne","uploadImage","uploadFile","useUpload","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","frameInput","frameFile","frameImage","useFrame","tidyBtnProp","formEl","wrapEl","forms","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","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","../src/components/index.js","../../../components/common/subform/src/component.jsx","../../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/fetch.js","../../core/src/frame/api.js","../../utils/lib/tocase.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/index.js","../../core/src/render/cache.js","../../core/src/render/render.js","../../core/src/handler/page.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/index.js","../../core/src/handler/inject.js","../../core/src/handler/render.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.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/index.js","../src/parsers/input.js","../src/parsers/slider.js","../src/parsers/timePicker.js","../src/parsers/row.js","../src/parsers/select.js","../src/core/alias.js","../src/core/manager.js","../src/core/config.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 const checked = Array.isArray(this.value) ? this.value : [this.value];\n this.trueValue = this.options().filter((opt) => checked.indexOf(opt.value) !== -1)\n .map((option) => option.label);\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElCheckboxGroup {...this.formCreateInject.prop} props={{value: this.trueValue}} ref=\"el\"\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElCheckboxButton' : 'ElCheckbox';\n delete props.value;\n return <Type props={props} key={Type + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</ElCheckboxGroup>\n },\n mounted(){\n this.$emit('fc.el', this.$refs.el);\n }\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css';\n\nconst NAME = 'fcFrame';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'input'\n },\n field: String,\n helper: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n src: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n default: 'el-icon-upload2'\n },\n width: {\n type: String,\n default: '500px'\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n },\n src(n) {\n this.modalVm && (this.modalVm.src = n);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModel(close) {\n this.$emit(close ? '$close' : '$ok');\n if (this.reload) {\n this.$off('$ok');\n this.$off('$close');\n }\n this.frameVisible = false;\n },\n handleCancel() {\n this.previewVisible = false;\n },\n\n showModel() {\n if (this.disabled || false === this.onOpen()) {\n return;\n }\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n readonly: true\n };\n\n return <ElInput props={props} key={this.key('input')}>\n {this.fileList.length ? <i slot=\"suffix\" class=\"el-input__icon el-icon-circle-close\"\n on-click={() => this.fileList = []}/> : null}\n <ElButton icon={this.icon} on={{'click': () => this.showModel()}} slot=\"append\"/>\n </ElInput>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength) {\n children.push(this.makeBtn());\n }\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field) {\n throw new Error('[frame]无效的字段值');\n }\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon)) {\n icons.push(this.makeHandleIcon(val, index));\n }\n if (this.allowRemove) {\n icons.push(this.makeRemoveIcon(val, index));\n }\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <i\n class={(this.handleIcon === true || this.handleIcon === undefined) ? 'el-icon-view' : this.handleIcon}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <i class=\"el-icon-delete\" on-click={() => this.handleRemove(val)} key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<i class=\"el-icon-tickets\"\n on-click={() => this.handleClick(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeImages() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<img src={this.getSrc(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeBtn() {\n return <div class='fc-upload-btn' on-click={() => this.showModel()} key={this.key('btn')}>\n <i class={this.icon}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) {\n return;\n }\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !this.srcKey ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n api: this.formCreateInject.api,\n close: (field) => {\n this.valid(field);\n this.closeModel();\n },\n set: (field, value) => {\n this.valid(field);\n if (!this.disabled)\n this.$emit('input', value);\n\n },\n get: (field) => {\n this.valid(field);\n return this.value;\n },\n onOk: fn => this.$on('$ok', fn),\n onClose: fn => this.$on('$close', fn)\n };\n\n }\n } catch (e) {\n console.log(e);\n }\n },\n makeFooter() {\n const {okBtnText, closeBtnText, closeBtn, okBtn, footer} = this.$props;\n\n if (!footer) {\n return;\n }\n return <div slot=\"footer\">\n {closeBtn ? <ElButton\n on-click={() => (this.onCancel() !== false && (this.frameVisible = false))}>{closeBtnText}</ElButton> : null}\n {okBtn ? <ElButton type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</ElButton> : null}\n </div>\n }\n },\n render() {\n const type = this.type;\n\n let node;\n if (type === 'input') {\n node = this.makeInput();\n } else if (type === 'image') {\n node = this.makeImages();\n } else {\n node = this.makeFiles();\n }\n\n const {width = '30%', height, src, title, modalTitle} = this.$props;\n this.$nextTick(() => {\n if (this.$refs.frame) {\n this.frameLoad(this.$refs.frame.contentWindow || {});\n }\n });\n return <div class=\"_fc-frame\">{node}\n <el-dialog\n props={{appendToBody: true, modal: this.previewMask, title: modalTitle, visible: this.previewVisible}}\n on-close={this.handleCancel}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n <el-dialog props={{width, title, appendToBody: true, ...this.modal, visible: this.frameVisible}}\n on-close={() => (this.closeModel(true))}>\n {(this.frameVisible || !this.reload) ? <iframe ref=\"frame\" src={src} frameBorder=\"0\" style={{\n 'height': height,\n 'border': '0 none',\n 'width': '100%'\n }}/> : null}\n {this.makeFooter()}\n </el-dialog>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n}\n","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcRadio';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {},\n type: String,\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => opt.label === n).reduce((initial, opt) => opt.value, ''));\n },\n update() {\n this.trueValue = this.options().filter((opt) => opt.value === this.value).reduce((initial, opt) => opt.label, '');\n }\n },\n created() {\n this.update();\n },\n render() {\n return <ElRadioGroup {...this.formCreateInject.prop} ref=\"el\"\n props={{value: this.trueValue}}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n const Type = this.type === 'button' ? 'ElRadioButton' : 'ElRadio';\n delete props.value;\n return <Type props={props} key={Type + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</ElRadioGroup>\n },\n mounted(){\n this.$emit('fc.el', this.$refs.el);\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, {hasProperty} 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 makeOption = (props, index) => {\n const slot = props.slot;\n return <ElOption props={props}\n key={'' + index + '-' + props.value}>\n {slot ? <template\n slot={props.slotName || 'default'}>{is.Function(slot) ? props.slot(h) : slot}</template> : null}\n </ElOption>;\n }\n const makeOptionGroup = (props, index) => {\n return <ElOptionGroup label={props.label}\n key={'' + index + '-' + props.label}>\n {is.trueArray(props.options) && props.options.map((v, index) => {\n return makeOption(v, index);\n })}\n </ElOptionGroup>;\n }\n\n const options = ctx.props.formCreateInject.options;\n return <ElSelect {...ctx.data} ref=\"el\">{(Array.isArray(options) ? options : []).map((props, index) => {\n return hasProperty(props || '', 'options') ? makeOptionGroup(props, index) : makeOption(props, index);\n })}{ctx.children}</ElSelect>;\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\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 this.$emit('fc.el', this.$refs.tree);\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} {...{\n style: {display: 'inline-block'},\n key: this.key('upload'),\n ref: 'upload'\n }}>\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 || !files.length) {\n this.cacheFiles = [...files];\n this.$emit('input', this.limit === 1 ? (files[0] || '') : files);\n }\n },\n handleCancel() {\n this.previewVisible = false;\n },\n },\n render() {\n if (this.$refs.upload) {\n if (this.formCreateInject.prop.props.showFileList === undefined) {\n this.formCreateInject.prop.props.showFileList = this.$refs.upload.showFileList;\n }\n this.formCreateInject.prop.props.fileList = this.$refs.upload.fileList;\n }\n return (\n <div\n class='_fc-upload'>{[this.formCreateInject.prop.props.showFileList ? [] : this.makeFiles(), this.makeUpload()]}\n <el-dialog\n props={{\n appendToBody: true,\n modal: this.previewMask,\n title: this.modalTitle,\n visible: this.previewVisible\n }}\n on-close={this.handleCancel}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </el-dialog>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.uploadFiles;\n this.$watch(() => this.$refs.upload.uploadFiles, () => {\n this.update();\n }, {deep: true});\n this.$emit('fc.el', this.$refs.upload);\n }\n}\n","import Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\nimport './style.css';\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 sortBtn: {\n type: Boolean,\n default: true\n },\n defaultValue: Object,\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n parse: Function,\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n sort: [],\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rules) {\n return this.rules;\n }\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n return [];\n }\n },\n watch: {\n cacheRule: {\n handler(n) {\n this.sort = Object.keys(n);\n },\n immediate: true\n },\n formRule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n, o) {\n n = n || [];\n let keys = this.sort, 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 this.sort = Object.keys(this.cacheRule);\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.sort = Object.keys(this.cacheRule);\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 = this.sort;\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 && $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.parse && this.parse({rule, options, index: this.sort.length});\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.$nextTick(() => {\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n const value = [...this.value];\n value.splice(index, 1);\n this.input(value);\n },\n addIcon(key) {\n return <div class=\"_fc-group-btn _fc-group-plus-minus\" on-click={this.add}></div>;\n },\n delIcon(index, key) {\n return <div class=\"_fc-group-btn _fc-group-plus-minus _fc-group-minus\"\n onClick={() => this.del(index, key)}></div>\n },\n sortUpIcon(index) {\n return <div class=\"_fc-group-btn _fc-group-arrow _fc-group-up\"\n onClick={() => this.changeSort(index, -1)}></div>\n },\n sortDownIcon(index) {\n return <div class=\"_fc-group-btn _fc-group-arrow _fc-group-down\"\n onClick={() => this.changeSort(index, 1)}></div>\n },\n changeSort(index, sort) {\n const a = this.sort[index];\n this.$set(this.sort, index, this.sort[index + sort]);\n this.sort[index + sort] = a;\n this.formData(0);\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 const btn = [];\n if ((!this.max || total < this.max) && total === index + 1) {\n btn.push(this.addIcon(key));\n }\n if (total > this.min) {\n btn.push(this.delIcon(index, key));\n }\n if (this.sortBtn && index) {\n btn.push(this.sortUpIcon(index));\n }\n if (this.sortBtn && index !== total - 1) {\n btn.push(this.sortDownIcon(index));\n }\n return btn;\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 = this.sort;\n const button = this.button;\n const Type = this.type;\n const disabled = this.disabled;\n\n const children = keys.length === 0 ?\n (this.$scopedSlots.default ? (this.$scopedSlots.default({\n vm: this,\n add: this.add\n })) : <div key={'a_def'} class=\"_fc-group-plus-minus _fc-group-add\"\n on-click={this.add}/>) : keys.map((key, index) => {\n const {rule, options} = this.cacheRule[key];\n const btn = button && !disabled ? this.makeIcon(keys.length, index, key) : [];\n return <div class=\"_fc-group-container\" key={key}>\n <Type\n key={key}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n props={{\n disabled,\n inFor: true,\n value: this.field ? {[this.field]: this._value(this.value[index])} : this.value[index],\n rule,\n option: options,\n extendOption: true\n }}\n />\n <div class=\"_fc-group-idx\">{index + 1}</div>\n {(btn.length) ? <div class=\"_fc-group-handle\">{btn}</div> : null}\n </div>\n });\n return <div key={'con'} class={'_fc-group ' + (disabled ? '_fc-group-disabled' : '')}>{children}</div>\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","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 value(n) {\n this.setValue(n);\n }\n },\n methods: {\n formData(value) {\n this.cacheValue = JSON.stringify(value);\n this.$emit('input', value);\n this.$emit('change', value);\n },\n setValue(value) {\n const str = JSON.stringify(value);\n if (this.cacheValue === str) {\n return;\n }\n this.cacheValue = str;\n this.cacheRule.$f.coverValue(value || {});\n },\n addRule() {\n const options = this.options ? this.options : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = {...(this.value || {})};\n this.cacheRule = {rule: this.rule, options};\n },\n add$f($f) {\n this.cacheRule.$f = $f;\n this.$nextTick(() => {\n this.$emit('itemMounted', $f);\n });\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n props={{rule, option: options, disabled: this.disabled, extendOption: true}}/>\n }\n}\n","import extend from '@form-create/utils/lib/extend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'FormCreate';\n\nconst getRuleInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.formCreateInject) {\n return vm.formCreateInject\n }\n if (vm.$parent) {\n return getRuleInject(vm.$parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n disabled: {\n type: Boolean,\n default: undefined,\n },\n value: Object,\n api: Object,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: JSON.stringify(this.value || {}),\n isMore: !!this.inFor,\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n || {}) === this.updateValue) return;\n this.$f.config.forceCoverValue ? this.$f.coverValue(n || {}) : this.$f.setValue(n || {});\n },\n deep: true\n },\n option: {\n handler() {\n this.formCreate.initOptions();\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 disabled() {\n this.$f.refresh();\n }\n },\n beforeCreate() {\n this.formCreate = new FormCreate(this);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n created() {\n const vm = this, fapi = this.formCreate.api();\n const addSubForm = () => {\n if (vm.$pfc) {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n let sub;\n if (vm.isMore) {\n sub = toArray(inject.getSubForm());\n sub.push(fapi);\n\n } else {\n sub = fapi;\n }\n inject.subForm(sub);\n }\n }\n };\n\n const rmSubForm = () => {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n if (vm.isMore) {\n const sub = toArray(inject.getSubForm());\n const idx = sub.indexOf(fapi);\n if (idx > -1) {\n sub.splice(idx, 1);\n }\n } else {\n inject.subForm();\n }\n }\n };\n\n vm.$on('hook:beforeDestroy', () => {\n rmSubForm();\n });\n\n this.$watch(() => this.subForm, (n) => {\n n ? addSubForm() : rmSubForm();\n }, {immediate: true});\n }\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'preview', 'component', 'cache'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is 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(Array.isArray(obj) ? [] : {}, 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 (new Function('return ' + fn))();\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n const r = is.Function(rule.getRule) ? rule.getRule() : rule;\n if (!r.type) {\n r.type = 'input';\n }\n return r;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n\nconst changeType = (a, b) => {\n if (typeof a === 'string') {\n return String(b);\n } else if (typeof a === 'number') {\n return Number(b);\n }\n return b;\n}\n\nexport const condition = {\n '==': (a, b) => {\n return JSON.stringify(a) === JSON.stringify(changeType(a, b));\n },\n '!=': (a, b) => {\n return !condition['=='](a, b);\n },\n '>': (a, b) => {\n return a > b;\n },\n '>=': (a, b) => {\n return a >= b;\n },\n '<': (a, b) => {\n return a < b;\n },\n '<=': (a, b) => {\n return a <= b;\n },\n on(a, b) {\n return a && a.indexOf && a.indexOf(changeType(a[0], b)) > -1;\n },\n notOn(a, b) {\n return !condition.on(a, b);\n },\n in(a, b) {\n return b && b.indexOf && b.indexOf(a) > -1;\n },\n notIn(a, b) {\n return !condition.in(a, b);\n },\n between(a, b) {\n return a > b[0] && a < b[1];\n },\n notBetween(a, b) {\n return a < b[0] || a > b[1];\n },\n empty(a) {\n return is.empty(a);\n },\n notEmpty(a) {\n return !is.empty(a);\n },\n pattern(a, b) {\n return new RegExp(b, 'g').test(a);\n }\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 effect: {},\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","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nimport is from '@form-create/utils/lib/type';\nimport {parseFn} from '@form-create/utils/lib/json';\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\nexport function asyncFetch(config) {\n return new Promise((resolve, reject) => {\n fetch({\n ...config,\n onSuccess(res) {\n let fn = (v) => v;\n const parse = parseFn(config.parse);\n if (is.Function(parse)) {\n fn = parse;\n } else if (parse && is.String(parse)) {\n fn = (v) => {\n parse.split('.').forEach(k => {\n if (v) {\n v = v[k];\n }\n })\n return v;\n }\n }\n resolve(fn(res));\n },\n onError(err) {\n reject(err);\n }\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';\nimport {asyncFetch} from './fetch';\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 top() {\n if (api.parent) {\n return api.parent.top;\n }\n return api;\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, h.options.appendValue !== false ? copy(h.appendData) : {});\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n const data = {...(formData || {})};\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (ctxs) {\n const flag = hasProperty(data, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? data[key] : undefined;\n })\n delete data[key];\n }\n });\n extend(h.appendData, data);\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rule.props && $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n getRenderRule: (id) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return ctx.prop;\n }\n },\n getRefRule: (id) => {\n const ctxs = h.getCtxs(id);\n if (ctxs && ctxs.length) {\n const rules = ctxs.map(ctx => {\n return ctx.rule;\n })\n return rules.length === 1 ? rules[0] : rules;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n $set(ctx.rule, 'effect', {});\n }\n $set(ctx.rule.effect, attr, value);\n }\n },\n clearEffectData(id, attr) {\n const ctx = h.getCtx(id);\n if (ctx) {\n if (attr && attr[0] === '$') {\n attr = attr.substr(1);\n }\n ctx.clearEffectData(attr);\n api.sync(id);\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.exportEl || ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n deferSyncValue(fn, sync) {\n h.deferSyncValue(fn, sync);\n },\n fetch(opt) {\n return new Promise((resolve, reject) => {\n h.beforeFetch(opt).then(() => {\n return asyncFetch(opt).then(resolve).catch(reject);\n });\n });\n },\n getData(id, def) {\n return h.fc.getData(id, def);\n },\n setData(id, data) {\n return h.fc.setData(id, data);\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off', 'set', 'emit'].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","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 const num = 370 + (++id);\n return 'F' + Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}`).toString(36) + num.toString(36) + 'c';\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 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';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if(ctx.rule.cache){\n return;\n }\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n if (cache) {\n cache.use = true;\n return cache.vnode;\n }\n return undefined;\n }\n })\n\n}\n","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(ctx) {\n const _fn = (vm) => {\n if (vm) {\n let slot = undefined;\n if (ctx.rule.field) {\n slot = vm.$scopedSlots['field-' + toLine(ctx.rule.field)] || vm.$scopedSlots['field-' + ctx.rule.field];\n }\n if (!slot) {\n slot = vm.$scopedSlots['type-' + toLine(ctx.type)] || vm.$scopedSlots['type-' + ctx.type];\n }\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, ctx) {\n return is.Object(side) ? mergeRule({props: {formCreateInject: ctx.prop.props.formCreateInject}}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix, ctx)), vn, this.renderRule(this.parseSide(prop.suffix, ctx))];\n\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = rule.cache !== false;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.preview = !!(hasProperty(prop, 'preview') ? prop.preview : (this.options.preview || false))\n prop.props.formCreateInject = this.injectProp(ctx);\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = this.getTypeSlot(ctx);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else if(is.String(vn.data.style)) {\n vn.data.style += ';display:none;';\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n getSubForm: () => {\n return this.$handle.subForm[ctx.id];\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n id: ctx.id,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx);\n ctx.parser.mergeProp(ctx);\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 'fc.el': (el) => {\n ctx.exportEl = el;\n if (el) {\n (el.$el || el).__rule__ = ctx.rule;\n }\n }\n },\n }\n ]\n\n if (ctx.input) {\n if (this.vm.$props.disabled === true) {\n ctx.prop.props.disabled = true;\n }\n ctx.prop.model = {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n };\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if(prop.component)\n return this.vNode.makeComponent(prop.component, prop, children)\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import 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 unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {enumerable, mergeRule} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is from '@form-create/utils/lib/type';\nimport toArray from '@form-create/utils/lib/toarray';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(ctx, true)\n });\n}\n\nexport default function RuleContext(handle, rule, defaultValue) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n exportEl: undefined,\n defaultValue: rule.field ? deepCopy(defaultValue) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n if (name === undefined) {\n this.payload = {};\n } else {\n delete this.payload[name];\n }\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeRule({}, [rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n injectValidate() {\n return toArray(this.prop.validate).map(item => {\n if (is.Function(item.validator)) {\n const temp = {...item};\n const that = this;\n temp.validator = function (...args) {\n return item.validator.call({\n that: this,\n id: that.id,\n field: that.field,\n rule: that.rule,\n api: that.$handle.api,\n }, ...args)\n }\n return temp;\n }\n return item;\n });\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 cacheValue: this.rule.value\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, condition} from '../frame/util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {$set} from '@form-create/utils';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && !is.Object(_rule)) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n let defaultValue = rule.value;\n if (isInit) {\n ctx = _rule.__fc__;\n defaultValue = ctx.defaultValue;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n const rule = this.parseRule(_rule);\n ctx = new RuleContext(this, rule, defaultValue);\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 this.effect(ctx, 'created');\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, 'init');\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 || function (val) {\n return ((condition[control.condition || '=='] || condition['=='])(val, control.value));\n };\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n const hideLst = [];\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl, method}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n hideLst[valid ? 'push' : 'unshift'](() => {\n if (method === 'disabled') {\n this.api.disabled(!valid, rule);\n } else if (method === 'display') {\n this.api.display(valid, rule);\n } else if (method === 'required') {\n rule.forEach(item => {\n this.api.setEffect(item, 'required', valid);\n })\n if(!valid){\n this.api.clearValidateState(rule);\n }\n } else {\n this.api.hidden(!valid, rule);\n }\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n hideLst.length && this.vm.$nextTick(() => {\n hideLst.forEach(v => v());\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n this.deferSyncValue(() => {\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n this.vm.$emit('reloading', this.api);\n });\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) $set(rule, k, def[k]);\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n this.emitEvent('change', ctx.field, value, {\n rule: ctx.origin,\n api: this.api,\n setFlag: setFlag || false\n })\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value === null ? undefined : value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, this.options.appendValue !== false ? Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {}) : {}));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n this.subForm[ctx.id] = subForm;\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...(this.options.appendValue !== false ? this.appendData : {}), ...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value === null ? undefined : value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val, origin, field) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api, {\n origin: origin || 'change',\n linkField: field\n }));\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, origin, field) {\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, origin, field);\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, 'link', field);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return this.render(children, ctx);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'component', 'cache'];\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule).filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o, ctx);\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.refresh();\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub, ctx) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && r.__fc__.parent === ctx && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n if (input && !hasProperty(this.fieldCtx, field)) {\n $del(this.form, field);\n }\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy, invoke} 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';\nimport is from '@form-create/utils/lib/type';\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.lifecycle('created');\n this.vm.$set(this.vm, 'formData', this.formData);\n },\n beforeFetch(opt) {\n return new Promise((resolve) => {\n const source = this.options.beforeFetch && invoke(() => this.options.beforeFetch(opt, {api: this.api}));\n if (source && is.Function(source.then)) {\n source.then(resolve);\n } else {\n resolve();\n }\n });\n },\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\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 emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n let emitKey = emitPrefix || field || name;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n emitKey = eventName.prefix || emitKey;\n }\n if (emitKey) {\n if (!on) emitKey = `native-${emitKey}`;\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';\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 extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke, parseFn} from '../frame/util';\nimport toCase from '@form-create/utils/lib/tocase';\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 this.vm.$emit(name, this.api);\n this.emitEvent(name, this.api);\n },\n emitEvent(name, ...args) {\n const _fn = this.options[name] || this.options[toCase('on-' + name)];\n if (_fn) {\n const fn = parseFn(_fn);\n is.Function(fn) && invoke(() => fn(...args));\n }\n this.bus.$emit(name, ...args);\n }\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {mergeRule} from '../frame/util';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n let prop = ps[k];\n if (is.Function(prop)) {\n prop = prop(this.fc);\n }\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n let effect = {\n required: () => {\n return (hasProperty(ctx.rule, '$required') ? ctx.rule['$required'] : ctx.rule?.effect?.required) || false;\n }\n };\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) => mergeRule(data.getProp(), [prop]);\n data.id = ctx.id;\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)) {\n const arr = unique(c.filter(v => v !== '*'));\n return arr.length ? arr : false;\n } else if (is.String(c)) return [c];\n else return false;\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n return this.makeComponent(tag, data, children);\n },\n makeComponent(type, data, children) {\n let Node = this.$h(type, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","import mergeProps from '@form-create/utils/lib/mergeprops';\nimport unique from '@form-create/utils/lib/unique';\nimport extend from '@form-create/utils/lib/extend';\n\nexport function createManager(proto) {\n class CustomManager extends Manager {\n }\n\n Object.assign(CustomManager.prototype, proto);\n return CustomManager;\n}\n\nexport default function Manager(handler) {\n extend(this, {\n $handle: handler,\n vm: handler.vm,\n options: {},\n ref: 'fcForm',\n mergeOptionsRule: {\n normal: ['form', 'row', 'info', 'submitBtn', 'resetBtn']\n }\n });\n this.updateKey();\n this.init();\n}\n\nextend(Manager.prototype, {\n __init() {\n this.$render = this.$handle.$render;\n this.$r = (...args) => this.$render.renderRule(...args);\n },\n updateKey() {\n this.key = unique();\n },\n //TODO interface\n init() {\n },\n update() {\n },\n beforeRender() {\n },\n form() {\n return this.vm.$refs[this.ref];\n },\n getSlot(name){\n const _fn = (vm) => {\n if (vm) {\n let slot = vm.$scopedSlots[name];\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n return undefined;\n }\n return _fn(this.vm);\n },\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 {byCtx, invoke} from './util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst loadData = function (fc) {\n const loadData = {\n name: 'loadData',\n _fn: [],\n created(inject, rule, api) {\n this.deleted(inject);\n let attrs = toArray(inject.getValue());\n const events = [];\n attrs.forEach(attr => {\n if (attr) {\n const on = () => {\n if (attr.watch !== false) {\n fc.bus.$off('p.loadData.' + attr.attr, on);\n fc.bus.$once('p.loadData.' + attr.attr, on);\n }\n let value = undefined;\n if (attr.attr) {\n value = fc.loadData[attr.attr] || attr.default;\n if (attr.copy !== false) {\n value = deepCopy(value)\n }\n }\n deepSet(inject.getProp(), attr.to || 'options', value);\n api.sync(rule);\n }\n events.push(() => fc.bus.$off('p.loadData.' + attr.attr, on));\n on();\n }\n })\n this._fn[inject.id] = events;\n },\n deleted(inject) {\n if (this._fn[inject.id]) {\n this._fn[inject.id].forEach(un => {\n un();\n })\n delete this._fn[inject.id];\n }\n inject.clearProp();\n },\n };\n loadData.watch = loadData.created;\n return loadData;\n}\n\nconst componentValidate = {\n name: 'componentValidate',\n load(attr, rule, api) {\n const method = attr.getValue();\n if (!method) {\n attr.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n attr.getProp().validate = [{\n validator(...args) {\n const ctx = byCtx(rule);\n if (ctx) {\n return api.exec(ctx.id, method === true ? 'formCreateValidate' : method, ...args, {\n attr,\n rule,\n api\n });\n }\n }\n }];\n }\n },\n watch(...args) {\n componentValidate.load(...args);\n }\n};\n\nconst fetch = function (fc) {\n\n function parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n }\n\n function run(inject, rule, api) {\n let option = inject.value;\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to || 'options', val);\n }\n }\n if (is.Function(option)) {\n option = option(rule, api);\n\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n set(undefined);\n return;\n }\n option = deepCopy(option);\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 config = {\n headers: {},\n ...option,\n onSuccess(body, flag) {\n if (check()) return;\n let fn = (v) => flag ? v : (hasProperty(v, 'data') ? v.data : v);\n if (is.Function(option.parse)) {\n fn = option.parse;\n } else if (option.parse && is.String(option.parse)) {\n fn = (v) => {\n option.parse.split('.').forEach(k => {\n if (v) {\n v = v[k];\n }\n })\n return v;\n }\n }\n set(fn(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n };\n fc.$handle.beforeFetch(config, {rule, api}).then(() => {\n if (is.Function(option.action)) {\n option.action(rule, api).then((val) => {\n config.onSuccess(val, true);\n }).catch((e) => {\n config.onError(e);\n });\n return;\n }\n invoke(() => fc.create.fetch(config, {inject, rule, api}));\n });\n }\n\n return {\n name: 'fetch',\n loaded(...args) {\n run(...args);\n },\n watch(...args) {\n run(...args);\n },\n };\n}\n\n\nconst $required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n const validate = {\n required: true,\n validator(_, v, call) {\n is.empty(v) ? call(validate.message) : call();\n },\n ...val,\n };\n if (!validate.message) {\n let title = rule.title || '';\n validate.message = ((typeof title === 'object' ? title.title : title) || '') + '不能为空';\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n $required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Undef(val)) {\n return {required: false};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\nexport default {\n fetch,\n loadData,\n required: $required,\n componentValidate,\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, {hasProperty} 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';\nimport uniqueId from '@form-create/utils/lib/unique';\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 loadData = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val)) {\n return val.map(v => {\n return v.api();\n });\n } else if (val) {\n return val.api();\n }\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 BaseParser;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = parser;\n Object.setPrototypeOf(parser, base || BaseParser);\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 const nameAlias = toCase(name);\n components[name] = component;\n components[nameAlias] = component;\n delete CreateNode.aliasMap[name];\n delete CreateNode.aliasMap[nameAlias];\n delete parsers[name];\n delete parsers[nameAlias];\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function _emitData(id) {\n Object.keys(instance).forEach(v => {\n const apis = Array.isArray(instance[v]) ? instance[v] : [instance[v]];\n apis.forEach(that => {\n that.bus.$emit('p.loadData.' + id);\n })\n })\n }\n\n function setData(id, data) {\n loadData[id] = data;\n _emitData(id);\n }\n\n function getData(id, def) {\n return hasProperty(loadData, id) ? loadData[id] : def;\n }\n\n function removeData(id) {\n delete loadData[id];\n _emitData(id);\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 loadData\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function FormCreate(vm) {\n const rules = vm.$options.propsData.rule;\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 || uniqueId(),\n inFor: vm.$options.propsData.inFor,\n prop: {\n components,\n directives,\n },\n setData,\n getData,\n loadData,\n CreateNode,\n bus: new _vue,\n unwatch: null,\n options: {},\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions();\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this);\n } else {\n instance[this.name] = this;\n }\n }\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions();\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions();\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this);\n instance[this.name].splice(idx, 1);\n if(!instance[this.name].length){\n delete instance[this.name];\n }\n } else {\n delete instance[this.name];\n }\n }\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions() {\n this.options = {};\n let options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n options = this.mergeOptions(options, this.vm.$options.propsData.option);\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 setData,\n getData,\n removeData,\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.loadData && extend(loadData, inherit.loadData);\n }\n\n return create;\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst DEFAULT_FORMATS = {\n date: 'yyyy-MM-dd',\n month: 'yyyy-MM',\n datetime: 'yyyy-MM-dd HH:mm:ss',\n timerange: 'HH:mm:ss',\n daterange: 'yyyy-MM-dd',\n monthrange: 'yyyy-MM',\n datetimerange: 'yyyy-MM-dd HH:mm:ss',\n year: 'yyyy'\n};\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['year', 'month', 'date', 'dates', 'week', 'datetime', 'datetimeRange', 'dateRange', 'monthRange'].reduce((initial, type) => {\n initial[type] = creatorFactory(name, {type: type.toLowerCase()});\n return initial\n }, {});\n }()),\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!props.valueFormat) {\n props.valueFormat = DEFAULT_FORMATS[props.type] || DEFAULT_FORMATS['date'];\n }\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return [];\n }\n}\n","import 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","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","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","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() {\n const form = this.form();\n if (form) {\n return form.validate();\n }\n return new Promise(v => v());\n },\n validateField(field) {\n const form = this.form();\n if (form) {\n return new Promise((resolve, reject) => {\n form.validateField(field, e => {\n e ? reject(e) : resolve(null);\n });\n })\n }\n return new Promise(v => v());\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', 'title'].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 title: this.options.title || {},\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: ctx.injectValidate(),\n },\n class: rule.className,\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), [children, isTitle ? this.makeInfo(rule, uni, ctx) : 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, ctx) {\n const titleProp = rule.title;\n const infoProp = rule.info;\n const isTip = isTooltip(infoProp);\n const form = this.options.form;\n const titleSlot = this.getSlot('title');\n const children = [titleSlot ? titleSlot({title: titleProp.title || '', rule: ctx.rule, options: this.options}) : ((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","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 {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 formEl() {\n return h.$manager.form();\n },\n wrapEl(id) {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return;\n return h.vm.$refs[ctx.wrapRef];\n },\n validate(callback) {\n return new Promise((resolve, reject) => {\n const forms = api.children;\n const all = [h.$manager.validate()];\n forms.forEach(v => {\n all.push(v.validate());\n })\n Promise.all(all).then(() => {\n resolve(true);\n callback && callback(true);\n }).catch((e) => {\n reject(e);\n callback && callback(false, e);\n h.vm.$emit('validate-fail', e, {api});\n })\n });\n },\n validateField: (field, callback) => {\n return new Promise((resolve, reject) => {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n const sub = h.subForm[ctx.id];\n const all = [h.$manager.validateField(ctx.id)];\n toArray(sub).forEach(v => {\n all.push(v.validate().catch(() => {\n return Promise.reject('子表单验证未通过');\n }));\n })\n Promise.all(all).then(() => {\n resolve(null);\n callback && callback(null);\n }).catch((e) => {\n reject(e);\n callback && callback(e);\n h.vm.$emit('validate-field-fail', e, {field, api});\n })\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","mergeFn","reduce","indexOf","Array","e","concat","f","g","h","i","getSlot","slots","exclude","keys","lst","name","push","props","formCreateInject","type","required","value","String","watch","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","checked","option","created","render","prop","index","Type","_this","$slots","mounted","$refs","el","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","_this2","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","frame","contentWindow","appendToBody","visible","closeModal","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","makeOption","slot","slotName","makeOptionGroup","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","checkbox","radio","select","rules","expand","button","max","min","sortBtn","defaultValue","syncDisabled","onBeforeAdd","parse","len","cacheRule","cacheValue","sort","computed","formRule","immediate","item","$f","formData","deferSyncValue","once","expandRule","total","addRule","removeRule","_value","cache","JSON","stringify","input","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","sortUpIcon","changeSort","sortDownIcon","makeIcon","_this10","btn","emitEvent","args","$form","_this11","inFor","extendOption","NAME","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","subForm","destroyed","validate","renderRule","ctxInject","isMore","formCreate","_refresh","_renderRule","_updateValue","config","forceCoverValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","fapi","rmSubForm","sub","getSubForm","idx","addSubForm","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","format","msg","err","error","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","parseFn","trim","flag","replace","__inject","parseJson","json","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","r","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","logError","changeType","condition","on","notOn","notIn","between","notBetween","notEmpty","pattern","RegExp","test","creatorFactory","init","maker","Creator","_data","effect","hidden","appendProto","attrs","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","getBody","xhr","text","responseText","response","fetch","XMLHttpRequest","action","onerror","onError","onload","getError","onSuccess","open","method","dataType","toLowerCase","FormData","append","setRequestHeader","withCredentials","headers","send","asyncFetch","Promise","resolve","reject","res","copy","toCase","lower","toLocaleUpperCase","toLine","line","substr","id","uniqueId","num","Math","random","Date","now","deepSet","to","Render","handle","fc","$manager","vNode","CreateNode","initCache","initRender","clearCacheAll","clearCache","use","setCache","vnode","getCache","useCache","tempList","clearOrgChildren","initOrgChildren","ctxs","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","mergeGlobal","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","warn","tip","parseSide","side","renderSides","temp","prefix","suffix","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","preview","makeWrap","onMounted","exportEl","$el","__rule__","getFormData","callback","expression","isRm","child","rmCtx","defaultRender","component","makeComponent","alias","aliasMap","useRender","EVENT","RuleContext","wrapRef","linkOn","root","ctrlRule","payload","updateType","updateKey","findCtrl","ctrl","isCtrl","strFn","toEmpty","effectData","clearEffectData","setParser","injectValidate","validator","check","unwatch","un","unlink","link","appendLink","watchTo","watchCtx","rmCtrl","deleted","$render","$api","rm","_rm","noWatch","updated","BaseParser","toFormValue","toValue","formValue","noneKey","Handler","watching","loading","reloading","noWatchFn","deferSyncFn","isMounted","appendData","providers","cycleLoad","loadedId","nextTick","changeStatus","pageEnd","nextReload","lifecycle","bus","initData","manager","extendApi","tidyFields","fields","getCtxs","allSubForm","subs","top","getFieldCtx","appendValue","getValue","fieldCtx","removeField","getCtx","destroy","parentNode","removeChild","$destroy","after","prepend","state","hiddenStatus","displayStatus","all","nameCtx","bind","updateOptions","onSubmit","sync","refreshOptions","hideForm","hide","clearChangeStatus","updateRule","updateRules","mergeRules","getRenderRule","getRefRule","setEffect","attr","updateValidate","updateValidates","validates","refreshValidate","resetFields","trigger","$once","nextRefresh","beforeFetch","then","getData","setData","changeValue","changeField","Api","useProvider","usePage","loadRule","__init","source","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","eventName","eventInject","emitKey","fieldKey","_inject","self","propsData","unshift","useInject","page","first","ceil","parseInt","pageLoad","pageFn","clearNextTick","clearTimeout","bindNextTick","setTimeout","parseRule","_rule","fullRule","loadFn","loadCtrl","control","syncProp","pre","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","bindParser","setCtx","_preIndex","preIndex","refreshUpdate","defineProperty","valueHandle","refreshControl","useCtrl","controls","getCtrl","handleFn","isHidden","hideLst","reverse","clearValidateState","ruleCon","ctrlCtx","_reloadRule","useLoader","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","linkField","refreshRule","useInput","getNameCtx","setIdCtx","rmIdCtx","getParser","list","parsers","rmSub","watchEffect","useContext","_mounted","useLifecycle","ps","_c","p","components","arr","getComponent","onEffect","provider","used","_used","_ctx$rule","_ctx$rule$effect","emitEffect","custom","getEffect","getProp","clearProp","useEffect","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","domProps","innerHTML","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","componentValidate","load","$required","message","parseVal","_","run","parseOpt","body","loaded","loadData","events","join","_vue","window","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","instance","FormCreateFactory","fragment","directives","$provider","globalConfig","getApi","directive","register","componentAlias","base","setPrototypeOf","nameAlias","_emitData","removeData","$vnode","install","_opt","inherit","_config","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","html","DEFAULT_FORMATS","date","month","datetime","timerange","daterange","monthrange","datetimerange","year","valueFormat","datePicker","idate","autosize","minRows","rows","sliderRange","range","parseFloat","time","m","isRange","timeRange","col","span","row","multiple","PRE","slider","rate","cascader","popover","tooltip","colorPicker","timePicker","timeSelect","inputNumber","number","formItem","autoComplete","auto","group","object","upperCaseReg","tidy","isFalse","validateField","fItem","validateMessage","validateState","show","tidyBool","info","wrap","placement","inline","labelPosition","labelWidth","size","gutter","innerText","click","submit","preventDefault","className","makeFormBtn","makeRow","uni","isTitle","_col","makeInfo","makeCol","titleProp","infoProp","isTip","titleSlot","labelSuffix","align","makeSubmitBtn","makeResetBtn","fApi","color","useAlias","useSelect","types","useTree","image","uploadFileOne","uploadImageOne","uploadImage","uploadFile","useUpload","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","frameInput","frameFile","frameImage","useFrame","tidyBtnProp","formEl","wrapEl","forms","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","process"],"mappings":"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"}