@form-create/iview 2.5.23 → 2.5.24
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/iview/checkbox/src/component.jsx","../../utils/lib/toarray.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/iview/frame/src/component.jsx","../../../components/iview/frame/src/index.js","../../../components/iview/radio/src/component.jsx","../../utils/lib/type.js","../../../components/iview/select/src/component.jsx","../../../components/iview/tree/src/component.jsx","../../../components/iview/upload/src/component.jsx","../../../components/iview/upload/src/index.js","../../utils/lib/modify.js","../../utils/lib/deepextend.js","../../utils/lib/extend.js","../../../components/iview/group/src/component.jsx","../../../components/iview/group/src/index.js","../../../components/common/subform/src/component.jsx","../src/components/index.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/console.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../core/src/render/cache.js","../../utils/lib/tocase.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/render.js","../../core/src/render/index.js","../../core/src/handler/inject.js","../../core/src/handler/page.js","../../core/src/handler/render.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/parser/html.js","../../core/src/frame/index.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/slider.js","../src/parsers/switch.js","../src/parsers/row.js","../src/parsers/index.js","../src/core/alias.js","../src/core/config.js","../src/core/manager.js","../src/core/maker.js","../src/core/api.js","../src/core/index.js","../src/index.js"],"sourcesContent":["\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","export default function 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 },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => n.indexOf(opt.label) !== -1).map((opt) => opt.value).filter(v => v !== undefined));\n },\n update() {\n this.trueValue = this.value ? this.options().filter((opt) => this.value.indexOf(opt.value) !== -1)\n .map((option) => option.label) : []\n }\n },\n created() {\n this.update();\n },\n render() {\n return <CheckboxGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n delete props.value;\n return <Checkbox {...{props}} key={'' + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</CheckboxGroup>\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 function createFrame(config) {\n return {\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: config.fileUpIcon\n },\n width: {\n type: [Number, String],\n default: 500\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n },\n 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 showModel() {\n if (this.disabled || false === this.onOpen()) return;\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n icon: this.icon,\n readonly: true,\n clearable: false\n };\n\n return <Input props={props} on={{'on-click': () => this.showModel()}} key={this.key('input')}/>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength)\n children.push(this.makeBtn());\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field)\n throw new Error('[frame]无效的字段值');\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon))\n icons.push(this.makeHandleIcon(val, index));\n if (this.allowRemove)\n icons.push(this.makeRemoveIcon(val, index));\n\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <icon\n props={{type: (this.handleIcon === true || this.handleIcon === undefined) ? 'ios-eye-outline' : this.handleIcon}}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <icon props={{type: 'ios-trash-outline'}} on-click={() => this.handleRemove(val)}\n key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<icon props={{type: config.fileIcon, size: 40}}\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()}\n key={this.key('btn')}>\n <icon props={{type: this.icon, size: 20}}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) return;\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !(this.srcKey) ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n api: this.formCreateInject.api,\n close: (field) => {\n this.valid(field);\n this.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 const node = [];\n\n if (!footer) return node;\n if (closeBtn)\n node.push(<Button\n on-click={() => (this.onCancel() !== false && this.closeModel(true))}>{closeBtnText}</Button>);\n if (okBtn)\n node.push(<Button type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</Button>);\n return node;\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 const {width, 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 <Modal mask={this.previewMask} title={modalTitle} v-model={this.previewVisible} footerHide={true}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </Modal>\n <Modal {...{props:{width, title, ...this.modal}}} v-model={this.frameVisible}\n on-on-cancel={() => (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 <div slot=\"footer\">\n {this.makeFooter()}\n </div>\n </Modal>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n };\n}\n","import createFrame from './component';\n\nconst frame = createFrame({\n fileIcon: 'md-document',\n fileUpIcon: 'ios-folder-open',\n});\n\n\nframe.v2 = createFrame({\n fileIcon: 'document-text',\n fileUpIcon: 'folder',\n});\n\nexport default frame;\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 },\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 <RadioGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n delete props.value;\n return <Radio {...{props}} key={'' + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</RadioGroup>\n }\n}\n","const is = {\n type(arg, type) {\n return Object.prototype.toString.call(arg) === '[object ' + type + ']'\n },\n Undef(v) {\n return v === undefined || v === null\n },\n Element(arg) {\n return typeof arg === 'object' && arg !== null && arg.nodeType === 1 && !is.Object(arg)\n },\n trueArray(data) {\n return Array.isArray(data) && data.length > 0;\n },\n Function(v) {\n const type = this.getType(v);\n return type === 'Function' || type === 'AsyncFunction';\n },\n getType(v) {\n const str = Object.prototype.toString.call(v)\n return /^\\[object (.*)\\]$/.exec(str)[1]\n },\n empty(value) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (Array.isArray(value) && Array.isArray(value) && !value.length) {\n return true;\n }\n\n return typeof value === 'string' && !value;\n }\n};\n\n['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(t => {\n is[t] = function (arg) {\n return is.type(arg, t);\n }\n})\n\nexport function hasProperty(rule, k) {\n return ({}).hasOwnProperty.call(rule, k)\n}\n\nexport default is;\n","import is from '@form-create/utils/lib/type';\n\nconst NAME = 'fcSelect';\nexport default {\n name: NAME,\n functional: true,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n },\n render(h, ctx) {\n const options = ctx.props.formCreateInject.options;\n return <Select {...ctx.data}>{(Array.isArray(options) ? options : []).map((props, index) => {\n const slot = props.slot;\n return <Option {...{props}}\n key={'' + index + '-' + props.value}>\n {slot ? <template\n slot={props.slotName || 'default'}>{is.Function(slot) ? props.slot(h) : slot}</template> : null}\n </Option>\n })}{ctx.children}</Select>;\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 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 data() {\n return {\n treeData: []\n }\n },\n watch: {\n value(n) {\n this.setStatus(n);\n }\n },\n created() {\n this.setStatus(this.value);\n },\n methods: {\n setStatus(value) {\n const n = toArray(value);\n const data = this.formCreateInject.prop.props.data;\n this.type === 'selected' ? this.checked(data, n, 'selected') : this.checked(data, n, 'checked');\n this.$forceUpdate();\n },\n checked(_data, value, type) {\n _data.forEach((node) => {\n this.$set(node, type, value.indexOf(node.id) !== -1);\n if (node.children !== undefined && Array.isArray(node.children))\n this.checked(node.children, value, type);\n });\n },\n onInput(list) {\n this.$emit('input', list.map(node => node.id));\n }\n },\n render() {\n const on = {};\n if (this.type === 'selected') {\n on['on-select-change'] = this.onInput;\n } else {\n on['on-check-change'] = this.onInput;\n }\n return <Tree {...this.formCreateInject.prop} ref=\"tree\" on={on}>{getSlot(this.$slots)}</Tree>;\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css';\nimport getSlot from '@form-create/utils/lib/slot';\n\nfunction parseFile(file) {\n return {\n url: file,\n name: getFileName(file)\n };\n}\n\nfunction getFileName(file) {\n return ('' + file).split('/').pop()\n}\n\nconst NAME = 'fcUpload';\n\n\nexport default function createUpload(config) {\n return {\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 maxLength: {\n type: Number,\n default: 0\n },\n allowRemove: {\n type: Boolean,\n default: true\n },\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.showUploadList === undefined)\n this.formCreateInject.prop.props.showUploadList = false;\n this.formCreateInject.prop.props.defaultFileList = toArray(this.value).map(parseFile);\n },\n watch: {\n value(n) {\n if (this.$refs.upload.fileList.every(file => {\n return !file.status || file.status === 'finished';\n })) {\n this.$refs.upload.fileList = toArray(n).map(parseFile);\n this.uploadList = this.$refs.upload.fileList;\n }\n },\n maxLength(n, o) {\n if (o === 1 || n === 1)\n this.update();\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()) return;\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 : <icon props={{type: config.fileIcon, size: 40}} key={this.key('i' + index)}/>\n },\n makeRemoveIcon(file, index) {\n return <icon type='ios-trash-outline' on-click={() => this.onRemove(file)}\n key={this.key('ri' + index)}/>;\n },\n makeHandleIcon(file, index) {\n return <icon\n type={(this.handleIcon === true || this.handleIcon === undefined) ? 'ios-eye-outline' : this.handleIcon}\n on-click={() => this.handleClick(file)} key={this.key('hi' + index)}/>;\n },\n makeProgress(file, index) {\n return <Progress props={{percent: file.percentage, hideInfo: true}} style=\"width:90%\"\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 if (this.allowRemove)\n icons.push(this.makeRemoveIcon(file, index));\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.showProgress ? this.makeProgress(file, index) : [this.makeItem(file, index), this.makeIcons(file, index)]}</div>);\n },\n makeUpload() {\n const isShow = (!this.maxLength || this.maxLength > this.uploadList.length);\n return <Upload {...this.formCreateInject.prop} ref=\"upload\"\n style={{display: 'inline-block'}}\n key={this.key('upload')}>\n {isShow ? <template slot=\"default\">\n {this.$slots.default || <div class=\"fc-upload-btn\">\n <icon props={{\n type: this.uploadType === 'file' ? 'ios-cloud-upload-outline' : config.imgUpIcon,\n size: 20\n }}/>\n </div>}\n </template> : null}{getSlot(this.$slots,['default'])}\n </Upload>;\n },\n update() {\n let files = this.$refs.upload.fileList.map((file) => file.url).filter((url) => url !== undefined);\n if(this.cacheFiles.length !== files.length){\n this.cacheFiles = [...files];\n this.$emit('input', this.maxLength === 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.showUploadList === undefined)\n this.formCreateInject.prop.props.showUploadList = this.$refs.upload.showUploadList;\n this.formCreateInject.prop.props.defaultFileList = this.$refs.upload.defaultFileList;\n }\n return (\n <div\n class=\"_fc-upload\">{[this.formCreateInject.prop.props.showUploadList ? [] : this.makeFiles(), this.makeUpload()]}\n <Modal title={this.modalTitle} v-model={this.previewVisible} footerHide={true}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </Modal>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.fileList;\n this.$watch(() => this.$refs.upload.fileList, () => {\n this.update();\n }, {deep: true});\n }\n };\n}\n","import createUpload from './component';\n\nconst upload = createUpload({\n\n fileIcon: 'md-document',\n imgUpIcon: 'md-images',\n});\n\nupload.v2 = createUpload({\n\n fileIcon: 'document-text',\n imgUpIcon: 'image',\n});\n\nexport default upload;\n","import Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'fcGroup';\n\nexport default function createGroup(config) {\n return {\n name: NAME,\n props: {\n field: String,\n rule: [Array, Object],\n rules: Array,\n expand: Number,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n button: {\n type: Boolean,\n default: true\n },\n max: {\n type: Number,\n default: 0\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: () => []\n },\n defaultValue: Object,\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n fontSize: {\n type: Number,\n default: 28\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rules) {\n return this.rules;\n }\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n return [];\n }\n },\n watch: {\n formRule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n disabled(n) {\n if (this.syncDisabled) {\n const lst = this.cacheRule;\n Object.keys(lst).forEach(k => {\n lst[k].$f.disabled(n);\n })\n }\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n) {\n n = n || [];\n let keys = Object.keys(this.cacheRule), total = keys.length, len = total - n.length;\n if (len < 0) {\n for (let i = len; i < 0; i++) {\n this.addRule(n.length + i);\n }\n for (let i = 0; i < total; i++) {\n this.setValue(keys[i], n[i]);\n }\n } else {\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n this.removeRule(keys[total - i - 1]);\n }\n }\n n.forEach((val, i) => {\n this.setValue(keys[i], n[i]);\n });\n }\n }\n },\n methods: {\n _value(v) {\n return (v && hasProperty(v, this.field)) ? v[this.field] : v;\n },\n cache(k, val) {\n this.cacheValue[k] = JSON.stringify(val);\n },\n input(value) {\n this.$emit('input', value);\n this.$emit('change', value);\n },\n formData(key, formData) {\n const cacheRule = this.cacheRule;\n const keys = Object.keys(cacheRule);\n if (keys.filter(k => cacheRule[k].$f).length !== keys.length) {\n return;\n }\n const value = keys.map(k => {\n const data = key === k ? formData : {...this.cacheRule[k].$f.form};\n const value = this.field ? data[this.field] || null : data;\n this.cache(k, value);\n return value;\n });\n this.input(value);\n },\n setValue(key, value) {\n const field = this.field, $f = this.cacheRule[key].$f;\n if (field) {\n value = {[field]: this._value(value)};\n }\n if (this.cacheValue[key] === JSON.stringify(field ? value[field] : value)) {\n return;\n }\n this.cache(key, value);\n $f.coverValue(value || {});\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.formRule);\n const options = this.options ? {...this.options} : {\n submitBtn: false,\n resetBtn: false,\n };\n if (this.defaultValue) {\n if (!options.formData) options.formData = {};\n const defVal = deepCopy(this.defaultValue);\n extend(options.formData, this.field ? {[this.field]: defVal} : defVal);\n }\n this.$set(this.cacheRule, ++this.len, {rule, options});\n if (emit) {\n this.$nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));\n }\n },\n add$f(i, key, $f) {\n this.cacheRule[key].$f = $f;\n this.formData(key, $f.formData());\n this.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n this.value.splice(index, 1);\n this.input(this.value);\n },\n addIcon(key) {\n return <Icon key={`a${key}`} type={config.addIcon}\n style={`font-size:${this.fontSize}px;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer;color:#000'}`}\n on-click={this.add}/>;\n },\n delIcon(index, key) {\n return <Icon key={`d${key}`} type={config.removeIcon}\n style={`font-size:${this.fontSize}px;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer'};`}\n on-click={() => this.del(index, key)}/>;\n },\n makeIcon(total, index, key) {\n if (this.$scopedSlots.button) {\n return this.$scopedSlots.button({\n total,\n index,\n vm: this,\n key,\n del: () => this.del(index, key),\n add: this.add\n });\n }\n if (index === 0) {\n return [(this.max !== 0 && total >= this.max) ? null : this.addIcon(key), (this.min === 0 || total > this.min) ? this.delIcon(index, key) : null];\n }\n if (index >= this.min) {\n return this.delIcon(index, key);\n }\n },\n emitEvent(name, args, index, key) {\n this.$emit(name, ...args, this.cacheRule[key].$f, index);\n },\n expandRule(n) {\n for (let i = 0; i < n; i++) {\n this.value.push(this.field ? null : {});\n }\n }\n },\n created() {\n this.type = this.formCreateInject.form.$form();\n const d = (this.expand || 0) - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n for (let i = 0; i < this.value.length; i++) {\n this.addRule(i);\n }\n },\n render() {\n const keys = Object.keys(this.cacheRule);\n const button = this.button;\n const Type = this.type;\n return keys.length === 0 ?\n (this.$scopedSlots.default ? (this.$scopedSlots.default({\n vm: this,\n add: this.add\n })) : <Icon key={'a_def'} type={config.addIcon}\n style={`font-size:${this.fontSize}px;vertical-align:middle;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer'};`}\n on-click={this.add}/>) :\n <div key={'con'}>{keys.map((key, index) => {\n const {rule, options} = this.cacheRule[key];\n return <Row align=\"middle\" type=\"flex\" key={key}\n style=\"border-bottom:1px dashed #dcdee2;margin-bottom:10px;\">\n <Col span={button ? 20 : 24}><FormItem><Type\n key={key} inFor={true}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n value={this.field ? {[this.field]: this._value(this.value[index])} : this.value[index]}\n rule={rule}\n option={options} extendOption={true}/></FormItem></Col>\n {button ? <Col span={2} pull={1} push={1}>{this.makeIcon(keys.length, index, key)}</Col> : null}\n </Row>\n })}</div>\n }\n };\n}\n","import createGroup from './component';\n\nconst group = createGroup({\n removeIcon: 'ios-remove-circle-outline',\n addIcon: 'ios-add-circle-outline',\n});\n\ngroup.v2 = createGroup({\n addIcon: 'ios-plus-outline',\n removeIcon: 'ios-minus-outline',\n})\n\nexport default group;\n","const NAME = 'fcSubForm';\n\nexport default {\n name: NAME,\n props: {\n rule: Array,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n default: () => ({})\n },\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n },\n data() {\n return {\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n watch: {\n disabled(n) {\n this.syncDisabled && this.cacheRule.$f.disabled(n);\n },\n value(n) {\n this.setValue(n);\n }\n },\n methods: {\n formData(value) {\n this.cacheValue = JSON.stringify(value);\n this.$emit('input', value);\n this.$emit('change', value);\n },\n setValue(value) {\n const str = JSON.stringify(value);\n if (this.cacheValue === str) {\n return;\n }\n this.cacheValue = str;\n this.cacheRule.$f.coverValue(value || {});\n },\n addRule() {\n const options = this.options ? this.options : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = {...(this.value || {})};\n this.cacheRule = {rule: this.rule, options};\n },\n add$f($f) {\n this.cacheRule.$f = $f;\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n rule={rule}\n option={options} extendOption={true}/>\n }\n}\n","import checkbox from '@form-create/component-ivu-checkbox/src/index';\nimport frame from '@form-create/component-ivu-frame/src/index';\nimport radio from '@form-create/component-ivu-radio/src/index';\nimport select from '@form-create/component-ivu-select/src/index';\nimport tree from '@form-create/component-ivu-tree/src/index';\nimport upload from '@form-create/component-ivu-upload/src/index';\nimport group from '@form-create/component-ivu-group/src/index';\nimport subForm from '@form-create/component-subform/src/index';\n\nexport default [\n checkbox,\n radio,\n select,\n tree,\n subForm,\n frame,\n upload,\n group\n];\n","import extend from '@form-create/utils/lib/extend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'FormCreate';\n\nconst getRuleInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.formCreateInject) {\n return vm.formCreateInject\n }\n if (vm.$parent) {\n return getRuleInject(vm.$parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n value: Object,\n api: Object,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: JSON.stringify(this.value || {}),\n isMore: !!this.inFor,\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n || {}) === this.updateValue) return;\n this.$f.setValue(n || {});\n },\n deep: true\n },\n option: {\n handler(n) {\n this.formCreate.initOptions(n);\n this.$f.refresh();\n },\n deep: true\n },\n rule(n) {\n if (n.length === this.renderRule.length && n.every(v => this.renderRule.indexOf(v) > -1)) return;\n this.formCreate.$handle.reloadRule(n);\n this._renderRule();\n }\n },\n beforeCreate() {\n const {rule, option} = this.$options.propsData;\n this.formCreate = new FormCreate(this, rule, option);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n created() {\n const vm = this, fapi = this.formCreate.api();\n const addSubForm = () => {\n if (vm.$pfc) {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n let sub;\n if (vm.isMore) {\n sub = toArray(inject.getSubForm());\n sub.push(fapi);\n\n } else {\n sub = fapi;\n }\n inject.subForm(sub);\n }\n }\n };\n\n const rmSubForm = () => {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n if (vm.isMore) {\n const sub = toArray(inject.getSubForm());\n const idx = sub.indexOf(fapi);\n if (idx > -1) {\n sub.splice(idx, 1);\n }\n } else {\n inject.subForm();\n }\n }\n };\n\n vm.$on('hook:beforeDestroy', () => {\n rmSubForm();\n });\n\n this.$watch(() => this.subForm, (n) => {\n n ? addSubForm() : rmSubForm();\n }, {immediate: true});\n }\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'preview', 'component', 'cache'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return eval('(' + FUNCTION + '(){return ' + fn + ' })()')\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n return is.Function(rule.getRule) ? rule.getRule() : rule;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, h.options.appendValue ? copy(h.appendData) : {});\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n const flag = hasProperty(formData, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? formData[key] : undefined;\n })\n });\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rule.props && $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n ctx.rule.effect = {};\n }\n $set(ctx.rule.effect, attr, value);\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n deferSyncValue(fn, sync){\n h.deferSyncValue(fn, sync);\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off', 'set'].forEach(n => {\n api[n] = function (...args) {\n h.vm[`$${n}`](...args);\n }\n });\n\n api.changeValue = api.changeField = api.setValue;\n\n return api;\n}\n","import extend from '@form-create/utils/lib/extend';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n cache.use = true;\n return cache.vnode;\n }\n })\n\n}\n","export default function toCase(str) {\n const to = str.replace(/(-[a-z])/g, function (v) {\n return v.replace('-', '').toLocaleUpperCase();\n });\n\n return lower(to);\n}\n\nexport function lower(str) {\n return str.replace(str[0], str[0].toLowerCase());\n}\n","export default function toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n","export default function toLine(name) {\n let line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();\n if (line.indexOf('-') === 0)\n line = line.substr(1);\n return line;\n}\n","let id = 0;\n\nexport default function uniqueId() {\n return Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}${++id}`).toString(36);\n}\n","export default function deepSet(data, idx, val) {\n let _data = data, to;\n (idx || '').split('.').forEach(v => {\n if (to) {\n if (!_data[to] || typeof _data[to] != 'object') {\n _data[to] = {}\n }\n _data = _data[to];\n }\n to = v;\n })\n _data[to] = val;\n return _data;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {_vue as Vue} from '../frame';\nimport {tip} from '@form-create/utils/lib/console';\nimport {invoke, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {$set, deepSet, toLine} from '@form-create/utils';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.tempList = {};\n this.clearOrgChildren();\n },\n initOrgChildren() {\n const ctxs = this.$handle.ctxs;\n this.orgChildren = Object.keys(ctxs).reduce((initial, id) => {\n if (ctxs[id].parser.loadChildren !== false) {\n const children = ctxs[id].rule.children;\n initial[id] = is.trueArray(children) ? [...children] : [];\n }\n\n return initial;\n }, {});\n\n },\n clearOrgChildren() {\n this.orgChildren = {};\n },\n getTypeSlot(type) {\n const name = 'type-' + toLine(type);\n const _fn = (vm) => {\n if (vm) {\n const slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n }\n return _fn(this.vm);\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side) {\n return is.Object(side) ? mergeRule({}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix)), vn, this.renderRule(this.parseSide(prop.suffix))];\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = rule.cache !== false;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.preview = !!(hasProperty(prop, 'preview') ? prop.preview : (this.options.preview || false))\n prop.props.formCreateInject = this.injectProp(ctx);\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = this.getTypeSlot(ctx.type);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else if(is.String(vn.data.style)) {\n vn.data.style += ';display:none;';\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n getSubForm: () => {\n return this.$handle.subForm[ctx.id];\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx, custom) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx, custom);\n ctx.parser.mergeProp(ctx, custom);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n 'hook:mounted': () => {\n this.onMounted(ctx);\n },\n 'fc.sub-form': (subForm) => {\n this.$handle.addSubForm(ctx, subForm);\n }\n },\n }\n ]\n\n if (!custom && ctx.input) {\n ctx.prop.model = {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n };\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if(prop.component)\n return this.vNode.makeComponent(prop.component, prop, children)\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nexport default function Render(handle) {\n extend(this, {\n $handle: handle,\n fc: handle.fc,\n vm: handle.vm,\n $manager: handle.$manager,\n vNode: new handle.fc.CreateNode(handle.vm),\n });\n\n funcProxy(this, {\n options() {\n return handle.options;\n },\n sort() {\n return handle.sort;\n }\n })\n\n this.initCache();\n this.initRender();\n}\n\nuseCache(Render);\nuseRender(Render)\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport toLine from '@form-create/utils/lib/toline';\nimport {parseFn} from '../frame/util';\n\n\nexport default function useInject(Handler) {\n extend(Handler.prototype, {\n parseInjectEvent(rule, on) {\n const inject = rule.inject || this.options.injectEvent;\n return this.parseEventLst(rule, on, inject);\n },\n parseEventLst(rule, data, inject, deep) {\n Object.keys(data).forEach(k => {\n const fn = this.parseEvent(rule, data[k], inject, deep);\n if (fn) {\n data[k] = fn;\n }\n });\n return data;\n },\n parseEvent(rule, fn, inject, deep) {\n if (is.Function(fn) && ((inject !== false && !is.Undef(inject)) || fn.__inject)) {\n return this.inject(rule, fn, inject)\n } else if (!deep && Array.isArray(fn) && fn[0] && (is.String(fn[0]) || is.Function(fn[0]))) {\n return this.parseEventLst(rule, fn, inject, true);\n } else if (is.String(fn)) {\n const val = parseFn(fn);\n if (val && fn !== val) {\n return val.__inject ? this.parseEvent(rule, val, inject, true) : val;\n }\n }\n },\n parseEmit(ctx, on) {\n let event = {}, rule = ctx.rule, {emitPrefix, field, name, inject} = rule;\n let emit = rule[on ? 'emit' : 'nativeEmit'] || [];\n if (is.trueArray(emit)) {\n let emitKey = emitPrefix || field || name;\n if (emitKey) {\n if (!on) emitKey = `native-${emitKey}`;\n emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n }\n const fieldKey = toLine(`${emitKey}-${eventName}`);\n const fn = (...arg) => {\n this.vm.$emit(fieldKey, ...arg);\n this.vm.$emit('emit-event', fieldKey, ...arg);\n };\n fn.__emit = true;\n\n if (!eventInject && inject === false) {\n event[eventName] = fn;\n } else {\n let _inject = eventInject || inject || this.options.injectEvent;\n event[eventName] = is.Undef(_inject) ? fn : this.inject(rule, fn, _inject);\n }\n });\n }\n\n }\n ctx.computed[on ? 'on' : 'nativeOn'] = event;\n return event;\n },\n getInjectData(self, inject) {\n const {option, rule} = this.vm.$options.propsData;\n return {\n api: this.api,\n $f: this.api,\n rule,\n self: self.__origin__,\n option,\n inject\n };\n },\n inject(self, _fn, inject) {\n if (_fn.__origin) {\n if (this.watching && !this.loading)\n return _fn;\n _fn = _fn.__origin;\n }\n\n const h = this;\n\n const fn = function (...args) {\n const data = h.getInjectData(self, inject);\n data.args = [...args];\n args.unshift(data);\n return _fn.apply(this, args);\n };\n fn.__origin = _fn;\n fn.__json = _fn.__json;\n return fn;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\n\nconst EVENT = ['hook:updated', 'hook:mounted'];\n\nexport default function usePage(Handler) {\n extend(Handler.prototype, {\n usePage() {\n const page = this.options.page;\n if (!page) return;\n let first = 25;\n let limit = getLimit(this.rules);\n if (is.Object(page)) {\n if (page.first) first = parseInt(page.first, 10) || first;\n if (page.limit) limit = parseInt(page.limit, 10) || limit;\n }\n extend(this, {\n first,\n limit,\n pageEnd: this.rules.length <= first,\n })\n\n this.bus.$on('page-end', () => this.vm.$emit('page-end', this.api));\n this.pageLoad();\n },\n pageLoad() {\n const pageFn = () => {\n if (this.pageEnd) {\n this.vm.$off(EVENT, pageFn);\n this.bus.$emit('page-end');\n } else {\n this.first += this.limit;\n this.pageEnd = this.rules.length <= this.first;\n this.loadRule();\n this.refresh();\n }\n }\n this.vm.$on(EVENT, pageFn);\n },\n })\n}\n\n\nfunction getLimit(rules) {\n return rules.length < 31 ? 31 : Math.ceil(rules.length / 3);\n}\n","import extend from '@form-create/utils/lib/extend';\n\n\nexport default function useRender(Handler) {\n extend(Handler.prototype, {\n clearNextTick() {\n this.nextTick && clearTimeout(this.nextTick);\n this.nextTick = null;\n },\n bindNextTick(fn) {\n this.clearNextTick();\n this.nextTick = setTimeout(() => {\n fn()\n this.nextTick = null;\n }, 10);\n },\n render() {\n // console.warn('%c render', 'color:green');\n ++this.loadedId;\n\n if (this.vm.unique > 0)\n return this.$render.render();\n else {\n this.vm.unique = 1;\n return [];\n }\n },\n });\n}\n","import unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {enumerable} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(ctx, true)\n });\n}\n\nexport default function RuleContext(handle, rule) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n defaultValue: rule.field ? deepCopy(rule.value) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n delete this.payload[name]\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeProps([rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n check(handle) {\n return this.vm === handle.vm\n },\n unwatch() {\n this.watch.forEach(un => un());\n this.watch = [];\n },\n unlink() {\n this.linkOn.forEach(un => un());\n this.linkOn = [];\n },\n link() {\n this.unlink();\n this.$handle.appendLink(this);\n },\n watchTo() {\n this.$handle.watchCtx(this);\n },\n delete() {\n const undef = void 0;\n this.unwatch();\n this.unlink();\n this.rmCtrl();\n extend(this, {\n deleted: true,\n prop: {...this.rule},\n computed: {},\n el: undef,\n $handle: undef,\n $render: undef,\n $api: undef,\n vm: undef,\n vNode: undef,\n parent: null,\n cacheConfig: null,\n })\n },\n rmCtrl() {\n this.ctrlRule.forEach(ctrl => ctrl.__fc__ && ctrl.__fc__.rm());\n this.ctrlRule = [];\n },\n rm() {\n const _rm = () => {\n let index = this.root.indexOf(this.origin);\n if (index > -1) {\n this.root.splice(index, 1);\n this.$handle && this.$handle.refresh();\n }\n }\n if (this.deleted) {\n _rm();\n return;\n }\n this.$handle.noWatch(() => {\n this.$handle.deferSyncValue(() => {\n this.rmCtrl();\n _rm();\n this.$handle.rmCtx(this);\n extend(this, {\n root: []\n });\n }, this.input);\n });\n },\n update(handle, init) {\n extend(this, {\n deleted: false,\n $handle: handle,\n $render: handle.$render,\n $api: handle.api,\n vm: handle.vm,\n trueType: handle.getType(this.originType),\n vNode: handle.$render.vNode,\n updated: false,\n });\n !init && this.unwatch();\n this.watchTo();\n this.link();\n }\n})\n","import extend from '@form-create/utils/lib/extend';\nimport {byCtx, copyRule, enumerable, getRule, invoke, parseFn} from '../frame/util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {err} from '@form-create/utils/lib/console';\nimport {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {$set} from '@form-create/utils';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && (is.String(_rule) || is.Undef(_rule))) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (!is.Object(_rule) || !getRule(_rule).type)\n return err('未定义生成规则的 type 字段', _rule);\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n if (isInit) {\n ctx = _rule.__fc__;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n ctx = new RuleContext(this, this.parseRule(_rule));\n this.bindParser(ctx);\n } else {\n if (ctx.originType !== ctx.rule.type) {\n ctx.updateType();\n this.bindParser(ctx);\n }\n this.appendValue(ctx.rule);\n }\n [false, true].forEach(b => this.parseEmit(ctx, b));\n this.syncProp(ctx);\n ctx.parent = parent || null;\n ctx.root = rules;\n this.setCtx(ctx);\n\n !isCopy && !isInit && this.effect(ctx, 'load');\n\n ctx.parser.loadChildren === false || loadChildren(ctx.rule.children, ctx);\n\n if (!parent) {\n const _preIndex = preIndex(index);\n if (_preIndex > -1 || !index) {\n this.sort.splice(_preIndex + 1, 0, ctx.id);\n } else {\n this.sort.push(ctx.id);\n }\n }\n\n const r = ctx.rule;\n if (!ctx.updated) {\n ctx.updated = true;\n if (is.Function(r.update)) {\n this.bus.$once('load-end', () => {\n this.refreshUpdate(ctx, r.value);\n });\n }\n this.effect(ctx, 'loaded');\n }\n\n if (ctx.input)\n Object.defineProperty(r, 'value', this.valueHandle(ctx));\n if (this.refreshControl(ctx)) this.cycleLoad = true;\n return ctx;\n });\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || (val => val === control.value);\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n this.vm.$nextTick(() => {\n this.api.hidden(!valid, rule);\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n this.deferSyncValue(() => {\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n this.vm.$emit('reloading', this.api);\n });\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) $set(rule, k, def[k]);\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value === null ? undefined : value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, this.options.appendValue ? Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {}) : {}));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n this.subForm[ctx.id] = subForm;\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value === null ? undefined : value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return this.render(children, ctx);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'component', 'cache'];\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule).filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o);\n this.$render.initOrgChildren();\n }\n flag && this.loadChildren(n, ctx);\n this.vm.$emit('update', this.api);\n });\n }\n this.$render.clearCache(ctx);\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n if (input && !hasProperty(this.fieldCtx, field)) {\n $del(this.form, field);\n }\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\n\nexport default function useLifecycle(Handler) {\n extend(Handler.prototype, {\n mounted() {\n const _mounted = () => {\n this.isMounted = true;\n this.lifecycle('mounted');\n }\n if (this.pageEnd) {\n _mounted();\n } else {\n this.bus.$once('page-end', _mounted);\n }\n },\n lifecycle(name) {\n const fn = this.options[name];\n is.Function(fn) && invoke(() => fn(this.api));\n this.vm.$emit(name, this.api);\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n const prop = ps[k];\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n let effect = {};\n Object.keys(ctx.rule.effect || {}).forEach(k => {\n effect[k] = () => ctx.rule.effect[k];\n })\n Object.keys(ctx.rule).forEach(k => {\n if (k[0] === '$') {\n effect[k.substr(1)] = () => ctx.rule[k];\n }\n })\n Object.keys(effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(effect[k], (n) => {\n this.effect(ctx, 'watch', {[k]: n});\n }, {deep: true}));\n });\n },\n ruleEffect(rule, event, append) {\n this.emitEffect({\n rule,\n input: !!rule.field,\n type: this.getType(rule.type)\n }, event, append);\n },\n effect(ctx, event, custom) {\n this.emitEffect({\n rule: ctx.rule,\n input: ctx.input,\n type: ctx.trueType,\n ctx,\n custom\n }, event);\n },\n getEffect(rule, name) {\n if (hasProperty(rule, '$' + name)) {\n return rule['$' + name];\n }\n if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (Object.keys(rule).reduce((i, k) => {\n if (k[0] === '$') {\n i[k.substr(1)] = rule[k];\n }\n return i;\n }, {...rule.effect || {}}));\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeProps([prop], data.getProp());\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) return unique(c.filter(v => v !== '*'));\n else if (is.String(c)) return [c];\n else return false;\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\n\n\nexport default function Handler(fc) {\n extend(this, {\n fc,\n vm: fc.vm,\n watching: false,\n loading: false,\n reloading: false,\n noWatchFn: null,\n deferSyncFn: null,\n isMounted: false,\n formData: {},\n subForm: {},\n form: {},\n appendData: {},\n providers: {},\n cycleLoad: null,\n loadedId: 1,\n nextTick: null,\n changeStatus: false,\n pageEnd: true,\n nextReload: () => {\n this.lifecycle('reload');\n }\n });\n\n funcProxy(this, {\n options() {\n return fc.options;\n },\n bus() {\n return fc.bus;\n },\n })\n\n this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApi(Api(this), this);\n}\n\nextend(Handler.prototype, {\n initData(rules) {\n extend(this, {\n ctxs: {},\n fieldCtx: {},\n nameCtx: {},\n sort: [],\n rules,\n });\n },\n init() {\n this.appendData = {...this.fc.options.formData || {}, ...this.vm.value || {}, ...this.appendData};\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.vm.$set(this.vm, 'formData', this.formData);\n },\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nfunction getError(action, option, xhr) {\n const msg = `fail to ${action} ${xhr.status}'`;\n const err = new Error(msg);\n err.status = xhr.status;\n err.url = action;\n return err;\n}\n\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function fetch(option) {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n\n const xhr = new XMLHttpRequest();\n const action = option.action;\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr), getBody(xhr));\n }\n\n option.onSuccess(getBody(xhr));\n };\n\n xhr.open(option.method || 'get', action, true);\n\n let formData;\n if (option.data) {\n if ((option.dataType || '').toLowerCase() !== 'json') {\n formData = new FormData();\n Object.keys(option.data).map(key => {\n formData.append(key, option.data[key]);\n });\n } else {\n formData = JSON.stringify(option.data);\n xhr.setRequestHeader('content-type', 'application/json');\n }\n }\n\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const headers = option.headers || {};\n\n Object.keys(headers).forEach(item => {\n if (headers[item] !== null) {\n xhr.setRequestHeader(item, headers[item]);\n }\n });\n xhr.send(formData);\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n return this.makeComponent(tag, data, children);\n },\n makeComponent(type, data, children) {\n let Node = this.$h(type, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","import mergeProps from '@form-create/utils/lib/mergeprops';\nimport unique from '@form-create/utils/lib/unique';\nimport extend from '@form-create/utils/lib/extend';\n\nexport function createManager(proto) {\n class CustomManager extends Manager {\n }\n\n Object.assign(CustomManager.prototype, proto);\n return CustomManager;\n}\n\nexport default function Manager(handler) {\n extend(this, {\n $handle: handler,\n vm: handler.vm,\n options: {},\n ref: 'fcForm',\n mergeOptionsRule: {\n normal: ['form', 'row', 'info', 'submitBtn', 'resetBtn']\n }\n });\n this.updateKey();\n this.init();\n}\n\nextend(Manager.prototype, {\n __init() {\n this.$render = this.$handle.$render;\n this.$r = (...args) => this.$render.renderRule(...args);\n },\n updateKey() {\n this.key = unique();\n },\n //TODO interface\n init() {\n },\n update() {\n },\n beforeRender() {\n },\n form() {\n return this.vm.$refs[this.ref];\n },\n mergeOptions(args, opt) {\n return mergeProps(args.map(v => this.tidyOptions(v)), opt, this.mergeOptionsRule);\n },\n updateOptions(options) {\n this.options = this.mergeOptions([options], this.getDefaultOptions());\n this.update();\n },\n tidyOptions(options) {\n return options;\n },\n tidyRule(ctx) {\n },\n mergeProp(ctx) {\n },\n getDefaultOptions() {\n return {};\n },\n render(children) {\n }\n})\n","import {err} from '@form-create/utils/lib/console';\nimport fetch from './fetch';\nimport {invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\n\nconst $fetch = {\n name: 'fetch',\n loaded(...args) {\n run(...args);\n },\n watch(inject, rule, api) {\n if (!run(inject, rule, api)) {\n inject.clearProp();\n api.sync(rule);\n }\n }\n};\n\nconst $required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n } else {\n const validate = {\n required: true,\n validator(_, v, call) {\n is.empty(v) ? call(validate.message) : call();\n },\n ...val,\n };\n if (!validate.message) {\n validate.message = rule.title + ' is required';\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n $required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\nfunction parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n}\n\nfunction run(inject, rule, api) {\n let option = inject.value;\n if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n return false;\n }\n if (!option.to) {\n option.to = 'options';\n }\n const onError = option.onError;\n\n const check = () => {\n if (!inject.getValue()) {\n inject.clearProp();\n api.sync(rule);\n return true;\n }\n }\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to, val);\n }\n }\n\n invoke(() => fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n set((option.parse || ((v) => v.data))(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }));\n\n return true;\n}\n\nexport default {\n fetch: $fetch,\n required: $required,\n};\n","import is from '@form-create/utils/lib/type';\n\nconst name = 'html';\n\nexport default {\n name,\n loadChildren: false,\n render(children, ctx) {\n if (!ctx.prop.domProps) ctx.prop.domProps = {};\n ctx.prop.domProps.innerHTML = children;\n return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);\n },\n renderChildren(ctx) {\n if (Array.isArray(ctx.rule.children)) {\n return ctx.rule.children.filter(v => is.String(v)).join('');\n }\n return '';\n }\n}\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $provider from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport html from '../parser/html';\n\nexport let _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;\n\nfunction _parseProp(name, id) {\n let prop;\n if (arguments.length === 2) {\n prop = arguments[1];\n id = prop[name];\n } else {\n prop = arguments[2];\n }\n return {id, prop};\n}\n\nfunction nameProp() {\n return _parseProp('name', ...arguments);\n}\n\nfunction _getEl(options) {\n if (!options || !options.el) return window.document.body;\n return is.Element(options.el)\n ? options.el\n : document.querySelector(options.el);\n}\n\nfunction mountForm(rules, option) {\n const $vm = new _vue({\n data() {\n //todo 外部无法修改\n return {rule: rules, option: option || {}};\n },\n render(h) {\n return h('FormCreate', {ref: 'fc', props: this.$data});\n }\n });\n $vm.$mount();\n return $vm;\n}\n\nfunction exportAttrs(attrs) {\n const key = attrs.key || [];\n const array = attrs.array || [];\n const normal = attrs.normal || [];\n keyAttrs.push(...key);\n arrayAttrs.push(...array);\n normalAttrs.push(...normal);\n\n appendProto([...key, ...array, ...normal]);\n}\n\nlet id = 1;\nconst instance = {};\n\n//todo 表单嵌套\nexport default function FormCreateFactory(config) {\n\n const components = {\n [fragment.name]: fragment\n };\n const parsers = {};\n const directives = {};\n const providers = {\n ...$provider\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val))\n return [...val];\n return val;\n }\n\n function directive() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) directives[data.id] = data.prop;\n }\n\n function register() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) providers[data.id] = {...data.prop, name: data.id};\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser() {\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = {...(base || BaseParser), ...parser};\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = toCase(id);\n if (['form-create', 'formcreate'].indexOf(name) > -1) {\n return $form();\n } else if (component === undefined) {\n return components[name];\n }\n } else {\n name = toCase(id.name);\n component = id;\n }\n if (!name || !component) return;\n components[name] = component;\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return _vue.extend($FormCreate(FormCreate));\n }\n\n function $vnode() {\n return _vue.extend(fragment);\n }\n\n //todo 检查回调函数作用域\n function use(fn, opt) {\n if (is.Function(fn.install)) fn.install(create, opt);\n else if (is.Function(fn)) fn(create, opt);\n return this;\n }\n\n function create(rules, _opt, parent) {\n let $vm = mountForm(rules, _opt || {});\n const _this = $vm.$refs.fc.formCreate;\n _this.$parent = parent;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n }\n\n function factory(inherit) {\n let _config = {...config};\n if (inherit) {\n _config.inherit = {\n components,\n parsers,\n directives,\n providers,\n maker,\n data\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n id: id++,\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n name: vm.$options.propsData.name,\n inFor: vm.$options.propsData.inFor,\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n options: options || {},\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(this.options);\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this.api());\n } else {\n instance[this.name] = this.api();\n }\n }\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions(this.options);\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions(this.options);\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this.api());\n instance[this.name].splice(idx, 1);\n } else {\n delete instance[this.name];\n }\n }\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions(options) {\n this.options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = deepCopy(opt);\n parent && ['page', 'onSubmit', 'mounted', 'reload', 'formData', 'el'].forEach((n) => {\n delete opt[n];\n });\n if (opt.global) {\n target.global = mergeGlobal(target.global, opt.global);\n delete opt.global;\n }\n this.$handle.$manager.mergeOptions([opt], target);\n return target;\n },\n updateOptions(options) {\n this.mergeOptions(this.options, options);\n this.$handle.$manager.updateOptions(this.options);\n },\n created() {\n this.$handle.init();\n this.vm.$emit('created', this.api());\n },\n api() {\n return this.$handle.api;\n },\n render() {\n return this.$handle.render();\n },\n mounted() {\n this.$handle.mounted();\n },\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n data,\n maker,\n component,\n directive,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n getApi,\n init(rules, _opt = {}) {\n let $vm = mountForm(rules, _opt), _this = $vm.$refs.fc.formCreate;\n return {\n mount($el) {\n if ($el && is.Element($el))\n _this.options.el = $el;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n },\n remove() {\n $vm.$el.parentNode && $vm.$el.parentNode.removeChild($vm.$el);\n },\n destroy() {\n this.remove();\n $vm.$destroy();\n },\n $f: _this.api()\n };\n }\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(Vue, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n if (Vue._installedFormCreate === true) return;\n Vue._installedFormCreate = true;\n _vue = Vue;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n Vue.prototype.$formCreate = $formCreate;\n Vue.component('FormCreate', $form());\n Vue.component('FcFragment', $vnode());\n }\n })\n }\n\n useAttr(create);\n useStatic(create);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n parser(html);\n\n if (config.install) create.use(config);\n\n if (config.inherit) {\n const inherit = config.inherit;\n inherit.components && extend(components, inherit.components);\n inherit.parsers && extend(parsers, inherit.parsers);\n inherit.directives && extend(directives, inherit.directives);\n inherit.providers && extend(providers, inherit.providers);\n inherit.maker && extend(maker, inherit.maker);\n inherit.data && extend(data, inherit.data);\n }\n\n return create;\n}\n","import is from '@form-create/utils/lib/type';\nimport {creatorFactory} from '@form-create/core/src/index';\n\nexport function timeStampToDate(timeStamp) {\n if (is.Date(timeStamp))\n return timeStamp;\n else {\n let date = new Date(timeStamp);\n return date.toString() === 'Invalid Date' ? timeStamp : date;\n }\n}\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'dateRange', 'datetime', 'datetimeRange', 'year', 'month'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type: type.toLowerCase()});\n return maker;\n }, {});\n }()),\n mergeProp(ctx) {\n let props = ctx.prop.props;\n if (props.startDate) {\n props.startDate = props.startDate && timeStampToDate(props.startDate);\n }\n },\n\n isRange(el) {\n return el.type.includes('range') || el.multiple;\n },\n\n _toValue(val, ctx) {\n const value = ctx.el.formatDate(val || ''), {separator} = ctx.el,\n isRange = this.isRange(ctx.el);\n if (!value)\n return isRange ? (ctx.el.multiple ? [] : ['', '']) : value;\n else if (isRange)\n return value.split(separator);\n else\n return value;\n },\n\n toValue(formValue, ctx) {\n const el = ctx.el;\n if (el) {\n this.el = el;\n return this._toValue(formValue, ctx);\n }\n return formValue;\n },\n\n toFormValue(value, ctx) {\n if (ctx.el) {\n const v = ctx.el.parseDate(value);\n return this.isRange(ctx.el) ? v : v[0];\n } else {\n let isArr = Array.isArray(value), props = ctx.prop.props, parseValue, type = props.type || 'date';\n if (['daterange', 'datetimerange'].indexOf(type) !== -1) {\n if (isArr) {\n parseValue = value.map((time) => !time ? '' : timeStampToDate(time));\n } else {\n parseValue = ['', '']\n }\n } else if ('date' === type && props.multiple === true) {\n parseValue = toString(value);\n } else {\n parseValue = isArr ? (value[0] || '') : value;\n parseValue = !parseValue ? '' : timeStampToDate(parseValue);\n }\n return parseValue;\n }\n },\n mounted(ctx) {\n ctx.rule.value = this.toValue(ctx.$handle.getFormData(ctx), ctx);\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return [];\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'input';\nexport default {\n name,\n maker: (function () {\n const maker = ['password', 'url', 'email', 'text', 'textarea'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type});\n return maker;\n }, {});\n\n maker.idate = creatorFactory(name, {type:'date'});\n return maker\n }()),\n mergeProp(ctx) {\n let {props} = ctx.prop;\n if (props.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';\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","export default {\n name: 'switch',\n mergeProp(ctx) {\n const prop = ctx.prop.props.slot || {};\n const slot = ctx.prop.scopedSlots || {};\n if (prop.open) slot.open = () => prop.open;\n if (prop.close) slot.close = () => prop.close;\n ctx.prop.scopedSlots = slot;\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 datePicker from './datePicker';\nimport hidden from './hidden';\nimport input from './input';\nimport slider from './slider';\nimport iswitch from './switch';\nimport row from './row';\n\nexport default [\n datePicker, hidden, input, slider, iswitch, row\n]\n","export default {\n button: 'iButton',\n icon: 'Icon',\n slider: 'Slider',\n rate: 'Rate',\n upload: 'fcUpload',\n cascader: 'Cascader',\n colorPicker: 'ColorPicker',\n timePicker: 'TimePicker',\n datePicker: 'DatePicker',\n 'switch': 'iSwitch',\n select: 'fcSelect',\n checkbox: 'fcCheckbox',\n radio: 'fcRadio',\n inputNumber: 'InputNumber',\n input: 'iInput',\n formItem: 'FormItem',\n form: 'iForm',\n frame: 'fcFrame',\n col: 'iCol',\n row: 'row',\n tree: 'fcTree',\n autoComplete: 'AutoComplete',\n group: 'fcGroup',\n subForm: 'fcSubForm',\n object: 'fcSubForm',\n}\n","export const iviewConfig = {\n resetBtnType: 'default',\n resetBtnIcon: 'md-refresh',\n infoIcon: 'ios-information-circle-outline',\n};\n\nexport function info() {\n return {\n type: 'poptip',\n trigger: 'hover',\n placement: 'top-start',\n wordWrap: true,\n icon: iviewConfig.infoIcon\n }\n}\n\nexport default function getConfig() {\n return {\n form: {\n inline: false,\n labelPosition: 'right',\n labelWidth: 125,\n showMessage: true,\n autocomplete: 'off',\n size: undefined,\n },\n row: {\n gutter: 0,\n },\n submitBtn: {\n type: 'primary',\n disabled: false,\n innerText: '提交',\n loading: false,\n show: true,\n click: undefined,\n },\n resetBtn: {\n type: iviewConfig.resetBtnType,\n disabled: false,\n icon: iviewConfig.resetBtnIcon,\n innerText: '重置',\n loading: false,\n show: false,\n click: undefined,\n },\n };\n}\n","import getConfig, {info, iviewConfig} from './config';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\n\nfunction tidy(props, name) {\n if (!hasProperty(props, name)) return;\n if (is.String(props[name])) {\n props[name] = {[name]: props[name], show: true};\n }\n}\n\nfunction isFalse(val) {\n return val === false;\n}\n\nfunction tidyBool(opt, name) {\n if (hasProperty(opt, name) && !is.Object(opt[name])) {\n opt[name] = {show: !!opt[name]};\n }\n}\n\nexport default {\n validate(call) {\n this.form().validate(call);\n },\n validateField(field, call) {\n this.form().validateField(field, call);\n },\n clearValidateState(ctx) {\n const fItem = this.vm.$refs[ctx.wrapRef];\n if (fItem) {\n fItem.validateMessage = '';\n fItem.validateState = '';\n }\n },\n tidyOptions(options) {\n ['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col'].forEach(name => {\n tidyBool(options, name);\n })\n return options;\n },\n tidyRule({prop}) {\n tidy(prop, 'title');\n tidy(prop, 'info');\n return prop;\n },\n mergeProp(ctx) {\n ctx.prop = mergeProps([{\n info: this.options.info || {},\n wrap: this.options.wrap || {},\n col: this.options.col || {},\n }, ctx.prop], {\n info: info(),\n title: {},\n col: {span: 24},\n wrap: {},\n }, {normal: ['title', 'info', 'col', 'wrap']});\n this.setSize(ctx.prop.props);\n },\n setSize(props) {\n if (!props.size && this.options.form.size) {\n props.size = this.options.form.size;\n }\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,\n ...(rule.wrap || {}),\n prop: ctx.id,\n rules: rule.validate,\n },\n class: rule.className,\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), [children, isTitle ? this.makeInfo(rule, uni) : null]);\n return (inline === true || isFalse(_col) || isFalse(col.show)) ? item : this.makeCol(rule, uni, [item]);\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false;\n const title = rule.title;\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni) {\n const titleProp = rule.title;\n const infoProp = rule.info;\n const children = [titleProp.title];\n\n const titleFn = (pop) => this.$r(mergeProps([titleProp, {\n props: titleProp,\n slot: titleProp.slot || (pop ? 'default' : 'label'),\n key: `${uni}tit`,\n type: titleProp.type || 'span',\n }]), children);\n\n if (!isFalse(infoProp.show) && (infoProp.info || infoProp.native) && !isFalse(infoProp.icon)) {\n const prop = {\n type: infoProp.type || 'poptip',\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: 'icon',\n props: {type: infoProp.icon === true ? iviewConfig.infoIcon : infoProp.icon, size: 16},\n style: 'margin-top: -1px',\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 this.setSize(resetBtn);\n return this.$r({\n type: 'button',\n props: resetBtn,\n style: {width: resetBtn.width, marginLeft: '15px'},\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 this.setSize(submitBtn);\n return this.$r({\n type: 'button',\n props: submitBtn,\n style: {width: submitBtn.width},\n on: {\n click: () => {\n const fApi = this.$handle.api;\n submitBtn.click\n ? submitBtn.click(fApi)\n : fApi.submit();\n }\n },\n key: `${this.key}b1`,\n }, [submitBtn.innerText]);\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst maker = {};\n\nconst names = ['upload', 'select', 'tree', 'checkbox', 'autoComplete', 'cascader', 'colorPicker', 'frame', 'inputNumber', 'radio', 'rate', 'timePicker', 'group'];\n\nfunction useAlias(maker) {\n names.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\n\nfunction useUpload(maker) {\n const name = 'upload';\n\n const types = {\n image: ['image', 0],\n file: ['file', 0],\n uploadFileOne: ['file', 1],\n uploadImageOne: ['image', 1],\n };\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory(name, m => m.props({uploadType: types[key][0], maxLength: types[key][1]}));\n return maker\n }, maker);\n\n maker.uploadImage = maker.image;\n maker.uploadFile = maker.file;\n}\n\nfunction useTree(maker) {\n const name = 'tree';\n\n const types = {'treeSelected': 'selected', 'treeChecked': 'checked'};\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory(name, {type:types[key]});\n return maker;\n }, maker);\n}\n\nfunction useTimePicker(maker) {\n const name = 'timePicker';\n\n maker.time = creatorFactory(name, {type:'time'})\n maker.timeRange = creatorFactory(name, {type:'timerange'})\n}\n\n\nfunction useSelect(maker) {\n const name = 'select';\n\n maker.selectMultiple = creatorFactory(name, {multiple:true})\n maker.selectOne = creatorFactory(name, {multiple:false})\n}\n\n\nfunction useFrame(maker) {\n const name = 'frame';\n\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(name, m => m.props({type: types[key][0], maxLength: types[key][1]}));\n return maker\n }, maker);\n\n\n maker.frameInput = maker.frameInputs;\n maker.frameFile = maker.frameFiles;\n maker.frameImage = maker.frameImages;\n}\n\nuseAlias(maker);\nuseUpload(maker);\nuseTree(maker);\nuseSelect(maker);\nuseFrame(maker);\nuseTimePicker(maker);\n\nexport default maker;\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '@form-create/core/src/frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nfunction tidyBtnProp(btn, def) {\n if (is.Boolean(btn))\n btn = {show: btn};\n else if (!is.Undef(btn) && !is.Object(btn)) btn = {show: def};\n return btn;\n}\n\nexport default function extendApi(api, h) {\n extend(api, {\n validate(callback) {\n let flag;\n const forms = api.children;\n let len = forms.length;\n const validate = () => {\n h.$manager.validate((...args) => {\n if (!args[0] || !flag) {\n flag = args;\n }\n callback && callback(...flag);\n });\n };\n\n const validFn = (args) => {\n setTimeout(() => {\n if (!args[0]) {\n if (!flag) {\n flag = args;\n }\n }\n if (!--len) {\n validate();\n }\n });\n };\n\n forms.forEach(form => {\n form.validate((...args) => validFn(args))\n })\n\n if (!len) {\n validate();\n }\n },\n validateField: (field, callback) => {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n const sub = h.subForm[ctx.id];\n let len = 0;\n let flag;\n const validate = () => {\n h.$manager.validateField(ctx.id, (...args) => {\n if (args[0]) {\n flag = args;\n } else if (flag) {\n return callback && callback('子表单验证未通过');\n }\n callback && callback(...flag || args);\n });\n };\n const validFn = (args) => {\n setTimeout(() => {\n if (!args[0]) {\n if (!flag) {\n flag = args;\n }\n }\n if (!--len) {\n validate();\n }\n });\n };\n sub && toArray(sub).forEach(form => {\n len++;\n form.validate((...args) => validFn(args))\n });\n\n if (!len) {\n validate();\n }\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach(field => {\n if (clearSub) this.clearSubValidateState(field);\n h.getCtxs(field).forEach(ctx => {\n h.$manager.clearValidateState(ctx);\n });\n });\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n const subForm = h.subForm[ctx.id];\n if (!subForm) return;\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.clearValidateState();\n })\n } else if (subForm) {\n subForm.clearValidateState();\n }\n });\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.submitBtnProps({show: !!isShow});\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.resetBtnProps({show: !!isShow});\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true);\n extend(btn, props);\n h.options.submitBtn = btn;\n api.refreshOptions();\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false);\n extend(btn, props);\n h.options.resetBtn = btn;\n api.refreshOptions();\n },\n submit(successFn, failFn) {\n api.validate((valid) => {\n if (valid) {\n let formData = api.formData();\n if (is.Function(successFn))\n invoke(() => successFn(formData, this));\n else {\n is.Function(h.options.onSubmit) && invoke(() => h.options.onSubmit(formData, this));\n h.vm.$emit('submit', formData, this);\n }\n } else {\n is.Function(failFn) && invoke(() => failFn(this, ...arguments));\n }\n });\n },\n });\n\n return api;\n}\n","import components from '../components';\nimport parsers from '../parsers';\nimport alias from './alias';\nimport manager from './manager';\nimport FormCreateFactory from '@form-create/core/src/index';\nimport makers from './maker';\nimport '../style/index.css';\nimport extendApi from './api';\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias);\n\n components.forEach(component => {\n FormCreate.component(component.name, component);\n });\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser);\n });\n\n Object.keys(makers).forEach(name => {\n FormCreate.maker[name] = makers[name];\n });\n}\n\nexport default function ivuFormCreate() {\n return FormCreateFactory({\n ui: `${process.env.UI}`,\n version: `${process.env.VERSION}`,\n manager,\n install,\n extendApi,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info'],\n }\n });\n}\n","import ivuFormCreate from './core/index';\n\nconst FormCreate = ivuFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreate = FormCreate;\n if (window.Vue) {\n FormCreate.install(window.Vue);\n }\n}\n\nconst maker = FormCreate.maker;\n\nexport {maker}\n\nexport default FormCreate;\n"],"names":["_extends","Object","assign","a","b","c","arguments","length","d","prototype","hasOwnProperty","call","apply","this","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","e","concat","f","g","h","i","mergeFn","getSlot","slots","exclude","keys","lst","name","push","NAME","props","formCreateInject","type","required","value","watch","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","_this","option","created","render","prop","index","$slots","toArray","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","createFrame","config","String","field","helper","Boolean","disabled","src","icon","fileUpIcon","width","Number","height","maxLength","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","showModel","makeInput","toString","readonly","clearable","makeGroup","children","makeBtn","makeItem","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","_this2","handleClick","_this3","handleRemove","makeFiles","_this4","fileIcon","size","makeImages","_this5","_this6","splice","frameLoad","iframe","api","_this7","set","get","fn","$on","onClose","console","log","makeFooter","$props","node","_this8","$nextTick","_this9","$refs","frame","contentWindow","mounted","closeModal","v2","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","slot","slotName","treeData","setStatus","checked","$forceUpdate","_data","$set","id","list","on","parseFile","file","url","getFileName","split","pop","createUpload","uploadType","uploadList","cacheFiles","showUploadList","defaultFileList","upload","every","status","o","isDisabled","makeProgress","percent","percentage","hideInfo","$scopedSlots","vm","showProgress","makeUpload","isShow","display","imgUpIcon","files","handleCancel","$watch","target","Vue","$del","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","extend","createGroup","rules","expand","button","max","min","defaultValue","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","item","$f","formData","deferSyncValue","setValue","once","expandRule","total","addRule","removeRule","_value","cache","JSON","stringify","input","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","removeIcon","makeIcon","emitEvent","args","$form","Type","group","checkbox","radio","select","tree","subForm","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","extendOption","inFor","destroyed","validate","renderRule","ctxInject","updateValue","isMore","formCreate","_refresh","_renderRule","_updateValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","fapi","rmSubForm","sub","getSubForm","idx","addSubForm","immediate","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","format","msg","tip","warn","err","error","logError","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","eval","parseFn","trim","flag","replace","__inject","parseJson","json","parse","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","baseRule","hidden","creatorFactory","init","maker","Creator","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","getFieldCtx","appendValue","appendData","getValue","ctxs","fieldCtx","removeField","getCtx","rm","destroy","$el","parentNode","removeChild","$destroy","append","after","child","sort","root","prepend","state","hiddenStatus","displayStatus","all","component","nameCtx","bind","updateOptions","fc","onSubmit","sync","deleted","clearCacheAll","refreshOptions","$manager","hideForm","hide","changeStatus","clearChangeStatus","updateRule","updateRules","mergeRules","setEffect","attr","substr","effect","updateValidate","updateValidates","validates","refreshValidate","resetFields","method","el","trigger","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","toLocaleLowerCase","uniqueId","Math","random","Date","now","deepSet","to","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","parseSide","side","renderSides","temp","prefix","suffix","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","preview","makeWrap","custom","mergeProp","onMounted","getFormData","callback","expression","__rule__","isRm","rmCtx","defaultRender","vNode","makeComponent","alias","aliasMap","_this10","handle","CreateNode","useInject","Handler","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","watching","loading","unshift","EVENT","usePage","page","first","limit","getLimit","parseInt","pageEnd","pageLoad","pageFn","loadRule","ceil","clearNextTick","clearTimeout","bindNextTick","setTimeout","loadedId","RuleContext","wrapRef","linkOn","ctrlRule","payload","updateType","updateKey","useLoader","parseRule","_rule","fullRule","loadFn","loadCtrl","control","ctrl","syncProp","pre","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","check","isCtrl","bindParser","setCtx","_preIndex","preIndex","r","updated","refreshUpdate","defineProperty","valueHandle","refreshControl","useCtrl","controls","getCtrl","handleFn","findCtrl","isHidden","reverse","ruleCon","ctrlCtx","_reloadRule","initData","reloading","nextReload","useInput","toValue","formValue","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","toEmpty","toFormValue","deferSyncFn","strFn","refreshRule","appendLink","link","effectData","clearEffectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","BaseParser","noneKey","useContext","getNameCtx","setIdCtx","rmIdCtx","isMounted","getParser","parsers","noWatchFn","rmSub","watchEffect","useLifecycle","_mounted","lifecycle","useEffect","useProvider","ps","providers","_c","getComponent","onEffect","provider","used","_used","emitEffect","getEffect","p","getProp","clearProp","arr","components","manager","extendApi","getError","action","xhr","getBody","text","responseText","response","fetch","XMLHttpRequest","onerror","onError","onload","onSuccess","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","__init","parseProp","domProps","innerHTML","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","$fetch","loaded","run","$required","load","parseVal","validator","_","message","parseOpt","body","join","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","instance","FormCreateFactory","fragment","directives","$provider","globalConfig","getApi","directive","register","componentAlias","base","formCreateParser","$vnode","install","_opt","inherit","_config","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","html","timeStampToDate","timeStamp","date","startDate","isRange","includes","multiple","_toValue","formatDate","separator","parseDate","parseValue","time","idate","autosize","minRows","rows","sliderRange","range","parseFloat","scopedSlots","col","span","row","datePicker","slider","iswitch","rate","cascader","colorPicker","timePicker","inputNumber","formItem","autoComplete","object","iviewConfig","resetBtnType","resetBtnIcon","infoIcon","info","placement","wordWrap","getConfig","inline","labelPosition","labelWidth","showMessage","autocomplete","gutter","innerText","show","click","tidy","isFalse","tidyBool","validateField","clearValidateState","fItem","validateMessage","validateState","wrap","setSize","submit","preventDefault","className","makeFormBtn","makeRow","uni","isTitle","_col","makeInfo","makeCol","titleProp","infoProp","align","makeSubmitBtn","makeResetBtn","marginLeft","fApi","names","useAlias","auto","number","color","useUpload","types","image","uploadFileOne","uploadImageOne","m","uploadImage","uploadFile","useTree","useTimePicker","timeRange","useSelect","selectMultiple","selectOne","useFrame","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","frameInput","frameFile","frameImage","tidyBtnProp","btn","forms","validFn","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","ivuFormCreate","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/iview/checkbox/src/component.jsx","../../utils/lib/toarray.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/iview/frame/src/component.jsx","../../../components/iview/frame/src/index.js","../../../components/iview/radio/src/component.jsx","../../utils/lib/type.js","../../../components/iview/select/src/component.jsx","../../../components/iview/tree/src/component.jsx","../../../components/iview/upload/src/component.jsx","../../../components/iview/upload/src/index.js","../../utils/lib/modify.js","../../utils/lib/deepextend.js","../../utils/lib/extend.js","../../../components/iview/group/src/component.jsx","../../../components/iview/group/src/index.js","../../../components/common/subform/src/component.jsx","../src/components/index.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/console.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../core/src/render/cache.js","../../utils/lib/tocase.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/render.js","../../core/src/render/index.js","../../core/src/handler/inject.js","../../core/src/handler/page.js","../../core/src/handler/render.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/parser/html.js","../../core/src/frame/index.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/slider.js","../src/parsers/switch.js","../src/parsers/row.js","../src/parsers/index.js","../src/core/alias.js","../src/core/config.js","../src/core/manager.js","../src/core/maker.js","../src/core/api.js","../src/core/index.js","../src/index.js"],"sourcesContent":["\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","export default function 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 },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => n.indexOf(opt.label) !== -1).map((opt) => opt.value).filter(v => v !== undefined));\n },\n update() {\n this.trueValue = this.value ? this.options().filter((opt) => this.value.indexOf(opt.value) !== -1)\n .map((option) => option.label) : []\n }\n },\n created() {\n this.update();\n },\n render() {\n return <CheckboxGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n delete props.value;\n return <Checkbox {...{props}} key={'' + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</CheckboxGroup>\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 function createFrame(config) {\n return {\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: config.fileUpIcon\n },\n width: {\n type: [Number, String],\n default: 500\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n },\n 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 showModel() {\n if (this.disabled || false === this.onOpen()) return;\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n icon: this.icon,\n readonly: true,\n clearable: false\n };\n\n return <Input props={props} on={{'on-click': () => this.showModel()}} key={this.key('input')}/>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength)\n children.push(this.makeBtn());\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field)\n throw new Error('[frame]无效的字段值');\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon))\n icons.push(this.makeHandleIcon(val, index));\n if (this.allowRemove)\n icons.push(this.makeRemoveIcon(val, index));\n\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <icon\n props={{type: (this.handleIcon === true || this.handleIcon === undefined) ? 'ios-eye-outline' : this.handleIcon}}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <icon props={{type: 'ios-trash-outline'}} on-click={() => this.handleRemove(val)}\n key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<icon props={{type: config.fileIcon, size: 40}}\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()}\n key={this.key('btn')}>\n <icon props={{type: this.icon, size: 20}}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) return;\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !(this.srcKey) ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n api: this.formCreateInject.api,\n close: (field) => {\n this.valid(field);\n this.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 const node = [];\n\n if (!footer) return node;\n if (closeBtn)\n node.push(<Button\n on-click={() => (this.onCancel() !== false && this.closeModel(true))}>{closeBtnText}</Button>);\n if (okBtn)\n node.push(<Button type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</Button>);\n return node;\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 const {width, 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 <Modal mask={this.previewMask} title={modalTitle} v-model={this.previewVisible} footerHide={true}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </Modal>\n <Modal {...{props:{width, title, ...this.modal}}} v-model={this.frameVisible}\n on-on-cancel={() => (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 <div slot=\"footer\">\n {this.makeFooter()}\n </div>\n </Modal>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n };\n}\n","import createFrame from './component';\n\nconst frame = createFrame({\n fileIcon: 'md-document',\n fileUpIcon: 'ios-folder-open',\n});\n\n\nframe.v2 = createFrame({\n fileIcon: 'document-text',\n fileUpIcon: 'folder',\n});\n\nexport default frame;\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 },\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 <RadioGroup {...this.formCreateInject.prop} value={this.trueValue}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n delete props.value;\n return <Radio {...{props}} key={'' + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</RadioGroup>\n }\n}\n","const is = {\n type(arg, type) {\n return Object.prototype.toString.call(arg) === '[object ' + type + ']'\n },\n Undef(v) {\n return v === undefined || v === null\n },\n Element(arg) {\n return typeof arg === 'object' && arg !== null && arg.nodeType === 1 && !is.Object(arg)\n },\n trueArray(data) {\n return Array.isArray(data) && data.length > 0;\n },\n Function(v) {\n const type = this.getType(v);\n return type === 'Function' || type === 'AsyncFunction';\n },\n getType(v) {\n const str = Object.prototype.toString.call(v)\n return /^\\[object (.*)\\]$/.exec(str)[1]\n },\n empty(value) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (Array.isArray(value) && Array.isArray(value) && !value.length) {\n return true;\n }\n\n return typeof value === 'string' && !value;\n }\n};\n\n['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(t => {\n is[t] = function (arg) {\n return is.type(arg, t);\n }\n})\n\nexport function hasProperty(rule, k) {\n return ({}).hasOwnProperty.call(rule, k)\n}\n\nexport default is;\n","import is from '@form-create/utils/lib/type';\n\nconst NAME = 'fcSelect';\nexport default {\n name: NAME,\n functional: true,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n },\n render(h, ctx) {\n const options = ctx.props.formCreateInject.options;\n return <Select {...ctx.data}>{(Array.isArray(options) ? options : []).map((props, index) => {\n const slot = props.slot;\n return <Option {...{props}}\n key={'' + index + '-' + props.value}>\n {slot ? <template\n slot={props.slotName || 'default'}>{is.Function(slot) ? props.slot(h) : slot}</template> : null}\n </Option>\n })}{ctx.children}</Select>;\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 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 data() {\n return {\n treeData: []\n }\n },\n watch: {\n value(n) {\n this.setStatus(n);\n }\n },\n created() {\n this.setStatus(this.value);\n },\n methods: {\n setStatus(value) {\n const n = toArray(value);\n const data = this.formCreateInject.prop.props.data;\n this.type === 'selected' ? this.checked(data, n, 'selected') : this.checked(data, n, 'checked');\n this.$forceUpdate();\n },\n checked(_data, value, type) {\n _data.forEach((node) => {\n this.$set(node, type, value.indexOf(node.id) !== -1);\n if (node.children !== undefined && Array.isArray(node.children))\n this.checked(node.children, value, type);\n });\n },\n onInput(list) {\n this.$emit('input', list.map(node => node.id));\n }\n },\n render() {\n const on = {};\n if (this.type === 'selected') {\n on['on-select-change'] = this.onInput;\n } else {\n on['on-check-change'] = this.onInput;\n }\n return <Tree {...this.formCreateInject.prop} ref=\"tree\" on={on}>{getSlot(this.$slots)}</Tree>;\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css';\nimport getSlot from '@form-create/utils/lib/slot';\n\nfunction parseFile(file) {\n return {\n url: file,\n name: getFileName(file)\n };\n}\n\nfunction getFileName(file) {\n return ('' + file).split('/').pop()\n}\n\nconst NAME = 'fcUpload';\n\n\nexport default function createUpload(config) {\n return {\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 maxLength: {\n type: Number,\n default: 0\n },\n allowRemove: {\n type: Boolean,\n default: true\n },\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.showUploadList === undefined)\n this.formCreateInject.prop.props.showUploadList = false;\n this.formCreateInject.prop.props.defaultFileList = toArray(this.value).map(parseFile);\n },\n watch: {\n value(n) {\n if (this.$refs.upload.fileList.every(file => {\n return !file.status || file.status === 'finished';\n })) {\n this.$refs.upload.fileList = toArray(n).map(parseFile);\n this.uploadList = this.$refs.upload.fileList;\n }\n },\n maxLength(n, o) {\n if (o === 1 || n === 1)\n this.update();\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()) return;\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 : <icon props={{type: config.fileIcon, size: 40}} key={this.key('i' + index)}/>\n },\n makeRemoveIcon(file, index) {\n return <icon type='ios-trash-outline' on-click={() => this.onRemove(file)}\n key={this.key('ri' + index)}/>;\n },\n makeHandleIcon(file, index) {\n return <icon\n type={(this.handleIcon === true || this.handleIcon === undefined) ? 'ios-eye-outline' : this.handleIcon}\n on-click={() => this.handleClick(file)} key={this.key('hi' + index)}/>;\n },\n makeProgress(file, index) {\n return <Progress props={{percent: file.percentage, hideInfo: true}} style=\"width:90%\"\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 if (this.allowRemove)\n icons.push(this.makeRemoveIcon(file, index));\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.showProgress ? this.makeProgress(file, index) : [this.makeItem(file, index), this.makeIcons(file, index)]}</div>);\n },\n makeUpload() {\n const isShow = (!this.maxLength || this.maxLength > this.uploadList.length);\n return <Upload {...this.formCreateInject.prop} ref=\"upload\"\n style={{display: 'inline-block'}}\n key={this.key('upload')}>\n {isShow ? <template slot=\"default\">\n {this.$slots.default || <div class=\"fc-upload-btn\">\n <icon props={{\n type: this.uploadType === 'file' ? 'ios-cloud-upload-outline' : config.imgUpIcon,\n size: 20\n }}/>\n </div>}\n </template> : null}{getSlot(this.$slots,['default'])}\n </Upload>;\n },\n update() {\n let files = this.$refs.upload.fileList.map((file) => file.url).filter((url) => url !== undefined);\n if(this.cacheFiles.length !== files.length){\n this.cacheFiles = [...files];\n this.$emit('input', this.maxLength === 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.showUploadList === undefined)\n this.formCreateInject.prop.props.showUploadList = this.$refs.upload.showUploadList;\n this.formCreateInject.prop.props.defaultFileList = this.$refs.upload.defaultFileList;\n }\n return (\n <div\n class=\"_fc-upload\">{[this.formCreateInject.prop.props.showUploadList ? [] : this.makeFiles(), this.makeUpload()]}\n <Modal title={this.modalTitle} v-model={this.previewVisible} footerHide={true}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </Modal>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.fileList;\n this.$watch(() => this.$refs.upload.fileList, () => {\n this.update();\n }, {deep: true});\n }\n };\n}\n","import createUpload from './component';\n\nconst upload = createUpload({\n\n fileIcon: 'md-document',\n imgUpIcon: 'md-images',\n});\n\nupload.v2 = createUpload({\n\n fileIcon: 'document-text',\n imgUpIcon: 'image',\n});\n\nexport default upload;\n","import Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'fcGroup';\n\nexport default function createGroup(config) {\n return {\n name: NAME,\n props: {\n field: String,\n rule: [Array, Object],\n rules: Array,\n expand: Number,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n button: {\n type: Boolean,\n default: true\n },\n max: {\n type: Number,\n default: 0\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: () => []\n },\n defaultValue: Object,\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n fontSize: {\n type: Number,\n default: 28\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rules) {\n return this.rules;\n }\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n return [];\n }\n },\n watch: {\n formRule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n disabled(n) {\n if (this.syncDisabled) {\n const lst = this.cacheRule;\n Object.keys(lst).forEach(k => {\n lst[k].$f.disabled(n);\n })\n }\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n) {\n n = n || [];\n let keys = Object.keys(this.cacheRule), total = keys.length, len = total - n.length;\n if (len < 0) {\n for (let i = len; i < 0; i++) {\n this.addRule(n.length + i);\n }\n for (let i = 0; i < total; i++) {\n this.setValue(keys[i], n[i]);\n }\n } else {\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n this.removeRule(keys[total - i - 1]);\n }\n }\n n.forEach((val, i) => {\n this.setValue(keys[i], n[i]);\n });\n }\n }\n },\n methods: {\n _value(v) {\n return (v && hasProperty(v, this.field)) ? v[this.field] : v;\n },\n cache(k, val) {\n this.cacheValue[k] = JSON.stringify(val);\n },\n input(value) {\n this.$emit('input', value);\n this.$emit('change', value);\n },\n formData(key, formData) {\n const cacheRule = this.cacheRule;\n const keys = Object.keys(cacheRule);\n if (keys.filter(k => cacheRule[k].$f).length !== keys.length) {\n return;\n }\n const value = keys.map(k => {\n const data = key === k ? formData : {...this.cacheRule[k].$f.form};\n const value = this.field ? data[this.field] || null : data;\n this.cache(k, value);\n return value;\n });\n this.input(value);\n },\n setValue(key, value) {\n const field = this.field, $f = this.cacheRule[key].$f;\n if (field) {\n value = {[field]: this._value(value)};\n }\n if (this.cacheValue[key] === JSON.stringify(field ? value[field] : value)) {\n return;\n }\n this.cache(key, value);\n $f.coverValue(value || {});\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.formRule);\n const options = this.options ? {...this.options} : {\n submitBtn: false,\n resetBtn: false,\n };\n if (this.defaultValue) {\n if (!options.formData) options.formData = {};\n const defVal = deepCopy(this.defaultValue);\n extend(options.formData, this.field ? {[this.field]: defVal} : defVal);\n }\n this.$set(this.cacheRule, ++this.len, {rule, options});\n if (emit) {\n this.$nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));\n }\n },\n add$f(i, key, $f) {\n this.cacheRule[key].$f = $f;\n this.formData(key, $f.formData());\n this.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n this.value.splice(index, 1);\n this.input(this.value);\n },\n addIcon(key) {\n return <Icon key={`a${key}`} type={config.addIcon}\n style={`font-size:${this.fontSize}px;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer;color:#000'}`}\n on-click={this.add}/>;\n },\n delIcon(index, key) {\n return <Icon key={`d${key}`} type={config.removeIcon}\n style={`font-size:${this.fontSize}px;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer'};`}\n on-click={() => this.del(index, key)}/>;\n },\n makeIcon(total, index, key) {\n if (this.$scopedSlots.button) {\n return this.$scopedSlots.button({\n total,\n index,\n vm: this,\n key,\n del: () => this.del(index, key),\n add: this.add\n });\n }\n if (index === 0) {\n return [(this.max !== 0 && total >= this.max) ? null : this.addIcon(key), (this.min === 0 || total > this.min) ? this.delIcon(index, key) : null];\n }\n if (index >= this.min) {\n return this.delIcon(index, key);\n }\n },\n emitEvent(name, args, index, key) {\n this.$emit(name, ...args, this.cacheRule[key].$f, index);\n },\n expandRule(n) {\n for (let i = 0; i < n; i++) {\n this.value.push(this.field ? null : {});\n }\n }\n },\n created() {\n this.type = this.formCreateInject.form.$form();\n const d = (this.expand || 0) - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n for (let i = 0; i < this.value.length; i++) {\n this.addRule(i);\n }\n },\n render() {\n const keys = Object.keys(this.cacheRule);\n const button = this.button;\n const Type = this.type;\n return keys.length === 0 ?\n (this.$scopedSlots.default ? (this.$scopedSlots.default({\n vm: this,\n add: this.add\n })) : <Icon key={'a_def'} type={config.addIcon}\n style={`font-size:${this.fontSize}px;vertical-align:middle;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer'};`}\n on-click={this.add}/>) :\n <div key={'con'}>{keys.map((key, index) => {\n const {rule, options} = this.cacheRule[key];\n return <Row align=\"middle\" type=\"flex\" key={key}\n style=\"border-bottom:1px dashed #dcdee2;margin-bottom:10px;\">\n <Col span={button ? 20 : 24}><FormItem><Type\n key={key} inFor={true}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n value={this.field ? {[this.field]: this._value(this.value[index])} : this.value[index]}\n rule={rule}\n option={options} extendOption={true}/></FormItem></Col>\n {button ? <Col span={2} pull={1} push={1}>{this.makeIcon(keys.length, index, key)}</Col> : null}\n </Row>\n })}</div>\n }\n };\n}\n","import createGroup from './component';\n\nconst group = createGroup({\n removeIcon: 'ios-remove-circle-outline',\n addIcon: 'ios-add-circle-outline',\n});\n\ngroup.v2 = createGroup({\n addIcon: 'ios-plus-outline',\n removeIcon: 'ios-minus-outline',\n})\n\nexport default group;\n","const NAME = 'fcSubForm';\n\nexport default {\n name: NAME,\n props: {\n rule: Array,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n default: () => ({})\n },\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n },\n data() {\n return {\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n watch: {\n disabled(n) {\n this.syncDisabled && this.cacheRule.$f.disabled(n);\n },\n value(n) {\n this.setValue(n);\n }\n },\n methods: {\n formData(value) {\n this.cacheValue = JSON.stringify(value);\n this.$emit('input', value);\n this.$emit('change', value);\n },\n setValue(value) {\n const str = JSON.stringify(value);\n if (this.cacheValue === str) {\n return;\n }\n this.cacheValue = str;\n this.cacheRule.$f.coverValue(value || {});\n },\n addRule() {\n const options = this.options ? this.options : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = {...(this.value || {})};\n this.cacheRule = {rule: this.rule, options};\n },\n add$f($f) {\n this.cacheRule.$f = $f;\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n rule={rule}\n option={options} extendOption={true}/>\n }\n}\n","import checkbox from '@form-create/component-ivu-checkbox/src/index';\nimport frame from '@form-create/component-ivu-frame/src/index';\nimport radio from '@form-create/component-ivu-radio/src/index';\nimport select from '@form-create/component-ivu-select/src/index';\nimport tree from '@form-create/component-ivu-tree/src/index';\nimport upload from '@form-create/component-ivu-upload/src/index';\nimport group from '@form-create/component-ivu-group/src/index';\nimport subForm from '@form-create/component-subform/src/index';\n\nexport default [\n checkbox,\n radio,\n select,\n tree,\n subForm,\n frame,\n upload,\n group\n];\n","import extend from '@form-create/utils/lib/extend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'FormCreate';\n\nconst getRuleInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.formCreateInject) {\n return vm.formCreateInject\n }\n if (vm.$parent) {\n return getRuleInject(vm.$parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n value: Object,\n api: Object,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: JSON.stringify(this.value || {}),\n isMore: !!this.inFor,\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n || {}) === this.updateValue) return;\n this.$f.setValue(n || {});\n },\n deep: true\n },\n option: {\n handler(n) {\n this.formCreate.initOptions(n);\n this.$f.refresh();\n },\n deep: true\n },\n rule(n) {\n if (n.length === this.renderRule.length && n.every(v => this.renderRule.indexOf(v) > -1)) return;\n this.formCreate.$handle.reloadRule(n);\n this._renderRule();\n }\n },\n beforeCreate() {\n const {rule, option} = this.$options.propsData;\n this.formCreate = new FormCreate(this, rule, option);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n created() {\n const vm = this, fapi = this.formCreate.api();\n const addSubForm = () => {\n if (vm.$pfc) {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n let sub;\n if (vm.isMore) {\n sub = toArray(inject.getSubForm());\n sub.push(fapi);\n\n } else {\n sub = fapi;\n }\n inject.subForm(sub);\n }\n }\n };\n\n const rmSubForm = () => {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n if (vm.isMore) {\n const sub = toArray(inject.getSubForm());\n const idx = sub.indexOf(fapi);\n if (idx > -1) {\n sub.splice(idx, 1);\n }\n } else {\n inject.subForm();\n }\n }\n };\n\n vm.$on('hook:beforeDestroy', () => {\n rmSubForm();\n });\n\n this.$watch(() => this.subForm, (n) => {\n n ? addSubForm() : rmSubForm();\n }, {immediate: true});\n }\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'preview', 'component', 'cache'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return eval('(' + FUNCTION + '(){return ' + fn + ' })()')\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n return is.Function(rule.getRule) ? rule.getRule() : rule;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, h.options.appendValue ? copy(h.appendData) : {});\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n const flag = hasProperty(formData, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? formData[key] : undefined;\n })\n });\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rule.props && $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n ctx.rule.effect = {};\n }\n $set(ctx.rule.effect, attr, value);\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n deferSyncValue(fn, sync){\n h.deferSyncValue(fn, sync);\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off', 'set'].forEach(n => {\n api[n] = function (...args) {\n h.vm[`$${n}`](...args);\n }\n });\n\n api.changeValue = api.changeField = api.setValue;\n\n return api;\n}\n","import extend from '@form-create/utils/lib/extend';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n cache.use = true;\n return cache.vnode;\n }\n })\n\n}\n","export default function toCase(str) {\n const to = str.replace(/(-[a-z])/g, function (v) {\n return v.replace('-', '').toLocaleUpperCase();\n });\n\n return lower(to);\n}\n\nexport function lower(str) {\n return str.replace(str[0], str[0].toLowerCase());\n}\n","export default function toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n","export default function toLine(name) {\n let line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();\n if (line.indexOf('-') === 0)\n line = line.substr(1);\n return line;\n}\n","let id = 0;\n\nexport default function uniqueId() {\n return Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}${++id}`).toString(36);\n}\n","export default function deepSet(data, idx, val) {\n let _data = data, to;\n (idx || '').split('.').forEach(v => {\n if (to) {\n if (!_data[to] || typeof _data[to] != 'object') {\n _data[to] = {}\n }\n _data = _data[to];\n }\n to = v;\n })\n _data[to] = val;\n return _data;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {_vue as Vue} from '../frame';\nimport {tip} from '@form-create/utils/lib/console';\nimport {invoke, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {$set, deepSet, toLine} from '@form-create/utils';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.tempList = {};\n this.clearOrgChildren();\n },\n initOrgChildren() {\n const ctxs = this.$handle.ctxs;\n this.orgChildren = Object.keys(ctxs).reduce((initial, id) => {\n if (ctxs[id].parser.loadChildren !== false) {\n const children = ctxs[id].rule.children;\n initial[id] = is.trueArray(children) ? [...children] : [];\n }\n\n return initial;\n }, {});\n\n },\n clearOrgChildren() {\n this.orgChildren = {};\n },\n getTypeSlot(type) {\n const name = 'type-' + toLine(type);\n const _fn = (vm) => {\n if (vm) {\n const slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n }\n return _fn(this.vm);\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side) {\n return is.Object(side) ? mergeRule({}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix)), vn, this.renderRule(this.parseSide(prop.suffix))];\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = rule.cache !== false;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.preview = !!(hasProperty(prop, 'preview') ? prop.preview : (this.options.preview || false))\n prop.props.formCreateInject = this.injectProp(ctx);\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = this.getTypeSlot(ctx.type);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else if(is.String(vn.data.style)) {\n vn.data.style += ';display:none;';\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n getSubForm: () => {\n return this.$handle.subForm[ctx.id];\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx, custom) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx, custom);\n ctx.parser.mergeProp(ctx, custom);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n 'hook:mounted': () => {\n this.onMounted(ctx);\n },\n 'fc.sub-form': (subForm) => {\n this.$handle.addSubForm(ctx, subForm);\n }\n },\n }\n ]\n\n if (!custom && ctx.input) {\n ctx.prop.model = {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n };\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if(prop.component)\n return this.vNode.makeComponent(prop.component, prop, children)\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nexport default function Render(handle) {\n extend(this, {\n $handle: handle,\n fc: handle.fc,\n vm: handle.vm,\n $manager: handle.$manager,\n vNode: new handle.fc.CreateNode(handle.vm),\n });\n\n funcProxy(this, {\n options() {\n return handle.options;\n },\n sort() {\n return handle.sort;\n }\n })\n\n this.initCache();\n this.initRender();\n}\n\nuseCache(Render);\nuseRender(Render)\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport toLine from '@form-create/utils/lib/toline';\nimport {parseFn} from '../frame/util';\n\n\nexport default function useInject(Handler) {\n extend(Handler.prototype, {\n parseInjectEvent(rule, on) {\n const inject = rule.inject || this.options.injectEvent;\n return this.parseEventLst(rule, on, inject);\n },\n parseEventLst(rule, data, inject, deep) {\n Object.keys(data).forEach(k => {\n const fn = this.parseEvent(rule, data[k], inject, deep);\n if (fn) {\n data[k] = fn;\n }\n });\n return data;\n },\n parseEvent(rule, fn, inject, deep) {\n if (is.Function(fn) && ((inject !== false && !is.Undef(inject)) || fn.__inject)) {\n return this.inject(rule, fn, inject)\n } else if (!deep && Array.isArray(fn) && fn[0] && (is.String(fn[0]) || is.Function(fn[0]))) {\n return this.parseEventLst(rule, fn, inject, true);\n } else if (is.String(fn)) {\n const val = parseFn(fn);\n if (val && fn !== val) {\n return val.__inject ? this.parseEvent(rule, val, inject, true) : val;\n }\n }\n },\n parseEmit(ctx, on) {\n let event = {}, rule = ctx.rule, {emitPrefix, field, name, inject} = rule;\n let emit = rule[on ? 'emit' : 'nativeEmit'] || [];\n if (is.trueArray(emit)) {\n let emitKey = emitPrefix || field || name;\n if (emitKey) {\n if (!on) emitKey = `native-${emitKey}`;\n emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n }\n const fieldKey = toLine(`${emitKey}-${eventName}`);\n const fn = (...arg) => {\n this.vm.$emit(fieldKey, ...arg);\n this.vm.$emit('emit-event', fieldKey, ...arg);\n };\n fn.__emit = true;\n\n if (!eventInject && inject === false) {\n event[eventName] = fn;\n } else {\n let _inject = eventInject || inject || this.options.injectEvent;\n event[eventName] = is.Undef(_inject) ? fn : this.inject(rule, fn, _inject);\n }\n });\n }\n\n }\n ctx.computed[on ? 'on' : 'nativeOn'] = event;\n return event;\n },\n getInjectData(self, inject) {\n const {option, rule} = this.vm.$options.propsData;\n return {\n api: this.api,\n $f: this.api,\n rule,\n self: self.__origin__,\n option,\n inject\n };\n },\n inject(self, _fn, inject) {\n if (_fn.__origin) {\n if (this.watching && !this.loading)\n return _fn;\n _fn = _fn.__origin;\n }\n\n const h = this;\n\n const fn = function (...args) {\n const data = h.getInjectData(self, inject);\n data.args = [...args];\n args.unshift(data);\n return _fn.apply(this, args);\n };\n fn.__origin = _fn;\n fn.__json = _fn.__json;\n return fn;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\n\nconst EVENT = ['hook:updated', 'hook:mounted'];\n\nexport default function usePage(Handler) {\n extend(Handler.prototype, {\n usePage() {\n const page = this.options.page;\n if (!page) return;\n let first = 25;\n let limit = getLimit(this.rules);\n if (is.Object(page)) {\n if (page.first) first = parseInt(page.first, 10) || first;\n if (page.limit) limit = parseInt(page.limit, 10) || limit;\n }\n extend(this, {\n first,\n limit,\n pageEnd: this.rules.length <= first,\n })\n\n this.bus.$on('page-end', () => this.vm.$emit('page-end', this.api));\n this.pageLoad();\n },\n pageLoad() {\n const pageFn = () => {\n if (this.pageEnd) {\n this.vm.$off(EVENT, pageFn);\n this.bus.$emit('page-end');\n } else {\n this.first += this.limit;\n this.pageEnd = this.rules.length <= this.first;\n this.loadRule();\n this.refresh();\n }\n }\n this.vm.$on(EVENT, pageFn);\n },\n })\n}\n\n\nfunction getLimit(rules) {\n return rules.length < 31 ? 31 : Math.ceil(rules.length / 3);\n}\n","import extend from '@form-create/utils/lib/extend';\n\n\nexport default function useRender(Handler) {\n extend(Handler.prototype, {\n clearNextTick() {\n this.nextTick && clearTimeout(this.nextTick);\n this.nextTick = null;\n },\n bindNextTick(fn) {\n this.clearNextTick();\n this.nextTick = setTimeout(() => {\n fn()\n this.nextTick = null;\n }, 10);\n },\n render() {\n // console.warn('%c render', 'color:green');\n ++this.loadedId;\n\n if (this.vm.unique > 0)\n return this.$render.render();\n else {\n this.vm.unique = 1;\n return [];\n }\n },\n });\n}\n","import unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {enumerable} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(ctx, true)\n });\n}\n\nexport default function RuleContext(handle, rule) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n defaultValue: rule.field ? deepCopy(rule.value) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n delete this.payload[name]\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeProps([rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n check(handle) {\n return this.vm === handle.vm\n },\n unwatch() {\n this.watch.forEach(un => un());\n this.watch = [];\n },\n unlink() {\n this.linkOn.forEach(un => un());\n this.linkOn = [];\n },\n link() {\n this.unlink();\n this.$handle.appendLink(this);\n },\n watchTo() {\n this.$handle.watchCtx(this);\n },\n delete() {\n const undef = void 0;\n this.unwatch();\n this.unlink();\n this.rmCtrl();\n extend(this, {\n deleted: true,\n prop: {...this.rule},\n computed: {},\n el: undef,\n $handle: undef,\n $render: undef,\n $api: undef,\n vm: undef,\n vNode: undef,\n parent: null,\n cacheConfig: null,\n })\n },\n rmCtrl() {\n this.ctrlRule.forEach(ctrl => ctrl.__fc__ && ctrl.__fc__.rm());\n this.ctrlRule = [];\n },\n rm() {\n const _rm = () => {\n let index = this.root.indexOf(this.origin);\n if (index > -1) {\n this.root.splice(index, 1);\n this.$handle && this.$handle.refresh();\n }\n }\n if (this.deleted) {\n _rm();\n return;\n }\n this.$handle.noWatch(() => {\n this.$handle.deferSyncValue(() => {\n this.rmCtrl();\n _rm();\n this.$handle.rmCtx(this);\n extend(this, {\n root: []\n });\n }, this.input);\n });\n },\n update(handle, init) {\n extend(this, {\n deleted: false,\n $handle: handle,\n $render: handle.$render,\n $api: handle.api,\n vm: handle.vm,\n trueType: handle.getType(this.originType),\n vNode: handle.$render.vNode,\n updated: false,\n });\n !init && this.unwatch();\n this.watchTo();\n this.link();\n }\n})\n","import extend from '@form-create/utils/lib/extend';\nimport {byCtx, copyRule, enumerable, getRule, invoke, parseFn} from '../frame/util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {err} from '@form-create/utils/lib/console';\nimport {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {$set} from '@form-create/utils';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && (is.String(_rule) || is.Undef(_rule))) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (!is.Object(_rule) || !getRule(_rule).type)\n return err('未定义生成规则的 type 字段', _rule);\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n if (isInit) {\n ctx = _rule.__fc__;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n ctx = new RuleContext(this, this.parseRule(_rule));\n this.bindParser(ctx);\n } else {\n if (ctx.originType !== ctx.rule.type) {\n ctx.updateType();\n this.bindParser(ctx);\n }\n this.appendValue(ctx.rule);\n }\n [false, true].forEach(b => this.parseEmit(ctx, b));\n this.syncProp(ctx);\n ctx.parent = parent || null;\n ctx.root = rules;\n this.setCtx(ctx);\n\n !isCopy && !isInit && this.effect(ctx, 'load');\n\n ctx.parser.loadChildren === false || loadChildren(ctx.rule.children, ctx);\n\n if (!parent) {\n const _preIndex = preIndex(index);\n if (_preIndex > -1 || !index) {\n this.sort.splice(_preIndex + 1, 0, ctx.id);\n } else {\n this.sort.push(ctx.id);\n }\n }\n\n const r = ctx.rule;\n if (!ctx.updated) {\n ctx.updated = true;\n if (is.Function(r.update)) {\n this.bus.$once('load-end', () => {\n this.refreshUpdate(ctx, r.value);\n });\n }\n this.effect(ctx, 'loaded');\n }\n\n if (ctx.input)\n Object.defineProperty(r, 'value', this.valueHandle(ctx));\n if (this.refreshControl(ctx)) this.cycleLoad = true;\n return ctx;\n });\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || (val => val === control.value);\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n const hideLst = [];\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n hideLst[valid ? 'push' : 'unshift'](() => {\n this.api.hidden(!valid, rule);\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n hideLst.length && this.vm.$nextTick(() => {\n hideLst.forEach(v => v());\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n this.deferSyncValue(() => {\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n this.vm.$emit('reloading', this.api);\n });\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) $set(rule, k, def[k]);\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value === null ? undefined : value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, this.options.appendValue ? Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {}) : {}));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n this.subForm[ctx.id] = subForm;\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value === null ? undefined : value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return this.render(children, ctx);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'component', 'cache'];\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule).filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o);\n this.$render.initOrgChildren();\n }\n flag && this.loadChildren(n, ctx);\n this.vm.$emit('update', this.api);\n });\n }\n this.$render.clearCache(ctx);\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n if (input && !hasProperty(this.fieldCtx, field)) {\n $del(this.form, field);\n }\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\n\nexport default function useLifecycle(Handler) {\n extend(Handler.prototype, {\n mounted() {\n const _mounted = () => {\n this.isMounted = true;\n this.lifecycle('mounted');\n }\n if (this.pageEnd) {\n _mounted();\n } else {\n this.bus.$once('page-end', _mounted);\n }\n },\n lifecycle(name) {\n const fn = this.options[name];\n is.Function(fn) && invoke(() => fn(this.api));\n this.vm.$emit(name, this.api);\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n const prop = ps[k];\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n let effect = {};\n Object.keys(ctx.rule.effect || {}).forEach(k => {\n effect[k] = () => ctx.rule.effect[k];\n })\n Object.keys(ctx.rule).forEach(k => {\n if (k[0] === '$') {\n effect[k.substr(1)] = () => ctx.rule[k];\n }\n })\n Object.keys(effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(effect[k], (n) => {\n this.effect(ctx, 'watch', {[k]: n});\n }, {deep: true}));\n });\n },\n ruleEffect(rule, event, append) {\n this.emitEffect({\n rule,\n input: !!rule.field,\n type: this.getType(rule.type)\n }, event, append);\n },\n effect(ctx, event, custom) {\n this.emitEffect({\n rule: ctx.rule,\n input: ctx.input,\n type: ctx.trueType,\n ctx,\n custom\n }, event);\n },\n getEffect(rule, name) {\n if (hasProperty(rule, '$' + name)) {\n return rule['$' + name];\n }\n if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (Object.keys(rule).reduce((i, k) => {\n if (k[0] === '$') {\n i[k.substr(1)] = rule[k];\n }\n return i;\n }, {...rule.effect || {}}));\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeProps([prop], data.getProp());\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) return unique(c.filter(v => v !== '*'));\n else if (is.String(c)) return [c];\n else return false;\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\n\n\nexport default function Handler(fc) {\n extend(this, {\n fc,\n vm: fc.vm,\n watching: false,\n loading: false,\n reloading: false,\n noWatchFn: null,\n deferSyncFn: null,\n isMounted: false,\n formData: {},\n subForm: {},\n form: {},\n appendData: {},\n providers: {},\n cycleLoad: null,\n loadedId: 1,\n nextTick: null,\n changeStatus: false,\n pageEnd: true,\n nextReload: () => {\n this.lifecycle('reload');\n }\n });\n\n funcProxy(this, {\n options() {\n return fc.options;\n },\n bus() {\n return fc.bus;\n },\n })\n\n this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApi(Api(this), this);\n}\n\nextend(Handler.prototype, {\n initData(rules) {\n extend(this, {\n ctxs: {},\n fieldCtx: {},\n nameCtx: {},\n sort: [],\n rules,\n });\n },\n init() {\n this.appendData = {...this.fc.options.formData || {}, ...this.vm.value || {}, ...this.appendData};\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.vm.$set(this.vm, 'formData', this.formData);\n },\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nfunction getError(action, option, xhr) {\n const msg = `fail to ${action} ${xhr.status}'`;\n const err = new Error(msg);\n err.status = xhr.status;\n err.url = action;\n return err;\n}\n\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function fetch(option) {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n\n const xhr = new XMLHttpRequest();\n const action = option.action;\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr), getBody(xhr));\n }\n\n option.onSuccess(getBody(xhr));\n };\n\n xhr.open(option.method || 'get', action, true);\n\n let formData;\n if (option.data) {\n if ((option.dataType || '').toLowerCase() !== 'json') {\n formData = new FormData();\n Object.keys(option.data).map(key => {\n formData.append(key, option.data[key]);\n });\n } else {\n formData = JSON.stringify(option.data);\n xhr.setRequestHeader('content-type', 'application/json');\n }\n }\n\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const headers = option.headers || {};\n\n Object.keys(headers).forEach(item => {\n if (headers[item] !== null) {\n xhr.setRequestHeader(item, headers[item]);\n }\n });\n xhr.send(formData);\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n return this.makeComponent(tag, data, children);\n },\n makeComponent(type, data, children) {\n let Node = this.$h(type, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","import mergeProps from '@form-create/utils/lib/mergeprops';\nimport unique from '@form-create/utils/lib/unique';\nimport extend from '@form-create/utils/lib/extend';\n\nexport function createManager(proto) {\n class CustomManager extends Manager {\n }\n\n Object.assign(CustomManager.prototype, proto);\n return CustomManager;\n}\n\nexport default function Manager(handler) {\n extend(this, {\n $handle: handler,\n vm: handler.vm,\n options: {},\n ref: 'fcForm',\n mergeOptionsRule: {\n normal: ['form', 'row', 'info', 'submitBtn', 'resetBtn']\n }\n });\n this.updateKey();\n this.init();\n}\n\nextend(Manager.prototype, {\n __init() {\n this.$render = this.$handle.$render;\n this.$r = (...args) => this.$render.renderRule(...args);\n },\n updateKey() {\n this.key = unique();\n },\n //TODO interface\n init() {\n },\n update() {\n },\n beforeRender() {\n },\n form() {\n return this.vm.$refs[this.ref];\n },\n mergeOptions(args, opt) {\n return mergeProps(args.map(v => this.tidyOptions(v)), opt, this.mergeOptionsRule);\n },\n updateOptions(options) {\n this.options = this.mergeOptions([options], this.getDefaultOptions());\n this.update();\n },\n tidyOptions(options) {\n return options;\n },\n tidyRule(ctx) {\n },\n mergeProp(ctx) {\n },\n getDefaultOptions() {\n return {};\n },\n render(children) {\n }\n})\n","import {err} from '@form-create/utils/lib/console';\nimport fetch from './fetch';\nimport {invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\n\nconst $fetch = {\n name: 'fetch',\n loaded(...args) {\n run(...args);\n },\n watch(inject, rule, api) {\n if (!run(inject, rule, api)) {\n inject.clearProp();\n api.sync(rule);\n }\n }\n};\n\nconst $required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n } else {\n const validate = {\n required: true,\n validator(_, v, call) {\n is.empty(v) ? call(validate.message) : call();\n },\n ...val,\n };\n if (!validate.message) {\n validate.message = rule.title + '不能为空';\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n $required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\nfunction parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n}\n\nfunction run(inject, rule, api) {\n let option = inject.value;\n if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n return false;\n }\n if (!option.to) {\n option.to = 'options';\n }\n const onError = option.onError;\n\n const check = () => {\n if (!inject.getValue()) {\n inject.clearProp();\n api.sync(rule);\n return true;\n }\n }\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to, val);\n }\n }\n\n invoke(() => fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n set((option.parse || ((v) => v.data))(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }));\n\n return true;\n}\n\nexport default {\n fetch: $fetch,\n required: $required,\n};\n","import is from '@form-create/utils/lib/type';\n\nconst name = 'html';\n\nexport default {\n name,\n loadChildren: false,\n render(children, ctx) {\n if (!ctx.prop.domProps) ctx.prop.domProps = {};\n ctx.prop.domProps.innerHTML = children;\n return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);\n },\n renderChildren(ctx) {\n if (Array.isArray(ctx.rule.children)) {\n return ctx.rule.children.filter(v => is.String(v)).join('');\n }\n return '';\n }\n}\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $provider from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport html from '../parser/html';\n\nexport let _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;\n\nfunction _parseProp(name, id) {\n let prop;\n if (arguments.length === 2) {\n prop = arguments[1];\n id = prop[name];\n } else {\n prop = arguments[2];\n }\n return {id, prop};\n}\n\nfunction nameProp() {\n return _parseProp('name', ...arguments);\n}\n\nfunction _getEl(options) {\n if (!options || !options.el) return window.document.body;\n return is.Element(options.el)\n ? options.el\n : document.querySelector(options.el);\n}\n\nfunction mountForm(rules, option) {\n const $vm = new _vue({\n data() {\n //todo 外部无法修改\n return {rule: rules, option: option || {}};\n },\n render(h) {\n return h('FormCreate', {ref: 'fc', props: this.$data});\n }\n });\n $vm.$mount();\n return $vm;\n}\n\nfunction exportAttrs(attrs) {\n const key = attrs.key || [];\n const array = attrs.array || [];\n const normal = attrs.normal || [];\n keyAttrs.push(...key);\n arrayAttrs.push(...array);\n normalAttrs.push(...normal);\n\n appendProto([...key, ...array, ...normal]);\n}\n\nlet id = 1;\nconst instance = {};\n\n//todo 表单嵌套\nexport default function FormCreateFactory(config) {\n\n const components = {\n [fragment.name]: fragment\n };\n const parsers = {};\n const directives = {};\n const providers = {\n ...$provider\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val))\n return [...val];\n return val;\n }\n\n function directive() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) directives[data.id] = data.prop;\n }\n\n function register() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) providers[data.id] = {...data.prop, name: data.id};\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser() {\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = {...(base || BaseParser), ...parser};\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = toCase(id);\n if (['form-create', 'formcreate'].indexOf(name) > -1) {\n return $form();\n } else if (component === undefined) {\n return components[name];\n }\n } else {\n name = toCase(id.name);\n component = id;\n }\n if (!name || !component) return;\n components[name] = component;\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return _vue.extend($FormCreate(FormCreate));\n }\n\n function $vnode() {\n return _vue.extend(fragment);\n }\n\n //todo 检查回调函数作用域\n function use(fn, opt) {\n if (is.Function(fn.install)) fn.install(create, opt);\n else if (is.Function(fn)) fn(create, opt);\n return this;\n }\n\n function create(rules, _opt, parent) {\n let $vm = mountForm(rules, _opt || {});\n const _this = $vm.$refs.fc.formCreate;\n _this.$parent = parent;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n }\n\n function factory(inherit) {\n let _config = {...config};\n if (inherit) {\n _config.inherit = {\n components,\n parsers,\n directives,\n providers,\n maker,\n data\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n id: id++,\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n name: vm.$options.propsData.name,\n inFor: vm.$options.propsData.inFor,\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n options: options || {},\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(this.options);\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this.api());\n } else {\n instance[this.name] = this.api();\n }\n }\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions(this.options);\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions(this.options);\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this.api());\n instance[this.name].splice(idx, 1);\n } else {\n delete instance[this.name];\n }\n }\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions(options) {\n this.options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = deepCopy(opt);\n parent && ['page', 'onSubmit', 'mounted', 'reload', 'formData', 'el'].forEach((n) => {\n delete opt[n];\n });\n if (opt.global) {\n target.global = mergeGlobal(target.global, opt.global);\n delete opt.global;\n }\n this.$handle.$manager.mergeOptions([opt], target);\n return target;\n },\n updateOptions(options) {\n this.mergeOptions(this.options, options);\n this.$handle.$manager.updateOptions(this.options);\n },\n created() {\n this.$handle.init();\n this.vm.$emit('created', this.api());\n },\n api() {\n return this.$handle.api;\n },\n render() {\n return this.$handle.render();\n },\n mounted() {\n this.$handle.mounted();\n },\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n data,\n maker,\n component,\n directive,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n getApi,\n init(rules, _opt = {}) {\n let $vm = mountForm(rules, _opt), _this = $vm.$refs.fc.formCreate;\n return {\n mount($el) {\n if ($el && is.Element($el))\n _this.options.el = $el;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n },\n remove() {\n $vm.$el.parentNode && $vm.$el.parentNode.removeChild($vm.$el);\n },\n destroy() {\n this.remove();\n $vm.$destroy();\n },\n $f: _this.api()\n };\n }\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(Vue, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n if (Vue._installedFormCreate === true) return;\n Vue._installedFormCreate = true;\n _vue = Vue;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n Vue.prototype.$formCreate = $formCreate;\n Vue.component('FormCreate', $form());\n Vue.component('FcFragment', $vnode());\n }\n })\n }\n\n useAttr(create);\n useStatic(create);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n parser(html);\n\n if (config.install) create.use(config);\n\n if (config.inherit) {\n const inherit = config.inherit;\n inherit.components && extend(components, inherit.components);\n inherit.parsers && extend(parsers, inherit.parsers);\n inherit.directives && extend(directives, inherit.directives);\n inherit.providers && extend(providers, inherit.providers);\n inherit.maker && extend(maker, inherit.maker);\n inherit.data && extend(data, inherit.data);\n }\n\n return create;\n}\n","import is from '@form-create/utils/lib/type';\nimport {creatorFactory} from '@form-create/core/src/index';\n\nexport function timeStampToDate(timeStamp) {\n if (is.Date(timeStamp))\n return timeStamp;\n else {\n let date = new Date(timeStamp);\n return date.toString() === 'Invalid Date' ? timeStamp : date;\n }\n}\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'dateRange', 'datetime', 'datetimeRange', 'year', 'month'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type: type.toLowerCase()});\n return maker;\n }, {});\n }()),\n mergeProp(ctx) {\n let props = ctx.prop.props;\n if (props.startDate) {\n props.startDate = props.startDate && timeStampToDate(props.startDate);\n }\n },\n\n isRange(el) {\n return el.type.includes('range') || el.multiple;\n },\n\n _toValue(val, ctx) {\n const value = ctx.el.formatDate(val || ''), {separator} = ctx.el,\n isRange = this.isRange(ctx.el);\n if (!value)\n return isRange ? (ctx.el.multiple ? [] : ['', '']) : value;\n else if (isRange)\n return value.split(separator);\n else\n return value;\n },\n\n toValue(formValue, ctx) {\n const el = ctx.el;\n if (el) {\n this.el = el;\n return this._toValue(formValue, ctx);\n }\n return formValue;\n },\n\n toFormValue(value, ctx) {\n if (ctx.el) {\n const v = ctx.el.parseDate(value);\n return this.isRange(ctx.el) ? v : v[0];\n } else {\n let isArr = Array.isArray(value), props = ctx.prop.props, parseValue, type = props.type || 'date';\n if (['daterange', 'datetimerange'].indexOf(type) !== -1) {\n if (isArr) {\n parseValue = value.map((time) => !time ? '' : timeStampToDate(time));\n } else {\n parseValue = ['', '']\n }\n } else if ('date' === type && props.multiple === true) {\n parseValue = toString(value);\n } else {\n parseValue = isArr ? (value[0] || '') : value;\n parseValue = !parseValue ? '' : timeStampToDate(parseValue);\n }\n return parseValue;\n }\n },\n mounted(ctx) {\n ctx.rule.value = this.toValue(ctx.$handle.getFormData(ctx), ctx);\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return [];\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'input';\nexport default {\n name,\n maker: (function () {\n const maker = ['password', 'url', 'email', 'text', 'textarea'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type});\n return maker;\n }, {});\n\n maker.idate = creatorFactory(name, {type:'date'});\n return maker\n }()),\n mergeProp(ctx) {\n let {props} = ctx.prop;\n if (props.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';\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","export default {\n name: 'switch',\n mergeProp(ctx) {\n const prop = ctx.prop.props.slot || {};\n const slot = ctx.prop.scopedSlots || {};\n if (prop.open) slot.open = () => prop.open;\n if (prop.close) slot.close = () => prop.close;\n ctx.prop.scopedSlots = slot;\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 datePicker from './datePicker';\nimport hidden from './hidden';\nimport input from './input';\nimport slider from './slider';\nimport iswitch from './switch';\nimport row from './row';\n\nexport default [\n datePicker, hidden, input, slider, iswitch, row\n]\n","export default {\n button: 'iButton',\n icon: 'Icon',\n slider: 'Slider',\n rate: 'Rate',\n upload: 'fcUpload',\n cascader: 'Cascader',\n colorPicker: 'ColorPicker',\n timePicker: 'TimePicker',\n datePicker: 'DatePicker',\n 'switch': 'iSwitch',\n select: 'fcSelect',\n checkbox: 'fcCheckbox',\n radio: 'fcRadio',\n inputNumber: 'InputNumber',\n input: 'iInput',\n formItem: 'FormItem',\n form: 'iForm',\n frame: 'fcFrame',\n col: 'iCol',\n row: 'row',\n tree: 'fcTree',\n autoComplete: 'AutoComplete',\n group: 'fcGroup',\n subForm: 'fcSubForm',\n object: 'fcSubForm',\n}\n","export const iviewConfig = {\n resetBtnType: 'default',\n resetBtnIcon: 'md-refresh',\n infoIcon: 'ios-information-circle-outline',\n};\n\nexport function info() {\n return {\n type: 'poptip',\n trigger: 'hover',\n placement: 'top-start',\n wordWrap: true,\n icon: iviewConfig.infoIcon\n }\n}\n\nexport default function getConfig() {\n return {\n form: {\n inline: false,\n labelPosition: 'right',\n labelWidth: 125,\n showMessage: true,\n autocomplete: 'off',\n size: undefined,\n },\n row: {\n gutter: 0,\n },\n submitBtn: {\n type: 'primary',\n disabled: false,\n innerText: '提交',\n loading: false,\n show: true,\n click: undefined,\n },\n resetBtn: {\n type: iviewConfig.resetBtnType,\n disabled: false,\n icon: iviewConfig.resetBtnIcon,\n innerText: '重置',\n loading: false,\n show: false,\n click: undefined,\n },\n };\n}\n","import getConfig, {info, iviewConfig} from './config';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\n\nfunction tidy(props, name) {\n if (!hasProperty(props, name)) return;\n if (is.String(props[name])) {\n props[name] = {[name]: props[name], show: true};\n }\n}\n\nfunction isFalse(val) {\n return val === false;\n}\n\nfunction tidyBool(opt, name) {\n if (hasProperty(opt, name) && !is.Object(opt[name])) {\n opt[name] = {show: !!opt[name]};\n }\n}\n\nexport default {\n validate(call) {\n this.form().validate(call);\n },\n validateField(field, call) {\n this.form().validateField(field, call);\n },\n clearValidateState(ctx) {\n const fItem = this.vm.$refs[ctx.wrapRef];\n if (fItem) {\n fItem.validateMessage = '';\n fItem.validateState = '';\n }\n },\n tidyOptions(options) {\n ['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col'].forEach(name => {\n tidyBool(options, name);\n })\n return options;\n },\n tidyRule({prop}) {\n tidy(prop, 'title');\n tidy(prop, 'info');\n return prop;\n },\n mergeProp(ctx) {\n ctx.prop = mergeProps([{\n info: this.options.info || {},\n wrap: this.options.wrap || {},\n col: this.options.col || {},\n }, ctx.prop], {\n info: info(),\n title: {},\n col: {span: 24},\n wrap: {},\n }, {normal: ['title', 'info', 'col', 'wrap']});\n this.setSize(ctx.prop.props);\n },\n setSize(props) {\n if (!props.size && this.options.form.size) {\n props.size = this.options.form.size;\n }\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,\n ...(rule.wrap || {}),\n prop: ctx.id,\n rules: rule.validate,\n },\n class: rule.className,\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), [children, isTitle ? this.makeInfo(rule, uni) : null]);\n return (inline === true || isFalse(_col) || isFalse(col.show)) ? item : this.makeCol(rule, uni, [item]);\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false;\n const title = rule.title;\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni) {\n const titleProp = rule.title;\n const infoProp = rule.info;\n const children = [titleProp.title];\n\n const titleFn = (pop) => this.$r(mergeProps([titleProp, {\n props: titleProp,\n slot: titleProp.slot || (pop ? 'default' : 'label'),\n key: `${uni}tit`,\n type: titleProp.type || 'span',\n }]), children);\n\n if (!isFalse(infoProp.show) && (infoProp.info || infoProp.native) && !isFalse(infoProp.icon)) {\n const prop = {\n type: infoProp.type || 'poptip',\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: 'icon',\n props: {type: infoProp.icon === true ? iviewConfig.infoIcon : infoProp.icon, size: 16},\n style: 'margin-top: -1px',\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 this.setSize(resetBtn);\n return this.$r({\n type: 'button',\n props: resetBtn,\n style: {width: resetBtn.width, marginLeft: '15px'},\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 this.setSize(submitBtn);\n return this.$r({\n type: 'button',\n props: submitBtn,\n style: {width: submitBtn.width},\n on: {\n click: () => {\n const fApi = this.$handle.api;\n submitBtn.click\n ? submitBtn.click(fApi)\n : fApi.submit();\n }\n },\n key: `${this.key}b1`,\n }, [submitBtn.innerText]);\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst maker = {};\n\nconst names = ['upload', 'select', 'tree', 'checkbox', 'autoComplete', 'cascader', 'colorPicker', 'frame', 'inputNumber', 'radio', 'rate', 'timePicker', 'group'];\n\nfunction useAlias(maker) {\n names.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\n\nfunction useUpload(maker) {\n const name = 'upload';\n\n const types = {\n image: ['image', 0],\n file: ['file', 0],\n uploadFileOne: ['file', 1],\n uploadImageOne: ['image', 1],\n };\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory(name, m => m.props({uploadType: types[key][0], maxLength: types[key][1]}));\n return maker\n }, maker);\n\n maker.uploadImage = maker.image;\n maker.uploadFile = maker.file;\n}\n\nfunction useTree(maker) {\n const name = 'tree';\n\n const types = {'treeSelected': 'selected', 'treeChecked': 'checked'};\n\n Object.keys(types).reduce((maker, key) => {\n maker[key] = creatorFactory(name, {type:types[key]});\n return maker;\n }, maker);\n}\n\nfunction useTimePicker(maker) {\n const name = 'timePicker';\n\n maker.time = creatorFactory(name, {type:'time'})\n maker.timeRange = creatorFactory(name, {type:'timerange'})\n}\n\n\nfunction useSelect(maker) {\n const name = 'select';\n\n maker.selectMultiple = creatorFactory(name, {multiple:true})\n maker.selectOne = creatorFactory(name, {multiple:false})\n}\n\n\nfunction useFrame(maker) {\n const name = 'frame';\n\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(name, m => m.props({type: types[key][0], maxLength: types[key][1]}));\n return maker\n }, maker);\n\n\n maker.frameInput = maker.frameInputs;\n maker.frameFile = maker.frameFiles;\n maker.frameImage = maker.frameImages;\n}\n\nuseAlias(maker);\nuseUpload(maker);\nuseTree(maker);\nuseSelect(maker);\nuseFrame(maker);\nuseTimePicker(maker);\n\nexport default maker;\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '@form-create/core/src/frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nfunction tidyBtnProp(btn, def) {\n if (is.Boolean(btn))\n btn = {show: btn};\n else if (!is.Undef(btn) && !is.Object(btn)) btn = {show: def};\n return btn;\n}\n\nexport default function extendApi(api, h) {\n extend(api, {\n validate(callback) {\n let flag;\n const forms = api.children;\n let len = forms.length;\n const validate = () => {\n h.$manager.validate((...args) => {\n if (!args[0] || !flag) {\n flag = args;\n }\n callback && callback(...flag);\n });\n };\n\n const validFn = (args) => {\n setTimeout(() => {\n if (!args[0]) {\n if (!flag) {\n flag = args;\n }\n }\n if (!--len) {\n validate();\n }\n });\n };\n\n forms.forEach(form => {\n form.validate((...args) => validFn(args))\n })\n\n if (!len) {\n validate();\n }\n },\n validateField: (field, callback) => {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n const sub = h.subForm[ctx.id];\n let len = 0;\n let flag;\n const validate = () => {\n h.$manager.validateField(ctx.id, (...args) => {\n if (args[0]) {\n flag = args;\n } else if (flag) {\n return callback && callback('子表单验证未通过');\n }\n callback && callback(...flag || args);\n });\n };\n const validFn = (args) => {\n setTimeout(() => {\n if (!args[0]) {\n if (!flag) {\n flag = args;\n }\n }\n if (!--len) {\n validate();\n }\n });\n };\n sub && toArray(sub).forEach(form => {\n len++;\n form.validate((...args) => validFn(args))\n });\n\n if (!len) {\n validate();\n }\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach(field => {\n if (clearSub) this.clearSubValidateState(field);\n h.getCtxs(field).forEach(ctx => {\n h.$manager.clearValidateState(ctx);\n });\n });\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n const subForm = h.subForm[ctx.id];\n if (!subForm) return;\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.clearValidateState();\n })\n } else if (subForm) {\n subForm.clearValidateState();\n }\n });\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.submitBtnProps({show: !!isShow});\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.resetBtnProps({show: !!isShow});\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true);\n extend(btn, props);\n h.options.submitBtn = btn;\n api.refreshOptions();\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false);\n extend(btn, props);\n h.options.resetBtn = btn;\n api.refreshOptions();\n },\n submit(successFn, failFn) {\n api.validate((valid) => {\n if (valid) {\n let formData = api.formData();\n if (is.Function(successFn))\n invoke(() => successFn(formData, this));\n else {\n is.Function(h.options.onSubmit) && invoke(() => h.options.onSubmit(formData, this));\n h.vm.$emit('submit', formData, this);\n }\n } else {\n is.Function(failFn) && invoke(() => failFn(this, ...arguments));\n }\n });\n },\n });\n\n return api;\n}\n","import components from '../components';\nimport parsers from '../parsers';\nimport alias from './alias';\nimport manager from './manager';\nimport FormCreateFactory from '@form-create/core/src/index';\nimport makers from './maker';\nimport '../style/index.css';\nimport extendApi from './api';\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias);\n\n components.forEach(component => {\n FormCreate.component(component.name, component);\n });\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser);\n });\n\n Object.keys(makers).forEach(name => {\n FormCreate.maker[name] = makers[name];\n });\n}\n\nexport default function ivuFormCreate() {\n return FormCreateFactory({\n ui: `${process.env.UI}`,\n version: `${process.env.VERSION}`,\n manager,\n install,\n extendApi,\n attrs: {\n normal: ['col', 'wrap'],\n array: ['className'],\n key: ['title', 'info'],\n }\n });\n}\n","import ivuFormCreate from './core/index';\n\nconst FormCreate = ivuFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreate = FormCreate;\n if (window.Vue) {\n FormCreate.install(window.Vue);\n }\n}\n\nconst maker = FormCreate.maker;\n\nexport {maker}\n\nexport default FormCreate;\n"],"names":["_extends","Object","assign","a","b","c","arguments","length","d","prototype","hasOwnProperty","call","apply","this","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","e","concat","f","g","h","i","mergeFn","getSlot","slots","exclude","keys","lst","name","push","NAME","props","formCreateInject","type","required","value","watch","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","_this","option","created","render","prop","index","$slots","toArray","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","createFrame","config","String","field","helper","Boolean","disabled","src","icon","fileUpIcon","width","Number","height","maxLength","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","showModel","makeInput","toString","readonly","clearable","makeGroup","children","makeBtn","makeItem","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","_this2","handleClick","_this3","handleRemove","makeFiles","_this4","fileIcon","size","makeImages","_this5","_this6","splice","frameLoad","iframe","api","_this7","set","get","fn","$on","onClose","console","log","makeFooter","$props","node","_this8","$nextTick","_this9","$refs","frame","contentWindow","mounted","closeModal","v2","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","slot","slotName","treeData","setStatus","checked","$forceUpdate","_data","$set","id","list","on","parseFile","file","url","getFileName","split","pop","createUpload","uploadType","uploadList","cacheFiles","showUploadList","defaultFileList","upload","every","status","o","isDisabled","makeProgress","percent","percentage","hideInfo","$scopedSlots","vm","showProgress","makeUpload","isShow","display","imgUpIcon","files","handleCancel","$watch","target","Vue","$del","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","extend","createGroup","rules","expand","button","max","min","defaultValue","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","item","$f","formData","deferSyncValue","setValue","once","expandRule","total","addRule","removeRule","_value","cache","JSON","stringify","input","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","removeIcon","makeIcon","emitEvent","args","$form","Type","group","checkbox","radio","select","tree","subForm","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","extendOption","inFor","destroyed","validate","renderRule","ctxInject","updateValue","isMore","formCreate","_refresh","_renderRule","_updateValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","fapi","rmSubForm","sub","getSubForm","idx","addSubForm","immediate","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","format","msg","tip","warn","err","error","logError","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","eval","parseFn","trim","flag","replace","__inject","parseJson","json","parse","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","baseRule","hidden","creatorFactory","init","maker","Creator","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","getFieldCtx","appendValue","appendData","getValue","ctxs","fieldCtx","removeField","getCtx","rm","destroy","$el","parentNode","removeChild","$destroy","append","after","child","sort","root","prepend","state","hiddenStatus","displayStatus","all","component","nameCtx","bind","updateOptions","fc","onSubmit","sync","deleted","clearCacheAll","refreshOptions","$manager","hideForm","hide","changeStatus","clearChangeStatus","updateRule","updateRules","mergeRules","setEffect","attr","substr","effect","updateValidate","updateValidates","validates","refreshValidate","resetFields","method","el","trigger","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","toLocaleLowerCase","uniqueId","Math","random","Date","now","deepSet","to","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","parseSide","side","renderSides","temp","prefix","suffix","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","preview","makeWrap","custom","mergeProp","onMounted","getFormData","callback","expression","__rule__","isRm","rmCtx","defaultRender","vNode","makeComponent","alias","aliasMap","_this10","handle","CreateNode","useInject","Handler","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","watching","loading","unshift","EVENT","usePage","page","first","limit","getLimit","parseInt","pageEnd","pageLoad","pageFn","loadRule","ceil","clearNextTick","clearTimeout","bindNextTick","setTimeout","loadedId","RuleContext","wrapRef","linkOn","ctrlRule","payload","updateType","updateKey","useLoader","parseRule","_rule","fullRule","loadFn","loadCtrl","control","ctrl","syncProp","pre","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","check","isCtrl","bindParser","setCtx","_preIndex","preIndex","r","updated","refreshUpdate","defineProperty","valueHandle","refreshControl","useCtrl","controls","getCtrl","handleFn","findCtrl","isHidden","hideLst","reverse","ruleCon","ctrlCtx","_reloadRule","initData","reloading","nextReload","useInput","toValue","formValue","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","toEmpty","toFormValue","deferSyncFn","strFn","refreshRule","appendLink","link","effectData","clearEffectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","BaseParser","noneKey","useContext","getNameCtx","setIdCtx","rmIdCtx","isMounted","getParser","parsers","noWatchFn","rmSub","watchEffect","useLifecycle","_mounted","lifecycle","useEffect","useProvider","ps","providers","_c","getComponent","onEffect","provider","used","_used","emitEffect","getEffect","p","getProp","clearProp","arr","components","manager","extendApi","getError","action","xhr","getBody","text","responseText","response","fetch","XMLHttpRequest","onerror","onError","onload","onSuccess","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","__init","parseProp","domProps","innerHTML","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","$fetch","loaded","run","$required","load","parseVal","validator","_","message","parseOpt","body","join","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","instance","FormCreateFactory","fragment","directives","$provider","globalConfig","getApi","directive","register","componentAlias","base","formCreateParser","$vnode","install","_opt","inherit","_config","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","html","timeStampToDate","timeStamp","date","startDate","isRange","includes","multiple","_toValue","formatDate","separator","parseDate","parseValue","time","idate","autosize","minRows","rows","sliderRange","range","parseFloat","scopedSlots","col","span","row","datePicker","slider","iswitch","rate","cascader","colorPicker","timePicker","inputNumber","formItem","autoComplete","object","iviewConfig","resetBtnType","resetBtnIcon","infoIcon","info","placement","wordWrap","getConfig","inline","labelPosition","labelWidth","showMessage","autocomplete","gutter","innerText","show","click","tidy","isFalse","tidyBool","validateField","clearValidateState","fItem","validateMessage","validateState","wrap","setSize","submit","preventDefault","className","makeFormBtn","makeRow","uni","isTitle","_col","makeInfo","makeCol","titleProp","infoProp","align","makeSubmitBtn","makeResetBtn","marginLeft","fApi","names","useAlias","auto","number","color","useUpload","types","image","uploadFileOne","uploadImageOne","m","uploadImage","uploadFile","useTree","useTimePicker","timeRange","useSelect","selectMultiple","selectOne","useFrame","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","frameInput","frameFile","frameImage","tidyBtnProp","btn","forms","validFn","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","ivuFormCreate","process"],"mappings":"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"}
|