@form-create/iview 2.5.29 → 2.5.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"form-create.min.js","sources":["../../../node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","../../utils/lib/slot.js","../../../components/iview/checkbox/src/component.jsx","../../utils/lib/toarray.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/iview/frame/src/component.jsx","../../../components/iview/frame/src/index.js","../../../components/iview/radio/src/component.jsx","../../utils/lib/type.js","../../../components/iview/select/src/component.jsx","../../../components/iview/tree/src/component.jsx","../../../components/iview/upload/src/component.jsx","../../../components/iview/upload/src/index.js","../../utils/lib/modify.js","../../utils/lib/deepextend.js","../../utils/lib/extend.js","../../../components/iview/group/src/component.jsx","../../../components/iview/group/src/index.js","../../../components/common/subform/src/component.jsx","../src/components/index.js","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/console.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../core/src/render/cache.js","../../utils/lib/tocase.js","../../utils/lib/tostring.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/render.js","../../core/src/render/index.js","../../core/src/handler/inject.js","../../core/src/handler/page.js","../../core/src/handler/render.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/parser/html.js","../../core/src/frame/index.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/input.js","../src/parsers/slider.js","../src/parsers/switch.js","../src/parsers/row.js","../src/parsers/index.js","../src/core/alias.js","../src/core/config.js","../src/core/manager.js","../src/core/maker.js","../src/core/api.js","../src/core/index.js","../src/index.js"],"sourcesContent":["\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","export default function getSlot(slots, exclude) {\n return Object.keys(slots).reduce((lst, name) => {\n if (!exclude || exclude.indexOf(name) === -1) {\n lst.push(slots[name])\n }\n return lst;\n }, [])\n}","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcCheckbox';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Array,\n default: () => []\n },\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => n.indexOf(opt.label) !== -1).map((opt) => opt.value).filter(v => v !== undefined));\n },\n update() {\n const checked = Array.isArray(this.value) ? this.value : [this.value];\n this.trueValue = this.options().filter((opt) => checked.indexOf(opt.value) !== -1)\n .map((option) => option.label);\n }\n },\n created() {\n this.update();\n },\n render() {\n return <CheckboxGroup {...this.formCreateInject.prop}\n props={{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={props} key={'' + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</CheckboxGroup>\n }\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css'\n\nconst NAME = 'fcFrame';\n\nexport default function createFrame(config) {\n return {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'input'\n },\n field: String,\n helper: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n src: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n default: config.fileUpIcon\n },\n width: {\n type: [Number, String],\n default: 500\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n },\n src(n) {\n this.modalVm && (this.modalVm.src = n);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModel(close) {\n this.$emit(close ? '$close' : '$ok');\n if (this.reload) {\n this.$off('$ok');\n this.$off('$close');\n }\n this.frameVisible = false;\n },\n showModel() {\n if (this.disabled || false === this.onOpen()) return;\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n icon: this.icon,\n readonly: true,\n clearable: false\n };\n\n return <Input props={props} on={{'on-click': () => this.showModel()}} key={this.key('input')}/>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength)\n children.push(this.makeBtn());\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field)\n throw new Error('[frame]无效的字段值');\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon))\n icons.push(this.makeHandleIcon(val, index));\n if (this.allowRemove)\n icons.push(this.makeRemoveIcon(val, index));\n\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <icon\n props={{type: (this.handleIcon === true || this.handleIcon === undefined) ? 'ios-eye-outline' : this.handleIcon}}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <icon props={{type: 'ios-trash-outline'}} on-click={() => this.handleRemove(val)}\n key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<icon props={{type: config.fileIcon, size: 40}}\n on-click={() => this.handleClick(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeImages() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<img src={this.getSrc(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeBtn() {\n return <div class='fc-upload-btn' on-click={() => this.showModel()}\n key={this.key('btn')}>\n <icon props={{type: this.icon, size: 20}}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) return;\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !(this.srcKey) ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n api: this.formCreateInject.api,\n close: (field) => {\n this.valid(field);\n this.closeModel();\n },\n set: (field, value) => {\n this.valid(field);\n if (!this.disabled)\n this.$emit('input', value);\n\n },\n get: (field) => {\n this.valid(field);\n return this.value;\n },\n onOk: fn => this.$on('$ok', fn),\n onClose: fn => this.$on('$close', fn)\n };\n\n }\n } catch (e) {\n console.log(e);\n }\n },\n makeFooter() {\n const {okBtnText, closeBtnText, closeBtn, okBtn, footer} = this.$props;\n const node = [];\n\n if (!footer) return node;\n if (closeBtn)\n node.push(<Button\n on-click={() => (this.onCancel() !== false && this.closeModel(true))}>{closeBtnText}</Button>);\n if (okBtn)\n node.push(<Button type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</Button>);\n return node;\n }\n },\n render() {\n const type = this.type;\n\n let node;\n if (type === 'input')\n node = this.makeInput();\n else if (type === 'image')\n node = this.makeImages();\n else\n node = this.makeFiles();\n const {width, height, src, title, modalTitle} = this.$props;\n this.$nextTick(() => {\n if (this.$refs.frame) {\n this.frameLoad(this.$refs.frame.contentWindow || {});\n }\n });\n return <div class=\"_fc-frame\">{node}\n <Modal v-model={this.previewVisible}\n props={{mask: this.previewMask, title: modalTitle, footerHide: true}}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </Modal>\n <Modal props={{width, title, ...this.modal}} v-model={this.frameVisible}\n on-on-cancel={() => (this.closeModel(true))}>\n {(this.frameVisible || !this.reload) ? <iframe ref=\"frame\" src={src} frameBorder=\"0\" style={{\n 'height': height,\n 'border': '0 none',\n 'width': '100%'\n }}/> : null}\n <div slot=\"footer\">\n {this.makeFooter()}\n </div>\n </Modal>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n };\n}\n","import createFrame from './component';\n\nconst frame = createFrame({\n fileIcon: 'md-document',\n fileUpIcon: 'ios-folder-open',\n});\n\n\nframe.v2 = createFrame({\n fileIcon: 'document-text',\n fileUpIcon: 'folder',\n});\n\nexport default frame;\n","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcRadio';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {}\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => opt.label === n).reduce((initial, opt) => opt.value, ''));\n },\n update() {\n this.trueValue = this.options().filter((opt) => opt.value === this.value).reduce((initial, opt) => opt.label, '');\n }\n },\n created() {\n this.update();\n },\n render() {\n return <RadioGroup {...this.formCreateInject.prop} props={{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={props} key={'' + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</RadioGroup>\n }\n}\n","const is = {\n type(arg, type) {\n return Object.prototype.toString.call(arg) === '[object ' + type + ']'\n },\n Undef(v) {\n return v === undefined || v === null\n },\n Element(arg) {\n return typeof arg === 'object' && arg !== null && arg.nodeType === 1 && !is.Object(arg)\n },\n trueArray(data) {\n return Array.isArray(data) && data.length > 0;\n },\n Function(v) {\n const type = this.getType(v);\n return type === 'Function' || type === 'AsyncFunction';\n },\n getType(v) {\n const str = Object.prototype.toString.call(v)\n return /^\\[object (.*)\\]$/.exec(str)[1]\n },\n empty(value) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (Array.isArray(value) && Array.isArray(value) && !value.length) {\n return true;\n }\n\n return typeof value === 'string' && !value;\n }\n};\n\n['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(t => {\n is[t] = function (arg) {\n return is.type(arg, t);\n }\n})\n\nexport function hasProperty(rule, k) {\n return ({}).hasOwnProperty.call(rule, k)\n}\n\nexport default is;\n","import is from '@form-create/utils/lib/type';\n\nconst NAME = 'fcSelect';\nexport default {\n name: NAME,\n functional: true,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n },\n render(h, ctx) {\n const options = ctx.props.formCreateInject.options;\n return <Select {...ctx.data}>{(Array.isArray(options) ? options : []).map((props, index) => {\n const slot = props.slot;\n return <Option props={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 || !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 v-model={this.previewVisible}\n props={{title: this.modalTitle, footerHide: true}}>\n <img alt=\"example\" style=\"width: 100%\" src={this.previewImage}/>\n </Modal>\n </div>);\n },\n mounted() {\n this.uploadList = this.$refs.upload.fileList;\n this.$watch(() => this.$refs.upload.fileList, () => {\n this.update();\n }, {deep: true});\n }\n };\n}\n","import createUpload from './component';\n\nconst upload = createUpload({\n\n fileIcon: 'md-document',\n imgUpIcon: 'md-images',\n});\n\nupload.v2 = createUpload({\n\n fileIcon: 'document-text',\n imgUpIcon: 'image',\n});\n\nexport default upload;\n","import Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\n\nconst NAME = 'fcGroup';\n\nexport default function createGroup(config) {\n return {\n name: NAME,\n props: {\n field: String,\n rule: [Array, Object],\n rules: Array,\n expand: Number,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n button: {\n type: Boolean,\n default: true\n },\n max: {\n type: Number,\n default: 0\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: () => []\n },\n defaultValue: Object,\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n fontSize: {\n type: Number,\n default: 28\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rules) {\n return this.rules;\n }\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n return [];\n }\n },\n watch: {\n formRule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n disabled(n) {\n if (this.syncDisabled) {\n const lst = this.cacheRule;\n Object.keys(lst).forEach(k => {\n lst[k].$f.disabled(n);\n })\n }\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n) {\n n = n || [];\n let keys = Object.keys(this.cacheRule), total = keys.length, len = total - n.length;\n if (len < 0) {\n for (let i = len; i < 0; i++) {\n this.addRule(n.length + i);\n }\n for (let i = 0; i < total; i++) {\n this.setValue(keys[i], n[i]);\n }\n } else {\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n this.removeRule(keys[total - i - 1]);\n }\n }\n n.forEach((val, i) => {\n this.setValue(keys[i], n[i]);\n });\n }\n }\n },\n methods: {\n _value(v) {\n return (v && hasProperty(v, this.field)) ? v[this.field] : v;\n },\n cache(k, val) {\n this.cacheValue[k] = JSON.stringify(val);\n },\n input(value) {\n this.$emit('input', value);\n this.$emit('change', value);\n },\n formData(key, formData) {\n const cacheRule = this.cacheRule;\n const keys = Object.keys(cacheRule);\n if (keys.filter(k => cacheRule[k].$f).length !== keys.length) {\n return;\n }\n const value = keys.map(k => {\n const data = key === k ? formData : {...this.cacheRule[k].$f.form};\n const value = this.field ? data[this.field] || null : data;\n this.cache(k, value);\n return value;\n });\n this.input(value);\n },\n setValue(key, value) {\n const field = this.field, $f = this.cacheRule[key].$f;\n if (field) {\n value = {[field]: this._value(value)};\n }\n if (this.cacheValue[key] === JSON.stringify(field ? value[field] : value)) {\n return;\n }\n this.cache(key, value);\n $f.coverValue(value || {});\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.formRule);\n const options = this.options ? {...this.options} : {\n submitBtn: false,\n resetBtn: false,\n };\n if (this.defaultValue) {\n if (!options.formData) options.formData = {};\n const defVal = deepCopy(this.defaultValue);\n extend(options.formData, this.field ? {[this.field]: defVal} : defVal);\n }\n this.$set(this.cacheRule, ++this.len, {rule, options});\n if (emit) {\n this.$nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));\n }\n },\n add$f(i, key, $f) {\n this.cacheRule[key].$f = $f;\n this.formData(key, $f.formData());\n this.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n this.value.splice(index, 1);\n this.input(this.value);\n },\n addIcon(key) {\n return <Icon key={`a${key}`} type={config.addIcon}\n style={`font-size:${this.fontSize}px;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer;color:#000'}`}\n on-click={this.add}/>;\n },\n delIcon(index, key) {\n return <Icon key={`d${key}`} type={config.removeIcon}\n style={`font-size:${this.fontSize}px;cursor:${this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer'};`}\n on-click={() => this.del(index, key)}/>;\n },\n makeIcon(total, index, key) {\n if (this.$scopedSlots.button) {\n return this.$scopedSlots.button({\n total,\n index,\n vm: this,\n key,\n del: () => this.del(index, key),\n add: this.add\n });\n }\n if (index === 0) {\n return [(this.max !== 0 && total >= this.max) ? null : this.addIcon(key), (this.min === 0 || total > this.min) ? this.delIcon(index, key) : null];\n }\n if (total > 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}><Type\n key={key}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n props={{\n value: this.field ? {[this.field]: this._value(this.value[index])} : this.value[index],\n rule,\n option: options,\n extendOption: true,\n inFor: true\n }}\n /></Col>\n {button ? <Col\n props={{span: 2, pull: 1, push: 1}}>{this.makeIcon(keys.length, index, key)}</Col> : null}\n </Row>\n })}</div>\n }\n };\n}\n","import createGroup from './component';\n\nconst group = createGroup({\n removeIcon: 'ios-remove-circle-outline',\n addIcon: 'ios-add-circle-outline',\n});\n\ngroup.v2 = createGroup({\n addIcon: 'ios-plus-outline',\n removeIcon: 'ios-minus-outline',\n})\n\nexport default group;\n","const NAME = 'fcSubForm';\n\nexport default {\n name: NAME,\n props: {\n rule: Array,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n default: () => ({})\n },\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n },\n data() {\n return {\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n watch: {\n disabled(n) {\n this.syncDisabled && this.cacheRule.$f.disabled(n);\n },\n value(n) {\n this.setValue(n);\n }\n },\n methods: {\n formData(value) {\n this.cacheValue = JSON.stringify(value);\n this.$emit('input', value);\n this.$emit('change', value);\n },\n setValue(value) {\n const str = JSON.stringify(value);\n if (this.cacheValue === str) {\n return;\n }\n this.cacheValue = str;\n this.cacheRule.$f.coverValue(value || {});\n },\n addRule() {\n const options = this.options ? this.options : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = {...(this.value || {})};\n this.cacheRule = {rule: this.rule, options};\n },\n add$f($f) {\n this.cacheRule.$f = $f;\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n props={{rule, option: options, extendOption: true}}/>\n }\n}\n","import checkbox from '@form-create/component-ivu-checkbox/src/index';\nimport frame from '@form-create/component-ivu-frame/src/index';\nimport radio from '@form-create/component-ivu-radio/src/index';\nimport select from '@form-create/component-ivu-select/src/index';\nimport tree from '@form-create/component-ivu-tree/src/index';\nimport upload from '@form-create/component-ivu-upload/src/index';\nimport group from '@form-create/component-ivu-group/src/index';\nimport subForm from '@form-create/component-subform/src/index';\n\nexport default [\n checkbox,\n radio,\n select,\n tree,\n subForm,\n frame,\n upload,\n group\n];\n","import extend from '@form-create/utils/lib/extend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'FormCreate';\n\nconst getRuleInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.formCreateInject) {\n return vm.formCreateInject\n }\n if (vm.$parent) {\n return getRuleInject(vm.$parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n value: Object,\n api: Object,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: JSON.stringify(this.value || {}),\n isMore: !!this.inFor,\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n || {}) === this.updateValue) return;\n this.$f.config.forceCoverValue ? this.$f.coverValue(n || {}) : this.$f.setValue(n || {});\n },\n deep: true\n },\n option: {\n handler(n) {\n this.formCreate.initOptions(n);\n this.$f.refresh();\n },\n deep: true\n },\n rule(n) {\n if (n.length === this.renderRule.length && n.every(v => this.renderRule.indexOf(v) > -1)) return;\n this.formCreate.$handle.reloadRule(n);\n this._renderRule();\n }\n },\n beforeCreate() {\n const {rule, option} = this.$options.propsData;\n this.formCreate = new FormCreate(this, rule, option);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n created() {\n const vm = this, fapi = this.formCreate.api();\n const addSubForm = () => {\n if (vm.$pfc) {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n let sub;\n if (vm.isMore) {\n sub = toArray(inject.getSubForm());\n sub.push(fapi);\n\n } else {\n sub = fapi;\n }\n inject.subForm(sub);\n }\n }\n };\n\n const rmSubForm = () => {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n if (vm.isMore) {\n const sub = toArray(inject.getSubForm());\n const idx = sub.indexOf(fapi);\n if (idx > -1) {\n sub.splice(idx, 1);\n }\n } else {\n inject.subForm();\n }\n }\n };\n\n vm.$on('hook:beforeDestroy', () => {\n rmSubForm();\n });\n\n this.$watch(() => this.subForm, (n) => {\n n ? addSubForm() : rmSubForm();\n }, {immediate: true});\n }\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'preview', 'component', 'cache'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return eval('(' + FUNCTION + '(){return ' + fn + ' })()')\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n const r = is.Function(rule.getRule) ? rule.getRule() : rule;\n if (!r.type) {\n r.type = 'input';\n }\n return r;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n effect: {},\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, h.options.appendValue ? copy(h.appendData) : {});\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n const data = {...(formData || {})};\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (ctxs) {\n const flag = hasProperty(data, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? data[key] : undefined;\n })\n delete data[key];\n }\n });\n extend(h.appendData, data);\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rule.props && $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n $set(ctx.rule, 'effect', {});\n }\n $set(ctx.rule.effect, attr, value);\n }\n },\n clearEffectData(id, attr) {\n const ctx = h.getCtx(id);\n if (ctx) {\n if (attr && attr[0] === '$') {\n attr = attr.substr(1);\n }\n ctx.clearEffectData(attr);\n api.sync(id);\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n deferSyncValue(fn, sync){\n h.deferSyncValue(fn, sync);\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off', 'set'].forEach(n => {\n api[n] = function (...args) {\n h.vm[`$${n}`](...args);\n }\n });\n\n api.changeValue = api.changeField = api.setValue;\n\n return api;\n}\n","import extend from '@form-create/utils/lib/extend';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if(ctx.rule.cache){\n return;\n }\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n if (cache) {\n cache.use = true;\n return cache.vnode;\n }\n return undefined;\n }\n })\n\n}\n","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 'F' + 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(ctx) {\n const _fn = (vm) => {\n if (vm) {\n let slot = undefined;\n if (ctx.rule.field) {\n slot = vm.$scopedSlots['field-' + toLine(ctx.rule.field)] || vm.$scopedSlots['field-' + ctx.rule.field];\n }\n if (!slot) {\n slot = vm.$scopedSlots['type-' + toLine(ctx.type)] || vm.$scopedSlots['type-' + ctx.type];\n }\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n }\n return _fn(this.vm);\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side, ctx) {\n return is.Object(side) ? mergeRule({props: {formCreateInject: ctx.prop.props.formCreateInject}}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix, ctx)), vn, this.renderRule(this.parseSide(prop.suffix, ctx))];\n\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = rule.cache !== false;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.preview = !!(hasProperty(prop, 'preview') ? prop.preview : (this.options.preview || false))\n prop.props.formCreateInject = this.injectProp(ctx);\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = this.getTypeSlot(ctx);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else if(is.String(vn.data.style)) {\n vn.data.style += ';display:none;';\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n getSubForm: () => {\n return this.$handle.subForm[ctx.id];\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx, custom) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx, custom);\n ctx.parser.mergeProp(ctx, custom);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n 'hook:mounted': () => {\n this.onMounted(ctx);\n },\n 'fc.sub-form': (subForm) => {\n this.$handle.addSubForm(ctx, subForm);\n }\n },\n }\n ]\n\n if (!custom && ctx.input) {\n ctx.prop.model = {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n };\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if(prop.component)\n return this.vNode.makeComponent(prop.component, prop, children)\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nexport default function Render(handle) {\n extend(this, {\n $handle: handle,\n fc: handle.fc,\n vm: handle.vm,\n $manager: handle.$manager,\n vNode: new handle.fc.CreateNode(handle.vm),\n });\n\n funcProxy(this, {\n options() {\n return handle.options;\n },\n sort() {\n return handle.sort;\n }\n })\n\n this.initCache();\n this.initRender();\n}\n\nuseCache(Render);\nuseRender(Render)\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport toLine from '@form-create/utils/lib/toline';\nimport {parseFn} from '../frame/util';\n\n\nexport default function useInject(Handler) {\n extend(Handler.prototype, {\n parseInjectEvent(rule, on) {\n const inject = rule.inject || this.options.injectEvent;\n return this.parseEventLst(rule, on, inject);\n },\n parseEventLst(rule, data, inject, deep) {\n Object.keys(data).forEach(k => {\n const fn = this.parseEvent(rule, data[k], inject, deep);\n if (fn) {\n data[k] = fn;\n }\n });\n return data;\n },\n parseEvent(rule, fn, inject, deep) {\n if (is.Function(fn) && ((inject !== false && !is.Undef(inject)) || fn.__inject)) {\n return this.inject(rule, fn, inject)\n } else if (!deep && Array.isArray(fn) && fn[0] && (is.String(fn[0]) || is.Function(fn[0]))) {\n return this.parseEventLst(rule, fn, inject, true);\n } else if (is.String(fn)) {\n const val = parseFn(fn);\n if (val && fn !== val) {\n return val.__inject ? this.parseEvent(rule, val, inject, true) : val;\n }\n }\n },\n parseEmit(ctx, on) {\n let event = {}, rule = ctx.rule, {emitPrefix, field, name, inject} = rule;\n let emit = rule[on ? 'emit' : 'nativeEmit'] || [];\n if (is.trueArray(emit)) {\n let emitKey = emitPrefix || field || name;\n if (emitKey) {\n if (!on) emitKey = `native-${emitKey}`;\n emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n }\n const fieldKey = toLine(`${emitKey}-${eventName}`);\n const fn = (...arg) => {\n this.vm.$emit(fieldKey, ...arg);\n this.vm.$emit('emit-event', fieldKey, ...arg);\n };\n fn.__emit = true;\n\n if (!eventInject && inject === false) {\n event[eventName] = fn;\n } else {\n let _inject = eventInject || inject || this.options.injectEvent;\n event[eventName] = is.Undef(_inject) ? fn : this.inject(rule, fn, _inject);\n }\n });\n }\n\n }\n ctx.computed[on ? 'on' : 'nativeOn'] = event;\n return event;\n },\n getInjectData(self, inject) {\n const {option, rule} = this.vm.$options.propsData;\n return {\n api: this.api,\n $f: this.api,\n rule,\n self: self.__origin__,\n option,\n inject\n };\n },\n inject(self, _fn, inject) {\n if (_fn.__origin) {\n if (this.watching && !this.loading)\n return _fn;\n _fn = _fn.__origin;\n }\n\n const h = this;\n\n const fn = function (...args) {\n const data = h.getInjectData(self, inject);\n data.args = [...args];\n args.unshift(data);\n return _fn.apply(this, args);\n };\n fn.__origin = _fn;\n fn.__json = _fn.__json;\n return fn;\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\n\nconst EVENT = ['hook:updated', 'hook:mounted'];\n\nexport default function usePage(Handler) {\n extend(Handler.prototype, {\n usePage() {\n const page = this.options.page;\n if (!page) return;\n let first = 25;\n let limit = getLimit(this.rules);\n if (is.Object(page)) {\n if (page.first) first = parseInt(page.first, 10) || first;\n if (page.limit) limit = parseInt(page.limit, 10) || limit;\n }\n extend(this, {\n first,\n limit,\n pageEnd: this.rules.length <= first,\n })\n\n this.bus.$on('page-end', () => this.vm.$emit('page-end', this.api));\n this.pageLoad();\n },\n pageLoad() {\n const pageFn = () => {\n if (this.pageEnd) {\n this.vm.$off(EVENT, pageFn);\n this.bus.$emit('page-end');\n } else {\n this.first += this.limit;\n this.pageEnd = this.rules.length <= this.first;\n this.loadRule();\n this.refresh();\n }\n }\n this.vm.$on(EVENT, pageFn);\n },\n })\n}\n\n\nfunction getLimit(rules) {\n return rules.length < 31 ? 31 : Math.ceil(rules.length / 3);\n}\n","import extend from '@form-create/utils/lib/extend';\n\n\nexport default function useRender(Handler) {\n extend(Handler.prototype, {\n clearNextTick() {\n this.nextTick && clearTimeout(this.nextTick);\n this.nextTick = null;\n },\n bindNextTick(fn) {\n this.clearNextTick();\n this.nextTick = setTimeout(() => {\n fn()\n this.nextTick = null;\n }, 10);\n },\n render() {\n // console.warn('%c render', 'color:green');\n ++this.loadedId;\n\n if (this.vm.unique > 0)\n return this.$render.render();\n else {\n this.vm.unique = 1;\n return [];\n }\n },\n });\n}\n","import unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {enumerable, mergeRule} 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, defaultValue) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n defaultValue: rule.field ? deepCopy(defaultValue) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n if (name === undefined) {\n this.payload = {};\n } else {\n delete this.payload[name];\n }\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeRule({}, [rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n 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 {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {$set} from '@form-create/utils';\n\nconst condition = {\n '==': (b) => (a) => a === b,\n '!=': (b) => (a) => a !== b,\n '<>': (b) => (a) => a !== b,\n '>': (b) => (a) => a > b,\n '>=': (b) => (a) => a >= b,\n '<': (b) => (a) => a < b,\n '<=': (b) => (a) => a <= b,\n 'in': (b) => (a) => (b && b.indexOf && b.indexOf(a) > -1),\n 'on': (b) => (a) => (a && a.indexOf && a.indexOf(b) > -1),\n 'notIn': (b) => (a) => !(condition.in(b)(a)),\n 'notOn': (b) => (a) => !(condition.on(b)(a)),\n 'between': (b) => (a) => a > b[0] && a < b[1],\n 'notBetween': (b) => (a) => a < b[0] || a > b[1],\n}\n\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && !is.Object(_rule)) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n let defaultValue = rule.value;\n if (isInit) {\n ctx = _rule.__fc__;\n defaultValue = ctx.defaultValue;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n const rule = this.parseRule(_rule);\n ctx = new RuleContext(this, rule, isInit ? defaultValue : rule.value);\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, 'init');\n });\n }\n this.effect(ctx, 'loaded');\n }\n\n if (ctx.input)\n Object.defineProperty(r, 'value', this.valueHandle(ctx));\n if (this.refreshControl(ctx)) this.cycleLoad = true;\n return ctx;\n });\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || ((condition[control.condition || '=='] || condition['=='])(control.value));\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n const hideLst = [];\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl, method}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n hideLst[valid ? 'push' : 'unshift'](() => {\n if (method === 'disabled') {\n this.api.disabled(!valid, rule);\n } else if (method === 'display') {\n this.api.display(valid, rule);\n } else if (method === 'required') {\n rule.forEach(item => {\n this.api.setEffect(item, 'required', valid);\n })\n if(!valid){\n this.api.clearValidateState(rule);\n }\n } else {\n this.api.hidden(!valid, rule);\n }\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n hideLst.length && this.vm.$nextTick(() => {\n hideLst.forEach(v => v());\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n this.deferSyncValue(() => {\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n this.vm.$emit('reloading', this.api);\n });\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) $set(rule, k, def[k]);\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value === null ? undefined : value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, this.options.appendValue ? Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {}) : {}));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n this.subForm[ctx.id] = subForm;\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...(this.options.appendValue ? this.appendData : {}), ...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value === null ? undefined : value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val, origin) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api, {origin: origin || 'change'}));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val, origin) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val, origin);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value, 'link');\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return this.render(children, ctx);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'component', 'cache'];\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule).filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o, ctx);\n this.$render.initOrgChildren();\n }\n flag && this.loadChildren(n, ctx);\n this.vm.$emit('update', this.api);\n });\n }\n this.$render.clearCache(ctx);\n this.refresh();\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub, ctx) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && r.__fc__.parent === ctx && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n if (input && !hasProperty(this.fieldCtx, field)) {\n $del(this.form, field);\n }\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import 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 {mergeRule} from '../frame/util';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n let prop = ps[k];\n if (is.Function(prop)) {\n prop = prop(this.fc);\n }\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n let effect = {\n required: () => {\n return (hasProperty(ctx.rule, '$required') ? ctx.rule['$required'] : ctx.rule?.effect?.required) || false;\n }\n };\n Object.keys(ctx.rule.effect || {}).forEach(k => {\n effect[k] = () => ctx.rule.effect[k];\n })\n Object.keys(ctx.rule).forEach(k => {\n if (k[0] === '$') {\n effect[k.substr(1)] = () => ctx.rule[k];\n }\n })\n Object.keys(effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(effect[k], (n) => {\n this.effect(ctx, 'watch', {[k]: n});\n }, {deep: true}));\n });\n },\n ruleEffect(rule, event, append) {\n this.emitEffect({\n rule,\n input: !!rule.field,\n type: this.getType(rule.type)\n }, event, append);\n },\n effect(ctx, event, custom) {\n this.emitEffect({\n rule: ctx.rule,\n input: ctx.input,\n type: ctx.trueType,\n ctx,\n custom\n }, event);\n },\n getEffect(rule, name) {\n if (hasProperty(rule, '$' + name)) {\n return rule['$' + name];\n }\n if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (Object.keys(rule).reduce((i, k) => {\n if (k[0] === '$') {\n i[k.substr(1)] = rule[k];\n }\n return i;\n }, {...rule.effect || {}}));\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeRule(data.getProp(), [prop]);\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) return unique(c.filter(v => v !== '*'));\n else if (is.String(c)) return [c];\n else return false;\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\n\n\nexport default function Handler(fc) {\n extend(this, {\n fc,\n vm: fc.vm,\n watching: false,\n loading: false,\n reloading: false,\n noWatchFn: null,\n deferSyncFn: null,\n isMounted: false,\n formData: {},\n subForm: {},\n form: {},\n appendData: {},\n providers: {},\n cycleLoad: null,\n loadedId: 1,\n nextTick: null,\n changeStatus: false,\n pageEnd: true,\n nextReload: () => {\n this.lifecycle('reload');\n }\n });\n\n funcProxy(this, {\n options() {\n return fc.options;\n },\n bus() {\n return fc.bus;\n },\n })\n\n this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApi(Api(this), this);\n}\n\nextend(Handler.prototype, {\n initData(rules) {\n extend(this, {\n ctxs: {},\n fieldCtx: {},\n nameCtx: {},\n sort: [],\n rules,\n });\n },\n init() {\n this.appendData = {...this.fc.options.formData || {}, ...this.vm.value || {}, ...this.appendData};\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.vm.$set(this.vm, 'formData', this.formData);\n },\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nfunction getError(action, option, xhr) {\n const msg = `fail to ${action} ${xhr.status}'`;\n const err = new Error(msg);\n err.status = xhr.status;\n err.url = action;\n return err;\n}\n\nfunction getBody(xhr) {\n const text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\n\nexport default function fetch(option) {\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n\n const xhr = new XMLHttpRequest();\n const action = option.action;\n\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n\n xhr.onload = function onload() {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr), getBody(xhr));\n }\n\n option.onSuccess(getBody(xhr));\n };\n\n xhr.open(option.method || 'get', action, true);\n\n let formData;\n if (option.data) {\n if ((option.dataType || '').toLowerCase() !== 'json') {\n formData = new FormData();\n Object.keys(option.data).map(key => {\n formData.append(key, option.data[key]);\n });\n } else {\n formData = JSON.stringify(option.data);\n xhr.setRequestHeader('content-type', 'application/json');\n }\n }\n\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n const headers = option.headers || {};\n\n Object.keys(headers).forEach(item => {\n if (headers[item] !== null) {\n xhr.setRequestHeader(item, headers[item]);\n }\n });\n xhr.send(formData);\n}\n","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n return this.makeComponent(tag, data, children);\n },\n makeComponent(type, data, children) {\n let Node = this.$h(type, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","import mergeProps from '@form-create/utils/lib/mergeprops';\nimport unique from '@form-create/utils/lib/unique';\nimport extend from '@form-create/utils/lib/extend';\n\nexport function createManager(proto) {\n class CustomManager extends Manager {\n }\n\n Object.assign(CustomManager.prototype, proto);\n return CustomManager;\n}\n\nexport default function Manager(handler) {\n extend(this, {\n $handle: handler,\n vm: handler.vm,\n options: {},\n ref: 'fcForm',\n mergeOptionsRule: {\n normal: ['form', 'row', 'info', 'submitBtn', 'resetBtn']\n }\n });\n this.updateKey();\n this.init();\n}\n\nextend(Manager.prototype, {\n __init() {\n this.$render = this.$handle.$render;\n this.$r = (...args) => this.$render.renderRule(...args);\n },\n updateKey() {\n this.key = unique();\n },\n //TODO interface\n init() {\n },\n update() {\n },\n beforeRender() {\n },\n form() {\n return this.vm.$refs[this.ref];\n },\n mergeOptions(args, opt) {\n return mergeProps(args.map(v => this.tidyOptions(v)), opt, this.mergeOptionsRule);\n },\n updateOptions(options) {\n this.options = this.mergeOptions([options], this.getDefaultOptions());\n this.update();\n },\n tidyOptions(options) {\n return options;\n },\n tidyRule(ctx) {\n },\n mergeProp(ctx) {\n },\n getDefaultOptions() {\n return {};\n },\n render(children) {\n }\n})\n","import {err} from '@form-create/utils/lib/console';\nimport {byCtx, invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\n\nconst componentValidate = {\n name: 'componentValidate',\n load(attr, rule, api) {\n const method = attr.getValue();\n if (!method) {\n attr.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n attr.getProp().validate = [{\n validator(...args) {\n const ctx = byCtx(rule);\n if (ctx) {\n return api.exec(ctx.id, method === true ? 'formCreateValidate' : method, ...args, {\n attr,\n rule,\n api\n });\n }\n }\n }];\n }\n },\n watch(...args) {\n componentValidate.load(...args);\n }\n};\n\nconst fetch = function (fc) {\n\n function parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n }\n\n function run(inject, rule, api) {\n let option = inject.value;\n 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(() => fc.create.fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n let fn = (v) => v.data;\n if (is.Function(option.parse)) {\n fn = option.parse;\n }\n set(fn(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }, {inject, rule, api}));\n return true;\n }\n\n return {\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}\n\n\nconst $required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n } else {\n const validate = {\n required: true,\n validator(_, v, call) {\n is.empty(v) ? call(validate.message) : call();\n },\n ...val,\n };\n if (!validate.message) {\n let title = rule.title || '';\n validate.message = ((typeof title === 'object' ? title.title : title) || '') + '不能为空';\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n $required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Undef(val)) {\n return {required: false};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\nexport default {\n fetch,\n required: $required,\n componentValidate,\n};\n","import is from '@form-create/utils/lib/type';\n\nconst name = 'html';\n\nexport default {\n name,\n loadChildren: false,\n render(children, ctx) {\n if (!ctx.prop.domProps) ctx.prop.domProps = {};\n ctx.prop.domProps.innerHTML = children;\n return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);\n },\n renderChildren(ctx) {\n if (Array.isArray(ctx.rule.children)) {\n return ctx.rule.children.filter(v => is.String(v)).join('');\n }\n return '';\n }\n}\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $provider from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport html from '../parser/html';\n\nexport let _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;\n\nfunction _parseProp(name, id) {\n let prop;\n if (arguments.length === 2) {\n prop = arguments[1];\n id = prop[name];\n } else {\n prop = arguments[2];\n }\n return {id, prop};\n}\n\nfunction nameProp() {\n return _parseProp('name', ...arguments);\n}\n\nfunction _getEl(options) {\n if (!options || !options.el) return window.document.body;\n return is.Element(options.el)\n ? options.el\n : document.querySelector(options.el);\n}\n\nfunction mountForm(rules, option) {\n const $vm = new _vue({\n data() {\n //todo 外部无法修改\n return {rule: rules, option: option || {}};\n },\n render(h) {\n return h('FormCreate', {ref: 'fc', props: this.$data});\n }\n });\n $vm.$mount();\n return $vm;\n}\n\nfunction exportAttrs(attrs) {\n const key = attrs.key || [];\n const array = attrs.array || [];\n const normal = attrs.normal || [];\n keyAttrs.push(...key);\n arrayAttrs.push(...array);\n normalAttrs.push(...normal);\n\n appendProto([...key, ...array, ...normal]);\n}\n\nlet id = 1;\nconst instance = {};\n\n//todo 表单嵌套\nexport default function FormCreateFactory(config) {\n\n const components = {\n [fragment.name]: fragment\n };\n const parsers = {};\n const directives = {};\n const providers = {\n ...$provider\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val))\n return [...val];\n return val;\n }\n\n function directive() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) directives[data.id] = data.prop;\n }\n\n function register() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) providers[data.id] = {...data.prop, name: data.id};\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser() {\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = {...(base || BaseParser), ...parser};\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = toCase(id);\n if (['form-create', 'formcreate'].indexOf(name) > -1) {\n return $form();\n } else if (component === undefined) {\n return components[name];\n }\n } else {\n name = toCase(id.name);\n component = id;\n }\n if (!name || !component) return;\n components[name] = component;\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return _vue.extend($FormCreate(FormCreate));\n }\n\n function $vnode() {\n return _vue.extend(fragment);\n }\n\n //todo 检查回调函数作用域\n function use(fn, opt) {\n if (is.Function(fn.install)) fn.install(create, opt);\n else if (is.Function(fn)) fn(create, opt);\n return this;\n }\n\n function create(rules, _opt, parent) {\n let $vm = mountForm(rules, _opt || {});\n const _this = $vm.$refs.fc.formCreate;\n _this.$parent = parent;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n }\n\n function factory(inherit) {\n let _config = {...config};\n if (inherit) {\n _config.inherit = {\n components,\n parsers,\n directives,\n providers,\n maker,\n data\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n id: id++,\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n name: vm.$options.propsData.name,\n inFor: vm.$options.propsData.inFor,\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n options: options || {},\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(this.options);\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this.api());\n } else {\n instance[this.name] = this.api();\n }\n }\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions(this.options);\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions(this.options);\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this.api());\n instance[this.name].splice(idx, 1);\n } else {\n delete instance[this.name];\n }\n }\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions(options) {\n this.options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = deepCopy(opt);\n parent && ['page', 'onSubmit', 'mounted', 'reload', 'formData', 'el'].forEach((n) => {\n delete opt[n];\n });\n if (opt.global) {\n target.global = mergeGlobal(target.global, opt.global);\n delete opt.global;\n }\n this.$handle.$manager.mergeOptions([opt], target);\n return target;\n },\n updateOptions(options) {\n this.mergeOptions(this.options, options);\n this.$handle.$manager.updateOptions(this.options);\n },\n created() {\n this.$handle.init();\n this.vm.$emit('created', this.api());\n },\n api() {\n return this.$handle.api;\n },\n render() {\n return this.$handle.render();\n },\n mounted() {\n this.$handle.mounted();\n },\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n data,\n maker,\n component,\n directive,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n getApi,\n init(rules, _opt = {}) {\n let $vm = mountForm(rules, _opt), _this = $vm.$refs.fc.formCreate;\n return {\n mount($el) {\n if ($el && is.Element($el))\n _this.options.el = $el;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n },\n remove() {\n $vm.$el.parentNode && $vm.$el.parentNode.removeChild($vm.$el);\n },\n destroy() {\n this.remove();\n $vm.$destroy();\n },\n $f: _this.api()\n };\n }\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(Vue, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n if (Vue._installedFormCreate === true) return;\n Vue._installedFormCreate = true;\n _vue = Vue;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n Vue.prototype.$formCreate = $formCreate;\n Vue.component('FormCreate', $form());\n Vue.component('FcFragment', $vnode());\n }\n })\n }\n\n useAttr(create);\n useStatic(create);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n parser(html);\n\n if (config.install) create.use(config);\n\n if (config.inherit) {\n const inherit = config.inherit;\n inherit.components && extend(components, inherit.components);\n inherit.parsers && extend(parsers, inherit.parsers);\n inherit.directives && extend(directives, inherit.directives);\n inherit.providers && extend(providers, inherit.providers);\n inherit.maker && extend(maker, inherit.maker);\n inherit.data && extend(data, inherit.data);\n }\n\n return create;\n}\n","import is from '@form-create/utils/lib/type';\nimport {creatorFactory} from '@form-create/core/src/index';\n\nexport function timeStampToDate(timeStamp) {\n if (is.Date(timeStamp))\n return timeStamp;\n else {\n let date = new Date(timeStamp);\n return date.toString() === 'Invalid Date' ? timeStamp : date;\n }\n}\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'dateRange', 'datetime', 'datetimeRange', 'year', 'month'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type: type.toLowerCase()});\n return maker;\n }, {});\n }()),\n mergeProp(ctx) {\n let props = ctx.prop.props;\n if (props.startDate) {\n props.startDate = props.startDate && timeStampToDate(props.startDate);\n }\n },\n\n isRange(el) {\n return el.type.includes('range') || el.multiple;\n },\n\n _toValue(val, ctx) {\n const value = ctx.el.formatDate(val || ''), {separator} = ctx.el,\n isRange = this.isRange(ctx.el);\n if (!value)\n return isRange ? (ctx.el.multiple ? [] : ['', '']) : value;\n else if (isRange)\n return value.split(separator);\n else\n return value;\n },\n\n toValue(formValue, ctx) {\n const el = ctx.el;\n if (el) {\n this.el = el;\n return this._toValue(formValue, ctx);\n }\n return formValue;\n },\n\n toFormValue(value, ctx) {\n if (ctx.el) {\n const v = ctx.el.parseDate(value);\n return this.isRange(ctx.el) ? v : v[0];\n } else {\n let isArr = Array.isArray(value), props = ctx.prop.props, parseValue, type = props.type || 'date';\n if (['daterange', 'datetimerange'].indexOf(type) !== -1) {\n if (isArr) {\n parseValue = value.map((time) => !time ? '' : timeStampToDate(time));\n } else {\n parseValue = ['', '']\n }\n } else if ('date' === type && props.multiple === true) {\n parseValue = toString(value);\n } else {\n parseValue = isArr ? (value[0] || '') : value;\n parseValue = !parseValue ? '' : timeStampToDate(parseValue);\n }\n return parseValue;\n }\n },\n mounted(ctx) {\n ctx.rule.value = this.toValue(ctx.$handle.getFormData(ctx), ctx);\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return [];\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'input';\nexport default {\n name,\n maker: (function () {\n const maker = ['password', 'url', 'email', 'text', 'textarea'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type});\n return maker;\n }, {});\n\n maker.idate = creatorFactory(name, {type:'date'});\n return maker\n }()),\n mergeProp(ctx) {\n let {props} = ctx.prop;\n if (props.autosize && props.autosize.minRows) {\n props.rows = props.autosize.minRows || 2;\n }\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'slider';\nexport default {\n name,\n maker: {\n sliderRange: creatorFactory(name, {range:true})\n },\n toFormValue(value, ctx) {\n let isArr = Array.isArray(value), props = ctx.prop.props, min = props.min || 0,\n parseValue;\n if (props.range === true) {\n parseValue = isArr ? value : [min, (parseFloat(value) || min)];\n } else {\n parseValue = isArr ? (parseFloat(value[0]) || min) : parseFloat(value);\n }\n return parseValue;\n }\n\n}\n","export default {\n name: 'switch',\n mergeProp(ctx) {\n const prop = ctx.prop.props.slot || {};\n const slot = ctx.prop.scopedSlots || {};\n if (prop.open) slot.open = () => prop.open;\n if (prop.close) slot.close = () => prop.close;\n ctx.prop.scopedSlots = slot;\n }\n}\n","export default {\n name: 'FcRow',\n render(_, ctx) {\n return ctx.vNode.col({props: {span: 24}}, [\n ctx.vNode.row(ctx.prop, _)\n ])\n }\n}","import datePicker from './datePicker';\nimport hidden from './hidden';\nimport input from './input';\nimport slider from './slider';\nimport iswitch from './switch';\nimport row from './row';\n\nexport default [\n datePicker, hidden, input, slider, iswitch, row\n]\n","export default {\n button: 'iButton',\n icon: 'Icon',\n slider: 'Slider',\n rate: 'Rate',\n upload: 'fcUpload',\n cascader: 'Cascader',\n colorPicker: 'ColorPicker',\n timePicker: 'TimePicker',\n datePicker: 'DatePicker',\n 'switch': 'iSwitch',\n select: 'fcSelect',\n checkbox: 'fcCheckbox',\n radio: 'fcRadio',\n inputNumber: 'InputNumber',\n input: 'iInput',\n formItem: 'FormItem',\n form: 'iForm',\n frame: 'fcFrame',\n col: 'iCol',\n row: 'row',\n tree: 'fcTree',\n autoComplete: 'AutoComplete',\n group: 'fcGroup',\n subForm: 'fcSubForm',\n object: 'fcSubForm',\n}\n","export const iviewConfig = {\n resetBtnType: 'default',\n resetBtnIcon: 'md-refresh',\n infoIcon: 'ios-information-circle-outline',\n};\n\nexport function info() {\n return {\n type: 'poptip',\n trigger: 'hover',\n placement: 'top-start',\n wordWrap: true,\n icon: iviewConfig.infoIcon\n }\n}\n\nexport default function getConfig() {\n return {\n form: {\n inline: false,\n labelPosition: 'right',\n labelWidth: 125,\n showMessage: true,\n autocomplete: 'off',\n size: undefined,\n },\n row: {\n gutter: 0,\n },\n submitBtn: {\n type: 'primary',\n disabled: false,\n innerText: '提交',\n loading: false,\n show: true,\n click: undefined,\n },\n resetBtn: {\n type: iviewConfig.resetBtnType,\n disabled: false,\n icon: iviewConfig.resetBtnIcon,\n innerText: '重置',\n loading: false,\n show: false,\n click: undefined,\n },\n };\n}\n","import getConfig, {info, iviewConfig} from './config';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\n\nfunction tidy(props, name) {\n if (!hasProperty(props, name)) return;\n if (is.String(props[name])) {\n props[name] = {[name]: props[name], show: true};\n }\n}\n\nfunction isFalse(val) {\n return val === false;\n}\n\nfunction tidyBool(opt, name) {\n if (hasProperty(opt, name) && !is.Object(opt[name])) {\n opt[name] = {show: !!opt[name]};\n }\n}\n\nexport default {\n validate() {\n const form = this.form();\n if (form) {\n return new Promise((resolve, reject) => {\n form.validate().then(flag => {\n flag ? resolve(true) : reject(false);\n })\n });\n }\n return new Promise(v => v());\n },\n validateField(field) {\n const form = this.form();\n if (form) {\n return new Promise((resolve, reject) => {\n form.validateField(field, e => {\n e ? reject(e) : resolve(null);\n })\n })\n }\n return new Promise(v => v());\n },\n clearValidateState(ctx) {\n const fItem = this.vm.$refs[ctx.wrapRef];\n if (fItem) {\n fItem.validateMessage = '';\n fItem.validateState = '';\n }\n },\n tidyOptions(options) {\n ['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col'].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 return new Promise((resolve, reject) => {\n const forms = api.children;\n const all = [h.$manager.validate()];\n forms.forEach(v => {\n all.push(v.validate());\n })\n Promise.all(all).then(() => {\n resolve(true);\n callback && callback(true);\n }).catch((e) => {\n reject(e);\n callback && callback(e);\n h.vm.$emit('validate-fail', e, {api});\n })\n });\n },\n validateField: (field, callback) => {\n return new Promise((resolve, reject) => {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n const sub = h.subForm[ctx.id];\n const all = [h.$manager.validateField(ctx.id)];\n toArray(sub).forEach(v => {\n all.push(v.validate().catch(() => {\n return Promise.reject('子表单验证未通过');\n }));\n })\n Promise.all(all).then(() => {\n resolve(null);\n callback && callback(null);\n }).catch((e) => {\n reject(e);\n callback && callback(e);\n h.vm.$emit('validate-field-fail', e, {field, api});\n })\n });\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach(field => {\n if (clearSub) this.clearSubValidateState(field);\n h.getCtxs(field).forEach(ctx => {\n h.$manager.clearValidateState(ctx);\n });\n });\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n const subForm = h.subForm[ctx.id];\n if (!subForm) return;\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.clearValidateState();\n })\n } else if (subForm) {\n subForm.clearValidateState();\n }\n });\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.submitBtnProps({show: !!isShow});\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.resetBtnProps({show: !!isShow});\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true);\n extend(btn, props);\n h.options.submitBtn = btn;\n api.refreshOptions();\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false);\n extend(btn, props);\n h.options.resetBtn = btn;\n api.refreshOptions();\n },\n submit(successFn, failFn) {\n api.validate((valid) => {\n if (valid) {\n let formData = api.formData();\n if (is.Function(successFn))\n invoke(() => successFn(formData, this));\n else {\n is.Function(h.options.onSubmit) && invoke(() => h.options.onSubmit(formData, this));\n h.vm.$emit('submit', formData, this);\n }\n } else {\n is.Function(failFn) && invoke(() => failFn(this, ...arguments));\n }\n });\n },\n });\n\n return api;\n}\n","import components from '../components';\nimport parsers from '../parsers';\nimport alias from './alias';\nimport manager from './manager';\nimport FormCreateFactory from '@form-create/core/src/index';\nimport makers from './maker';\nimport '../style/index.css';\nimport extendApi from './api';\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias);\n\n components.forEach(component => {\n FormCreate.component(component.name, component);\n });\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser);\n });\n\n Object.keys(makers).forEach(name => {\n FormCreate.maker[name] = makers[name];\n });\n}\n\nexport default function 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","checked","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","_this","toString","readonly","clearable","makeGroup","children","makeBtn","makeItem","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","_this2","handleClick","_this3","handleRemove","makeFiles","_this4","fileIcon","size","makeImages","_this5","_this6","splice","frameLoad","iframe","api","_this7","set","get","fn","$on","onClose","console","log","makeFooter","$props","node","_this8","$nextTick","_this9","$refs","frame","contentWindow","mask","footerHide","mounted","closeModal","v2","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","slot","slotName","treeData","setStatus","$forceUpdate","_data","$set","id","list","on","parseFile","file","url","getFileName","split","pop","createUpload","uploadType","uploadList","cacheFiles","showUploadList","defaultFileList","upload","every","status","o","isDisabled","makeProgress","percent","percentage","hideInfo","$scopedSlots","vm","showProgress","makeUpload","isShow","display","imgUpIcon","files","handleCancel","$watch","target","Vue","$del","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","extend","createGroup","rules","expand","button","max","min","defaultValue","syncDisabled","fontSize","onBeforeAdd","len","cacheRule","cacheValue","computed","formRule","item","$f","formData","deferSyncValue","setValue","once","expandRule","total","addRule","removeRule","_value","cache","JSON","stringify","input","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","removeIcon","makeIcon","emitEvent","args","$form","Type","extendOption","inFor","span","pull","group","checkbox","radio","select","tree","subForm","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","destroyed","validate","renderRule","ctxInject","updateValue","isMore","formCreate","_refresh","_renderRule","_updateValue","forceCoverValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","fapi","rmSubForm","sub","getSubForm","idx","addSubForm","immediate","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","attrs","format","msg","tip","warn","err","error","logError","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","eval","parseFn","trim","flag","replace","__inject","parseJson","json","parse","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","r","mergeGlobal","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","baseRule","effect","hidden","creatorFactory","init","maker","Creator","appendProto","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","Api","tidyFields","fields","getCtxs","$render","clearCache","allSubForm","subs","getFieldCtx","appendValue","appendData","getValue","ctxs","fieldCtx","removeField","getCtx","rm","destroy","$el","parentNode","removeChild","$destroy","append","after","child","sort","root","prepend","state","hiddenStatus","displayStatus","all","component","nameCtx","bind","updateOptions","fc","onSubmit","sync","deleted","clearCacheAll","refreshOptions","$manager","hideForm","hide","changeStatus","clearChangeStatus","updateRule","updateRules","mergeRules","setEffect","attr","substr","clearEffectData","updateValidate","updateValidates","validates","refreshValidate","resetFields","method","el","trigger","nextTick","bus","$once","nextRefresh","changeValue","changeField","useCache","Render","initCache","use","setCache","vnode","getCache","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","toLocaleLowerCase","uniqueId","Math","random","Date","now","deepSet","to","useRender","initRender","tempList","clearOrgChildren","initOrgChildren","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","parseSide","side","renderSides","temp","prefix","suffix","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","preview","makeWrap","custom","mergeProp","onMounted","getFormData","callback","expression","__rule__","isRm","rmCtx","defaultRender","vNode","makeComponent","alias","aliasMap","_this10","handle","CreateNode","useInject","Handler","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","watching","loading","unshift","EVENT","usePage","page","first","limit","getLimit","parseInt","pageEnd","pageLoad","pageFn","loadRule","ceil","clearNextTick","clearTimeout","bindNextTick","setTimeout","loadedId","RuleContext","wrapRef","linkOn","ctrlRule","payload","updateType","updateKey","effectData","setParser","check","unwatch","un","unlink","link","appendLink","watchTo","watchCtx","rmCtrl","$api","ctrl","_rm","noWatch","updated","condition","useLoader","parseRule","_rule","fullRule","loadFn","loadCtrl","control","syncProp","pre","cycleLoad","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","isCtrl","bindParser","setCtx","_preIndex","preIndex","refreshUpdate","defineProperty","valueHandle","refreshControl","useCtrl","controls","getCtrl","handleFn","findCtrl","isHidden","hideLst","reverse","clearValidateState","ruleCon","ctrlCtx","_reloadRule","initData","reloading","nextReload","useInput","toValue","formValue","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","toEmpty","toFormValue","deferSyncFn","strFn","refreshRule","BaseParser","noneKey","useContext","getNameCtx","setIdCtx","rmIdCtx","isMounted","getParser","parsers","noWatchFn","rmSub","watchEffect","useLifecycle","_mounted","lifecycle","useEffect","useProvider","ps","providers","_c","getComponent","onEffect","provider","used","_used","_ctx$rule","_ctx$rule$effect","emitEffect","getEffect","p","getProp","clearProp","arr","components","manager","extendApi","getError","action","xhr","getBody","text","responseText","response","fetch","XMLHttpRequest","onerror","onError","onload","onSuccess","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","__init","parseProp","domProps","innerHTML","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","componentValidate","load","validator","run","parseOpt","body","message","loaded","$required","parseVal","_","join","_vue","window","_parseProp","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","exportAttrs","instance","FormCreateFactory","fragment","directives","$provider","globalConfig","getApi","directive","register","componentAlias","base","formCreateParser","$vnode","install","_opt","inherit","_config","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","html","timeStampToDate","timeStamp","date","startDate","isRange","includes","multiple","_toValue","formatDate","separator","parseDate","parseValue","time","idate","autosize","minRows","rows","sliderRange","range","parseFloat","scopedSlots","col","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","Promise","resolve","reject","then","validateField","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","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","ivuFormCreate","process"],"mappings":";;;;;;4OAAa,SAASA,kBAAkBA,SAASC,OAAOC,QAAQ,SAASC,OAAO,IAAIC,EAAEC,EAAE,EAAEA,EAAEC,UAAUC,OAAOF,QAAQ,IAAIG,KAAKJ,EAAEE,UAAUD,GAAKJ,OAAOQ,UAAUC,eAAeC,KAAKP,EAAEI,KAAKL,EAAEK,GAAGJ,EAAEI,WAAWL,IAAYS,MAAMC,KAAKP,wFAAW,IAAIQ,YAAY,CAAC,QAAQ,QAAQ,YAAYC,aAAa,CAAC,QAAQ,QAAQ,cAAcC,gBAAgB,CAAC,KAAK,YAAYC,cAAc,SAASd,UAAUA,EAAEe,OAAO,SAASb,EAAEF,OAAO,IAAIC,KAAKD,KAAME,EAAED,GAAkB,IAAI,IAAIU,YAAYK,QAAQf,GAAGC,EAAED,GAAGJ,SAAS,GAAGK,EAAED,GAAGD,EAAEC,SAAS,IAAI,IAAIW,aAAaI,QAAQf,GAAG,KAAKI,EAAEH,EAAED,aAAagB,MAAMf,EAAED,GAAG,CAACC,EAAED,IAAIiB,EAAElB,EAAEC,aAAagB,MAAMjB,EAAEC,GAAG,CAACD,EAAEC,IAAIC,EAAED,GAAGI,EAAEc,OAAOD,QAAQ,IAAI,IAAIL,gBAAgBG,QAAQf,OAAQ,IAAImB,KAAKpB,EAAEC,MAAMC,EAAED,GAAGmB,GAAG,KAAKC,EAAEnB,EAAED,GAAGmB,aAAaH,MAAMf,EAAED,GAAGmB,GAAG,CAAClB,EAAED,GAAGmB,IAAIE,EAAEtB,EAAEC,GAAGmB,aAAaH,MAAMjB,EAAEC,GAAGmB,GAAG,CAACpB,EAAEC,GAAGmB,IAAIlB,EAAED,GAAGmB,GAAGC,EAAEF,OAAOG,QAAQpB,EAAED,GAAGmB,GAAGpB,EAAEC,GAAGmB,QAAS,GAAG,QAAQnB,EAAE,IAAI,IAAIsB,KAAKvB,EAAEC,GAAGC,EAAED,GAAGsB,GAAGrB,EAAED,GAAGsB,GAAGC,QAAQtB,EAAED,GAAGsB,GAAGvB,EAAEC,GAAGsB,IAAIvB,EAAEC,GAAGsB,QAAQrB,EAAED,GAAGD,EAAEC,QAAzfC,EAAED,GAAGD,EAAEC,UAA4fC,GAAG,KAAKsB,QAAQ,SAASxB,EAAEC,UAAU,WAAWD,GAAGA,EAAES,MAAMC,KAAKP,WAAWF,GAAGA,EAAEQ,MAAMC,KAAKP,oBAA4BW,s1GCAriC,SAASW,QAAQC,EAAOC,UAC5B7B,OAAO8B,KAAKF,GAAOX,OAAO,SAACc,EAAKC,UAC9BH,IAAsC,IAA3BA,EAAQX,QAAQc,IAC5BD,EAAIE,KAAKL,EAAMI,IAEZD,GACR,ICJP,IAAMG,KAAO,sBAEE,CACXF,KAAME,KACNC,MAAO,CACHC,iBAAkB,CACdC,KAAMrC,OACNsC,UAAU,GAEdC,MAAO,CACHF,KAAMlB,cACG,iBAAM,MAGvBqB,MAAO,4BACyB,CACxBC,wBACSC,UAETC,MAAM,GAEVJ,sBACSG,WAGbE,sBACW,CACHC,UAAW,KAGnBC,QAAS,CACLC,uBACUC,EAAMpC,KAAKwB,iBAAiBW,eAC3B5B,MAAM8B,QAAQD,GAAOA,EAAM,IAEtCE,iBAAQC,QACCC,MAAM,QAASxC,KAAKmC,UAAUM,OAAO,SAACL,UAAkC,IAA1BG,EAAEjC,QAAQ8B,EAAIM,SAAeC,IAAI,SAACP,UAAQA,EAAIT,QAAOc,OAAO,SAAAG,eAAWC,IAAND,MAExHd,sBACUgB,EAAUvC,MAAM8B,QAAQrC,KAAK2B,OAAS3B,KAAK2B,MAAQ,CAAC3B,KAAK2B,YAC1DM,UAAYjC,KAAKmC,UAAUM,OAAO,SAACL,UAAwC,IAAhCU,EAAQxC,QAAQ8B,EAAIT,SAC/DgB,IAAI,SAACI,UAAWA,EAAOL,UAGpCM,wBACSlB,UAETmB,yEAC8BjD,KAAKwB,iBAAiB0B,eACrC,CAACvB,MAAO3B,KAAKiC,uBACVjC,KAAKsC,aAAUtC,KAAKmC,UAAUQ,IAAI,SAACP,EAAKe,OACxC5B,oBAAYa,iBACXb,EAAMI,qCACWJ,QAAiB4B,EAAQ,IAAMf,EAAIT,YAC3DZ,QAAQf,KAAKoD,YCxDd,SAASC,QAAQ1B,UACrBpB,MAAM8B,QAAQV,GACfA,EACC,CAAC,UAAMkB,EAAW,IAAIvC,QAAQqB,IAAU,EAAI,GAAK,CAACA,GCH7D,SAAS2B,YAAYC,EAAKC,QACX,IAARA,IAAiBA,EAAM,QACxBC,EAAWD,EAAIC,YAEdF,GAA2B,oBAAbG,cAEfC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAMpC,KAAO,WAEI,QAAbgC,GACEE,EAAKI,WACPJ,EAAKK,aAAaH,EAAOF,EAAKI,YAKhCJ,EAAKM,YAAYJ,GAGfA,EAAMK,WACRL,EAAMK,WAAWC,QAAUZ,EAE3BM,EAAMI,YAAYP,SAASU,eAAeb,4kCCpB9C,IAAMjC,OAAO,UAEE,SAAS+C,YAAYC,SACzB,CACHlD,KAAME,OACNC,MAAO,CACHC,iBAAkB,CACdC,KAAMrC,OACNsC,UAAU,GAEdD,KAAM,CACFA,KAAM8C,eACG,SAEbC,MAAOD,OACPE,OAAQ,CACJhD,KAAMiD,iBACG,GAEbC,SAAU,CACNlD,KAAMiD,iBACG,GAEbE,IAAK,CACDnD,KAAM8C,OACN7C,UAAU,GAEdmD,KAAM,CACFpD,KAAM8C,eACGD,EAAOQ,YAEpBC,MAAO,CACHtD,KAAM,CAACuD,OAAQT,gBACN,KAEbU,OAAQ,CACJxD,KAAM8C,eACG,SAEbW,UAAW,CACPzD,KAAMuD,eACG,GAEbG,UAAW,CACP1D,KAAM8C,eACG,MAEba,aAAc,CACV3D,KAAM8C,eACG,MAEbc,WAAYd,OACZe,WAAY,CACR7D,KAAM,CAAC8C,OAAQG,sBACN7B,GAEb0C,MAAOhB,OACPiB,YAAa,CACT/D,KAAMiD,iBACG,GAEbe,OAAQ,CACJhE,KAAMiE,iBACG,cAGbC,KAAM,CACFlE,KAAMiE,iBACG,cAGbE,SAAU,CACNnE,KAAMiE,iBACG,cAGbG,OAAQ,CACJpE,KAAMiE,iBACG,cAGbI,eAAgB,CACZrE,KAAMiE,iBACG,cAGbK,SAAU,CACNtE,KAAMiE,iBACG,cAGbM,SAAU,CACNvE,KAAMiE,0BACEd,QACCqB,aAAejG,KAAKkG,OAAOtB,QAC3BuB,gBAAiB,IAG9BC,MAAO,CACH3E,KAAMrC,eACG,iBAAO,KAEpBiH,OAAQ,CACJ5E,KAAM,CAAC8C,OAAQS,SAEnBrD,MAAO,CAACpB,MAAOgE,OAAQS,OAAQ5F,QAC/BkH,iBAAazD,EACb0D,OAAQ,CACJ9E,KAAMiD,iBACG,GAEb8B,OAAQ,CACJ/E,KAAMiD,iBACG,GAEb+B,SAAU,CACNhF,KAAMiD,iBACG,GAEbgC,MAAO,CACHjF,KAAMiD,iBACG,IAIjB1C,sBACW,CACH2E,SAAUtD,QAAQrD,KAAK2B,OACvBwE,gBAAgB,EAChBS,cAAc,EACdX,aAAc,KAGtBrE,MAAO,CACHD,eAAMY,QACGoE,SAAWtD,QAAQd,IAE5BoE,kBAASpE,OACCsE,EAAyB,IAAnB7G,KAAKkF,UAAmB3C,EAAE,IAAM,GAAMA,OAC7CC,MAAM,QAASqE,QACfrE,MAAM,SAAUqE,IAEzBjC,aAAIrC,QACKuE,UAAY9G,KAAK8G,QAAQlC,IAAMrC,KAG5CL,QAAS,CACL6E,aAAIC,UACOA,GAEXC,oBAAWC,QACF1E,MAAM0E,EAAQ,SAAW,OAC1BlH,KAAKwG,cACAW,KAAK,YACLA,KAAK,gBAETP,cAAe,GAExBQ,qBACQpH,KAAK2E,WAAY,IAAU3E,KAAKyF,gBAC/BmB,cAAe,IAGxBS,sDACU9F,EAAQ,CACVE,KAAM,OACNE,MAAQ3B,KAAK2G,SAAShE,IAAI,SAAAC,UAAK0E,EAAKpB,OAAOtD,KAAK2E,WAChD1C,KAAM7E,KAAK6E,KACX2C,UAAU,EACVC,WAAW,sCAGMlG,UAAW,YAAa,kBAAM+F,EAAKF,oBAAmBpH,KAAK+G,IAAI,cAGxFW,mBAAUC,qCACD3H,KAAKkF,WAAalF,KAAK2G,SAASjH,OAASM,KAAKkF,YAC/CyC,EAAStG,KAAKrB,KAAK4H,wBACN5H,KAAK+G,IAAI,6BAAcY,KAG5CE,kBAAS1E,EAAOwE,8CACM,eAAgB3H,KAAK+G,IAAI,OAAS5D,uBAAYwE,KAEpEG,eAAMpH,OACI8D,EAAQxE,KAAKwB,iBAAiBgD,OAASxE,KAAKwE,SAC9CA,GAAS9D,IAAM8D,EACf,MAAM,IAAIuD,MAAM,kBAGxBC,mBAAUnB,EAAK1D,iCACa,IAApBnD,KAAKsF,aAA6C,IAArBtF,KAAKwF,YAAsB,KAClDyC,EAAQ,UACK,SAAdjI,KAAKyB,OAAuC,IAApBzB,KAAKsF,YAAwC,SAAdtF,KAAKyB,MAAmBzB,KAAKsF,aACrF2C,EAAM5G,KAAKrB,KAAKkI,eAAerB,EAAK1D,IACpCnD,KAAKwF,aACLyC,EAAM5G,KAAKrB,KAAKmI,eAAetB,EAAK1D,mBAEtB,sBAAuBnD,KAAK+G,IAAI,QAAQkB,MAGlEC,wBAAerB,EAAK1D,qEAEL,CAAC1B,MAA2B,IAApBzB,KAAKsF,iBAA2CzC,IAApB7C,KAAKsF,WAA4B,kBAAoBtF,KAAKsF,wBAC3F,kBAAM8C,EAAKC,YAAYxB,SAAW7G,KAAK+G,IAAI,KAAO5D,QAGpEgF,wBAAetB,EAAK1D,qEACI,CAAC1B,KAAM,iCAAgC,kBAAM6G,EAAKC,aAAa1B,SAC1E7G,KAAK+G,IAAI,KAAO5D,QAG7BqF,6DACWxI,KAAK0H,UAAU1H,KAAK2G,SAAShE,IAAI,SAACiC,EAAKzB,UACnCsF,EAAKZ,SAAS1E,EAAO,4BAAc,CAAC1B,KAAM6C,EAAOoE,SAAUC,KAAM,gBAC1D,kBAAMF,EAAKJ,YAAYzD,SAAS6D,EAAKT,UAAUpD,EAAKzB,SAG1EyF,8DACW5I,KAAK0H,UAAU1H,KAAK2G,SAAShE,IAAI,SAACiC,EAAKzB,UACnC0F,EAAKhB,SAAS1E,EAAO,qBAAW0F,EAAK3C,OAAOtB,MAASiE,EAAKb,UAAUpD,EAAKzB,SAGxFyE,0EACsB,0BAA0B,kBAAMkB,EAAK1B,kBAC9CpH,KAAK+G,IAAI,oCACD,CAACtF,KAAMzB,KAAK6E,KAAM8D,KAAM,WAG7CN,qBAAYzD,UACD5E,KAAKgG,SAASpB,IAEzB2D,sBAAa3D,GACL5E,KAAK2E,WACL,IAAU3E,KAAK8F,eAAelB,UACzB+B,SAASoC,OAAO/I,KAAK2G,SAASrG,QAAQsE,GAAM,QAC5CmB,SAASnB,KAGtBsB,gBAAOtB,UACM5E,KAAKqG,OAAgBzB,EAAI5E,KAAKqG,QAAfzB,GAE5BoE,mBAAUC,mBACDpD,OAAOoD,QAEY,IAAhBjJ,KAAKyE,SACLwE,EAAM,mBAAyB,CAC3BC,IAAKlJ,KAAKwB,iBAAiB0H,IAC3BhC,MAAO,SAAC1C,GACJ2E,EAAKrB,MAAMtD,GACX2E,EAAKlC,cAETmC,IAAK,SAAC5E,EAAO7C,GACTwH,EAAKrB,MAAMtD,GACN2E,EAAKxE,UACNwE,EAAK3G,MAAM,QAASb,IAG5B0H,IAAK,SAAC7E,UACF2E,EAAKrB,MAAMtD,GACJ2E,EAAKxH,OAEhBgE,KAAM,SAAA2D,UAAMH,EAAKI,IAAI,MAAOD,IAC5BE,QAAS,SAAAF,UAAMH,EAAKI,IAAI,SAAUD,MAI5C,MAAO9I,GACLiJ,QAAQC,IAAIlJ,KAGpBmJ,yDAC+D3J,KAAK4J,OAAzDzE,IAAAA,UAAWC,IAAAA,aAAcqB,IAAAA,SAAUC,IAAAA,MACpCmD,EAAO,YADoCtD,QAI7CE,GACAoD,EAAKxI,2BACS,kBAA2B,IAApByI,EAAKlE,YAAwBkE,EAAK7C,YAAW,OAAS7B,KAC3EsB,GACAmD,EAAKxI,6BAAkB,qBACT,kBAAuB,IAAhByI,EAAKnE,QAAoBmE,EAAK7C,iBAAgB9B,KAChE0E,GAPaA,IAU5B5G,sBAGQ4G,wBAFEpI,EAAOzB,KAAKyB,KAIdoI,EADS,UAATpI,EACOzB,KAAKqH,YACE,UAAT5F,EACEzB,KAAK4I,aAEL5I,KAAKwI,kBACgCxI,KAAK4J,OAA9C7E,IAAAA,MAAOE,IAAAA,OAAQL,IAAAA,IAAKW,IAAAA,MAAOF,IAAAA,uBAC7B0E,UAAU,WACPC,EAAKC,MAAMC,OACXF,EAAKhB,UAAUgB,EAAKC,MAAMC,MAAMC,eAAiB,qBAGvC,cAAaN,8BAEhB,CAACO,KAAMpK,KAAKsG,YAAaf,MAAOF,EAAYgF,YAAY,kBADnDL,EAAK7D,oCAAL6D,EAAK7D,sCAEN,yBAAmBnG,KAAKiG,8DAExBlB,MAAAA,EAAOQ,MAAAA,GAAUvF,KAAKoG,yBACnB,kBAAO4D,EAAK/C,YAAW,kBADa+C,EAAKpD,kCAALoD,EAAKpD,qBAErD5G,KAAK4G,eAAiB5G,KAAKwG,uBAAsB,mBAAa5B,cAAiB,WAAW,QAC9EK,SACA,eACD,UACN,mBACG,WACLjF,KAAK2J,oBAKtBW,wBACSf,IAAI,gBAAiBvJ,KAAKuK,cCjU3C,IAAML,MAAQ7F,YAAY,CACtBqE,SAAU,cACV5D,WAAY,oBAIhBoF,MAAMM,GAAKnG,YAAY,CACnBqE,SAAU,gBACV5D,WAAY,WCRhB,IAAMxD,OAAO,gBAEE,CACXF,KAAME,OACNC,MAAO,CACHC,iBAAkB,CACdC,KAAMrC,OACNsC,UAAU,GAEdC,MAAO,IAEXC,MAAO,4BACyB,CACxBC,wBACSC,UAETC,MAAM,GAEVJ,sBACSG,WAGbE,sBACW,CACHC,UAAW,KAGnBC,QAAS,CACLC,uBACUC,EAAMpC,KAAKwB,iBAAiBW,eAC3B5B,MAAM8B,QAAQD,GAAOA,EAAM,IAEtCE,iBAAQC,QACCC,MAAM,QAASxC,KAAKmC,UAAUM,OAAO,SAACL,UAAQA,EAAIM,QAAUH,IAAGlC,OAAO,SAACoK,EAASrI,UAAQA,EAAIT,OAAO,MAE5GG,kCACSG,UAAYjC,KAAKmC,UAAUM,OAAO,SAACL,UAAQA,EAAIT,QAAU2F,EAAK3F,QAAOtB,OAAO,SAACoK,EAASrI,UAAQA,EAAIM,OAAO,MAGtHM,wBACSlB,UAETmB,sEAC2BjD,KAAKwB,iBAAiB0B,eAAa,CAACvB,MAAO3B,KAAKiC,uBACzDjC,KAAKsC,aAAUtC,KAAKmC,UAAUQ,IAAI,SAACP,EAAKe,OACxC5B,oBAAYa,iBACXb,EAAMI,kCACQJ,QAAiB4B,EAAQ,IAAMf,EAAIT,YACxDZ,QAAQf,KAAKoD,YClDvBsH,GAAK,CACPjJ,cAAKkJ,EAAKlJ,UACCrC,OAAOQ,UAAU2H,SAASzH,KAAK6K,KAAS,WAAalJ,EAAO,KAEvEmJ,eAAMhI,UACKA,MAAAA,GAEXiI,iBAAQF,SACkB,WAAfG,QAAOH,IAA4B,OAARA,GAAiC,IAAjBA,EAAII,WAAmBL,GAAGtL,OAAOuL,IAEvFK,mBAAUhJ,UACCzB,MAAM8B,QAAQL,IAASA,EAAKtC,OAAS,GAEhDgG,kBAAS9C,OACCnB,EAAOzB,KAAKiL,QAAQrI,SACV,aAATnB,GAAgC,kBAATA,GAElCwJ,iBAAQrI,OACEsI,EAAM9L,OAAOQ,UAAU2H,SAASzH,KAAK8C,SACpC,oBAAoBuI,KAAKD,GAAK,IAEzCE,eAAMzJ,UACEA,MAAAA,OAIApB,MAAM8B,QAAQV,KAAUpB,MAAM8B,QAAQV,IAAWA,EAAMjC,SAInC,iBAAViC,IAAuBA,KAUtC,SAAS0J,YAAYC,EAAMC,SACtB,GAAI1L,eAAeC,KAAKwL,EAAMC,GAP1C,CAAC,OAAQ,SAAU,SAAU,UAAW,QAAS,UAAUC,QAAQ,SAAAC,GAC/Df,GAAGe,GAAK,SAAUd,UACPD,GAAGjJ,KAAKkJ,EAAKc,MClC5B,IAAMnK,OAAO,kBACE,CACXF,KAAME,OACNoK,YAAY,EACZnK,MAAO,CACHC,iBAAkB,CACdC,KAAMrC,OACNsC,UAAU,IAGlBuB,gBAAOrC,EAAG+K,OACAxJ,EAAUwJ,EAAIpK,MAAMC,iBAAiBW,qCACxBwJ,EAAI3J,SAAQzB,MAAM8B,QAAQF,GAAWA,EAAU,IAAIQ,IAAI,SAACpB,EAAO4B,OACxEyI,EAAOrK,EAAMqK,yCACGrK,QACR4B,EAAQ,IAAM5B,EAAMI,UAC7BiK,qBACSrK,EAAMsK,UAAY,YAAYnB,GAAGhF,SAASkG,GAAQrK,EAAMqK,KAAKhL,GAAKgL,IAAmB,SAEnGD,EAAIhE,aClBVrG,OAAO,cAEE,CACXF,KAAME,OACNC,MAAO,CACHC,iBAAkB,CACdC,KAAMrC,OACNsC,UAAU,GAEdD,KAAM,CACFA,KAAM8C,eACG,WAEb5C,MAAO,CACHF,KAAM,CAAClB,MAAOgE,OAAQS,gBACb,iBAAM,MAGvBhD,sBACW,CACH8J,SAAU,KAGlBlK,MAAO,CACHD,eAAMY,QACGwJ,UAAUxJ,KAGvBS,wBACS+I,UAAU/L,KAAK2B,QAExBO,QAAS,CACL6J,mBAAUpK,OACAY,EAAIc,QAAQ1B,GACZK,EAAOhC,KAAKwB,iBAAiB0B,KAAK3B,MAAMS,KAChC,kBAATP,KAAsBzB,KAAK8C,QAAQd,EAAMO,EAAG,YAAcvC,KAAK8C,QAAQd,EAAMO,EAAG,gBAChFyJ,gBAETlJ,iBAAQmJ,EAAOtK,EAAOF,cAClBwK,EAAMT,QAAQ,SAAC3B,GACXvC,EAAK4E,KAAKrC,EAAMpI,GAAkC,IAA5BE,EAAMrB,QAAQuJ,EAAKsC,UACnBtJ,IAAlBgH,EAAKlC,UAA0BpH,MAAM8B,QAAQwH,EAAKlC,WAClDL,EAAKxE,QAAQ+G,EAAKlC,SAAUhG,EAAOF,MAG/Ca,iBAAQ8J,QACC5J,MAAM,QAAS4J,EAAKzJ,IAAI,SAAAkH,UAAQA,EAAKsC,QAGlDlJ,qCACUoJ,EAAK,SACO,aAAdrM,KAAKyB,KACL4K,EAAG,oBAAsBrM,KAAKsC,QAE9B+J,EAAG,mBAAqBrM,KAAKsC,4BAEhBtC,KAAKwB,iBAAiB0B,UAAU,YAAWmJ,MAAKtL,QAAQf,KAAKoD,mkCCvDtF,SAASkJ,UAAUC,SACR,CACHC,IAAKD,EACLnL,KAAMqL,YAAYF,IAI1B,SAASE,YAAYF,UACT,GAAKA,GAAMG,MAAM,KAAKC,8BAGlC,IAAMrL,OAAO,WAGE,SAASsL,aAAatI,SAC1B,CACHlD,KAAME,OACNC,MAAO,CACHC,iBAAkB,CACdC,KAAMrC,OACNsC,UAAU,GAEdsE,SAAU,CACNvE,KAAMiE,0BACE6G,QACCtG,aAAesG,EAAKC,SACpBrG,gBAAiB,IAG9B0G,WAAY,CACRpL,KAAM8C,eACG,QAEbW,UAAW,CACPzD,KAAMuD,eACG,GAEbQ,YAAa,CACT/D,KAAMiD,iBACG,GAEbW,WAAYd,OACZe,WAAY,CACR7D,KAAM,CAAC8C,OAAQG,iBACN,cAEb/C,MAAO,CAACpB,MAAOgE,SAEnBvC,sBACW,CACH8K,WAAY,GACZ3G,gBAAgB,EAChBF,aAAc,GACd8G,WAAY,KAGpB/J,wBAC4DH,IAApD7C,KAAKwB,iBAAiB0B,KAAK3B,MAAMyL,iBACjChN,KAAKwB,iBAAiB0B,KAAK3B,MAAMyL,gBAAiB,QACjDxL,iBAAiB0B,KAAK3B,MAAM0L,gBAAkB5J,QAAQrD,KAAK2B,OAAOgB,IAAI2J,YAE/E1K,MAAO,CACHD,eAAMY,GACEvC,KAAKiK,MAAMiD,OAAOvG,SAASwG,MAAM,SAAAZ,UACzBA,EAAKa,QAA0B,aAAhBb,EAAKa,gBAEvBnD,MAAMiD,OAAOvG,SAAWtD,QAAQd,GAAGI,IAAI2J,gBACvCQ,WAAa9M,KAAKiK,MAAMiD,OAAOvG,WAG5CzB,mBAAU3C,EAAG8K,GACC,IAANA,GAAiB,IAAN9K,GACXvC,KAAK8B,WAGjBI,QAAS,CACL6E,aAAIC,UACOA,GAEXsG,6BACyD,IAA9CtN,KAAKwB,iBAAiB0B,KAAK3B,MAAMoD,UAE5CoB,kBAASwG,GACDvM,KAAKsN,mBACJrD,MAAMiD,OAAO3E,aAAagE,IAEnClE,qBAAYkE,QACHvG,SAASuG,IAElB1E,kBAAS0E,EAAMpJ,mCACgB,UAApBnD,KAAK6M,+BACIN,EAAKC,SAAUxM,KAAK+G,IAAI,MAAQ5D,gCAC7B,CAAC1B,KAAM6C,EAAOoE,SAAUC,KAAM,UAAU3I,KAAK+G,IAAI,IAAM5D,QAE9EgF,wBAAeoE,EAAMpJ,gEACC,+BAA8B,kBAAMmE,EAAKvB,SAASwG,SAC3DvM,KAAK+G,IAAI,KAAO5D,MAE7B+E,wBAAeqE,EAAMpJ,iEAEc,IAApBnD,KAAKsF,iBAA2CzC,IAApB7C,KAAKsF,WAA4B,kBAAoBtF,KAAKsF,sBACnF,kBAAM8C,EAAKC,YAAYkE,SAAYvM,KAAK+G,IAAI,KAAO5D,MAErEoK,sBAAahB,EAAMpJ,8DACS,CAACqK,QAASjB,EAAKkB,WAAYC,UAAU,WAAa,gBACjE1N,KAAK+G,IAAI,KAAO5D,QAE7B6E,mBAAUuE,EAAMpJ,6BACN8E,EAAQ,MACVjI,KAAKwF,cAAmC,IAApBxF,KAAKsF,kBACA,SAApBtF,KAAK6M,aAA6C,IAApB7M,KAAKsF,YAA8C,SAApBtF,KAAK6M,YAAyB7M,KAAKsF,aACjG2C,EAAM5G,KAAKrB,KAAKkI,eAAeqE,EAAMpJ,IACrCnD,KAAKwF,aACLyC,EAAM5G,KAAKrB,KAAKmI,eAAeoE,EAAMpJ,mBAEvB,oBAAmB8E,KAG7CO,6DACWxI,KAAK8M,WAAWnK,IAAI,SAAC4J,EAAMpJ,UAAUmF,EAAKqF,aAAahH,SAAW2B,EAAKqF,aAAahH,SAAS,CAChG4F,KAAAA,EACApJ,MAAAA,EACAyK,GAAItF,iBACOA,EAAKvB,IAAI5D,SACd,aAAYoJ,EAAKsB,aAAevF,EAAKiF,aAAahB,EAAMpJ,GAAS,CAACmF,EAAKT,SAAS0E,EAAMpJ,GAAQmF,EAAKN,UAAUuE,EAAMpJ,SAEjI2K,gDACUC,GAAW/N,KAAKkF,WAAalF,KAAKkF,UAAYlF,KAAK8M,WAAWpN,oCACjDM,KAAKwB,iBAAiB0B,UAAU,eACxC,CAAC8K,QAAS,oBACZhO,KAAK+G,IAAI,cACbgH,qBAAwB,YACpB/N,KAAKoD,+BAA6B,6CAClB,CACT3B,KAA0B,SAApBzB,KAAK6M,WAAwB,2BAA6BvI,EAAO2J,UACvEtF,KAAM,YAGJ,KAAM5H,QAAQf,KAAKoD,OAAQ,CAAC,eAGlDtB,sBACQoM,EAAQlO,KAAKiK,MAAMiD,OAAOvG,SAAShE,IAAI,SAAC4J,UAASA,EAAKC,MAAK/J,OAAO,SAAC+J,eAAgB3J,IAAR2J,IAC3ExM,KAAK+M,WAAWrN,SAAWwO,EAAMxO,QAAWwO,EAAMxO,cAC7CqN,8BAAiBmB,QACjB1L,MAAM,QAA4B,IAAnBxC,KAAKkF,UAAmBgJ,EAAM,IAAM,GAAMA,KAGtEC,6BACShI,gBAAiB,IAG9BlD,mDACQjD,KAAKiK,MAAMiD,cAC6CrK,IAApD7C,KAAKwB,iBAAiB0B,KAAK3B,MAAMyL,iBACjChN,KAAKwB,iBAAiB0B,KAAK3B,MAAMyL,eAAiBhN,KAAKiK,MAAMiD,OAAOF,qBACnExL,iBAAiB0B,KAAK3B,MAAM0L,gBAAkBjN,KAAKiK,MAAMiD,OAAOD,gCAI3D,eAAc,CAACjN,KAAKwB,iBAAiB0B,KAAK3B,MAAMyL,eAAiB,GAAKhN,KAAKwI,YAAaxI,KAAK8N,0CAExF,CAACvI,MAAOvF,KAAKqF,WAAYgF,YAAY,kBADhC5B,EAAKtC,oCAALsC,EAAKtC,2CAER,cAAmCnG,KAAKiG,oBAAxB,qBAIzCqE,mCACSwC,WAAa9M,KAAKiK,MAAMiD,OAAOvG,cAC/ByH,OAAO,kBAAMvF,EAAKoB,MAAMiD,OAAOvG,UAAU,WAC1CkC,EAAK/G,UACN,CAACC,MAAM,MC7KtB,IAAMmL,OAASN,aAAa,CAExBlE,SAAU,cACVuF,UAAW,cCHR,SAAS/B,KAAKmC,EAAQ7J,EAAO7C,GAChC2M,IAAIlF,IAAIiF,EAAQ7J,EAAO7C,GAGpB,SAAS4M,KAAKF,EAAQ7J,GACzB8J,WAAWD,EAAQ7J,GCJR,SAASgK,WAAWC,OAAQJ,yDAAS,GAAIK,yCAChDC,GAAQ,MACP,IAAI5H,KAAOsH,KACRjP,OAAOQ,UAAUC,eAAeC,KAAKuO,EAAQtH,GAAM,KAC/C6H,EAAQP,EAAOtH,OACd4H,EAAQpO,MAAM8B,QAAQuM,KAAWlE,GAAGtL,OAAOwP,GAAQ,KAChDC,OAAsBhM,IAAhB4L,EAAO1H,MACb4H,EACAA,GAAQ,EACRE,GAAO3C,KAAKuC,EAAQ1H,EAAK,SACtB,GAAI6H,EAAME,aAAmBjM,IAAT6L,EAAoB,KACvCA,EAGG,CACHxC,KAAKuC,EAAQ1H,EAAK6H,EAAME,mBAHxBF,EAAQA,EAAMG,UACdF,GAAO3C,KAAKuC,EAAQ1H,EAAK,SAM7B8H,GAAO3C,KAAKuC,EAAQ1H,EAAK,IAE7B0H,EAAO1H,GAAOyH,WAAWC,EAAO1H,GAAM6H,EAAOF,QAE7CxC,KAAKuC,EAAQ1H,EAAK6H,GACblE,GAAGE,MAAMgE,KACLlE,GAAGE,MAAMgE,EAAMI,UAChBP,EAAO1H,GAAKiI,OAASJ,EAAMI,QAE1BtE,GAAGE,MAAMgE,EAAMK,YAChBR,EAAO1H,GAAKkI,SAAWL,EAAMK,uBAMhCpM,IAAT6L,GAAsBnO,MAAM8B,QAAQoM,GAAWA,EAAOhM,OAAO,SAAAG,UAAMA,IAAMA,EAAEsM,SAAUT,EAG1F,SAASU,SAASxN,UACd6M,WAAW,GAAI,CAAC7M,MAAAA,IAAQA,MFlCnCuL,OAAO1C,GAAKoC,aAAa,CAErBlE,SAAU,gBACVuF,UAAW,UGTf,IAAM9O,WAAWC,OAAOC,QAAU,SAAUC,OACnC,IAAIC,EAAGC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,QAChC,IAAIG,KAAKJ,EAAIE,UAAUD,GACxBJ,OAAOQ,UAAUC,eAAeC,KAAKP,EAAGI,IAAOuM,KAAK5M,EAAGK,EAAGJ,EAAEI,WAI7DL,GAGI,SAAS8P,gBACbjQ,WAASY,MAAMC,KAAMP,WCThC,IAAM6B,OAAO,UAEE,SAAS+N,YAAY/K,SACzB,CACHlD,KAAME,OACNC,MAAO,CACHiD,MAAOD,OACP+G,KAAM,CAAC/K,MAAOnB,QACdkQ,MAAO/O,MACPgP,OAAQvK,OACR7C,QAAS/C,OACToC,iBAAkB,CACdC,KAAMrC,OACNsC,UAAU,GAEd8N,OAAQ,CACJ/N,KAAMiD,iBACG,GAEb+K,IAAK,CACDhO,KAAMuD,eACG,GAEb0K,IAAK,CACDjO,KAAMuD,eACG,GAEbrD,MAAO,CACHF,KAAMlB,cACG,iBAAM,KAEnBoP,aAAcvQ,OACduF,SAAU,CACNlD,KAAMiD,iBACG,GAEbkL,aAAc,CACVnO,KAAMiD,iBACG,GAEbmL,SAAU,CACNpO,KAAMuD,eACG,IAEbc,eAAgB,CACZrE,KAAMiE,iBACG,cAGboK,YAAa,CACTrO,KAAMiE,iBACG,eAIjB1D,sBACW,CACH+N,IAAK,EACLC,UAAW,GACXC,WAAY,GACZxO,UAAMoB,IAGdqN,SAAU,CACNC,2BACQnQ,KAAKsP,MACEtP,KAAKsP,MAEZtP,KAAKsL,KACE/K,MAAM8B,QAAQrC,KAAKsL,MAAQtL,KAAKsL,KAAO,CAACtL,KAAKsL,MAEjD,KAGf1J,MAAO,CACHuO,SAAU,CACNtO,iBAAQU,EAAG8K,cACPjO,OAAO8B,KAAKlB,KAAKgQ,WAAWxE,QAAQ,SAAA5I,OAC1BwN,EAAO9I,EAAK0I,UAAUpN,MACxBwN,EAAKC,GAAI,KACHxJ,EAAMuJ,EAAKC,GAAGC,cAChB/N,IAAM8K,EACN+C,EAAKC,GAAGE,eAAe,WACnB/B,WAAW4B,EAAK9E,KAAM/I,GACtB6N,EAAKC,GAAGG,SAAS3J,KAClB,OACA,KACGA,EAAMuJ,EAAKC,GAAGC,WACpBF,EAAKC,GAAGI,KAAK,YAAa,WACtBL,EAAKC,GAAGG,SAAS3J,KAErBuJ,EAAK9E,KAAO6D,SAAS5M,QAKrCR,MAAM,GAEV4C,kBAASpC,MACDvC,KAAK4P,aAAc,KACbzO,EAAMnB,KAAKgQ,UACjB5Q,OAAO8B,KAAKC,GAAKqK,QAAQ,SAAAD,GACrBpK,EAAIoK,GAAG8E,GAAG1L,SAASpC,OAI/BgN,gBAAOhN,OACC5C,EAAI4C,EAAIvC,KAAK2B,MAAMjC,OACnBC,EAAI,QACC+Q,WAAW/Q,IAGxBgC,eAAMY,cACFA,EAAIA,GAAK,OACLrB,EAAO9B,OAAO8B,KAAKlB,KAAKgQ,WAAYW,EAAQzP,EAAKxB,OAAQqQ,EAAMY,EAAQpO,EAAE7C,UACzEqQ,EAAM,EAAG,KACJ,IAAIlP,EAAIkP,EAAKlP,EAAI,EAAGA,SAChB+P,QAAQrO,EAAE7C,OAASmB,OAEvB,IAAIA,EAAI,EAAGA,EAAI8P,EAAO9P,SAClB2P,SAAStP,EAAKL,GAAI0B,EAAE1B,QAE1B,IACCkP,EAAM,MACD,IAAIlP,EAAI,EAAGA,EAAIkP,EAAKlP,SAChBgQ,WAAW3P,EAAKyP,EAAQ9P,EAAI,IAGzC0B,EAAEiJ,QAAQ,SAAC3E,EAAKhG,GACZuH,EAAKoI,SAAStP,EAAKL,GAAI0B,EAAE1B,SAKzCqB,QAAS,CACL4O,gBAAOlO,UACKA,GAAKyI,YAAYzI,EAAG5C,KAAKwE,OAAU5B,EAAE5C,KAAKwE,OAAS5B,GAE/DmO,eAAMxF,EAAG1E,QACAoJ,WAAW1E,GAAKyF,KAAKC,UAAUpK,IAExCqK,eAAMvP,QACGa,MAAM,QAASb,QACfa,MAAM,SAAUb,IAEzB2O,kBAASvJ,EAAKuJ,cACJN,EAAYhQ,KAAKgQ,UACjB9O,EAAO9B,OAAO8B,KAAK8O,MACrB9O,EAAKuB,OAAO,SAAA8I,UAAKyE,EAAUzE,GAAG8E,KAAI3Q,SAAWwB,EAAKxB,YAGhDiC,EAAQT,EAAKyB,IAAI,SAAA4I,OACbvJ,EAAO+E,IAAQwE,EAAI+E,oBAAehI,EAAK0H,UAAUzE,GAAG8E,GAAGc,MACvDxP,EAAQ2G,EAAK9D,MAAQxC,EAAKsG,EAAK9D,QAAU,KAAOxC,SACtDsG,EAAKyI,MAAMxF,EAAG5J,GACPA,SAENuP,MAAMvP,KAEf6O,kBAASzJ,EAAKpF,OACJ6C,EAAQxE,KAAKwE,MAAO6L,EAAKrQ,KAAKgQ,UAAUjJ,GAAKsJ,GAC/C7L,IACA7C,qBAAU6C,EAAQxE,KAAK8Q,OAAOnP,KAE9B3B,KAAKiQ,WAAWlJ,KAASiK,KAAKC,UAAUzM,EAAQ7C,EAAM6C,GAAS7C,UAG9DoP,MAAMhK,EAAKpF,GAChB0O,EAAGe,WAAWzP,GAAS,MAE3BiP,iBAAQ/P,EAAGwQ,cACD/F,EAAOtL,KAAKwB,iBAAiB2P,KAAKG,UAAUtR,KAAKmQ,UACjDhO,EAAUnC,KAAKmC,0BAAcnC,KAAKmC,SAAW,CAC/CoP,WAAW,EACXC,UAAU,MAEVxR,KAAK2P,aAAc,CACdxN,EAAQmO,WAAUnO,EAAQmO,SAAW,QACpCmB,EAAStC,SAASnP,KAAK2P,cAC7BP,OAAOjN,EAAQmO,SAAUtQ,KAAKwE,yBAAUxE,KAAKwE,MAAQiN,GAAUA,QAE9DvF,KAAKlM,KAAKgQ,YAAahQ,KAAK+P,IAAK,CAACzE,KAAAA,EAAMnJ,QAAAA,IACzCkP,QACKtH,UAAU,kBAAMtB,EAAKjG,MAAM,MAAO8I,EAAMlM,OAAO8B,KAAKuH,EAAKuH,WAAWtQ,OAAS,MAG1FgS,eAAM7Q,EAAGkG,EAAKsJ,mBACLL,UAAUjJ,GAAKsJ,GAAKA,OACpBC,SAASvJ,EAAKsJ,EAAGC,iBACjBvG,UAAU,WACPlB,EAAK+G,cACLS,EAAG1L,SAASkE,EAAKlE,UAErBkE,EAAKrG,MAAM,cAAe6N,EAAIjR,OAAO8B,KAAK2H,EAAKmH,WAAW1P,QAAQyG,OAG1E8J,oBAAW9J,EAAKsK,cACNlO,EAAQ/D,OAAO8B,KAAKlB,KAAKgQ,WAAW1P,QAAQyG,QAC7C4K,QAAQ3R,KAAKgQ,UAAWjJ,QACxB4K,QAAQ3R,KAAKiQ,WAAYlJ,GAC1BsK,QACKtH,UAAU,kBAAMjB,EAAKtG,MAAM,SAAUW,MAGlDyO,aAAI/Q,GACIb,KAAK2E,WAAY,IAAU3E,KAAK8P,YAAY9P,KAAK2B,aAGhDiP,QAAQ/P,GAAG,IAEpBgR,aAAI1O,EAAO4D,GACH/G,KAAK2E,WAAY,IAAU3E,KAAK8F,eAAe9F,KAAK2B,MAAOwB,UAG1D0N,WAAW9J,GAAK,QAChBpF,MAAMoH,OAAO5F,EAAO,QACpB+N,MAAMlR,KAAK2B,SAEpBmQ,iBAAQ/K,wDACkBA,eAAazC,EAAOwN,mCAClB9R,KAAK6P,8BAAqB7P,KAAK2E,SAAW,4BAA8B,gCAClF3E,KAAK4R,QAEvBG,iBAAQ5O,EAAO4D,mEACWA,eAAazC,EAAO0N,sCAClBhS,KAAK6P,8BAAqB7P,KAAK2E,SAAW,4BAA8B,yBAClF,kBAAMwE,EAAK0I,IAAI1O,EAAO4D,QAExCkL,kBAAStB,EAAOxN,EAAO4D,qBACf/G,KAAK2N,aAAa6B,OACXxP,KAAK2N,aAAa6B,OAAO,CAC5BmB,MAAAA,EACAxN,MAAAA,EACAyK,GAAI5N,KACJ+G,IAAAA,EACA8K,IAAK,kBAAM/H,EAAK+H,IAAI1O,EAAO4D,IAC3B6K,IAAK5R,KAAK4R,MAGJ,IAAVzO,EACO,CAAe,IAAbnD,KAAKyP,KAAakB,GAAS3Q,KAAKyP,IAAO,KAAOzP,KAAK8R,QAAQ/K,GAAoB,IAAb/G,KAAK0P,KAAaiB,EAAQ3Q,KAAK0P,IAAO1P,KAAK+R,QAAQ5O,EAAO4D,GAAO,MAE5I4J,EAAQ3Q,KAAK0P,IACN1P,KAAK+R,QAAQ5O,EAAO4D,WAGnCmL,mBAAU9Q,EAAM+Q,EAAMhP,EAAO4D,QACpBvE,kBAAMpB,6BAAS+Q,IAAMnS,KAAKgQ,UAAUjJ,GAAKsJ,GAAIlN,MAEtDuN,oBAAWnO,OACF,IAAI1B,EAAI,EAAGA,EAAI0B,EAAG1B,SACdc,MAAMN,KAAKrB,KAAKwE,MAAQ,KAAO,MAIhDxB,wBACSvB,KAAOzB,KAAKwB,iBAAiB2P,KAAKiB,YACjCzS,GAAKK,KAAKuP,QAAU,GAAKvP,KAAK2B,MAAMjC,OACtCC,EAAI,QACC+Q,WAAW/Q,OAEf,IAAIkB,EAAI,EAAGA,EAAIb,KAAK2B,MAAMjC,OAAQmB,SAC9B+P,QAAQ/P,IAGrBoC,4CACU/B,EAAO9B,OAAO8B,KAAKlB,KAAKgQ,WACxBR,EAASxP,KAAKwP,OACd6C,EAAOrS,KAAKyB,YACK,IAAhBP,EAAKxB,OACPM,KAAK2N,qBAAwB3N,KAAK2N,qBAAqB,CACpDC,GAAI5N,KACJ4R,IAAK5R,KAAK4R,oBACG,oBAAetN,EAAOwN,mCACf9R,KAAK6P,oDAA2C7P,KAAK2E,SAAW,4BAA8B,yBACxG3E,KAAK4R,oBACT,QAAQ1Q,EAAKyB,IAAI,SAACoE,EAAK5D,SACL6G,EAAKgG,UAAUjJ,GAAhCuE,IAAAA,KAAMnJ,IAAAA,qCACK,cAAc,YAAY4E,QAClC,8EACKyI,EAAS,GAAK,uBAChBzI,OACD,gBACgB,SAACuJ,UAAatG,EAAKsG,SAASvJ,EAAKuJ,iBACnC,SAAClP,8BAAS+Q,mCAAAA,2BAASnI,EAAKkI,UAAU9Q,EAAM+Q,EAAMhP,EAAO4D,IACnEmK,MAAO,SAACb,UAAOrG,EAAK0H,MAAMvO,EAAO4D,EAAKsJ,gBAEnC,CACH1O,MAAOqI,EAAKxF,yBAAUwF,EAAKxF,MAAQwF,EAAK8G,OAAO9G,EAAKrI,MAAMwB,KAAW6G,EAAKrI,MAAMwB,GAChFmI,KAAAA,EACAvI,OAAQZ,EACRmQ,cAAc,EACdC,OAAO,SAGd/C,4BACU,CAACgD,KAAM,EAAGC,KAAM,EAAGpR,KAAM,OAAK2I,EAAKiI,SAAS/Q,EAAKxB,OAAQyD,EAAO4D,KAAc,aC1SjH,IAAM2L,MAAQrD,YAAY,CACtB2C,WAAY,4BACZF,QAAS,2BAGbY,MAAMlI,GAAK6E,YAAY,CACnByC,QAAS,mBACTE,WAAY,sBCThB,IAAM1Q,OAAO,gBAEE,CACXF,KAAME,OACNC,MAAO,CACH+J,KAAM/K,MACN4B,QAAS/C,OACToC,iBAAkB,CACdC,KAAMrC,OACNsC,UAAU,GAEdC,MAAO,CACHF,KAAMrC,eACG,iBAAO,KAEpBuF,SAAU,CACNlD,KAAMiD,iBACG,GAEbkL,aAAc,CACVnO,KAAMiD,iBACG,IAGjB1C,sBACW,CACHgO,UAAW,GACXC,WAAY,GACZxO,UAAMoB,IAGdjB,MAAO,CACH+C,kBAASpC,QACAqN,cAAgB5P,KAAKgQ,UAAUK,GAAG1L,SAASpC,IAEpDZ,eAAMY,QACGiO,SAASjO,KAGtBL,QAAS,CACLoO,kBAAS3O,QACAsO,WAAae,KAAKC,UAAUtP,QAC5Ba,MAAM,QAASb,QACfa,MAAM,SAAUb,IAEzB6O,kBAAS7O,OACCuJ,EAAM8F,KAAKC,UAAUtP,GACvB3B,KAAKiQ,aAAe/E,SAGnB+E,WAAa/E,OACb8E,UAAUK,GAAGe,WAAWzP,GAAS,MAE1CiP,uBACUzO,EAAUnC,KAAKmC,QAAUnC,KAAKmC,QAAU,CAC1CoP,WAAW,EACXC,UAAU,GAEdrP,EAAQmO,2BAAgBtQ,KAAK2B,OAAS,SACjCqO,UAAY,CAAC1E,KAAMtL,KAAKsL,KAAMnJ,QAAAA,IAEvCuP,eAAMrB,mBACGL,UAAUK,GAAKA,OACftG,UAAU,WACXzC,EAAKsI,cAAgBS,EAAG1L,SAAS2C,EAAK3C,UACtC2C,EAAK9E,MAAM,cAAe6N,MAGlC6B,mBAAU9Q,8BAAS+Q,mCAAAA,yBACV3P,kBAAMpB,UAAS+Q,MAG5BnP,wBACS4N,eACAnP,KAAOzB,KAAKwB,iBAAiB2P,KAAKiB,SAE3CnP,uCAC4BjD,KAAKgQ,UAAtB1E,IAAAA,KAAMnJ,IAAAA,iBACAnC,KAAKyB,oBAEV,gBACgBzB,KAAKsQ,sBACPtQ,KAAKkS,UACnBhB,MAAOlR,KAAK0R,kBAET,CAACpG,KAAAA,EAAMvI,OAAQZ,EAASmQ,cAAc,oBC5E1C,CACXK,SACAC,MACAC,OACAC,KACAC,IACA7I,MACAgD,OACAwF,OCdEpR,OAAO,aAEP0R,cAAgB,SAAhBA,EAAiBpF,EAAIqF,MAClBrF,GAAMA,IAAOqF,SAGdrF,EAAGpM,iBACIoM,EAAGpM,iBAEVoM,EAAGsF,QACIF,EAAcpF,EAAGsF,QAASD,WAI1B,SAASE,YAAYC,SACzB,CACHhS,KAAME,OACN+R,cAAe/R,OACfgS,MAAO,CACHpQ,KAAM,OAEVqQ,yBACW,CACHC,KAAMxT,OAGdyT,OAAQ,CAACD,KAAM,SAAU,OACzBjS,MAAO,CACH+J,KAAM,CACF7J,KAAMlB,MACNmB,UAAU,GAEdqB,OAAQ,CACJtB,KAAMrC,eACG,iBACE,KAGfkT,aAAc5N,QACd/C,MAAOvC,OACP8J,IAAK9J,OACLgC,KAAMmD,OACNwO,QAAS,CACLtR,KAAMiD,iBACG,GAEb6N,MAAO7N,SAEX1C,sBACW,CACHsO,cAAUzN,EACV6Q,WAAW,EACXC,SAAU,GACVtD,QAAIxN,EACJkL,QAAQ,EACR/G,OAAQ,EACR4M,8BAAgB5T,KAAKsL,MAAQ,IAC7BuI,UAAW,GACXC,YAAa9C,KAAKC,UAAUjR,KAAK2B,OAAS,IAC1CoS,SAAU/T,KAAKuS,QAGvBtP,yBACWjD,KAAKgU,WAAW/Q,UAE3Bf,QAAS,CACL+R,sBACMjU,KAAKgH,QAEXkN,4BACSN,8BAAiB5T,KAAKsL,MAAQ,KAEvC6I,sBAAaxS,GACL3B,KAAK0T,iBACJI,YAAc9C,KAAKC,UAAUtP,QAC7Ba,MAAM,eAAgBb,MAGnCC,MAAO,CACHD,MAAO,CACHE,iBAAQU,GACAyO,KAAKC,UAAU1O,GAAK,MAAQvC,KAAK8T,mBAChCzD,GAAG/L,OAAO8P,gBAAkBpU,KAAKqQ,GAAGe,WAAW7O,GAAK,IAAMvC,KAAKqQ,GAAGG,SAASjO,GAAK,MAEzFR,MAAM,GAEVgB,OAAQ,CACJlB,iBAAQU,QACCyR,WAAWK,YAAY9R,QACvB8N,GAAGiE,WAEZvS,MAAM,GAEVuJ,cAAK/I,cACGA,EAAE7C,SAAWM,KAAK4T,WAAWlU,QAAU6C,EAAE4K,MAAM,SAAAvK,UAAK0E,EAAKsM,WAAWtT,QAAQsC,IAAM,WACjFoR,WAAWO,QAAQC,WAAWjS,QAC9B2R,iBAGbO,qCAC2BzU,KAAK0U,SAASC,UAA9BrJ,IAAAA,KAAMvI,IAAAA,YACRiR,WAAa,IAAIZ,EAAWpT,KAAMsL,EAAMvI,GAC7C3D,OAAO8B,KAAKlB,KAAKgU,WAAW9Q,MAAMsI,QAAQ,SAAAD,GACtC6D,OAAOhH,EAAKsM,SAASnJ,GAAInD,EAAK4L,WAAW9Q,KAAKqI,WAE7C/I,MAAM,eAAgBxC,KAAKgU,WAAW9K,QAE/ClG,8BACU4K,EAAK5N,KAAM4U,EAAO5U,KAAKgU,WAAW9K,MAkBlC2L,EAAY,eACRpB,EAAST,cAAcpF,EAAIA,EAAG4F,SAChCC,KACI7F,EAAGmG,OAAQ,KACLe,EAAMzR,QAAQoQ,EAAOsB,cACrBC,EAAMF,EAAIxU,QAAQsU,GACpBI,GAAO,GACPF,EAAI/L,OAAOiM,EAAK,QAGpBvB,EAAOV,WAKnBnF,EAAGrE,IAAI,qBAAsB,WACzBsL,WAGCzG,OAAO,kBAAM9F,EAAKyK,SAAS,SAACxQ,GAC7BA,EArCe,cACXqL,EAAG4F,KAAM,KAGDsB,EAFFrB,EAAST,cAAcpF,EAAIA,EAAG4F,MAChCC,IAEI7F,EAAGmG,QACHe,EAAMzR,QAAQoQ,EAAOsB,eACjB1T,KAAKuT,GAGTE,EAAMF,EAEVnB,EAAOV,QAAQ+B,KAyBnBG,GAAeJ,KACpB,CAACK,WAAW,MCtJpB,IAAMjV,cAAc,CAAC,QAAS,QAAS,WAAY,eAC7CC,eAAe,CAAC,QAAS,QAAS,cAClCC,kBAAkB,CAAC,KAAM,YAEhCgV,WAAa,SAAbA,EAAcC,OAAS3K,yDAAU,GAAIrI,yDAAM,GACvCiT,YAAmBpV,iCAAgBmC,EAAG,QAAc,KACpDkT,YAAoBpV,kCAAiBkC,EAAG,OAAa,KACrDmT,YAAuBpV,qCAAoBiC,EAAG,YAAkB,KAChEoT,EAAapT,EAAG,OAAa,UAE5BgT,EAAQ/U,OAAO,SAACf,EAAGC,OACjB,IAAMwH,KAAOxH,KACVD,EAAEyH,MACEyO,EAAWlV,QAAQyG,IAAQ,EAC3BzH,EAAEyH,GAAOoO,EAAW,CAAC5V,EAAEwH,IAAOzH,EAAEyH,SAC7B,GAAIsO,EAAa/U,QAAQyG,IAAQ,EACpCzH,EAAEyH,oCAAWzH,EAAEyH,IAASxH,EAAEwH,SACvB,GAAIuO,EAAchV,QAAQyG,IAAQ,EAAG,KAClC0O,EAAOnW,EAAEyH,aAAgBxG,MAAQjB,EAAEyH,GAAO,CAACzH,EAAEyH,IAC7C2O,EAAOnW,EAAEwH,aAAgBxG,MAAQhB,EAAEwH,GAAO,CAACxH,EAAEwH,IACnDzH,EAAEyH,gCAAW0O,sBAASC,SACnB,GAAIH,EAAiBjV,QAAQyG,IAAQ,MACnC,IAAM4O,KAASpW,EAAEwH,MACdzH,EAAEyH,GAAK4O,GAAQ,KACTF,EAAOnW,EAAEyH,GAAK4O,aAAkBpV,MAAQjB,EAAEyH,GAAK4O,GAAS,CAACrW,EAAEyH,GAAK4O,IAChED,EAAOnW,EAAEwH,GAAK4O,aAAkBpV,MAAQhB,EAAEwH,GAAK4O,GAAS,CAACpW,EAAEwH,GAAK4O,IACtErW,EAAEyH,GAAK4O,gCAAaF,sBAASC,SAE7BpW,EAAEyH,GAAK4O,GAASpW,EAAEwH,GAAK4O,QAG5B,GAAY,SAAR5O,MACF,IAAI6O,KAAQrW,EAAEwH,GACXzH,EAAEyH,GAAK6O,GACPtW,EAAEyH,GAAK6O,GAAQ9U,UAAQxB,EAAEyH,GAAK6O,GAAOrW,EAAEwH,GAAK6O,IAE5CtW,EAAEyH,GAAK6O,GAAQrW,EAAEwH,GAAK6O,QAI9BtW,EAAEyH,GAAOxH,EAAEwH,QAGXsO,EAAa/U,QAAQyG,IAAQ,GAAKwO,EAAiBjV,QAAQyG,IAAQ,GAAKyO,EAAWlV,QAAQyG,IAAQ,EACnGzH,EAAEyH,qBAAWxH,EAAEwH,IACRuO,EAAchV,QAAQyG,IAAQ,EACrCzH,EAAEyH,GAAOxH,EAAEwH,aAAgBxG,yBAAYhB,EAAEwH,IAA2B,WAAlB+D,QAAOvL,EAAEwH,sBAAwBxH,EAAEwH,IAAQxH,EAAEwH,GAE/FzH,EAAEyH,GAAOxH,EAAEwH,UAGhBzH,GACRmL,IAGD3J,UAAU,SAAC+U,EAAKC,UAClB,WACID,GAAOA,EAAI9V,MAAMC,KAAMP,WACvBqW,GAAOA,EAAI/V,MAAMC,KAAMP,aCvDlBsW,SAAW,CAAC,OAAQ,OAAQ,aAAc,QAAS,OAAQ,SAAU,SAAU,UAAW,SAAU,UAAW,OAAQ,aAAc,OAAQ,SAAU,SAAU,SAAU,OAAQ,YAAa,MAAO,UAAW,YAAa,SAE/NC,WAAa,CAAC,WAAY,WAAY,WAEtCC,YAAc,CAAC,SAAU,QAE/B,SAASC,wBACDH,4BAAa9V,kCAAgBC,mCAAiBC,mBAAoB6V,WAAeC,sBCVhFE,OAAO1U,EAAM2U,EAAK9K,SACtB,uBAAgB7J,gBAAU2U,IAAS9K,EAAQ,aAAe0F,KAAKC,UAAU3F,EAAKyD,QAAUzD,EAAKyD,UAAYzD,GAAS,IAGvH,SAAS+K,IAAID,EAAK9K,GACrB7B,QAAQ6M,KAAKH,OAAO,MAAOC,EAAK9K,IAG7B,SAASiL,IAAIH,EAAK9K,GACrB7B,QAAQ+M,MAAML,OAAO,MAAOC,EAAK9K,IAG9B,SAASmL,SAASjW,GACrB+V,IAAI/V,EAAE+G,YACNkC,QAAQ+M,MAAMhW,GCVlB,IAAMkW,OAAS,wBACTC,OAAS,wBAETC,GAAK,OACLC,IAAM,QACNC,SAAW,WAEV,SAASC,OAAOC,EAAKC,UACjBjG,KAAKC,UAAUzC,WAAW,GAAIwI,GAAK,GAAO,SAAUjQ,EAAKF,OACxDA,IAAsB,IAAfA,EAAIqQ,WAGXpM,QAAOjE,KAAQiQ,gBACRjQ,KAEPA,EAAImI,cACGnI,EAAImI,UAEXnI,EAAIoI,WACJpI,EAAMA,EAAIoI,WAEVpI,EAAIsQ,cAEDT,OAAS7P,EAAM8P,SACvBM,GAGP,SAASG,OAAO9N,WACL+N,KAAK,IAAMP,SAAW,aAAexN,GAAK,SAG9C,SAASgO,QAAQhO,EAAIoF,MACpBpF,GAAMoB,GAAGnG,OAAO+E,IAAOA,EAAG5J,OAAS,EAAG,KAClCkD,EAAI0G,EAAGiO,OACPC,GAAO,SAEH5U,EAAEtC,QAAQqW,QAAU,GAA2B,IAAtB/T,EAAEtC,QAAQoW,QACnC9T,EAAIA,EAAE6U,QAAQd,OAAQ,IAAIc,QAAQf,OAAQ,IAC1Cc,GAAO,OACJ,GAAsB,IAAlB5U,EAAEtC,QAAQsW,IACjBhU,EAAIA,EAAE6U,QAAQb,GAAI,IAClBY,GAAO,MACJ,CAAA,GAAuB,IAAnB5U,EAAEtC,QAAQuW,YACjBjU,EAAIwU,OAAO,qBAAuBxU,EAAE6U,QAAQZ,IAAK,IAAM,MACrD7H,OAAS1F,EACX1G,EAAE8U,UAAW,EACN9U,EACC8L,GAAgC,IAAxB9L,EAAEtC,QAAQwW,WAAmBlU,IAAMkU,WACnDU,GAAO,OAENA,EAAM,OAAOlO,MACZzC,EAAMuQ,QAAiC,IAAzBxU,EAAEtC,QAAQwW,WAAuC,IAAnBlU,EAAEtC,QAAQ,KAAewW,SAAW,IAAMlU,EAAKA,UACjGiE,EAAImI,OAAS1F,EACNzC,EACT,MAAOrG,eACL+V,mBAAY3T,sBAAapC,YAI1B8I,EAGJ,SAASqO,UAAUC,EAAMlJ,UACrBsC,KAAK6G,MAAMD,EAAM,SAAUrM,EAAG3I,UAC7B8H,GAAGE,MAAMhI,KAAOA,EAAEtC,QAAgBsC,EAC/B0U,QAAQ1U,EAAG8L,KC3DnB,SAASoJ,WAAWnW,EAAOoW,SACvB,CACHpW,MAAAA,EACAmW,YAAY,EACZE,cAAc,EACdD,WAAYA,GAKb,SAASE,SAAS3M,UACdgG,UAAU,CAAChG,IAAO,GAGtB,SAASgG,UAAUhC,EAAOZ,UACtBF,WAAW,sBAAQc,GAAQZ,IAAQ,GAGvC,SAASwJ,UAAU5M,EAAM6M,UAC5BhD,WAAW5U,MAAM8B,QAAQ8V,GAASA,EAAQ,CAACA,GAAQ7M,EAAM,CAAC8M,MAAOpC,WAAYqC,OAAQpC,cAC9E3K,EAGJ,SAASyD,QAAQzD,OACdgN,EAAI5N,GAAGhF,SAAS4F,EAAKyD,SAAWzD,EAAKyD,UAAYzD,SAClDgN,EAAE7W,OACH6W,EAAE7W,KAAO,SAEN6W,EAGJ,SAASC,YAAYlK,EAAQ8J,UAC3B9J,GACLjP,OAAO8B,KAAKiX,GAAS,IAAI3M,QAAQ,SAACD,GAC1B4M,EAAM5M,KACN8C,EAAO9C,GAAK2M,UAAU7J,EAAO9C,IAAM,GAAI4M,EAAM5M,OAG9C8C,GANa8J,EASjB,SAASK,UAAUC,EAAMC,GAC5BtZ,OAAOuZ,iBAAiBF,EAAMrZ,OAAO8B,KAAKwX,GAAOrY,OAAO,SAACoK,EAASc,UAC9Dd,EAAQc,GAAK,CACTlC,sBACWqP,EAAMnN,OAGdd,GACR,KAGA,SAASmO,MAAMtN,UACXA,EAAKuN,SAAWvN,EAAKwN,WAAaxN,EAAKwN,WAAWD,OAAS,MAG/D,SAASE,OAAOzP,EAAI0P,OAEnBA,EAAM1P,IACR,MAAO9I,GACLiW,SAASjW,UAENwY,WClEKC,iBACL,CACH1X,MAAO,GACP8K,GAAI,GACJlK,QAAS,GACTwF,SAAU,GACVuR,OAAQ,GACRC,QAAQ,EACRnL,SAAS,EACTrM,WAAOkB,GAIR,SAASuW,eAAehY,EAAMiY,UAC1B,SAAC9T,EAAOf,EAAO7C,OAAOJ,yDAAQ,GAC3B+X,EAAQ,IAAIC,QAAQnY,EAAMmE,EAAOf,EAAO7C,EAAOJ,UACjD8X,IACI3O,GAAGhF,SAAS2T,GAAOA,EAAKC,GACvBA,EAAM/X,MAAM8X,IAEdC,GAIA,SAASC,QAAQ9X,EAAM8D,EAAOf,EAAO7C,EAAOJ,QAClD0K,MAAQmD,OAAO6J,WAAY,CAACxX,KAAAA,EAAM8D,MAAAA,EAAOf,MAAAA,EAAO7C,MAAAA,EAAOJ,MAAOA,GAAS,UACvEoU,MAAQ3V,KAAKqM,GAkBf,SAASmN,YAAYtD,GACxBA,EAAM1K,QAAQ,SAAApK,GACVmY,QAAQ3Z,UAAUwB,GAAQ,SAAU2F,UAChCmR,UAAUlY,KAAKiM,yBAAS7K,EAAO3B,UAAUC,OAAS,EAAIqH,qBAAQA,EAAMtH,UAAU,MACvEO,QAnBnBoP,OAAOmK,QAAQ3Z,UAAW,CACtBmP,0BACW/O,KAAKiM,OAEhBwN,iBAAQ1S,EAAKpF,UACTuK,KAAKlM,KAAKiM,MAAOlF,EAAKpF,GACf3B,MAEX8O,sBACUF,EAAQ,IAAI5O,KAAK0Z,mBACvB9K,EAAM3C,MAAQgM,SAASjY,KAAKiM,OACrB2C,KAaf4K,YAAYtD,SCzDZ,IAAMyD,YAAcP,eAAe,IAE5B,SAASQ,OAAOnY,EAAM+C,EAAOe,OAC5BsU,EAAOF,YAAY,GAAInV,UAC3BqV,EAAK5N,MAAMxK,KAAOA,EAClBoY,EAAK5N,MAAM1G,MAAQA,EACZsU,EAGJ,SAASC,UAAUC,EAAUnM,EAAIpJ,EAAOe,OACvCsU,EAAOF,YAAY,GAAInV,UAC3BqV,EAAK5N,MAAMxK,KAAO,WAClBoY,EAAK5N,MAAM8N,SAAWA,EACtBF,EAAK5N,MAAM1G,MAAQA,EACnBsU,EAAK5N,MAAM2B,GAAKA,EACTiM,EAGI,SAASG,qBACb,CACHJ,OAAAA,OACAE,UAAAA,UACAC,SAAUD,UACVG,QAASb,gBCjBjB,SAASc,KAAKvY,UACHwN,SAASxN,GAGL,SAASwY,IAAIvZ,YAEfwZ,EAAWC,UACZ3P,GAAGE,MAAMyP,GACTA,EAASzZ,EAAEyZ,SACL9Z,MAAM8B,QAAQgY,KACpBA,EAAS,CAACA,IACPA,WAGF9Y,EAAM8Y,EAAQtT,EAAKF,GACxBuT,EAAWC,GAAQ7O,QAAQ,SAAAhH,GACvB5D,EAAE0Z,QAAQ9V,GAAOgH,QAAQ,SAAAG,GACrBO,KAAKP,EAAIL,KAAMvE,EAAKF,GACpBjG,EAAE2Z,QAAQC,WAAW7O,gBAKxB8O,QACCC,EAAO9Z,EAAEmS,eACR3T,OAAO8B,KAAKwZ,GAAMra,OAAO,SAACoK,EAASc,OAChCuJ,EAAM4F,EAAKnP,UACZuJ,GACDvU,MAAM8B,QAAQyS,GACdrK,EAAQpJ,WAARoJ,qBAAgBqK,IAEhBrK,EAAQpJ,KAAKyT,GACVrK,GALUA,GAMlB,QAGDvB,EAAM,qBAEGtI,EAAEuB,8BAGFvB,EAAEuB,2BAGFvB,EAAEuQ,wBAGFvQ,EAAE0O,2BAGF1O,EAAEgN,GAAG4F,MAAQ5S,EAAEgN,GAAG4F,KAAKnD,0BAGvBoK,KAEXnK,kBAAS+J,UACED,EAAWC,GAAQha,OAAO,SAACoK,EAAS0B,OACjCR,EAAM/K,EAAE+Z,YAAYxO,UACrBR,GACLlB,EAAQkB,EAAInH,OAAS0V,KAAKvO,EAAIL,KAAK3J,OAC5B8I,GAFUA,GAGlB7J,EAAEuB,QAAQyY,YAAcV,KAAKtZ,EAAEia,YAAc,KAEpDC,kBAAStW,OACCmH,EAAM/K,EAAE+Z,YAAYnW,MACrBmH,SACEuO,KAAKvO,EAAIL,KAAK3J,QAEzByP,oBAAWd,OACDtO,oBAAYsO,GAAY,IAC9B1P,EAAE2P,eAAe,WACbrH,EAAImR,SAAS7O,QAAQ,SAAAzE,OACXgU,EAAOna,EAAEoa,SAASjU,MACpBgU,EAAM,KACAvD,EAAOnM,YAAYrJ,EAAM+E,GAC/BgU,EAAKvP,QAAQ,SAAAG,GACTA,EAAIL,KAAK3J,MAAQ6V,EAAOxV,EAAK+E,QAAOlE,WAEjCb,EAAK+E,MAGpBqI,OAAOxO,EAAEia,WAAY7Y,MAG7BwO,kBAAShM,OACD8L,EAAW9L,EACX/E,UAAUC,QAAU,IACpB4Q,qBAAa9L,EAAQ/E,UAAU,KACnCmB,EAAE2P,eAAe,WACbnR,OAAO8B,KAAKoP,GAAU9E,QAAQ,SAAAzE,OACpBgU,EAAOna,EAAEoa,SAASjU,OACnBgU,EAAM,OAAOna,EAAEia,WAAW9T,GAAOuJ,EAASvJ,GAC/CgU,EAAKvP,QAAQ,SAAAG,GACTA,EAAIL,KAAK3J,MAAQ2O,EAASvJ,UAK1CkU,qBAAYzW,OACFmH,EAAM/K,EAAEsa,OAAO1W,UACrB5D,EAAE2P,eAAe,WACb3P,EAAE0Z,QAAQ9V,GAAOgH,QAAQ,SAAAG,GACrBA,EAAIwP,SAET,GACIxP,EAAMA,EAAI8C,YAAS5L,GAE9BgO,oBAAWvF,OACDK,EAAML,GAAQsN,MAAMtN,MACrBK,SACLA,EAAIwP,KACGxP,EAAI8C,QAEf2M,QAAS,WACLxa,EAAEgN,GAAGyN,IAAIC,YAAc1a,EAAEgN,GAAGyN,IAAIC,WAAWC,YAAY3a,EAAEgN,GAAGyN,KAC5Dza,EAAEgN,GAAG4N,YAETnB,OAAQ,kBAAMzZ,EAAEyZ,UAChBoB,OAAQ,SAACnQ,EAAMoQ,EAAOC,OACarM,EAA3BnM,EAAQvC,EAAEgb,KAAKlc,OAAS,EACtBiM,EAAM/K,EAAEsa,OAAOQ,GAEjB/P,EACIgQ,GACArM,EAAQ3D,EAAIL,KAAK3D,SACjBxE,EAAQwI,EAAIL,KAAK3D,SAASjI,OAAS,IAEnCyD,EAAQwI,EAAIkQ,KAAKvb,QAAQqL,EAAI8C,QAC7Ba,EAAQ3D,EAAIkQ,MAEbvM,EAAQ1O,EAAE0O,MACjBA,EAAMvG,OAAO5F,EAAQ,EAAG,EAAGmI,IAE/BwQ,QAAS,SAACxQ,EAAMoQ,EAAOC,OACJrM,EAAXnM,EAAQ,EACNwI,EAAM/K,EAAEsa,OAAOQ,GAEjB/P,EACIgQ,EACArM,EAAQ3D,EAAIL,KAAK3D,UAEjBxE,EAAQwI,EAAIkQ,KAAKvb,QAAQqL,EAAI8C,QAC7Ba,EAAQ3D,EAAIkQ,MAEbvM,EAAQ1O,EAAE0O,MACjBA,EAAMvG,OAAO5F,EAAO,EAAGmI,IAE3B6N,gBAAO4C,EAAO1B,GACV9Y,EAAM8Y,EAAQ,WAAY0B,GAC1Bnb,EAAE0T,WAEN0H,sBAAa7P,OACHR,EAAM/K,EAAEsa,OAAO/O,MAChBR,UACIA,EAAIL,KAAK6N,QAEtBnL,iBAAQ+N,EAAO1B,GACX9Y,EAAM8Y,EAAQ,YAAa0B,GAC3Bnb,EAAE0T,WAEN2H,uBAAc9P,OACJR,EAAM/K,EAAEsa,OAAO/O,MAChBR,UACIA,EAAIL,KAAK0C,SAEtBrJ,kBAASA,EAAU0V,GACfD,EAAWC,GAAQ7O,QAAQ,SAAChH,GACxB5D,EAAE0Z,QAAQ9V,GAAOgH,QAAQ,SAAAG,GACrBA,EAAIL,KAAK/J,OAAS2K,KAAKP,EAAIL,KAAK/J,MAAO,aAAcoD,OAG7D/D,EAAE0T,WAEN4H,aAAIzN,UACOrP,OAAO8B,KAAKN,EAAEma,MAAMpY,IAAI,SAAA4I,OACrBI,EAAM/K,EAAEma,KAAKxP,UACZkD,EAAS9C,EAAI8C,OAAS9C,EAAIL,QAGzCgI,eAAM7E,UACK7N,EAAEyZ,SAASha,OAAO,SAACoK,EAAS1D,OACzB4E,EAAM/K,EAAEoa,SAASjU,GAAK,UAC5B0D,EAAQ1D,GAAO0H,EAAS9C,EAAI8C,OAAS9C,EAAIL,KAClCb,GACR,KAEP0R,mBAAU1N,UACCrP,OAAO8B,KAAKN,EAAEwb,SAAS/b,OAAO,SAACoK,EAAS1D,OACrC4E,EAAM/K,EAAEwb,QAAQrV,GAAKpE,IAAI,SAAAgJ,UAAO8C,EAAS9C,EAAI8C,OAAS9C,EAAIL,cAChEb,EAAQ1D,GAAsB,IAAf4E,EAAIjM,OAAeiM,EAAI,GAAKA,EACpClB,GACR,KAEP4R,uBACWnT,EAAIiI,MAEf3K,OAAQ,SAAC8I,GACL1O,EAAE4T,WAAWlF,IAEjBgN,uBAAcna,GACVvB,EAAE2b,GAAGD,cAAcna,GACnB+G,EAAIoL,WAERkI,kBAASlT,GACLJ,EAAIoT,cAAc,CAACE,SAAUlT,KAEjCmT,KAAM,SAACjY,MACCjE,MAAM8B,QAAQmC,GACdA,EAAMgH,QAAQ,SAAA5I,UAAKsG,EAAIuT,KAAK7Z,cAG5BmY,EAAOrQ,GAAGtL,OAAOoF,GAASoU,MAAMpU,GAAS5D,EAAE0Z,QAAQ9V,GAClDuW,KAGLA,EAAOxa,MAAM8B,QAAQ0Y,GAAQA,EAAO,CAACA,IAChCvP,QAAQ,SAAAG,OACJA,EAAI+Q,QAAS,KACR3J,EAAUnS,EAAEmS,QAAQpH,EAAIQ,IAC1B4G,IACIxS,MAAM8B,QAAQ0Q,GACdA,EAAQvH,QAAQ,SAAA2F,GACZA,EAAKmD,YAEFvB,GACPA,EAAQuB,WAIhB1T,EAAE2Z,QAAQC,WAAW7O,MAG7B/K,EAAE0T,aAENA,QAAS,WACLmG,IAAajP,QAAQ,SAAAsJ,GACjBA,EAAIR,YAER1T,EAAE2Z,QAAQoC,gBACV/b,EAAE0T,WAENsI,0BACIhc,EAAEic,SAASP,cAAc1b,EAAEuB,SAC3B+G,EAAIoL,WAERwI,SAAU,SAACC,GACP7Q,KAAKtL,EAAEgN,GAAI,UAAWmP,IAE1BC,aAAc,kBACHpc,EAAEoc,cAEbC,kBAAmB,WACfrc,EAAEoc,cAAe,GAErBE,oBAAW/Q,EAAIb,GACX1K,EAAE0Z,QAAQnO,GAAIX,QAAQ,SAAAG,GAClByD,OAAOzD,EAAIL,KAAMA,MAGzB6R,qBAAY7N,GACRlQ,OAAO8B,KAAKoO,GAAO9D,QAAQ,SAAAW,GACvBjD,EAAIgU,WAAW/Q,EAAImD,EAAMnD,OAGjC+L,UAAW,SAAC/L,EAAIb,GACZ1K,EAAE0Z,QAAQnO,GAAIX,QAAQ,SAAAG,GAClBuM,UAAUvM,EAAIL,KAAMA,MAG5B8R,oBAAW9N,GACPlQ,OAAO8B,KAAKoO,GAAO9D,QAAQ,SAAAW,GACvBjD,EAAIgP,UAAU/L,EAAImD,EAAMnD,OAGhC4C,QAAS,SAAC5C,EAAIsC,OACJ9C,EAAM/K,EAAEsa,OAAO/O,MACjBR,SACO8C,EAAS9C,EAAI8C,OAAS9C,EAAIL,MAGzC+R,mBAAUlR,EAAImR,EAAM3b,OACVgK,EAAM/K,EAAEsa,OAAO/O,GACjBR,GAAO2R,IACS,MAAZA,EAAK,KACLA,EAAOA,EAAKC,OAAO,IAEnBlS,YAAYM,EAAIL,KAAM,IAAMgS,IAC5BpR,KAAKP,EAAIL,KAAM,IAAMgS,EAAM3b,GAE1B0J,YAAYM,EAAIL,KAAM,WACvBY,KAAKP,EAAIL,KAAM,SAAU,IAE7BY,KAAKP,EAAIL,KAAK4N,OAAQoE,EAAM3b,KAGpC6b,yBAAgBrR,EAAImR,OACV3R,EAAM/K,EAAEsa,OAAO/O,GACjBR,IACI2R,GAAoB,MAAZA,EAAK,KACbA,EAAOA,EAAKC,OAAO,IAEvB5R,EAAI6R,gBAAgBF,GACpBpU,EAAIuT,KAAKtQ,KAGjBsR,wBAAetR,EAAIwH,EAAUwE,GACrBA,EACAjP,EAAIgP,UAAU/L,EAAI,CAACwH,SAAAA,IAEnBpS,EAAM4K,EAAI,WAAYwH,IAG9B+J,yBAAgBC,EAAWxF,GACvB/Y,OAAO8B,KAAKyc,GAAWnS,QAAQ,SAAAW,GAC3BjD,EAAIuU,eAAetR,EAAIwR,EAAUxR,GAAKgM,MAG9CyF,2BACIhd,EAAEgN,GAAG+F,SAAW,GAChBzK,EAAIoL,WAERuJ,qBAAYxD,GACRD,EAAWC,GAAQ7O,QAAQ,SAAAhH,GACvB5D,EAAE0Z,QAAQ9V,GAAOgH,QAAQ,SAAAG,GACrB/K,EAAE2Z,QAAQC,WAAW7O,GACrBA,EAAIL,KAAK3J,MAAQuY,KAAKvO,EAAIgE,mBAItCmO,gBAAO3R,EAAI/K,OACD2c,EAAK7U,EAAI6U,GAAG5R,OACb4R,IAAOA,EAAG3c,GACX,MAAM,IAAI2G,MAAMoO,OAAO,gBAAU/U,oBAC9B,kBACI2c,EAAG3c,SAAH2c,eAGf5S,cAAKgB,EAAI/K,8BAAS+Q,mCAAAA,2BACP4G,OAAO,kBAAM7P,EAAI4U,OAAO3R,EAAI/K,gBAAS+Q,MAEhD4E,gBAAOE,UACIF,OAAO7N,EAAIoC,KAAM2L,IAE5B+G,iBAAQ7R,EAAIwJ,WACFoI,EAAK7U,EAAI6U,GAAG5R,sBADAgG,mCAAAA,oBAElB4L,GAAMA,EAAGvb,YAAHub,GAASpI,UAAUxD,KAE7B4L,YAAG5R,OACOR,EAAM/K,EAAEsa,OAAO/O,MACjBR,EAAK,OAAOA,EAAIoS,IAAMnd,EAAEgN,GAAG3D,MAAM0B,EAAInI,MAE7C+G,WAAY,SAAC4B,OACH4R,EAAK7U,EAAI6U,GAAG5R,GAClB4R,GAAMA,EAAGvb,OAASub,EAAGvb,MAAM,gBAE/BuS,oBAAWvQ,OACDmH,EAAM/K,EAAEsa,OAAO1W,UACdmH,EAAM/K,EAAEmS,QAAQpH,EAAIQ,SAAMtJ,GAErCob,kBAAS3U,GACL1I,EAAEsd,IAAIC,MAAM,YAAa7U,GACzB1I,EAAE0T,WAEN8J,qBAAY9U,GACR1I,EAAEwd,cACF9U,GAAMyP,OAAOzP,IAEjB+H,cAAKjQ,gCAAS+Q,mCAAAA,uBACVvR,EAAEgN,IAAGpL,eAAMpB,UAAS+Q,KAExB5B,wBAAejH,EAAImT,GACf7b,EAAE2P,eAAejH,EAAImT,IAEzBhY,OAAQ,CACJ2V,WAAAA,EAAY7Y,MAAAA,WAInB,KAAM,OAAQ,MAAO,OAAOiK,QAAQ,SAAAjJ,GACjC2G,EAAI3G,GAAK,oBACL3B,EAAEgN,eAAOrL,0BAIjB2G,EAAImV,YAAcnV,EAAIoV,YAAcpV,EAAIsH,SAEjCtH,ECxYI,SAASqV,SAASC,GAC7BpP,OAAOoP,EAAO5e,UAAW,CACrB6e,0BACS9B,iBAETnC,oBAAW7O,OACJA,EAAIL,KAAKyF,SAGP/Q,KAAK+Q,MAAMpF,EAAIQ,OAIW,IAA3BnM,KAAK+Q,MAAMpF,EAAIQ,IAAIuS,KAAgB1e,KAAK+Q,MAAMpF,EAAIQ,IAAI8G,cACjDsB,QAAQD,cAEXrB,EAASjT,KAAK+Q,MAAMpF,EAAIQ,IAAI8G,YAC7BlC,MAAMpF,EAAIQ,IAAM,KACrB8G,GAAUjT,KAAKwa,WAAWvH,QARtBtH,EAAIsH,QAAUjT,KAAKwa,WAAW7O,EAAIsH,SAU1C0J,8BACS5L,MAAQ,IAEjB4N,kBAAShT,EAAKiT,EAAO3L,QACZlC,MAAMpF,EAAIQ,IAAM,CACjByS,MAAAA,EACAF,KAAK,EACLzL,OAAAA,EACArH,KAAMD,EAAIL,KAAKM,OAGvBiT,kBAASlT,OACCoF,EAAQ/Q,KAAK+Q,MAAMpF,EAAIQ,OACzB4E,SACAA,EAAM2N,KAAM,EACL3N,EAAM6N,SCrCd,SAASE,OAAO5T,UAKpB6T,MAJI7T,EAAIuM,QAAQ,YAAa,SAAU7U,UACnCA,EAAE6U,QAAQ,IAAK,IAAIuH,uBAM3B,SAASD,MAAM7T,UACXA,EAAIuM,QAAQvM,EAAI,GAAIA,EAAI,GAAG+T,eCTvB,SAAS1X,WAASV,UACf,MAAPA,EACD,GACe,WAAfiE,QAAOjE,GACHmK,KAAKC,UAAUpK,EAAK,KAAM,GAC1BtC,OAAOsC,GCLN,SAASqY,OAAO9d,OACvB+d,EAAO/d,EAAKqW,QAAQ,WAAY,OAAO2H,2BACjB,IAAtBD,EAAK7e,QAAQ,OACb6e,EAAOA,EAAK5B,OAAO,IAChB4B,ECJX,IAAIhT,GAAK,EAEM,SAASkT,iBACb,IAAMC,KAAKC,SAAShY,SAAS,IAAIgW,OAAO,EAAG,GAAKvY,iBAAUwa,KAAKC,gBAAUtT,KAAM5E,SAAS,aCH3EmY,QAAQ1d,EAAMgT,EAAKnO,OACrB8Y,EAAd1T,EAAQjK,SACXgT,GAAO,IAAItI,MAAM,KAAKlB,QAAQ,SAAA5I,GACvB+c,IACK1T,EAAM0T,IAA2B,UAApB7U,QAAOmB,EAAM0T,MAC3B1T,EAAM0T,GAAM,IAEhB1T,EAAQA,EAAM0T,IAElBA,EAAK/c,IAETqJ,EAAM0T,GAAM9Y,EACLoF,ECHI,SAAS2T,UAAUpB,GAC9BpP,OAAOoP,EAAO5e,UAAW,CACrBigB,2BACSC,SAAW,QACXC,oBAETC,+BACUjF,EAAO/a,KAAKuU,QAAQwG,UACrBkF,YAAc7gB,OAAO8B,KAAK6Z,GAAM1a,OAAO,SAACoK,EAAS0B,OACb,IAAjC4O,EAAK5O,GAAI+T,OAAOC,aAAwB,KAClCxY,EAAWoT,EAAK5O,GAAIb,KAAK3D,SAC/B8C,EAAQ0B,GAAMzB,GAAGM,UAAUrD,sBAAgBA,GAAY,UAGpD8C,GACR,KAGPsV,iCACSE,YAAc,IAEvBG,qBAAYzU,UACI,SAAN0U,EAAOzS,MACLA,EAAI,KACAhC,OAAO/I,SACP8I,EAAIL,KAAK9G,QACToH,EAAOgC,EAAGD,aAAa,SAAWuR,OAAOvT,EAAIL,KAAK9G,SAAWoJ,EAAGD,aAAa,SAAWhC,EAAIL,KAAK9G,QAEhGoH,IACDA,EAAOgC,EAAGD,aAAa,QAAUuR,OAAOvT,EAAIlK,QAAUmM,EAAGD,aAAa,QAAUhC,EAAIlK,OAEpFmK,GAGGyU,EAAIzS,EAAG4F,OAGf6M,CAAIrgB,KAAK4N,KAEpB3K,gCACSjD,KAAK4N,GAAGG,YAMTuS,OAHCC,GAAKvgB,KAAK4N,GAAG4S,oBACb3D,SAAS4D,mBAIR5G,EAAO,kBAAMvS,EAAKoZ,qBACxB7G,EAAK8G,WAAa,SAAA/U,UAAQtE,EAAKoZ,WAAW9U,IAC1CiO,EAAK+G,WAAa,SAAAxf,UAAQkG,EAAKuZ,SAASzf,IACxCyY,EAAKiH,YAAc,SAAAtc,UAAS8C,EAAKuZ,SAASrc,EAAO,UAG7C8b,EADAtgB,KAAK4N,GAAGD,aAAaoT,UAChB,CAAC/gB,KAAK4N,GAAGD,aAAaoT,UAAUlH,IAEhCA,IAEF7Z,KAAK6c,SAAS5Z,OAAOqd,KAEhCI,oBAAW9U,qBACA5L,KAAK4b,KAAKjZ,IAAI,SAACwJ,UACXP,EAAOxD,EAAKuY,WAAWvY,EAAKmM,QAAQwG,KAAK5O,GAAKP,GAAQxD,EAAK4Y,UAAU5Y,EAAKmM,QAAQwG,KAAK5O,MAC/F1J,OAAO,SAACoE,eAAgBhE,IAARgE,KAEvBoa,gBAAO3V,cACGsC,EAAKtC,EAAKsC,UACXA,EAEIlD,GAAGhF,SAASkI,GACVmL,OAAO,kBAAMzN,EAAKsC,GAAGtF,EAAKiM,QAAQ2M,cAAc5V,MACjDsC,EAAGsJ,OAENtJ,EADI,IAAIU,KAAIV,GAJR,IAAIU,MAOnBiK,qBAAY5M,OACFhL,EAAIX,KAAKuU,QAAQpS,QAAQgf,OAC1BxgB,IAEAgL,EAAIyV,cACLzV,EAAIyV,YAAczgB,EAAEgL,EAAI0V,aAAe1gB,EAAEgL,EAAIlK,OAASd,EAAEgL,EAAI2V,WAAa,IAC7E3V,EAAIzI,KAAOgV,UAAU,GAAI,CAACvX,EAAE,KAAMgL,EAAIyV,YAAazV,EAAIzI,SAE3Dqe,oBAAW5V,GACHA,EAAIzI,KAAKse,WAAa7V,EAAIzI,KAAKf,SAC/Bud,QAAQ/T,EAAIzI,KAAMyI,EAAIzI,KAAKse,UAAW7V,EAAIzI,KAAKf,UAGvDud,iBAAQ/T,OACE5J,EAAO4J,EAAIL,KAAKvJ,KACtBA,GAAQ3C,OAAO8B,KAAKa,GAAM6Z,KAAK,SAACtc,EAAGC,UAAMD,EAAEI,OAASH,EAAEG,QAAU,EAAI,IAAG8L,QAAQ,SAAAN,GAC3EwU,QAAQ/T,EAAIzI,KAAMgI,EAAKnJ,EAAKmJ,OAGpCuW,sBAAa7T,EAAIjC,MACRiC,EAAGhE,YAED1G,EAAQyI,EAARzI,KACDhC,EAAO9B,OAAO8B,KAAK0M,EAAGhE,QACtB6J,EAASzT,KAAK0hB,WAAW/V,GACzBgW,EAAaviB,OAAO8B,KAAKuS,GAE/BvS,EAAKsK,QAAQ,SAAAzE,GACLsE,YAAYnI,EAAK3B,MAAOwF,GACxB6G,EAAGhE,OAAO7C,GAAO7D,EAAK3B,MAAMwF,GACvB4a,EAAWrhB,QAAQyG,IAAQ,IAAG6G,EAAGhE,OAAO7C,GAAO0M,EAAO1M,UAG7DA,EAAO6G,EAAG8G,SAASpB,OAAS1F,EAAG8G,SAASpB,MAAMpQ,MAAS,QACzDhC,EAAKZ,QAAQyG,IAAQ,IACrB6G,EAAGhE,OAAO7C,GAAO7D,EAAKvB,SAG9BigB,oBAAWjW,kBACF2C,KAAIuT,eACLxL,IAAI,yCACG,OAEL/K,EAAOK,EAAIzI,KACViJ,EAAWR,EAAXQ,GAAIpF,EAAO4E,EAAP5E,QAEN/G,KAAK8f,SAAS3T,GAAK,CACfR,EAAIoS,KACLpS,EAAIoS,GAAK/d,KAAKihB,OAAO3V,QAChBsC,GAAG7D,UAAU,kBAAM4B,EAAIuU,OAAO5V,QAAQqB,UAG3CiC,EAAKjC,EAAIoS,GACTpS,EAAIuF,OACJtD,EAAGrE,IAAKqE,EAAG8G,SAASpB,OAAS1F,EAAG8G,SAASpB,MAAMqC,OAAU,QAAS,SAAChU,GAC/D8G,EAAKnG,QAAQqJ,EAAKhK,UAGrBme,SAAS3T,GAAM,CAChByB,GAAAA,EACAmM,SAAUzL,KAAIuT,QAAQvW,EAAKyO,iBAIZ/Z,KAAK8f,SAAS3T,GAA9ByB,IAAAA,GAAImM,IAAAA,cAEN0H,aAAa7T,EAAIjC,OAEhB2U,EAAKvG,EAAS9W,OAAOnD,KAAK8N,UAE5BlD,GAAGE,MAAM0V,EAAGte,QAAOse,EAAGte,KAAO,IACjCse,EAAGvZ,IAAMA,EACTuZ,EAAGte,KAAKwB,IAAMmI,EAAInI,IAClB8c,EAAGte,KAAK+E,IAAMA,EACPuZ,GAEXwB,mBAAUC,EAAMpW,UACLjB,GAAGtL,OAAO2iB,GAAQ7J,UAAU,CAAC3W,MAAO,CAACC,iBAAkBmK,EAAIzI,KAAK3B,MAAMC,mBAAoBugB,GAAQA,GAE7GC,qBAAY1B,EAAI3U,EAAKsW,OACX/e,EAAOyI,EAAIsW,EAAO,OAAS,cAC1B,CAACjiB,KAAK4T,WAAW5T,KAAK8hB,UAAU5e,EAAKgf,OAAQvW,IAAO2U,EAAItgB,KAAK4T,WAAW5T,KAAK8hB,UAAU5e,EAAKif,OAAQxW,MAG/GgV,oBAAWhV,EAAKC,UACLD,EAAIL,KAAKM,OAASA,EAAO5L,KAAKghB,UAAUrV,QAAO9I,GAE1Dge,kBAASzf,EAAMK,cACLsZ,EAAO/a,KAAKuU,QAAiB,UAAT9S,EAAmB,WAAa,WAAWL,UAC9D2Z,EAAOA,EAAKpY,IAAI,SAAAgJ,UAAO9C,EAAKmY,UAAUrV,EAAKA,EAAIsH,eAAWpQ,GAErEme,mBAAUrV,EAAKsH,MACM,WAAbtH,EAAIlK,UACF6J,EAAOK,EAAIL,SACXtL,KAAK+Q,MAAMpF,EAAIQ,KAAQnM,KAAK+Q,MAAMpF,EAAIQ,IAAIP,OAASN,EAAKM,KAAM,KAC5D0U,EACA8B,GAA2B,IAAf9W,EAAKyF,MACfsR,EAAQ1W,EAAI2V,SACZgB,IAAS5X,GAAGE,MAAMU,EAAK0C,UAAc1C,EAAK0C,YAClC,aAAVqU,GAAyB/W,EAAKyO,SAM3B,GAAc,eAAVsI,EACP/B,EAAKtgB,KAAKuiB,eAAe5W,OACtB,CACHA,EAAI6W,gBACCjK,YAAY5M,QACZkR,SAAS4F,SAAS9W,QAClB+T,QAAQ/T,QACR4V,WAAW5V,QACX+W,QAAQ/W,OACTzI,EAAOyI,EAAIzI,KACfA,EAAKyf,WAAatX,YAAYnI,EAAM,WAAaA,EAAKyf,QAAW3iB,KAAKmC,QAAQwgB,SAC9Ezf,EAAK3B,MAAMC,iBAAmBxB,KAAK0hB,WAAW/V,OACxCgX,EAAUzf,EAAKyf,WAEjBzf,EAAKiW,wBACAwF,SAAShT,OAAK9I,EAAWoQ,MAIpB,aAAVoP,GAAwBnf,EAAK6W,SAC7BuG,EAAKtgB,KAAK4hB,WAAWjW,GACrByW,GAAY,MACT,KACCza,EAAW,GACXgE,EAAIuU,OAAOqC,eACX5a,EAAWgE,EAAIuU,OAAOqC,eAAe5W,IACF,IAA5BA,EAAIuU,OAAOC,eAClBxY,EAAW3H,KAAKuiB,eAAe5W,QAE7BC,EAAO5L,KAAKogB,YAAYzU,GAE1B2U,EADA1U,EACKA,EAAK,CACNN,KAAAA,EACApI,KAAAA,EACAyf,QAAAA,EACAhb,SAAAA,EACAuB,IAAKlJ,KAAKuU,QAAQrL,IAClBoK,MAAOpQ,EAAKoQ,OAAS,KAGpBqP,EAAUhX,EAAIuU,OAAOyC,QAAQhb,EAAUgE,GAAOA,EAAIuU,OAAOjd,OAAO0E,EAAUgE,GAGvF2U,EAAKtgB,KAAKgiB,YAAY1B,EAAI3U,IAClBA,EAAIuF,OAASxG,GAAGE,MAAM1H,YAAkC,IAAhBA,WAC5Cod,EAAKtgB,KAAK6c,SAAS+F,SAASjX,EAAK2U,IAEjCgC,IACAhC,EAAKtgB,KAAKgO,QAAQsS,IAEtBA,EAAKtgB,KAAKoQ,KAAKzE,EAAK2U,QAvDpBA,EAAKtgB,KAAKgiB,YAAYhiB,KAAKuiB,eAAe5W,GAAMA,GAAK,GACjD2W,QACKtU,QAAQsS,GAEjBA,EAAKtgB,KAAKoQ,KAAKzE,EAAK2U,UAqDpB8B,QACKzD,SAAShT,EAAK2U,EAAIrN,GAEpBqN,SAGJtgB,KAAK6e,SAASlT,KAEzBqC,iBAAQsS,iBACA/f,MAAM8B,QAAQie,GAAK,KACbte,EAAO,UACbse,EAAG9U,QAAQ,SAAA5I,MACHrC,MAAM8B,QAAQO,GAAI,OAAOkG,EAAKkF,QAAQpL,GACtCkG,EAAKwZ,KAAK1f,IAAIZ,EAAKX,KAAKuB,KAEzBZ,SAEAhC,KAAKsiB,KAAKhC,IAGzBgC,cAAKhC,MACGA,GAAMA,EAAGte,YACLzB,MAAM8B,QAAQie,EAAGte,KAAK6B,OACtByc,EAAGte,KAAK6B,MAAMxC,KAAK,CAAC2M,QAAS,SACvBtD,GAAGnG,OAAO+b,EAAGte,KAAK6B,OACxByc,EAAGte,KAAK6B,OAAS,iBAEjByc,EAAGte,KAAK6B,MAAQ,CAACyc,EAAGte,KAAK6B,MAAO,CAACmK,QAAS,SAEvCsS,GAGflQ,cAAKzE,EAAK2U,UACCtgB,KAAKugB,GAAG,aAAc,CACzB3U,KAAMD,EAAIL,KAAKM,KACf7E,IAAK4E,EAAI5E,KACV,CAACuZ,KAERoB,oBAAW/V,cACF3L,KAAK4N,GAAGiG,UAAUlI,EAAIQ,KACvBD,KAAKlM,KAAK4N,GAAGiG,UAAWlI,EAAIQ,GAAI,CAC5BjD,IAAKlJ,KAAKuU,QAAQrL,IAClBiI,KAAMnR,KAAKuc,GAAG3C,OACd7G,QAAS,SAAAA,GACL5J,EAAKoL,QAAQU,WAAWtJ,EAAKoH,IAEjCgC,WAAY,kBACD5L,EAAKoL,QAAQxB,QAAQpH,EAAIQ,KAEpChK,QAAS,GACTwF,SAAU,GACVzE,KAAM,GACNyf,SAAS,EACTne,MAAOmH,EAAInH,MACX8G,KAAMK,EAAIL,KACV4F,MAAOvF,EAAIuF,YASL+Q,EANRxO,EAASzT,KAAK4N,GAAGiG,UAAUlI,EAAIQ,WACrCiD,OAAOqE,EAAQ,CACXkP,QAAShX,EAAIzI,KAAKyf,QAClBxgB,QAASwJ,EAAIzI,KAAKf,QAClBwF,SAAUgE,EAAIL,KAAK3D,SACnBzE,MACU+e,oBAAWtW,EAAIzI,MACrB+e,EAAK5V,GAAK4V,EAAK5V,qBAAS4V,EAAK5V,IAAM,UAC5B4V,EAAK3O,MACL2O,KAGRxO,GAEXiP,iBAAQ/W,EAAKkX,cACFrf,EAAkBmI,EAAlBnI,IAAKuD,EAAa4E,EAAb5E,IAAKuE,EAAQK,EAARL,UACZuR,SAASiG,UAAUnX,EAAKkX,GAC7BlX,EAAIuU,OAAO4C,UAAUnX,EAAKkX,OACpBthB,EAAQ,CACV,CACIiC,IAAKA,EACLuD,IAAKuE,EAAKvE,eAAUA,QACpB6E,UAAM/I,EACNwJ,GAAI,gBACgB,WACZvC,EAAKiZ,UAAUpX,kBAEJ,SAACoH,GACZjJ,EAAKyK,QAAQU,WAAWtJ,EAAKoH,cAMxC8P,GAAUlX,EAAIuF,QACfvF,EAAIzI,KAAKoQ,MAAQ,CACb3R,MAAO3B,KAAKuU,QAAQyO,YAAYrX,GAChCsX,SAAU,SAACthB,GACPmI,EAAKxH,QAAQqJ,EAAKhK,IAEtBuhB,8BAAwBvX,EAAIQ,MAGpCgJ,WAAW5T,EAAOoK,EAAIzI,MACfyI,EAAIzI,MAEf6f,mBAAUpX,GACNA,EAAIoS,GAAK/d,KAAK4N,GAAG3D,MAAM0B,EAAInI,KACvBmI,EAAIoS,MACHpS,EAAIoS,GAAG1C,KAAO1P,EAAIoS,IAAIoF,SAAWxX,EAAIL,MAE1CK,EAAIuU,OAAO5V,QAAQqB,QACd4I,QAAQ2E,OAAOvN,EAAK,YAE7BrJ,iBAAQqJ,EAAKhK,QACJ4S,QAAQjS,QAAQqJ,EAAKhK,IAE9B4gB,wBAAe5W,cACJhE,EAAYgE,EAAIL,KAAhB3D,SAAsBsY,EAAcjgB,KAAKigB,YAAYtU,EAAIQ,IAE1DiX,EAAO,SAAAzH,UACDjR,GAAGnG,OAAOoX,IAAUA,EAAM9C,SAAW7O,EAAKuK,QAAQwG,KAAKY,EAAM9C,OAAO1M,YAG3EzB,GAAGM,UAAUrD,IAAasY,QACtB1L,QAAQhE,eAAe,WACxB0P,EAAYzU,QAAQ,SAAAmQ,GACXA,GACDyH,EAAKzH,IACL3R,EAAKuK,QAAQ8O,MAAM1H,EAAM9C,iBAIhCoH,YAAYtU,EAAIQ,IAAM,GACpB,KAGX8T,GAAejgB,KAAKuU,QAAQhE,eAAe,WACvC0P,EAAYzU,QAAQ,SAAAmQ,GACXA,IAC4B,IAA7BhU,EAASrH,QAAQqb,IAAiByH,EAAKzH,IACvC3R,EAAKuK,QAAQ8O,MAAM1H,EAAM9C,YAK9BlR,EAAShF,IAAI,SAAAgZ,MACXA,SACDjR,GAAGnG,OAAOoX,GAAeA,EACzBA,EAAM9C,OACC7O,EAAKgX,UAAUrF,EAAM9C,OAAQlN,QAEpCgQ,EAAMla,MACNuI,EAAK4D,GAAG7D,UAAU,WACdC,EAAKuK,QAAQ4L,aAAaxY,EAAUgE,GACpC3B,EAAKuK,QAAQD,iBAM7BgP,uBAAc3X,EAAKhE,OACTzE,EAAOyI,EAAIzI,YACdA,EAAKiZ,UACGnc,KAAKujB,MAAMC,cAActgB,EAAKiZ,UAAWjZ,EAAMyE,GACtD3H,KAAKujB,MAAM5X,EAAIlK,MACRzB,KAAKujB,MAAM5X,EAAIlK,MAAMyB,EAAMyE,GAClC3H,KAAKujB,MAAM5X,EAAI0V,YACRrhB,KAAKujB,MAAM5X,EAAI0V,YAAYne,EAAMyE,GACrC3H,KAAKujB,MAAM1J,KAAKkF,MAAMpT,EAAI0V,YAAane,EAAMyE,IAExDiM,oBAAWtI,EAAM3D,EAAU8G,iBAClBnD,MACDZ,GAAGnG,OAAO+G,GAAO,OAAOA,MAExB7J,KACAgN,EACAhN,EAAO6J,EAAK7J,aAEZA,EAAO6J,EAAKZ,GACRY,EAAK7J,KAAM,CACXA,EAAOqd,OAAOxT,EAAK7J,UACbgiB,EAAQzjB,KAAKujB,MAAMG,SAASjiB,GAC9BgiB,IAAOhiB,EAAOqd,OAAO2E,OAI5BhiB,OACDO,EAAO,CAAC,CAAC2F,WACT+C,GAAGM,UAAUM,EAAK3D,WAClB3F,EAAKX,KAAKiK,EAAK3D,SAAShF,IAAI,SAAAC,UAAK+gB,EAAK/P,WAAWhR,MAE9C5C,KAAKugB,GAAG9e,oBAAU6J,GAAOtJ,QC1a7B,SAASwc,OAAOoF,GAC3BxU,OAAOpP,KAAM,CACTuU,QAASqP,EACTrH,GAAIqH,EAAOrH,GACX3O,GAAIgW,EAAOhW,GACXiP,SAAU+G,EAAO/G,SACjB0G,MAAO,IAAIK,EAAOrH,GAAGsH,WAAWD,EAAOhW,MAG3C4K,UAAUxY,KAAM,CACZmC,0BACWyhB,EAAOzhB,SAElByZ,uBACWgI,EAAOhI,aAIjB6C,iBACAoB,aClBM,SAASiE,UAAUC,GAC9B3U,OAAO2U,EAAQnkB,UAAW,CACtBokB,0BAAiB1Y,EAAMe,OACboH,EAASnI,EAAKmI,QAAUzT,KAAKmC,QAAQ8hB,mBACpCjkB,KAAKkkB,cAAc5Y,EAAMe,EAAIoH,IAExCyQ,uBAAc5Y,EAAMtJ,EAAMyR,EAAQ1R,qBAC9B3C,OAAO8B,KAAKc,GAAMwJ,QAAQ,SAAAD,OAChBjC,EAAKhC,EAAK6c,WAAW7Y,EAAMtJ,EAAKuJ,GAAIkI,EAAQ1R,GAC9CuH,IACAtH,EAAKuJ,GAAKjC,KAGXtH,GAEXmiB,oBAAW7Y,EAAMhC,EAAImK,EAAQ1R,MACrB2I,GAAGhF,SAAS4D,MAAoB,IAAXmK,IAAqB/I,GAAGE,MAAM6I,IAAYnK,EAAGoO,iBAC3D1X,KAAKyT,OAAOnI,EAAMhC,EAAImK,GAC1B,IAAK1R,GAAQxB,MAAM8B,QAAQiH,IAAOA,EAAG,KAAOoB,GAAGnG,OAAO+E,EAAG,KAAOoB,GAAGhF,SAAS4D,EAAG,YAC3EtJ,KAAKkkB,cAAc5Y,EAAMhC,EAAImK,GAAQ,GACzC,GAAI/I,GAAGnG,OAAO+E,GAAK,KAChBzC,EAAMyQ,QAAQhO,MAChBzC,GAAOyC,IAAOzC,SACPA,EAAI6Q,SAAW1X,KAAKmkB,WAAW7Y,EAAMzE,EAAK4M,GAAQ,GAAQ5M,IAI7Eud,mBAAUzY,EAAKU,cACPsJ,EAAQ,GAAIrK,EAAOK,EAAIL,KAAO+Y,EAAmC/Y,EAAnC+Y,WAAY7f,EAAuB8G,EAAvB9G,MAAOpD,EAAgBkK,EAAhBlK,KAAMqS,EAAUnI,EAAVmI,OACvDpC,EAAO/F,EAAKe,EAAK,OAAS,eAAiB,MAC3C3B,GAAGM,UAAUqG,GAAO,KAChBiT,EAAUD,GAAc7f,GAASpD,EACjCkjB,IACKjY,IAAIiY,mBAAoBA,IAC7BjT,EAAK7F,QAAQ,SAAA+Y,MACJA,OACDC,EACA9Z,GAAGtL,OAAOmlB,KACVC,EAAcD,EAAU9Q,OACxB8Q,EAAYA,EAAUnjB,UAEpBqjB,EAAWvF,iBAAUoF,cAAWC,IAChCjb,EAAK,0CAAIqB,2BAAAA,qBACXvC,EAAKwF,IAAGpL,eAAMiiB,UAAa9Z,OAC3BvC,EAAKwF,IAAGpL,eAAM,aAAciiB,UAAa9Z,QAE7CrB,EAAG6N,QAAS,EAEPqN,IAA0B,IAAX/Q,EAEb,KACCiR,EAAUF,GAAe/Q,GAAUrL,EAAKjG,QAAQ8hB,YACpDtO,EAAM4O,GAAa7Z,GAAGE,MAAM8Z,GAAWpb,EAAKlB,EAAKqL,OAAOnI,EAAMhC,EAAIob,QAHlE/O,EAAM4O,GAAajb,aASnCqC,EAAIuE,SAAS7D,EAAK,KAAO,YAAcsJ,EAChCA,GAEXuL,uBAAcyD,EAAMlR,SACOzT,KAAK4N,GAAG8G,SAASC,UAAjC5R,IAAAA,OAAQuI,IAAAA,WACR,CACHpC,IAAKlJ,KAAKkJ,IACVmH,GAAIrQ,KAAKkJ,IACToC,KAAAA,EACAqZ,KAAMA,EAAK7L,WACX/V,OAAAA,EACA0Q,OAAAA,IAGRA,gBAAOkR,EAAMtE,EAAK5M,MACV4M,EAAIpR,SAAU,IACVjP,KAAK4kB,WAAa5kB,KAAK6kB,QACvB,OAAOxE,EACXA,EAAMA,EAAIpR,aAGRrO,EAAIZ,KAEJsJ,EAAK,mBACDtH,EAAOpB,EAAEsgB,cAAcyD,EAAMlR,sBADftB,2BAAAA,yBAEpBnQ,EAAKmQ,eAAWA,GAChBA,EAAK2S,QAAQ9iB,GACNqe,EAAItgB,MAAMC,KAAMmS,WAE3B7I,EAAG2F,SAAWoR,EACd/W,EAAG0F,OAASqR,EAAIrR,OACT1F,KDpEnBiV,SAASC,QACToB,UAAUpB,YEzBJuG,MAAQ,CAAC,eAAgB,gBAEhB,SAASC,QAAQjB,GAC5B3U,OAAO2U,EAAQnkB,UAAW,CACtBolB,8BACUC,EAAOjlB,KAAKmC,QAAQ8iB,QACrBA,OACDC,EAAQ,GACRC,EAAQC,SAASplB,KAAKsP,OACtB5E,GAAGtL,OAAO6lB,KACNA,EAAKC,QAAOA,EAAQG,SAASJ,EAAKC,MAAO,KAAOA,GAChDD,EAAKE,QAAOA,EAAQE,SAASJ,EAAKE,MAAO,KAAOA,IAExD/V,OAAOpP,KAAM,CACTklB,MAAAA,EACAC,MAAAA,EACAG,QAAStlB,KAAKsP,MAAM5P,QAAUwlB,SAG7BhH,IAAI3U,IAAI,WAAY,kBAAMjC,EAAKsG,GAAGpL,MAAM,WAAY8E,EAAK4B,YACzDqc,aAETA,oCAYS3X,GAAGrE,IAAIwb,MAXG,SAATS,IACEpd,EAAKkd,SACLld,EAAKwF,GAAGzG,KAAK4d,MAAOS,GACpBpd,EAAK8V,IAAI1b,MAAM,cAEf4F,EAAK8c,OAAS9c,EAAK+c,MACnB/c,EAAKkd,QAAUld,EAAKkH,MAAM5P,QAAU0I,EAAK8c,MACzC9c,EAAKqd,WACLrd,EAAKkM,gBASzB,SAAS8Q,SAAS9V,UACPA,EAAM5P,OAAS,GAAK,GAAK4f,KAAKoG,KAAKpW,EAAM5P,OAAS,GCzC9C,SAASkgB,YAAUmE,GAC9B3U,OAAO2U,EAAQnkB,UAAW,CACtB+lB,8BACS1H,UAAY2H,aAAa5lB,KAAKie,eAC9BA,SAAW,MAEpB4H,sBAAavc,mBACJqc,qBACA1H,SAAW6H,WAAW,WACvBxc,IACAhC,EAAK2W,SAAW,MACjB,KAEPhb,0BAEMjD,KAAK+lB,SAEH/lB,KAAK4N,GAAG5G,OAAS,EACVhH,KAAKua,QAAQtX,eAEf2K,GAAG5G,OAAS,EACV,OClBvB,SAASqV,KAAK1Q,GACVvM,OAAOuZ,iBAAiBhN,EAAI8C,OAAQ,CAChCoK,OAAQf,WAAWnM,GAAK,KAIjB,SAASqa,YAAYpC,EAAQtY,EAAMqE,OACxCxD,EAAKnF,WAEXoI,OAAOpP,KAAM,CACTmM,GAAAA,EACA3I,IAAK2I,EACL8Z,QAAS9Z,EAAK,KACdb,KAAAA,EACAmD,OAAQnD,EAAKwN,YAAcxN,EAC3BlK,KAAMkK,EAAKlK,KAEXQ,MAAO,GACPskB,OAAQ,GACRrK,KAAM,GACNsK,SAAU,GACVlT,OAAQ,KACRmO,YAAa,KACble,uBAAUoI,GACV4E,SAAU,GACVkW,QAAS,GACTlV,QAAS5F,EAAK9G,MACduZ,QAAIlb,EACJ8M,aAAcrE,EAAK9G,MAAQ2K,SAASQ,QAAgB9M,EACpD2B,MAAO8G,EAAK9G,YAAS3B,SAGpBwjB,kBACAC,YACLjK,KAAKrc,WACA8B,OAAO8hB,GAAQ,GAGxBxU,OAAO4W,YAAYpmB,UAAW,CAC1B2mB,oBAAWnlB,UACFpB,KAAKomB,QAAQhlB,UACTglB,QAAQhlB,GAAQ,IAElBpB,KAAKomB,QAAQhlB,IAExBoc,yBAAgBpc,QACCyB,IAATzB,OACKglB,QAAU,UAERpmB,KAAKomB,QAAQhlB,IAG5BklB,mBAAU9O,QACDzQ,IAAMC,WACXwQ,GAAQxX,KAAKiT,QAAUjT,KAAKiT,OAAOqT,UAAU9O,IAEjD6O,2BACShF,WAAarhB,KAAKsL,KAAK7J,UACvBA,KAAOqd,OAAO9e,KAAKsL,KAAK7J,OAEjC+kB,mBAAUtG,QACDA,OAASA,EACdA,EAAO7G,KAAKrZ,OAEhBwiB,+BACUlX,oBAAWtL,KAAKsL,aACfA,EAAK3D,cACPzE,KAAOgV,UAAU,IAAK5M,6BAASlM,OAAO8B,KAAKlB,KAAKomB,SAASzjB,IAAI,SAAA4I,UAAKjE,EAAK8e,QAAQ7a,OAAKvL,KAAKkQ,aAElGuW,eAAM7C,UACK5jB,KAAK4N,KAAOgW,EAAOhW,IAE9B8Y,wBACS9kB,MAAM4J,QAAQ,SAAAmb,UAAMA,WACpB/kB,MAAQ,IAEjBglB,uBACSV,OAAO1a,QAAQ,SAAAmb,UAAMA,WACrBT,OAAS,IAElBW,qBACSD,cACArS,QAAQuS,WAAW9mB,OAE5B+mB,wBACSxS,QAAQyS,SAAShnB,8BAIjB0mB,eACAE,cACAK,SACL7X,OAAOpP,KAAM,CACT0c,SAAS,EACTxZ,uBAAUlD,KAAKsL,MACf4E,SAAU,GACV6N,QARU,EASVxJ,aATU,EAUVgG,aAVU,EAWV2M,UAXU,EAYVtZ,QAZU,EAaV2V,WAbU,EAcVtQ,OAAQ,KACRmO,YAAa,QAGrB6F,uBACSd,SAAS3a,QAAQ,SAAA2b,UAAQA,EAAKtO,QAAUsO,EAAKtO,OAAOsC,YACpDgL,SAAW,IAEpBhL,yBACUiM,EAAM,eACJjkB,EAAQiF,EAAKyT,KAAKvb,QAAQ8H,EAAKqG,QAC/BtL,GAAS,IACTiF,EAAKyT,KAAK9S,OAAO5F,EAAO,GACxBiF,EAAKmM,SAAWnM,EAAKmM,QAAQD,YAGjCtU,KAAK0c,QACL0K,SAGC7S,QAAQ8S,QAAQ,WACjBjf,EAAKmM,QAAQhE,eAAe,WACxBnI,EAAK6e,SACLG,IACAhf,EAAKmM,QAAQ8O,MAAMjb,GACnBgH,OAAOhH,EAAM,CACTyT,KAAM,MAEXzT,EAAK8I,UAGhBpP,gBAAO8hB,EAAQvK,GACXjK,OAAOpP,KAAM,CACT0c,SAAS,EACTnI,QAASqP,EACTrJ,QAASqJ,EAAOrJ,QAChB2M,KAAMtD,EAAO1a,IACb0E,GAAIgW,EAAOhW,GACX0T,SAAUsC,EAAO3Y,QAAQjL,KAAKqhB,YAC9BkC,MAAOK,EAAOrJ,QAAQgJ,MACtB+D,SAAS,KAEZjO,GAAQrZ,KAAK0mB,eACTK,eACAF,cChJPU,UAAY,MACR,SAAChoB,UAAM,SAACD,UAAMA,IAAMC,SACpB,SAACA,UAAM,SAACD,UAAMA,IAAMC,SACpB,SAACA,UAAM,SAACD,UAAMA,IAAMC,QACrB,SAACA,UAAM,SAACD,UAAMA,EAAIC,SACjB,SAACA,UAAM,SAACD,UAAMA,GAAKC,QACpB,SAACA,UAAM,SAACD,UAAMA,EAAIC,SACjB,SAACA,UAAM,SAACD,UAAMA,GAAKC,OACnB,SAACA,UAAM,SAACD,UAAOC,GAAKA,EAAEe,SAAWf,EAAEe,QAAQhB,IAAM,OACjD,SAACC,UAAM,SAACD,UAAOA,GAAKA,EAAEgB,SAAWhB,EAAEgB,QAAQf,IAAM,UAC9C,SAACA,UAAM,SAACD,UAAQioB,aAAahoB,EAAbgoB,CAAgBjoB,WAChC,SAACC,UAAM,SAACD,UAAQioB,UAAUlb,GAAG9M,EAAbgoB,CAAgBjoB,aAC9B,SAACC,UAAM,SAACD,UAAMA,EAAIC,EAAE,IAAMD,EAAIC,EAAE,gBAC7B,SAACA,UAAM,SAACD,UAAMA,EAAIC,EAAE,IAAMD,EAAIC,EAAE,MAInC,SAASioB,UAAUzD,GAC9B3U,OAAO2U,EAAQnkB,UAAW,CACtBwe,qBAAY9U,cACF6C,EAAKnM,KAAK+lB,cACXnY,GAAG7D,UAAU,WACdoC,IAAO7E,EAAKye,WAAazc,EAAKA,IAAOhC,EAAKgN,cAGlDmT,mBAAUC,cACApc,EAAOyD,QAAQ2Y,UAErBtoB,OAAOuZ,iBAAiBrN,EAAM,CAC1BwN,WAAYhB,WAAW4P,GAAO,KAGlCC,SAASrc,QACJsP,YAAYtP,GAEjBA,EAAKnJ,QAAU5B,MAAM8B,QAAQiJ,EAAKnJ,SAAWmJ,EAAKnJ,QAAU,IAE3DmJ,EAAMA,EAAI,OAAYA,EAAI,QAAYE,QAAQ,SAAA4E,GACtCA,GAGLhI,EAAKwf,OAAOxX,EAAM9E,UAEjBuc,SAASvc,GACVA,EAAKxJ,SACLwJ,EAAKxJ,OAASwV,QAAQhM,EAAKxJ,SAExBwJ,GAEXsc,gBAAOxX,EAAM9E,eACR,KAAM,QAAS,WAAY,QAAQE,QAAQ,SAAAD,GACxC6E,EAAK7E,IAAMjD,EAAK0b,iBAAiB1Y,EAAM8E,EAAK7E,OAGpDsc,kBAASvc,GACLA,EAAKwc,SAAWxc,EAAKwc,QAAQtc,QAAQ,SAAA2b,GAC7BA,EAAKvD,SACLuD,EAAKvD,OAAStM,QAAQ6P,EAAKvD,YAIvCmE,kBAASpc,cACCL,EAAOK,EAAIL,KACjBZ,GAAGM,UAAUM,EAAKmR,OAAStH,WAAW,CAAC,CACnC9I,GAAIf,EAAKmR,KAAKpc,OAAO,SAAC2nB,EAAK9kB,UACvB8kB,mBAAc9kB,IAAU,SAAC2D,GACrByE,EAAK/J,MAAM2B,GAAQ2D,EACnB4B,EAAKmF,GAAGpL,MAAM,OAAQU,EAAM2D,EAAKyE,EAAM7C,EAAKmM,OAEzCoT,GACR,MACHrc,EAAIuE,WAEZuV,oCAESwC,WAAY,OACZpD,SAAU,EACX7kB,KAAKslB,cACApH,IAAI1b,MAAM,mBAEd+N,eAAe,cAChB1H,EAAKqf,UAAUrf,EAAKyG,OACpBzG,EAAKgc,SAAU,EACXhc,EAAKof,WAAapf,EAAKyc,eAChBzc,EAAK4c,WAEZ5c,EAAKyc,SACLzc,EAAKqV,IAAI1b,MAAM,YAEnBqG,EAAK+E,GAAGsG,cACRrL,EAAK0R,QAAQyF,kBACbnX,EAAKsf,cAGbhI,sBAAaxY,EAAUsL,WACdgV,WAAY,OACZpD,SAAU,OACV3G,IAAI1b,MAAM,mBACV0lB,UAAUvgB,EAAUsL,QACpB4R,SAAU,EACX7kB,KAAKioB,iBACEjoB,KAAKylB,gBAEPvH,IAAI1b,MAAM,iBACV2lB,gBAEJ5N,QAAQC,WAAWvH,IAE5BiV,mBAAU5Y,EAAO2D,cAWPkN,EAAe,SAACxY,EAAUsL,GACxBvI,GAAGM,UAAUrD,IACbmB,EAAKof,UAAUvgB,EAAUsL,IAIjC3D,EAAM3M,IAAI,SAAC+kB,EAAOvkB,QACV8P,GAAWvI,GAAGtL,OAAOsoB,MACpB5e,EAAKwc,SAAYrS,KAAU9P,GAAS2F,EAAKoc,YAE1CwC,EAAM7O,QAAU6O,EAAM7O,OAAOgD,OAASvM,GAASxG,EAAKiS,KAAK2M,EAAM7O,OAAO1M,WACtEgU,EAAauH,EAAM7O,OAAOvN,KAAK3D,SAAU+f,EAAM7O,QACxC6O,EAAM7O,WAeblN,EAZAL,EAAOyD,QAAQ2Y,GAEbU,EAAW,oBACH9c,EAAK9G,QAASsE,EAAKkS,SAAS1P,EAAK9G,QAAUsE,EAAKkS,SAAS1P,EAAK9G,OAAO,KAAOkjB,EAAM7O,SAGhG/P,EAAKuf,WAAW/c,EAAM,OAAQ,CAACgd,OAAQF,MAEnCA,KACAtf,EAAK8E,GAAGpL,MAAM,eAAgBklB,EAAO5e,EAAKI,SAI1Cqf,GAAS,EACTC,IAAWd,EAAM7O,OACjBlJ,EAAerE,EAAK3J,SACpB6mB,EAAQ,CAER7Y,GADAhE,EAAM+b,EAAM7O,QACOlJ,iBACb8W,GAAS9a,EAAI8a,MAAM3d,MACrB6C,EAAI+Q,YACA+J,EAAO,IACHgC,OAAO9c,UAGXA,EAAI7J,OAAOgH,YAGX2d,EAAO,IACHgC,OAAO9c,UAGX2D,EAAMnM,GAASukB,EAAQA,EAAM5Y,OAAS4Y,EAAM5Y,SAAWmJ,SAASyP,GAChE/b,EAAM,KACN4c,GAAS,MAIhB5c,EAKGA,EAAI0V,aAAe1V,EAAIL,KAAK7J,OAC5BkK,EAAI0a,aACJvd,EAAK4f,WAAW/c,IAEpB7C,EAAK8R,YAAYjP,EAAIL,UATf,KACAA,EAAOxC,EAAK2e,UAAUC,GAC5B/b,EAAM,IAAIqa,YAAYld,EAAMwC,EAAMkd,EAAS7Y,EAAerE,EAAK3J,OAC/DmH,EAAK4f,WAAW/c,QAQnB,GAAO,GAAMH,QAAQ,SAAAjM,UAAKuJ,EAAKsb,UAAUzY,EAAKpM,KAC/CuJ,EAAKif,SAASpc,GACdA,EAAIsH,OAASA,GAAU,KACvBtH,EAAIkQ,KAAOvM,EACXxG,EAAK6f,OAAOhd,IAEX4c,IAAWC,GAAU1f,EAAKoQ,OAAOvN,EAAK,SAEX,IAA5BA,EAAIuU,OAAOC,cAA0BA,EAAaxU,EAAIL,KAAK3D,SAAUgE,IAEhEsH,EAAQ,KACH2V,EApFG,SAAXC,EAAYhoB,OACVmnB,EAAM1Y,EAAMzO,EAAI,OACfmnB,IAAQA,EAAInP,cACNhY,EAAI,EAAIgoB,EAAShoB,EAAI,IAAM,MAElCsC,EAAQ2F,EAAK8S,KAAKtb,QAAQ0nB,EAAInP,OAAO1M,WAClChJ,GAAS,EAAIA,EAAQ0lB,EAAShoB,EAAI,GA8EnBgoB,CAAS1lB,GACvBylB,GAAa,IAAMzlB,EACnB2F,EAAK8S,KAAK7S,OAAO6f,EAAY,EAAG,EAAGjd,EAAIQ,IAEvCrD,EAAK8S,KAAKva,KAAKsK,EAAIQ,QAIrBmM,EAAI3M,EAAIL,YACTK,EAAI2b,UACL3b,EAAI2b,SAAU,EACV5c,GAAGhF,SAAS4S,EAAExW,SACdgH,EAAKoV,IAAIC,MAAM,WAAY,WACvBrV,EAAKggB,cAAcnd,EAAK2M,EAAE3W,MAAO,UAGzCmH,EAAKoQ,OAAOvN,EAAK,WAGjBA,EAAIuF,OACJ9R,OAAO2pB,eAAezQ,EAAG,QAASxP,EAAKkgB,YAAYrd,IACnD7C,EAAKmgB,eAAetd,KAAM7C,EAAKmf,WAAY,GACxCtc,MAGfsd,wBAAetd,UACJA,EAAIuF,OAASvF,EAAIL,KAAKwc,SAAW9nB,KAAKkpB,QAAQvd,IAEzDud,iBAAQvd,cACEwd,EAAWC,QAAQzd,GAAMgI,EAAW,GAAIzK,EAAMlJ,KAAKkJ,QACpDigB,EAASzpB,OAAQ,OAAO,qBAEpBmB,OACCinB,EAAUqB,EAAStoB,GAAIwoB,EAAWvB,EAAQlE,SAAY2D,UAAUO,EAAQP,WAAa,OAASA,UAAU,OAAOO,EAAQnmB,WACxH+I,GAAGM,UAAU8c,EAAQxc,MAAO,qBAC3BtJ,mCACC8lB,OACHhgB,MAAOiR,OAAO,kBAAMsQ,EAAS1d,EAAIL,KAAK3J,MAAOuH,KAC7Cie,KAAMmC,SAAS3d,EAAKmc,EAAQxc,MAC5Bie,SAAU7e,GAAGnG,OAAOujB,EAAQxc,KAAK,SAEhCtJ,EAAK8F,OAAS9F,EAAKmlB,OAAWnlB,EAAK8F,QAAU9F,EAAKmlB,OAASnlB,EAAKunB,SAAW,iBAChF5V,EAAStS,KAAKW,IAVTnB,EAAI,EAAGA,EAAIsoB,EAASzpB,OAAQmB,MAA5BA,OAYJ8S,EAASjU,OAAQ,OAAO,MAEvB8pB,EAAU,GACZhS,GAAO,cACNjH,eAAe,WAChBoD,EAAS8V,UAAUje,QAAQ,gBAAE+d,IAAAA,SAAUzhB,IAAAA,MAAOwD,IAAAA,KAAMwQ,IAAAA,QAASL,IAAAA,OAAQE,IAAAA,MAAOwL,IAAAA,KAAMrJ,IAAAA,UAC1EyL,SACAzhB,EAAQ6D,EAAIwa,SAAS9kB,KAAK,CACtB6N,QAAQ,EACRvH,SAAU2D,EACVxD,MAAAA,IAEE6D,EAAIwa,SAASpd,OAAO4C,EAAIwa,SAAS7lB,QAAQ6mB,GAAO,QACtDqC,EAAQ1hB,EAAQ,OAAS,WAAW,WACjB,aAAXgW,EACA3U,EAAKD,IAAIvE,UAAUmD,EAAOwD,GACR,YAAXwS,EACP3U,EAAKD,IAAI8E,QAAQlG,EAAOwD,GACN,aAAXwS,GACPxS,EAAKE,QAAQ,SAAA4E,GACTjH,EAAKD,IAAImU,UAAUjN,EAAM,WAAYtI,KAErCA,GACAqB,EAAKD,IAAIwgB,mBAAmBpe,IAGhCnC,EAAKD,IAAIiQ,QAAQrR,EAAOwD,QAKhCxD,EAAO,CACP0P,GAAO,MACDmS,EAAU,CACZloB,KAAM,qBACE,EACRyN,QAAQ,EACRvH,SAAU2D,GAEdK,EAAIwa,SAAS9kB,KAAKsoB,GAClBxgB,EAAK+U,IAAIC,MAAM,aAAc,WAErBrC,EACA5S,EAAI4S,QAAQ6N,EAAS7N,EAASH,GACvBF,GAAUE,EACjBzS,EAAIuS,OAAOkO,EAASlO,GAAU9P,EAAIQ,GAAIwP,GAEtChQ,EAAIkQ,KAAK9S,OAAO4C,EAAIkQ,KAAKvb,QAAQqL,EAAI8C,QAAU,EAAG,EAAGkb,SAG1D,CACHhe,EAAIwa,SAASpd,OAAO4C,EAAIwa,SAAS7lB,QAAQ6mB,GAAO,OAC1CyC,EAAUhR,MAAMuO,GACtByC,GAAWA,EAAQzO,UAI/BqO,EAAQ9pB,QAAUM,KAAK4N,GAAG7D,UAAU,WAChCyf,EAAQhe,QAAQ,SAAA5I,UAAKA,aAEpBgL,GAAGpL,MAAM,UAAWmJ,EAAI8C,OAAQzO,KAAKkJ,UACrCgQ,OAAOvN,EAAK,WACV6L,GAEXhD,oBAAWlF,UACAtP,KAAK6pB,YAAYva,IAE5Bua,qBAAYva,cAEHA,IAAOA,EAAQtP,KAAKsP,WAEnByL,oBAAW/a,KAAK+a,WAEjB4K,qBACApL,QAAQwF,wBACR+J,SAASxa,QACTiN,GAAGjN,MAAQA,OACXiB,eAAe,WAChBzG,EAAKoU,IAAIC,MAAM,WAAY,WACvB/e,OAAO8B,KAAK6Z,GAAMtY,OAAO,SAAA0J,eAAwBtJ,IAAlBiH,EAAKiR,KAAK5O,KACpCX,QAAQ,SAAAW,UAAMrC,EAAKuZ,MAAMtI,EAAK5O,MACnCrC,EAAKyQ,QAAQoC,kBAEjB7S,EAAKigB,WAAY,EACjBjgB,EAAK2b,WACL3b,EAAKigB,WAAY,EACjBjgB,EAAKwK,UACLxK,EAAK8D,GAAGpL,MAAM,YAAasH,EAAKZ,YAE/BgV,IAAI/W,KAAK,YAAanH,KAAKgqB,iBAC3B9L,IAAIC,MAAM,YAAane,KAAKgqB,iBAC5Bpc,GAAGpL,MAAM,SAAUxC,KAAKkJ,MAGjCoL,wBACS1G,GAAGqG,cAKpB,SAAS0T,SAASrc,OACR0N,EAAMC,kBAEZ7Z,OAAO8B,KAAK8X,GAAKxN,QAAQ,SAAAD,GAChBF,YAAYC,EAAMC,IAAIW,KAAKZ,EAAMC,EAAGyN,EAAIzN,MAE1CD,EAGX,SAAS8d,QAAQzd,OACPmc,EAAUnc,EAAIL,KAAKwc,SAAW,UAChCpd,GAAGtL,OAAO0oB,GAAiB,CAACA,GACpBA,EAGhB,SAASwB,SAAS3d,EAAKL,OACd,IAAIzK,EAAI,EAAGA,EAAI8K,EAAIwa,SAASzmB,OAAQmB,IAAK,KACpCsmB,EAAOxb,EAAIwa,SAAStlB,MACtBsmB,EAAKxf,WAAa2D,EAClB,OAAO6b,GAInB,SAASsB,OAAO9c,WACHA,EAAIL,KAAK4D,OC5WP,SAAS+a,SAASlG,GAC7B3U,OAAO2U,EAAQnkB,UAAW,CACtBkb,kBAASnP,UACDjB,GAAGE,MAAMe,EAAIsE,cACbtE,EAAIsE,WAAatE,EAAIuU,OAAOgK,QAAQlqB,KAAKgjB,YAAYrX,GAAMA,IAExDA,EAAIsE,YAEfO,kBAAS7E,EAAKhK,EAAOwoB,EAAWC,GACxBze,EAAI+Q,UACR/Q,EAAIsE,WAAatO,OACZqb,cAAe,OACfoB,mBACA7D,QAAQC,WAAW7O,QACnB0e,YAAY1e,EAAKwe,QACjBG,iBACAC,YAAY5e,EAAKhK,QACjBiM,GAAGpL,MAAM,SAAUmJ,EAAInH,MAAO7C,EAAOgK,EAAI8C,OAAQzO,KAAKkJ,IAAKkhB,IAAW,QACtElR,OAAOvN,EAAK,WAErBrJ,iBAAQqJ,EAAKhK,OACLkF,EACA8E,EAAIuF,QAAUlR,KAAKwqB,QAAQ7e,EAAK9E,EAAM8E,EAAIuU,OAAOgK,QAAQvoB,EAAOgK,KAAS3L,KAAKyqB,SAAS9e,EAAK9E,UACvF2J,SAAS7E,EAAK9E,EAAKlF,IAGhC0oB,qBAAY1e,EAAKhK,GACbuK,KAAKlM,KAAKsQ,SAAU3E,EAAIQ,GAAc,OAAVxK,OAAiBkB,EAAYlB,IAE7DqhB,qBAAYrX,UACD3L,KAAKsQ,SAAS3E,EAAIQ,KAE7BwH,sCACI+W,QAAQ1qB,KAAK4N,GAAG+F,eACX0G,SAAS7O,QAAQ,SAAAW,GAClB7E,EAAK0T,SAAS7O,GAAIX,QAAQ,SAAAG,GACtBrE,EAAKsG,GAAG+F,SAAShI,EAAIQ,IAAM9I,QAAQsI,EAAIL,KAAKqI,cAG7C3T,KAAK4N,GAAG+F,UAEnBwU,+BACIuC,QAAQ1qB,KAAKmR,MACb/R,OAAOuZ,iBAAiB3Y,KAAKmR,KAAMnR,KAAKqa,SAASha,OAAO,SAACoK,EAASjG,OACxDmH,EAAMvD,EAAKuS,YAAYnW,GACvBof,EAASxb,EAAK4gB,YAAYrd,UAChCiY,EAAO5L,cAAe,EACtBvN,EAAQjG,GAASof,EACVnZ,GACRzK,KAAKmC,QAAQyY,YAAcxb,OAAO8B,KAAKlB,KAAK6a,YAAYxa,OAAO,SAACoK,EAASjG,UACxEiG,EAAQjG,GAAS,CACbsT,YAAY,EACZE,cAAc,EACd3O,IAAK,kBACMjB,EAAKyS,WAAWrW,IAE3B4E,IAAK,SAACvC,GACFuB,EAAKyS,WAAWrW,GAASqC,IAG1B4D,GACR,IAAM,UACJ6f,aAETtB,qBAAYrd,oBACD,CACHmM,YAAY,EACZzO,IAAK,kBACMf,EAAKwS,SAASnP,IAEzBvC,IAAK,SAACzH,GACE2G,EAAKmiB,SAAS9e,EAAKhK,IACnB2G,EAAKkI,SAAS7E,EAAKhK,EAAOgK,EAAIuU,OAAOyK,YAAYhpB,EAAOgK,IAAM,MAK9EiP,qBAAYtP,GACHA,EAAK9G,OAAU6G,YAAYrL,KAAK6a,WAAYvP,EAAK9G,SACtD8G,EAAK3J,MAAQ3B,KAAK6a,WAAWvP,EAAK9G,cAC3BxE,KAAK6a,WAAWvP,EAAK9G,SAEhCyQ,oBAAWtJ,EAAKoH,QACPA,QAAQpH,EAAIQ,IAAM4G,GAE3BxC,wBAAejH,EAAImT,GACVzc,KAAK4qB,mBACDA,YAActhB,GAElBtJ,KAAK4qB,YAAYnO,YACbmO,YAAYnO,KAAOA,GAE5B1D,OAAOzP,GACHtJ,KAAK4qB,cAAgBthB,SAChBshB,YAAc,KACfthB,EAAGmT,WACE6N,cAIjBA,wBACQtqB,KAAK4qB,mBACE5qB,KAAK4qB,YAAYnO,MAAO,OAE9B7O,GAAGuG,8CAAkBnU,KAAKmC,QAAQyY,YAAc5a,KAAK6a,WAAa,IAAQ7a,KAAKmR,QAExFsZ,kBAAS9e,EAAKhK,UACHqP,KAAKC,UAAUtF,EAAIL,KAAK3J,MAAOkpB,SAAW7Z,KAAKC,UAAoB,OAAVtP,OAAiBkB,EAAYlB,EAAOkpB,QAExGL,iBAAQ7e,EAAKhK,UACD+I,GAAGtL,OAAOuC,IAAUpB,MAAM8B,QAAQV,KAAWA,IAAUgK,EAAIL,KAAK3J,OAE5EmnB,uBAAcnd,EAAK9E,EAAK4H,iBAChB/D,GAAGhF,SAASiG,EAAIL,KAAKxJ,QAAS,KACxBia,EAAQhD,OAAO,kBAAMpN,EAAIL,KAAKxJ,OAAO+E,EAAK8E,EAAI8C,OAAQhG,EAAKS,IAAK,CAACuF,OAAQA,GAAU,qBAC3E5L,IAAVkZ,EAAqB,OACzBpQ,EAAIL,KAAK6N,QAAmB,IAAV4C,IAG1BwO,qBAAY5e,EAAK9E,QACRikB,YAAYnf,EAAK9E,QACjBqX,IAAI1b,MAAM,UAAYmJ,EAAInH,MAAOqC,IAE1CikB,qBAAYnf,EAAK9E,EAAK4H,GACdzO,KAAKipB,eAAetd,UACf4O,QAAQoC,qBACR8I,gBACA7X,GAAGpL,MAAM,SAAUxC,KAAKkJ,UACxBoL,gBAEJwU,cAAcnd,EAAK9E,EAAK4H,IAEjCqY,oBAAWnb,cACDkb,EAAOlb,EAAIL,KAAKub,KACtBnc,GAAGM,UAAU6b,IAASA,EAAKrb,QAAQ,SAAAhH,OACzB8E,EAAK,kBAAMT,EAAKiiB,YAAYnf,EAAKA,EAAIL,KAAK3J,MAAO,SAEvDkH,EAAKqV,IAAI3U,IAAI,UAAY/E,EAAO8E,GAChCqC,EAAIua,OAAO7kB,KAAK,kBAAMwH,EAAKqV,IAAI/W,KAAK,UAAY3C,EAAO8E,QAG/D+Q,yBACWjb,OAAO8B,KAAKlB,KAAKgb,aAMpC,SAAS6P,MAAM9jB,EAAKF,SACM,mBAARA,EAAqB,GAAKA,EAAMA,EAGlD,SAAS6jB,QAAQ1T,GACb5X,OAAO8B,KAAK8V,GAAKxL,QAAQ,SAAAD,iBAAYyL,EAAIzL,KC/J7C,IAAMwf,WAAa,CACf1R,cAAK1N,KAELgf,qBAAYhpB,EAAOgK,UACRhK,GAEXuoB,iBAAQC,EAAWxe,UACRwe,GAEX7f,iBAAQqB,KAER1I,gBAAO0E,EAAUgE,UACNA,EAAI4O,QAAQ+I,cAAc3X,EAAKhE,IAE1Cgb,iBAAQhb,EAAUgE,UACP3L,KAAKiD,OAAO0E,EAAUgE,IAEjCmX,mBAAUnX,MCVRqf,QAAU,CAAC,QAAS,QAAS,KAAM,WAAY,OAAQ,SAAU,UAAW,SAAU,OAAQ,UAAW,YAAa,SAAU,YAAa,SAEpI,SAASC,WAAWlH,GAC/B3U,OAAO2U,EAAQnkB,UAAW,CACtBsb,gBAAO/O,UACInM,KAAK2a,YAAYxO,IAAOnM,KAAKkrB,WAAW/e,GAAI,IAAMnM,KAAK+a,KAAK5O,IAEvEmO,iBAAQnO,UACGnM,KAAKgb,SAAS7O,IAAOnM,KAAKoc,QAAQjQ,KAAQnM,KAAK+a,KAAK5O,GAAM,CAACnM,KAAK+a,KAAK5O,IAAO,KAEvFgf,kBAASxf,EAAK5E,EAAKtF,OACT+C,YAAW/C,SACZzB,KAAKwE,GAAOuC,QAGRvC,GAAOuC,GAAK1F,KAAKsK,QAFjBnH,GAAOuC,GAAO,CAAC4E,IAK5Byf,iBAAQzf,EAAK5E,EAAKtF,OACR+C,YAAW/C,SACXN,EAAMnB,KAAKwE,GAAOuC,OACnB5F,EAAK,OAAO,MACXqW,EAAOrW,EAAI4H,OAAO5H,EAAIb,QAAQqL,KAAS,EAAG,GAAGjM,OAAS,SACvDyB,EAAIzB,eACEM,KAAKwE,GAAOuC,GAEhByQ,GAEXmD,qBAAYnW,UACAxE,KAAKgb,SAASxW,IAAU,IAAI,IAExC0mB,oBAAW9pB,UACApB,KAAKoc,QAAQhb,IAAS,IAEjCunB,gBAAOhd,OACEQ,EAAyBR,EAAzBQ,GAAI3H,EAAqBmH,EAArBnH,MAAOpD,EAAcuK,EAAdvK,KAAMkK,EAAQK,EAARL,UACjByP,KAAK5O,GAAMR,EAChBvK,GAAQpB,KAAKmrB,SAASxf,EAAKvK,EAAM,QAC5BuK,EAAIuF,aACJia,SAASxf,EAAKnH,EAAO,cACrB6lB,YAAY1e,EAAKA,EAAIuU,OAAOyK,YAAYrf,EAAK3J,MAAOgK,IACrD3L,KAAKqrB,YAAcrrB,KAAK+pB,gBACnBnc,GAAGpL,MAAM,SAAUmJ,EAAInH,MAAO8G,EAAK3J,MAAOgK,EAAI8C,OAAQzO,KAAKkJ,OAGxEoiB,mBAAU3f,OACAS,EAAOpM,KAAKuc,GAAGgP,eACdnf,EAAKT,EAAI0V,aAAejV,EAAK0S,OAAOnT,EAAIlK,QAAU2K,EAAKT,EAAI2V,WAAayJ,YAEnFrC,oBAAW/c,GACPA,EAAI6a,UAAUxmB,KAAKsrB,UAAU3f,KAEjCV,iBAAQwY,OACE9gB,EAAM3C,KAAKuc,GAAGsH,WAAWH,SACzBjiB,EAAOkB,EAAI8gB,IAAU9gB,EAAImc,OAAO2E,KAAWA,SAC1C3E,OAAOrd,IAElB4lB,iBAAQ/d,GACCtJ,KAAKwrB,iBACDA,UAAYliB,GAErByP,OAAOzP,GACHtJ,KAAKwrB,YAAcliB,SACdkiB,UAAY,OAGzBxE,kBAASrb,cACCiC,EAAK5N,KAAK4N,GAChBxO,OAAO8B,KAAKyK,EAAIL,MAAM7I,OAAO,SAAA8I,SAAc,MAATA,EAAE,IAAuB,MAATA,EAAE,KAAsC,IAAxByf,QAAQ1qB,QAAQiL,KAAWC,QAAQ,SAACzE,OAC5FyQ,EAAe,aAARzQ,EACb4E,EAAI/J,MAAMP,KAAKuM,EAAGQ,OAAO,kBAAMzC,EAAIL,KAAKvE,IAAM,SAACxE,EAAG8K,QAC1C/F,EAAKud,SAAWvd,EAAKkkB,WAAalkB,EAAKyiB,eACvCvS,IAAoC,IAA5B7L,EAAIuU,OAAOC,oBACnB7Y,EAAKiT,QAAQC,WAAW7O,QACxBrE,EAAK8W,iBAGT9W,EAAKsd,UAAW,EAIJ,SAAR7d,GAGG,GAAI,CAAC,QAAS,KAAM,WAAY,QAAQzG,QAAQyG,IAAQ,EAC3DO,EAAK0c,iBAAiBrY,EAAIL,KAAM/I,GAAK,IACzB,UAARwE,GAAmB4E,EAAIuF,OACvB5J,EAAK+iB,YAAY1e,EAAKA,EAAIuU,OAAOyK,YAAYhf,EAAIL,KAAK3J,MAAOgK,SAE9D,GAAI,CAAC,OAAQ,cAAcrL,QAAQyG,IAAQ,EAC9CO,EAAK8c,UAAUzY,EAAa,SAAR5E,QACnB,GAAI,CAAC,SAAU,UAAUzG,QAAQyG,IAAQ,EAC1CxE,GAAK+E,EAAKsgB,OAAOrlB,EAAGoJ,EAAIL,WACvB,GAAY,SAARvE,EACL4E,EAAI0a,aACJ/e,EAAKohB,WAAW/c,QACb,GAAY,aAAR5E,EAAoB,KACrByQ,EAAO9M,GAAGM,UAAUzI,GAC1B+E,EAAKiJ,eAAe,WACZhO,IAAM8K,IACN/F,EAAKmkB,MAAMpe,EAAG1B,GACdrE,EAAKiT,QAAQyF,mBAEjBxI,GAAQlQ,EAAK6Y,aAAa5d,EAAGoJ,GAC7BrE,EAAKsG,GAAGpL,MAAM,SAAU8E,EAAK4B,OAGrC5B,EAAKiT,QAAQC,WAAW7O,GACxBrE,EAAKgN,UACLhN,EAAKsd,UAAW,OA3BZjZ,EAAIkb,SA4BT,CAAC9kB,MAAOyV,EAAMiF,KAAMjF,YAEtBkU,YAAY/f,IAErB8f,eAAM3W,EAAKnJ,cACPjB,GAAGM,UAAU8J,IAAQA,EAAItJ,QAAQ,SAAA8M,GAC7BA,GAAKA,EAAEO,QAAUP,EAAEO,OAAO5F,SAAWtH,GAAOvD,EAAKib,MAAM/K,EAAEO,WAGjEwK,eAAM1X,kBACEA,EAAI+Q,aACDvQ,EAA0BR,EAA1BQ,GAAI3H,EAAsBmH,EAAtBnH,MAAO0M,EAAevF,EAAfuF,MAAO9P,EAAQuK,EAARvK,KACrBuK,EAAIuF,OACJ9R,OAAO2pB,eAAepd,EAAIL,KAAM,QAAS,CACrC3J,MAAOgK,EAAIL,KAAK3J,MAChBoW,UAAU,IAIlBxJ,KAAKvO,KAAK+a,KAAM5O,GAChBoC,KAAKvO,KAAKua,QAAQuF,SAAU3T,GAC5BoC,KAAKvO,KAAKua,QAAQ0F,YAAa9T,GAC/BoC,KAAKvO,KAAK4N,GAAGiG,UAAW1H,GACxBoC,KAAKvO,KAAKsQ,SAAUnE,GACpBoC,KAAKvO,KAAK+S,QAAS5G,GACnBoC,KAAK5C,EAAK,cAEVuF,GAASlR,KAAKorB,QAAQzf,EAAKnH,EAAO,SAClCpD,GAAQpB,KAAKorB,QAAQzf,EAAKvK,EAAM,QAE5B8P,IAAU7F,YAAYrL,KAAKgb,SAAUxW,IACrC+J,KAAKvO,KAAKmR,KAAM3M,QAGf+L,eAAe,WACXjI,EAAKyhB,aAC0B,IAA5Bpe,EAAIuU,OAAOC,cACPzV,GAAGM,UAAUW,EAAIL,KAAK3D,WACtBgE,EAAIL,KAAK3D,SAAS6D,QAAQ,SAAA5K,UAAKA,EAAEiY,QAAUvQ,EAAK+a,MAAMziB,EAAEiY,UAG5DlN,EAAIkQ,OAASvT,EAAKgH,OAClBhH,EAAKsF,GAAGsG,gBAGjBhD,OAEG/N,EAAQnD,KAAK4b,KAAKtb,QAAQ6L,UAC5BhJ,GAAS,QACJyY,KAAK7S,OAAO5F,EAAO,QAGvBoX,QAAQC,WAAW7O,GACxBA,gBACKuN,OAAOvN,EAAK,WACjBuF,IAAUlR,KAAKgb,SAASxW,IAAUxE,KAAK4N,GAAGpL,MAAM,cAAegC,EAAOmH,EAAIL,KAAMtL,KAAKkJ,KACrFyC,EAAIL,KAAK4D,QAAUlP,KAAK4N,GAAGpL,MAAM,aAAcmJ,EAAIL,KAAMtL,KAAKkJ,KACvDyC,MCzKJ,SAASggB,aAAa5H,GACjC3U,OAAO2U,EAAQnkB,UAAW,CACtB0K,8BACUshB,EAAW,WACbtkB,EAAK+jB,WAAY,EACjB/jB,EAAKukB,UAAU,YAEf7rB,KAAKslB,QACLsG,SAEK1N,IAAIC,MAAM,WAAYyN,IAGnCC,mBAAUzqB,cACAkI,EAAKtJ,KAAKmC,QAAQf,GACxBsJ,GAAGhF,SAAS4D,IAAOyP,OAAO,kBAAMzP,EAAGlB,EAAKc,YACnC0E,GAAGpL,MAAMpB,EAAMpB,KAAKkJ,QChBtB,SAAS4iB,UAAU/H,GAC9B3U,OAAO2U,EAAQnkB,UAAW,CACtBmsB,kCACUC,EAAKhsB,KAAKuc,GAAG0P,UACnB7sB,OAAO8B,KAAK8qB,GAAIxgB,QAAQ,SAAAD,OAChBrI,EAAO8oB,EAAGzgB,GACVb,GAAGhF,SAASxC,KACZA,EAAOA,EAAKoE,EAAKiV,KAErBrZ,EAAKgpB,GAAKC,aAAajpB,GACvBoE,EAAK8kB,SAASlpB,GACdoE,EAAK2kB,UAAU1gB,GAAKrI,KAG5BkpB,kBAASC,cACCC,EAAO,IACZD,EAASH,IAAM,CAAC,MAAM1gB,QAAQ,SAAApK,OACrBK,EAAgB,MAATL,EAAe,IAAMgH,EAAK6C,QAAQ7J,GAC3CkrB,EAAKhsB,QAAQmB,IAAS,IAC1B6qB,EAAKjrB,KAAKI,GACV2G,EAAK8V,IAAI3U,gBAAS8iB,EAASjrB,iBAAQK,cAAQ4qB,EAASnb,MAAQ,EAAI,GAAK,SAACyE,EAAOxD,GACzEka,EAAS1W,IAAU0W,EAAS1W,SAAT0W,qBAAmBla,SAG9Cka,EAASE,MAAQD,GAErBZ,qBAAY/f,cACFiC,EAAK5N,KAAK4N,GACZsL,EAAS,CACTxX,SAAU,0BACE2J,YAAYM,EAAIL,KAAM,aAAeK,EAAIL,KAAJ,oBAAwBK,EAAIL,mCAAJkhB,EAAUtT,2BAAVuT,EAAkB/qB,YAAa,IAG5GtC,OAAO8B,KAAKyK,EAAIL,KAAK4N,QAAU,IAAI1N,QAAQ,SAAAD,GACvC2N,EAAO3N,GAAK,kBAAMI,EAAIL,KAAK4N,OAAO3N,MAEtCnM,OAAO8B,KAAKyK,EAAIL,MAAME,QAAQ,SAAAD,GACb,MAATA,EAAE,KACF2N,EAAO3N,EAAEgS,OAAO,IAAM,kBAAM5R,EAAIL,KAAKC,OAG7CnM,OAAO8B,KAAKgY,GAAU,IAAI1N,QAAQ,SAAAD,GAC9BI,EAAI/J,MAAMP,KAAKuM,EAAGQ,OAAO8K,EAAO3N,GAAI,SAAChJ,GACjC+F,EAAK4Q,OAAOvN,EAAK,2BAAWJ,EAAIhJ,KACjC,CAACR,MAAM,QAGlBsmB,oBAAW/c,EAAMqK,EAAO8F,QACfiR,WAAW,CACZphB,KAAAA,EACA4F,QAAS5F,EAAK9G,MACd/C,KAAMzB,KAAKiL,QAAQK,EAAK7J,OACzBkU,EAAO8F,IAEdvC,gBAAOvN,EAAKgK,EAAOkN,QACV6J,WAAW,CACZphB,KAAMK,EAAIL,KACV4F,MAAOvF,EAAIuF,MACXzP,KAAMkK,EAAI2V,SACV3V,IAAAA,EACAkX,OAAAA,GACDlN,IAEPgX,mBAAUrhB,EAAMlK,UACRiK,YAAYC,EAAM,IAAMlK,GACjBkK,EAAK,IAAMlK,GAElBiK,YAAYC,EAAM,WAAaD,YAAYC,EAAK4N,OAAQ9X,GACjDkK,EAAK4N,OAAO9X,WAG3BsrB,sBAA6C/W,EAAO8F,cAAxC9P,IAAAA,IAAKL,IAAAA,KAAM4F,IAAAA,MAAOzP,IAAAA,KAAMohB,IAAAA,UAC3BphB,GAAiB,eAATA,OACPyX,EAAS2J,GAAmBzjB,OAAO8B,KAAKoK,GAAMjL,OAAO,SAACQ,EAAG0K,SAC9C,MAATA,EAAE,KACF1K,EAAE0K,EAAEgS,OAAO,IAAMjS,EAAKC,IAEnB1K,qBACJyK,EAAK4N,QAAU,KACtB9Z,OAAO8B,KAAKgY,GAAQ1N,QAAQ,SAAA8R,OAClBsP,EAAInkB,EAAKwjB,UAAU3O,MACpBsP,KAAMA,EAAE1b,OAAUA,QACnBmR,KACCuK,EAAEV,GAEA,CAAA,KAAIU,EAAEL,MAAMjsB,QAAQmB,IAAS,UAChC4gB,EAAQ5gB,OAFR4gB,EAAQ,QAMNrgB,kBAAQL,MAAOuX,EAAOoE,GAAOxC,SAAU,kBAAMrS,EAAKkkB,UAAUrhB,EAAMgS,KAAW7B,GAAU,IACzF9P,IACA3J,EAAK6qB,QAAU,kBAAMlhB,EAAI4a,WAAWjJ,IACpCtb,EAAK8qB,UAAY,kBAAMnhB,EAAI6R,gBAAgBF,IAC3Ctb,EAAK8gB,UAAY,SAAC5f,UAASgV,UAAUlW,EAAK6qB,UAAW,CAAC3pB,MAE1DuF,EAAKyV,IAAI1b,kBAAW8a,cAAQ+E,cAASuK,EAAE1b,MAAQ,EAAI,GAAKyE,EAAO,CAAC3T,EAAMsJ,EAAM7C,EAAKS,aAMjG,SAASlC,OAAO+lB,UACLA,EAAItqB,OAAO,SAAU2N,EAAMjN,EAAO4pB,UAC9BA,EAAIzsB,QAAQ8P,EAAM,KAAOjN,IAIxC,SAASgpB,aAAaS,OACZptB,EAAIotB,EAAEI,kBACRzsB,MAAM8B,QAAQ7C,GAAWwH,OAAOxH,EAAEiD,OAAO,SAAAG,SAAW,MAANA,OACzC8H,GAAGnG,OAAO/E,IAAW,CAACA,GCtGpB,SAASukB,QAAQxH,cAC5BnN,OAAOpP,KAAM,CACTuc,GAAAA,EACA3O,GAAI2O,EAAG3O,GACPgX,UAAU,EACVC,SAAS,EACTkF,WAAW,EACXyB,UAAW,KACXZ,YAAa,KACbS,WAAW,EACX/a,SAAU,GACVyC,QAAS,GACT5B,KAAM,GACN0J,WAAY,GACZoR,UAAW,GACXhE,UAAW,KACXlC,SAAU,EACV9H,SAAU,KACVjB,cAAc,EACdsI,SAAS,EACT0E,WAAY,WACR1iB,EAAKukB,UAAU,aAIvBrT,UAAUxY,KAAM,CACZmC,0BACWoa,EAAGpa,SAEd+b,sBACW3B,EAAG2B,YAIb4L,SAASvN,EAAGjN,YAEZuN,SAAW,IAAIN,EAAG0Q,QAAQjtB,WAC1Bua,QAAU,IAAIiE,OAAOxe,WACrBkJ,IAAMqT,EAAG2Q,UAAU/S,IAAIna,MAAOA,MClDvC,SAASmtB,SAASC,EAAQrqB,EAAQsqB,OACxBjX,oBAAiBgX,cAAUC,EAAIjgB,YAC/BmJ,EAAM,IAAIxO,MAAMqO,UACtBG,EAAInJ,OAASigB,EAAIjgB,OACjBmJ,EAAI/J,IAAM4gB,EACH7W,EAGX,SAAS+W,QAAQD,OACPE,EAAOF,EAAIG,cAAgBH,EAAII,aAChCF,SACMA,aAIAvc,KAAK6G,MAAM0V,GACpB,MAAO/sB,UACE+sB,GAIA,SAASG,MAAM3qB,MACI,oBAAnB4qB,oBAqBPrd,EAjBE+c,EAAM,IAAIM,eACVP,EAASrqB,EAAOqqB,OAEtBC,EAAIO,QAAU,SAAeptB,GACzBuC,EAAO8qB,QAAQrtB,IAGnB6sB,EAAIS,OAAS,cACLT,EAAIjgB,OAAS,KAAOigB,EAAIjgB,QAAU,WAC3BrK,EAAO8qB,QAAQV,SAASC,EAAQrqB,EAAQsqB,GAAMC,QAAQD,IAGjEtqB,EAAOgrB,UAAUT,QAAQD,KAG7BA,EAAIW,KAAKjrB,EAAO+a,QAAU,MAAOsP,GAAQ,GAGrCrqB,EAAOf,OACuC,UAAzCe,EAAOkrB,UAAY,IAAIhP,eACxB3O,EAAW,IAAI4d,SACf9uB,OAAO8B,KAAK6B,EAAOf,MAAMW,IAAI,SAAAoE,GACzBuJ,EAASmL,OAAO1U,EAAKhE,EAAOf,KAAK+E,QAGrCuJ,EAAWU,KAAKC,UAAUlO,EAAOf,MACjCqrB,EAAIc,iBAAiB,eAAgB,sBAKzCprB,EAAOqrB,iBAAmB,oBAAqBf,IAC/CA,EAAIe,iBAAkB,OAGpBC,EAAUtrB,EAAOsrB,SAAW,GAElCjvB,OAAO8B,KAAKmtB,GAAS7iB,QAAQ,SAAA4E,GACH,OAAlBie,EAAQje,IACRid,EAAIc,iBAAiB/d,EAAMie,EAAQje,MAG3Cid,EAAIiB,KAAKhe,IDfblB,OAAO2U,QAAQnkB,UAAW,CACtBkqB,kBAASxa,GACLF,OAAOpP,KAAM,CACT+a,KAAM,GACNC,SAAU,GACVoB,QAAS,GACTR,KAAM,GACNtM,MAAAA,KAGR+J,qBACSwB,2DAAiB7a,KAAKuc,GAAGpa,QAAQmO,UAAY,IAAOtQ,KAAK4N,GAAGjM,OAAS,IAAO3B,KAAK6a,iBACjFkR,mBACA/G,eACAS,gBACA5I,SAAS0R,cACT3gB,GAAG1B,KAAKlM,KAAK4N,GAAI,WAAY5N,KAAKsQ,aAI/CwT,UAAUC,SACViB,QAAQjB,qBACEA,SACVyD,UAAUzD,SACVkG,SAASlG,SACTkH,WAAWlH,SACX4H,aAAa5H,SACb+H,UAAU/H,SElFV,IAAMziB,OAAO,sBAEE,CACXF,KAAME,OACNoK,YAAY,EACZnK,MAAO,CAAC,SACR0B,gBAAOrC,EAAG+K,UACCA,EAAIpK,MAAMqd,MAAQjT,EAAIpK,MAAMqd,MAAQjT,EAAIhE,WCDvD,SAAS6mB,UAAUtrB,UACXwH,GAAGnG,OAAOrB,GACH,CAACurB,SAAU,CAACC,UAAWxrB,IAC3BA,EAGJ,SAASyrB,wBAENjL,EAAW,YAERG,EAAWjW,GAChBA,GAAM5N,KAAK4uB,MAAMhhB,UAGrBwB,OAAOyU,EAAWjkB,UAAW,CACzBgvB,eAAMhhB,QACGA,GAAKA,OACL2S,GAAK3S,EAAG4S,gBAEjB3G,cAAKgV,EAAK7sB,EAAM2F,UACR2G,IAAIhK,OAAOwqB,cAAcD,IAAQ7sB,EAAK+sB,iBAAiB/sB,EAAK+sB,SACzD/uB,KAAKwjB,cAAcqL,EAAK7sB,EAAM2F,IAEzC6b,uBAAc/hB,EAAMO,EAAM2F,OAClBqnB,EAAOhvB,KAAKugB,GAAG9e,EAAM+sB,UAAUxsB,GAAO2F,GAAY,WACtDqnB,EAAKC,QAAUjvB,KAAK4N,GACbohB,GAEXtL,SAAAA,IAGJtU,OAAOyU,EAAY,CACfH,SAAAA,EACAD,eAAMA,EAAOriB,GACTsiB,EAASD,GAASriB,GAEtBsd,aAAIwQ,GACA9vB,OAAO8B,KAAKguB,GAAO1jB,QAAQ,SAACD,OAClB4T,EAAOD,OAAO3T,GACdwT,EAAQxX,WAASgE,GAAG6T,oBACpBxc,EAAIssB,EAAM3jB,IACfA,EAAG4T,EAAMJ,GAAOvT,QAAQ,SAAAjJ,GACrBshB,EAAWJ,MAAMlY,EAAG3I,GACpBihB,EAAWjkB,UAAU2C,GAAK,SAAUP,EAAM2F,UAC/B3H,KAAK6Z,KAAKjX,EAAGZ,EAAM2F,WAOvCkc,ECrDJ,SAASsL,cAAcC,OACpBC,0BAAsBC,sHAG5BlwB,OAAOC,OAAOgwB,EAAczvB,UAAWwvB,GAChCC,EAGI,SAASC,QAAQztB,GAC5BuN,OAAOpP,KAAM,CACTuU,QAAS1S,EACT+L,GAAI/L,EAAQ+L,GACZzL,QAAS,GACTqB,IAAK,SACL+rB,iBAAkB,CACdlX,OAAQ,CAAC,OAAQ,MAAO,OAAQ,YAAa,oBAGhDiO,iBACAjN,OAGTjK,OAAOkgB,QAAQ1vB,UAAW,CACtB2uB,kCACShU,QAAUva,KAAKuU,QAAQgG,aACvBiV,GAAK,0BAAaloB,EAAKiT,SAAQ3G,gCAExC0S,0BACSvf,IAAMC,YAGfqS,kBAEAvX,oBAEA2e,0BAEAtP,uBACWnR,KAAK4N,GAAG3D,MAAMjK,KAAKwD,MAE9BisB,sBAAatd,EAAM/P,qBACR+S,WAAWhD,EAAKxP,IAAI,SAAAC,UAAKwF,EAAKsnB,YAAY9sB,KAAKR,EAAKpC,KAAKuvB,mBAEpEjT,uBAAcna,QACLA,QAAUnC,KAAKyvB,aAAa,CAACttB,GAAUnC,KAAK2vB,0BAC5C7tB,UAET4tB,qBAAYvtB,UACDA,GAEXsgB,kBAAS9W,KAETmX,mBAAUnX,KAEVgkB,mCACW,IAEX1sB,gBAAO0E,WCxDLioB,kBAAoB,CACtBxuB,KAAM,oBACNyuB,cAAKvS,EAAMhS,EAAMpC,OACP4U,EAASR,EAAKxC,WACfgD,EAIDR,EAAKuP,UAAUlZ,SAAW,CAAC,CACvBmc,yBACUnkB,EAAMiN,MAAMtN,MACdK,EAAK,4BAFAwG,2BAAAA,yBAGEjJ,EAAIiC,WAAJjC,GAASyC,EAAIQ,IAAe,IAAX2R,EAAkB,qBAAuBA,UAAW3L,GAAM,CAC9EmL,KAAAA,EACAhS,KAAAA,EACApC,IAAAA,WAVhBoU,EAAKwP,YACL5jB,EAAIwgB,mBAAmB,CAACpe,EAAK9G,UAgBrC5C,iBACIguB,kBAAkBC,WAAlBD,+BAIFlC,QAAQ,SAAUnR,YAYXwT,EAAItc,EAAQnI,EAAMpC,OACnBnG,EAAS0Q,EAAO9R,SAChB+I,GAAGhF,SAAS3C,KACZA,EAASA,EAAOuI,EAAMpC,MAE1BnG,WAfcA,UACV2H,GAAGnG,OAAOxB,KACVA,EAAS,CACLqqB,OAAQrqB,EACR4c,GAAI,YAGL5c,EAQEitB,CAASjtB,MACFA,EAAOqqB,cACZ,EAENrqB,EAAO4c,KACR5c,EAAO4c,GAAK,eAEVkO,EAAU9qB,EAAO8qB,QAEjBpH,EAAQ,eACLhT,EAAOqH,kBACRrH,EAAOqZ,YACP5jB,EAAIuT,KAAKnR,IACF,GAITlC,EAAM,SAACvC,QACGhE,IAARgE,GACA4M,EAAOqZ,YACP5jB,EAAIuT,KAAKnR,IAEToU,QAAQjM,EAAOoZ,UAAW9pB,EAAO4c,GAAI9Y,WAI7CkS,OAAO,kBAAMwD,EAAG3C,OAAO8T,uCAChB3qB,OACHgrB,mBAAUkC,OACFxJ,SACAnd,EAAK,SAAC1G,UAAMA,EAAEZ,MACd0I,GAAGhF,SAAS3C,EAAO8U,SACnBvO,EAAKvG,EAAO8U,OAEhBzO,EAAIE,EAAG2mB,EAAM3kB,EAAMpC,IACnBA,EAAIuT,KAAKnR,KAEbuiB,iBAAQrtB,GACJ4I,OAAIvG,GACA4jB,MACHoH,GAAY,SAACrtB,UAAM+V,IAAI/V,EAAE0vB,SAAW,cAAgBntB,EAAOqqB,UAAU5sB,EAAG8K,EAAMpC,MAEpF,CAACuK,OAAAA,EAAQnI,KAAAA,EAAMpC,IAAAA,OACX,QAGJ,CACH9H,KAAM,QACN+uB,kBACIJ,2BAEJnuB,eAAM6R,EAAQnI,EAAMpC,GACX6mB,EAAItc,EAAQnI,EAAMpC,KACnBuK,EAAOqZ,YACP5jB,EAAIuT,KAAKnR,OAOnB8kB,UAAY,CACdhvB,KAAM,WACNyuB,cAAKpc,EAAQnI,EAAMpC,OACTrC,EAAMwpB,SAAS5c,EAAOqH,gBACP,IAAjBjU,EAAInF,SACJ+R,EAAOqZ,gBACJ,KACGnZ,kBACFjS,UAAU,EACVouB,mBAAUQ,EAAG1tB,EAAG9C,GACZ4K,GAAGU,MAAMxI,GAAK9C,EAAK6T,EAASuc,SAAWpwB,MAExC+G,OAEF8M,EAASuc,QAAS,KACf3qB,EAAQ+F,EAAK/F,OAAS,GAC1BoO,EAASuc,UAA6B,WAAjBplB,QAAOvF,GAAqBA,EAAMA,MAAQA,IAAU,IAAM,OAEnFkO,EAAOoZ,UAAUlZ,SAAW,CAACA,GAEjCzK,EAAIuT,KAAKnR,IAEb1J,iBACIwuB,UAAUP,WAAVO,uBAIR,SAASC,SAASxpB,UACV6D,GAAGhG,QAAQmC,GACJ,CAACnF,SAAUmF,GACX6D,GAAGnG,OAAOsC,GACV,CAACqpB,QAASrpB,GACV6D,GAAGE,MAAM/D,GACT,CAACnF,UAAU,GACXgJ,GAAGhF,SAASmB,GACZ,CAACipB,UAAWjpB,GACX6D,GAAGtL,OAAOyH,GAGXA,EAFA,iBAMA,CACX6mB,MAAAA,QACAhsB,SAAU0uB,UACVR,kBAAAA,mBC1JExuB,KAAO,YAEE,CACXA,KAAAA,KACA+e,cAAc,EACdld,gBAAO0E,EAAUgE,UACRA,EAAIzI,KAAKurB,WAAU9iB,EAAIzI,KAAKurB,SAAW,IAC5C9iB,EAAIzI,KAAKurB,SAASC,UAAY/mB,EACvBgE,EAAI4X,MAAM1J,KAAKlO,EAAIzI,KAAK3B,MAAMstB,KAAO,MAAOljB,EAAIzI,OAE3Dqf,wBAAe5W,UACPpL,MAAM8B,QAAQsJ,EAAIL,KAAK3D,UAChBgE,EAAIL,KAAK3D,SAASlF,OAAO,SAAAG,UAAK8H,GAAGnG,OAAO3B,KAAI2tB,KAAK,IAErD,KCIJC,KAAyB,oBAAXC,QAA0BA,OAAOniB,IAAMmiB,OAAOniB,IAAMA,IAE7E,SAASoiB,WAAWtvB,EAAM+K,OAClBjJ,SACqB,IAArBzD,UAAUC,OAEVyM,GADAjJ,EAAOzD,UAAU,IACP2B,GAEV8B,EAAOzD,UAAU,GAEd,CAAC0M,GAAAA,EAAIjJ,KAAAA,GAGhB,SAASytB,kBACED,yBAAW,0CAAWjxB,aAGjC,SAASmxB,OAAOzuB,UACPA,GAAYA,EAAQ4b,GAClBrT,GAAGG,QAAQ1I,EAAQ4b,IACpB5b,EAAQ4b,GACRra,SAASmtB,cAAc1uB,EAAQ4b,IAHD0S,OAAO/sB,SAASusB,KAMxD,SAASa,UAAUxhB,EAAOvM,OAChBguB,EAAM,IAAIP,KAAK,CACjBxuB,sBAEW,CAACsJ,KAAMgE,EAAOvM,OAAQA,GAAU,KAE3CE,gBAAOrC,UACIA,EAAE,aAAc,CAAC4C,IAAK,KAAMjC,MAAOvB,KAAKgxB,kBAGvDD,EAAIE,SACGF,EAGX,SAASG,YAAYhb,OACXnP,EAAMmP,EAAMnP,KAAO,GACnBqR,EAAQlC,EAAMkC,OAAS,GACvBC,EAASnC,EAAMmC,QAAU,GAC/BtC,SAAS1U,WAAT0U,4BAAiBhP,IACjBiP,WAAW3U,WAAX2U,8BAAmBoC,IACnBnC,YAAY5U,WAAZ4U,+BAAoBoC,IAEpBmB,yCAAgBzS,sBAAQqR,sBAAUC,KAGtC,IAAIlM,KAAK,EACHglB,SAAW,GAGF,SAASC,kBAAkB9sB,OAEhC0oB,qBACDqE,SAASjwB,KAAOiwB,UAEf9F,EAAU,GACV+F,EAAa,GACbrF,oBACCsF,WAEDjY,EAAQU,eACVwX,EAAe,CAACrQ,OAAQ,IACtBnf,EAAO,GACP6hB,EAAa8K,6BAIV8C,EAAOrwB,OACNyF,EAAMsqB,SAAS/vB,UACjBb,MAAM8B,QAAQwE,sBACHA,GACRA,WAGF6qB,QACC1vB,EAAO2uB,sBAAYlxB,WACrBuC,EAAKmK,IAAMnK,EAAKkB,OAAMouB,EAAWtvB,EAAKmK,IAAMnK,EAAKkB,eAGhDyuB,QACC3vB,EAAO2uB,sBAAYlxB,WACrBuC,EAAKmK,IAAMnK,EAAKkB,OAAM+oB,EAAUjqB,EAAKmK,qCAAUnK,EAAKkB,UAAM9B,KAAMY,EAAKmK,eAGpEylB,EAAenO,GACpBI,EAAWnF,IAAI+E,YAGVvD,QACCle,EAAO2uB,sBAAYlxB,cACpBuC,EAAKmK,IAAOnK,EAAKkB,UAChB9B,EAAO0d,OAAO9c,EAAKmK,IACnB+T,EAASle,EAAKkB,KACd2uB,GAAwB,IAAjB3R,EAAO/H,MAAiBoT,EAAQnqB,QAAQyB,EACrD0oB,EAAQnqB,oCAAaywB,GAAQ9G,YAAgB7K,GAC7C5G,EAAMlY,GAAQgY,eAAehY,GAC7B8e,EAAO5G,OAASlK,OAAOkK,EAAO4G,EAAO5G,iBAGhC6C,EAAUhQ,EAAIgQ,OACf/a,KACAsJ,GAAGnG,OAAO4H,GAAK,IACf/K,EAAO0d,OAAO3S,GACV,CAAC,cAAe,cAAc7L,QAAQc,IAAS,SACxCgR,IACJ,QAAkBvP,IAAdsZ,SACA6Q,EAAW5rB,QAGtBA,EAAO0d,OAAO3S,EAAG/K,MACjB+a,EAAYhQ,EAEX/K,GAAS+a,IACd6Q,EAAW5rB,GAAQ+a,EACfA,EAAU2V,kBAAkB5R,EAAO9e,EAAM+a,EAAU2V,4BAGlD1f,WACEoe,KAAKphB,OAAO+D,YAAYC,aAG1B2e,WACEvB,KAAKphB,OAAOiiB,mBAId3S,EAAIpV,EAAIlH,UACTsI,GAAGhF,SAAS4D,EAAG0oB,SAAU1oB,EAAG0oB,QAAQpY,EAAQxX,GACvCsI,GAAGhF,SAAS4D,IAAKA,EAAGsQ,EAAQxX,GAC9BpC,cAGF4Z,EAAOtK,EAAO2iB,EAAMhf,OACrB8d,EAAMD,UAAUxhB,EAAO2iB,GAAQ,IAC7B3qB,EAAQypB,EAAI9mB,MAAMsS,GAAGvI,kBAC3B1M,EAAM4L,QAAUD,EAChB2d,OAAOtpB,EAAMnF,SAAS8B,YAAY8sB,EAAI1V,KAC/B/T,EAAM4B,eAGR+Q,EAAQiY,OACTC,oBAAc7tB,UACd4tB,EACAC,EAAQD,QAAU,CACdlF,WAAAA,EACAzB,QAAAA,EACA+F,WAAAA,EACArF,UAAAA,EACA3S,MAAAA,EACAtX,KAAAA,UAGGmwB,EAAQD,QAEZd,kBAAkBe,YAGpB/e,EAAWxF,EAAI0B,EAAOnN,GAC3BiN,OAAOpP,KAAM,CACTmM,GAAIA,OACJyB,GAAAA,EACAgM,OAAAA,EACAqT,QAASkC,cAAc7qB,EAAO2oB,SAC9B1B,QAAAA,EACAU,UAAAA,EACA3c,MAAO/O,MAAM8B,QAAQiN,GAASA,EAAQ,GACtClO,KAAMwM,EAAG8G,SAASC,UAAUvT,KAC5BmR,MAAO3E,EAAG8G,SAASC,UAAUpC,MAC7BrP,KAAM,CACF8pB,WAAAA,EACAsE,WAAAA,GAEJzN,WAAAA,EACA3F,IAAK,IAAIsS,KACT9J,QAAS,KACTvkB,QAASA,GAAW,GACpB+qB,UAAW5oB,EAAO4oB,WAAc,SAAAhkB,UAAOA,UAEtCmQ,YACAhF,YAAYrU,KAAKmC,SAClBnC,KAAKoB,OACDpB,KAAKuS,OACA4e,SAASnxB,KAAKoB,QAAO+vB,SAASnxB,KAAKoB,MAAQ,IAChD+vB,SAASnxB,KAAKoB,MAAMC,KAAKrB,KAAKkJ,QAE9BioB,SAASnxB,KAAKoB,MAAQpB,KAAKkJ,gBAqF9BkpB,EAAQpe,GACb5E,OAAO4E,EAAY,CACfqe,QAAS/tB,EAAO+tB,QAChBC,GAAIhuB,EAAOguB,GACXtwB,KAAAA,EACAsX,MAAAA,EACA6C,UAAAA,EACAuV,UAAAA,EACAC,SAAAA,EACAI,OAAAA,EACA7R,OAAAA,EACAxB,IAAAA,EACAzE,QAAAA,EACA2X,eAAAA,EACA3Z,SAAAA,SACA3G,UAAAA,UACAoc,MAAAA,MACAtb,MAAAA,EACAkF,QAAAA,QACAK,UAAAA,UACAZ,OAAAA,OACA0a,OAAAA,EACApY,cAAK/J,OACGyhB,EAAMD,UAAUxhB,yDADL,IACmBhI,EAAQypB,EAAI9mB,MAAMsS,GAAGvI,iBAChD,CACHue,eAAMlX,UACEA,GAAO3Q,GAAGG,QAAQwQ,KAClB/T,EAAMnF,QAAQ4b,GAAK1C,GACvBuV,OAAOtpB,EAAMnF,SAAS8B,YAAY8sB,EAAI1V,KAC/B/T,EAAM4B,OAEjBspB,kBACIzB,EAAI1V,IAAIC,YAAcyV,EAAI1V,IAAIC,WAAWC,YAAYwV,EAAI1V,MAE7DD,wBACSoX,SACLzB,EAAIvV,YAERnL,GAAI/I,EAAM4B,aAnP1BgoB,YAAY5sB,EAAO4R,OAAS,IA6H5B9G,OAAOgE,EAAWxT,UAAW,CACzByZ,2BACUzL,EAAK5N,KAAK4N,GACVhN,EAAI,IAAI6xB,QAAOzyB,WAChBuU,QAAU3T,EACfgN,EAAGyC,GAAKzP,EAAEsI,IACV0E,EAAGpL,MAAM,QAAS5B,EAAEsI,KAEpB0E,EAAGrE,IAAI,eAAgB,WACfnB,EAAKsqB,UACLtqB,EAAKse,QAAU9Y,EAAGQ,OAAO,kBAAMR,EAAG4F,KAAKzQ,QAAQ,WAC3CqF,EAAKiM,YAAYjM,EAAKjG,SACtByL,EAAGyC,GAAGiE,WACP,CAACvS,MAAM,IACVqG,EAAKiM,YAAYjM,EAAKjG,UAE1BiG,EAAKpF,YAET4K,EAAGrE,IAAI,eAAgB,WACnBnB,EAAKkC,YAETsD,EAAGrE,IAAI,qBAAsB,cACzBqE,EAAG8F,WAAY,EACftL,EAAKse,SAAWte,EAAKse,UACrB9lB,EAAE4T,WAAW,IACTpM,EAAKhH,QACDgH,EAAKmK,MAAO,KACNyC,EAAMmc,SAAS/oB,EAAKhH,MAAMd,QAAQ8H,EAAKc,OAC7CioB,SAAS/oB,EAAKhH,MAAM2H,OAAOiM,EAAK,eAEzBmc,SAAS/oB,EAAKhH,QAIjCwM,EAAGrE,IAAI,eAAgB,WACnB3I,EAAEilB,aAAa,kBAAMzd,EAAK8V,IAAI1b,MAAM,YAAa5B,EAAEsI,UAG3DwpB,wBACW1yB,KAAK4N,GAAG4F,MAAQxT,KAAK4N,GAAG0E,cAEnC+B,qBAAYlS,QACHA,wBAAWmO,SAAU,GAAIiB,UAAW,GAAIC,SAAU,IAAOrC,SAASqiB,IACnExxB,KAAK0yB,cACAjD,aAAazvB,KAAKmC,QAASnC,KAAK4N,GAAG4F,KAAKnD,GAAG/L,QAAU,IAAI,QAE7DgY,cAAcna,IAEvBstB,sBAAaphB,EAAQjM,EAAK6Q,UACtB7Q,EAAM+M,SAAS/M,GACf6Q,GAAU,CAAC,OAAQ,WAAY,UAAW,SAAU,WAAY,MAAMzH,QAAQ,SAACjJ,UACpEH,EAAIG,KAEXH,EAAI+e,SACJ9S,EAAO8S,OAAS5I,YAAYlK,EAAO8S,OAAQ/e,EAAI+e,eACxC/e,EAAI+e,aAEV5M,QAAQsI,SAAS4S,aAAa,CAACrtB,GAAMiM,GACnCA,GAEXiO,uBAAcna,QACLstB,aAAazvB,KAAKmC,QAASA,QAC3BoS,QAAQsI,SAASP,cAActc,KAAKmC,UAE7Ca,wBACSuR,QAAQ8E,YACRzL,GAAGpL,MAAM,UAAWxC,KAAKkJ,QAElCA,sBACWlJ,KAAKuU,QAAQrL,KAExBjG,yBACWjD,KAAKuU,QAAQtR,UAExBqH,wBACSiK,QAAQjK,aAuErB8nB,EAAQxY,GArBJxK,OAsBMwK,EAtBa,CACfA,OAAAA,EACAoY,iBAAQ1jB,EAAKnM,MACTqvB,mCAAmBA,GAAkBrvB,GAAW,KACf,IAA7BmM,EAAIqkB,sBACRrkB,EAAIqkB,sBAAuB,EAC3BnC,KAAOliB,MAEDskB,EAAc,SAAUtjB,UACnBsK,EAAOtK,yDADyB,GACbtP,OAG9BoyB,EAAQQ,GAERtkB,EAAI1O,UAAUgzB,YAAcA,EAC5BtkB,EAAI6N,UAAU,aAAc/J,KAC5B9D,EAAI6N,UAAU,aAAc4V,SAQxClO,EAAWnF,IAAI,CAAC2S,SAAU,eAE1BnR,EAAO2S,MAEHvuB,EAAO0tB,SAASpY,EAAO8E,IAAIpa,GAE3BA,EAAO4tB,QAAS,KACVA,EAAU5tB,EAAO4tB,QACvBA,EAAQlF,YAAc5d,OAAO4d,EAAYkF,EAAQlF,YACjDkF,EAAQ3G,SAAWnc,OAAOmc,EAAS2G,EAAQ3G,SAC3C2G,EAAQZ,YAAcliB,OAAOkiB,EAAYY,EAAQZ,YACjDY,EAAQjG,WAAa7c,OAAO6c,EAAWiG,EAAQjG,WAC/CiG,EAAQ5Y,OAASlK,OAAOkK,EAAO4Y,EAAQ5Y,OACvC4Y,EAAQlwB,MAAQoN,OAAOpN,EAAMkwB,EAAQlwB,aAGlC4X,ECvXJ,SAASkZ,gBAAgBC,MACxBroB,GAAG8U,KAAKuT,GACR,OAAOA,MAEHC,EAAO,IAAIxT,KAAKuT,SACO,iBAApBC,EAAKzrB,WAAgCwrB,EAAYC,EAIhE,IAAM5xB,OAAO,wBAEE,CACXA,KAAAA,OACAkY,MACW,CAAC,OAAQ,YAAa,WAAY,gBAAiB,OAAQ,SAASjZ,OAAO,SAACiZ,EAAO7X,UACtF6X,EAAM7X,GAAQ2X,eAAehY,OAAM,CAACK,KAAMA,EAAKwd,gBACxC3F,GACR,IAEPwJ,mBAAUnX,OACFpK,EAAQoK,EAAIzI,KAAK3B,MACjBA,EAAM0xB,YACN1xB,EAAM0xB,UAAY1xB,EAAM0xB,WAAaH,gBAAgBvxB,EAAM0xB,aAInEC,iBAAQnV,UACGA,EAAGtc,KAAK0xB,SAAS,UAAYpV,EAAGqV,UAG3CC,kBAASxsB,EAAK8E,OACJhK,EAAQgK,EAAIoS,GAAGuV,WAAWzsB,GAAO,IAAM0sB,EAAa5nB,EAAIoS,GAAjBwV,UACzCL,EAAUlzB,KAAKkzB,QAAQvnB,EAAIoS,WAC1Bpc,EAEIuxB,EACEvxB,EAAM+K,MAAM6mB,GAEZ5xB,EAJAuxB,EAAWvnB,EAAIoS,GAAGqV,SAAW,GAAK,CAAC,GAAI,IAAOzxB,GAO7DuoB,iBAAQC,EAAWxe,OACToS,EAAKpS,EAAIoS,UACXA,QACKA,GAAKA,EACH/d,KAAKqzB,SAASlJ,EAAWxe,IAE7Bwe,GAGXQ,qBAAYhpB,EAAOgK,MACXA,EAAIoS,GAAI,KACFnb,EAAI+I,EAAIoS,GAAGyV,UAAU7xB,UACpB3B,KAAKkzB,QAAQvnB,EAAIoS,IAAMnb,EAAIA,EAAE,OAEsB6wB,EAAtD9kB,EAAQpO,MAAM8B,QAAQV,GAAQJ,EAAQoK,EAAIzI,KAAK3B,MAAmBE,EAAOF,EAAME,MAAQ,cAGnFgyB,GAF8C,IAAlD,CAAC,YAAa,iBAAiBnzB,QAAQmB,GACnCkN,EACahN,EAAMgB,IAAI,SAAC+wB,UAAUA,EAAYZ,gBAAgBY,GAArB,KAE5B,CAAC,GAAI,IAEf,SAAWjyB,IAA2B,IAAnBF,EAAM6xB,SACnB7rB,SAAS5F,IAEtB8xB,EAAa9kB,EAAShN,EAAM,IAAM,GAAMA,GACRmxB,gBAAgBW,GAArB,IAKvCnpB,iBAAQqB,GACJA,EAAIL,KAAK3J,MAAQ3B,KAAKkqB,QAAQve,EAAI4I,QAAQyO,YAAYrX,GAAMA,KCzE9DvK,OAAO,gBACE,CACXA,KAAAA,OACAkY,yBACKlY,OAAO,SAACoD,EAAO7C,UAAUyX,eAAehY,OAAfgY,CAAqB,GAAI5U,EAAO7C,KAE9DsB,wBACW,KCPT7B,OAAO,cACE,CACXA,KAAAA,OACAkY,MAAQ,eACEA,EAAQ,CAAC,WAAY,MAAO,QAAS,OAAQ,YAAYjZ,OAAO,SAACiZ,EAAO7X,UAC1E6X,EAAM7X,GAAQ2X,eAAehY,OAAM,CAACK,KAAAA,IAC7B6X,GACR,WAEHA,EAAMqa,MAAQva,eAAehY,OAAM,CAACK,KAAK,SAClC6X,EAPH,GASRwJ,mBAAUnX,OACDpK,EAASoK,EAAIzI,KAAb3B,MACDA,EAAMqyB,UAAYryB,EAAMqyB,SAASC,UACjCtyB,EAAMuyB,KAAOvyB,EAAMqyB,SAASC,SAAW,KCf7CzyB,OAAO,gBACE,CACXA,KAAAA,OACAkY,MAAO,CACHya,YAAa3a,eAAehY,OAAM,CAAC4yB,OAAM,KAE7CrJ,qBAAYhpB,EAAOgK,OACXgD,EAAQpO,MAAM8B,QAAQV,GAAQJ,EAAQoK,EAAIzI,KAAK3B,MAAOmO,EAAMnO,EAAMmO,KAAO,SAEzD,IAAhBnO,EAAMyyB,MACOrlB,EAAQhN,EAAQ,CAAC+N,EAAMukB,WAAWtyB,IAAU+N,GAE5Cf,EAASslB,WAAWtyB,EAAM,KAAO+N,EAAOukB,WAAWtyB,aCd7D,CACXP,KAAM,SACN0hB,mBAAUnX,OACAzI,EAAOyI,EAAIzI,KAAK3B,MAAMqK,MAAQ,GAC9BA,EAAOD,EAAIzI,KAAKgxB,aAAe,GACjChxB,EAAK8qB,OAAMpiB,EAAKoiB,KAAO,kBAAM9qB,EAAK8qB,OAClC9qB,EAAKgE,QAAO0E,EAAK1E,MAAQ,kBAAMhE,EAAKgE,QACxCyE,EAAIzI,KAAKgxB,YAActoB,QCPhB,CACXxK,KAAM,QACN6B,gBAAOqtB,EAAG3kB,UACCA,EAAI4X,MAAM4Q,IAAI,CAAC5yB,MAAO,CAACiR,KAAM,KAAM,CACtC7G,EAAI4X,MAAM6Q,IAAIzoB,EAAIzI,KAAMotB,eCGrB,CACX+D,WAAYlb,OAAQjI,MAAOojB,OAAQC,QAASH,WCRjC,CACX5kB,OAAQ,UACR3K,KAAM,OACNyvB,OAAQ,SACRE,KAAM,OACNtnB,OAAQ,WACRunB,SAAU,WACVC,YAAa,cACbC,WAAY,aACZN,WAAY,oBACF,UACVxhB,OAAQ,WACRF,SAAU,aACVC,MAAO,UACPgiB,YAAa,cACb1jB,MAAO,SACP2jB,SAAU,WACV1jB,KAAM,QACNjH,MAAO,UACPiqB,IAAK,OACLC,IAAK,MACLthB,KAAM,SACNgiB,aAAc,eACdpiB,MAAO,UACPK,QAAS,YACTgiB,OAAQ,aCzBCC,YAAc,CACvBC,aAAc,UACdC,aAAc,aACdC,SAAU,kCAGP,SAASC,aACL,CACH3zB,KAAM,SACNuc,QAAS,QACTqX,UAAW,YACXC,UAAU,EACVzwB,KAAMmwB,YAAYG,UAIX,SAASI,kBACb,CACHpkB,KAAM,CACFqkB,QAAQ,EACRC,cAAe,QACfC,WAAY,IACZC,aAAa,EACbC,aAAc,MACdjtB,UAAM9F,GAEVuxB,IAAK,CACDyB,OAAQ,GAEZtkB,UAAW,CACP9P,KAAM,UACNkD,UAAU,EACVmxB,UAAW,KACXjR,SAAS,EACTkR,MAAM,EACNC,WAAOnzB,GAEX2O,SAAU,CACN/P,KAAMuzB,YAAYC,aAClBtwB,UAAU,EACVE,KAAMmwB,YAAYE,aAClBY,UAAW,KACXjR,SAAS,EACTkR,MAAM,EACNC,WAAOnzB,ICvCnB,SAASozB,KAAK10B,EAAOH,SACZiK,YAAY9J,EAAOH,KACpBsJ,GAAGnG,OAAOhD,EAAMH,MAChBG,EAAMH,yBAAUA,EAAOG,EAAMH,8BAAa,QAIlD,SAAS80B,QAAQrvB,UACE,IAARA,EAGX,SAASsvB,SAAS/zB,EAAKhB,GACfiK,YAAYjJ,EAAKhB,KAAUsJ,GAAGtL,OAAOgD,EAAIhB,MACzCgB,EAAIhB,GAAQ,CAAC20B,OAAQ3zB,EAAIhB,iBAIlB,CACXuS,wBACUxC,EAAOnR,KAAKmR,cACdA,EACO,IAAIilB,QAAQ,SAACC,EAASC,GACzBnlB,EAAKwC,WAAW4iB,KAAK,SAAA/e,GACjBA,EAAO6e,GAAQ,GAAQC,GAAO,OAInC,IAAIF,QAAQ,SAAAxzB,UAAKA,OAE5B4zB,uBAAchyB,OACJ2M,EAAOnR,KAAKmR,cACdA,EACO,IAAIilB,QAAQ,SAACC,EAASC,GACzBnlB,EAAKqlB,cAAchyB,EAAO,SAAAhE,GACtBA,EAAI81B,EAAO91B,GAAK61B,EAAQ,UAI7B,IAAID,QAAQ,SAAAxzB,UAAKA,OAE5B8mB,4BAAmB/d,OACT8qB,EAAQz2B,KAAK4N,GAAG3D,MAAM0B,EAAIsa,SAC5BwQ,IACAA,EAAMC,gBAAkB,GACxBD,EAAME,cAAgB,KAG9BjH,qBAAYvtB,UACP,YAAa,WAAY,MAAO,OAAQ,OAAQ,OAAOqJ,QAAQ,SAAApK,GAC5D+0B,SAASh0B,EAASf,KAEfe,GAEXsgB,yBAAUvf,IAAAA,YACN+yB,KAAK/yB,EAAM,SACX+yB,KAAK/yB,EAAM,QACJA,GAEX4f,mBAAUnX,GACNA,EAAIzI,KAAOiS,WAAW,CAAC,CACnBigB,KAAMp1B,KAAKmC,QAAQizB,MAAQ,GAC3BwB,KAAM52B,KAAKmC,QAAQy0B,MAAQ,GAC3BzC,IAAKn0B,KAAKmC,QAAQgyB,KAAO,IAC1BxoB,EAAIzI,MAAO,CACVkyB,KAAMA,OACN7vB,MAAO,GACP4uB,IAAK,CAAC3hB,KAAM,IACZokB,KAAM,IACP,CAACve,OAAQ,CAAC,QAAS,OAAQ,MAAO,eAChCwe,QAAQlrB,EAAIzI,KAAK3B,QAE1Bs1B,iBAAQt1B,IACCA,EAAMoH,MAAQ3I,KAAKmC,QAAQgP,KAAKxI,OACjCpH,EAAMoH,KAAO3I,KAAKmC,QAAQgP,KAAKxI,OAGvCgnB,oCACW4F,aAEXzzB,sBACUqP,EAAOnR,KAAKmC,QAAQgP,UACrB7F,KAAO,CACR/J,wBAAW4P,GACX4d,SAAU,CACN+H,OAAQ,SAACt2B,GACLA,EAAEu2B,yBAGH,CAAC5lB,EAAK6lB,UAAW7lB,QAAY,eACpCtN,MAAOsN,EAAKtN,MACZpC,KAAM,SAGdgf,4BACW1Z,EAAqB/G,KAArB+G,IAAKvD,EAAgBxD,KAAhBwD,IAAK+Q,EAAWvU,KAAXuU,QACjBnF,OAAOpP,KAAKsL,KAAM,CAACvE,IAAAA,EAAKvD,IAAAA,IACxB4L,OAAOpP,KAAKsL,KAAK/J,MAAO,CACpB+R,MAAOiB,EAAQjE,SACfhB,MAAOiF,EAAQZ,cAGvB1Q,gBAAO0E,UACCA,EAASjI,QACTiI,EAAStG,KAAKrB,KAAKi3B,eAEhBj3B,KAAKwvB,GAAGxvB,KAAKsL,KAAM4qB,QAAQl2B,KAAKmC,QAAQiyB,IAAI2B,MAAQpuB,EAAW,CAAC3H,KAAKk3B,QAAQvvB,MAExFib,kBAASjX,EAAKhE,OACJ2D,EAAOK,EAAIzI,KACXi0B,YAASn3B,KAAK+G,YAAM4E,EAAI5E,KACxBotB,EAAM7oB,EAAK6oB,IACXiD,EAAUp3B,KAAKo3B,QAAQ9rB,GACvBoqB,EAAevB,EAAIuB,YAAe0B,EAAejD,EAAIuB,WAAR,IACvB11B,KAAKsL,KAAK/J,MAA/Bi0B,IAAAA,OAAa6B,IAALlD,IACT/jB,EAAO8lB,QAAQ5qB,EAAKsrB,KAAKb,MAAQpuB,EAAW3H,KAAKwvB,GAAGra,WAAW,CAAC7J,EAAKsrB,KAAM,CAC7Er1B,qCACIm0B,WAAAA,GACIpqB,EAAKsrB,MAAQ,QACjB1zB,KAAMyI,EAAIQ,GACVmD,MAAOhE,EAAKqI,iBAETrI,EAAK0rB,UACZjwB,cAAQowB,QACR3zB,IAAKmI,EAAIsa,QACTxkB,KAAM,cACL,CAACkG,EAAUyvB,EAAUp3B,KAAKs3B,SAAShsB,EAAM6rB,GAAO,cAClC,IAAX3B,GAAmBU,QAAQmB,IAASnB,QAAQ/B,EAAI4B,MAAS3lB,EAAOpQ,KAAKu3B,QAAQjsB,EAAM6rB,EAAK,CAAC/mB,KAErGgnB,iBAAQ9rB,OAC4B,IAA5BtL,KAAKmC,QAAQgP,KAAK5L,MAAiB,OAAO,MACxCA,EAAQ+F,EAAK/F,eACRA,EAAMA,QAAUA,UAAiB2wB,QAAQ3wB,EAAMwwB,QAE9DuB,kBAAShsB,EAAM6rB,OACLK,EAAYlsB,EAAK/F,MACjBkyB,EAAWnsB,EAAK8pB,KAChBztB,EAAW,CAAC6vB,EAAUjyB,WASvB2wB,QAAQuB,EAAS1B,QAAU0B,EAASrC,MAAQqC,YAAqBvB,QAAQuB,EAAS5yB,MAAO,KACpF3B,EAAO,CACTzB,KAAMg2B,EAASh2B,MAAQ,SACvBF,wBAAWk2B,GACX1wB,cAAQowB,SACRvrB,KAAM,SAGN6rB,EAASrC,OAAS/pB,YAAYnI,EAAK3B,MADzB,aAEV2B,EAAK3B,MAAL,QAAoBk2B,EAASrC,MAEjCztB,EAA4B,SAAnB8vB,EAASC,MAAmB,UAAY,QAAQ13B,KAAKwvB,GAAGra,WAAW,CAACsiB,EAAUv0B,IAAQ,CAC3FlD,KAAKwvB,GAAG,CACJ/tB,KAAM,OACNF,MAAO,CAACE,MAAwB,IAAlBg2B,EAAS5yB,KAAgBmwB,YAAYG,SAAWsC,EAAS5yB,KAAM8D,KAAM,IACnF9E,MAAO,mBACPkD,cAAQowB,mBAIbn3B,KAAKwvB,GAAGra,WAAW,CAACqiB,EAAW,CAClCj2B,MAAOi2B,EACP5rB,KAAM4rB,EAAU5rB,MAAQ,QACxB7E,cAAQowB,SACR11B,KAAM+1B,EAAU/1B,MAAQ,UACvBkG,IAET4vB,iBAAQjsB,EAAM6rB,EAAKxvB,OACTwsB,EAAM7oB,EAAK6oB,WACVn0B,KAAKwvB,GAAG,OACJ2E,QACP1yB,KAAM,MACNF,MAAO4yB,GAAO,CAAC3hB,KAAM,IACrBzL,cAAQowB,UACTxvB,IAEPuvB,iBAAQvvB,OACEysB,EAAMp0B,KAAKmC,QAAQiyB,KAAO,UACzBp0B,KAAKwvB,GAAG,CACX/tB,KAAM,MACNF,MAAO6yB,QACAA,QACPrtB,cAAQ/G,KAAK+G,YACdY,IAEPsvB,2BACQ3W,EAAK,MACJ4V,QAAQl2B,KAAKmC,QAAQoP,UAAUwkB,OAChCzV,EAAGjf,KAAKrB,KAAK23B,iBAEZzB,QAAQl2B,KAAKmC,QAAQqP,SAASukB,OAC/BzV,EAAGjf,KAAKrB,KAAK43B,gBAEZtX,EAAG5gB,YAGF0Q,EAAOpQ,KAAKwvB,GAAG,CACjB/tB,KAAM,WACNsF,cAAQ/G,KAAK+G,WACduZ,UAE+B,IAA3BtgB,KAAKsL,KAAK/J,MAAMi0B,OACjBplB,EACApQ,KAAKwvB,GAAG,CACN/tB,KAAM,MACNF,MAAO,CAACiR,KAAM,IACdzL,cAAQ/G,KAAK+G,WACd,CAACqJ,MAEZwnB,mCACUpmB,EAAWxR,KAAKmC,QAAQqP,qBACzBqlB,QAAQrlB,GACNxR,KAAKwvB,GAAG,CACX/tB,KAAM,SACNF,MAAOiQ,EACP3N,MAAO,CAACkB,MAAOyM,EAASzM,MAAO8yB,WAAY,QAC3CxrB,GAAI,CACA2pB,MAAO,eACG8B,EAAO1vB,EAAKmM,QAAQrL,IAC1BsI,EAASwkB,MACHxkB,EAASwkB,MAAM8B,GACfA,EAAKja,gBAGnB9W,cAAQ/G,KAAK+G,WACd,CAACyK,EAASskB,aAEjB6B,oCACUpmB,EAAYvR,KAAKmC,QAAQoP,sBAC1BslB,QAAQtlB,GACNvR,KAAKwvB,GAAG,CACX/tB,KAAM,SACNF,MAAOgQ,EACP1N,MAAO,CAACkB,MAAOwM,EAAUxM,OACzBsH,GAAI,CACA2pB,MAAO,eACG8B,EAAOxvB,EAAKiM,QAAQrL,IAC1BqI,EAAUykB,MACJzkB,EAAUykB,MAAM8B,GAChBA,EAAKhB,WAGnB/vB,cAAQ/G,KAAK+G,WACd,CAACwK,EAAUukB,cC3PhBxc,MAAQ,GAERye,MAAQ,CAAC,SAAU,SAAU,OAAQ,WAAY,eAAgB,WAAY,cAAe,QAAS,cAAe,QAAS,OAAQ,aAAc,SAEzJ,SAASC,SAAS1e,GACdye,MAAMvsB,QAAQ,SAAApK,GACVkY,EAAMlY,GAAQgY,eAAehY,KAEjCkY,EAAM2e,KAAO3e,EAAMwb,aACnBxb,EAAM4e,OAAS5e,EAAMsb,YACrBtb,EAAM6e,MAAQ7e,EAAMob,YAIxB,SAAS0D,UAAU9e,OAGT+e,EAAQ,CACVC,MAAO,CAAC,QAAS,GACjB/rB,KAAM,CAAC,OAAQ,GACfgsB,cAAe,CAAC,OAAQ,GACxBC,eAAgB,CAAC,QAAS,IAG9Bp5B,OAAO8B,KAAKm3B,GAAOh4B,OAAO,SAACiZ,EAAOvS,UAC9BuS,EAAMvS,GAAOqS,eAVJ,SAUyB,SAAAqf,UAAKA,EAAEl3B,MAAM,CAACsL,WAAYwrB,EAAMtxB,GAAK,GAAI7B,UAAWmzB,EAAMtxB,GAAK,OAC1FuS,GACRA,GAEHA,EAAMof,YAAcpf,EAAMgf,MAC1Bhf,EAAMqf,WAAarf,EAAM/M,KAG7B,SAASqsB,QAAQtf,OAGP+e,EAAQ,cAAiB,uBAA2B,WAE1Dj5B,OAAO8B,KAAKm3B,GAAOh4B,OAAO,SAACiZ,EAAOvS,UAC9BuS,EAAMvS,GAAOqS,eALJ,OAKyB,CAAC3X,KAAK42B,EAAMtxB,KACvCuS,GACRA,GAGP,SAASuf,cAAcvf,GAGnBA,EAAMoa,KAAOta,eAFA,aAEqB,CAAC3X,KAAK,SACxC6X,EAAMwf,UAAY1f,eAHL,aAG0B,CAAC3X,KAAK,cAIjD,SAASs3B,UAAUzf,GAGfA,EAAM0f,eAAiB5f,eAFV,SAE+B,CAACga,UAAS,IACtD9Z,EAAM2f,UAAY7f,eAHL,SAG0B,CAACga,UAAS,IAIrD,SAAS8F,SAAS5f,OAGR+e,EAAQ,CACVc,YAAa,CAAC,QAAS,GACvBC,WAAY,CAAC,OAAQ,GACrBC,YAAa,CAAC,QAAS,GACvBC,cAAe,CAAC,QAAS,GACzBC,aAAc,CAAC,OAAQ,GACvBC,cAAe,CAAC,QAAS,IAG7Bp6B,OAAO8B,KAAKm3B,GAAOh4B,OAAO,SAACiZ,EAAOvS,UAC9BuS,EAAMvS,GAAOqS,eAZJ,QAYyB,SAAAqf,UAAKA,EAAEl3B,MAAM,CAACE,KAAM42B,EAAMtxB,GAAK,GAAI7B,UAAWmzB,EAAMtxB,GAAK,OACpFuS,GACRA,GAGHA,EAAMmgB,WAAangB,EAAM6f,YACzB7f,EAAMogB,UAAYpgB,EAAM8f,WACxB9f,EAAMqgB,WAAargB,EAAM+f,YAG7BrB,SAAS1e,OACT8e,UAAU9e,OACVsf,QAAQtf,OACRyf,UAAUzf,OACV4f,SAAS5f,OACTuf,cAAcvf,2LCrFd,SAASsgB,YAAYC,EAAK7gB,UAClBtO,GAAGhG,QAAQm1B,GACXA,EAAM,CAAC9D,KAAM8D,GACPnvB,GAAGE,MAAMivB,IAASnvB,GAAGtL,OAAOy6B,KAAMA,EAAM,CAAC9D,KAAM/c,IAClD6gB,EAGI,SAAS3M,UAAUhkB,EAAKtI,UACnCwO,OAAOlG,EAAK,CACRyK,kBAASsP,UACE,IAAImT,QAAQ,SAACC,EAASC,OACnBwD,EAAQ5wB,EAAIvB,SACZuU,EAAM,CAACtb,EAAEic,SAASlJ,YACxBmmB,EAAMtuB,QAAQ,SAAA5I,GACVsZ,EAAI7a,KAAKuB,EAAE+Q,cAEfyiB,QAAQla,IAAIA,GAAKqa,KAAK,WAClBF,GAAQ,GACRpT,GAAYA,GAAS,WAChB,SAACziB,GACN81B,EAAO91B,GACPyiB,GAAYA,EAASziB,GACrBI,EAAEgN,GAAGpL,MAAM,gBAAiBhC,EAAG,CAAC0I,IAAAA,SAI5CstB,cAAe,SAAChyB,EAAOye,UACZ,IAAImT,QAAQ,SAACC,EAASC,OACnB3qB,EAAM/K,EAAE+Z,YAAYnW,MACrBmH,OACCmJ,EAAMlU,EAAEmS,QAAQpH,EAAIQ,IACpB+P,EAAM,CAACtb,EAAEic,SAAS2Z,cAAc7qB,EAAIQ,KAC1C9I,QAAQyR,GAAKtJ,QAAQ,SAAA5I,GACjBsZ,EAAI7a,KAAKuB,EAAE+Q,iBAAiB,kBACjByiB,QAAQE,OAAO,iBAG9BF,QAAQla,IAAIA,GAAKqa,KAAK,WAClBF,EAAQ,MACRpT,GAAYA,EAAS,cAChB,SAACziB,GACN81B,EAAO91B,GACPyiB,GAAYA,EAASziB,GACrBI,EAAEgN,GAAGpL,MAAM,sBAAuBhC,EAAG,CAACgE,MAAAA,EAAO0E,IAAAA,UAIzDwgB,4BAAmBrP,cAAQ0f,6DACvB7wB,EAAIzE,OAAO2V,WAAWC,GAAQ7O,QAAQ,SAAAhH,GAC9Bu1B,GAAUzyB,EAAK0yB,sBAAsBx1B,GACzC5D,EAAE0Z,QAAQ9V,GAAOgH,QAAQ,SAAAG,GACrB/K,EAAEic,SAAS6M,mBAAmB/d,QAI1CquB,+BAAsB3f,GAClBnR,EAAIzE,OAAO2V,WAAWC,GAAQ7O,QAAQ,SAAAhH,GAClC5D,EAAE0Z,QAAQ9V,GAAOgH,QAAQ,SAAAG,OACfoH,EAAUnS,EAAEmS,QAAQpH,EAAIQ,IACzB4G,IACDxS,MAAM8B,QAAQ0Q,GACdA,EAAQvH,QAAQ,SAAA2F,GACZA,EAAKuY,uBAEF3W,GACPA,EAAQ2W,2BAKxBmQ,IAAK,CACDhV,QAAS,eAACA,6DACN3b,EAAI+wB,eAAe,CAACpV,UAAWA,KAEnClgB,SAAU,eAACA,6DACPuE,EAAI+wB,eAAe,CAACt1B,WAAYA,KAEpCoxB,KAAM,eAAChoB,6DACH7E,EAAI+wB,eAAe,CAAClE,OAAQhoB,MAGpCyD,SAAU,CACNqT,QAAS,eAACA,6DACN3b,EAAIgxB,cAAc,CAACrV,UAAWA,KAElClgB,SAAU,eAACA,6DACPuE,EAAIgxB,cAAc,CAACv1B,WAAYA,KAEnCoxB,KAAM,eAAChoB,6DACH7E,EAAIgxB,cAAc,CAACnE,OAAQhoB,MAGnCksB,eAAgB,eAAC14B,yDAAQ,GACjBs4B,EAAMD,YAAYh5B,EAAEuB,QAAQoP,WAAW,GAC3CnC,OAAOyqB,EAAKt4B,GACZX,EAAEuB,QAAQoP,UAAYsoB,EACtB3wB,EAAI0T,kBAERsd,cAAe,eAAC34B,yDAAQ,GAChBs4B,EAAMD,YAAYh5B,EAAEuB,QAAQqP,UAAU,GAC1CpC,OAAOyqB,EAAKt4B,GACZX,EAAEuB,QAAQqP,SAAWqoB,EACrB3wB,EAAI0T,kBAERka,gBAAOqD,EAAWC,0BACdlxB,EAAIyK,SAAS,SAAC7L,MACNA,EAAO,KACHwI,EAAWpH,EAAIoH,WACf5F,GAAGhF,SAASy0B,GACZphB,OAAO,kBAAMohB,EAAU7pB,EAAUlI,MAEjCsC,GAAGhF,SAAS9E,EAAEuB,QAAQqa,WAAazD,OAAO,kBAAMnY,EAAEuB,QAAQqa,SAASlM,EAAUlI,KAC7ExH,EAAEgN,GAAGpL,MAAM,SAAU8N,EAAUlI,SAGnCsC,GAAGhF,SAAS00B,IAAWrhB,OAAO,kBAAMqhB,gBAAOhyB,6BAAS3I,YAM7DyJ,ECrHX,SAAS8oB,QAAQ5e,GACbA,EAAWwe,eAAenO,OAE1BuJ,WAAWxhB,QAAQ,SAAA2Q,GACf/I,EAAW+I,UAAUA,EAAU/a,KAAM+a,KAGzCoP,QAAQ/f,QAAQ,SAAC0U,GACb9M,EAAW8M,OAAOA,KAGtB9gB,OAAO8B,KAAKm5B,OAAQ7uB,QAAQ,SAAApK,GACxBgS,EAAWkG,MAAMlY,GAAQi5B,MAAOj5B,KAIzB,SAASk5B,uBACblJ,kBAAkB,CACrBkB,aAAOiI,SACPlI,kBAAYkI,UACZtN,QAAAA,QACA+E,QAAAA,QACA9E,UAAAA,UACAhX,MAAO,CACHmC,OAAQ,CAAC,MAAO,QAChBD,MAAO,CAAC,aACRrR,IAAK,CAAC,QAAS,mCCjC3B,IAAMqM,WAAaknB,gBAEG,oBAAX7J,SACPA,OAAOzc,WAAaZ,WAChBqd,OAAOniB,KACP8E,WAAW4e,QAAQvB,OAAOniB,UAI5BgL,QAAQlG,WAAWkG"}
1
+ {"version":3,"file":"form-create.min.js","sources":["../../../node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","../../utils/lib/slot.js","../../../components/iview/checkbox/src/component.jsx","../../utils/lib/toarray.js","../../../node_modules/style-inject/dist/style-inject.es.js","../../../components/iview/frame/src/component.jsx","../../../components/iview/frame/src/index.js","../../../components/iview/radio/src/component.jsx","../../utils/lib/type.js","../../../components/iview/select/src/component.jsx","../../../components/iview/tree/src/component.jsx","../../../components/iview/upload/src/component.jsx","../../../components/iview/upload/src/index.js","../../utils/lib/modify.js","../../utils/lib/deepextend.js","../../utils/lib/extend.js","../../../components/iview/group/src/component.jsx","../src/components/index.js","../../../components/common/subform/src/component.jsx","../../core/src/components/formCreate.js","../../utils/lib/mergeprops.js","../../core/src/frame/attrs.js","../../utils/lib/console.js","../../utils/lib/json.js","../../core/src/frame/util.js","../../core/src/factory/creator.js","../../core/src/factory/maker.js","../../core/src/frame/api.js","../../utils/lib/tocase.js","../../utils/lib/toline.js","../../utils/lib/unique.js","../../utils/lib/deepset.js","../../core/src/render/index.js","../../core/src/render/cache.js","../../core/src/render/render.js","../../core/src/handler/page.js","../../core/src/factory/context.js","../../core/src/handler/loader.js","../../core/src/handler/input.js","../../core/src/factory/parser.js","../../core/src/handler/context.js","../../core/src/handler/index.js","../../core/src/frame/fetch.js","../../core/src/handler/inject.js","../../core/src/handler/render.js","../../core/src/handler/lifecycle.js","../../core/src/handler/effect.js","../../core/src/components/fragment.js","../../core/src/factory/node.js","../../utils/lib/tostring.js","../../core/src/factory/manager.js","../../core/src/frame/provider.js","../../core/src/parser/html.js","../../core/src/frame/index.js","../src/parsers/datePicker.js","../src/parsers/hidden.js","../src/parsers/index.js","../src/parsers/input.js","../src/parsers/slider.js","../src/parsers/switch.js","../src/parsers/row.js","../src/core/alias.js","../src/core/config.js","../src/core/manager.js","../src/core/maker.js","../src/core/api.js","../src/core/index.js","../src/index.js"],"sourcesContent":["\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","export default function getSlot(slots, exclude) {\n return Object.keys(slots).reduce((lst, name) => {\n if (!exclude || exclude.indexOf(name) === -1) {\n lst.push(slots[name])\n }\n return lst;\n }, [])\n}","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcCheckbox';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Array,\n default: () => []\n },\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => n.indexOf(opt.label) !== -1).map((opt) => opt.value).filter(v => v !== undefined));\n },\n update() {\n const checked = Array.isArray(this.value) ? this.value : [this.value];\n this.trueValue = this.options().filter((opt) => checked.indexOf(opt.value) !== -1)\n .map((option) => option.label);\n }\n },\n created() {\n this.update();\n },\n render() {\n return <CheckboxGroup {...this.formCreateInject.prop} ref=\"el\"\n props={{value: this.trueValue}}\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n delete props.value;\n return <Checkbox props={props} key={'' + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</CheckboxGroup>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n}\n","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import toArray from '@form-create/utils/lib/toarray';\nimport './style.css'\n\nconst NAME = 'fcFrame';\n\nexport default function createFrame(config) {\n return {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n type: {\n type: String,\n default: 'input'\n },\n field: String,\n helper: {\n type: Boolean,\n default: true\n },\n disabled: {\n type: Boolean,\n default: false\n },\n src: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n default: config.fileUpIcon\n },\n width: {\n type: [Number, String],\n default: 500\n },\n height: {\n type: String,\n default: '370px'\n },\n maxLength: {\n type: Number,\n default: 0\n },\n okBtnText: {\n type: String,\n default: '确定'\n },\n closeBtnText: {\n type: String,\n default: '关闭'\n },\n modalTitle: String,\n handleIcon: {\n type: [String, Boolean],\n default: undefined\n },\n title: String,\n allowRemove: {\n type: Boolean,\n default: true\n },\n onOpen: {\n type: Function,\n default: () => {\n }\n },\n onOk: {\n type: Function,\n default: () => {\n }\n },\n onCancel: {\n type: Function,\n default: () => {\n }\n },\n onLoad: {\n type: Function,\n default: () => {\n }\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onRemove: {\n type: Function,\n default: () => {\n }\n },\n onHandle: {\n type: Function,\n default(src) {\n this.previewImage = this.getSrc(src);\n this.previewVisible = true;\n }\n },\n modal: {\n type: Object,\n default: () => ({})\n },\n srcKey: {\n type: [String, Number]\n },\n value: [Array, String, Number, Object],\n previewMask: undefined,\n footer: {\n type: Boolean,\n default: true\n },\n reload: {\n type: Boolean,\n default: true\n },\n closeBtn: {\n type: Boolean,\n default: true\n },\n okBtn: {\n type: Boolean,\n default: true\n },\n\n },\n data() {\n return {\n fileList: toArray(this.value),\n previewVisible: false,\n frameVisible: false,\n previewImage: ''\n }\n },\n watch: {\n value(n) {\n this.fileList = toArray(n);\n },\n fileList(n) {\n const val = this.maxLength === 1 ? (n[0] || '') : n;\n this.$emit('input', val);\n this.$emit('change', val);\n },\n src(n) {\n this.modalVm && (this.modalVm.src = n);\n }\n },\n methods: {\n key(unique) {\n return unique;\n },\n closeModel(close) {\n this.$emit(close ? '$close' : '$ok');\n if (this.reload) {\n this.$off('$ok');\n this.$off('$close');\n }\n this.frameVisible = false;\n },\n showModel() {\n if (this.disabled || false === this.onOpen()) return;\n this.frameVisible = true;\n },\n\n makeInput() {\n const props = {\n type: 'text',\n value: (this.fileList.map(v => this.getSrc(v))).toString(),\n icon: this.icon,\n readonly: true,\n clearable: false\n };\n\n return <Input props={props} on={{'on-click': () => this.showModel()}} key={this.key('input')}/>\n },\n\n makeGroup(children) {\n if (!this.maxLength || this.fileList.length < this.maxLength)\n children.push(this.makeBtn());\n return <div key={this.key('group')}>{...children}</div>\n },\n\n makeItem(index, children) {\n return <div class='fc-files' key={this.key('file' + index)}>{...children}</div>;\n },\n valid(f) {\n const field = this.formCreateInject.field || this.field;\n if (field && f !== field)\n throw new Error('[frame]无效的字段值');\n },\n\n makeIcons(val, index) {\n if (this.handleIcon !== false || this.allowRemove === true) {\n const icons = [];\n if ((this.type !== 'file' && this.handleIcon !== false) || (this.type === 'file' && this.handleIcon))\n icons.push(this.makeHandleIcon(val, index));\n if (this.allowRemove)\n icons.push(this.makeRemoveIcon(val, index));\n\n return <div class='fc-upload-cover' key={this.key('uc')}>{icons}</div>\n }\n },\n makeHandleIcon(val, index) {\n return <icon\n props={{type: (this.handleIcon === true || this.handleIcon === undefined) ? 'ios-eye-outline' : this.handleIcon}}\n on-click={() => this.handleClick(val)} key={this.key('hi' + index)}/>\n },\n\n makeRemoveIcon(val, index) {\n return <icon props={{type: 'ios-trash-outline'}} on-click={() => this.handleRemove(val)}\n key={this.key('ri' + index)}/>\n },\n\n makeFiles() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<icon props={{type: config.fileIcon, size: 40}}\n on-click={() => this.handleClick(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeImages() {\n return this.makeGroup(this.fileList.map((src, index) => {\n return this.makeItem(index, [<img src={this.getSrc(src)}/>, this.makeIcons(src, index)])\n }))\n },\n makeBtn() {\n return <div class='fc-upload-btn' on-click={() => this.showModel()}\n key={this.key('btn')}>\n <icon props={{type: this.icon, size: 20}}/>\n </div>\n },\n handleClick(src) {\n return this.onHandle(src);\n },\n handleRemove(src) {\n if (this.disabled) return;\n if (false !== this.onBeforeRemove(src)) {\n this.fileList.splice(this.fileList.indexOf(src), 1);\n this.onRemove(src);\n }\n },\n getSrc(src) {\n return !(this.srcKey) ? src : src[this.srcKey];\n },\n frameLoad(iframe) {\n this.onLoad(iframe);\n try {\n if (this.helper === true) {\n iframe['form_create_helper'] = {\n api: this.formCreateInject.api,\n close: (field) => {\n this.valid(field);\n this.closeModel();\n },\n set: (field, value) => {\n this.valid(field);\n if (!this.disabled)\n this.$emit('input', value);\n\n },\n get: (field) => {\n this.valid(field);\n return this.value;\n },\n onOk: fn => this.$on('$ok', fn),\n onClose: fn => this.$on('$close', fn)\n };\n\n }\n } catch (e) {\n console.log(e);\n }\n },\n makeFooter() {\n const {okBtnText, closeBtnText, closeBtn, okBtn, footer} = this.$props;\n const node = [];\n\n if (!footer) return node;\n if (closeBtn)\n node.push(<Button\n on-click={() => (this.onCancel() !== false && this.closeModel(true))}>{closeBtnText}</Button>);\n if (okBtn)\n node.push(<Button type=\"primary\"\n on-click={() => (this.onOk() !== false && this.closeModel())}>{okBtnText}</Button>);\n return node;\n }\n },\n render() {\n const type = this.type;\n\n let node;\n if (type === 'input')\n node = this.makeInput();\n else if (type === 'image')\n node = this.makeImages();\n else\n node = this.makeFiles();\n const {width, height, src, title, modalTitle} = this.$props;\n this.$nextTick(() => {\n if (this.$refs.frame) {\n this.frameLoad(this.$refs.frame.contentWindow || {});\n }\n });\n return <div class=\"_fc-frame\">{node}\n <Modal v-model={this.previewVisible}\n props={{mask: this.previewMask, title: modalTitle, footerHide: true}}>\n <img style=\"width: 100%\" src={this.previewImage}/>\n </Modal>\n <Modal props={{width, title, ...this.modal}} v-model={this.frameVisible}\n on-on-cancel={() => (this.closeModel(true))}>\n {(this.frameVisible || !this.reload) ? <iframe ref=\"frame\" src={src} frameBorder=\"0\" style={{\n 'height': height,\n 'border': '0 none',\n 'width': '100%'\n }}/> : null}\n <div slot=\"footer\">\n {this.makeFooter()}\n </div>\n </Modal>\n </div>\n },\n mounted() {\n this.$on('fc.closeModal', this.closeModal);\n }\n };\n}\n","import createFrame from './component';\n\nconst frame = createFrame({\n fileIcon: 'md-document',\n fileUpIcon: 'ios-folder-open',\n});\n\n\nframe.v2 = createFrame({\n fileIcon: 'document-text',\n fileUpIcon: 'folder',\n});\n\nexport default frame;\n","import getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcRadio';\n\nexport default {\n name: NAME,\n props: {\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {}\n },\n watch: {\n 'formCreateInject.options': {\n handler() {\n this.update();\n },\n deep: true,\n },\n value() {\n this.update();\n }\n },\n data() {\n return {\n trueValue: []\n }\n },\n methods: {\n options() {\n const opt = this.formCreateInject.options;\n return Array.isArray(opt) ? opt : [];\n },\n onInput(n) {\n this.$emit('input', this.options().filter((opt) => opt.label === n).reduce((initial, opt) => opt.value, ''));\n },\n update() {\n this.trueValue = this.options().filter((opt) => opt.value === this.value).reduce((initial, opt) => opt.label, '');\n }\n },\n created() {\n this.update();\n },\n render() {\n return <RadioGroup {...this.formCreateInject.prop} props={{value: this.trueValue}} ref=\"el\"\n on-input={this.onInput}>{this.options().map((opt, index) => {\n const props = {...opt};\n delete props.value;\n return <Radio props={props} key={'' + index + '-' + opt.value}/>\n })}{getSlot(this.$slots)}</RadioGroup>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n}\n","const is = {\n type(arg, type) {\n return Object.prototype.toString.call(arg) === '[object ' + type + ']'\n },\n Undef(v) {\n return v === undefined || v === null\n },\n Element(arg) {\n return typeof arg === 'object' && arg !== null && arg.nodeType === 1 && !is.Object(arg)\n },\n trueArray(data) {\n return Array.isArray(data) && data.length > 0;\n },\n Function(v) {\n const type = this.getType(v);\n return type === 'Function' || type === 'AsyncFunction';\n },\n getType(v) {\n const str = Object.prototype.toString.call(v)\n return /^\\[object (.*)\\]$/.exec(str)[1]\n },\n empty(value) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (Array.isArray(value) && Array.isArray(value) && !value.length) {\n return true;\n }\n\n return typeof value === 'string' && !value;\n }\n};\n\n['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(t => {\n is[t] = function (arg) {\n return is.type(arg, t);\n }\n})\n\nexport function hasProperty(rule, k) {\n return ({}).hasOwnProperty.call(rule, k)\n}\n\nexport default is;\n","import is 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} ref=\"el\">{(Array.isArray(options) ? options : []).map((props, index) => {\n const slot = props.slot;\n return <Option props={props}\n key={'' + index + '-' + props.value}>\n {slot ? <template\n slot={props.slotName || 'default'}>{is.Function(slot) ? props.slot(h) : slot}</template> : null}\n </Option>\n })}{ctx.children}</Select>;\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n}\n","import toArray from '@form-create/utils/lib/toarray';\nimport getSlot from '@form-create/utils/lib/slot';\n\nconst NAME = 'fcTree';\n\nexport default {\n name: NAME,\n 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 mounted() {\n this.$emit('fc.el', this.$refs.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} {...{\n style: {display: 'inline-block'},\n key: this.key('upload'),\n ref: 'upload'\n }}>\n {isShow ? <template slot=\"default\">\n {this.$slots.default || <div class=\"fc-upload-btn\">\n <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 || !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 v-model={this.previewVisible}\n props={{title: this.modalTitle, 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 this.$emit('fc.el', this.$refs.upload);\n }\n };\n}\n","import createUpload from './component';\n\nconst upload = createUpload({\n\n fileIcon: 'md-document',\n imgUpIcon: 'md-images',\n});\n\nupload.v2 = createUpload({\n\n fileIcon: 'document-text',\n imgUpIcon: 'image',\n});\n\nexport default upload;\n","import Vue from 'vue';\n\nexport function $set(target, field, value) {\n Vue.set(target, field, value);\n}\n\nexport function $del(target, field) {\n Vue.delete(target, field);\n}\n","import {$set} from './modify';\nimport is from './type';\n\nexport default function deepExtend(origin, target = {}, mode) {\n let isArr = false;\n for (let key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n let clone = target[key];\n if ((isArr = Array.isArray(clone)) || is.Object(clone)) {\n let nst = origin[key] === undefined;\n if (isArr) {\n isArr = false;\n nst && $set(origin, key, []);\n } else if (clone._clone && mode !== undefined) {\n if (mode) {\n clone = clone.getRule();\n nst && $set(origin, key, {});\n } else {\n $set(origin, key, clone._clone());\n continue;\n }\n } else {\n nst && $set(origin, key, {});\n }\n origin[key] = deepExtend(origin[key], clone, mode);\n } else {\n $set(origin, key, clone);\n if (!is.Undef(clone)) {\n if (!is.Undef(clone.__json)) {\n origin[key].__json = clone.__json;\n }\n if (!is.Undef(clone.__origin)) {\n origin[key].__origin = clone.__origin;\n }\n }\n }\n }\n }\n return (mode !== undefined && Array.isArray(origin)) ? origin.filter(v => !v || !v.__ctrl) : origin\n}\n\nexport function deepCopy(value) {\n return deepExtend({}, {value}).value;\n}\n\nexport function deepExtendArgs(origin, ...lst) {\n lst.forEach(target => {\n origin = deepExtend(origin, target);\n });\n return origin;\n}\n","import {$set} from './modify';\n\nconst _extends = Object.assign || function (a) {\n for (let b, c = 1; c < arguments.length; c++) {\n for (let d in b = arguments[c], b) {\n Object.prototype.hasOwnProperty.call(b, d) && ($set(a, d, b[d]));\n }\n }\n\n return a;\n}\n\nexport default function extend() {\n return _extends.apply(this, arguments);\n}\n\nexport function copy(obj) {\n if (typeof obj !== 'object' || obj === null) return obj;\n return obj instanceof Array ? [...obj] : {...obj};\n}\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\nimport './style.css';\n\nconst NAME = 'fcGroup';\n\nexport default {\n name: NAME,\n props: {\n field: String,\n rule: [Array, Object],\n rules: Array,\n expand: Number,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n button: {\n type: Boolean,\n default: true\n },\n max: {\n type: Number,\n default: 0\n },\n min: {\n type: Number,\n default: 0\n },\n value: {\n type: Array,\n default: () => []\n },\n sortBtn: {\n type: Boolean,\n default: true\n },\n defaultValue: Object,\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n parse: Function,\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n sort: [],\n type: undefined\n }\n },\n computed: {\n formRule() {\n if (this.rules) {\n return this.rules;\n }\n if (this.rule) {\n return Array.isArray(this.rule) ? this.rule : [this.rule];\n }\n return [];\n }\n },\n watch: {\n cacheRule: {\n handler(n) {\n this.sort = Object.keys(n);\n },\n immediate: true\n },\n formRule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n disabled(n) {\n if (this.syncDisabled) {\n const lst = this.cacheRule;\n Object.keys(lst).forEach(k => {\n lst[k].$f.disabled(n);\n })\n }\n },\n expand(n) {\n let d = n - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n value(n, o) {\n n = n || [];\n let keys = this.sort, total = keys.length, len = total - n.length;\n if (len < 0) {\n for (let i = len; i < 0; i++) {\n this.addRule(n.length + i);\n }\n for (let i = 0; i < total; i++) {\n this.setValue(keys[i], n[i]);\n }\n } else {\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n this.removeRule(keys[total - i - 1]);\n }\n }\n n.forEach((val, i) => {\n this.setValue(keys[i], n[i]);\n });\n if (o.length && !n.length) {\n this.input([]);\n }\n }\n }\n },\n methods: {\n _value(v) {\n return (v && hasProperty(v, this.field)) ? v[this.field] : v;\n },\n cache(k, val) {\n this.cacheValue[k] = JSON.stringify(val);\n },\n input(value) {\n this.$emit('input', value);\n this.$emit('change', value);\n },\n formData(key, formData) {\n const cacheRule = this.cacheRule;\n const keys = this.sort;\n if (keys.filter(k => cacheRule[k].$f).length !== keys.length) {\n return;\n }\n const value = keys.map(k => {\n const data = key === k ? formData : {...this.cacheRule[k].$f.form};\n const value = this.field ? data[this.field] || null : data;\n this.cache(k, value);\n return value;\n });\n this.input(value);\n },\n setValue(key, value) {\n const field = this.field, $f = this.cacheRule[key].$f;\n if (field) {\n value = {[field]: this._value(value)};\n }\n if (this.cacheValue[key] === JSON.stringify(field ? value[field] : value)) {\n return;\n }\n this.cache(key, value);\n $f.coverValue(value || {});\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.formRule);\n const options = this.options ? {...this.options} : {\n submitBtn: false,\n resetBtn: false,\n };\n if (this.defaultValue) {\n if (!options.formData) options.formData = {};\n const defVal = deepCopy(this.defaultValue);\n extend(options.formData, this.field ? {[this.field]: defVal} : defVal);\n }\n this.parse && this.parse({rule, options, index: this.sort.length});\n this.$set(this.cacheRule, ++this.len, {rule, options});\n if (emit) {\n this.$nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));\n }\n },\n add$f(i, key, $f) {\n this.cacheRule[key].$f = $f;\n this.$nextTick(() => {\n if (this.syncDisabled) {\n $f.disabled(this.disabled);\n }\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n this.$delete(this.cacheRule, key);\n this.$delete(this.cacheValue, key);\n if (emit) {\n this.$nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.value)) {\n return;\n }\n this.addRule(i, true);\n },\n del(index, key) {\n if (this.disabled || false === this.onBeforeRemove(this.value, index)) {\n return;\n }\n this.removeRule(key, true);\n const value = [...this.value];\n value.splice(index, 1);\n this.input(value);\n },\n addIcon(key) {\n return <div class=\"_fc-group-btn _fc-group-plus-minus\" on-click={this.add}></div>;\n },\n delIcon(index, key) {\n return <div class=\"_fc-group-btn _fc-group-plus-minus _fc-group-minus\"\n onClick={() => this.del(index, key)}></div>\n },\n sortUpIcon(index) {\n return <div class=\"_fc-group-btn _fc-group-arrow _fc-group-up\"\n onClick={() => this.changeSort(index, -1)}></div>\n },\n sortDownIcon(index) {\n return <div class=\"_fc-group-btn _fc-group-arrow _fc-group-down\"\n onClick={() => this.changeSort(index, 1)}></div>\n },\n changeSort(index, sort) {\n const a = this.sort[index];\n this.$set(this.sort, index, this.sort[index + sort]);\n this.sort[index + sort] = a;\n this.formData(0);\n },\n makeIcon(total, index, key) {\n if (this.$scopedSlots.button) {\n return this.$scopedSlots.button({\n total,\n index,\n vm: this,\n key,\n del: () => this.del(index, key),\n add: this.add\n });\n }\n const btn = [];\n if ((!this.max || total < this.max) && total === index + 1) {\n btn.push(this.addIcon(key));\n }\n if (total > this.min) {\n btn.push(this.delIcon(index, key));\n }\n if (this.sortBtn && index) {\n btn.push(this.sortUpIcon(index));\n }\n if (this.sortBtn && index !== total - 1) {\n btn.push(this.sortDownIcon(index));\n }\n return btn;\n },\n emitEvent(name, args, index, key) {\n this.$emit(name, ...args, this.cacheRule[key].$f, index);\n },\n expandRule(n) {\n for (let i = 0; i < n; i++) {\n this.value.push(this.field ? null : {});\n }\n }\n },\n created() {\n this.type = this.formCreateInject.form.$form();\n const d = (this.expand || 0) - this.value.length;\n if (d > 0) {\n this.expandRule(d);\n }\n for (let i = 0; i < this.value.length; i++) {\n this.addRule(i);\n }\n },\n render() {\n const keys = this.sort;\n const button = this.button;\n const Type = this.type;\n const disabled = this.disabled;\n\n const children = keys.length === 0 ?\n (this.$scopedSlots.default ? (this.$scopedSlots.default({\n vm: this,\n add: this.add\n })) : <div key={'a_def'} class=\"_fc-group-plus-minus _fc-group-add\"\n on-click={this.add}/>) : keys.map((key, index) => {\n const {rule, options} = this.cacheRule[key];\n const btn = button && !disabled ? this.makeIcon(keys.length, index, key) : [];\n return <div class=\"_fc-group-container\" key={key}>\n <Type\n key={key}\n on={{\n 'update:value': (formData) => this.formData(key, formData),\n 'emit-event': (name, ...args) => this.emitEvent(name, args, index, key),\n input: ($f) => this.add$f(index, key, $f)\n }}\n props={{\n inFor: true,\n value: this.field ? {[this.field]: this._value(this.value[index])} : this.value[index],\n rule,\n option: options,\n extendOption: true\n }}\n />\n <div class=\"_fc-group-idx\">{index + 1}</div>\n {(btn.length) ? <div class=\"_fc-group-handle\">{btn}</div> : null}\n </div>\n });\n return <div key={'con'} class={'_fc-group ' + (disabled ? '_fc-group-disabled' : '')}>{children}</div>\n },\n}\n","import checkbox from '@form-create/component-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","const NAME = 'fcSubForm';\n\nexport default {\n name: NAME,\n props: {\n rule: Array,\n options: Object,\n formCreateInject: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n default: () => ({})\n },\n disabled: {\n type: Boolean,\n default: false\n },\n syncDisabled: {\n type: Boolean,\n default: true\n },\n },\n data() {\n return {\n cacheRule: {},\n cacheValue: {},\n type: undefined\n }\n },\n watch: {\n disabled(n) {\n this.syncDisabled && this.cacheRule.$f.disabled(n);\n },\n value(n) {\n this.setValue(n);\n }\n },\n methods: {\n formData(value) {\n this.cacheValue = JSON.stringify(value);\n this.$emit('input', value);\n this.$emit('change', value);\n },\n setValue(value) {\n const str = JSON.stringify(value);\n if (this.cacheValue === str) {\n return;\n }\n this.cacheValue = str;\n this.cacheRule.$f.coverValue(value || {});\n },\n addRule() {\n const options = this.options ? this.options : {\n submitBtn: false,\n resetBtn: false,\n };\n options.formData = {...(this.value || {})};\n this.cacheRule = {rule: this.rule, options};\n },\n add$f($f) {\n this.cacheRule.$f = $f;\n this.$nextTick(() => {\n this.syncDisabled && $f.disabled(this.disabled);\n this.$emit('itemMounted', $f);\n });\n },\n emitEvent(name, ...args) {\n this.$emit(name, ...args);\n }\n },\n created() {\n this.addRule();\n this.type = this.formCreateInject.form.$form();\n },\n render() {\n const {rule, options} = this.cacheRule;\n const Type = this.type;\n return <Type\n on={{\n 'update:value': this.formData,\n 'emit-event': this.emitEvent,\n input: this.add$f\n }}\n props={{rule, option: options, extendOption: true}}/>\n }\n}\n","import extend from '@form-create/utils/lib/extend';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'FormCreate';\n\nconst getRuleInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.formCreateInject) {\n return vm.formCreateInject\n }\n if (vm.$parent) {\n return getRuleInject(vm.$parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate) {\n return {\n name: NAME,\n componentName: NAME,\n model: {\n prop: 'api'\n },\n provide() {\n return {\n $pfc: this,\n }\n },\n inject: {$pfc: {default: null}},\n props: {\n rule: {\n type: Array,\n required: true\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n extendOption: Boolean,\n value: Object,\n api: Object,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n data() {\n return {\n formData: undefined,\n destroyed: false,\n validate: {},\n $f: undefined,\n isShow: true,\n unique: 1,\n renderRule: [...this.rule || []],\n ctxInject: {},\n updateValue: JSON.stringify(this.value || {}),\n isMore: !!this.inFor,\n };\n },\n render() {\n return this.formCreate.render();\n },\n methods: {\n _refresh() {\n ++this.unique;\n },\n _renderRule() {\n this.renderRule = [...this.rule || []];\n },\n _updateValue(value) {\n if (this.destroyed) return;\n this.updateValue = JSON.stringify(value);\n this.$emit('update:value', value);\n }\n },\n watch: {\n value: {\n handler(n) {\n if (JSON.stringify(n || {}) === this.updateValue) return;\n this.$f.config.forceCoverValue ? this.$f.coverValue(n || {}) : this.$f.setValue(n || {});\n },\n deep: true\n },\n option: {\n handler(n) {\n this.formCreate.initOptions(n);\n this.$f.refresh();\n },\n deep: true\n },\n rule(n) {\n if (n.length === this.renderRule.length && n.every(v => this.renderRule.indexOf(v) > -1)) return;\n this.formCreate.$handle.reloadRule(n);\n this._renderRule();\n }\n },\n beforeCreate() {\n const {rule, option} = this.$options.propsData;\n this.formCreate = new FormCreate(this, rule, option);\n Object.keys(this.formCreate.prop).forEach(k => {\n extend(this.$options[k], this.formCreate.prop[k]);\n })\n this.$emit('beforeCreate', this.formCreate.api());\n },\n created() {\n const vm = this, fapi = this.formCreate.api();\n const addSubForm = () => {\n if (vm.$pfc) {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n let sub;\n if (vm.isMore) {\n sub = toArray(inject.getSubForm());\n sub.push(fapi);\n\n } else {\n sub = fapi;\n }\n inject.subForm(sub);\n }\n }\n };\n\n const rmSubForm = () => {\n const inject = getRuleInject(vm, vm.$pfc);\n if (inject) {\n if (vm.isMore) {\n const sub = toArray(inject.getSubForm());\n const idx = sub.indexOf(fapi);\n if (idx > -1) {\n sub.splice(idx, 1);\n }\n } else {\n inject.subForm();\n }\n }\n };\n\n vm.$on('hook:beforeDestroy', () => {\n rmSubForm();\n });\n\n this.$watch(() => this.subForm, (n) => {\n n ? addSubForm() : rmSubForm();\n }, {immediate: true});\n }\n }\n}\n","export const normalMerge = ['attrs', 'props', 'domProps', 'scopedSlots'];\nexport const toArrayMerge = ['class', 'style', 'directives'];\nexport const functionalMerge = ['on', 'nativeOn'];\n\nconst mergeProps = (objects, initial = {}, opt = {}) => {\n const _normalMerge = [...normalMerge, ...opt['normal'] || []];\n const _toArrayMerge = [...toArrayMerge, ...opt['array'] || []];\n const _functionalMerge = [...functionalMerge, ...opt['functional'] || []];\n const propsMerge = opt['props'] || [];\n\n return objects.reduce((a, b) => {\n for (const key in b) {\n if (a[key]) {\n if (propsMerge.indexOf(key) > -1) {\n a[key] = mergeProps([b[key]], a[key]);\n } else if (_normalMerge.indexOf(key) > -1) {\n a[key] = {...a[key], ...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n const arrA = a[key] instanceof Array ? a[key] : [a[key]];\n const arrB = b[key] instanceof Array ? b[key] : [b[key]];\n a[key] = [...arrA, ...arrB]\n } else if (_functionalMerge.indexOf(key) > -1) {\n for (const event in b[key]) {\n if (a[key][event]) {\n const arrA = a[key][event] instanceof Array ? a[key][event] : [a[key][event]];\n const arrB = b[key][event] instanceof Array ? b[key][event] : [b[key][event]];\n a[key][event] = [...arrA, ...arrB]\n } else {\n a[key][event] = b[key][event]\n }\n }\n } else if (key === 'hook') {\n for (let hook in b[key]) {\n if (a[key][hook]) {\n a[key][hook] = mergeFn(a[key][hook], b[key][hook])\n } else {\n a[key][hook] = b[key][hook]\n }\n }\n } else {\n a[key] = b[key]\n }\n } else {\n if (_normalMerge.indexOf(key) > -1 || _functionalMerge.indexOf(key) > -1 || propsMerge.indexOf(key) > -1) {\n a[key] = {...b[key]}\n } else if (_toArrayMerge.indexOf(key) > -1) {\n a[key] = b[key] instanceof Array ? [...b[key]] : (typeof b[key] === 'object' ? {...b[key]} : b[key]);\n } else\n a[key] = b[key];\n }\n }\n return a\n }, initial);\n}\n\nconst mergeFn = (fn1, fn2) =>\n function () {\n fn1 && fn1.apply(this, arguments);\n fn2 && fn2.apply(this, arguments);\n };\n\nexport default mergeProps;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'nativeEmit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'preview', 'component', 'cache'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is, {hasProperty} from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nconst $T = '$FN:';\nconst $TX = '$FNX:';\nconst FUNCTION = 'function';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend([], obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== FUNCTION) {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return (new Function('return ' + fn))();\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf($T) === 0) {\n v = v.replace($T, '');\n flag = true;\n } else if (v.indexOf($TX) === 0) {\n v = makeFn('function($inject){' + v.replace($TX, '') + '}');\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (!mode && v.indexOf(FUNCTION) === 0 && v !== FUNCTION) {\n flag = true;\n }\n if (!flag) return fn;\n const val = makeFn((v.indexOf(FUNCTION) === -1 && v.indexOf('(') !== 0) ? (FUNCTION + ' ' + v) : v);\n val.__json = fn;\n return val;\n } catch (e) {\n err(`解析失败:${v}\\n\\nerr: ${e}`);\n return undefined;\n }\n }\n return fn;\n}\n\nexport function parseJson(json, mode) {\n return JSON.parse(json, function (k, v) {\n if (is.Undef(v) || !v.indexOf) return v;\n return parseFn(v, mode);\n });\n}\n","import is from '@form-create/utils/lib/type';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {arrayAttrs, normalAttrs} from './attrs';\nimport {logError} from '@form-create/utils/lib/console';\nimport {parseJson, toJson} from '@form-create/utils/lib/json';\nimport deepExtend from '@form-create/utils/lib/deepextend';\n\nexport {parseFn} from '@form-create/utils/lib/json';\nexport {parseJson, toJson}\n\nexport function enumerable(value, writable) {\n return {\n value,\n enumerable: false,\n configurable: false,\n writable: !!writable\n }\n}\n\n//todo 优化位置\nexport function copyRule(rule) {\n return copyRules([rule])[0];\n}\n\nexport function copyRules(rules, mode) {\n return deepExtend([], [...rules], mode || false);\n}\n\nexport function mergeRule(rule, merge) {\n mergeProps(Array.isArray(merge) ? merge : [merge], rule, {array: arrayAttrs, normal: normalAttrs});\n return rule;\n}\n\nexport function getRule(rule) {\n const r = is.Function(rule.getRule) ? rule.getRule() : rule;\n if (!r.type) {\n r.type = 'input';\n }\n return r;\n}\n\nexport function mergeGlobal(target, merge) {\n if (!target) return merge;\n Object.keys(merge || {}).forEach((k) => {\n if (merge[k]) {\n target[k] = mergeRule(target[k] || {}, merge[k])\n }\n });\n return target;\n}\n\nexport function funcProxy(that, proxy) {\n Object.defineProperties(that, Object.keys(proxy).reduce((initial, k) => {\n initial[k] = {\n get() {\n return proxy[k]();\n }\n }\n return initial;\n }, {}))\n}\n\nexport function byCtx(rule) {\n return rule.__fc__ || (rule.__origin__ ? rule.__origin__.__fc__ : null)\n}\n\nexport function invoke(fn, def) {\n try {\n def = fn()\n } catch (e) {\n logError(e);\n }\n return def;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n effect: {},\n hidden: false,\n display: true,\n value: undefined,\n };\n}\n\nexport function creatorFactory(name, init) {\n return (title, field, value, props = {}) => {\n const maker = new Creator(name, title, field, value, props);\n if (init) {\n if (is.Function(init)) init(maker);\n else maker.props(init);\n }\n return maker;\n };\n}\n\nexport default function Creator(type, title, field, value, props) {\n this._data = extend(baseRule(), {type, title, field, value, props: props || {}});\n this.event = this.on;\n}\n\nextend(Creator.prototype, {\n getRule() {\n return this._data;\n },\n setProp(key, value) {\n $set(this._data, key, value);\n return this;\n },\n _clone() {\n const clone = new this.constructor();\n clone._data = copyRule(this._data);\n return clone;\n },\n})\n\nexport function appendProto(attrs) {\n attrs.forEach(name => {\n Creator.prototype[name] = function (key) {\n mergeRule(this._data, {[name]: arguments.length < 2 ? key : {[key]: arguments[1]}})\n return this;\n };\n });\n}\n\nappendProto(attrs());\n","import {creatorFactory} from './creator';\n\nconst commonMaker = creatorFactory('');\n\nexport function create(type, field, title) {\n let make = commonMaker('', field);\n make._data.type = type;\n make._data.title = title;\n return make;\n}\n\nexport function createTmp(template, vm, field, title) {\n let make = commonMaker('', field);\n make._data.type = 'template';\n make._data.template = template;\n make._data.title = title;\n make._data.vm = vm;\n return make;\n}\n\nexport default function makerFactory() {\n return {\n create,\n createTmp,\n template: createTmp,\n factory: creatorFactory\n };\n}\n","import {byCtx, invoke, mergeRule, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\n\n\nfunction copy(value) {\n return deepCopy(value);\n}\n\nexport default function Api(h) {\n\n function tidyFields(fields) {\n if (is.Undef(fields))\n fields = h.fields();\n else if (!Array.isArray(fields))\n fields = [fields];\n return fields;\n }\n\n function props(fields, key, val) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule, key, val);\n h.$render.clearCache(ctx);\n });\n })\n }\n\n function allSubForm() {\n const subs = h.subForm;\n return Object.keys(subs).reduce((initial, k) => {\n const sub = subs[k];\n if (!sub) return initial;\n if (Array.isArray(sub))\n initial.push(...sub);\n else\n initial.push(sub);\n return initial;\n }, []);\n }\n\n const api = {\n get config() {\n return h.options\n },\n get options() {\n return h.options\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.$pfc && h.vm.$pfc.$f\n },\n get children() {\n return allSubForm();\n },\n formData(fields) {\n return tidyFields(fields).reduce((initial, id) => {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return initial;\n initial[ctx.field] = copy(ctx.rule.value);\n return initial;\n }, h.options.appendValue ? copy(h.appendData) : {});\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n const data = {...(formData || {})};\n h.deferSyncValue(() => {\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (ctxs) {\n const flag = hasProperty(data, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? data[key] : undefined;\n })\n delete data[key];\n }\n });\n extend(h.appendData, data);\n })\n },\n setValue(field) {\n let formData = field;\n if (arguments.length >= 2)\n formData = {[field]: arguments[1]};\n h.deferSyncValue(() => {\n Object.keys(formData).forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (!ctxs) return h.appendData[key] = formData[key];\n ctxs.forEach(ctx => {\n ctx.rule.value = formData[key];\n });\n });\n })\n },\n removeField(field) {\n const ctx = h.getCtx(field);\n h.deferSyncValue(() => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rm();\n });\n }, true);\n return ctx ? ctx.origin : undefined;\n },\n removeRule(rule) {\n const ctx = rule && byCtx(rule);\n if (!ctx) return;\n ctx.rm();\n return ctx.origin;\n },\n destroy: () => {\n h.vm.$el.parentNode && h.vm.$el.parentNode.removeChild(h.vm.$el);\n h.vm.$destroy();\n },\n fields: () => h.fields(),\n append: (rule, after, child) => {\n let index = h.sort.length - 1, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n index = ctx.rule.children.length - 1;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index + 1, 0, rule);\n },\n prepend: (rule, after, child) => {\n let index = 0, rules;\n const ctx = h.getCtx(after);\n\n if (ctx) {\n if (child) {\n rules = ctx.rule.children;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n ctx.rule.props && $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n $set(h.vm, 'isShow', !hide);\n },\n changeStatus: () => {\n return h.changeStatus;\n },\n clearChangeStatus: () => {\n h.changeStatus = false;\n },\n updateRule(id, rule) {\n h.getCtxs(id).forEach(ctx => {\n extend(ctx.rule, rule);\n });\n },\n updateRules(rules) {\n Object.keys(rules).forEach(id => {\n api.updateRule(id, rules[id]);\n })\n },\n mergeRule: (id, rule) => {\n h.getCtxs(id).forEach(ctx => {\n mergeRule(ctx.rule, rule);\n });\n },\n mergeRules(rules) {\n Object.keys(rules).forEach(id => {\n api.mergeRule(id, rules[id]);\n })\n },\n getRule: (id, origin) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return origin ? ctx.origin : ctx.rule;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n $set(ctx.rule, 'effect', {});\n }\n $set(ctx.rule.effect, attr, value);\n }\n },\n clearEffectData(id, attr) {\n const ctx = h.getCtx(id);\n if (ctx) {\n if (attr && attr[0] === '$') {\n attr = attr.substr(1);\n }\n ctx.clearEffectData(attr);\n api.sync(id);\n }\n },\n updateValidate(id, validate, merge) {\n if (merge) {\n api.mergeRule(id, {validate})\n } else {\n props(id, 'validate', validate);\n }\n },\n updateValidates(validates, merge) {\n Object.keys(validates).forEach(id => {\n api.updateValidate(id, validates[id], merge);\n })\n },\n refreshValidate() {\n h.vm.validate = {};\n api.refresh();\n },\n resetFields(fields) {\n tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n h.$render.clearCache(ctx);\n ctx.rule.value = copy(ctx.defaultValue);\n });\n });\n },\n method(id, name) {\n const el = api.el(id);\n if (!el || !el[name])\n throw new Error(format('err', `${name}方法不存在`));\n return (...args) => {\n return el[name](...args);\n }\n },\n exec(id, name, ...args) {\n return invoke(() => api.method(id, name)(...args));\n },\n toJson(space) {\n return toJson(api.rule, space);\n },\n trigger(id, event, ...args) {\n const el = api.el(id);\n el && el.$emit(event, ...args);\n },\n el(id) {\n const ctx = h.getCtx(id);\n if (ctx) return ctx.exportEl || ctx.el || h.vm.$refs[ctx.ref];\n },\n closeModal: (id) => {\n const el = api.el(id);\n el && el.$emit && el.$emit('close-modal');\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n nextTick(fn) {\n h.bus.$once('next-tick', fn);\n h.refresh();\n },\n nextRefresh(fn) {\n h.nextRefresh();\n fn && invoke(fn);\n },\n emit(name, ...args) {\n h.vm.$emit(name, ...args);\n },\n deferSyncValue(fn, sync){\n h.deferSyncValue(fn, sync);\n },\n 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","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 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 'F' + 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 useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nexport default function Render(handle) {\n extend(this, {\n $handle: handle,\n fc: handle.fc,\n vm: handle.vm,\n $manager: handle.$manager,\n vNode: new handle.fc.CreateNode(handle.vm),\n });\n\n funcProxy(this, {\n options() {\n return handle.options;\n },\n sort() {\n return handle.sort;\n }\n })\n\n this.initCache();\n this.initRender();\n}\n\nuseCache(Render);\nuseRender(Render)\n","import extend from '@form-create/utils/lib/extend';\n\nexport default function useCache(Render) {\n extend(Render.prototype, {\n initCache() {\n this.clearCacheAll();\n },\n clearCache(ctx) {\n if(ctx.rule.cache){\n return;\n }\n if (!this.cache[ctx.id]) {\n ctx.parent && this.clearCache(ctx.parent);\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n const parent = this.cache[ctx.id].parent;\n this.cache[ctx.id] = null;\n parent && this.clearCache(parent);\n },\n clearCacheAll() {\n this.cache = {};\n },\n setCache(ctx, vnode, parent) {\n this.cache[ctx.id] = {\n vnode,\n use: false,\n parent,\n slot: ctx.rule.slot\n };\n },\n getCache(ctx) {\n const cache = this.cache[ctx.id];\n if (cache) {\n cache.use = true;\n return cache.vnode;\n }\n return undefined;\n }\n })\n\n}\n","import extend from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {_vue as Vue} from '../frame';\nimport {tip} from '@form-create/utils/lib/console';\nimport {invoke, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {$set, deepSet, toLine} from '@form-create/utils';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.tempList = {};\n this.clearOrgChildren();\n },\n initOrgChildren() {\n const ctxs = this.$handle.ctxs;\n this.orgChildren = Object.keys(ctxs).reduce((initial, id) => {\n if (ctxs[id].parser.loadChildren !== false) {\n const children = ctxs[id].rule.children;\n initial[id] = is.trueArray(children) ? [...children] : [];\n }\n\n return initial;\n }, {});\n\n },\n clearOrgChildren() {\n this.orgChildren = {};\n },\n getTypeSlot(ctx) {\n const _fn = (vm) => {\n if (vm) {\n let slot = undefined;\n if (ctx.rule.field) {\n slot = vm.$scopedSlots['field-' + toLine(ctx.rule.field)] || vm.$scopedSlots['field-' + ctx.rule.field];\n }\n if (!slot) {\n slot = vm.$scopedSlots['type-' + toLine(ctx.type)] || vm.$scopedSlots['type-' + ctx.type];\n }\n if (slot) {\n return slot;\n }\n return _fn(vm.$pfc);\n }\n }\n return _fn(this.vm);\n },\n render() {\n if (!this.vm.isShow) {\n return;\n }\n this.$h = this.vm.$createElement;\n this.$manager.beforeRender();\n\n let vn;\n\n const make = () => this.renderList();\n make.renderSlot = slot => this.renderList(slot);\n make.renderName = name => this.renderId(name);\n make.renderField = field => this.renderId(field, 'field');\n\n if (this.vm.$scopedSlots.container) {\n vn = [this.vm.$scopedSlots.container(make)];\n } else {\n vn = make();\n }\n return this.$manager.render(vn);\n },\n renderList(slot) {\n return this.sort.map((id) => {\n return slot ? this.renderSlot(this.$handle.ctxs[id], slot) : this.renderCtx(this.$handle.ctxs[id]);\n }).filter((val) => val !== undefined);\n },\n makeVm(rule) {\n const vm = rule.vm;\n if (!vm)\n return new Vue;\n else if (is.Function(vm))\n return invoke(() => rule.vm(this.$handle.getInjectData(rule)));\n else if (!vm._isVue)\n return new Vue(vm);\n return vm;\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n //todo 缓存配置,更新 option 更新\n if (!ctx.cacheConfig)\n ctx.cacheConfig = g[ctx.originType] || g[ctx.type] || g[ctx.trueType] || {};\n ctx.prop = mergeRule({}, [g['*'], ctx.cacheConfig, ctx.prop]);\n },\n setOptions(ctx) {\n if (ctx.prop.optionsTo && ctx.prop.options) {\n deepSet(ctx.prop, ctx.prop.optionsTo, ctx.prop.options);\n }\n },\n deepSet(ctx) {\n const deep = ctx.rule.deep;\n deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {\n deepSet(ctx.prop, str, deep[str]);\n });\n },\n setTempProps(vm, ctx) {\n if (!vm.$props) return;\n\n const {prop} = ctx;\n const keys = Object.keys(vm.$props);\n const inject = this.injectProp(ctx);\n const injectKeys = Object.keys(inject);\n\n keys.forEach(key => {\n if (hasProperty(prop.props, key))\n vm.$props[key] = prop.props[key];\n else if (injectKeys.indexOf(key) > -1) vm.$props[key] = inject[key];\n });\n\n const key = (vm.$options.model && vm.$options.model.prop) || 'value';\n if (keys.indexOf(key) > -1) {\n vm.$props[key] = prop.value;\n }\n },\n renderTemp(ctx) {\n if (!Vue.compile) {\n tip('当前使用的Vue构建版本不支持compile,无法使用template功能');\n return [];\n }\n const rule = ctx.prop;\n const {id, key} = ctx;\n\n if (!this.tempList[id]) {\n if (!ctx.el) {\n ctx.el = this.makeVm(rule);\n this.vm.$nextTick(() => ctx.parser.mounted(ctx));\n }\n\n let vm = ctx.el;\n if (ctx.input)\n vm.$on((vm.$options.model && vm.$options.model.event) || 'input', (value) => {\n this.onInput(ctx, value);\n });\n\n this.tempList[id] = {\n vm,\n template: Vue.compile(rule.template)\n };\n }\n\n const {vm, template} = this.tempList[id];\n\n this.setTempProps(vm, ctx);\n\n const vn = template.render.call(vm);\n\n if (is.Undef(vn.data)) vn.data = {};\n vn.key = key;\n vn.data.ref = ctx.ref;\n vn.data.key = key;\n return vn;\n },\n parseSide(side, ctx) {\n return is.Object(side) ? mergeRule({props: {formCreateInject: ctx.prop.props.formCreateInject}}, side) : side;\n },\n renderSides(vn, ctx, temp) {\n const prop = ctx[temp ? 'rule' : 'prop'];\n return [this.renderRule(this.parseSide(prop.prefix, ctx)), vn, this.renderRule(this.parseSide(prop.suffix, ctx))];\n\n },\n renderSlot(ctx, slot) {\n return ctx.rule.slot === slot ? this.renderCtx(ctx) : undefined;\n },\n renderId(name, type) {\n const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]\n return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;\n },\n renderCtx(ctx, parent) {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n let cacheFlag = rule.cache !== false;\n const _type = ctx.trueType;\n const none = !(is.Undef(rule.display) || !!rule.display);\n if (_type === 'template' && !rule.template) {\n vn = this.renderSides(this.renderChildren(ctx), ctx, true);\n if (none) {\n this.display(vn);\n }\n vn = this.item(ctx, vn);\n } else if (_type === 'fcFragment') {\n vn = this.renderChildren(ctx);\n } else {\n ctx.initProp();\n this.mergeGlobal(ctx);\n this.$manager.tidyRule(ctx);\n this.deepSet(ctx);\n this.setOptions(ctx);\n this.ctxProp(ctx);\n let prop = ctx.prop;\n prop.preview = !!(hasProperty(prop, 'preview') ? prop.preview : (this.options.preview || false))\n prop.props.formCreateInject = this.injectProp(ctx);\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n\n if (_type === 'template' && prop.template) {\n vn = this.renderTemp(ctx);\n cacheFlag = false;\n } else {\n let children = [];\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(ctx);\n }\n const slot = this.getTypeSlot(ctx);\n if (slot) {\n vn = slot({\n rule,\n prop,\n preview,\n children,\n api: this.$handle.api,\n model: prop.model || {}\n });\n } else {\n vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);\n }\n }\n vn = this.renderSides(vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n vn = this.$manager.makeWrap(ctx, vn);\n }\n if (none) {\n vn = this.display(vn);\n }\n vn = this.item(ctx, vn)\n }\n if (cacheFlag) {\n this.setCache(ctx, vn, parent);\n }\n return vn;\n }\n\n return this.getCache(ctx);\n },\n display(vn) {\n if (Array.isArray(vn)) {\n const data = [];\n vn.forEach(v => {\n if (Array.isArray(v)) return this.display(v);\n if (this.none(v)) data.push(v);\n })\n return data;\n } else {\n return this.none(vn);\n }\n },\n none(vn) {\n if (vn && vn.data) {\n if (Array.isArray(vn.data.style)) {\n vn.data.style.push({display: 'none'});\n } else if(is.String(vn.data.style)) {\n vn.data.style += ';display:none;';\n } else {\n vn.data.style = [vn.data.style, {display: 'none'}];\n }\n return vn;\n }\n },\n item(ctx, vn) {\n return this.$h('fcFragment', {\n slot: ctx.rule.slot,\n key: ctx.key,\n }, [vn]);\n },\n injectProp(ctx) {\n if (!this.vm.ctxInject[ctx.id]) {\n $set(this.vm.ctxInject, ctx.id, {\n api: this.$handle.api,\n form: this.fc.create,\n subForm: subForm => {\n this.$handle.addSubForm(ctx, subForm);\n },\n getSubForm: () => {\n return this.$handle.subForm[ctx.id];\n },\n options: [],\n children: [],\n prop: {},\n preview: false,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n });\n }\n const inject = this.vm.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.rule.children,\n prop: (function () {\n const temp = {...ctx.prop};\n temp.on = temp.on ? {...temp.on} : {};\n delete temp.model;\n return temp;\n }()),\n });\n return inject;\n },\n ctxProp(ctx, custom) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx, custom);\n ctx.parser.mergeProp(ctx, custom);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n 'hook:mounted': () => {\n this.onMounted(ctx);\n },\n 'fc.sub-form': (subForm) => {\n this.$handle.addSubForm(ctx, subForm);\n },\n 'fc.el': (el) => {\n ctx.exportEl = el;\n if (el) {\n (el.$el || el).__rule__ = ctx.rule;\n }\n }\n },\n }\n ]\n\n if (!custom && ctx.input) {\n ctx.prop.model = {\n value: this.$handle.getFormData(ctx),\n callback: (value) => {\n this.onInput(ctx, value);\n },\n expression: `formData.${ctx.id}`\n };\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx) {\n ctx.el = this.vm.$refs[ctx.ref];\n if (ctx.el) {\n (ctx.el.$el || ctx.el).__rule__ = ctx.rule;\n }\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n },\n onInput(ctx, value) {\n this.$handle.onInput(ctx, value);\n },\n renderChildren(ctx) {\n const {children} = ctx.rule, orgChildren = this.orgChildren[ctx.id];\n\n const isRm = child => {\n return !is.String(child) && child.__fc__ && !this.$handle.ctxs[child.__fc__.id];\n }\n\n if (!is.trueArray(children) && orgChildren) {\n this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n this.orgChildren[ctx.id] = [];\n return [];\n }\n\n orgChildren && this.$handle.deferSyncValue(() => {\n orgChildren.forEach(child => {\n if (!child) return;\n if (children.indexOf(child) === -1 && isRm(child)) {\n this.$handle.rmCtx(child.__fc__);\n }\n });\n });\n\n return children.map(child => {\n if (!child) return;\n if (is.String(child)) return child;\n if (child.__fc__) {\n return this.renderCtx(child.__fc__, ctx);\n }\n if (child.type) {\n this.vm.$nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if(prop.component)\n return this.vNode.makeComponent(prop.component, prop, children)\n if (this.vNode[ctx.type])\n return this.vNode[ctx.type](prop, children);\n if (this.vNode[ctx.originType])\n return this.vNode[ctx.originType](prop, children);\n return this.vNode.make(lower(ctx.originType), prop, children);\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule)) return rule;\n\n let type;\n if (origin) {\n type = rule.type;\n } else {\n type = rule.is;\n if (rule.type) {\n type = toCase(rule.type);\n const alias = this.vNode.aliasMap[type];\n if (alias) type = toCase(alias);\n }\n }\n\n if (!type) return undefined;\n let data = [[children]];\n if (is.trueArray(rule.children)) {\n data.push(rule.children.map(v => this.renderRule(v)));\n }\n return this.$h(type, {...rule}, data);\n }\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\n\nconst EVENT = ['hook:updated', 'hook:mounted'];\n\nexport default function usePage(Handler) {\n extend(Handler.prototype, {\n usePage() {\n const page = this.options.page;\n if (!page) return;\n let first = 25;\n let limit = getLimit(this.rules);\n if (is.Object(page)) {\n if (page.first) first = parseInt(page.first, 10) || first;\n if (page.limit) limit = parseInt(page.limit, 10) || limit;\n }\n extend(this, {\n first,\n limit,\n pageEnd: this.rules.length <= first,\n })\n\n this.bus.$on('page-end', () => this.vm.$emit('page-end', this.api));\n this.pageLoad();\n },\n pageLoad() {\n const pageFn = () => {\n if (this.pageEnd) {\n this.vm.$off(EVENT, pageFn);\n this.bus.$emit('page-end');\n } else {\n this.first += this.limit;\n this.pageEnd = this.rules.length <= this.first;\n this.loadRule();\n this.refresh();\n }\n }\n this.vm.$on(EVENT, pageFn);\n },\n })\n}\n\n\nfunction getLimit(rules) {\n return rules.length < 31 ? 31 : Math.ceil(rules.length / 3);\n}\n","import unique from '@form-create/utils/lib/unique';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {enumerable, mergeRule} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(ctx, true)\n });\n}\n\nexport default function RuleContext(handle, rule, defaultValue) {\n const id = unique();\n\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n parent: null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n input: !!rule.field,\n el: undefined,\n exportEl: undefined,\n defaultValue: rule.field ? deepCopy(defaultValue) : undefined,\n field: rule.field || undefined,\n })\n\n this.updateType();\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n effectData(name) {\n if (!this.payload[name]) {\n this.payload[name] = {};\n }\n return this.payload[name];\n },\n clearEffectData(name) {\n if (name === undefined) {\n this.payload = {};\n } else {\n delete this.payload[name];\n }\n },\n updateKey(flag) {\n this.key = unique();\n flag && this.parent && this.parent.updateKey(flag);\n },\n updateType() {\n this.originType = this.rule.type;\n this.type = toCase(this.rule.type);\n },\n setParser(parser) {\n this.parser = parser;\n parser.init(this);\n },\n initProp() {\n const rule = {...this.rule};\n delete rule.children;\n this.prop = mergeRule({}, [rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n },\n 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 {baseRule} from '../factory/creator';\nimport RuleContext from '../factory/context';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport {$set} from '@form-create/utils';\n\nconst condition = {\n '==': (b) => (a) => a === b,\n '!=': (b) => (a) => a !== b,\n '<>': (b) => (a) => a !== b,\n '>': (b) => (a) => a > b,\n '>=': (b) => (a) => a >= b,\n '<': (b) => (a) => a < b,\n '<=': (b) => (a) => a <= b,\n 'in': (b) => (a) => (b && b.indexOf && b.indexOf(a) > -1),\n 'on': (b) => (a) => (a && a.indexOf && a.indexOf(b) > -1),\n 'notIn': (b) => (a) => !(condition.in(b)(a)),\n 'notOn': (b) => (a) => !(condition.on(b)(a)),\n 'between': (b) => (a) => a > b[0] && a < b[1],\n 'notBetween': (b) => (a) => a < b[0] || a > b[1],\n}\n\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n this.vm.$nextTick(() => {\n id === this.loadedId && (fn ? fn() : this.refresh());\n });\n },\n parseRule(_rule) {\n const rule = getRule(_rule);\n\n Object.defineProperties(rule, {\n __origin__: enumerable(_rule, true)\n });\n\n fullRule(rule);\n this.appendValue(rule);\n\n rule.options = Array.isArray(rule.options) ? rule.options : [];\n\n [rule, rule['prefix'], rule['suffix']].forEach(item => {\n if (!item) {\n return;\n }\n this.loadFn(item, rule);\n });\n this.loadCtrl(rule);\n if (rule.update) {\n rule.update = parseFn(rule.update);\n }\n return rule;\n },\n loadFn(item, rule) {\n ['on', 'props', 'nativeOn', 'deep'].forEach(k => {\n item[k] && this.parseInjectEvent(rule, item[k]);\n });\n },\n loadCtrl(rule) {\n rule.control && rule.control.forEach(ctrl => {\n if (ctrl.handle) {\n ctrl.handle = parseFn(ctrl.handle)\n }\n })\n },\n syncProp(ctx) {\n const rule = ctx.rule;\n is.trueArray(rule.sync) && mergeProps([{\n on: rule.sync.reduce((pre, prop) => {\n pre[`update:${prop}`] = (val) => {\n rule.props[prop] = val;\n this.vm.$emit('sync', prop, val, rule, this.fapi);\n }\n return pre\n }, {})\n }], ctx.computed)\n },\n loadRule() {\n // console.warn('%c load', 'color:blue');\n this.cycleLoad = false;\n this.loading = true;\n if (this.pageEnd) {\n this.bus.$emit('load-start');\n }\n this.deferSyncValue(() => {\n this._loadRule(this.rules);\n this.loading = false;\n if (this.cycleLoad && this.pageEnd) {\n return this.loadRule();\n }\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm._renderRule();\n this.$render.initOrgChildren();\n this.syncForm();\n });\n },\n loadChildren(children, parent) {\n this.cycleLoad = false;\n this.loading = true;\n this.bus.$emit('load-start');\n this._loadRule(children, parent);\n this.loading = false;\n if (this.cycleLoad) {\n return this.loadRule();\n } else {\n this.bus.$emit('load-end');\n this.syncForm();\n }\n this.$render.clearCache(parent);\n },\n _loadRule(rules, parent) {\n\n const preIndex = (i) => {\n let pre = rules[i - 1];\n if (!pre || !pre.__fc__) {\n return i > 0 ? preIndex(i - 1) : -1;\n }\n let index = this.sort.indexOf(pre.__fc__.id);\n return index > -1 ? index : preIndex(i - 1);\n }\n\n const loadChildren = (children, parent) => {\n if (is.trueArray(children)) {\n this._loadRule(children, parent);\n }\n };\n\n rules.map((_rule, index) => {\n if (parent && !is.Object(_rule)) return;\n if (!this.pageEnd && !parent && index >= this.first) return;\n\n if (_rule.__fc__ && _rule.__fc__.root === rules && this.ctxs[_rule.__fc__.id]) {\n loadChildren(_rule.__fc__.rule.children, _rule.__fc__);\n return _rule.__fc__;\n }\n\n let rule = getRule(_rule);\n\n const isRepeat = () => {\n return !!(rule.field && this.fieldCtx[rule.field] && this.fieldCtx[rule.field][0] !== _rule.__fc__)\n }\n\n this.ruleEffect(rule, 'init', {repeat: isRepeat()});\n\n if (isRepeat()) {\n this.vm.$emit('repeat-field', _rule, this.api);\n }\n\n let ctx;\n let isCopy = false;\n let isInit = !!_rule.__fc__;\n let defaultValue = rule.value;\n if (isInit) {\n ctx = _rule.__fc__;\n defaultValue = ctx.defaultValue;\n const check = !ctx.check(this);\n if (ctx.deleted) {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n }\n } else {\n if (check) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : copyRule(_rule);\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n const rule = this.parseRule(_rule);\n ctx = new RuleContext(this, rule, isInit ? defaultValue : rule.value);\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, 'init');\n });\n }\n this.effect(ctx, 'loaded');\n }\n\n if (ctx.input)\n Object.defineProperty(r, 'value', this.valueHandle(ctx));\n if (this.refreshControl(ctx)) this.cycleLoad = true;\n return ctx;\n });\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || ((condition[control.condition || '=='] || condition['=='])(control.value));\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n const hideLst = [];\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl, method}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n hideLst[valid ? 'push' : 'unshift'](() => {\n if (method === 'disabled') {\n this.api.disabled(!valid, rule);\n } else if (method === 'display') {\n this.api.display(valid, rule);\n } else if (method === 'required') {\n rule.forEach(item => {\n this.api.setEffect(item, 'required', valid);\n })\n if(!valid){\n this.api.clearValidateState(rule);\n }\n } else {\n this.api.hidden(!valid, rule);\n }\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fcFragment',\n native: true,\n __ctrl: true,\n children: rule,\n }\n ctx.ctrlRule.push(ruleCon);\n this.bus.$once('load-start', () => {\n // this.cycleLoad = true;\n if (prepend) {\n api.prepend(ruleCon, prepend, child)\n } else if (append || child) {\n api.append(ruleCon, append || ctx.id, child)\n } else {\n ctx.root.splice(ctx.root.indexOf(ctx.origin) + 1, 0, ruleCon);\n }\n });\n } else {\n ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl), 1);\n const ctrlCtx = byCtx(ctrl);\n ctrlCtx && ctrlCtx.rm();\n }\n });\n });\n hideLst.length && this.vm.$nextTick(() => {\n hideLst.forEach(v => v());\n });\n this.vm.$emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.$render.clearOrgChildren();\n this.initData(rules);\n this.fc.rules = rules;\n this.deferSyncValue(() => {\n this.bus.$once('load-end', () => {\n Object.keys(ctxs).filter(id => this.ctxs[id] === undefined)\n .forEach(id => this.rmCtx(ctxs[id]));\n this.$render.clearCacheAll();\n });\n this.reloading = true;\n this.loadRule();\n this.reloading = false;\n this.refresh();\n this.vm.$emit('reloading', this.api);\n });\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.vm.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm._refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) $set(rule, k, def[k]);\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport toArray from '@form-create/utils/lib/toarray';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n getValue(ctx) {\n if (is.Undef(ctx.cacheValue)) {\n ctx.cacheValue = ctx.parser.toValue(this.getFormData(ctx), ctx);\n }\n return ctx.cacheValue;\n },\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.cacheValue = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, val))) {\n this.setValue(ctx, val, value);\n }\n },\n setFormData(ctx, value) {\n $set(this.formData, ctx.id, value === null ? undefined : value);\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n validate() {\n toEmpty(this.vm.validate);\n this.fields().forEach(id => {\n this.fieldCtx[id].forEach(ctx => {\n this.vm.validate[ctx.id] = toArray(ctx.rule.validate);\n });\n });\n return this.vm.validate;\n },\n syncForm() {\n toEmpty(this.form);\n Object.defineProperties(this.form, this.fields().reduce((initial, field) => {\n const ctx = this.getFieldCtx(field);\n const handle = this.valueHandle(ctx);\n handle.configurable = true;\n initial[field] = handle;\n return initial;\n }, this.options.appendValue ? Object.keys(this.appendData).reduce((initial, field) => {\n initial[field] = {\n enumerable: true,\n configurable: true,\n get: () => {\n return this.appendData[field];\n },\n set: (val) => {\n this.appendData[field] = val;\n }\n }\n return initial;\n }, {}) : {}));\n this.syncValue();\n },\n valueHandle(ctx) {\n return {\n enumerable: true,\n get: () => {\n return this.getValue(ctx);\n },\n set: (value) => {\n if (this.isChange(ctx, value)) {\n this.setValue(ctx, value, ctx.parser.toFormValue(value, ctx), true);\n }\n }\n };\n },\n appendValue(rule) {\n if (!rule.field || !hasProperty(this.appendData, rule.field)) return;\n rule.value = this.appendData[rule.field];\n delete this.appendData[rule.field];\n },\n addSubForm(ctx, subForm) {\n this.subForm[ctx.id] = subForm;\n },\n deferSyncValue(fn, sync) {\n if (!this.deferSyncFn) {\n this.deferSyncFn = fn;\n }\n if (!this.deferSyncFn.sync) {\n this.deferSyncFn.sync = sync;\n }\n invoke(fn);\n if (this.deferSyncFn === fn) {\n this.deferSyncFn = null;\n if (fn.sync) {\n this.syncValue();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n this.vm._updateValue({...(this.options.appendValue ? this.appendData : {}), ...this.form});\n },\n isChange(ctx, value) {\n return JSON.stringify(ctx.rule.value, strFn) !== JSON.stringify(value === null ? undefined : value, strFn);\n },\n isQuote(ctx, value) {\n return (is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val, origin) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api, {origin: origin || 'change'}));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val, origin) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.vm.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val, origin);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value, 'link');\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\n}\n\nfunction toEmpty(obj) {\n Object.keys(obj).forEach(k => delete obj[k]);\n}\n","const BaseParser = {\n init(ctx) {\n },\n toFormValue(value, ctx) {\n return value\n },\n toValue(formValue, ctx) {\n return formValue;\n },\n mounted(ctx) {\n },\n render(children, ctx) {\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n return this.render(children, ctx);\n },\n mergeProp(ctx) {\n }\n}\n\nexport default BaseParser;\n","import extend from '@form-create/utils/lib/extend';\nimport toCase from '@form-create/utils/lib/tocase';\nimport BaseParser from '../factory/parser';\nimport {$del} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'component', 'cache'];\n\nexport default function useContext(Handler) {\n extend(Handler.prototype, {\n getCtx(id) {\n return this.getFieldCtx(id) || this.getNameCtx(id)[0] || this.ctxs[id];\n },\n getCtxs(id) {\n return this.fieldCtx[id] || this.nameCtx[id] || (this.ctxs[id] ? [this.ctxs[id]] : []);\n },\n setIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n if (!this[field][key]) {\n this[field][key] = [ctx];\n } else {\n this[field][key].push(ctx);\n }\n },\n rmIdCtx(ctx, key, type) {\n const field = `${type}Ctx`;\n const lst = this[field][key];\n if (!lst) return false;\n const flag = lst.splice(lst.indexOf(ctx) >>> 0, 1).length > 0;\n if (!lst.length) {\n delete this[field][key];\n }\n return flag;\n },\n getFieldCtx(field) {\n return (this.fieldCtx[field] || [])[0];\n },\n getNameCtx(name) {\n return this.nameCtx[name] || [];\n },\n setCtx(ctx) {\n let {id, field, name, rule} = ctx;\n this.ctxs[id] = ctx;\n name && this.setIdCtx(ctx, name, 'name');\n if (!ctx.input) return;\n this.setIdCtx(ctx, field, 'field');\n this.setFormData(ctx, ctx.parser.toFormValue(rule.value, ctx));\n if (this.isMounted && !this.reloading) {\n this.vm.$emit('change', ctx.field, rule.value, ctx.origin, this.api);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n return list[ctx.originType] || list[toCase(ctx.type)] || list[ctx.trueType] || BaseParser;\n },\n bindParser(ctx) {\n ctx.setParser(this.getParser(ctx));\n },\n getType(alias) {\n const map = this.fc.CreateNode.aliasMap;\n const type = map[alias] || map[toCase(alias)] || alias;\n return toCase(type);\n },\n noWatch(fn) {\n if (!this.noWatchFn) {\n this.noWatchFn = fn;\n }\n invoke(fn);\n if (this.noWatchFn === fn) {\n this.noWatchFn = null;\n }\n },\n watchCtx(ctx) {\n const vm = this.vm;\n Object.keys(ctx.rule).filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const flag = key === 'children';\n ctx.watch.push(vm.$watch(() => ctx.rule[key], (n, o) => {\n if (this.loading || this.noWatchFn || this.reloading) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n // if (key === 'hidden')\n // ctx.updateKey(true);\n // else\n if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', 'nativeOn', 'deep'].indexOf(key) > -1) {\n this.parseInjectEvent(ctx.rule, n || {});\n if (key === 'props' && ctx.input) {\n this.setFormData(ctx, ctx.parser.toFormValue(ctx.rule.value, ctx));\n }\n } else if (['emit', 'nativeEmit'].indexOf(key) > -1)\n this.parseEmit(ctx, key === 'emit');\n else if (['prefix', 'suffix'].indexOf(key) > -1)\n n && this.loadFn(n, ctx.rule);\n else if (key === 'type') {\n ctx.updateType();\n this.bindParser(ctx);\n } else if (key === 'children') {\n const flag = is.trueArray(n);\n this.deferSyncValue(() => {\n if (n !== o) {\n this.rmSub(o, ctx);\n this.$render.initOrgChildren();\n }\n flag && this.loadChildren(n, ctx);\n this.vm.$emit('update', this.api);\n });\n }\n this.$render.clearCache(ctx);\n this.refresh();\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n this.watchEffect(ctx);\n },\n rmSub(sub, ctx) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && r.__fc__.parent === ctx && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n if (ctx.input) {\n Object.defineProperty(ctx.rule, 'value', {\n value: ctx.rule.value,\n writable: true\n });\n }\n\n $del(this.ctxs, id);\n $del(this.$render.tempList, id);\n $del(this.$render.orgChildren, id);\n $del(this.vm.ctxInject, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(ctx, 'cacheValue');\n\n input && this.rmIdCtx(ctx, field, 'field');\n name && this.rmIdCtx(ctx, name, 'name');\n\n if (input && !hasProperty(this.fieldCtx, field)) {\n $del(this.form, field);\n }\n\n this.deferSyncValue(() => {\n if (!this.reloading) {\n if (ctx.parser.loadChildren !== false) {\n if (is.trueArray(ctx.rule.children)) {\n ctx.rule.children.forEach(h => h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm._renderRule();\n }\n }\n }, input);\n\n const index = this.sort.indexOf(id);\n if (index > -1) {\n this.sort.splice(index, 1);\n }\n\n this.$render.clearCache(ctx);\n ctx.delete();\n this.effect(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.$emit('removeField', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.$emit('removeRule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\n\n\nexport default function Handler(fc) {\n extend(this, {\n fc,\n vm: fc.vm,\n watching: false,\n loading: false,\n reloading: false,\n noWatchFn: null,\n deferSyncFn: null,\n isMounted: false,\n formData: {},\n subForm: {},\n form: {},\n appendData: {},\n providers: {},\n cycleLoad: null,\n loadedId: 1,\n nextTick: null,\n changeStatus: false,\n pageEnd: true,\n nextReload: () => {\n this.lifecycle('reload');\n }\n });\n\n funcProxy(this, {\n options() {\n return fc.options;\n },\n bus() {\n return fc.bus;\n },\n })\n\n this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApi(Api(this), this);\n}\n\nextend(Handler.prototype, {\n initData(rules) {\n extend(this, {\n ctxs: {},\n fieldCtx: {},\n nameCtx: {},\n sort: [],\n rules,\n });\n },\n init() {\n this.appendData = {...this.fc.options.formData || {}, ...this.vm.value || {}, ...this.appendData};\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.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","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';\n\n\nexport default function useRender(Handler) {\n extend(Handler.prototype, {\n clearNextTick() {\n this.nextTick && clearTimeout(this.nextTick);\n this.nextTick = null;\n },\n bindNextTick(fn) {\n this.clearNextTick();\n this.nextTick = setTimeout(() => {\n fn()\n this.nextTick = null;\n }, 10);\n },\n render() {\n // console.warn('%c render', 'color:green');\n ++this.loadedId;\n\n if (this.vm.unique > 0)\n return this.$render.render();\n else {\n this.vm.unique = 1;\n return [];\n }\n },\n });\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke} 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 {mergeRule} from '../frame/util';\n\n\nexport default function useEffect(Handler) {\n extend(Handler.prototype, {\n useProvider() {\n const ps = this.fc.providers;\n Object.keys(ps).forEach(k => {\n let prop = ps[k];\n if (is.Function(prop)) {\n prop = prop(this.fc);\n }\n prop._c = getComponent(prop);\n this.onEffect(prop);\n this.providers[k] = prop;\n });\n },\n onEffect(provider) {\n const used = [];\n (provider._c || ['*']).forEach(name => {\n const type = name === '*' ? '*' : this.getType(name);\n if (used.indexOf(type) > -1) return;\n used.push(type);\n this.bus.$on(`p:${provider.name}:${type}:${provider.input ? 1 : 0}`, (event, args) => {\n provider[event] && provider[event](...args);\n });\n });\n provider._used = used;\n },\n watchEffect(ctx) {\n const vm = this.vm;\n let effect = {\n required: () => {\n return (hasProperty(ctx.rule, '$required') ? ctx.rule['$required'] : ctx.rule?.effect?.required) || false;\n }\n };\n Object.keys(ctx.rule.effect || {}).forEach(k => {\n effect[k] = () => ctx.rule.effect[k];\n })\n Object.keys(ctx.rule).forEach(k => {\n if (k[0] === '$') {\n effect[k.substr(1)] = () => ctx.rule[k];\n }\n })\n Object.keys(effect || {}).forEach(k => {\n ctx.watch.push(vm.$watch(effect[k], (n) => {\n this.effect(ctx, 'watch', {[k]: n});\n }, {deep: true}));\n });\n },\n ruleEffect(rule, event, append) {\n this.emitEffect({\n rule,\n input: !!rule.field,\n type: this.getType(rule.type)\n }, event, append);\n },\n effect(ctx, event, custom) {\n this.emitEffect({\n rule: ctx.rule,\n input: ctx.input,\n type: ctx.trueType,\n ctx,\n custom\n }, event);\n },\n getEffect(rule, name) {\n if (hasProperty(rule, '$' + name)) {\n return rule['$' + name];\n }\n if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name))\n return rule.effect[name];\n return undefined;\n },\n emitEffect({ctx, rule, input, type, custom}, event, append) {\n if (!type || type === 'fcFragment') return;\n const effect = custom ? custom : (Object.keys(rule).reduce((i, k) => {\n if (k[0] === '$') {\n i[k.substr(1)] = rule[k];\n }\n return i;\n }, {...rule.effect || {}}));\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeRule(data.getProp(), [prop]);\n }\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","const NAME = 'fcFragment';\n\nexport default {\n name: NAME,\n functional: true,\n props: ['vnode'],\n render(h, ctx) {\n return ctx.props.vnode ? ctx.props.vnode : ctx.children\n }\n}\n","import toLine from '@form-create/utils/lib/toline';\nimport is from '@form-create/utils/lib/type';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport Vue from 'vue';\n\nfunction parseProp(prop) {\n if (is.String(prop))\n return {domProps: {innerHTML: prop}};\n return prop;\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(vm) {\n vm && this.setVm(vm);\n }\n\n extend(CreateNode.prototype, {\n setVm(vm) {\n this.vm = vm;\n this.$h = vm.$createElement;\n },\n make(tag, data, children) {\n if (Vue.config.isReservedTag(tag) && data.nativeOn) delete data.nativeOn;\n return this.makeComponent(tag, data, children);\n },\n makeComponent(type, data, children) {\n let Node = this.$h(type, parseProp(data), children || []);\n Node.context = this.vm;\n return Node;\n },\n aliasMap\n });\n\n extend(CreateNode, {\n aliasMap,\n alias(alias, name) {\n aliasMap[alias] = name;\n },\n use(nodes) {\n Object.keys(nodes).forEach((k) => {\n const line = toLine(k);\n const lower = toString(k).toLocaleLowerCase();\n const v = nodes[k];\n [k, line, lower].forEach(n => {\n CreateNode.alias(k, v);\n CreateNode.prototype[n] = function (data, children) {\n return this.make(v, data, children);\n };\n });\n });\n }\n })\n\n return CreateNode;\n}\n","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","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 {byCtx, invoke} from './util';\nimport is from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\n\nconst componentValidate = {\n name: 'componentValidate',\n load(attr, rule, api) {\n const method = attr.getValue();\n if (!method) {\n attr.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n attr.getProp().validate = [{\n validator(...args) {\n const ctx = byCtx(rule);\n if (ctx) {\n return api.exec(ctx.id, method === true ? 'formCreateValidate' : method, ...args, {\n attr,\n rule,\n api\n });\n }\n }\n }];\n }\n },\n watch(...args) {\n componentValidate.load(...args);\n }\n};\n\nconst fetch = function (fc) {\n\n function parseOpt(option) {\n if (is.String(option)) {\n option = {\n action: option,\n to: 'options'\n }\n }\n return option;\n }\n\n function run(inject, rule, api) {\n let option = inject.value;\n 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(() => fc.create.fetch({\n ...option,\n onSuccess(body) {\n if (check()) return;\n let fn = (v) => v.data;\n if (is.Function(option.parse)) {\n fn = option.parse;\n } else if (option.parse && is.String(option.parse)) {\n fn = (v) => {\n option.parse.split('.').forEach(k => {\n if (v) {\n v = v[k];\n }\n })\n return v;\n }\n }\n set(fn(body, rule, api))\n api.sync(rule);\n },\n onError(e) {\n set(undefined)\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + option.action)))(e, rule, api);\n }\n }, {inject, rule, api}));\n return true;\n }\n\n return {\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}\n\n\nconst $required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n if (val.required === false) {\n inject.clearProp();\n } else {\n const validate = {\n required: true,\n validator(_, v, call) {\n is.empty(v) ? call(validate.message) : call();\n },\n ...val,\n };\n if (!validate.message) {\n let title = rule.title || '';\n validate.message = ((typeof title === 'object' ? title.title : title) || '') + '不能为空';\n }\n inject.getProp().validate = [validate];\n }\n api.sync(rule);\n },\n watch(...args) {\n $required.load(...args);\n }\n}\n\nfunction parseVal(val) {\n if (is.Boolean(val)) {\n return {required: val}\n } else if (is.String(val)) {\n return {message: val};\n } else if (is.Undef(val)) {\n return {required: false};\n } else if (is.Function(val)) {\n return {validator: val};\n } else if (!is.Object(val)) {\n return {};\n } else {\n return val;\n }\n}\n\nexport default {\n fetch,\n required: $required,\n componentValidate,\n};\n","import is from '@form-create/utils/lib/type';\n\nconst name = 'html';\n\nexport default {\n name,\n loadChildren: false,\n render(children, ctx) {\n if (!ctx.prop.domProps) ctx.prop.domProps = {};\n ctx.prop.domProps.innerHTML = children;\n return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);\n },\n renderChildren(ctx) {\n if (Array.isArray(ctx.rule.children)) {\n return ctx.rule.children.filter(v => is.String(v)).join('');\n }\n return '';\n }\n}\n","import $FormCreate from '../components/formCreate';\nimport Vue from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, mergeGlobal, parseJson, toJson, parseFn} from './util';\nimport fragment from '../components/fragment';\nimport is from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend from '@form-create/utils/lib/extend';\nimport {CreateNodeFactory} from '../factory/node';\nimport {createManager} from '../factory/manager';\nimport {arrayAttrs, keyAttrs, normalAttrs} from './attrs';\nimport {appendProto} from '../factory/creator';\nimport $provider from './provider';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport html from '../parser/html';\n\nexport let _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;\n\nfunction _parseProp(name, id) {\n let prop;\n if (arguments.length === 2) {\n prop = arguments[1];\n id = prop[name];\n } else {\n prop = arguments[2];\n }\n return {id, prop};\n}\n\nfunction nameProp() {\n return _parseProp('name', ...arguments);\n}\n\nfunction _getEl(options) {\n if (!options || !options.el) return window.document.body;\n return is.Element(options.el)\n ? options.el\n : document.querySelector(options.el);\n}\n\nfunction mountForm(rules, option) {\n const $vm = new _vue({\n data() {\n //todo 外部无法修改\n return {rule: rules, option: option || {}};\n },\n render(h) {\n return h('FormCreate', {ref: 'fc', props: this.$data});\n }\n });\n $vm.$mount();\n return $vm;\n}\n\nfunction exportAttrs(attrs) {\n const key = attrs.key || [];\n const array = attrs.array || [];\n const normal = attrs.normal || [];\n keyAttrs.push(...key);\n arrayAttrs.push(...array);\n normalAttrs.push(...normal);\n\n appendProto([...key, ...array, ...normal]);\n}\n\nlet id = 1;\nconst instance = {};\n\n//todo 表单嵌套\nexport default function FormCreateFactory(config) {\n\n const components = {\n [fragment.name]: fragment\n };\n const parsers = {};\n const directives = {};\n const providers = {\n ...$provider\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const data = {};\n const CreateNode = CreateNodeFactory();\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val))\n return [...val];\n return val;\n }\n\n function directive() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) directives[data.id] = data.prop;\n }\n\n function register() {\n const data = nameProp(...arguments);\n if (data.id && data.prop) providers[data.id] = {...data.prop, name: data.id};\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser() {\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = {...(base || BaseParser), ...parser};\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = toCase(id);\n if (['form-create', 'formcreate'].indexOf(name) > -1) {\n return $form();\n } else if (component === undefined) {\n return components[name];\n }\n } else {\n name = toCase(id.name);\n component = id;\n }\n if (!name || !component) return;\n components[name] = component;\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return _vue.extend($FormCreate(FormCreate));\n }\n\n function $vnode() {\n return _vue.extend(fragment);\n }\n\n //todo 检查回调函数作用域\n function use(fn, opt) {\n if (is.Function(fn.install)) fn.install(create, opt);\n else if (is.Function(fn)) fn(create, opt);\n return this;\n }\n\n function create(rules, _opt, parent) {\n let $vm = mountForm(rules, _opt || {});\n const _this = $vm.$refs.fc.formCreate;\n _this.$parent = parent;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n }\n\n function factory(inherit) {\n let _config = {...config};\n if (inherit) {\n _config.inherit = {\n components,\n parsers,\n directives,\n providers,\n maker,\n data\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function FormCreate(vm, rules, options) {\n extend(this, {\n id: id++,\n vm,\n create,\n manager: createManager(config.manager),\n parsers,\n providers,\n rules: Array.isArray(rules) ? rules : [],\n name: vm.$options.propsData.name,\n inFor: vm.$options.propsData.inFor,\n prop: {\n components,\n directives,\n },\n CreateNode,\n bus: new _vue,\n unwatch: null,\n options: options || {},\n extendApi: config.extendApi || (api => api)\n })\n this.init();\n this.initOptions(this.options);\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this.api());\n } else {\n instance[this.name] = this.api();\n }\n }\n }\n\n extend(FormCreate.prototype, {\n init() {\n const vm = this.vm;\n const h = new Handle(this);\n this.$handle = h;\n vm.$f = h.api;\n vm.$emit('input', h.api);\n\n vm.$on('hook:created', () => {\n if (this.isSub()) {\n this.unwatch = vm.$watch(() => vm.$pfc.option, () => {\n this.initOptions(this.options);\n vm.$f.refresh();\n }, {deep: true});\n this.initOptions(this.options);\n }\n this.created();\n })\n vm.$on('hook:mounted', () => {\n this.mounted();\n });\n vm.$on('hook:beforeDestroy', () => {\n vm.destroyed = true;\n this.unwatch && this.unwatch();\n h.reloadRule([]);\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this.api());\n instance[this.name].splice(idx, 1);\n } else {\n delete instance[this.name];\n }\n }\n });\n vm.$on('hook:updated', () => {\n h.bindNextTick(() => this.bus.$emit('next-tick', h.api));\n });\n },\n isSub() {\n return this.vm.$pfc && this.vm.extendOption;\n },\n initOptions(options) {\n this.options = {formData: {}, submitBtn: {}, resetBtn: {}, ...deepCopy(globalConfig)};\n if (this.isSub()) {\n this.mergeOptions(this.options, this.vm.$pfc.$f.config || {}, true);\n }\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = deepCopy(opt);\n parent && ['page', 'onSubmit', 'mounted', 'reload', 'formData', 'el'].forEach((n) => {\n delete opt[n];\n });\n if (opt.global) {\n target.global = mergeGlobal(target.global, opt.global);\n delete opt.global;\n }\n this.$handle.$manager.mergeOptions([opt], target);\n return target;\n },\n updateOptions(options) {\n this.mergeOptions(this.options, options);\n this.$handle.$manager.updateOptions(this.options);\n },\n created() {\n this.$handle.init();\n this.vm.$emit('created', this.api());\n },\n api() {\n return this.$handle.api;\n },\n render() {\n return this.$handle.render();\n },\n mounted() {\n this.$handle.mounted();\n },\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n data,\n maker,\n component,\n directive,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n getApi,\n init(rules, _opt = {}) {\n let $vm = mountForm(rules, _opt), _this = $vm.$refs.fc.formCreate;\n return {\n mount($el) {\n if ($el && is.Element($el))\n _this.options.el = $el;\n _getEl(_this.options).appendChild($vm.$el);\n return _this.api();\n },\n remove() {\n $vm.$el.parentNode && $vm.$el.parentNode.removeChild($vm.$el);\n },\n destroy() {\n this.remove();\n $vm.$destroy();\n },\n $f: _this.api()\n };\n }\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(Vue, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n if (Vue._installedFormCreate === true) return;\n Vue._installedFormCreate = true;\n _vue = Vue;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n Vue.prototype.$formCreate = $formCreate;\n Vue.component('FormCreate', $form());\n Vue.component('FcFragment', $vnode());\n }\n })\n }\n\n useAttr(create);\n useStatic(create);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n parser(html);\n\n if (config.install) create.use(config);\n\n if (config.inherit) {\n const inherit = config.inherit;\n inherit.components && extend(components, inherit.components);\n inherit.parsers && extend(parsers, inherit.parsers);\n inherit.directives && extend(directives, inherit.directives);\n inherit.providers && extend(providers, inherit.providers);\n inherit.maker && extend(maker, inherit.maker);\n inherit.data && extend(data, inherit.data);\n }\n\n return create;\n}\n","import is from '@form-create/utils/lib/type';\nimport {creatorFactory} from '@form-create/core/src/index';\n\nexport function timeStampToDate(timeStamp) {\n if (is.Date(timeStamp))\n return timeStamp;\n else {\n let date = new Date(timeStamp);\n return date.toString() === 'Invalid Date' ? timeStamp : date;\n }\n}\n\nconst name = 'datePicker';\n\nexport default {\n name,\n maker: (function () {\n return ['date', 'dateRange', 'datetime', 'datetimeRange', 'year', 'month'].reduce((maker, type) => {\n maker[type] = creatorFactory(name, {type: type.toLowerCase()});\n return maker;\n }, {});\n }()),\n mergeProp(ctx) {\n let props = ctx.prop.props;\n if (props.startDate) {\n props.startDate = props.startDate && timeStampToDate(props.startDate);\n }\n },\n\n isRange(el) {\n return el.type.includes('range') || el.multiple;\n },\n\n _toValue(val, ctx) {\n const value = ctx.el.formatDate(val || ''), {separator} = ctx.el,\n isRange = this.isRange(ctx.el);\n if (!value)\n return isRange ? (ctx.el.multiple ? [] : ['', '']) : value;\n else if (isRange)\n return value.split(separator);\n else\n return value;\n },\n\n toValue(formValue, ctx) {\n const el = ctx.el;\n if (el) {\n this.el = el;\n return this._toValue(formValue, ctx);\n }\n return formValue;\n },\n\n toFormValue(value, ctx) {\n if (ctx.el) {\n const v = ctx.el.parseDate(value);\n return this.isRange(ctx.el) ? v : v[0];\n } else {\n let isArr = Array.isArray(value), props = ctx.prop.props, parseValue, type = props.type || 'date';\n if (['daterange', 'datetimerange'].indexOf(type) !== -1) {\n if (isArr) {\n parseValue = value.map((time) => !time ? '' : timeStampToDate(time));\n } else {\n parseValue = ['', '']\n }\n } else if ('date' === type && props.multiple === true) {\n parseValue = toString(value);\n } else {\n parseValue = isArr ? (value[0] || '') : value;\n parseValue = !parseValue ? '' : timeStampToDate(parseValue);\n }\n return parseValue;\n }\n },\n mounted(ctx) {\n ctx.rule.value = this.toValue(ctx.$handle.getFormData(ctx), ctx);\n }\n}\n","import {creatorFactory} from '@form-create/core/src/index';\n\nconst name = 'hidden';\nexport default {\n name,\n maker: {\n [name]: (field, value) => creatorFactory(name)('', field, value)\n },\n render() {\n return [];\n }\n}\n","import 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","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}","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() {\n const form = this.form();\n if (form) {\n return new Promise((resolve, reject) => {\n form.validate().then(flag => {\n flag ? resolve(true) : reject(false);\n })\n });\n }\n return new Promise(v => v());\n },\n validateField(field) {\n const form = this.form();\n if (form) {\n return new Promise((resolve, reject) => {\n form.validateField(field, e => {\n e ? reject(e) : resolve(null);\n })\n })\n }\n return new Promise(v => v());\n },\n clearValidateState(ctx) {\n const fItem = this.vm.$refs[ctx.wrapRef];\n if (fItem) {\n fItem.validateMessage = '';\n fItem.validateState = '';\n }\n },\n tidyOptions(options) {\n ['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col'].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 formEl() {\n return h.$manager.form();\n },\n wrapEl(id) {\n const ctx = h.getFieldCtx(id);\n if (!ctx) return;\n return h.vm.$refs[ctx.wrapRef];\n },\n validate(callback) {\n return new Promise((resolve, reject) => {\n const forms = api.children;\n const all = [h.$manager.validate()];\n forms.forEach(v => {\n all.push(v.validate());\n })\n Promise.all(all).then(() => {\n resolve(true);\n callback && callback(true);\n }).catch((e) => {\n reject(e);\n callback && callback(e);\n h.vm.$emit('validate-fail', e, {api});\n })\n });\n },\n validateField: (field, callback) => {\n return new Promise((resolve, reject) => {\n const ctx = h.getFieldCtx(field);\n if (!ctx) return;\n const sub = h.subForm[ctx.id];\n const all = [h.$manager.validateField(ctx.id)];\n toArray(sub).forEach(v => {\n all.push(v.validate().catch(() => {\n return Promise.reject('子表单验证未通过');\n }));\n })\n Promise.all(all).then(() => {\n resolve(null);\n callback && callback(null);\n }).catch((e) => {\n reject(e);\n callback && callback(e);\n h.vm.$emit('validate-field-fail', e, {field, api});\n })\n });\n },\n clearValidateState(fields, clearSub = true) {\n api.helper.tidyFields(fields).forEach(field => {\n if (clearSub) this.clearSubValidateState(field);\n h.getCtxs(field).forEach(ctx => {\n h.$manager.clearValidateState(ctx);\n });\n });\n },\n clearSubValidateState(fields) {\n api.helper.tidyFields(fields).forEach(field => {\n h.getCtxs(field).forEach(ctx => {\n const subForm = h.subForm[ctx.id];\n if (!subForm) return;\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.clearValidateState();\n })\n } else if (subForm) {\n subForm.clearValidateState();\n }\n });\n })\n },\n btn: {\n loading: (loading = true) => {\n api.submitBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.submitBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.submitBtnProps({show: !!isShow});\n }\n },\n resetBtn: {\n loading: (loading = true) => {\n api.resetBtnProps({loading: !!loading});\n },\n disabled: (disabled = true) => {\n api.resetBtnProps({disabled: !!disabled});\n },\n show: (isShow = true) => {\n api.resetBtnProps({show: !!isShow});\n }\n },\n submitBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.submitBtn, true);\n extend(btn, props);\n h.options.submitBtn = btn;\n api.refreshOptions();\n },\n resetBtnProps: (props = {}) => {\n let btn = tidyBtnProp(h.options.resetBtn, false);\n extend(btn, props);\n h.options.resetBtn = btn;\n api.refreshOptions();\n },\n submit(successFn, failFn) {\n api.validate((valid) => {\n if (valid) {\n let formData = api.formData();\n if (is.Function(successFn))\n invoke(() => successFn(formData, this));\n else {\n is.Function(h.options.onSubmit) && invoke(() => h.options.onSubmit(formData, this));\n h.vm.$emit('submit', formData, this);\n }\n } else {\n is.Function(failFn) && invoke(() => failFn(this, ...arguments));\n }\n });\n },\n });\n\n return api;\n}\n","import components from '../components';\nimport parsers from '../parsers';\nimport alias from './alias';\nimport manager from './manager';\nimport FormCreateFactory from '@form-create/core/src/index';\nimport makers from './maker';\nimport '../style/index.css';\nimport extendApi from './api';\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias);\n\n components.forEach(component => {\n FormCreate.component(component.name, component);\n });\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser);\n });\n\n Object.keys(makers).forEach(name => {\n FormCreate.maker[name] = makers[name];\n });\n}\n\nexport default function 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","mergeFn","reduce","indexOf","Array","e","concat","f","g","h","i","getSlot","slots","exclude","keys","lst","name","push","props","formCreateInject","type","required","value","watch","handler","update","deep","data","trueValue","methods","options","opt","isArray","onInput","n","$emit","filter","label","map","v","undefined","checked","option","created","render","prop","index","$slots","mounted","$refs","el","toArray","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","NAME","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","_this","toString","readonly","clearable","makeGroup","children","makeBtn","makeItem","valid","Error","makeIcons","icons","makeHandleIcon","makeRemoveIcon","_this2","handleClick","_this3","handleRemove","makeFiles","_this4","fileIcon","size","makeImages","_this5","_this6","splice","frameLoad","iframe","api","_this7","set","get","fn","$on","onClose","console","log","makeFooter","$props","node","_this8","$nextTick","_this9","frame","contentWindow","mask","footerHide","closeModal","v2","initial","is","arg","Undef","Element","_typeof","nodeType","trueArray","getType","str","exec","empty","hasProperty","rule","k","forEach","t","functional","ctx","slot","slotName","treeData","setStatus","$forceUpdate","_data","$set","id","list","on","tree","parseFile","file","url","getFileName","split","pop","createUpload","uploadType","uploadList","cacheFiles","showUploadList","defaultFileList","upload","every","status","o","isDisabled","makeProgress","percent","percentage","hideInfo","$scopedSlots","vm","showProgress","makeUpload","isShow","display","imgUpIcon","files","handleCancel","$watch","target","Vue","$del","deepExtend","origin","mode","isArr","clone","nst","_clone","getRule","__json","__origin","__ctrl","deepCopy","extend","rules","expand","button","max","min","sortBtn","defaultValue","syncDisabled","onBeforeAdd","parse","len","cacheRule","cacheValue","sort","computed","formRule","immediate","item","$f","formData","deferSyncValue","setValue","once","expandRule","total","addRule","removeRule","input","_value","cache","JSON","stringify","form","coverValue","emit","copyRules","submitBtn","resetBtn","defVal","add$f","$delete","add","del","addIcon","delIcon","sortUpIcon","changeSort","sortDownIcon","makeIcon","_this10","btn","emitEvent","args","$form","Type","_this11","inFor","extendOption","checkbox","radio","select","group","getRuleInject","parent","$parent","$FormCreate","FormCreate","componentName","model","provide","$pfc","inject","subForm","destroyed","validate","renderRule","ctxInject","updateValue","isMore","formCreate","_refresh","_renderRule","_updateValue","forceCoverValue","initOptions","refresh","$handle","reloadRule","beforeCreate","$options","propsData","fapi","rmSubForm","sub","getSubForm","idx","addSubForm","mergeProps","objects","_normalMerge","_toArrayMerge","_functionalMerge","propsMerge","arrA","arrB","event","hook","fn1","fn2","keyAttrs","arrayAttrs","normalAttrs","format","msg","err","error","PREFIX","SUFFIX","$T","$TX","FUNCTION","toJson","obj","space","_isVue","__emit","makeFn","parseFn","trim","flag","replace","__inject","parseJson","json","enumerable","writable","configurable","copyRule","mergeRule","merge","array","normal","r","funcProxy","that","proxy","defineProperties","byCtx","__fc__","__origin__","invoke","def","logError","creatorFactory","init","maker","Creator","effect","hidden","appendProto","attrs","setProp","constructor","commonMaker","create","make","createTmp","template","makerFactory","factory","copy","toCase","lower","toLocaleUpperCase","toLowerCase","toLine","line","toLocaleLowerCase","substr","uniqueId","Math","random","Date","now","deepSet","to","Render","handle","fc","$manager","vNode","CreateNode","initCache","initRender","clearCacheAll","clearCache","use","setCache","vnode","getCache","useCache","tempList","clearOrgChildren","initOrgChildren","ctxs","orgChildren","parser","loadChildren","getTypeSlot","_fn","vn","$h","$createElement","beforeRender","renderList","renderSlot","renderName","renderId","renderField","container","renderCtx","makeVm","getInjectData","mergeGlobal","global","cacheConfig","originType","trueType","setOptions","optionsTo","setTempProps","injectProp","injectKeys","renderTemp","compile","warn","tip","parseSide","side","renderSides","temp","prefix","suffix","cacheFlag","_type","none","renderChildren","initProp","tidyRule","ctxProp","preview","makeWrap","custom","mergeProp","onMounted","exportEl","$el","__rule__","getFormData","callback","expression","isRm","child","rmCtx","defaultRender","component","makeComponent","alias","aliasMap","useRender","EVENT","RuleContext","wrapRef","linkOn","root","ctrlRule","payload","updateType","updateKey","effectData","clearEffectData","setParser","check","unwatch","un","unlink","link","appendLink","watchTo","watchCtx","rmCtrl","deleted","$render","$api","ctrl","rm","_rm","noWatch","updated","condition","findCtrl","isCtrl","strFn","toEmpty","BaseParser","toFormValue","toValue","formValue","noneKey","Handler","watching","loading","reloading","noWatchFn","deferSyncFn","isMounted","appendData","providers","cycleLoad","loadedId","nextTick","changeStatus","pageEnd","nextReload","lifecycle","bus","initData","manager","extendApi","tidyFields","fields","getCtxs","allSubForm","subs","getFieldCtx","appendValue","getValue","fieldCtx","removeField","getCtx","destroy","parentNode","removeChild","$destroy","append","after","prepend","state","hiddenStatus","displayStatus","all","nameCtx","bind","updateOptions","onSubmit","sync","refreshOptions","hideForm","hide","clearChangeStatus","updateRule","updateRules","mergeRules","setEffect","attr","updateValidate","updateValidates","validates","refreshValidate","resetFields","method","trigger","$once","nextRefresh","changeValue","changeField","Api","getBody","xhr","text","responseText","response","fetch","XMLHttpRequest","action","onerror","onError","onload","getError","onSuccess","open","dataType","FormData","setRequestHeader","withCredentials","headers","send","useProvider","usePage","loadRule","__init","parseInjectEvent","injectEvent","parseEventLst","parseEvent","parseEmit","emitPrefix","emitKey","eventName","eventInject","fieldKey","_inject","self","unshift","useInject","page","first","limit","ceil","parseInt","pageLoad","pageFn","clearNextTick","clearTimeout","bindNextTick","setTimeout","parseRule","_rule","fullRule","loadFn","loadCtrl","control","syncProp","pre","_loadRule","syncForm","isRepeat","ruleEffect","repeat","isCopy","isInit","bindParser","setCtx","_preIndex","preIndex","refreshUpdate","defineProperty","valueHandle","refreshControl","useCtrl","controls","getCtrl","handleFn","isHidden","hideLst","reverse","clearValidateState","ruleCon","ctrlCtx","_reloadRule","useLoader","setFlag","setFormData","syncValue","valueChange","isQuote","isChange","refreshRule","useInput","getNameCtx","setIdCtx","rmIdCtx","getParser","parsers","rmSub","watchEffect","useContext","_mounted","useLifecycle","ps","_c","components","arr","onEffect","provider","used","_used","_ctx$rule","_ctx$rule$effect","emitEffect","getEffect","p","getProp","clearProp","useEffect","CreateNodeFactory","setVm","tag","isReservedTag","nativeOn","Node","domProps","innerHTML","context","nodes","createManager","proto","CustomManager","Manager","mergeOptionsRule","$r","mergeOptions","tidyOptions","getDefaultOptions","componentValidate","load","validator","$required","message","parseVal","_","run","parseOpt","body","loaded","join","_vue","window","nameProp","_getEl","querySelector","mountForm","$vm","$data","$mount","instance","FormCreateFactory","fragment","directives","$provider","globalConfig","getApi","directive","register","componentAlias","base","formCreateParser","$vnode","install","_opt","inherit","_config","useAttr","version","ui","mount","remove","Handle","isSub","_installedFormCreate","$formCreate","html","timeStampToDate","timeStamp","date","startDate","isRange","includes","multiple","_toValue","formatDate","separator","parseDate","parseValue","time","datePicker","idate","autosize","minRows","rows","sliderRange","range","parseFloat","scopedSlots","col","span","row","slider","rate","cascader","colorPicker","timePicker","inputNumber","formItem","autoComplete","object","iviewConfig","resetBtnType","resetBtnIcon","infoIcon","tidy","isFalse","Promise","resolve","reject","then","validateField","fItem","validateMessage","validateState","show","tidyBool","info","wrap","placement","wordWrap","setSize","inline","labelPosition","labelWidth","showMessage","autocomplete","gutter","innerText","click","submit","preventDefault","className","makeFormBtn","makeRow","uni","isTitle","_col","makeInfo","makeCol","titleProp","infoProp","align","makeSubmitBtn","makeResetBtn","marginLeft","fApi","names","auto","number","color","useAlias","types","image","uploadFileOne","uploadImageOne","m","uploadImage","uploadFile","useUpload","useTree","selectMultiple","selectOne","useSelect","frameInputs","frameFiles","frameImages","frameInputOne","frameFileOne","frameImageOne","frameInput","frameFile","frameImage","useFrame","timeRange","useTimePicker","tidyBtnProp","formEl","wrapEl","forms","clearSub","clearSubValidateState","submitBtnProps","resetBtnProps","successFn","failFn","makers","process"],"mappings":"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"}