@form-create/view-design 2.5.16 → 2.5.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form-create.js +60 -43
- package/dist/form-create.min.js +3 -3
- package/dist/form-create.min.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-create.min.js","sources":["../../../node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","../../utils/lib/slot.js","../../../components/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","../../../components/iview/group/src/component.jsx","../../../components/iview/group/src/index.js","../../../components/common/subform/src/component.jsx","../../iview/src/components/index.js","../../utils/lib/modify.js","../../utils/lib/extend.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/console.js","../../utils/lib/deepextend.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../core/src/render/cache.js","../../utils/lib/tocase.js","../../core/src/render/render.js","../../core/src/render/index.js","../../core/src/handler/inject.js","../../core/src/handler/page.js","../../core/src/handler/render.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/frame/index.js","../../iview/src/parsers/datePicker.js","../../iview/src/parsers/hidden.js","../../iview/src/parsers/input.js","../../iview/src/parsers/slider.js","../../iview/src/parsers/switch.js","../../iview/src/parsers/row.js","../../iview/src/parsers/index.js","../../iview/src/core/alias.js","../../iview/src/core/config.js","../../iview/src/core/manager.js","../../iview/src/core/maker.js","../../iview/src/core/api.js","../../iview/src/core/index.js","../../iview/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: [Number, String],\n default: 370\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 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 alt=\"example\" 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};\n\n['Date', 'Object', 'Function', 'String', 'Boolean', 'Array', 'Number'].forEach(t => {\n is[t] = function (arg) {\n return is.type(arg, t);\n }\n})\n\nexport function hasProperty(rule, k) {\n return ({}).hasOwnProperty.call(rule, k)\n}\n\nexport default is;\n","import is from '@form-create/utils/lib/type';\n\nconst NAME = 'fcSelect';\nexport default {\n name: NAME,\n functional: true,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n },\n render(h, ctx) {\n const options = ctx.props.formCreateInject.options;\n return <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 {hasProperty} from '@form-create/utils/lib/type';\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 disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n fontSize: {\n type: Number,\n default: 28\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n if (this.rules) {\n return this.rules;\n }\n return [];\n }\n },\n watch: {\n disabled(n) {\n if (this.syncDisabled) {\n const lst = this.cacheRule;\n Object.keys(lst).forEach(k => {\n lst[k].$f.disabled(n);\n })\n }\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n) {\n n = n || [];\n let keys = Object.keys(this.cacheRule), total = keys.length, len = total - n.length;\n if (len < 0) {\n for (let i = len; i < 0; i++) {\n this.addRule(n.length + i);\n }\n for (let i = 0; i < total; i++) {\n this.setValue(keys[i], n[i]);\n }\n } else {\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n this.removeRule(keys[total - i - 1]);\n }\n this.subForm();\n }\n n.forEach((val, i) => {\n this.setValue(keys[i], n[i]);\n });\n }\n }\n },\n methods: {\n _value(v) {\n return (v && hasProperty(v, this.field)) ? v[this.field] : v;\n },\n cache(k, val) {\n this.cacheValue[k] = JSON.stringify(val);\n },\n input(value) {\n this.$emit('input', value);\n this.$emit('change', value);\n },\n formData(key, formData) {\n const cacheRule = this.cacheRule;\n const keys = Object.keys(cacheRule);\n if (keys.filter(k => cacheRule[k].$f).length !== keys.length) {\n return;\n }\n const value = keys.map(k => {\n const data = key === k ? formData : {...this.cacheRule[k].$f.form};\n const value = this.field ? data[this.field] || null : data;\n this.cache(k, value);\n return value;\n });\n this.input(value);\n },\n setValue(key, value) {\n const field = this.field, $f = this.cacheRule[key].$f;\n if (field) {\n value = {[field]: this._value(value)};\n }\n if (this.cacheValue[key] === JSON.stringify(field ? value[field] : value)) {\n return;\n }\n this.cache(key, value);\n $f.coverValue(value || {});\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.formRule);\n const options = this.options ? {...this.options} : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = this.field ? ({[this.field]: this._value(this.value[i])}) : (this.value[i] || {});\n this.$set(this.cacheRule, ++this.len, {rule, options});\n if (emit) {\n this.$nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));\n }\n },\n add$f(i, key, $f) {\n this.cacheRule[key].$f = $f;\n this.subForm();\n this.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n subForm() {\n this.formCreateInject.subForm(Object.keys(this.cacheRule).map(k => this.cacheRule[k].$f));\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n this.subForm();\n this.value.splice(index, 1);\n this.input(this.value);\n },\n addIcon(key) {\n return <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}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n rule={rule}\n option={options} extendOption={true}/></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.subForm();\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n subForm() {\n this.formCreateInject.subForm(this.cacheRule.$f);\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n rule={rule}\n option={options} extendOption={true}/>\n }\n}\n","import checkbox from '@form-create/component-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 Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'FormCreate';\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n value: Object,\n api: Object,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: ''\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n) === this.updateValue) return;\n this.$f.setValue(n);\n },\n deep: true\n },\n option: {\n handler(n) {\n this.formCreate.initOptions(n);\n this.$f.refresh();\n },\n deep: true\n },\n rule(n) {\n if (n.length === this.renderRule.length && n.every(v => this.renderRule.indexOf(v) > -1)) return;\n this.formCreate.$handle.reloadRule(n);\n this._renderRule();\n }\n },\n beforeCreate() {\n const {rule, option} = this.$options.propsData;\n this.formCreate = new FormCreate(this, rule, option);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (clone.__json !== undefined) {\n origin[key].__json = clone.__json;\n }\n if (clone.__origin !== undefined) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (hasProperty(val, '__json')) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return eval('(' + FUNCTION + '(){return ' + fn + ' })()')\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import 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","export default function toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n","export default function toLine(name) {\n let line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();\n if (line.indexOf('-') === 0)\n line = line.substr(1);\n return line;\n}\n","let id = 0;\n\nexport default function uniqueId() {\n return Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}${++id}`).toString(36);\n}\n","export default function deepSet(data, idx, val) {\n let _data = data, to;\n (idx || '').split('.').forEach(v => {\n if (to) {\n if (!_data[to] || typeof _data[to] != 'object') {\n _data[to] = {}\n }\n _data = _data[to];\n }\n to = v;\n })\n _data[to] = val;\n return _data;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, copy(h.appendData));\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n const flag = hasProperty(formData, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? formData[key] : undefined;\n })\n });\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n h.refreshControl(ctx);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off', 'set'].forEach(n => {\n api[n] = function (...args) {\n h.vm[`$${n}`](...args);\n }\n });\n\n api.changeValue = api.changeField = api.setValue;\n\n return api;\n}\n","import extend from '@form-create/utils/lib/extend';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n cache.use = true;\n return cache.vnode;\n }\n })\n\n}\n","export default function toCase(str) {\n const to = str.replace(/(-[a-z])/g, function (v) {\n return v.replace('-', '').toLocaleUpperCase();\n });\n\n return lower(to);\n}\n\nexport function lower(str) {\n return str.replace(str[0], str[0].toLowerCase());\n}\n","import extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {_vue as Vue} from '../frame';\nimport {tip} from '@form-create/utils/lib/console';\nimport {invoke, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {$set, deepSet, toLine} from '@form-create/utils';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.tempList = {};\n this.clearOrgChildren();\n },\n initOrgChildren() {\n const ctxs = this.$handle.ctxs;\n this.orgChildren = Object.keys(ctxs).reduce((initial, id) => {\n if (ctxs[id].parser.loadChildren !== false) {\n const children = ctxs[id].rule.children;\n initial[id] = is.trueArray(children) ? [...children] : [];\n }\n\n return initial;\n }, {});\n\n },\n clearOrgChildren() {\n this.orgChildren = {};\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side) {\n return is.Object(side) ? mergeRule({}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix)), vn, this.renderRule(this.parseSide(prop.suffix))];\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n const preview = this.options.preview || false;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = true;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.props.formCreateInject = this.injectProp(ctx);\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = 'type-' + toLine(ctx.type);\n if (this.vm.$scopedSlots[slot]) {\n vn = this.vm.$scopedSlots[slot]({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n field: ctx.field,\n rule: ctx.rule,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: this.options.preview || false,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx, custom) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx, custom);\n ctx.parser.mergeProp(ctx, custom);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n 'hook:mounted': () => {\n this.onMounted(ctx);\n },\n 'fc.sub-form': (subForm) => {\n this.$handle.addSubForm(ctx, subForm);\n }\n },\n }\n ]\n\n if (!custom && ctx.input) {\n props.push({\n model: {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n },\n })\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nexport default function Render(handle) {\n extend(this, {\n $handle: handle,\n fc: handle.fc,\n vm: handle.vm,\n $manager: handle.$manager,\n vNode: new handle.fc.CreateNode(handle.vm),\n });\n\n funcProxy(this, {\n options() {\n return handle.options;\n },\n sort() {\n return handle.sort;\n }\n })\n\n this.initCache();\n this.initRender();\n}\n\nuseCache(Render);\nuseRender(Render)\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport toLine from '@form-create/utils/lib/toline';\nimport {parseFn} from '../frame/util';\n\n\nexport default function useInject(Handler) {\n extend(Handler.prototype, {\n parseInjectEvent(rule, on) {\n const inject = rule.inject || this.options.injectEvent;\n return this.parseEventLst(rule, on, inject);\n },\n parseEventLst(rule, data, inject, deep) {\n Object.keys(data).forEach(k => {\n const fn = this.parseEvent(rule, data[k], inject, deep);\n if (fn) {\n data[k] = fn;\n }\n });\n return data;\n },\n parseEvent(rule, fn, inject, deep) {\n if (is.Function(fn) && ((inject !== false && !is.Undef(inject)) || fn.__inject)) {\n return this.inject(rule, fn, inject)\n } else if (!deep && Array.isArray(fn) && fn[0] && (is.String(fn[0]) || is.Function(fn[0]))) {\n return this.parseEventLst(rule, fn, inject, true);\n } else if (is.String(fn)) {\n const val = parseFn(fn);\n if (val && fn !== val) {\n return val.__inject ? this.parseEvent(rule, val, inject, true) : val;\n }\n }\n },\n parseEmit(ctx, on) {\n let event = {}, rule = ctx.rule, {emitPrefix, field, name, inject} = rule;\n let emit = rule[on ? 'emit' : 'nativeEmit'] || [];\n if (is.trueArray(emit)) {\n let emitKey = emitPrefix || field || name;\n if (emitKey) {\n if (!on) emitKey = `native-${emitKey}`;\n emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n }\n const fieldKey = toLine(`${emitKey}-${eventName}`);\n const fn = (...arg) => {\n this.vm.$emit(fieldKey, ...arg);\n this.vm.$emit('emit-event', fieldKey, ...arg);\n };\n fn.__emit = true;\n\n if (!eventInject && inject === false) {\n event[eventName] = fn;\n } else {\n let _inject = eventInject || inject || this.options.injectEvent;\n event[eventName] = is.Undef(_inject) ? fn : this.inject(rule, fn, _inject);\n }\n });\n }\n\n }\n ctx.computed[on ? 'on' : 'nativeOn'] = event;\n return event;\n },\n getInjectData(self, inject) {\n const {option, rule} = this.vm.$options.propsData;\n return {\n api: this.api,\n $f: this.api,\n rule,\n self: self.__origin__,\n option,\n inject\n };\n },\n inject(self, _fn, inject) {\n if (_fn.__origin) {\n if (this.watching && !this.loading)\n return _fn;\n _fn = _fn.__origin;\n }\n\n const h = this;\n\n const fn = function (...args) {\n const data = h.getInjectData(self, inject);\n data.args = [...args];\n args.unshift(data);\n return _fn.apply(this, args);\n };\n fn.__origin = _fn;\n fn.__json = _fn.__json;\n return fn;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\n\nconst EVENT = ['hook:updated', 'hook:mounted'];\n\nexport default function usePage(Handler) {\n extend(Handler.prototype, {\n usePage() {\n const page = this.options.page;\n if (!page) return;\n let first = 25;\n let limit = getLimit(this.rules);\n if (is.Object(page)) {\n if (page.first) first = parseInt(page.first, 10) || first;\n if (page.limit) limit = parseInt(page.limit, 10) || limit;\n }\n extend(this, {\n first,\n limit,\n pageEnd: this.rules.length <= first,\n })\n\n this.bus.$on('page-end', () => this.vm.$emit('page-end', this.api));\n this.pageLoad();\n },\n pageLoad() {\n const pageFn = () => {\n if (this.pageEnd) {\n this.vm.$off(EVENT, pageFn);\n this.bus.$emit('page-end');\n } else {\n this.first += this.limit;\n this.pageEnd = this.rules.length <= this.first;\n this.loadRule();\n this.refresh();\n }\n }\n this.vm.$on(EVENT, pageFn);\n },\n })\n}\n\n\nfunction getLimit(rules) {\n return rules.length < 31 ? 31 : Math.ceil(rules.length / 3);\n}\n","import extend from '@form-create/utils/lib/extend';\n\n\nexport default function useRender(Handler) {\n extend(Handler.prototype, {\n clearNextTick() {\n this.nextTick && clearTimeout(this.nextTick);\n this.nextTick = null;\n },\n bindNextTick(fn) {\n this.clearNextTick();\n this.nextTick = setTimeout(() => {\n fn()\n this.nextTick = null;\n }, 10);\n },\n render() {\n // console.warn('%c render', 'color:green');\n ++this.loadedId;\n\n if (this.vm.unique > 0)\n return this.$render.render();\n else {\n this.vm.unique = 1;\n return [];\n }\n },\n });\n}\n","import unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {enumerable} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(ctx, true)\n });\n}\n\nexport default function RuleContext(handle, rule) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n defaultValue: rule.field ? deepCopy(rule.value) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n delete this.payload[name]\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeProps([rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n check(handle) {\n return this.vm === handle.vm\n },\n unwatch() {\n this.watch.forEach(un => un());\n this.watch = [];\n },\n unlink() {\n this.linkOn.forEach(un => un());\n this.linkOn = [];\n },\n link() {\n this.unlink();\n this.$handle.appendLink(this);\n },\n watchTo() {\n this.$handle.watchCtx(this);\n },\n delete() {\n const undef = void 0;\n this.unwatch();\n this.unlink();\n this.rmCtrl();\n extend(this, {\n deleted: true,\n prop: {...this.rule},\n computed: {},\n el: undef,\n $handle: undef,\n $render: undef,\n $api: undef,\n vm: undef,\n vNode: undef,\n parent: null,\n cacheConfig: null,\n })\n },\n rmCtrl() {\n this.ctrlRule.forEach(ctrl => ctrl.__fc__ && ctrl.__fc__.rm());\n this.ctrlRule = [];\n },\n rm() {\n const _rm = () => {\n let index = this.root.indexOf(this.origin);\n if (index > -1) {\n this.root.splice(index, 1);\n this.$handle && this.$handle.refresh();\n }\n }\n if (this.deleted) {\n _rm();\n return;\n }\n this.$handle.noWatch(() => {\n this.$handle.deferSyncValue(() => {\n this.rmCtrl();\n _rm();\n this.$handle.rmCtx(this);\n extend(this, {\n root: []\n });\n }, this.input);\n });\n },\n update(handle, init) {\n extend(this, {\n deleted: false,\n $handle: handle,\n $render: handle.$render,\n $api: handle.api,\n vm: handle.vm,\n trueType: handle.getType(this.originType),\n vNode: handle.$render.vNode,\n updated: false,\n });\n !init && this.unwatch();\n this.watchTo();\n this.link();\n }\n})\n","import extend from '@form-create/utils/lib/extend';\nimport {byCtx, copyRule, enumerable, getRule, invoke, parseFn} from '../frame/util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {err} from '@form-create/utils/lib/console';\nimport {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && (is.String(_rule) || is.Undef(_rule))) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (!is.Object(_rule) || !getRule(_rule).type)\n return err('未定义生成规则的 type 字段', _rule);\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n if (isInit) {\n ctx = _rule.__fc__;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n ctx = new RuleContext(this, this.parseRule(_rule));\n this.bindParser(ctx);\n } else {\n if (ctx.originType !== ctx.rule.type) {\n ctx.updateType();\n this.bindParser(ctx);\n }\n this.appendValue(ctx.rule);\n }\n [false, true].forEach(b => this.parseEmit(ctx, b));\n this.syncProp(ctx);\n ctx.parent = parent || null;\n ctx.root = rules;\n this.setCtx(ctx);\n\n !isCopy && !isInit && this.effect(ctx, 'load');\n\n ctx.parser.loadChildren === false || loadChildren(ctx.rule.children, ctx);\n\n if (!parent) {\n const _preIndex = preIndex(index);\n if (_preIndex > -1 || !index) {\n this.sort.splice(_preIndex + 1, 0, ctx.id);\n } else {\n this.sort.push(ctx.id);\n }\n }\n\n const r = ctx.rule;\n if (!ctx.updated) {\n ctx.updated = true;\n if (is.Function(r.update)) {\n this.bus.$once('load-end', () => {\n this.refreshUpdate(ctx, r.value);\n });\n }\n this.effect(ctx, 'loaded');\n }\n\n if (ctx.input)\n Object.defineProperty(r, 'value', this.valueHandle(ctx));\n if (this.refreshControl(ctx)) this.cycleLoad = true;\n return ctx;\n });\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || (val => val === control.value);\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n this.vm.$nextTick(() => {\n this.api.hidden(!valid, rule);\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) rule[k] = def[k];\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag);\n this.effect(ctx, 'value');\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {})));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n if (ctx.input) {\n this.subForm[ctx.id] = subForm;\n }\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n const none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];\n Object.keys(ctx.rule).filter(k => none.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o);\n this.$render.initOrgChildren();\n }\n flag && this.loadChildren(n, ctx);\n this.vm.$emit('update', this.api);\n });\n }\n this.$render.clearCache(ctx);\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\n\nexport default function useLifecycle(Handler) {\n extend(Handler.prototype, {\n mounted() {\n const _mounted = () => {\n this.isMounted = true;\n this.lifecycle('mounted');\n }\n if (this.pageEnd) {\n _mounted();\n } else {\n this.bus.$once('page-end', _mounted);\n }\n },\n lifecycle(name) {\n const fn = this.options[name];\n is.Function(fn) && invoke(() => fn(this.api));\n this.vm.$emit(name, this.api);\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n const prop = ps[k];\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule.effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(() => ctx.rule.effect[k], (n) => {\n this.effect(ctx, 'watch', {[k]: n});\n }, {deep: true}));\n });\n },\n ruleEffect(rule, event, append) {\n this.emitEffect({\n rule,\n input: !!rule.field,\n type: this.getType(rule.type)\n }, event, append);\n },\n effect(ctx, event, custom) {\n this.emitEffect({\n rule: ctx.rule,\n input: ctx.input,\n type: ctx.trueType,\n ctx,\n custom\n }, event);\n },\n getEffect(rule, name) {\n if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n else\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (rule.effect || {});\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeProps([prop], data.getProp());\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) return unique(c.filter(v => v !== '*'));\n else if (is.String(c)) return [c];\n else return false;\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\n\n\nexport default function Handler(fc) {\n extend(this, {\n fc,\n vm: fc.vm,\n watching: false,\n loading: false,\n reloading: false,\n noWatchFn: null,\n deferSyncFn: null,\n isMounted: false,\n formData: {},\n subForm: {},\n form: {},\n appendData: {},\n providers: {},\n cycleLoad: null,\n loadedId: 1,\n nextTick: null,\n changeStatus: false,\n pageEnd: true,\n nextReload: () => {\n this.lifecycle('reload');\n }\n });\n\n funcProxy(this, {\n options() {\n return fc.options;\n },\n bus() {\n return fc.bus;\n },\n })\n\n this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApi(Api(this), this);\n}\n\nextend(Handler.prototype, {\n initData(rules) {\n extend(this, {\n ctxs: {},\n fieldCtx: {},\n nameCtx: {},\n sort: [],\n rules,\n });\n },\n init() {\n this.appendData = {...this.fc.options.formData || {}, ...this.vm.value || {}, ...this.appendData};\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.vm.$set(this.vm, 'formData', this.formData);\n },\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nfunction getError(action, option, xhr) {\n const msg = `fail to ${action} ${xhr.status}'`;\n const err = new Error(msg);\n err.status = xhr.status;\n err.url = action;\n return err;\n}\n\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function fetch(option) {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n\n const xhr = new XMLHttpRequest();\n const action = option.action;\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr), getBody(xhr));\n }\n\n option.onSuccess(getBody(xhr));\n };\n\n xhr.open(option.method || 'get', action, true);\n\n let formData;\n if (option.data) {\n if ((option.dataType || '').toLowerCase() !== 'json') {\n formData = new FormData();\n Object.keys(option.data).map(key => {\n formData.append(key, option.data[key]);\n });\n } else {\n formData = JSON.stringify(option.data);\n xhr.setRequestHeader('content-type', 'application/json');\n }\n }\n\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const headers = option.headers || {};\n\n Object.keys(headers).forEach(item => {\n if (headers[item] !== null) {\n xhr.setRequestHeader(item, headers[item]);\n }\n });\n xhr.send(formData);\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n let Node = this.$h(tag, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","import mergeProps from '@form-create/utils/lib/mergeprops';\nimport unique from '@form-create/utils/lib/unique';\nimport extend from '@form-create/utils/lib/extend';\n\nexport function createManager(proto) {\n class CustomManager extends Manager {\n }\n\n Object.assign(CustomManager.prototype, proto);\n return CustomManager;\n}\n\nexport default function Manager(handler) {\n extend(this, {\n $handle: handler,\n vm: handler.vm,\n options: {},\n ref: 'fcForm',\n mergeOptionsRule: {\n normal: ['form', 'row', 'info', 'submitBtn', 'resetBtn']\n }\n });\n this.updateKey();\n this.init();\n}\n\nextend(Manager.prototype, {\n __init() {\n this.$render = this.$handle.$render;\n this.$r = (...args) => this.$render.renderRule(...args);\n },\n updateKey() {\n this.key = unique();\n },\n //TODO interface\n init() {\n },\n update() {\n },\n beforeRender() {\n },\n form() {\n return this.vm.$refs[this.ref];\n },\n mergeOptions(args, opt) {\n return mergeProps(args.map(v => this.tidyOptions(v)), opt, this.mergeOptionsRule);\n },\n updateOptions(options) {\n this.options = this.mergeOptions([options], this.getDefaultOptions());\n this.update();\n },\n tidyOptions(options) {\n return options;\n },\n tidyRule(ctx) {\n },\n mergeProp(ctx) {\n },\n getDefaultOptions() {\n return {};\n },\n render(children) {\n }\n})\n","import {err} from '@form-create/utils/lib/console';\nimport fetch from './fetch';\nimport {invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\n\nconst $fetch = {\n name: 'fetch',\n loaded(...args) {\n run(...args);\n },\n watch(inject, rule, api) {\n if (!run(inject, rule, api)) {\n inject.clearProp();\n api.sync(rule);\n }\n }\n};\n\nfunction parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n}\n\nfunction run(inject, rule, api) {\n let option = inject.value;\n if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n return false;\n }\n if (!option.to) {\n option.to = 'options';\n }\n const onError = option.onError;\n\n const check = () => {\n if (!inject.getValue()) {\n inject.clearProp();\n api.sync(rule);\n return true;\n }\n }\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to, val);\n }\n }\n\n invoke(() => fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n set((option.parse || ((v) => v.data))(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }));\n\n return true;\n}\n\nexport default $fetch;\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $fetch from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\nexport let _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;\n\nfunction _parseProp(name, id) {\n let prop;\n if (arguments.length === 2) {\n prop = arguments[1];\n id = prop[name];\n } else {\n prop = arguments[2];\n }\n return {id, prop};\n}\n\nfunction nameProp() {\n return _parseProp('name', ...arguments);\n}\n\nfunction _getEl(options) {\n if (!options || !options.el) return window.document.body;\n return is.Element(options.el)\n ? options.el\n : document.querySelector(options.el);\n}\n\nfunction mountForm(rules, option) {\n const $vm = new _vue({\n data() {\n //todo 外部无法修改\n return {rule: rules, option: option || {}};\n },\n render(h) {\n return h('FormCreate', {ref: 'fc', props: this.$data});\n }\n });\n $vm.$mount();\n return $vm;\n}\n\nfunction exportAttrs(attrs) {\n const key = attrs.key || [];\n const array = attrs.array || [];\n const normal = attrs.normal || [];\n keyAttrs.push(...key);\n arrayAttrs.push(...array);\n normalAttrs.push(...normal);\n\n appendProto([...key, ...array, ...normal]);\n}\n\n//todo 表单嵌套\nexport default function FormCreateFactory(config) {\n\n const components = {\n [fragment.name]: fragment\n };\n const parsers = {};\n const directives = {};\n const providers = {\n fetch: $fetch\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function directive() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) directives[data.id] = data.prop;\n }\n\n function register() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) providers[data.id] = {...data.prop, name: data.id};\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser() {\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = {...(base || BaseParser), ...parser};\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = toCase(id);\n if (['form-create', 'formcreate'].indexOf(name) > -1) {\n return $form();\n } else if (component === undefined) {\n return components[name];\n }\n } else {\n name = toCase(id.name);\n component = id;\n }\n if (!name || !component) return;\n components[name] = component;\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return _vue.extend($FormCreate(FormCreate));\n }\n\n function $vnode() {\n return _vue.extend(fragment);\n }\n\n //todo 检查回调函数作用域\n function use(fn, opt) {\n if (is.Function(fn.install)) fn.install(create, opt);\n else if (is.Function(fn)) fn(create, opt);\n return this;\n }\n\n function create(rules, _opt, parent) {\n let $vm = mountForm(rules, _opt || {});\n const _this = $vm.$refs.fc.formCreate;\n _this.$parent = parent;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n }\n\n function factory() {\n return FormCreateFactory(config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(options || {});\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions(this.options);\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions(this.options);\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions(options) {\n this.options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = deepCopy(opt);\n parent && ['page', 'onSubmit', 'mounted', 'reload', 'formData', 'el'].forEach((n) => {\n delete opt[n];\n });\n if (opt.global) {\n target.global = mergeGlobal(target.global, opt.global);\n delete opt.global;\n }\n this.$handle.$manager.mergeOptions([opt], target);\n return target;\n },\n updateOptions(options) {\n this.mergeOptions(this.options, options);\n this.$handle.$manager.updateOptions(this.options);\n },\n created() {\n this.$handle.init();\n this.vm.$emit('created', this.api());\n },\n api() {\n return this.$handle.api;\n },\n render() {\n return this.$handle.render();\n },\n mounted() {\n this.$handle.mounted();\n },\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n data,\n maker,\n component,\n directive,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n init(rules, _opt = {}) {\n let $vm = mountForm(rules, _opt), _this = $vm.$refs.fc.formCreate;\n return {\n mount($el) {\n if ($el && is.Element($el))\n _this.options.el = $el;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n },\n remove() {\n $vm.$el.parentNode && $vm.$el.parentNode.removeChild($vm.$el);\n },\n destroy() {\n this.remove();\n $vm.$destroy();\n },\n $f: _this.api()\n };\n }\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(Vue, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n if (Vue._installedFormCreate === true) return;\n Vue._installedFormCreate = true;\n _vue = Vue;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n Vue.prototype.$formCreate = $formCreate;\n Vue.component('FormCreate', $form());\n Vue.component('FcFragment', $vnode());\n }\n })\n }\n\n useAttr(create);\n useStatic(create);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n if (config.install) create.use(config);\n\n return create;\n}\n","import 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","_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","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","createGroup","rules","expand","button","max","min","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","$f","expandRule","total","addRule","setValue","removeRule","subForm","_value","cache","JSON","stringify","input","formData","form","coverValue","emit","copyRules","submitBtn","resetBtn","add$f","$delete","add","del","addIcon","delIcon","removeIcon","makeIcon","emitEvent","args","$form","Type","group","str","checkbox","radio","select","tree","target","Vue","$del","extend","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","extendOption","api","destroyed","validate","renderRule","ctxInject","updateValue","formCreate","_refresh","_renderRule","_updateValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","format","msg","getRule","tip","warn","err","error","logError","deepExtend","origin","mode","isArr","clone","nst","_clone","__json","__origin","__ctrl","deepCopy","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","eval","parseFn","trim","flag","replace","__inject","parseJson","json","parse","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","toLine","line","toLocaleLowerCase","substr","uniqueId","Math","random","Date","now","deepSet","idx","to","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","sub","getFieldCtx","appendData","getValue","deferSyncValue","ctxs","fieldCtx","removeField","getCtx","rm","destroy","$el","parentNode","removeChild","$destroy","append","after","child","sort","root","prepend","state","hiddenStatus","displayStatus","all","component","nameCtx","bind","updateOptions","fc","onSubmit","sync","deleted","clearCacheAll","refreshOptions","$manager","hideForm","hide","changeStatus","clearChangeStatus","updateRule","updateRules","mergeRules","updateValidate","updateValidates","validates","refreshValidate","resetFields","defaultValue","refreshControl","method","el","exec","trigger","getSubForm","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","parent","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","parseSide","side","renderSides","temp","prefix","suffix","preview","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","makeWrap","item","addSubForm","custom","mergeProp","onMounted","getFormData","callback","expression","__rule__","effect","isRm","rmCtx","defaultRender","vNode","alias","aliasMap","_this10","handle","CreateNode","useInject","Handler","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","_fn","watching","loading","unshift","EVENT","usePage","page","first","limit","getLimit","parseInt","pageEnd","pageLoad","pageFn","loadRule","ceil","clearNextTick","clearTimeout","bindNextTick","setTimeout","loadedId","RuleContext","wrapRef","linkOn","ctrlRule","payload","updateType","updateKey","useLoader","parseRule","_rule","fullRule","appendValue","loadFn","loadCtrl","control","ctrl","syncProp","pre","fapi","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","check","isCtrl","bindParser","setCtx","_preIndex","preIndex","r","updated","refreshUpdate","defineProperty","valueHandle","useCtrl","controls","getCtrl","handleFn","findCtrl","isHidden","reverse","ruleCon","ctrlCtx","_reloadRule","initData","reloading","nextReload","useInput","toValue","formValue","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","toEmpty","toFormValue","deferSyncFn","strFn","refreshRule","appendLink","link","effectData","clearEffectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","getType","BaseParser","useContext","getNameCtx","setIdCtx","rmIdCtx","isMounted","getParser","parsers","noWatchFn","rmSub","watchEffect","useLifecycle","_mounted","lifecycle","useEffect","useProvider","ps","providers","_c","getComponent","onEffect","provider","used","_used","emitEffect","getEffect","attr","p","getProp","clearProp","arr","components","manager","extendApi","getError","action","xhr","getBody","text","responseText","response","fetch","XMLHttpRequest","onerror","onError","onload","onSuccess","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","__init","parseProp","domProps","innerHTML","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","$fetch","loaded","run","parseOpt","body","message","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","FormCreateFactory","fragment","directives","globalConfig","directive","register","componentAlias","base","formCreateParser","$vnode","install","_opt","$parent","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","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","../../../components/iview/group/src/component.jsx","../../../components/iview/group/src/index.js","../../../components/common/subform/src/component.jsx","../../iview/src/components/index.js","../../utils/lib/modify.js","../../utils/lib/extend.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/console.js","../../utils/lib/deepextend.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../core/src/render/cache.js","../../utils/lib/tocase.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/render.js","../../core/src/render/index.js","../../core/src/handler/inject.js","../../core/src/handler/page.js","../../core/src/handler/render.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/frame/index.js","../../iview/src/parsers/datePicker.js","../../iview/src/parsers/hidden.js","../../iview/src/parsers/input.js","../../iview/src/parsers/slider.js","../../iview/src/parsers/switch.js","../../iview/src/parsers/row.js","../../iview/src/parsers/index.js","../../iview/src/core/alias.js","../../iview/src/core/config.js","../../iview/src/core/manager.js","../../iview/src/core/maker.js","../../iview/src/core/api.js","../../iview/src/core/index.js","../../iview/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: [Number, String],\n default: 370\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 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 alt=\"example\" 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};\n\n['Date', 'Object', 'Function', 'String', 'Boolean', 'Array', 'Number'].forEach(t => {\n is[t] = function (arg) {\n return is.type(arg, t);\n }\n})\n\nexport function hasProperty(rule, k) {\n return ({}).hasOwnProperty.call(rule, k)\n}\n\nexport default is;\n","import is from '@form-create/utils/lib/type';\n\nconst NAME = 'fcSelect';\nexport default {\n name: NAME,\n functional: true,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n },\n render(h, ctx) {\n const options = ctx.props.formCreateInject.options;\n return <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 {hasProperty} from '@form-create/utils/lib/type';\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 disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n fontSize: {\n type: Number,\n default: 28\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n if (this.rules) {\n return this.rules;\n }\n return [];\n }\n },\n watch: {\n disabled(n) {\n if (this.syncDisabled) {\n const lst = this.cacheRule;\n Object.keys(lst).forEach(k => {\n lst[k].$f.disabled(n);\n })\n }\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n) {\n n = n || [];\n let keys = Object.keys(this.cacheRule), total = keys.length, len = total - n.length;\n if (len < 0) {\n for (let i = len; i < 0; i++) {\n this.addRule(n.length + i);\n }\n for (let i = 0; i < total; i++) {\n this.setValue(keys[i], n[i]);\n }\n } else {\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n this.removeRule(keys[total - i - 1]);\n }\n this.subForm();\n }\n n.forEach((val, i) => {\n this.setValue(keys[i], n[i]);\n });\n }\n }\n },\n methods: {\n _value(v) {\n return (v && hasProperty(v, this.field)) ? v[this.field] : v;\n },\n cache(k, val) {\n this.cacheValue[k] = JSON.stringify(val);\n },\n input(value) {\n this.$emit('input', value);\n this.$emit('change', value);\n },\n formData(key, formData) {\n const cacheRule = this.cacheRule;\n const keys = Object.keys(cacheRule);\n if (keys.filter(k => cacheRule[k].$f).length !== keys.length) {\n return;\n }\n const value = keys.map(k => {\n const data = key === k ? formData : {...this.cacheRule[k].$f.form};\n const value = this.field ? data[this.field] || null : data;\n this.cache(k, value);\n return value;\n });\n this.input(value);\n },\n setValue(key, value) {\n const field = this.field, $f = this.cacheRule[key].$f;\n if (field) {\n value = {[field]: this._value(value)};\n }\n if (this.cacheValue[key] === JSON.stringify(field ? value[field] : value)) {\n return;\n }\n this.cache(key, value);\n $f.coverValue(value || {});\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.formRule);\n const options = this.options ? {...this.options} : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = this.field ? ({[this.field]: this._value(this.value[i])}) : (this.value[i] || {});\n this.$set(this.cacheRule, ++this.len, {rule, options});\n if (emit) {\n this.$nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));\n }\n },\n add$f(i, key, $f) {\n this.cacheRule[key].$f = $f;\n this.subForm();\n this.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n subForm() {\n this.formCreateInject.subForm(Object.keys(this.cacheRule).map(k => this.cacheRule[k].$f));\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n this.subForm();\n this.value.splice(index, 1);\n this.input(this.value);\n },\n addIcon(key) {\n return <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}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n rule={rule}\n option={options} extendOption={true}/></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.subForm();\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n subForm() {\n this.formCreateInject.subForm(this.cacheRule.$f);\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n rule={rule}\n option={options} extendOption={true}/>\n }\n}\n","import checkbox from '@form-create/component-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 Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'FormCreate';\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n value: Object,\n api: Object,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: ''\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n) === this.updateValue) return;\n this.$f.setValue(n);\n },\n deep: true\n },\n option: {\n handler(n) {\n this.formCreate.initOptions(n);\n this.$f.refresh();\n },\n deep: true\n },\n rule(n) {\n if (n.length === this.renderRule.length && n.every(v => this.renderRule.indexOf(v) > -1)) return;\n this.formCreate.$handle.reloadRule(n);\n this._renderRule();\n }\n },\n beforeCreate() {\n const {rule, option} = this.$options.propsData;\n this.formCreate = new FormCreate(this, rule, option);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return eval('(' + FUNCTION + '(){return ' + fn + ' })()')\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n return is.Function(rule.getRule) ? rule.getRule() : rule;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, copy(h.appendData));\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n const flag = hasProperty(formData, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? formData[key] : undefined;\n })\n });\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n h.refreshControl(ctx);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off', 'set'].forEach(n => {\n api[n] = function (...args) {\n h.vm[`$${n}`](...args);\n }\n });\n\n api.changeValue = api.changeField = api.setValue;\n\n return api;\n}\n","import extend from '@form-create/utils/lib/extend';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n cache.use = true;\n return cache.vnode;\n }\n })\n\n}\n","export default function toCase(str) {\n const to = str.replace(/(-[a-z])/g, function (v) {\n return v.replace('-', '').toLocaleUpperCase();\n });\n\n return lower(to);\n}\n\nexport function lower(str) {\n return str.replace(str[0], str[0].toLowerCase());\n}\n","export default function toString(val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n","export default function toLine(name) {\n let line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();\n if (line.indexOf('-') === 0)\n line = line.substr(1);\n return line;\n}\n","let id = 0;\n\nexport default function uniqueId() {\n return Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}${++id}`).toString(36);\n}\n","export default function deepSet(data, idx, val) {\n let _data = data, to;\n (idx || '').split('.').forEach(v => {\n if (to) {\n if (!_data[to] || typeof _data[to] != 'object') {\n _data[to] = {}\n }\n _data = _data[to];\n }\n to = v;\n })\n _data[to] = val;\n return _data;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {_vue as Vue} from '../frame';\nimport {tip} from '@form-create/utils/lib/console';\nimport {invoke, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {$set, deepSet, toLine} from '@form-create/utils';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.tempList = {};\n this.clearOrgChildren();\n },\n initOrgChildren() {\n const ctxs = this.$handle.ctxs;\n this.orgChildren = Object.keys(ctxs).reduce((initial, id) => {\n if (ctxs[id].parser.loadChildren !== false) {\n const children = ctxs[id].rule.children;\n initial[id] = is.trueArray(children) ? [...children] : [];\n }\n\n return initial;\n }, {});\n\n },\n clearOrgChildren() {\n this.orgChildren = {};\n },\n getTypeSlot(type) {\n const name = 'type-' + toLine(type);\n const _fn = (vm) => {\n if (vm) {\n const slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n }\n return _fn(this.vm);\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side) {\n return is.Object(side) ? mergeRule({}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix)), vn, this.renderRule(this.parseSide(prop.suffix))];\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n const preview = this.options.preview || false;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = true;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.props.formCreateInject = this.injectProp(ctx);\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = this.getTypeSlot(ctx.type);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n field: ctx.field,\n rule: ctx.rule,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: this.options.preview || false,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx, custom) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx, custom);\n ctx.parser.mergeProp(ctx, custom);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n 'hook:mounted': () => {\n this.onMounted(ctx);\n },\n 'fc.sub-form': (subForm) => {\n this.$handle.addSubForm(ctx, subForm);\n }\n },\n }\n ]\n\n if (!custom && ctx.input) {\n props.push({\n model: {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n },\n })\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nexport default function Render(handle) {\n extend(this, {\n $handle: handle,\n fc: handle.fc,\n vm: handle.vm,\n $manager: handle.$manager,\n vNode: new handle.fc.CreateNode(handle.vm),\n });\n\n funcProxy(this, {\n options() {\n return handle.options;\n },\n sort() {\n return handle.sort;\n }\n })\n\n this.initCache();\n this.initRender();\n}\n\nuseCache(Render);\nuseRender(Render)\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport toLine from '@form-create/utils/lib/toline';\nimport {parseFn} from '../frame/util';\n\n\nexport default function useInject(Handler) {\n extend(Handler.prototype, {\n parseInjectEvent(rule, on) {\n const inject = rule.inject || this.options.injectEvent;\n return this.parseEventLst(rule, on, inject);\n },\n parseEventLst(rule, data, inject, deep) {\n Object.keys(data).forEach(k => {\n const fn = this.parseEvent(rule, data[k], inject, deep);\n if (fn) {\n data[k] = fn;\n }\n });\n return data;\n },\n parseEvent(rule, fn, inject, deep) {\n if (is.Function(fn) && ((inject !== false && !is.Undef(inject)) || fn.__inject)) {\n return this.inject(rule, fn, inject)\n } else if (!deep && Array.isArray(fn) && fn[0] && (is.String(fn[0]) || is.Function(fn[0]))) {\n return this.parseEventLst(rule, fn, inject, true);\n } else if (is.String(fn)) {\n const val = parseFn(fn);\n if (val && fn !== val) {\n return val.__inject ? this.parseEvent(rule, val, inject, true) : val;\n }\n }\n },\n parseEmit(ctx, on) {\n let event = {}, rule = ctx.rule, {emitPrefix, field, name, inject} = rule;\n let emit = rule[on ? 'emit' : 'nativeEmit'] || [];\n if (is.trueArray(emit)) {\n let emitKey = emitPrefix || field || name;\n if (emitKey) {\n if (!on) emitKey = `native-${emitKey}`;\n emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n }\n const fieldKey = toLine(`${emitKey}-${eventName}`);\n const fn = (...arg) => {\n this.vm.$emit(fieldKey, ...arg);\n this.vm.$emit('emit-event', fieldKey, ...arg);\n };\n fn.__emit = true;\n\n if (!eventInject && inject === false) {\n event[eventName] = fn;\n } else {\n let _inject = eventInject || inject || this.options.injectEvent;\n event[eventName] = is.Undef(_inject) ? fn : this.inject(rule, fn, _inject);\n }\n });\n }\n\n }\n ctx.computed[on ? 'on' : 'nativeOn'] = event;\n return event;\n },\n getInjectData(self, inject) {\n const {option, rule} = this.vm.$options.propsData;\n return {\n api: this.api,\n $f: this.api,\n rule,\n self: self.__origin__,\n option,\n inject\n };\n },\n inject(self, _fn, inject) {\n if (_fn.__origin) {\n if (this.watching && !this.loading)\n return _fn;\n _fn = _fn.__origin;\n }\n\n const h = this;\n\n const fn = function (...args) {\n const data = h.getInjectData(self, inject);\n data.args = [...args];\n args.unshift(data);\n return _fn.apply(this, args);\n };\n fn.__origin = _fn;\n fn.__json = _fn.__json;\n return fn;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\n\nconst EVENT = ['hook:updated', 'hook:mounted'];\n\nexport default function usePage(Handler) {\n extend(Handler.prototype, {\n usePage() {\n const page = this.options.page;\n if (!page) return;\n let first = 25;\n let limit = getLimit(this.rules);\n if (is.Object(page)) {\n if (page.first) first = parseInt(page.first, 10) || first;\n if (page.limit) limit = parseInt(page.limit, 10) || limit;\n }\n extend(this, {\n first,\n limit,\n pageEnd: this.rules.length <= first,\n })\n\n this.bus.$on('page-end', () => this.vm.$emit('page-end', this.api));\n this.pageLoad();\n },\n pageLoad() {\n const pageFn = () => {\n if (this.pageEnd) {\n this.vm.$off(EVENT, pageFn);\n this.bus.$emit('page-end');\n } else {\n this.first += this.limit;\n this.pageEnd = this.rules.length <= this.first;\n this.loadRule();\n this.refresh();\n }\n }\n this.vm.$on(EVENT, pageFn);\n },\n })\n}\n\n\nfunction getLimit(rules) {\n return rules.length < 31 ? 31 : Math.ceil(rules.length / 3);\n}\n","import extend from '@form-create/utils/lib/extend';\n\n\nexport default function useRender(Handler) {\n extend(Handler.prototype, {\n clearNextTick() {\n this.nextTick && clearTimeout(this.nextTick);\n this.nextTick = null;\n },\n bindNextTick(fn) {\n this.clearNextTick();\n this.nextTick = setTimeout(() => {\n fn()\n this.nextTick = null;\n }, 10);\n },\n render() {\n // console.warn('%c render', 'color:green');\n ++this.loadedId;\n\n if (this.vm.unique > 0)\n return this.$render.render();\n else {\n this.vm.unique = 1;\n return [];\n }\n },\n });\n}\n","import unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {enumerable} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(ctx, true)\n });\n}\n\nexport default function RuleContext(handle, rule) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n defaultValue: rule.field ? deepCopy(rule.value) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n delete this.payload[name]\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeProps([rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n check(handle) {\n return this.vm === handle.vm\n },\n unwatch() {\n this.watch.forEach(un => un());\n this.watch = [];\n },\n unlink() {\n this.linkOn.forEach(un => un());\n this.linkOn = [];\n },\n link() {\n this.unlink();\n this.$handle.appendLink(this);\n },\n watchTo() {\n this.$handle.watchCtx(this);\n },\n delete() {\n const undef = void 0;\n this.unwatch();\n this.unlink();\n this.rmCtrl();\n extend(this, {\n deleted: true,\n prop: {...this.rule},\n computed: {},\n el: undef,\n $handle: undef,\n $render: undef,\n $api: undef,\n vm: undef,\n vNode: undef,\n parent: null,\n cacheConfig: null,\n })\n },\n rmCtrl() {\n this.ctrlRule.forEach(ctrl => ctrl.__fc__ && ctrl.__fc__.rm());\n this.ctrlRule = [];\n },\n rm() {\n const _rm = () => {\n let index = this.root.indexOf(this.origin);\n if (index > -1) {\n this.root.splice(index, 1);\n this.$handle && this.$handle.refresh();\n }\n }\n if (this.deleted) {\n _rm();\n return;\n }\n this.$handle.noWatch(() => {\n this.$handle.deferSyncValue(() => {\n this.rmCtrl();\n _rm();\n this.$handle.rmCtx(this);\n extend(this, {\n root: []\n });\n }, this.input);\n });\n },\n update(handle, init) {\n extend(this, {\n deleted: false,\n $handle: handle,\n $render: handle.$render,\n $api: handle.api,\n vm: handle.vm,\n trueType: handle.getType(this.originType),\n vNode: handle.$render.vNode,\n updated: false,\n });\n !init && this.unwatch();\n this.watchTo();\n this.link();\n }\n})\n","import extend from '@form-create/utils/lib/extend';\nimport {byCtx, copyRule, enumerable, getRule, invoke, parseFn} from '../frame/util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {err} from '@form-create/utils/lib/console';\nimport {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && (is.String(_rule) || is.Undef(_rule))) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (!is.Object(_rule) || !getRule(_rule).type)\n return err('未定义生成规则的 type 字段', _rule);\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n if (isInit) {\n ctx = _rule.__fc__;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n ctx = new RuleContext(this, this.parseRule(_rule));\n this.bindParser(ctx);\n } else {\n if (ctx.originType !== ctx.rule.type) {\n ctx.updateType();\n this.bindParser(ctx);\n }\n this.appendValue(ctx.rule);\n }\n [false, true].forEach(b => this.parseEmit(ctx, b));\n this.syncProp(ctx);\n ctx.parent = parent || null;\n ctx.root = rules;\n this.setCtx(ctx);\n\n !isCopy && !isInit && this.effect(ctx, 'load');\n\n ctx.parser.loadChildren === false || loadChildren(ctx.rule.children, ctx);\n\n if (!parent) {\n const _preIndex = preIndex(index);\n if (_preIndex > -1 || !index) {\n this.sort.splice(_preIndex + 1, 0, ctx.id);\n } else {\n this.sort.push(ctx.id);\n }\n }\n\n const r = ctx.rule;\n if (!ctx.updated) {\n ctx.updated = true;\n if (is.Function(r.update)) {\n this.bus.$once('load-end', () => {\n this.refreshUpdate(ctx, r.value);\n });\n }\n this.effect(ctx, 'loaded');\n }\n\n if (ctx.input)\n Object.defineProperty(r, 'value', this.valueHandle(ctx));\n if (this.refreshControl(ctx)) this.cycleLoad = true;\n return ctx;\n });\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || (val => val === control.value);\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n this.vm.$nextTick(() => {\n this.api.hidden(!valid, rule);\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) rule[k] = def[k];\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag);\n this.effect(ctx, 'value');\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {})));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n if (ctx.input) {\n this.subForm[ctx.id] = subForm;\n }\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib/modify';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n const none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];\n Object.keys(ctx.rule).filter(k => k[0] !== '_' && none.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o);\n this.$render.initOrgChildren();\n }\n flag && this.loadChildren(n, ctx);\n this.vm.$emit('update', this.api);\n });\n }\n this.$render.clearCache(ctx);\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\n\nexport default function useLifecycle(Handler) {\n extend(Handler.prototype, {\n mounted() {\n const _mounted = () => {\n this.isMounted = true;\n this.lifecycle('mounted');\n }\n if (this.pageEnd) {\n _mounted();\n } else {\n this.bus.$once('page-end', _mounted);\n }\n },\n lifecycle(name) {\n const fn = this.options[name];\n is.Function(fn) && invoke(() => fn(this.api));\n this.vm.$emit(name, this.api);\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n const prop = ps[k];\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule.effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(() => ctx.rule.effect[k], (n) => {\n this.effect(ctx, 'watch', {[k]: n});\n }, {deep: true}));\n });\n },\n ruleEffect(rule, event, append) {\n this.emitEffect({\n rule,\n input: !!rule.field,\n type: this.getType(rule.type)\n }, event, append);\n },\n effect(ctx, event, custom) {\n this.emitEffect({\n rule: ctx.rule,\n input: ctx.input,\n type: ctx.trueType,\n ctx,\n custom\n }, event);\n },\n getEffect(rule, name) {\n if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n else\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (rule.effect || {});\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeProps([prop], data.getProp());\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) return unique(c.filter(v => v !== '*'));\n else if (is.String(c)) return [c];\n else return false;\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\n\n\nexport default function Handler(fc) {\n extend(this, {\n fc,\n vm: fc.vm,\n watching: false,\n loading: false,\n reloading: false,\n noWatchFn: null,\n deferSyncFn: null,\n isMounted: false,\n formData: {},\n subForm: {},\n form: {},\n appendData: {},\n providers: {},\n cycleLoad: null,\n loadedId: 1,\n nextTick: null,\n changeStatus: false,\n pageEnd: true,\n nextReload: () => {\n this.lifecycle('reload');\n }\n });\n\n funcProxy(this, {\n options() {\n return fc.options;\n },\n bus() {\n return fc.bus;\n },\n })\n\n this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApi(Api(this), this);\n}\n\nextend(Handler.prototype, {\n initData(rules) {\n extend(this, {\n ctxs: {},\n fieldCtx: {},\n nameCtx: {},\n sort: [],\n rules,\n });\n },\n init() {\n this.appendData = {...this.fc.options.formData || {}, ...this.vm.value || {}, ...this.appendData};\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.vm.$set(this.vm, 'formData', this.formData);\n },\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nfunction getError(action, option, xhr) {\n const msg = `fail to ${action} ${xhr.status}'`;\n const err = new Error(msg);\n err.status = xhr.status;\n err.url = action;\n return err;\n}\n\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function fetch(option) {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n\n const xhr = new XMLHttpRequest();\n const action = option.action;\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr), getBody(xhr));\n }\n\n option.onSuccess(getBody(xhr));\n };\n\n xhr.open(option.method || 'get', action, true);\n\n let formData;\n if (option.data) {\n if ((option.dataType || '').toLowerCase() !== 'json') {\n formData = new FormData();\n Object.keys(option.data).map(key => {\n formData.append(key, option.data[key]);\n });\n } else {\n formData = JSON.stringify(option.data);\n xhr.setRequestHeader('content-type', 'application/json');\n }\n }\n\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const headers = option.headers || {};\n\n Object.keys(headers).forEach(item => {\n if (headers[item] !== null) {\n xhr.setRequestHeader(item, headers[item]);\n }\n });\n xhr.send(formData);\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n let Node = this.$h(tag, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","import mergeProps from '@form-create/utils/lib/mergeprops';\nimport unique from '@form-create/utils/lib/unique';\nimport extend from '@form-create/utils/lib/extend';\n\nexport function createManager(proto) {\n class CustomManager extends Manager {\n }\n\n Object.assign(CustomManager.prototype, proto);\n return CustomManager;\n}\n\nexport default function Manager(handler) {\n extend(this, {\n $handle: handler,\n vm: handler.vm,\n options: {},\n ref: 'fcForm',\n mergeOptionsRule: {\n normal: ['form', 'row', 'info', 'submitBtn', 'resetBtn']\n }\n });\n this.updateKey();\n this.init();\n}\n\nextend(Manager.prototype, {\n __init() {\n this.$render = this.$handle.$render;\n this.$r = (...args) => this.$render.renderRule(...args);\n },\n updateKey() {\n this.key = unique();\n },\n //TODO interface\n init() {\n },\n update() {\n },\n beforeRender() {\n },\n form() {\n return this.vm.$refs[this.ref];\n },\n mergeOptions(args, opt) {\n return mergeProps(args.map(v => this.tidyOptions(v)), opt, this.mergeOptionsRule);\n },\n updateOptions(options) {\n this.options = this.mergeOptions([options], this.getDefaultOptions());\n this.update();\n },\n tidyOptions(options) {\n return options;\n },\n tidyRule(ctx) {\n },\n mergeProp(ctx) {\n },\n getDefaultOptions() {\n return {};\n },\n render(children) {\n }\n})\n","import {err} from '@form-create/utils/lib/console';\nimport fetch from './fetch';\nimport {invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\n\nconst $fetch = {\n name: 'fetch',\n loaded(...args) {\n run(...args);\n },\n watch(inject, rule, api) {\n if (!run(inject, rule, api)) {\n inject.clearProp();\n api.sync(rule);\n }\n }\n};\n\nfunction parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n}\n\nfunction run(inject, rule, api) {\n let option = inject.value;\n if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n if (!option || !option.action) {\n return false;\n }\n if (!option.to) {\n option.to = 'options';\n }\n const onError = option.onError;\n\n const check = () => {\n if (!inject.getValue()) {\n inject.clearProp();\n api.sync(rule);\n return true;\n }\n }\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n api.sync(rule);\n } else {\n deepSet(inject.getProp(), option.to, val);\n }\n }\n\n invoke(() => fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n set((option.parse || ((v) => v.data))(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }));\n\n return true;\n}\n\nexport default $fetch;\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $fetch from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\nexport let _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;\n\nfunction _parseProp(name, id) {\n let prop;\n if (arguments.length === 2) {\n prop = arguments[1];\n id = prop[name];\n } else {\n prop = arguments[2];\n }\n return {id, prop};\n}\n\nfunction nameProp() {\n return _parseProp('name', ...arguments);\n}\n\nfunction _getEl(options) {\n if (!options || !options.el) return window.document.body;\n return is.Element(options.el)\n ? options.el\n : document.querySelector(options.el);\n}\n\nfunction mountForm(rules, option) {\n const $vm = new _vue({\n data() {\n //todo 外部无法修改\n return {rule: rules, option: option || {}};\n },\n render(h) {\n return h('FormCreate', {ref: 'fc', props: this.$data});\n }\n });\n $vm.$mount();\n return $vm;\n}\n\nfunction exportAttrs(attrs) {\n const key = attrs.key || [];\n const array = attrs.array || [];\n const normal = attrs.normal || [];\n keyAttrs.push(...key);\n arrayAttrs.push(...array);\n normalAttrs.push(...normal);\n\n appendProto([...key, ...array, ...normal]);\n}\n\n//todo 表单嵌套\nexport default function FormCreateFactory(config) {\n\n const components = {\n [fragment.name]: fragment\n };\n const parsers = {};\n const directives = {};\n const providers = {\n fetch: $fetch\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function directive() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) directives[data.id] = data.prop;\n }\n\n function register() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) providers[data.id] = {...data.prop, name: data.id};\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser() {\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = {...(base || BaseParser), ...parser};\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = toCase(id);\n if (['form-create', 'formcreate'].indexOf(name) > -1) {\n return $form();\n } else if (component === undefined) {\n return components[name];\n }\n } else {\n name = toCase(id.name);\n component = id;\n }\n if (!name || !component) return;\n components[name] = component;\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return _vue.extend($FormCreate(FormCreate));\n }\n\n function $vnode() {\n return _vue.extend(fragment);\n }\n\n //todo 检查回调函数作用域\n function use(fn, opt) {\n if (is.Function(fn.install)) fn.install(create, opt);\n else if (is.Function(fn)) fn(create, opt);\n return this;\n }\n\n function create(rules, _opt, parent) {\n let $vm = mountForm(rules, _opt || {});\n const _this = $vm.$refs.fc.formCreate;\n _this.$parent = parent;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n }\n\n function factory() {\n return FormCreateFactory(config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(options || {});\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions(this.options);\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions(this.options);\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions(options) {\n this.options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = deepCopy(opt);\n parent && ['page', 'onSubmit', 'mounted', 'reload', 'formData', 'el'].forEach((n) => {\n delete opt[n];\n });\n if (opt.global) {\n target.global = mergeGlobal(target.global, opt.global);\n delete opt.global;\n }\n this.$handle.$manager.mergeOptions([opt], target);\n return target;\n },\n updateOptions(options) {\n this.mergeOptions(this.options, options);\n this.$handle.$manager.updateOptions(this.options);\n },\n created() {\n this.$handle.init();\n this.vm.$emit('created', this.api());\n },\n api() {\n return this.$handle.api;\n },\n render() {\n return this.$handle.render();\n },\n mounted() {\n this.$handle.mounted();\n },\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n data,\n maker,\n component,\n directive,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n init(rules, _opt = {}) {\n let $vm = mountForm(rules, _opt), _this = $vm.$refs.fc.formCreate;\n return {\n mount($el) {\n if ($el && is.Element($el))\n _this.options.el = $el;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n },\n remove() {\n $vm.$el.parentNode && $vm.$el.parentNode.removeChild($vm.$el);\n },\n destroy() {\n this.remove();\n $vm.$destroy();\n },\n $f: _this.api()\n };\n }\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(Vue, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n if (Vue._installedFormCreate === true) return;\n Vue._installedFormCreate = true;\n _vue = Vue;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n Vue.prototype.$formCreate = $formCreate;\n Vue.component('FormCreate', $form());\n Vue.component('FcFragment', $vnode());\n }\n })\n }\n\n useAttr(create);\n useStatic(create);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n if (config.install) create.use(config);\n\n return create;\n}\n","import 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","_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","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","createGroup","rules","expand","button","max","min","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","$f","expandRule","total","addRule","setValue","removeRule","subForm","_value","cache","JSON","stringify","input","formData","form","coverValue","emit","copyRules","submitBtn","resetBtn","add$f","$delete","add","del","addIcon","delIcon","removeIcon","makeIcon","emitEvent","args","$form","Type","group","str","checkbox","radio","select","tree","target","Vue","$del","extend","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","extendOption","api","destroyed","validate","renderRule","ctxInject","updateValue","formCreate","_refresh","_renderRule","_updateValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","format","msg","getRule","tip","warn","err","error","logError","deepExtend","origin","mode","isArr","clone","nst","_clone","__json","__origin","__ctrl","deepCopy","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","eval","parseFn","trim","flag","replace","__inject","parseJson","json","parse","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","baseRule","hidden","creatorFactory","init","maker","Creator","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","sub","getFieldCtx","appendData","getValue","deferSyncValue","ctxs","fieldCtx","removeField","getCtx","rm","destroy","$el","parentNode","removeChild","$destroy","append","after","child","sort","root","prepend","state","hiddenStatus","displayStatus","all","component","nameCtx","bind","updateOptions","fc","onSubmit","sync","deleted","clearCacheAll","refreshOptions","$manager","hideForm","hide","changeStatus","clearChangeStatus","updateRule","updateRules","mergeRules","updateValidate","updateValidates","validates","refreshValidate","resetFields","defaultValue","refreshControl","method","el","exec","trigger","getSubForm","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","parent","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","toLocaleLowerCase","substr","uniqueId","Math","random","Date","now","deepSet","idx","to","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","parseSide","side","renderSides","temp","prefix","suffix","preview","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","makeWrap","item","addSubForm","custom","mergeProp","onMounted","getFormData","callback","expression","__rule__","effect","isRm","rmCtx","defaultRender","vNode","alias","aliasMap","_this10","handle","CreateNode","useInject","Handler","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","watching","loading","unshift","EVENT","usePage","page","first","limit","getLimit","parseInt","pageEnd","pageLoad","pageFn","loadRule","ceil","clearNextTick","clearTimeout","bindNextTick","setTimeout","loadedId","RuleContext","wrapRef","linkOn","ctrlRule","payload","updateType","updateKey","useLoader","parseRule","_rule","fullRule","appendValue","loadFn","loadCtrl","control","ctrl","syncProp","pre","fapi","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","check","isCtrl","bindParser","setCtx","_preIndex","preIndex","r","updated","refreshUpdate","defineProperty","valueHandle","useCtrl","controls","getCtrl","handleFn","findCtrl","isHidden","reverse","ruleCon","ctrlCtx","_reloadRule","initData","reloading","nextReload","useInput","toValue","formValue","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","toEmpty","toFormValue","deferSyncFn","strFn","refreshRule","appendLink","link","effectData","clearEffectData","setParser","unwatch","un","unlink","watchTo","watchCtx","rmCtrl","$api","_rm","noWatch","getType","BaseParser","useContext","getNameCtx","setIdCtx","rmIdCtx","isMounted","getParser","parsers","noWatchFn","rmSub","watchEffect","useLifecycle","_mounted","lifecycle","useEffect","useProvider","ps","providers","_c","getComponent","onEffect","provider","used","_used","emitEffect","getEffect","attr","p","getProp","clearProp","arr","components","manager","extendApi","getError","action","xhr","getBody","text","responseText","response","fetch","XMLHttpRequest","onerror","onError","onload","onSuccess","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","__init","parseProp","domProps","innerHTML","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","$fetch","loaded","run","parseOpt","body","message","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","FormCreateFactory","fragment","directives","globalConfig","directive","register","componentAlias","base","formCreateParser","$vnode","install","_opt","$parent","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","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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"}
|