icarys-form-create-vant 1.0.1 → 1.0.3

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":"index.min.js","sources":["../src/vant/src/components/calendar.jsx","../src/vant/src/core/utils.js","../src/vant/src/components/cascader.jsx","../src/vant/src/components/checkbox.jsx","../src/vant/src/components/select.jsx","../src/vant/src/components/uploader.jsx","../src/vant/src/components/radio.jsx","../src/vant/src/components/datePicker.jsx","../src/vant/src/components/timePicker.jsx","../src/vant/src/components/group.jsx","../src/vant/src/components/icon/IconWarning.vue","../src/vant/src/components/icon/IconWarning.vue?vue&type=template&id=78ef5f99&lang.js","../src/vant/src/components/index.js","../src/vant/src/parsers/index.js","../src/vant/src/parsers/hidden.js","../src/vant/src/parsers/row.js","../src/vant/src/core/alias.js","../src/vant/src/core/manager.js","../src/vant/src/core/config.js","../src/vant/src/core/api.js","../node_modules/style-inject/dist/style-inject.es.js","../src/vant/src/core/provider.js","../src/vant/src/core/index.js","../src/vant/src/index.js","../src/core/src/frame/attrs.js","../src/core/src/frame/util.js","../src/core/src/components/formCreate.js","../src/core/src/factory/creator.js","../src/core/src/factory/maker.js","../src/core/src/frame/fetch.js","../src/core/src/frame/api.js","../src/core/src/render/index.js","../src/core/src/render/cache.js","../src/core/src/render/render.js","../src/core/src/handler/page.js","../src/core/src/factory/context.js","../src/core/src/handler/loader.js","../src/core/src/handler/input.js","../src/core/src/factory/parser.js","../src/core/src/handler/context.js","../src/core/src/handler/index.js","../src/core/src/handler/inject.js","../src/core/src/handler/render.js","../src/core/src/handler/lifecycle.js","../src/core/src/handler/effect.js","../src/core/src/components/fragment.js","../src/core/src/factory/node.js","../src/core/src/factory/manager.js","../src/core/src/frame/provider.js","../src/core/src/parser/html.js","../src/core/src/frame/dataDriver.js","../src/core/src/frame/language.js","../src/core/src/frame/index.js","../src/utils/lib/type.js","../src/utils/lib/modify.js","../src/utils/lib/deepextend.js","../src/utils/lib/extend.js","../src/utils/lib/console.js","../src/utils/lib/json.js","../src/utils/lib/unique.js","../src/utils/lib/debounce.js","../src/utils/lib/deepset.js","../src/utils/lib/slot.js","../src/utils/lib/toarray.js","../src/utils/lib/todate.js","../src/utils/lib/toline.js","../src/utils/lib/topromise.js","../src/utils/lib/tostring.js"],"sourcesContent":["import {computed, defineComponent, ref, toRef, watch} from 'vue';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport dayjs from 'dayjs';\n\nconst NAME = 'fcCalendar';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n placeholder: String,\n formCreateInject: Object,\n disabled: Boolean,\n clearable: Boolean,\n type: String,\n modelValue: [String, Array],\n minDate: [String, Date],\n maxDate: [String, Date],\n },\n emits: ['update:modelValue', 'change', 'fc.el'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n const formCreateInject = toRef(props, 'formCreateInject');\n const inputValue = ref(modelValue.value);\n\n watch(() => modelValue.value, (n) => {\n inputValue.value = n;\n })\n\n const formatter = (date) => {\n return dayjs(date).format('YYYY-MM-DD');\n }\n const toDate = (str) => {\n return dayjs(str).toDate();\n }\n\n const defaultDate = computed(() => {\n const value = modelValue.value;\n if (Array.isArray(value)) {\n return value.map(toDate);\n } else if (value) {\n return toDate(value);\n } else {\n return null;\n }\n })\n\n const dateRange = computed(() => {\n return {\n minDate: props.minDate ? dayjs(props.minDate).toDate() : undefined,\n maxDate: props.maxDate ? dayjs(props.maxDate).toDate() : undefined,\n }\n })\n\n const formatValue = (value) => {\n if (Array.isArray(value)) {\n inputValue.value = value.map(formatter);\n } else if (value) {\n inputValue.value = formatter(value);\n } else {\n inputValue.value = value;\n }\n }\n const onInput = () => {\n _.emit('update:modelValue', inputValue.value);\n _.emit('change', inputValue.value);\n }\n const strValue = {\n range() {\n return inputValue.value.length ? inputValue.value.join(' - ') : '';\n },\n multiple() {\n return inputValue.value.length ? (formCreateInject.value.t('selectedData', {length: inputValue.value.length}) ||`选择了 ${inputValue.value.length} 个日期`) : '';\n }\n }\n\n return {\n show,\n inputValue,\n defaultDate,\n dateRange,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm(value) {\n formatValue(value);\n show.value = false;\n onInput();\n },\n getStrValue() {\n if (inputValue.value) {\n return hasProperty(strValue, props.type) ? strValue[props.type]() : (inputValue.value || '');\n }\n return '';\n },\n clear(e) {\n e.stopPropagation();\n const value = Array.isArray(inputValue.value) ? [] : '';\n formatValue(value);\n onInput();\n }\n }\n },\n render() {\n const clearIcon = () => {\n return this.$props.clearable && !is.empty(this.inputValue) ?\n <i class=\"van-badge__wrapper van-icon van-icon-clear van-field__clear\"\n onClick={this.clear}></i> : undefined;\n }\n return <div class=\"_fc-calendar\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled}\n onClick={this.open}\n model-value={this.getStrValue()} isLink border={false} v-slots={{\n 'right-icon': clearIcon\n }}/>\n <van-calendar {...{...this.$attrs, ...this.dateRange}} show={this.show} onUpdate:show={v => (this.show = v)}\n type={this.type}\n onConfirm={this.confirm} defaultDate={this.defaultDate}/>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","export const normalizeOptions = (options) => {\n if (!options || !Array.isArray(options)) {\n return [];\n }\n return options.map(item => {\n const normalized = {...item};\n if (normalized.label !== undefined && normalized.text === undefined) {\n normalized.text = normalized.label;\n }\n if (normalized.children && Array.isArray(normalized.children)) {\n normalized.children = normalizeOptions(normalized.children);\n }\n return normalized;\n })\n};\n","import {computed, defineComponent, ref, toRef, watch} from 'vue';\nimport {normalizeOptions} from '../core/utils';\n\nconst NAME = 'fcCascader';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n placeholder: String,\n disabled: Boolean,\n clearable: Boolean,\n fieldNames: Object,\n modelValue: [String, Number],\n options: Array,\n minDate: [String, Date],\n maxDate: [String, Date],\n },\n emits: ['update:modelValue', 'fc.el', 'change'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n const fieldNames = toRef(props, 'fieldNames', {});\n const options = computed(() => {\n if (fieldNames?.value?.text) {\n return props.options || [];\n } else {\n return normalizeOptions(props.options || []);\n }\n })\n\n const findOptions = (options, value, path) => {\n for (let i = 0; i < options.length; i++) {\n if (options[i][fieldNames.value.value || 'value'] === value) {\n return [...path, options[i]];\n } else if (options[i][fieldNames.value.children || 'children']) {\n const find = findOptions(options[i][fieldNames.value.children || 'children'], value, [...path, options[i]]);\n if (find) {\n return find;\n }\n }\n }\n }\n\n const updateInputValue = (n) => {\n if (n == null || n === '') {\n return '';\n }\n const path = findOptions(options.value, n, []);\n return path ? path.map((option) => option[fieldNames.value.text || 'text']).join(' / ') : n;\n }\n\n const inputValue = ref(updateInputValue(modelValue.value));\n\n watch(() => modelValue.value, (n) => {\n inputValue.value = updateInputValue(n);\n });\n\n watch(() => options.value, () => {\n if (modelValue.value != null && modelValue.value !== '') {\n inputValue.value = updateInputValue(modelValue.value);\n }\n }, {deep: true});\n\n const onInput = (val) => {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n }\n\n return {\n show,\n inputValue,\n options,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm({selectedOptions, value}) {\n inputValue.value = selectedOptions.map((option) => option[fieldNames.value.text || 'text']).join(' / ');\n show.value = false;\n onInput(value);\n },\n clear(e) {\n e.stopPropagation();\n inputValue.value = '';\n onInput('');\n }\n }\n },\n render() {\n const clearIcon = () => {\n return this.$props.clearable && this.inputValue ?\n <i class=\"van-badge__wrapper van-icon van-icon-clear van-field__clear\"\n onClick={this.clear}></i> : undefined;\n }\n\n return <div class=\"_fc-cascader\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled}\n onClick={this.open}\n model-value={this.inputValue} border={false} isLink v-slots={{\n 'right-icon': clearIcon\n }}/>\n <van-popup show={this.show} onUpdate:show={(v) => this.show = v} round position=\"bottom\">\n <van-cascader\n {...this.$attrs}\n modelValue={this.modelValue}\n fieldNames={this.fieldNames}\n options={this.options}\n onClose={() => this.show = false}\n onFinish={this.confirm}\n />\n </van-popup>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","import {defineComponent, toRef} from 'vue';\n\nconst NAME = 'fcCheckbox';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n modelValue: Array,\n options: Array,\n },\n emits: ['update:modelValue', 'change'],\n setup(props, _) {\n const modelValue = toRef(props, 'modelValue', []);\n const options = toRef(props, 'options');\n\n return {\n options,\n modelValue,\n onInput(val) {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n },\n }\n },\n render() {\n return <van-checkbox-group direction=\"horizontal\" {...this.$attrs} modelValue={Array.isArray(this.modelValue) ? this.modelValue : []}\n onUpdateModelValue={this.onInput}>\n {(this.options || []).map(opt => {\n const tmp = {...opt};\n const {text, value} = opt;\n delete tmp.text;\n delete tmp.value;\n return <van-checkbox name={value} shape=\"square\" {...tmp}>{text || opt.label || value}</van-checkbox>\n })}\n </van-checkbox-group>\n }\n});\n","import {computed, defineComponent, ref, toRef} from 'vue';\nimport {normalizeOptions} from '../core/utils';\n\nconst NAME = 'fcSelect';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n placeholder: String,\n columnsFieldNames: Object,\n modelValue: [String, Number, Boolean],\n options: Array,\n },\n emits: ['update:modelValue', 'fc.el', 'change'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n const fieldNames = toRef(props, 'columnsFieldNames', {});\n const options = computed(() => {\n if (fieldNames?.value?.text) {\n return props.options || [];\n } else {\n return normalizeOptions(props.options || []);\n }\n })\n\n const inputValue = computed(() => {\n if (modelValue.value == null || modelValue.value === '') {\n return '';\n }\n for (let i = 0; i < (options.value || []).length; i++) {\n if (options.value[i][fieldNames.value.value || 'value'] === modelValue.value) {\n return options.value[i][fieldNames.value.text || 'text'];\n }\n }\n return modelValue.value;\n });\n\n const onInput = (val) => {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n }\n\n return {\n show,\n inputValue,\n options,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm({selectedValues}) {\n onInput(selectedValues[0]);\n show.value = false;\n },\n }\n },\n render() {\n return <div class=\"_fc-select\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled} onClick={this.open}\n model-value={this.inputValue} isLink/>\n <van-popup show={this.show} onUpdate:show={(v) => this.show = v} round position=\"bottom\">\n <van-picker\n {...this.$attrs}\n modelValue={[this.modelValue]}\n columnsFieldNames={this.columnsFieldNames}\n columns={this.options}\n onCancel={() => this.show = false}\n onConfirm={this.confirm}\n />\n </van-popup>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","import {defineComponent, ref, toRef, watch} from 'vue';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'fcUploader';\n\nfunction parseFile(file, i) {\n if (typeof file === 'object') {\n return file;\n }\n return {\n url: file,\n is_string: true,\n name: getFileName(file),\n uid: i\n };\n}\n\nfunction parseUpload(file) {\n return {...file, file, value: file};\n}\n\nfunction getFileName(file) {\n return ('' + file).split('/').pop()\n}\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n formCreateInject: Object,\n modelValue: [Array, String, Object],\n afterRead: Function,\n action: String,\n headers: Object,\n method: String,\n data: Object,\n uploadName: String,\n onSuccess: Function,\n onError: Function,\n maxCount: Number,\n },\n emits: ['update:modelValue', 'delete'],\n setup(props, _) {\n\n const afterRead = toRef(props, 'afterRead');\n const modelValue = toRef(props, 'modelValue', []);\n\n const fileList = ref(toArray(modelValue.value).map(parseFile).map(parseUpload));\n\n watch(() => modelValue.value, (n) => {\n fileList.value = toArray(n).map(parseFile).map(parseUpload);\n })\n\n const uploadValue = () => {\n let files = fileList.value.map((v) => v.is_string ? v.url : (v.value || v.url)).filter((url) => url !== undefined);\n _.emit('update:modelValue', props.maxCount === 1 ? (files[0] || '') : files);\n };\n\n return {\n fileList,\n modelValue,\n onDelete(file) {\n uploadValue();\n _.emit('delete', file);\n },\n uploadFile(file) {\n file.status = 'uploading';\n if (afterRead.value) {\n return afterRead.value(file);\n } else {\n const data = props.data || {};\n data[props.uploadName || 'file'] = file.file;\n props.formCreateInject.api.fetch({\n action: props.action,\n dataType: 'formData',\n source: 'upload',\n headers: props.headers || {},\n method: props.method || 'post',\n data\n }).then(res => {\n file.status = 'success';\n props.onSuccess && props.onSuccess(res, file);\n uploadValue();\n }).catch(e => {\n file.status = 'failed';\n file.message = this.formCreateInject.t('uploadFail') || '上传失败';\n props.onError && props.onError(e, file);\n });\n }\n }\n }\n },\n render() {\n return <van-uploader {...this.$attrs} model-value={this.fileList} maxCount={this.maxCount}\n onUpdate:model-value={(v) => this.fileList = v}\n afterRead={this.uploadFile} onDelete={this.onDelete} v-slots={this.$slots}/>\n }\n\n});\n","import {defineComponent, toRef} from 'vue';\n\nconst NAME = 'fcRadio';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n modelValue: [String, Number, Boolean],\n options: Array,\n },\n emits: ['update:modelValue', 'change'],\n setup(props, _) {\n const modelValue = toRef(props, 'modelValue', []);\n const options = toRef(props, 'options');\n\n return {\n options,\n modelValue,\n onInput(val) {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n },\n }\n },\n render() {\n return <van-radio-group direction=\"horizontal\" {...this.$attrs} modelValue={this.modelValue}\n onUpdateModelValue={this.onInput}>\n {(this.options || []).map(opt => {\n const tmp = {...opt};\n const {text, value} = opt;\n delete tmp.text;\n delete tmp.value;\n return <van-radio name={value} {...tmp}>{text || opt.label || value}</van-radio>\n })}\n </van-radio-group>\n }\n});\n","import {computed, defineComponent, ref, toRef} from 'vue';\nimport dayjs from 'dayjs';\n\nconst NAME = 'fcDatePicker';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n clearable: Boolean,\n placeholder: String,\n modelValue: [String, Number],\n minDate: [String, Date],\n maxDate: [String, Date],\n },\n emits: ['update:modelValue', 'fc.el', 'change'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n\n const formValue = computed(() => {\n if (modelValue.value == null || modelValue.value === '') {\n return [];\n }\n return modelValue.value.split('-');\n });\n\n const dateRange = computed(() => {\n return {\n minDate: props.minDate ? dayjs(props.minDate).toDate() : undefined,\n maxDate: props.maxDate ? dayjs(props.maxDate).toDate() : undefined,\n }\n })\n\n const onInput = (val) => {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n }\n\n return {\n show,\n formValue,\n dateRange,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm({selectedValues}) {\n onInput(selectedValues.join('-'));\n show.value = false;\n },\n clear(e) {\n e.stopPropagation();\n onInput('');\n }\n }\n },\n render() {\n const clearIcon = () => {\n return this.$props.clearable && this.modelValue ?\n <i class=\"van-badge__wrapper van-icon van-icon-clear van-field__clear\"\n onClick={this.clear}></i> : undefined;\n }\n return <div class=\"_fc-date-picker\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled}\n onClick={this.open}\n model-value={this.modelValue} border={false} isLink v-slots={{\n 'right-icon': clearIcon\n }}/>\n <van-popup show={this.show} onUpdate:show={(v) => this.show = v} round position=\"bottom\">\n <van-date-picker\n columnsType={['year', 'month', 'day']}\n {...{...this.$attrs, ...this.dateRange}}\n modelValue={this.formValue}\n onConfirm={this.confirm}\n onCancel={() => this.show = false}\n />\n </van-popup>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","import {computed, defineComponent, ref, toRef} from 'vue';\n\nconst NAME = 'fcTimePicker';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n clearable: Boolean,\n placeholder: String,\n modelValue: [String, Number],\n },\n emits: ['update:modelValue', 'fc.el', 'change'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n\n const formValue = computed(() => {\n if (modelValue.value == null || modelValue.value === '') {\n return [];\n }\n return modelValue.value.split(':');\n });\n\n const onInput = (val) => {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n }\n\n return {\n show,\n formValue,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm({selectedValues}) {\n onInput(selectedValues.join(':'));\n show.value = false;\n },\n clear(e) {\n e.stopPropagation();\n onInput('');\n }\n }\n },\n render() {\n const clearIcon = () => {\n return this.$props.clearable && this.modelValue ?\n <i class=\"van-badge__wrapper van-icon van-icon-clear van-field__clear\"\n onClick={this.clear}></i> : undefined;\n }\n return <div class=\"_fc-time-picker\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled}\n onClick={this.open}\n model-value={this.modelValue} border={false} isLink v-slots={{\n 'right-icon': clearIcon\n }}/>\n <van-popup show={this.show} onUpdate:show={(v) => this.show = v} round position=\"bottom\">\n <van-time-picker\n columnsType={['hour', 'minute']}\n {...this.$attrs}\n modelValue={this.formValue}\n onConfirm={this.confirm}\n onCancel={() => this.show = false}\n />\n </van-popup>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport {defineComponent, markRaw, nextTick, watch} from 'vue';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\nimport {toPromise} from '@form-create/utils';\n\nconst NAME = 'fcGroup';\n\n\nexport default defineComponent({\n name: NAME,\n props: {\n field: String,\n rule: Array,\n expand: Number,\n options: Object,\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 modelValue: {\n type: Array,\n default: () => []\n },\n defaultValue: Object,\n sortBtn: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined\n },\n title: {\n type: [String, Function],\n default: null\n },\n type: {\n type: String,\n default: 'default'\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n formCreateInject: Object,\n parse: Function,\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n sort: [],\n form: markRaw(this.formCreateInject.form.$form())\n }\n },\n emits: ['update:modelValue', 'change', 'itemMounted', 'remove', 'add'],\n watch: {\n rule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n expand(n) {\n let d = n - this.modelValue.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n modelValue: {\n handler(n) {\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, true);\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 deep: true,\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('update:modelValue', 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] && 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\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.cacheRule[key].$f && this.cacheRule[key].$f.coverValue(value);\n this.cache(key, value);\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.rule || []);\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.cacheRule[++this.len] = {rule, options};\n this.sort = Object.keys(this.cacheRule);\n if (emit) {\n 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 nextTick(() => {\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n delete this.cacheRule[key];\n delete this.cacheValue[key];\n this.sort = Object.keys(this.cacheRule);\n if (emit) {\n nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.modelValue)) {\n return;\n }\n const value = [...this.modelValue];\n value.push(this.defaultValue ? deepCopy(this.defaultValue) : (this.field ? null : {}));\n this.input(value);\n },\n del(index, key) {\n if (this.disabled) {\n return;\n }\n const del = () => {\n this.removeRule(key, true);\n const value = [...this.modelValue];\n value.splice(index, 1);\n this.input(value);\n }\n toPromise(this.onBeforeRemove(this.modelValue, index)).then(res => {\n if (false !== res) {\n del();\n }\n })\n },\n addIcon(key) {\n return <div class=\"_fc-m-group-btn _fc-m-group-plus-minus\" onClick={this.add}></div>;\n },\n delIcon(index, key) {\n return <div class=\"_fc-m-group-btn _fc-m-group-plus-minus _fc-m-group-minus\"\n onClick={() => this.del(index, key)}></div>\n },\n sortUpIcon(index) {\n return <div class=\"_fc-m-group-btn _fc-m-group-arrow _fc-m-group-up\"\n onClick={() => this.changeSort(index, -1)}></div>\n },\n sortDownIcon(index) {\n return <div class=\"_fc-m-group-btn _fc-m-group-arrow _fc-m-group-down\"\n onClick={() => this.changeSort(index, 1)}></div>\n },\n changeSort(index, sort) {\n const a = this.sort[index];\n this.sort[index] = this.sort[index + sort];\n this.sort[index + sort] = a;\n this.formCreateInject.subForm(this.sort.map(k=>{\n return this.cacheRule[k].$f;\n }));\n this.formData(0);\n },\n sortIcon(index, total) {\n const canMoveUp = index > 0;\n const canMoveDown = index < total - 1;\n\n if (!canMoveUp && !canMoveDown) {\n return null;\n }\n\n if (canMoveUp && canMoveDown) {\n // 显示合并的上下箭头按钮\n return <div class=\"_fc-m-group-btn _fc-m-group-sort\">\n <div class=\"_fc-m-group-sort-up\" onClick={() => this.changeSort(index, -1)}></div>\n <div class=\"_fc-m-group-sort-down\" onClick={() => this.changeSort(index, 1)}></div>\n </div>;\n }\n\n if (canMoveUp) {\n return this.sortUpIcon(index);\n }\n\n if (canMoveDown) {\n return this.sortDownIcon(index);\n }\n },\n makeIcon(total, index, key) {\n if (this.$slots.button) {\n return this.$slots.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) {\n const sortBtn = this.sortIcon(index, total);\n if (sortBtn) {\n btn.push(sortBtn);\n }\n }\n return btn;\n },\n expandRule(n) {\n for (let i = 0; i < n; i++) {\n this.modelValue.push(this.field ? null : {});\n }\n this.input([...this.modelValue]);\n },\n getTitle(index, key) {\n if (typeof this.title === 'function') {\n return this.title(index, this.modelValue[index], key);\n }\n if (typeof this.title === 'string') {\n return this.title.replace('{index}', index + 1);\n }\n return false;\n }\n },\n created() {\n const d = (this.expand || 0) - this.modelValue.length;\n for (let i = 0; i < this.modelValue.length; i++) {\n this.addRule(i);\n }\n if (d > 0) {\n this.expandRule(d);\n }\n },\n render() {\n const keys = this.sort;\n const button = this.button;\n const Type = this.form;\n const disabled = this.disabled;\n const isCardType = this.type === 'card';\n\n const children = keys.length === 0 ?\n (this.$slots.default ? (this.$slots.default({\n vm: this,\n add: this.add\n })) : <div key={'a_def'} class=\"_fc-m-group-plus-minus _fc-m-group-add fc-clock\"\n onClick={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 const title = this.getTitle(index, key);\n\n if (isCardType) {\n return <div class=\"_fc-m-group-container\" key={key}>\n <div class=\"_fc-m-group-header\">\n {title === false ? <div class=\"_fc-m-group-idx\">{index + 1}</div> : null}\n {title !== false ? <div class=\"_fc-m-group-title\">{title}</div> : null}\n <div class=\"_fc-m-group-handle fc-clock\">\n {(btn.length) ? btn : null}\n </div>\n </div>\n <div class=\"_fc-m-group-content\">\n <Type\n key={key}\n {...{\n disabled,\n 'onUpdate:modelValue': (formData) => this.formData(key, formData),\n 'onUpdate:api': ($f) => this.add$f(index, key, $f),\n inFor: true,\n modelValue: this.field ? {[this.field]: this._value(this.modelValue[index])} : this.modelValue[index],\n rule,\n option: options,\n extendOption: true\n }}\n />\n </div>\n </div>\n } else {\n return <div class=\"_fc-m-group-container\" key={key}>\n <Type\n key={key}\n {...{\n disabled,\n 'onUpdate:modelValue': (formData) => this.formData(key, formData),\n 'onUpdate:api': ($f) => this.add$f(index, key, $f),\n inFor: true,\n modelValue: this.field ? {[this.field]: this._value(this.modelValue[index])} : this.modelValue[index],\n rule,\n option: options,\n extendOption: true\n }}\n />\n <div class=\"_fc-m-group-idx\">{index + 1}</div>\n {(btn.length) ? <div class=\"_fc-m-group-handle fc-clock\">{btn}</div> : null}\n </div>\n }\n });\n return <div key={'con'} class={'_fc-m-group ' + (disabled ? '_fc-m-group-disabled' : '') + (isCardType ? ' _fc-m-group-card' : '')}>{children}</div>\n }\n});\n","<template>\n <svg class=\"icon\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"currentColor\"\n d=\"M512 64a448 448 0 110 896 448 448 0 010-896zm0 832a384 384 0 000-768 384 384 0 000 768zm48-176a48 48 0 11-96 0 48 48 0 0196 0zm-48-464a32 32 0 0132 32v288a32 32 0 01-64 0V288a32 32 0 0132-32z\"></path>\n </svg>\n</template>\n\n<script>\nexport default {\n name: 'IconWarning'\n}\n</script>\n","<template>\n <svg class=\"icon\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"currentColor\"\n d=\"M512 64a448 448 0 110 896 448 448 0 010-896zm0 832a384 384 0 000-768 384 384 0 000 768zm48-176a48 48 0 11-96 0 48 48 0 0196 0zm-48-464a32 32 0 0132 32v288a32 32 0 01-64 0V288a32 32 0 0132-32z\"></path>\n </svg>\n</template>\n\n<script>\nexport default {\n name: 'IconWarning'\n}\n</script>\n","import subForm from '@form-create/component-subform/dist/index';\nimport Calendar from './calendar';\nimport Cascader from './cascader';\nimport Checkbox from './checkbox';\nimport Select from './select';\nimport Uploader from './uploader';\nimport Radio from './radio';\nimport DatePicker from './datePicker';\nimport TimePicker from './timePicker';\nimport Group from './group';\nimport IconWarning from './icon/IconWarning.vue';\n\n\nexport default [\n subForm,\n IconWarning,\n Calendar,\n Cascader,\n Checkbox,\n Radio,\n Select,\n DatePicker,\n TimePicker,\n Group,\n Uploader,\n]\n","import hidden from './hidden';\nimport row from './row';\nimport {hasProperty} from '@form-create/utils/lib/type';\n\n\nconst checkbox = {\n name: 'checkbox',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n}\n\nconst radio = {\n name: 'radio',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n}\n\nconst select = {\n name: 'select',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n}\n\nconst cascader = {\n name: 'cascader',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n}\n\nconst textarea = {\n name: 'textarea',\n mergeProp(ctx) {\n let {props} = ctx.prop;\n props.type = 'textarea';\n }\n}\n\n\nexport default [\n hidden,\n row,\n cascader,\n checkbox,\n radio,\n select,\n textarea,\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","export default {\n name: 'FcRow',\n render(_, ctx) {\n return ctx.vNode.col({props: {span: 24}}, {\n default:()=>[\n ctx.vNode.row(ctx.prop, _)\n ]\n })\n }\n}\n","const PRE = 'van';\nexport default {\n button: PRE + '-button',\n icon: PRE + '-icon',\n slider: PRE + '-slider',\n stepper: PRE + '-stepper',\n inputNumber: PRE + '-stepper',\n rate: PRE + '-rate',\n uploader: 'fc-uploader',\n upload: 'fc-uploader',\n cell: PRE + '-cell',\n timePicker: 'fc-time-picker',\n datePicker: 'fc-date-picker',\n 'switch': PRE + '-switch',\n select: 'fc-select',\n cascader: 'fc-cascader',\n calendar: 'fc-calendar',\n checkbox: 'fc-checkbox',\n radio: 'fc-radio',\n input: PRE + '-field',\n textarea: PRE + '-field',\n field: PRE + '-field',\n formItem: PRE + '-field',\n form: PRE + '-form',\n col: PRE + '-col',\n row: PRE + '-row',\n group: 'fc-group',\n array: 'fc-group',\n object: 'fc-sub-form',\n subForm: 'fc-sub-form',\n}\n","import getConfig 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';\nimport {showNotify} from 'vant';\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\nfunction tidyRule(rule) {\n const _rule = {...rule};\n delete _rule.children;\n return _rule;\n}\n\nexport default {\n validate() {\n const form = this.form();\n if (form) {\n return form.validate();\n } else {\n return new Promise(v => v());\n }\n },\n validateField(field) {\n return new Promise((resolve, reject) => {\n const form = this.form();\n if (form) {\n form.validate(field).then(resolve).catch(reject);\n } else {\n resolve();\n }\n });\n },\n clearValidateState(ctx) {\n const form = this.form();\n if (form) {\n return form.resetValidation(ctx.id);\n }\n },\n tidyOptions(options) {\n ['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col', 'title'].forEach(name => {\n tidyBool(options, name);\n })\n return options;\n },\n tidyRule({prop}) {\n tidy(prop, 'title');\n tidy(prop, 'info');\n prop.validate && prop.validate.forEach(item => {\n if (is.String(item.pattern)) {\n item.pattern = new RegExp(item.pattern);\n }\n });\n return prop;\n },\n mergeProp(ctx) {\n const def = {\n info: {\n icon: true,\n },\n title: {},\n col: {span: 24},\n wrap: {},\n };\n ['info', 'wrap', 'col', 'title'].forEach(name => {\n ctx.prop[name] = mergeProps([this.options[name] || {}, ctx.prop[name] || {}], def[name]);\n });\n },\n getDefaultOptions() {\n return getConfig();\n },\n adapterValidate(validate, validator) {\n if (validate.trigger === 'change') {\n validate.trigger = 'onChange';\n } else if (validate.trigger === 'blur') {\n validate.trigger = 'onBlur';\n }\n validate.validator = (value) => {\n return new Promise((resolve) => {\n const callback = (err) => {\n validate.message = err;\n if (err) {\n resolve(false);\n } else {\n resolve();\n }\n }\n return validator(value, callback);\n })\n }\n return validate;\n },\n update() {\n const form = this.options.form;\n this.rule = {\n props: {...form},\n on: {\n submit: (e) => {\n e.preventDefault();\n }\n },\n style: form.style,\n type: 'form',\n };\n },\n beforeRender() {\n const {key, ref} = this;\n const form = this.options.form;\n extend(this.rule, {key, ref, class: [form.className, form.class, 'form-create-m', this.$handle.preview ? 'is-preview' : '']});\n },\n render(children) {\n if (children.slotLen() && !this.$handle.preview) {\n children.setSlot(undefined, () => this.makeFormBtn());\n }\n return this.$r(this.rule, isFalse(this.options.row.show) ? children.getSlots() : [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) && rule.wrap.title !== false;\n const {col: _col} = this.rule.props;\n const cls = rule.wrap.class;\n delete rule.wrap.class;\n delete rule.wrap.title;\n const item = isFalse(rule.wrap.show) ? children : this.$r(mergeProps([rule.wrap, {\n props: {\n modelValue: ctx.rule.value,\n label: isTitle ? rule.title.title : undefined,\n ...tidyRule(rule.wrap || {}),\n name: ctx.id,\n rules: ctx.injectValidate(),\n },\n class: this.$render.mergeClass(cls || rule.className, 'fc-form-item'),\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), {input: () => children, ...(isTitle ? {label: () => this.makeInfo(rule, uni, ctx)} : {})});\n return (isFalse(_col) || isFalse(col.show)) ? item : this.makeCol(rule, uni, [item]);\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false;\n const title = rule.title;\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni, ctx) {\n const titleProp = {...rule.title};\n const infoProp = {...rule.info};\n const titleSlot = this.getSlot('title');\n const children = [titleSlot ? titleSlot({\n title: ctx.refRule?.__$title?.value,\n rule: ctx.rule,\n options: this.options\n }) : ctx.refRule?.__$title?.value];\n const flag = !isFalse(infoProp.show) && (infoProp.info || infoProp.native) && !isFalse(infoProp.icon);\n if (flag) {\n children[infoProp.align !== 'left' ? 'unshift' : 'push'](this.$r({\n type: infoProp.icon === true ? 'icon-warning' : infoProp.icon,\n style: 'width:1em;',\n }));\n }\n\n const _prop = mergeProps([titleProp, {\n props: tidyRule(titleProp),\n key: `${uni}tit`,\n class: 'fc-form-title',\n type: titleProp.type || 'span',\n on: {\n click: (...args) => {\n if (flag && infoProp.info) {\n showNotify({type: 'warning', message: ctx.refRule?.__$info?.value, duration: 1000});\n }\n this.$handle.targetHook(ctx, 'titleClick', {args});\n }\n }\n }]);\n\n delete _prop.props.show;\n delete _prop.props.title;\n delete _prop.props.native;\n\n return this.$r(_prop, children);\n },\n makeCol(rule, uni, children) {\n const col = rule.col;\n return this.$r({\n class: this.$render.mergeClass(col.class, 'fc-form-col'),\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: this.$render.mergeClass(row.class, 'fc-form-row'),\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 return this.$r({\n type: 'cell',\n class: 'fc-form-cell fc-form-footer',\n key: `${this.key}fb`\n }, vn);\n },\n\n makeResetBtn() {\n const resetBtn = {...this.options.resetBtn};\n const innerText = resetBtn.innerText || this.$handle.api.t('reset') || '重置';\n delete resetBtn.innerText;\n delete resetBtn.click;\n delete resetBtn.col;\n delete resetBtn.show;\n return this.$r({\n type: 'button',\n props: resetBtn,\n class: 'fc-reset-btn',\n style: {width: resetBtn.width},\n on: {\n click: () => {\n const fApi = this.$handle.api;\n this.options.resetBtn.click\n ? this.options.resetBtn.click(fApi)\n : fApi.resetFields();\n }\n },\n key: `${this.key}b2`,\n }, [innerText]);\n },\n makeSubmitBtn() {\n const submitBtn = {...this.options.submitBtn};\n const innerText = submitBtn.innerText || this.$handle.api.t('submit') || '提交';\n delete submitBtn.innerText;\n delete submitBtn.click;\n delete submitBtn.col;\n delete submitBtn.show;\n return this.$r({\n type: 'button',\n props: submitBtn,\n class: 'fc-submit-btn',\n style: {width: submitBtn.width},\n on: {\n click: () => {\n const fApi = this.$handle.api;\n this.options.submitBtn.click\n ? this.options.submitBtn.click(fApi)\n : fApi.submit().catch(() => {\n });\n }\n },\n key: `${this.key}b1`,\n }, [innerText]);\n }\n}\n","export default function getConfig() {\n return {\n form: {\n required: 'auto',\n labelAlign: 'right',\n inputAlign: 'right',\n },\n row: {\n show: true,\n gutter: 0,\n },\n submitBtn: {\n type: 'primary',\n loading: false,\n disabled: false,\n block: true,\n innerText: '',\n size: 'small',\n show: true,\n col: undefined,\n click: undefined,\n },\n resetBtn: {\n type: 'default',\n loading: false,\n disabled: false,\n block: true,\n innerText: '',\n size: 'small',\n show: false,\n col: undefined,\n click: undefined,\n },\n };\n}\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 return {\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.filter(v=>!v.isScope).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 h.emitEvent('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).filter(v=>!v.isScope).forEach(v => {\n all.push(v.validate());\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 return new Promise((resolve, reject) => {\n const promise = h.options.validateOnSubmit === false ? Promise.resolve() : api.validate();\n promise.then(() => {\n let formData = api.formData();\n h.beforeSubmit(formData).then(() => {\n is.Function(successFn) && invoke(() => successFn(formData, api));\n is.Function(h.options.onSubmit) && invoke(() => h.options.onSubmit(formData, api));\n h.vm.emit('submit', formData, api);\n resolve(formData);\n }).catch((e) => {})\n }).catch((...args) => {\n is.Function(failFn) && invoke(() => failFn(api, ...args));\n reject(...args)\n })\n });\n },\n };\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 is from '@form-create/utils/lib/type';\n\nconst required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n let _title = undefined;\n if (val.required === false) {\n inject.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n const validate = {\n required: true,\n validator(v) {\n updateMessage();\n return !is.empty(v);\n },\n trigger: ['onChange', 'onSubmit'],\n ...val,\n };\n const updateMessage = () => {\n const title = rule.__fc__.refRule.__$title?.value;\n if (_title === title) {\n return;\n }\n _title = title;\n if (!val.message) {\n validate.message = api.t('required', {title}) || (title + (api.getLocale() === 'en' ? ' is required' : '不能为空'));\n } else {\n const match = val.message.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n validate.message = api.t(match[1], {title});\n }\n }\n }\n updateMessage();\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\n\nexport default required\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 '../style/index.css';\nimport extendApi from './api';\nimport required from './provider';\nimport {Field} from 'vant';\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias);\n\n components.forEach(component => {\n FormCreate.component(component.name, component);\n });\n\n FormCreate.register(required);\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser);\n });\n\n if (Field.props) {\n Field.props.modelValue = {\n type: [String, Number, Array, Object, Boolean, Function],\n default: '',\n };\n }\n}\n\nexport default function VantFormCreate() {\n return FormCreateFactory({\n ui: 'process.env.UI',\n version: 'process.env.VERSION',\n manager,\n extendApi,\n install,\n isMobile: true,\n attrs: {\n normal: ['col', 'wrap'],\n key: ['title', 'info'],\n }\n });\n}\n","import VantFormCreate from './core/index';\n\nconst FormCreateMobile = VantFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreateMobile = FormCreateMobile;\n}\n\nconst maker = FormCreateMobile.maker;\n\nexport {maker}\n\nexport default FormCreateMobile;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'ignore', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'slotUpdate', 'computed', 'preview', 'component', 'cache', 'modelEmit'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep', 'renderSlots'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","import deepExtend from '@form-create/utils/lib/deepextend';\nimport 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 {isVNode} from 'vue';\nimport {upper} from '@form-create/utils/lib/toline';\nimport toCase from '@form-create/utils/lib/tocase';\n\nexport {parseJson, parseFn, toJson} from '@form-create/utils/lib/json';\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, mode) {\n return copyRules([rule], mode || false)[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\nexport function makeSlotBag() {\n const slotBag = {};\n const slotName = (n) => n || 'default';\n\n return {\n setSlot(slot, vnFn) {\n slot = slotName(slot);\n if (!vnFn || (Array.isArray(vnFn) && vnFn.length))\n return;\n if (!slotBag[slot]) slotBag[slot] = [];\n slotBag[slot].push(vnFn);\n },\n getSlot(slot, val) {\n slot = slotName(slot);\n const children = [];\n (slotBag[slot] || []).forEach(fn => {\n if (Array.isArray(fn)) {\n children.push(...fn);\n } else if (is.Function(fn)) {\n const res = fn(...(val || []));\n if (Array.isArray(res)) {\n children.push(...res);\n } else {\n children.push(res);\n }\n } else if (!is.Undef(fn)) {\n children.push(fn);\n }\n })\n return children;\n },\n getSlots() {\n const slots = {};\n Object.keys(slotBag).forEach(k => {\n slots[k] = (...args) => {\n return this.getSlot(k, args);\n }\n })\n return slots\n },\n slotLen(slot) {\n slot = slotName(slot);\n return slotBag[slot] ? slotBag[slot].length : 0;\n },\n mergeBag(bag) {\n if (!bag) return this;\n const slots = is.Function(bag.getSlots) ? bag.getSlots() : bag;\n if (Array.isArray(bag) || isVNode(bag)) {\n this.setSlot(undefined, () => bag);\n } else {\n Object.keys(slots).forEach(k => {\n this.setSlot(k, slots[k]);\n });\n }\n\n return this;\n }\n };\n}\n\nexport function toProps(rule) {\n const prop = {...(rule.props || {})};\n\n Object.keys(rule.on || {}).forEach(k => {\n if (k.indexOf('-') > 0) {\n k = toCase(k);\n }\n const name = `on${upper(k)}`;\n if (Array.isArray(prop[name])) {\n prop[name] = [...prop[name], rule.on[k]];\n } else if (prop[name]) {\n prop[name] = [prop[name], rule.on[k]];\n } else {\n prop[name] = rule.on[k];\n }\n })\n prop.key = rule.key;\n prop.ref = rule.ref;\n prop.class = rule.class;\n prop.id = rule.id;\n prop.style = rule.style;\n if (prop.slot) delete prop.slot;\n\n return prop;\n}\n\nexport function setPrototypeOf(o, proto) {\n Object.setPrototypeOf(o, proto);\n return o;\n}\n\n\nconst changeType = (a, b) => {\n if (typeof a === 'string') {\n return String(b);\n } else if (typeof a === 'number') {\n return Number(b);\n }\n return b;\n}\n\nexport const condition = {\n '==': (a, b) => {\n return JSON.stringify(a) === JSON.stringify(changeType(a, b));\n },\n '!=': (a, b) => {\n return !condition['=='](a, b);\n },\n '>': (a, b) => {\n return a > b;\n },\n '>=': (a, b) => {\n return a >= b;\n },\n '<': (a, b) => {\n return a < b;\n },\n '<=': (a, b) => {\n return a <= b;\n },\n on(a, b) {\n return a && a.indexOf && a.indexOf(changeType(a[0], b)) > -1;\n },\n notOn(a, b) {\n return !condition.on(a, b);\n },\n in(a, b) {\n return b && b.indexOf && b.indexOf(a) > -1;\n },\n notIn(a, b) {\n return !condition.in(a, b);\n },\n between(a, b) {\n return a > b[0] && a < b[1];\n },\n notBetween(a, b) {\n return a < b[0] || a > b[1];\n },\n empty(a) {\n return is.empty(a);\n },\n notEmpty(a) {\n return !is.empty(a);\n },\n pattern(a, b) {\n return new RegExp(b, 'g').test(a);\n }\n};\n\nexport function deepGet(val, split) {\n (Array.isArray(split) ? split : (split || '').split('.')).forEach(k => {\n if (val != null) {\n val = val[k];\n }\n });\n return val;\n}\n\nexport function extractVar(str) {\n const regex = /{{\\s*(.*?)\\s*}}/g;\n let match;\n const matches = {};\n while ((match = regex.exec(str)) !== null) {\n if (match[1]) {\n matches[match[1]] = true;\n }\n }\n return Object.keys(matches);\n}\n\nexport function convertFieldToConditions(field) {\n let parts = field.split('.');\n let conditions = [];\n let currentCondition = '';\n\n parts.forEach((part, index) => {\n if (index === 0) {\n currentCondition = part;\n } else {\n currentCondition += '.' + part;\n }\n conditions.push(currentCondition);\n });\n\n return conditions.join(' && ');\n}\n\nexport function parseTemplateToTree(template) {\n const tokens = [];\n let current = '';\n let depth = 0;\n\n for (let i = 0; i < template.length; i++) {\n const char = template[i];\n\n if (char === '[') {\n if (depth === 0 && current) {\n tokens.push({type: 'key', value: current});\n current = '';\n }\n depth++;\n current += char;\n } else if (char === ']') {\n depth--;\n current += char;\n\n if (depth === 0) {\n tokens.push({\n type: 'bracket',\n value: parseTemplateToTree(current.slice(1, -1))\n });\n current = '';\n }\n } else if (char === '.' && depth === 0) {\n if (current) {\n tokens.push({type: 'key', value: current});\n current = '';\n }\n } else {\n current += char;\n }\n }\n\n if (current) {\n tokens.push({type: 'key', value: current});\n }\n\n return tokens.map(token => {\n if (token.type === 'key') {\n return {key: token.value};\n } else {\n return {children: token.value};\n }\n });\n}\n","import {\n defineComponent,\n getCurrentInstance,\n inject,\n markRaw,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n onMounted,\n onUpdated,\n provide,\n reactive,\n toRefs,\n watch, watchEffect\n} from 'vue';\nimport toArray from '@form-create/utils/lib/toarray';\nimport debounce from '@form-create/utils/lib/debounce';\nimport toLine from '@form-create/utils/lib/toline';\nimport {toJson} from '../frame/util';\n\nconst getGroupInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.props.formCreateInject) {\n return vm.props.formCreateInject\n }\n if (vm.parent) {\n return getGroupInject(vm.parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate, components, directives) {\n return defineComponent({\n name: 'FormCreate' + (FormCreate.isMobile ? 'Mobile' : ''),\n components,\n directives,\n props: {\n rule: {\n type: Array,\n required: true,\n default: () => []\n },\n option: {\n type: Object,\n default: () => ({})\n },\n extendOption: Boolean,\n driver: [String, Object],\n modelValue: Object,\n disabled: {\n type: Boolean,\n default: undefined,\n },\n preview: {\n type: Boolean,\n default: undefined,\n },\n index: [String, Number],\n api: Object,\n locale: [String, Object],\n t: Function,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n emits: ['update:api', 'update:modelValue', 'mounted', 'submit', 'reset', 'change', 'emit-event', 'control', 'remove-rule', 'remove-field', 'sync', 'reload', 'repeat-field', 'update', 'validate-field-fail', 'validate-fail', 'created'],\n render() {\n return this.fc.render();\n },\n setup(props) {\n const vm = getCurrentInstance();\n provide('parentFC', vm);\n const parent = inject('parentFC', null);\n let top = parent;\n\n if (parent) {\n while (top.setupState.parent) {\n top = top.setupState.parent;\n }\n } else {\n top = vm;\n }\n\n const {rule, modelValue, subForm, inFor} = toRefs(props);\n\n const data = reactive({\n ctxInject: {},\n destroyed: false,\n isShow: true,\n unique: 1,\n renderRule: [...rule.value || []],\n updateValue: JSON.stringify(modelValue.value || {}),\n });\n\n const fc = new FormCreate(vm);\n const fapi = fc.api();\n\n const isMore = inFor.value;\n\n const addSubForm = () => {\n if (parent) {\n const inject = getGroupInject(vm, parent);\n if (inject) {\n let sub;\n if (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 = getGroupInject(vm, parent);\n if (inject) {\n if (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 let styleEl = null;\n\n onBeforeMount(() => {\n watchEffect(() => {\n let content = '';\n const globalClass = (props.option && props.option.globalClass) || {};\n Object.keys(globalClass).forEach(k => {\n let subCss = '';\n globalClass[k].style && Object.keys(globalClass[k].style).forEach(key => {\n subCss += toLine(key) + ':' + globalClass[k].style[key] + ';';\n });\n if (globalClass[k].content) {\n subCss += globalClass[k].content + ';';\n }\n if (subCss) {\n content += `.${k}{${subCss}}`;\n }\n });\n if (props.option && props.option.style) {\n content += props.option.style;\n }\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.type = 'text/css';\n document.head.appendChild(styleEl);\n }\n styleEl.innerHTML = content || '';\n })\n });\n\n const emit$topForm = debounce(() => {\n fc.bus.$emit('$loadData.$topForm');\n }, 100);\n\n const emit$scopeForm = debounce(function () {\n fc.bus.$emit('$loadData.$scopeForm');\n }, 100);\n\n const emit$form = debounce(() => {\n fc.bus.$emit('$loadData.$form');\n }, 100);\n\n const emit$change = (field) => {\n fc.bus.$emit('change-$form.' + field);\n };\n\n onMounted(() => {\n if (parent) {\n fapi.top.bus.$on('$loadData.$form', emit$topForm);\n fapi.top.bus.$on('change', emit$change);\n }\n if (fapi !== fapi.scope) {\n fapi.scope.bus.$on('$loadData.$scopeForm', emit$scopeForm);\n }\n fc.mounted();\n });\n\n onBeforeUnmount(() => {\n if (parent) {\n fapi.top.bus.$off('$loadData.$form', emit$topForm);\n fapi.top.bus.$off('change', emit$change);\n }\n if (fapi !== fapi.scope) {\n fapi.scope.bus.$off('$loadData.$scopeForm', emit$scopeForm);\n }\n rmSubForm();\n data.destroyed = true;\n fc.unmount();\n styleEl && (styleEl.parentNode || styleEl.parentElement) && document.head.removeChild(styleEl);\n })\n\n onUpdated(() => {\n fc.updated();\n });\n\n addSubForm();\n\n watch(() => props.option, () => {\n fc.initOptions();\n fapi.refresh();\n }, {deep: true, flush: 'sync'});\n\n watch(() => [...rule.value], (n) => {\n if (fc.$handle.isBreakWatch() || n.length === data.renderRule.length && n.every(v => data.renderRule.indexOf(v) > -1)) return;\n fc.$handle.updateAppendData();\n fc.$handle.reloadRule(rule.value);\n vm.setupState.renderRule();\n })\n\n watch(() => [props.disabled, props.preview], () => {\n fapi.refresh();\n });\n\n watch(modelValue, (n) => {\n if (toJson(n || {}) === data.updateValue) return;\n if (fapi.config.forceCoverValue) {\n fapi.coverValue(n || {});\n } else {\n fapi.setValue(n || {});\n }\n }, {deep: true, flush: 'post'});\n\n watch(() => props.index, () => {\n fapi.coverValue({});\n fc.$handle.updateAppendData();\n nextTick(() => {\n nextTick(() => {\n fapi.clearValidateState();\n });\n });\n }, {flush: 'sync'});\n\n return {\n fc: markRaw(fc),\n parent: parent ? markRaw(parent) : parent,\n top: markRaw(top),\n fapi: markRaw(fapi),\n ...toRefs(data),\n getGroupInject: () => getGroupInject(vm, parent),\n refresh() {\n ++data.unique;\n },\n renderRule() {\n data.renderRule = [...rule.value || []];\n },\n updateValue(value) {\n if (data.destroyed) return;\n const json = toJson(value);\n if (data.updateValue === json) {\n return;\n }\n data.updateValue = json;\n vm.emit('update:modelValue', value);\n nextTick(() => {\n emit$form();\n if (!parent) {\n emit$topForm();\n emit$scopeForm();\n } else if (!subForm.value) {\n emit$scopeForm();\n }\n });\n }\n }\n },\n created() {\n const vm = getCurrentInstance();\n vm.emit('update:api', vm.setupState.fapi);\n vm.setupState.fc.init();\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n 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 modelField(field) {\n this._data.modelField = field;\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 default function makerFactory() {\n return {\n create,\n factory: creatorFactory\n };\n}\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nimport is from '@form-create/utils/lib/type';\nimport {parseFn} from '@form-create/utils/lib/json';\nimport {deepGet} from './util';\nimport {toPromise} from '@form-create/utils';\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 let action = option.action || '';\n\n if (xhr.upload && option.onProgress) {\n xhr.upload.addEventListener('progress', (evt) => {\n evt.percent = evt.total > 0 ? (evt.loaded / evt.total) * 100 : 0\n option.onProgress(evt)\n })\n }\n\n if (option.query) {\n const query = is.String(option.query) ? option.query : Object.keys(option.query).reduce((acc, key) => {\n acc[key] = (option.query[key] === null || option.query[key] === undefined) ? '' : option.query[key];\n return acc;\n }, {});\n const queryString = new URLSearchParams(query).toString();\n if (queryString) {\n if (action.includes('?')) {\n action += `&${queryString}`;\n } else {\n action += `?${queryString}`;\n }\n }\n }\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 || option.file) {\n if (option.file || (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 if(option.file){\n formData.append(option.filename, option.file, option.file.name)\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\n\nexport function asyncFetch(config, _fetch, api) {\n return new Promise((resolve, reject) => {\n (_fetch || fetch)({\n ...config,\n onSuccess(res) {\n let fn = (v) => v;\n const parse = parseFn(config.parse);\n if (is.Function(parse)) {\n fn = parse;\n } else if (parse && is.String(parse)) {\n fn = (v) => {\n return deepGet(v, parse);\n }\n }\n toPromise(fn(res, config.targetRule, api)).then(res => {\n resolve(res);\n });\n },\n onError(err) {\n reject(err);\n }\n })\n });\n}","import {byCtx, invoke, mergeRule, parseFn, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\nimport {asyncFetch} from './fetch';\nimport {nextTick} from 'vue';\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 if (is.Undef(fields)) {\n fields = Object.keys({...h.fieldCtx, ...h.nameCtx});\n } else if (!Array.isArray(fields)) {\n fields = [fields];\n }\n fields.forEach(field => {\n const ctxs = h.fieldCtx[field] || h.nameCtx[field];\n ctxs && ctxs.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 isScope() {\n return h.vm.props.subForm === false;\n },\n get isPreview() {\n return h.preview;\n },\n get config() {\n return h.options\n },\n set config(val) {\n h.fc.options.value = val;\n },\n get options() {\n return h.options\n },\n set options(val) {\n h.fc.options.value = val;\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.setupState.parent && h.vm.setupState.parent.setupState.fapi\n },\n get top() {\n if (api.parent) {\n return api.parent.top;\n }\n return api;\n },\n get scope() {\n let parent = h.vm;\n while (parent && parent.setupState.fapi) {\n if (!parent.props.subForm) {\n return parent.setupState.fapi;\n } else {\n parent = parent.setupState.parent;\n }\n }\n return api.top;\n },\n get children() {\n return allSubForm();\n },\n get siblings() {\n const inject = h.vm.setupState.getGroupInject();\n if (inject) {\n const subForm = inject.getSubForm();\n if (Array.isArray(subForm)) {\n return [...subForm];\n }\n }\n return undefined;\n },\n get index() {\n const siblings = api.siblings;\n if (siblings) {\n const idx = siblings.indexOf(api);\n return idx > -1 ? idx : undefined;\n }\n return undefined;\n },\n get formulas() {\n return {...h.fc.formulas};\n },\n formData(fields) {\n if (fields == null || typeof fields === 'boolean') {\n const data = {};\n Object.keys(h.form).forEach(k => {\n if (fields === true || h.ignoreFields.indexOf(k) === -1) {\n data[k] = copy(h.form[k]);\n }\n });\n return data;\n } else {\n return tidyFields(fields).reduce((initial, id) => {\n initial[id] = api.getValue(id);\n return initial;\n }, {});\n }\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) {\n if (h.options.appendValue !== false && hasProperty(h.appendData, field)) {\n return copy(h.appendData[field]);\n }\n return undefined;\n }\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n const data = {...(formData || {})};\n h.deferSyncValue(() => {\n h.appendData = {};\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (ctxs) {\n const flag = hasProperty(formData, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? formData[key] : undefined;\n })\n delete data[key];\n }\n });\n extend(h.appendData, data);\n }, true)\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 }, true)\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 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.getPending('children', ctx.rule.children);\n if (!Array.isArray(rules)) return;\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.getPending('children', ctx.rule.children);\n if (!Array.isArray(rules)) return;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n h.vm.setupState.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 findType(type, origin) {\n let rule = undefined;\n Object.keys(h.ctxs).forEach(k => {\n const ctx = h.ctxs[k];\n if (ctx.rule.type === type) {\n rule = origin ? ctx.origin : ctx.rule;\n }\n });\n return rule;\n },\n findTypes(type, origin) {\n let rules = [];\n Object.keys(h.ctxs).forEach(k => {\n const ctx = h.ctxs[k];\n if (ctx.rule.type === type) {\n rules.push(origin ? ctx.origin : ctx.rule);\n }\n });\n return rules;\n },\n getRenderRule: (id) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return ctx.prop;\n }\n },\n getRefRule: (id) => {\n const ctxs = h.getCtxs(id);\n if (ctxs) {\n const rules = ctxs.map(ctx => {\n return ctx.rule;\n })\n return rules.length === 1 ? rules[0] : rules;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n 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 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 nextTick(() => {\n nextTick(() => {\n nextTick(() => {\n api.clearValidateState(fields);\n });\n });\n });\n if (fields == null) {\n is.Function(h.options.onReset) && invoke(() => h.options.onReset(api));\n h.vm.emit('reset', api);\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 h.bus.$emit('fc:closeModal:' + id);\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n getChildrenRuleList(id) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n const rule = ctx ? ctx.rule : (flag ? id : api.getRule(id));\n if (!rule) {\n return [];\n }\n const rules = [];\n const findRules = children => {\n children && children.forEach(item => {\n if (typeof item !== 'object') {\n return;\n }\n if (item.field) {\n rules.push(item);\n }\n rules.push(...api.getChildrenRuleList(item));\n });\n }\n findRules(ctx ? ctx.loadChildrenPending() : rule.children);\n return rules;\n },\n getParentRule(id) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n return ctx.parent.rule;\n },\n getParentSubRule(id) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n if (ctx) {\n const group = ctx.getParentGroup();\n if (group) {\n return group.rule;\n }\n }\n },\n getChildrenFormData(id, flag) {\n const rules = api.getChildrenRuleList(id);\n return rules.reduce((formData, rule) => {\n if (rule.ignore !== true || flag === true) {\n formData[rule.field] = copy(rule.value);\n }\n return formData;\n }, {});\n },\n setChildrenFormData(id, formData, cover) {\n const rules = api.getChildrenRuleList(id);\n h.deferSyncValue(() => {\n rules.forEach(rule => {\n if (hasProperty(formData, rule.field)) {\n rule.value = formData[rule.field];\n } else if (cover) {\n rule.value = undefined;\n }\n });\n });\n },\n getGlobalEvent(name) {\n let event = api.options.globalEvent[name];\n if (event) {\n if (typeof event === 'object') {\n event = event.handle;\n }\n return parseFn(event);\n }\n return undefined;\n },\n getGlobalData(name) {\n return new Promise((resolve, inject) => {\n let config = api.options.globalData[name];\n if (!config) {\n resolve(h.fc.loadData[name]);\n } else if (config.type === 'fetch') {\n api.fetch(config).then(res => {\n resolve(res);\n }).catch(inject);\n } else {\n resolve(config.data);\n }\n });\n },\n emitGlobalEvent(name, ...args) {\n const fn = api.getGlobalEvent(name);\n if(fn) {\n const data = h.getInjectData({}, undefined);\n data.args = [...args];\n args.unshift(data);\n return fn.apply(null, args);\n }\n },\n setGlobalData(name, value) {\n api.setData('$globalData.' + name, value);\n },\n setGlobalVar(name, value) {\n api.setData('$var.' + name, value);\n },\n renderRule(id, onInput, force) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n return ctx ? h.$render.createRuleVnode(ctx, onInput, force) : undefined;\n },\n renderChildren(id, onInput, force) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n return ctx ? h.$render.createChildrenVnodes(ctx, onInput, force) : 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 deferSyncValue(fn, sync) {\n h.deferSyncValue(fn, sync);\n },\n emit(name, ...args) {\n if (h.vm.emitsOptions && !h.vm.emitsOptions[name]) {\n h.vm.emitsOptions[name] = null;\n }\n h.vm.emit(name, ...args);\n },\n bus: h.bus,\n getCurrentFormRule() {\n return h.vm.setupState.getGroupInject()?.rule;\n },\n fetch(opt) {\n return new Promise((resolve, reject) => {\n opt = deepCopy(opt);\n opt = h.loadFetchVar(opt);\n const fail = (e) => {\n invoke(() => opt.onError && opt.onError(e));\n reject(e);\n }\n h.beforeFetch(opt).then(() => {\n return asyncFetch(opt, h.fc.create.fetch, api).then((res) => {\n invoke(() => opt.onSuccess && opt.onSuccess(res));\n resolve(res);\n }).catch((e) => {\n fail(e);\n });\n }).catch(e => {\n fail(e);\n });\n });\n },\n watchFetch(opt, callback, error, beforeFetch) {\n return h.fc.watchLoadData((get, change) => {\n let _opt = deepCopy(opt);\n _opt = h.loadFetchVar(_opt, get);\n if (beforeFetch && beforeFetch(_opt, change) === false) {\n return;\n }\n const fail = (e) => {\n invoke(() => _opt.onError && _opt.onError(e));\n error && error(e);\n }\n h.beforeFetch(_opt).then(() => {\n return asyncFetch(_opt, h.fc.create.fetch, api).then(res => {\n invoke(() => _opt.onSuccess && _opt.onSuccess(res));\n callback && callback(res, change);\n }).catch(e => {\n fail(e);\n });\n }).catch(e => {\n fail(e);\n });\n }, opt.wait == null ? 1000 : opt.wait);\n },\n getData(id, def) {\n if (h.fc.get) {\n return h.fc.get(id, def);\n } else {\n return h.fc.getLoadData(id, def);\n }\n },\n watchData(fn) {\n return h.fc.watchLoadData((get, change) => {\n invoke(() => fn(get, change));\n })\n },\n setData(id, data, isGlobal) {\n return h.fc.setData(id, data, isGlobal);\n },\n refreshData(id) {\n return h.fc.refreshData(id);\n },\n t(id, params) {\n return h.fc.t(id, params);\n },\n getLocale() {\n return h.fc.getLocale();\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off'].forEach(n => {\n api[n] = function (...args) {\n h.bus[`$${n}`](...args);\n }\n });\n\n api.changeValue = api.changeField = api.setValue;\n\n return api;\n}\n","import useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nlet id = 1;\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),\n force: false,\n tmpInput: null,\n id: id++\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 if (ctx.parent) {\n this.clearCache(ctx.parent);\n }\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n if (this.cache[ctx.id].parent) {\n this.clearCache(this.cache[ctx.id].parent);\n }\n this.cache[ctx.id] = null;\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, {copy} from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is from '@form-create/utils/lib/type';\nimport {invoke, makeSlotBag, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {deepSet, toLine} from '@form-create/utils';\nimport {computed, nextTick} from 'vue';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.cacheConfig = {};\n },\n getTypeSlot(ctx) {\n const _fn = (vm) => {\n if (vm) {\n let slot = undefined;\n if (ctx.rule.field) {\n slot = vm.slots['field-' + toLine(ctx.rule.field)] || vm.slots['field-' + ctx.rule.field];\n }\n if (!slot) {\n slot = vm.slots['type-' + toLine(ctx.type)] || vm.slots['type-' + ctx.type];\n }\n if (slot) {\n return slot;\n }\n return _fn(vm.setupState.parent);\n }\n }\n return _fn(this.vm);\n },\n render() {\n // console.warn('renderrrrr', this.id);\n if (!this.vm.setupState.isShow) {\n return;\n }\n this.$manager.beforeRender();\n const slotBag = makeSlotBag();\n this.sort.forEach((k) => {\n this.renderSlot(slotBag, this.$handle.ctxs[k]);\n });\n\n return this.$manager.render(slotBag);\n },\n renderSlot(slotBag, ctx, parent) {\n if (this.isFragment(ctx)) {\n ctx.initProp();\n this.mergeGlobal(ctx);\n ctx.initNone();\n const slots = this.renderChildren(ctx.loadChildrenPending(), ctx);\n const def = slots.default;\n def && slotBag.setSlot(ctx.rule.slot, () => def());\n delete slots.default;\n slotBag.mergeBag(slots);\n } else {\n slotBag.setSlot(ctx.rule.slot, this.renderCtx(ctx, parent));\n }\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n if (!this.cacheConfig[ctx.trueType]) {\n this.cacheConfig[ctx.trueType] = computed(() => {\n const g = this.$handle.options.global;\n return mergeRule({}, [g['*'] || g.default || {}, g[ctx.originType] || g[ctx.type] || g[ctx.type] || {}]);\n });\n }\n ctx.prop = mergeRule({}, [this.cacheConfig[ctx.trueType].value, ctx.prop]);\n },\n setOptions(ctx) {\n const opt = ctx.loadPending({key: 'options', origin: ctx.prop.options, def: []});\n ctx.prop.options = opt;\n if (ctx.prop.optionsTo && opt) {\n deepSet(ctx.prop, ctx.prop.optionsTo, opt);\n }\n },\n deepSet(ctx) {\n const deep = ctx.prop.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 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 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 try {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if (this.force || (!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n ctx.initProp();\n this.mergeGlobal(ctx);\n ctx.initNone();\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 = !!(prop.preview != null ? prop.preview : this.$handle.preview);\n prop.props.formCreateInject = this.injectProp(ctx);\n let cacheFlag = prop.cache !== false;\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n vn = (...slotValue) => {\n const inject = {\n rule,\n prop,\n preview,\n api: this.$handle.api,\n model: prop.model || {},\n slotValue\n }\n if (slotValue.length && rule.slotUpdate) {\n invoke(() => rule.slotUpdate(inject))\n }\n let children = {};\n const _load = ctx.loadChildrenPending();\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(_load, ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(_load, ctx);\n }\n Object.keys(prop.renderSlots || {}).forEach(key => {\n children[key] = (...args) => {\n if (is.Function(prop.renderSlots[key])) {\n return invoke(() => prop.renderSlots[key](...args));\n }\n const rule = this.parseSide(prop.renderSlots[key], ctx);\n return this.renderRule(rule);\n }\n })\n const slot = this.getTypeSlot(ctx);\n let _vn;\n if (slot) {\n inject.children = children;\n _vn = slot(inject)\n } else {\n _vn = preview ? ctx.parser.preview(copy(children), ctx) : ctx.parser.render(copy(children), ctx);\n }\n _vn = this.renderSides(_vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n this.fc.targetFormDriver('updateWrap', ctx)\n _vn = this.$manager.makeWrap(ctx, _vn);\n }\n if (ctx.none) {\n if (Array.isArray(_vn)) {\n _vn = _vn.map(v => {\n if (!v || !v.__v_isVNode) {\n return v;\n }\n return this.none(v);\n });\n } else {\n _vn = this.none(_vn);\n }\n }\n cacheFlag && this.setCache(ctx, () => {\n return this.stable(_vn);\n }, parent);\n return _vn\n };\n this.setCache(ctx, vn, parent);\n }\n return (...args) => {\n const cache = this.getCache(ctx);\n if (cache) {\n return cache(...args);\n } else if (this.cache[ctx.id]) {\n return;\n }\n const _vn = this.renderCtx(ctx, ctx.parent);\n if (_vn) {\n return _vn();\n }\n };\n } catch (e) {\n console.error(e);\n return;\n }\n },\n none(vn) {\n if (vn) {\n vn.props.class = this.mergeClass(vn.props.class, 'fc-none')\n return vn;\n }\n },\n mergeClass(target, value) {\n if (Array.isArray(target)) {\n target.push(value);\n } else {\n return target ? [target, value] : value;\n }\n return target;\n },\n stable(vn) {\n const list = Array.isArray(vn) ? vn : [vn];\n list.forEach(v => {\n if (v && v.__v_isVNode && v.children && typeof v.children === 'object') {\n v.children.$stable = true;\n this.stable(v.children);\n }\n });\n return vn;\n },\n getModelField(ctx) {\n return ctx.prop.modelField || ctx.parser.modelField || this.fc.modelFields[this.vNode.aliasMap[ctx.type]] || this.fc.modelFields[ctx.type] || this.fc.modelFields[ctx.originType] || 'modelValue';\n },\n isFragment(ctx) {\n return ctx.type === 'fragment' || ctx.type === 'template';\n },\n injectProp(ctx) {\n const state = this.vm.setupState;\n if (!state.ctxInject[ctx.id]) {\n state.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 slots: () => {\n return this.vm.setupState.top.slots;\n },\n getWrap: () => {\n return this.vm.refs[ctx.wrapRef];\n },\n options: [],\n children: [],\n preview: false,\n id: ctx.id,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n t: (...args) => {\n return this.$handle.api.t(...args);\n },\n updateValue: (data) => {\n this.$handle.onUpdateValue(ctx, data);\n }\n }\n }\n const inject = state.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.loadChildrenPending()\n });\n return inject;\n },\n ctxProp(ctx) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx);\n ctx.parser.mergeProp(ctx);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n vnodeMounted: (vn) => {\n vn.el.__rule__ = ctx.rule;\n this.onMounted(ctx, vn.el);\n },\n 'fc.updateValue': (data) => {\n this.$handle.onUpdateValue(ctx, data);\n },\n 'fc.el': (el) => {\n ctx.exportEl = el;\n if (el) {\n (el.$el || el).__rule__ = ctx.rule;\n }\n }\n }\n }\n ]\n\n if (ctx.input) {\n const tmpInput = this.tmpInput;\n if (this.vm.props.disabled === true) {\n ctx.prop.props.disabled = true;\n }\n const field = this.getModelField(ctx);\n const model = {\n callback: (value) => {\n tmpInput && tmpInput(ctx.field, value, ctx.rule);\n this.onInput(ctx, value);\n },\n modelField: field,\n value: this.$handle.getFormData(ctx)\n };\n props.push({\n on: {\n [`update:${field}`]: model.callback,\n ...(ctx.prop.modelEmit ? {\n [ctx.prop.modelEmit]: () => this.onEmitInput(ctx)\n } : {}),\n },\n props: {\n [field]: model.value\n }\n })\n ctx.prop.model = model;\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx, el) {\n ctx.el = this.vm.refs[ctx.ref] || el;\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n this.$handle.targetHook(ctx, 'mounted');\n },\n onInput(ctx, value) {\n if (ctx.prop.modelEmit) {\n this.$handle.onBaseInput(ctx, value);\n return;\n }\n this.$handle.onInput(ctx, value);\n },\n onEmitInput(ctx) {\n this.$handle.setValue(ctx, ctx.parser.toValue(ctx.modelValue, ctx), ctx.modelValue);\n },\n renderChildren(children, ctx) {\n if (!is.trueArray(children)) return {};\n const slotBag = makeSlotBag()\n children.map(child => {\n if (!child) return;\n if (is.String(child) || is.Number(child)) return slotBag.setSlot(null, `${child}`);\n if (child.__fc__) {\n return this.renderSlot(slotBag, child.__fc__, ctx);\n }\n if (child.type) {\n nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n return slotBag.getSlots();\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if (prop.component) {\n if (typeof prop.component === 'string') {\n return this.vNode.make(prop.component, prop, children);\n } else {\n return this.vNode.makeComponent(prop.component, prop, children);\n }\n }\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(prop.type), prop, children);\n },\n createChildrenVnodes(ctx, onInput, force) {\n this.force = force !== false;\n this.tmpInput = onInput;\n const res = this.renderChildren(ctx.rule.children, ctx);\n this.force = false;\n this.tmpInput = null;\n return res;\n },\n createRuleVnode(ctx, onInput, force) {\n this.force = force !== false;\n this.tmpInput = onInput;\n const slotBag = makeSlotBag();\n this.renderSlot(slotBag, ctx, ctx.parent);\n this.force = false;\n this.tmpInput = null;\n return slotBag.getSlots();\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule) || is.Number(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\n const slotBag = makeSlotBag();\n if (is.trueArray(rule.children)) {\n rule.children.forEach(v => {\n v && slotBag.setSlot(v?.slot, () => this.renderRule(v));\n });\n }\n const props = {...rule};\n delete props.type;\n delete props.is;\n return this.vNode.make(type, props, slotBag.mergeBag(children).getSlots());\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.bus.$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.bus.$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, invoke, mergeRule} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport {markRaw, reactive} from 'vue';\nimport is from '@form-create/utils/lib/type';\nimport toArray from '@form-create/utils/lib/toarray';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(markRaw(ctx), true)\n });\n if(ctx.rule !== ctx.origin) {\n Object.defineProperties(ctx.rule, {\n __fc__: enumerable(markRaw(ctx), true)\n });\n }\n}\n\nexport default function RuleContext(handle, rule, defaultValue) {\n const id = unique();\n const isInput = !!rule.field;\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n pending: {},\n none: false,\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n children: [],\n parent: null,\n group: rule.subRule ? this : null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n refRule: {},\n input: isInput,\n el: undefined,\n exportEl: undefined,\n defaultValue: isInput ? deepCopy(defaultValue) : undefined,\n field: rule.field || undefined\n })\n\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n getParentGroup() {\n let ctx = this.parent;\n while (ctx) {\n if (ctx.group) {\n return ctx;\n }\n ctx = ctx.parent;\n }\n },\n loadChildrenPending() {\n const children = this.rule.children || [];\n if (Array.isArray(children))\n return children;\n return this.loadPending({\n key: 'children', origin: children, def: [],\n onLoad: (data) => {\n this.$handle && this.$handle.loadChildren(data, this);\n }, onUpdate: (value, oldValue) => {\n if (this.$handle) {\n value === oldValue ? this.$handle.loadChildren(value, this) : this.$handle.updateChildren(this, value, oldValue);\n }\n }, onReload: (value) => {\n if (this.$handle) {\n this.$handle.updateChildren(this, [], value);\n } else {\n delete this.pending.children;\n }\n }\n });\n },\n loadPending(config) {\n const {key, origin, def, onLoad, onReload, onUpdate} = config;\n\n if (this.pending[key] && this.pending[key].origin === origin) {\n return this.getPending(key, def);\n }\n\n delete this.pending[key];\n\n let value = origin;\n if (is.Function(origin)) {\n let source = invoke(() => origin({\n rule: this.rule, api: this.$api, update: (data) => {\n const value = data || def;\n const oldValue = this.getPending(key, def);\n this.setPending(key, origin, value);\n onUpdate && onUpdate(value, oldValue);\n }, reload: () => {\n const oldValue = this.getPending(key, def);\n delete this.pending[key];\n onReload && onReload(oldValue);\n this.$api && this.$api.sync(this.rule);\n }\n }));\n if (source && is.Function(source.then)) {\n source.then((data) => {\n const value = data || def;\n this.setPending(key, origin, value);\n onLoad && onLoad(value);\n this.$api && this.$api.sync(this.rule);\n }).catch(e => {\n console.error(e);\n })\n value = def;\n this.setPending(key, origin, value);\n } else {\n value = source || def;\n this.setPending(key, origin, value);\n onLoad && onLoad(value);\n }\n }\n return value;\n },\n getPending(key, def) {\n return (this.pending[key] && this.pending[key].value) || def;\n },\n setPending(key, origin, value) {\n this.pending[key] = {\n origin,\n value: reactive(value)\n };\n },\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 this.trueType = this.$handle.getType(this.originType);\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 delete rule.validate;\n this.prop = mergeRule({}, [rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n this.prop.validate = [...this.refRule?.__$validate?.value || [], ...this.prop.validate || []]\n },\n initNone() {\n this.none = !(is.Undef(this.prop.display) || !!this.prop.display)\n },\n hasHidden() {\n return (!!this.rule.hidden) || (this.parent ? this.parent.hasHidden() : false);\n },\n injectValidate() {\n return this.prop.validate;\n },\n check(handle) {\n return this.vm === handle.vm\n },\n unwatch() {\n this.watch.forEach(un => un());\n this.watch = [];\n Object.keys(this.refRule).forEach(key => {\n if (key.indexOf('__$') !== 0) {\n delete this.refRule[key];\n }\n })\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 this.unwatch();\n this.unlink();\n this.rmCtrl();\n if (this.parent) {\n this.parent.children.splice(this.parent.children.indexOf(this) >>> 0, 1);\n }\n extend(this, {\n deleted: true,\n computed: {},\n parent: null,\n children: [],\n cacheConfig: null,\n none: false,\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 vNode: handle.$render.vNode,\n updated: false,\n cacheValue: this.rule.value\n });\n !init && this.unwatch();\n this.watchTo();\n this.link();\n this.updateType();\n }\n})\n","import extend from '@form-create/utils/lib/extend';\nimport {byCtx, condition, copyRule, enumerable, getRule, invoke, parseFn, parseJson, toJson} 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 {nextTick} from 'vue';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n 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, 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', '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[(typeof prop === 'object' && prop.event) || `update:${prop}`] = (val) => {\n rule.props[(typeof prop === 'object' && prop.prop) || 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 this.syncForm();\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm.setupState.renderRule();\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.syncForm();\n this.bus.$emit('load-end');\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 const ctxs = 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__.loadChildrenPending(), _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.fc.targetFormDriver('loadRule', {rule, api: this.api}, this.fc);\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 if (ctx.deleted) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n } else {\n if (!ctx.check(this)) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : parseJson(toJson(_rule));\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n const rule = this.parseRule(_rule);\n ctx = new RuleContext(this, rule, defaultValue);\n this.bindParser(ctx);\n } else {\n if (ctx.originType !== ctx.rule.type) {\n ctx.updateType();\n }\n this.bindParser(ctx);\n this.appendValue(ctx.rule);\n if (ctx.parent && ctx.parent !== parent) {\n this.rmSubRuleData(ctx);\n }\n }\n this.parseEmit(ctx);\n this.syncProp(ctx);\n ctx.parent = parent || null;\n ctx.root = rules;\n this.setCtx(ctx);\n\n if (!isCopy && !isInit) {\n this.effect(ctx, 'load');\n this.targetHook(ctx, 'load');\n }\n\n this.effect(ctx, 'created');\n\n const _load = ctx.loadChildrenPending()\n ctx.parser.loadChildren === false || loadChildren(_load, 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 }).filter(v => !!v);\n if (parent) {\n parent.children = ctxs;\n }\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || function (val) {\n return ((condition[control.condition || '=='] || condition['=='])(val, control.value));\n };\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n const hideLst = [];\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl, method}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : (ctrl && ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl) >>> 0, 1));\n hideLst[valid ? 'push' : 'unshift'](() => {\n if (method === 'disabled' || method === 'enabled') {\n this.api.disabled(!valid, rule);\n } else if (method === 'display' || method === 'show') {\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 if (method === 'if') {\n this.api.hidden(!valid, rule);\n } else {\n this.api.hidden(!valid, rule);\n }\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fragment',\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 if (hideLst.length) {\n if (this.loading) {\n hideLst.length && this.bus.$once('load-end', () => {\n hideLst.forEach(v => v());\n });\n } else {\n hideLst.length && nextTick(() => {\n hideLst.forEach(v => v());\n });\n }\n }\n this.vm.emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.initData(rules);\n this.fc.rules = rules;\n\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.bus.$emit('reloading', this.api);\n });\n\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.bus.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm.setupState.refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) rule[k] = def[k];\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport {nextTick, reactive, toRef} from 'vue';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.rule.value = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n this.targetHook(ctx, 'value', {value});\n this.emitEvent('change', ctx.field, value, {\n rule: ctx.origin,\n api: this.api,\n setFlag: setFlag || false\n })\n if (setFlag) {\n nextTick(() => {\n nextTick(() => {\n nextTick(() => {\n this.api.clearValidateState(ctx.id);\n });\n });\n });\n }\n this.$manager.fieldChange(ctx, value, formValue, setFlag);\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, value))) {\n this.setValue(ctx, val, value);\n }\n },\n onUpdateValue(ctx, data) {\n this.deferSyncValue(() => {\n const group = ctx.getParentGroup();\n const subForm = group ? this.subRuleData[group.id] : null;\n const subData = {};\n Object.keys(data || {}).forEach(k => {\n if (subForm && hasProperty(subForm, k)) {\n subData[k] = data[k];\n } else if (hasProperty(this.api.form, k)) {\n this.api.form[k] = data[k];\n } else if (this.api.top !== this.api && hasProperty(this.api.top.form, k)) {\n this.api.top.form[k] = data[k];\n }\n });\n if (Object.keys(subData).length) {\n this.api.setChildrenFormData(group.rule, subData);\n }\n })\n },\n onBaseInput(ctx, value) {\n this.setFormData(ctx, value);\n ctx.modelValue = value;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n },\n setFormData(ctx, value) {\n ctx.modelValue = value;\n const group = ctx.getParentGroup();\n if (group) {\n if (!this.subRuleData[group.id]) {\n this.subRuleData[group.id] = {};\n }\n this.subRuleData[group.id][ctx.field] = ctx.rule.value;\n }\n $set(this.formData, ctx.id, value);\n },\n rmSubRuleData(ctx) {\n const group = ctx.getParentGroup();\n if (group && this.subRuleData[group.id]) {\n delete this.subRuleData[group.id][ctx.field];\n }\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n syncForm() {\n const data = reactive({});\n const fields = this.fields();\n const ignoreFields = [];\n if (this.options.appendValue !== false) {\n Object.keys(this.appendData).reduce((initial, field) => {\n if (fields.indexOf(field) === -1) {\n initial[field] = toRef(this.appendData, field);\n }\n return initial;\n }, data);\n }\n fields.reduce((initial, field) => {\n let ctx = (this.fieldCtx[field] || []).filter(ctx => !this.isIgnore(ctx))[0];\n if (!ctx) {\n ctx = this.fieldCtx[field][0];\n ignoreFields.push(field);\n }\n initial[field] = toRef(ctx.rule, 'value');\n return initial;\n }, data);\n this.form = data;\n this.ignoreFields = ignoreFields;\n this.syncValue();\n },\n isIgnore(ctx) {\n return ctx.rule.ignore === true || ((ctx.rule.ignore === 'hidden' || this.options.ignoreHiddenFields) && ctx.hasHidden());\n },\n appendValue(rule) {\n if ((!rule.field || !hasProperty(this.appendData, rule.field)) && (!is.Undef(rule.value) || !this.options.forceCoverValue)) {\n return;\n }\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.syncForm();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n const data = {};\n Object.keys(this.form).forEach(k => {\n if (this.ignoreFields.indexOf(k) === -1) {\n data[k] = this.form[k];\n }\n });\n this.vm.setupState.updateValue(data);\n },\n isChange(ctx, value) {\n return JSON.stringify(this.getFormData(ctx), strFn) !== JSON.stringify(value, strFn);\n },\n isQuote(ctx, value) {\n return (value instanceof Function || is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val, origin, field) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api, {\n origin: origin || 'change',\n linkField: field\n }));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val, origin, field) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.bus.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val, origin, field);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value, 'link', field);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\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 if(ctx.$handle.fc.renderDriver && ctx.$handle.fc.renderDriver.defaultRender){\n return ctx.$handle.fc.renderDriver.defaultRender(ctx, children);\n }\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n if(ctx.$handle.fc.renderDriver && ctx.$handle.fc.renderDriver.defaultPreview){\n return ctx.$handle.fc.renderDriver.defaultPreview(ctx, children);\n }\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 {condition, deepGet, invoke, convertFieldToConditions} from '../frame/util';\nimport {computed, nextTick, toRef, watch} from 'vue';\nimport {attrs} from '../frame/attrs';\nimport {deepSet} from '@form-create/utils';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'slotUpdate', 'computed', 'component', 'cache'];\nconst oldValueTag = Symbol('oldValue');\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, false, true);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n const renderDriver = this.fc.renderDriver;\n if (renderDriver) {\n const parsers = renderDriver.parsers || {};\n const parser = parsers[ctx.originType] || parsers[toCase(ctx.type)] || parsers[ctx.trueType];\n if (parser) {\n return parser;\n }\n }\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 all = attrs();\n all.filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const ref = toRef(ctx.rule, key);\n const flag = key === 'children';\n ctx.refRule[key] = ref;\n ctx.watch.push(watch(flag ? () => is.Function(ref.value) ? ref.value : [...(ref.value || [])] : () => ref.value, (_, o) => {\n let n = ref.value;\n if (this.isBreakWatch()) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n nextTick(() => {\n this.targetHook(ctx, 'watch', {key, oldValue: o, newValue: n});\n });\n if (key === 'hidden' && Boolean(n) !== Boolean(o)) {\n this.$render.clearCacheAll();\n nextTick(() => {\n this.targetHook(ctx, 'hidden', {value: n});\n });\n }\n if ((key === 'ignore' && ctx.input) || (key === 'hidden' && (ctx.rule.ignore === 'hidden' || this.options.ignoreHiddenFields))) {\n this.syncForm();\n } else if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', '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 (key === 'emit') {\n this.parseEmit(ctx);\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 (flag) {\n if (is.Function(o)) {\n o = ctx.getPending('children', []);\n }\n if (is.Function(n)) {\n n = ctx.loadChildrenPending();\n }\n this.updateChildren(ctx, n, o);\n }\n this.$render.clearCache(ctx);\n this.refresh();\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n ctx.refRule['__$title'] = computed(() => {\n let title = (typeof ctx.rule.title === 'object' ? ctx.rule.title.title : ctx.rule.title) || '';\n if (title) {\n const match = title.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n title = this.api.t(match[1]);\n }\n }\n return title;\n });\n ctx.refRule['__$info'] = computed(() => {\n let info = (typeof ctx.rule.info === 'object' ? ctx.rule.info.info : ctx.rule.info) || '';\n if (info) {\n const match = info.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n info = this.api.t(match[1]);\n }\n }\n return info;\n });\n ctx.refRule['__$validate'] = computed(() => {\n const t = (msg) => {\n const match = msg.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n return this.api.t(match[1], {title: ctx.refRule?.__$title?.value});\n }\n return msg;\n }\n return toArray(ctx.rule.validate).map(item => {\n const temp = {...item};\n if (temp.message) {\n temp.message = t(temp.message);\n }\n if (is.Function(temp.validator)) {\n const that = ctx;\n temp.validator = function (...args) {\n return item.validator.call({\n that: this,\n id: that.id,\n field: that.field,\n rule: that.rule,\n api: that.$handle.api,\n }, ...args)\n }\n }\n if (temp.adapter) {\n if (typeof temp.error === 'object') {\n const msg = {...temp.error};\n Object.keys(msg).forEach((key) => {\n msg[key] = t(msg[key]);\n })\n temp.error = msg;\n }\n return this.adapterValidate(temp, ctx);\n }\n return temp;\n });\n });\n if (ctx.input) {\n const val = toRef(ctx.rule, 'value');\n ctx.watch.push(watch(() => val.value, () => {\n let formValue = ctx.parser.toFormValue(val.value, ctx);\n if (this.isChange(ctx, formValue)) {\n this.setValue(ctx, val.value, formValue, true);\n }\n }));\n }\n this.bus.$once('load-end', () => {\n let computedRule = ctx.rule.computed;\n if (!computedRule) {\n return;\n }\n if (typeof computedRule !== 'object') {\n computedRule = {value: computedRule}\n }\n Object.keys(computedRule).forEach(k => {\n const computedValue = computed(() => {\n const item = computedRule[k];\n if (!item) return undefined;\n const value = this.compute(ctx, item);\n if ((item.linkage || item.linkageVariable) && value === oldValueTag) {\n return oldValueTag;\n }\n return value;\n });\n const callback = (n) => {\n if (k === 'value') {\n this.onInput(ctx, n);\n } else if (k[0] === '$') {\n this.api.setEffect(ctx.id, k, n);\n } else {\n deepSet(ctx.rule, k, n);\n }\n };\n if (k === 'value' ? [undefined, null, ''].indexOf(ctx.rule.value) > -1 : computedValue.value !== deepGet(ctx.rule, k)) {\n callback(computedValue.value);\n }\n ctx.watch.push(watch(computedValue, (n) => {\n if(n === oldValueTag) {\n return ;\n }\n setTimeout(() => {\n callback(n);\n });\n }, {deep: true}));\n });\n\n });\n this.watchEffect(ctx);\n },\n adapterValidate(validate, ctx) {\n const validator = (value, callback) => {\n const before = validate.beforeValidate && invoke(() => validate.beforeValidate({\n value,\n api: this.api,\n validate,\n rule: ctx.rule\n }));\n if (before === false) {\n callback();\n } else {\n const key = this.validator(ctx, value, validate);\n if (!key) {\n if (validate.validator) {\n const res = validate.validator && invoke(() => validate.validator(value, callback));\n if (res && is.Function(res.then)) {\n res.then(() => callback()).catch((e) => callback(e));\n }\n } else {\n callback();\n }\n } else {\n let message = '';\n if (typeof validate.error === 'object') {\n message = validate.error[key] || validate.error.default;\n }\n if (!message && typeof validate.message === 'string') {\n message = validate.message;\n }\n if (!message) {\n message = this.getValidateMessage(ctx, {key, rule: validate[key]});\n }\n callback(message);\n }\n }\n }\n return this.$manager.adapterValidate({\n required: validate.required,\n message: validate.message,\n trigger: validate.trigger,\n }, validator);\n },\n getValidateMessage(ctx, invalid) {\n const formatRule = Array.isArray(invalid.rule) ? invalid.rule.join(',') : ('' + invalid.rule);\n return this.api.t(invalid.key === 'required' ? invalid.key : ('validate.' + invalid.key), {\n [invalid.key]: formatRule,\n title: ctx.refRule?.__$title?.value\n });\n },\n validator(ctx, value, validate) {\n const isEmpty = is.empty(value);\n if (isEmpty) {\n if (validate.required) {\n return 'required'\n }\n return;\n }\n for (const [key, rule] of Object.entries(validate)) {\n switch (key) {\n case 'len':\n case 'maxLen':\n case 'minLen':\n const check = (val) => {\n if (key === 'len') {\n return val === rule;\n } else if (key === 'maxLen') {\n return val <= rule;\n } else {\n return val >= rule;\n }\n }\n if (Array.isArray(value)) {\n if (!check(value.length)) {\n return key;\n }\n } else if (typeof value === 'object') {\n return key;\n } else if (!check(('' + value).length)) {\n return key;\n }\n break;\n case 'pattern':\n const reg = typeof rule === 'string' ? new RegExp(rule) : rule;\n if (!reg.test('' + value)) {\n return key;\n }\n break;\n case 'uppercase':\n if (rule && (typeof value !== 'string' || !/^[A-Z]*$/.test(value))) {\n return key;\n }\n break;\n case 'lowercase':\n if (rule && (typeof value !== 'string' || !/^[a-z]*$/.test(value))) {\n return key;\n }\n break;\n case 'min':\n case 'max':\n case 'positive':\n case 'negative':\n case 'integer':\n case 'number':\n const num = Number(value);\n if (Number.isNaN(num)) {\n return key;\n }\n if (key === 'min' && num < rule) {\n return key;\n }\n if (key === 'max' && num > rule) {\n return key;\n }\n if (key === 'positive' && num <= 0) {\n return key;\n }\n if (key === 'negative' && num >= 0) {\n return key;\n }\n if (key === 'integer' && !Number.isInteger(num)) {\n return key;\n }\n break;\n case 'equal':\n if (value !== rule) {\n return key;\n }\n break;\n case 'enum':\n if (Array.isArray(rule) && !rule.includes(value)) {\n return key;\n }\n break;\n case 'hasKeys':\n if (typeof value !== 'object' || Array.isArray(rule) && rule.some(key => !(key in value))) {\n return key;\n }\n break;\n case 'email':\n const regexEmail = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (!regexEmail.test('' + value)) {\n return key;\n }\n break;\n case 'url':\n const regexUrl = new RegExp(\n '^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n 'i'\n );\n if (!regexUrl.test('' + value)) {\n return key;\n }\n break;\n case 'ip':\n const regexIp =\n /^(2(5[0-5]{1}|[0-4]\\d{1})|[0-1]?\\d{1,2})(\\.(2(5[0-5]{1}|[0-4]\\d{1})|[0-1]?\\d{1,2})){3}$/;\n if (!regexIp.test('' + value)) {\n return key;\n }\n break;\n case 'phone':\n const regexPhone = /^(?:(?:\\+|00)86)?1[3-9]\\d{9}$/;\n if (!regexPhone.test('' + value)) {\n return key;\n }\n break;\n case 'computed':\n if (!this.compute(ctx, rule)) {\n return key;\n }\n break;\n default:\n break;\n }\n }\n },\n compute(ctx, item) {\n let fn;\n if (typeof item === 'object') {\n const group = ctx.getParentGroup();\n const checkCondition = (item) => {\n item = Array.isArray(item) ? {mode: 'AND', group: item} : item;\n if (!is.trueArray(item.group)) {\n return true;\n }\n const or = item.mode === 'OR';\n let valid = true;\n for (let i = 0; i < item.group.length; i++) {\n const one = item.group[i];\n let flag;\n let field = null;\n let variableVal = null;\n if (one.variable) {\n variableVal = this.fc.getLoadData(one.variable);\n } else if (one.field) {\n field = convertFieldToConditions(one.field || '');\n } else if (!one.mode) {\n return true;\n }\n let compare = one.compare;\n if (compare) {\n compare = convertFieldToConditions(compare || '');\n }\n if (one.mode) {\n flag = checkCondition(one);\n } else if (!condition[one.condition]) {\n flag = false;\n } else if (is.Function(one.handler)) {\n flag = invoke(() => one.handler(this.api, ctx.rule));\n } else {\n flag = invoke(() => (new Function('$condition', '$variableVal', '$val', '$form', '$scope', '$group', '$rule', `with($form){with($scope){with(this){with($group){ return $condition['${one.condition}'](${one.variable ? '$variableVal' : field}, ${compare ? compare : '$val'}); }}}}`)).call(this.api.form, condition, variableVal, one.value, this.api.top.form, this.api.top === this.api.scope ? {} : this.api.scope.form, group ? (this.subRuleData[group.id] || {}) : {}, ctx.rule));\n }\n if (or && flag) {\n return true;\n }\n if (!or) {\n valid = valid && flag;\n }\n }\n return or ? false : valid;\n }\n let val = checkCondition(item);\n val = item.invert === true ? !val : val;\n if (item.linkage) {\n return val ? invoke(() => this.computeValue(item.linkage, ctx, group), undefined) : oldValueTag;\n } else if(item.linkageVariable) {\n return val ? invoke(() => this.fc.getLoadData(item.linkageVariable), undefined) : oldValueTag;\n }\n return val;\n } else if (is.Function(item)) {\n fn = () => item(this.api.form, this.api, ctx.rule);\n } else {\n const group = ctx.getParentGroup();\n fn = () => this.computeValue(item, ctx, group);\n }\n return invoke(fn, undefined);\n },\n computeValue(str, ctx, group) {\n const that = this;\n const formulas = Object.keys(this.fc.formulas).reduce((obj, k) => {\n obj[k] = function (...args) {\n return that.fc.formulas[k].call({\n that: this,\n rule: ctx.rule,\n api: that.api,\n fc: that.fc\n }, ...args);\n }\n return obj;\n }, {})\n return invoke(() => (new Function('$formulas', '$form', '$scope', '$group', '$rule', '$api', `with($form){with($scope){with(this){with($group){with($formulas){ return ${str} }}}}}`)).call(this.api.form, formulas, this.api.top.form, this.api.top === this.api.scope ? {} : this.api.scope.form, group ? (this.subRuleData[group.id] || {}) : {}, ctx.rule, this.api), undefined);\n },\n updateChildren(ctx, n, o) {\n this.deferSyncValue(() => {\n o && o.forEach((child) => {\n if ((n || []).indexOf(child) === -1 && child && !is.String(child) && child.__fc__ && child.__fc__.parent === ctx) {\n this.rmCtx(child.__fc__);\n }\n });\n if (is.trueArray(n)) {\n this.loadChildren(n, ctx);\n this.bus.$emit('update', this.api);\n }\n });\n },\n rmSub(sub) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n\n $del(this.ctxs, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(this.vm.setupState.ctxInject, id);\n const group = ctx.getParentGroup();\n if (group && this.subRuleData[group.id]) {\n $del(this.subRuleData[group.id], field);\n }\n if (ctx.group) {\n $del(this.subRuleData, id);\n }\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 const children = ctx.getPending('children', ctx.rule.children);\n if (is.trueArray(children)) {\n children.forEach(h => h && h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm.setupState.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 this.targetHook(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.emit('remove-field', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.emit('remove-rule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy, invoke} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\nimport {reactive} from 'vue';\nimport is from '@form-create/utils/lib/type';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\n\nexport default function Handler(fc) {\n funcProxy(this, {\n options() {\n return fc.options.value || {};\n },\n bus() {\n return fc.bus;\n },\n preview() {\n if (fc.vm.props.preview != null) {\n return fc.vm.props.preview;\n } else if (fc.vm.setupState.parent && fc.vm.setupState.parent.props.preview != null) {\n return fc.vm.setupState.parent.props.preview;\n }\n return fc.options.value.preview || false;\n }\n })\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: reactive({}),\n subRuleData: reactive({}),\n subForm: {},\n form: reactive({}),\n appendData: {},\n ignoreFields: [],\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 this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApiFn.reduce((api, fn) => {\n const extendApi = invoke(() => fn(api, this));\n if (extendApi && extendApi !== api) {\n extend(api, extendApi);\n }\n return api;\n }, Api(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.updateAppendData();\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.lifecycle('created');\n },\n updateAppendData() {\n this.appendData = {...deepCopy(this.options.formData || {}), ...(this.fc.vm.props.modelValue || {}), ...this.appendData};\n },\n isBreakWatch() {\n return this.loading || this.noWatchFn || this.reloading;\n },\n globalBeforeFetch(opt) {\n return new Promise((resolve, reject) => {\n const source = this.options.beforeFetch && invoke(() => this.options.beforeFetch(opt, {api: this.api}));\n if (source && is.Function(source.then)) {\n source.then(resolve).catch(reject);\n } else {\n resolve();\n }\n });\n },\n beforeFetch(opt) {\n return new Promise((resolve, reject) => {\n const res = opt && opt.beforeFetch && invoke(() => opt.beforeFetch(opt, {api: this.api}));\n if (res && is.Function(res.then)) {\n res.then(resolve).catch(reject);\n } else if (res === false) {\n reject();\n } else {\n resolve();\n }\n }).then(() => {\n return this.globalBeforeFetch(opt);\n });\n },\n beforeSubmit(formData) {\n return new Promise((resolve, reject) => {\n const res = this.options.beforeSubmit && invoke(() => this.options.beforeSubmit(formData, {api: this.api}));\n if (res && is.Function(res.then)) {\n res.then(resolve).catch(reject);\n } else if (res === false) {\n reject();\n } else {\n resolve();\n }\n });\n }\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport toLine from '@form-create/utils/lib/toline';\nimport {deepGet, extractVar, invoke, parseFn, parseTemplateToTree} from '../frame/util';\nimport toCase from '@form-create/utils/lib/tocase';\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) {\n let event = {}, rule = ctx.rule, {emitPrefix, field, name, inject} = rule;\n let emit = rule.emit || [];\n if (is.trueArray(emit)) {\n emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n let emitKey = emitPrefix || field || name;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n emitKey = eventName.prefix || emitKey;\n }\n if (emitKey) {\n const fieldKey = toLine(`${emitKey}-${eventName}`);\n const fn = (...arg) => {\n if (this.vm.emitsOptions && !this.vm.emitsOptions[fieldKey]) {\n this.vm.emitsOptions[fieldKey] = null;\n }\n this.vm.emit(fieldKey, ...arg);\n this.vm.emit('emit-event', fieldKey, ...arg);\n this.bus.$emit(fieldKey, ...arg);\n };\n fn.__emit = true;\n\n if (!eventInject && inject === false) {\n event[toCase(eventName)] = fn;\n } else {\n let _inject = eventInject || inject || this.options.injectEvent;\n event[toCase(eventName)] = is.Undef(_inject) ? fn : this.inject(rule, fn, _inject);\n }\n }\n\n });\n }\n ctx.computed.on = event;\n return event;\n },\n getInjectData(self, inject) {\n const $api = self.__fc__ && self.__fc__.$api;\n const vm = (self.__fc__ && self.__fc__.$handle.vm) || this.vm;\n const {option, rule} = vm.props;\n return {\n $f: $api || this.api,\n api: $api || 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 loadStrVar(str, get, group) {\n if (str && typeof str === 'string' && str.indexOf('{{') > -1 && str.indexOf('}}') > -1) {\n const tmp = str;\n const vars = extractVar(str);\n\n const getValue = (field) => {\n let flag = false;\n let val;\n if (group && field.indexOf('$form.') === 0) {\n const _split = field.split('.');\n _split.shift();\n if (hasProperty(group.value, _split[0])) {\n flag = true;\n val = get ? get({\n id: '$form.' + _split[0] + '_' + group.rule.__fc__.id,\n getValue: () => {\n return deepGet(group.value, _split);\n }\n }) : deepGet(group.value, _split);\n }\n }\n if (!flag) {\n val = get ? get(field) : this.fc.getLoadData(field)\n }\n return val;\n }\n\n const treeToVal = (tree) => {\n const fields = [];\n tree.forEach(item => {\n if (item.key) {\n fields.push(item.key);\n } else if (item.children) {\n fields.push(treeToVal(item.children));\n }\n })\n let flag = false;\n fields.forEach((field, idx) => {\n if (field != null && (field.indexOf('\\'') === 0 || field.indexOf('\"') === 0)) {\n fields[idx] = field.slice(1, -1)\n flag = true;\n }\n })\n if (fields.length === 1 && (flag || !isNaN(Number(fields[0])))) {\n return fields[0];\n }\n return getValue(fields.join('.'));\n }\n\n let lastVal;\n vars.forEach(v => {\n const split = v.split('||');\n const field = split[0].trim();\n if (field) {\n const def = (split[1] || '').trim();\n const tree = parseTemplateToTree(field);\n let val = invoke(() => treeToVal(tree));\n if ((val == null || val === '') && split.length > 1) {\n val = def;\n }\n lastVal = val;\n str = str.replaceAll(`{{${v}}}`, val == null ? '' : val);\n }\n })\n if (vars.length === 1 && tmp === `{{${vars[0]}}}`) {\n return lastVal;\n }\n }\n return str;\n },\n loadFetchVar(options, get, rule) {\n let group;\n if (rule && rule.__fc__) {\n group = rule.__fc__.getParentGroup();\n }\n const loadVal = str => {\n return this.loadStrVar(str, get, group ? {rule, value: (this.subRuleData[group.id] || {})} : null);\n }\n\n options.action = loadVal(options.action || '');\n\n ['headers', 'data', 'query'].forEach(key => {\n if (options[key]) {\n const data = Array.isArray(options[key]) ? [] : {};\n Object.keys(options[key]).forEach(k => {\n data[loadVal(k)] = loadVal(options[key][k]);\n });\n options[key] = data;\n }\n });\n\n return options;\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.setupState.unique > 0)\n return this.$render.render();\n else {\n this.vm.setupState.unique = 1;\n return [];\n }\n },\n });\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke, parseFn} from '../frame/util';\nimport toCase from '@form-create/utils/lib/tocase';\nimport {upper} from '@form-create/utils/lib/toline';\n\n\nexport default function useLifecycle(Handler) {\n extend(Handler.prototype, {\n mounted() {\n const _mounted = () => {\n this.isMounted = true;\n this.lifecycle('mounted');\n }\n if (this.pageEnd) {\n _mounted();\n } else {\n this.bus.$once('page-end', _mounted);\n }\n },\n lifecycle(name) {\n this.fc.targetFormDriver(name, this.api, this.fc);\n this.vm.emit(name, this.api);\n this.emitEvent(name, this.api);\n },\n emitEvent(name, ...args) {\n const _fn = this.options[name] || this.options[toCase('on-' + name)];\n if (_fn) {\n const fn = parseFn(_fn);\n is.Function(fn) && invoke(() => fn(...args));\n }\n this.bus.$emit(name, ...args);\n },\n targetHook(ctx, name, args) {\n let hook = ctx.prop?.hook?.[name];\n\n let run = (on, p) => {\n if (on) {\n on = Array.isArray(on) ? on : [on];\n on.forEach(fn => {\n invoke(() => fn({args: Object.values(args || {}), ...args || {}, self: ctx.rule, rule: ctx.rule, parent: p?.rule, $f: this.api, api: this.api, option: this.vm.props.option}));\n });\n }\n }\n run(hook);\n let deepName = 'deep' + upper(name);\n let parent = ctx.parent;\n while (parent) {\n let deepHook = parent.prop?.hook?.[deepName];\n run(deepHook, parent);\n parent = parent.parent;\n }\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';\nimport {watch} from 'vue';\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, k);\n this.providers[k] = prop;\n });\n },\n onEffect(provider, key) {\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:${key || 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 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(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 || ['fcFragment', 'fragment'].indexOf(type) > -1) return;\n const effect = custom ? custom : (Object.keys(rule).reduce((i, k) => {\n if (k[0] === '$') {\n i[k.substr(1)] = rule[k];\n }\n return i;\n }, {...rule.effect || {}}));\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeRule(data.getProp(), [prop]);\n data.id = ctx.id;\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) {\n const arr = unique(c.filter(v => v !== '*'));\n return arr.length ? arr : false;\n } else if (is.String(c)) return [c];\n else return false;\n}\n","import {defineComponent} from 'vue';\n\nconst NAME = 'fcFragment';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: ['vnode'],\n render() {\n return this.vnode;\n }\n})\n","import toLine from '@form-create/utils/lib/toline';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport {toProps} from '../frame/util';\nimport {createVNode, getCurrentInstance, resolveComponent, resolveDirective, withDirectives} from 'vue';\n\n\nfunction tidyDirectives(directives) {\n return Object.keys(directives).map(n => {\n const data = directives[n];\n const directive = resolveDirective(n);\n if (!directive) return;\n return [\n directive, data.value, data.arg, data.modifiers\n ]\n }).filter(v => !!v);\n}\n\nfunction makeDirective(data, vn) {\n let directives = data.directives;\n if (!directives) return vn;\n if (!Array.isArray(directives)) {\n directives = [directives];\n }\n return withDirectives(vn, directives.reduce((lst, v) => {\n return lst.concat(tidyDirectives(v));\n }, []))\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(handle) {\n this.vm = handle.vm;\n this.handle = handle;\n }\n\n extend(CreateNode.prototype, {\n make(tag, data, children) {\n return makeDirective(data, this.h(tag, toProps(data), children));\n },\n makeComponent(type, data, children) {\n try {\n return makeDirective(data, createVNode(type, toProps(data), children));\n } catch (e) {\n console.error(e);\n return createVNode('');\n }\n },\n h(tag, data, children) {\n const vm = this.vm || getCurrentInstance();\n const isNativeTag = vm.appContext.config.isNativeTag(tag);\n const component = this.handle.fc.prop.components[tag];\n if (!component && isNativeTag) {\n delete data.formCreateInject;\n }\n try{\n return createVNode(component || (isNativeTag ? tag : resolveComponent(tag)), data, children);\n }catch (e){\n console.error(e);\n return createVNode('');\n }\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 CreateNode.alias(k, v);\n [k, line, lower].forEach(n => {\n CreateNode.prototype[n] = function (data, children) {\n return this.make(aliasMap[k] || n, 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';\nimport {invoke} from '../frame/util';\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 adapterValidate(validate, validator) {\n validate.validator = (rule, value, callback) => {\n return validator(value, callback);\n }\n return validate;\n },\n getSlot(name) {\n const _fn = (vm) => {\n if (vm) {\n let slot = vm.slots[name];\n if (slot) {\n return slot;\n }\n return _fn(vm.setupState.parent);\n }\n return undefined;\n }\n return _fn(this.vm);\n },\n mergeOptions(args, opt) {\n return mergeProps(args.map(v => this.tidyOptions(v)), opt, this.mergeOptionsRule);\n },\n updateOptions(options) {\n this.$handle.fc.targetFormDriver('updateOptions', options, {handle: this.$handle, api: this.$handle.api})\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 fieldChange(ctx, value, formValue, setFlag) {\n },\n render(children) {\n }\n})\n","import {err} from '@form-create/utils/lib/console';\nimport {byCtx, deepGet, invoke, parseFn} from './util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport toArray from '@form-create/utils/lib/toarray';\nimport debounce from '@form-create/utils/lib/debounce';\nimport {nextTick} from 'vue';\nimport {toPromise} from '@form-create/utils';\n\nconst loadData = function (fc) {\n const loadData = {\n name: 'loadData',\n _fn: [],\n loaded(inject, rule, api) {\n this.deleted(inject);\n nextTick(() => {\n let attrs = toArray(inject.getValue());\n const unwatchs = [];\n attrs.forEach(attr => {\n if (attr && (attr.attr || attr.template)) {\n let fn = (get) => {\n let group;\n if (rule && rule.__fc__) {\n group = rule.__fc__.getParentGroup();\n }\n let value;\n if (attr.template) {\n value = fc.$handle.loadStrVar(attr.template, get, group ? {rule, value: (fc.$handle.subRuleData[group.id] || {})} : null);\n } else if (attr.handler && is.Function(attr.handler)) {\n value = attr.handler(get, rule, api);\n } else {\n value = fc.$handle.loadStrVar(`{{${attr.attr}}}`, get, group ? {rule, value: (fc.$handle.subRuleData[group.id] || {})} : null);\n }\n if ((value == null || value === '') && attr.default != null) {\n value = attr.default;\n }\n if (attr.copy !== false) {\n value = deepCopy(value)\n }\n const _rule = (attr.modify ? rule : inject.getProp());\n if (attr.to === 'child') {\n if (_rule.children) {\n _rule.children[0] = value;\n } else {\n _rule.children = [value];\n }\n } else {\n deepSet(_rule, attr.to || 'options', value);\n }\n api.sync(rule);\n };\n let callback = (get) => fn(get);\n const unwatch = fc.watchLoadData(callback);\n fn = debounce(fn, attr.wait || 300)\n if (attr.watch !== false) {\n unwatchs.push(unwatch);\n } else {\n unwatch();\n }\n }\n })\n this._fn[inject.id] = unwatchs;\n });\n },\n deleted(inject) {\n if (this._fn[inject.id]) {\n this._fn[inject.id].forEach(un => {\n un();\n })\n delete this._fn[inject.id];\n }\n inject.clearProp();\n },\n };\n loadData.watch = loadData.loaded;\n return loadData;\n}\n\nconst t = function (fc) {\n const t = {\n name: 't',\n _fn: [],\n loaded(inject, rule, api) {\n this.deleted(inject);\n let attrs = inject.getValue() || {};\n const unwatchs = [];\n Object.keys(attrs).forEach(key => {\n const attr = attrs[key];\n if (attr) {\n const isObj = typeof attr === 'object';\n let fn = (get) => {\n let value = fc.t(isObj ? attr.attr : attr, isObj ? attr.params : null, get);\n const _rule = ((isObj && attr.modify) ? rule : inject.getProp());\n if (key === 'child') {\n if (_rule.children) {\n _rule.children[0] = value;\n } else {\n _rule.children = [value];\n }\n } else {\n deepSet(_rule, key, value);\n }\n api.sync(rule);\n };\n let callback = (get) => fn(get);\n const unwatch = fc.watchLoadData(callback);\n fn = debounce(fn, attr.wait || 300)\n if (attr.watch !== false) {\n unwatchs.push(unwatch);\n } else {\n unwatch();\n }\n }\n })\n this._fn[inject.id] = unwatchs;\n },\n deleted(inject) {\n if (this._fn[inject.id]) {\n this._fn[inject.id].forEach(un => {\n un();\n })\n delete this._fn[inject.id];\n }\n inject.clearProp();\n },\n };\n t.watch = t.loaded;\n return t;\n}\n\nconst componentValidate = {\n name: 'componentValidate',\n load(attr, rule, api) {\n let options = attr.getValue();\n if (!options || options.method === false) {\n attr.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n if (!is.Object(options)) {\n options = {method: options};\n }\n const method = options.method;\n const validate = {\n ...options,\n validator(...args) {\n const ctx = byCtx(rule);\n if (ctx) {\n return api.exec(ctx.id, is.String(method) ? method : 'formCreateValidate', ...args, {\n attr,\n rule,\n api\n });\n }\n }\n };\n delete validate.method;\n attr.getProp().validate = [validate];\n }\n },\n watch(...args) {\n componentValidate.load(...args);\n }\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 fetchAttr.deleted(inject);\n if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n } else {\n deepSet(inject.getProp(), option.to || 'options', val);\n }\n if (val != null && option && option.key && fc.$handle.options.globalData[option.key]) {\n fc.fetchCache.set(fc.$handle.options.globalData[option.key], {status: true, data: val});\n }\n api.sync(rule);\n }\n\n if (!option || (!option.action && !option.key)) {\n set(undefined);\n return;\n }\n option = deepCopy(option);\n if (!option.to) {\n option.to = 'options';\n }\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 fetchAttr._fn[inject.id] = fc.watchLoadData(debounce((get, change) => {\n if (change && option.watch === false) {\n return fetchAttr._fn[inject.id]();\n }\n if(option.key) {\n fc.targetRule = rule;\n const res = get('$globalData.' + option.key);\n delete fc.targetRule;\n if (res) {\n if (check()) return;\n set(res);\n }\n return ;\n }\n const _option = fc.$handle.loadFetchVar(deepCopy(option), get, rule);\n const config = {\n headers: {},\n ..._option,\n onSuccess(body, flag) {\n if (check()) return;\n let fn = (v) => flag ? v : (hasProperty(v, 'data') ? v.data : v);\n const parse = parseFn(_option.parse);\n if (is.Function(parse)) {\n fn = parse;\n } else if (parse && is.String(parse)) {\n fn = (v) => {\n return deepGet(v, parse);\n }\n }\n toPromise(fn(body, rule, api)).then(res => {\n set(res);\n })\n },\n onError(e) {\n set(undefined);\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + _option.action)))(e, rule, api);\n }\n };\n fc.$handle.beforeFetch(config, {rule, api}).then(() => {\n if (is.Function(_option.action)) {\n toPromise(_option.action(rule, api)).then((val) => {\n config.onSuccess(val, true);\n }).catch((e) => {\n config.onError(e);\n });\n return;\n }\n invoke(() => fc.create.fetch(config, {inject, rule, api}));\n }).catch(e => {});\n }, option.wait || 600));\n }\n\n const fetchAttr = {\n name: 'fetch',\n _fn: [],\n loaded(...args) {\n run(...args);\n },\n watch(...args) {\n run(...args);\n },\n deleted(inject) {\n if (this._fn[inject.id]) {\n this._fn[inject.id]();\n delete this._fn[inject.id];\n }\n inject.clearProp();\n },\n };\n\n return fetchAttr;\n}\n\n\nexport default {\n fetch,\n loadData,\n t,\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 ctx.prop.props.innerHTML = children.default();\n return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);\n },\n renderChildren(children) {\n return {\n default: () => children.filter(v => is.String(v)).join('')\n }\n }\n}\n","import {deepGet} from './util';\n\nfunction getCookie(name) {\n name = name + '=';\n\n const decodedCookie = decodeURIComponent(document.cookie);\n const cookieArray = decodedCookie.split(';');\n\n for (let i = 0; i < cookieArray.length; i++) {\n let cookie = cookieArray[i];\n while (cookie.charAt(0) === ' ') {\n cookie = cookie.substring(1);\n }\n if (cookie.indexOf(name) === 0) {\n cookie = cookie.substring(name.length, cookie.length);\n try {\n return JSON.parse(cookie);\n } catch (e) {\n return cookie;\n }\n }\n }\n return null;\n}\n\nfunction getLocalStorage(name) {\n const value = localStorage.getItem(name);\n if (value) {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n return null;\n}\n\nfunction getSessionStorage(name) {\n const value = sessionStorage.getItem(name);\n if (value) {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n return null;\n}\n\nexport function baseDriver(driver, name) {\n if (!name) {\n return null;\n }\n const split = name.split('.');\n let value = driver(split.shift());\n\n if (!split.length) {\n return value;\n }\n if (value == null) {\n return null;\n }\n return deepGet(value, split);\n}\n\nexport function cookieDriver(name) {\n return baseDriver(getCookie, name);\n}\n\nexport function localStorageDriver(name) {\n return baseDriver(getLocalStorage, name);\n}\n\nexport function sessionStorageDriver(name) {\n return baseDriver(getSessionStorage, name);\n}","export default {\n en: {\n required: '{title} is required',\n validate: {\n url: '{title} is not a valid url',\n email: '{title} is not a valid email',\n ip: '{title} {title} is not a valid ip',\n phone: '{title} {title} is not a valid phone',\n pattern: '{title} does not match pattern {pattern}',\n uppercase: '{title} must be all uppercase',\n lowercase: '{title} must be all lowercased',\n positive: '{title} is not a positive number',\n negative: '{title} is not a negative number',\n equal: '{title} is not equal to {equal}',\n min: '{title} cannot be less than {min}',\n max: '{title} cannot be greater than {max}',\n enum: '{title} must be one of {enum}',\n hasKeys: '{title} does not contain required fields {hasKeys}',\n minLen: '{title} must be at least {minLen}',\n maxLen: '{title} cannot be longer than {maxLen}',\n len: '{title} must be exactly {len}',\n integer: '{title} is not an integer',\n number: '{title} is not an number',\n }\n },\n 'zh-cn': {\n required: '{title}不能为空',\n validate: {\n url: '{title}不是有效的 url 地址',\n email: '{title}不是有效的邮箱地址',\n ip: '{title}不是有效的 IP 地址',\n phone: '{title}不是正确的手机号',\n pattern: '{title}必须匹配 {pattern}',\n uppercase: '{title}必须全大写',\n lowercase: '{title}必须全小写',\n positive: '{title}不是正数',\n negative: '{title}不是负数',\n equal: '{title}必须等于 {equal}',\n min: '{title}必须大于等于 {min}',\n max: '{title}必须小于等于 {max}',\n enum: '{title}必须是 {enum} 之一',\n hasKeys: '{title}必须包含 {hasKeys} 字段',\n minLen: '{title}长度必须大于 {minLen}',\n maxLen: '{title}长度必须小于 {maxLen}',\n len: '{title}长度必须为 {len}',\n integer: '{title}必须为整数',\n number: '{title}必须为数字',\n },\n }\n}","import $FormCreate from '../components/formCreate';\nimport {computed, createApp, h, nextTick, reactive, ref, watch} from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory, mergeRule} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, deepGet, invoke, mergeGlobal, parseFn, parseJson, setPrototypeOf, toJson} from './util';\nimport fragment from '../components/fragment';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend, {copy} 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 Mitt from '@form-create/utils/lib/mitt';\nimport html from '../parser/html';\nimport uniqueId from '@form-create/utils/lib/unique';\nimport {cookieDriver, localStorageDriver, sessionStorageDriver} from './dataDriver';\nimport debounce from '@form-create/utils/lib/debounce';\nimport {deepSet} from '@form-create/utils';\nimport baseLanguage from './language';\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 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 = {};\nconst defValueTag = Symbol('defValue');\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 modelFields = {};\n const drivers = {};\n const useApps = [];\n const listener = [];\n const extendApiFn = [\n config.extendApi\n ];\n const providers = {\n ...$provider\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const isMobile = config.isMobile === true;\n const loadData = reactive({\n $mobile: isMobile,\n });\n const CreateNode = CreateNodeFactory();\n const formulas = {};\n const prototype = {};\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val)) {\n return val.map(v => {\n return v.api();\n });\n } else if (val) {\n return val.api();\n }\n }\n\n function useApp(fn) {\n useApps.push(fn);\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] = is.Function(data.prop) ? data.prop : {\n ...data.prop,\n name: data.id\n };\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser(key) {\n if (arguments.length === 0) {\n return BaseParser;\n } else if (typeof key === 'string' && arguments.length === 1) {\n return parsers[toCase(key)];\n }\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return BaseParser;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = setPrototypeOf(parser, base || BaseParser);\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = id;\n if (component === undefined) {\n return components[name];\n }\n } else {\n name = id.displayName || id.name;\n component = id;\n }\n if (!name || !component) return;\n const nameAlias = toCase(name);\n components[name] = component;\n components[nameAlias] = component;\n delete CreateNode.aliasMap[name];\n delete CreateNode.aliasMap[nameAlias];\n delete parsers[name];\n delete parsers[nameAlias];\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return $FormCreate(FormCreate, components, directives);\n }\n\n function createFormApp(rule, option) {\n const Type = $form();\n return createApp({\n data() {\n return reactive({\n rule, option\n });\n },\n render() {\n return h(Type, {ref: 'fc', ...this.$data});\n }\n });\n }\n\n function $vnode() {\n return 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, option) {\n let app = createFormApp(rules, option || {});\n useApps.forEach(v => {\n invoke(() => v(create, app));\n })\n const div = document.createElement('div');\n (option?.el || document.body).appendChild(div);\n const vm = app.mount(div);\n return vm.$refs.fc.fapi;\n }\n\n setPrototypeOf(create, prototype);\n\n function factory(inherit) {\n let _config = {...config};\n if (inherit) {\n _config.inherit = {\n components,\n parsers,\n directives,\n modelFields,\n providers,\n useApps,\n maker,\n formulas,\n loadData\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function setModelField(name, field) {\n modelFields[name] = field;\n }\n\n function setFormula(name, fn) {\n formulas[name] = fn;\n }\n\n function setDriver(name, driver) {\n const parent = drivers[name] || {};\n const parsers = parent.parsers || {};\n if (driver.parsers) {\n Object.keys(driver.parsers).forEach(k => {\n parsers[k] = setPrototypeOf(driver.parsers[k], BaseParser);\n });\n }\n driver.name = name;\n drivers[name] = {...parent, ...driver, parsers};\n }\n\n function refreshData(id) {\n if (id) {\n Object.keys(instance).forEach(v => {\n const apis = Array.isArray(instance[v]) ? instance[v] : [instance[v]];\n apis.forEach(that => {\n that.bus.$emit('$loadData.' + id);\n })\n })\n }\n }\n\n function setData(id, data) {\n deepSet(loadData, id, data);\n refreshData(id);\n }\n\n function setDataDriver(id, data) {\n const callback = (...args) => {\n return invoke(() => data(...args));\n }\n callback._driver = true;\n setData(id, callback);\n }\n\n function getData(id, def) {\n const split = (id || '').split('.');\n id = split.shift();\n const field = split.join('.');\n if (!hasProperty(loadData, id)) {\n loadData[id] = defValueTag;\n }\n if (loadData[id] !== defValueTag) {\n let val = loadData[id];\n if (val && val._driver) {\n val = val(field);\n } else if (split.length) {\n val = deepGet(val, split);\n }\n return (val == null || val === '') ? def : val;\n } else {\n return def;\n }\n }\n\n function extendApi(fn) {\n extendApiFn.push(fn);\n }\n\n function removeData(id) {\n delete loadData[id];\n refreshData(id);\n }\n\n function on(name, callback) {\n listener.push({name, callback});\n }\n\n function FormCreate(vm) {\n extend(this, {\n id: id++,\n create,\n vm,\n manager: createManager(config.manager),\n parsers,\n providers,\n modelFields,\n formulas,\n isMobile,\n rules: vm.props.rule,\n name: vm.props.name || uniqueId(),\n inFor: vm.props.inFor,\n prop: {\n components,\n directives,\n },\n get: null,\n drivers,\n renderDriver: null,\n refreshData,\n loadData,\n CreateNode,\n bus: new Mitt(),\n unwatch: [],\n options: ref({}),\n extendApiFn,\n fetchCache: new WeakMap(),\n tmpData: reactive({}),\n })\n listener.forEach(item => {\n this.bus.$on(item.name, item.callback);\n });\n nextTick(() => {\n watch(this.options, () => {\n this.$handle.$manager.updateOptions(this.options.value);\n this.api().refresh();\n }, {deep: true})\n });\n extend(vm.appContext.components, components);\n extend(vm.appContext.directives, directives);\n this.$handle = new Handle(this)\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this);\n } else {\n instance[this.name] = this;\n }\n }\n }\n\n FormCreate.isMobile = isMobile;\n\n extend(FormCreate.prototype, {\n init() {\n if (this.isSub()) {\n this.unwatch.push(watch(() => this.vm.setupState.parent.setupState.fc.options.value, () => {\n this.initOptions();\n this.$handle.api.refresh();\n }, {deep: true, flush: 'sync'}));\n }\n if (this.vm.props.driver) {\n this.renderDriver = typeof this.vm.props.driver === 'object' ? this.vm.props.driver : this.drivers[this.vm.props.driver];\n }\n if (!this.renderDriver && this.vm.setupState.parent) {\n this.renderDriver = this.vm.setupState.parent.setupState.fc.renderDriver;\n }\n if (!this.renderDriver) {\n this.renderDriver = this.drivers.default;\n }\n this.initOptions();\n this.$handle.init();\n },\n targetFormDriver(method, ...args) {\n this.bus.$emit(method, ...args);\n if (this.renderDriver && this.renderDriver[method]) {\n return invoke(() => this.renderDriver[method](...args));\n }\n },\n t(id, params, get) {\n let value = get ? get('$t.' + id) : this.globalLanguageDriver(id);\n if (value == null) {\n value = '';\n }\n if (value && params) {\n Object.keys(params).forEach(param => {\n const regex = new RegExp(`{${param}}`, 'g');\n value = value.replace(regex, params[param]);\n });\n }\n return value;\n },\n globalDataDriver(id) {\n let split = id.split('.');\n const key = split.shift();\n const option = this.options.value.globalData && this.options.value.globalData[key];\n if (option) {\n if (option.type === 'static') {\n return deepGet(option.data, split);\n } else {\n let val;\n const res = this.fetchCache.get(option);\n if (res) {\n if (res.status) {\n val = deepGet(res.data, split);\n }\n if (!res.loading) {\n return val;\n }\n res.loading = false;\n this.fetchCache.set(option, res);\n } else {\n this.fetchCache.set(option, {status: false});\n }\n const reload = debounce(() => {\n unwatch();\n const res = this.fetchCache.get(option);\n if ((this.options.value.globalData && Object.values(this.options.value.globalData).indexOf(option) !== -1)) {\n if (res) {\n res.loading = true;\n this.fetchCache.set(option, res);\n }\n this.bus.$emit('$loadData.$globalData.' + key);\n } else {\n this.fetchCache.delete(option);\n }\n }, option.wait || 600)\n\n const _emit = (data) => {\n this.fetchCache.set(option, {status: true, data});\n this.bus.$emit('$loadData.$globalData.' + key);\n };\n\n const callback = (get, change) => {\n if (change && option.watch === false) {\n return unwatch();\n }\n if (change) {\n reload();\n return;\n }\n const options = this.$handle.loadFetchVar(copy(option), get);\n options.targetRule = this.targetRule;\n this.$handle.api.fetch(options).then(res => {\n _emit(res);\n }).catch(e => {\n _emit(null);\n });\n };\n const unwatch = this.watchLoadData(callback);\n if(option.watch === false) {\n unwatch();\n }\n this.unwatch.push(unwatch);\n return val;\n }\n }\n },\n getLocale() {\n let locale = this.vm.setupState.top.props.locale;\n if (locale && typeof locale === 'object') {\n return locale.name;\n }\n if (typeof locale === 'string') {\n return locale;\n }\n return 'zh-cn';\n },\n globalLanguageDriver(id) {\n let t = this.vm.setupState.top.props.t;\n let locale = this.vm.setupState.top.props.locale;\n let value = undefined;\n if (t) {\n value = invoke(() => t(id));\n }\n if (value == null && locale && typeof locale === 'object') {\n value = deepGet(locale, id);\n }\n if (value == null) {\n const language = this.options.value.language || {};\n const locale = this.getLocale();\n value = deepGet(language[locale] || {}, id);\n if (value == null) {\n value = deepGet(baseLanguage[locale] || {}, id);\n }\n }\n return value;\n },\n globalVarDriver(id) {\n let split = id.split('.');\n const key = split.shift();\n const option = this.options.value.globalVariable && this.options.value.globalVariable[key];\n if (option) {\n const handle = is.Function(option) ? option : parseFn(option.handle);\n if (handle) {\n let val = handle((...args) => this.$handle.api.getData(...args), this.$handle.api);\n return deepGet(val, split);\n }\n }\n },\n setData(id, data, isGlobal) {\n if (!isGlobal) {\n deepSet(this.vm.setupState.top.setupState.fc.tmpData, id, data);\n this.bus.$emit('$loadData.' + id);\n } else {\n setData(id, data);\n }\n },\n getLoadData(id, def) {\n let val = null;\n if (id != null) {\n let split = id.split('.');\n const key = split.shift();\n val = deepGet(this.vm.setupState.top.setupState.fc.tmpData, id);\n if (val != null) {\n return val;\n } else if (key === '$topForm') {\n val = this.$handle.api.top.formData(true);\n } else if (key === '$scopeForm') {\n val = this.$handle.api.scope.formData(true);\n } else if (key === '$form') {\n val = this.$handle.api.formData(true);\n } else if (key === '$options') {\n val = this.options.value;\n } else if (key === '$globalData') {\n val = this.globalDataDriver(split.join('.'));\n split = [];\n } else if (key === '$var') {\n val = this.globalVarDriver(split.join('.'));\n split = [];\n } else if (key === '$locale') {\n val = this.getLocale();\n split = [];\n } else if (key === '$t') {\n val = this.globalLanguageDriver(split.join('.'));\n split = [];\n } else if (key === '$preview') {\n return this.$handle.preview;\n } else {\n val = getData(id);\n split = [];\n }\n if (val && split.length) {\n val = deepGet(val, split);\n }\n }\n return (val == null || val === '') ? def : val;\n },\n watchLoadData(fn, wait) {\n let unwatch = {};\n\n const run = (flag) => {\n if (!this.get) {\n this.get = get;\n }\n invoke(() => {\n fn(get, flag);\n });\n if (this.get === get) {\n this.get = undefined;\n }\n };\n\n const get = (id, def) => {\n let getValue;\n if (typeof id === 'object') {\n getValue = id.getValue;\n id = id.id;\n }\n if (unwatch[id]) {\n return unwatch[id].val;\n }\n const data = computed(() => {\n return getValue ? getValue() : this.getLoadData(id, def);\n })\n const split = id.split('.');\n const key = split.shift();\n const key2 = split.shift() || '';\n const callback = debounce(() => {\n const temp = getValue ? getValue() : this.getLoadData(id, def);\n if (!unwatch[id]) {\n return;\n } else if (((temp instanceof Function || is.Object(temp) || Array.isArray(temp)) && temp === unwatch[id].val) || JSON.stringify(temp) !== JSON.stringify(unwatch[id].val)) {\n unwatch[id].val = temp;\n run(true);\n }\n }, wait || 0);\n const un = watch(data, (n) => {\n callback();\n });\n this.bus.$on('$loadData.' + key, callback);\n if (key2) {\n this.bus.$on('$loadData.' + key + '.' + key2, callback);\n }\n unwatch[id] = {\n fn: (() => {\n this.bus.$off('$loadData.' + key, callback);\n if (key2) {\n this.bus.$off('$loadData.' + key + '.' + key2, callback);\n }\n un();\n }),\n val: data.value,\n }\n return data.value;\n }\n run(false);\n const un = () => {\n Object.keys(unwatch).forEach(k => unwatch[k].fn());\n unwatch = {};\n }\n this.unwatch.push(un);\n return un;\n },\n isSub() {\n return this.vm.setupState.parent && this.vm.props.extendOption;\n },\n initOptions() {\n this.options.value = {};\n let options = {\n formData: {},\n submitBtn: {},\n resetBtn: {},\n globalEvent: {},\n globalData: {}, ...deepCopy(globalConfig)\n };\n const isSubForm = this.isSub();\n if (isSubForm) {\n options = this.mergeOptions(options, this.vm.setupState.parent.setupState.fc.options.value || {}, true);\n }\n options = this.mergeOptions(options, this.vm.props.option);\n const api = this.api();\n this.targetFormDriver('initOptions', options, {api, isSubForm});\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = {...opt || {}};\n parent && ['page', 'onSubmit', 'onReset', 'onCreated', 'onChange', 'onMounted', 'mounted', 'onReload', 'reload', 'formData', 'el', 'globalClass', 'style'].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.options.value = this.mergeOptions(this.options.value, options);\n this.$handle.$manager.updateOptions(this.options.value);\n this.bus.$emit('$loadData.$options');\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 unmount() {\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this);\n instance[this.name].splice(idx, 1);\n } else {\n delete instance[this.name];\n }\n }\n listener.forEach(item => {\n this.bus.$off(item.name, item.callback);\n });\n this.tmpData = {};\n this.unwatch.forEach(fn => fn());\n this.unwatch = [];\n this.$handle.reloadRule([]);\n },\n updated() {\n this.$handle.bindNextTick(() => this.bus.$emit('next-tick', this.$handle.api));\n }\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n isMobile,\n extendApi,\n getData,\n setDataDriver,\n setData,\n removeData,\n refreshData,\n maker,\n component,\n directive,\n setModelField,\n setFormula,\n setDriver,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n mergeRule,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n useApp,\n getApi,\n on,\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(app, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n const key = `_installedFormCreate${isMobile ? 'Mobile' : ''}_${config.ui}`;\n if (app[key] === true) return;\n app[key] = true;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n app.config.globalProperties.$formCreate = $formCreate;\n const $component = $form();\n app.component($component.name, $component);\n useApps.forEach(v => {\n invoke(() => v(formCreate, app));\n })\n }\n })\n }\n\n useAttr(prototype);\n useStatic(prototype);\n\n setDataDriver('$cookie', cookieDriver);\n setDataDriver('$localStorage', localStorageDriver);\n setDataDriver('$sessionStorage', sessionStorageDriver);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n config.install && create.use(config);\n\n useApp((_, app) => {\n app.mixin({\n props: ['formCreateInject'],\n })\n })\n\n parser(html);\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.modelFields && extend(modelFields, inherit.modelFields);\n inherit.providers && extend(providers, inherit.providers);\n inherit.useApps && extend(useApps, inherit.useApps);\n inherit.maker && extend(maker, inherit.maker);\n inherit.loadData && extend(loadData, inherit.loadData);\n inherit.formulas && extend(formulas, inherit.formulas);\n }\n\n const FcComponent = $form();\n setPrototypeOf(FcComponent, prototype);\n Object.defineProperties(FcComponent, {\n fetch: {\n get() {\n return prototype.fetch;\n },\n set(val) {\n prototype.fetch = val;\n }\n }\n })\n\n FcComponent.util = prototype;\n\n return FcComponent;\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","\nexport function $set(target, field, value) {\n target[field] = value;\n}\n\nexport function $del(target, field) {\n 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","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== 'function') {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return (new Function('return ' + fn))();\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf('$FN:') === 0) {\n v = v.substring(4);\n flag = true;\n } else if (v.indexOf('$EXEC:') === 0) {\n v = v.substring(6);\n flag = true;\n } else if (v.indexOf('$GLOBAL:') === 0) {\n const name = v.substring(8);\n v = function (...args) {\n const callback = args[0].api.getGlobalEvent(name);\n if (callback) {\n return callback.call(this, ...args);\n }\n return undefined;\n }\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (v.indexOf('$FNX:') === 0) {\n v = makeFn('function($inject){\\n' + v.substring(5) + '\\n}');\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 } else if (!mode && v.indexOf('function(') === 0 && v !== 'function(') {\n flag = true;\n }\n if (!flag) return fn;\n let val;\n try{\n val = makeFn(v);\n }catch (e){\n val = makeFn('function ' + v);\n }\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","let id = 0;\n\nexport default function uniqueId() {\n const num = 370 + (++id);\n return 'F' + Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}`).toString(36) + num.toString(36) + 'c';\n}\n","export default function debounce(fn, wait) {\n var timeout = null;\n return function (...arg) {\n if (timeout !== null)\n clearTimeout(timeout);\n timeout = setTimeout(() => fn.call(this, ...arg), wait);\n }\n}\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","export default function getSlot(slots, exclude) {\n return Object.keys(slots).reduce((lst, name) => {\n if (!exclude || exclude.indexOf(name) === -1) {\n lst[name] = slots[name]\n }\n return lst;\n }, {})\n}","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","import is from './type';\n\nexport default function toDate(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","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\nexport function upper(str) {\n return str.replace(str[0], str[0].toLocaleUpperCase());\n}","function isPromise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\n\nexport default function toPromise(value) {\n if (isPromise(value)) {\n return value;\n }\n return Promise.resolve(value);\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"],"names":["Calendar","defineComponent","name","inheritAttrs","props","placeholder","String","formCreateInject","Object","disabled","Boolean","clearable","type","modelValue","Array","minDate","Date","maxDate","emits","setup","_","show","ref","toRef","inputValue","value","watch","n","formatter","date","dayjs","format","toDate","str","defaultDate","computed","isArray","map","dateRange","undefined","formatValue","onInput","emit","strValue","range","length","join","multiple","t","open","confirm","getStrValue","hasProperty","clear","e","stopPropagation","render","h","class","this","readonly","$props","onClick","model-value","isLink","border","v-slots","right-icon","clearIcon","is","empty","_extends","$attrs","onUpdate:show","v","onConfirm","mounted","$emit","$refs","el","normalizeOptions","options","item","normalized","label","text","children","Cascader","fieldNames","Number","_fieldNames$value","findOptions","path","i","find","updateInputValue","option","deep","val","selectedOptions","round","position","onClose","onFinish","Checkbox","direction","onUpdateModelValue","opt","tmp","shape","Select","columnsFieldNames","selectedValues","columns","onCancel","parseFile","file","url","is_string","getFileName","uid","parseUpload","split","pop","Uploader","afterRead","Function","action","headers","method","data","uploadName","onSuccess","onError","maxCount","fileList","toArray","uploadValue","files","filter","onDelete","uploadFile","status","api","fetch","dataType","source","then","res","catch","message","onUpdate:model-value","$slots","Radio","DatePicker","formValue","columnsType","TimePicker","Group","field","rule","expand","button","default","max","min","defaultValue","sortBtn","title","onBeforeRemove","onBeforeAdd","parse","len","cacheRule","cacheValue","sort","form","markRaw","$form","handler","o","keys","forEach","$f","formData","deferSyncValue","deepExtend","setValue","once","deepCopy","d","expandRule","total","addRule","removeRule","methods","_value","cache","k","JSON","stringify","input","key","[object Object]","coverValue","copyRules","submitBtn","resetBtn","defVal","extend","index","nextTick","add$f","indexOf","add","push","del","splice","toPromise","addIcon","delIcon","sortUpIcon","changeSort","sortDownIcon","a","subForm","sortIcon","canMoveUp","canMoveDown","makeIcon","vm","btn","getTitle","replace","created","Type","isCardType","onUpdate:modelValue","onUpdate:api","inFor","extendOption","script","viewBox","xmlns","_openBlock","openBlock","_createElementBlock","_hoisted_1","_cache","_createElementVNode","fill","components","IconWarning","parsers","maker","hidden","creatorFactory","ctx","vNode","col","span","row","prop","mergeProp","alias","PRE","icon","slider","stepper","inputNumber","rate","uploader","upload","cell","timePicker","datePicker","switch","select","cascader","calendar","checkbox","radio","textarea","formItem","group","array","object","tidy","isFalse","tidyRule","_rule","manager","validate","Promise","validateField","resolve","reject","clearValidateState","resetValidation","id","tidyOptions","tidyBool","pattern","RegExp","def","info","wrap","mergeProps","getDefaultOptions","required","labelAlign","inputAlign","gutter","loading","block","innerText","size","click","adapterValidate","validator","trigger","err","update","on","submit","preventDefault","style","beforeRender","className","$handle","preview","slotLen","setSlot","makeFormBtn","$r","getSlots","makeRow","makeWrap","uni","isTitle","_col","cls","rules","injectValidate","$render","mergeClass","wrapRef","makeInfo","makeCol","native","_ctx$refRule","_ctx$refRule2","titleProp","infoProp","titleSlot","getSlot","refRule","__$title","flag","align","_prop","args","_ctx$refRule3","showNotify","__$info","duration","targetHook","vn","makeSubmitBtn","makeResetBtn","width","fApi","resetFields","tidyBtnProp","Undef","extendApi","formEl","$manager","wrapEl","getFieldCtx","refs","callback","forms","all","isScope","emitEvent","sub","fields","clearSub","helper","tidyFields","clearSubValidateState","getCtxs","submitBtnProps","isShow","resetBtnProps","refreshOptions","successFn","failFn","validateOnSubmit","beforeSubmit","invoke","onSubmit","css","insertAt","document","head","getElementsByTagName","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","load","inject","parseVal","getValue","_title","clearProp","updateMessage","_rule$__fc__$refRule$","__fc__","match","getLocale","getProp","sync","install","FormCreate","componentAlias","component","register","parser","Field","FormCreateMobile","FormCreateFactory","ui","version","isMobile","attrs","normal","window","formCreateMobile","keyAttrs","arrayAttrs","normalAttrs","normalMerge","toArrayMerge","functionalMerge","enumerable","writable","configurable","copyRule","mode","mergeRule","merge","getRule","r","funcProxy","that","proxy","defineProperties","reduce","initial","get","byCtx","__origin__","fn","logError","makeSlotBag","slotBag","slotName","slot","vnFn","slots","mergeBag","bag","isVNode","toProps","toCase","upper","setPrototypeOf","proto","changeType","b","condition","==","!=",">",">=","<","<=","notOn","in","notIn","between","notBetween","notEmpty","test","deepGet","convertFieldToConditions","parts","conditions","currentCondition","part","getGroupInject","parent","$FormCreate","directives","driver","locale","fc","getCurrentInstance","provide","top","setupState","toRefs","reactive","ctxInject","destroyed","unique","renderRule","updateValue","fapi","isMore","styleEl","onBeforeMount","watchEffect","content","globalClass","subCss","toLine","innerHTML","emit$topForm","debounce","bus","emit$scopeForm","emit$form","emit$change","onMounted","$on","scope","onBeforeUnmount","$off","rmSubForm","getSubForm","idx","unmount","parentNode","parentElement","removeChild","onUpdated","updated","addSubForm","initOptions","refresh","flush","isBreakWatch","every","updateAppendData","reloadRule","toJson","config","forceCoverValue","json","init","Creator","_data","display","event","appendProto","prototype","arguments","setProp","$set","modelField","_clone","clone","constructor","commonMaker","create","make","makerFactory","factory","getBody","xhr","responseText","response","XMLHttpRequest","onProgress","addEventListener","evt","percent","loaded","query","acc","queryString","URLSearchParams","toString","includes","onerror","onload","msg","Error","getError","toLowerCase","FormData","append","setRequestHeader","filename","withCredentials","send","asyncFetch","_fetch","parseFn","targetRule","copy","Render","handle","CreateNode","force","tmpInput","initCache","initRender","clearCacheAll","clearCache","use","setCache","vnode","getCache","useCache","cacheConfig","getTypeSlot","_fn","renderSlot","ctxs","isFragment","initProp","mergeGlobal","initNone","renderChildren","loadChildrenPending","renderCtx","global","trueType","g","originType","setOptions","loadPending","origin","optionsTo","deepSet","parseSide","side","renderSides","temp","prefix","suffix","renderId","ctxProp","injectProp","cacheFlag","slotValue","model","slotUpdate","_load","loadChildren","renderSlots","_vn","targetFormDriver","none","__v_isVNode","stable","console","error","target","$stable","getModelField","modelFields","aliasMap","state","getWrap","onUpdateValue","vnodeMounted","__rule__","fc.updateValue","fc.el","exportEl","$el","getFormData","modelEmit","onEmitInput","effect","onBaseInput","toValue","trueArray","child","defaultRender","makeComponent","lower","createChildrenVnodes","createRuleVnode","useRender$1","EVENT","RuleContext","isInput","pending","linkOn","root","ctrlRule","subRule","payload","updateKey","findCtrl","ctrl","isCtrl","__ctrl","strFn","getParentGroup","onLoad","onUpdate","oldValue","updateChildren","onReload","getPending","$api","setPending","reload","effectData","clearEffectData","updateType","getType","setParser","_this$refRule","__$validate","hasHidden","check","unwatch","un","unlink","link","appendLink","watchTo","watchCtx","delete","rmCtrl","deleted","rm","_rm","noWatch","rmCtx","BaseParser","toFormValue","renderDriver","defaultPreview","noneKey","oldValueTag","Symbol","Handler","watching","reloading","noWatchFn","deferSyncFn","isMounted","subRuleData","appendData","ignoreFields","providers","cycleLoad","loadedId","changeStatus","pageEnd","nextReload","lifecycle","initData","extendApiFn","fieldCtx","nameCtx","allSubForm","subs","isPreview","siblings","formulas","appendValue","removeField","getCtx","after","prepend","hiddenStatus","displayStatus","bind","updateOptions","hideForm","hide","clearChangeStatus","updateRule","updateRules","mergeRules","findType","findTypes","getRenderRule","getRefRule","setEffect","attr","substr","updateValidate","updateValidates","validates","refreshValidate","onReset","exec","space","closeModal","getChildrenRuleList","getParentRule","getParentSubRule","getChildrenFormData","ignore","setChildrenFormData","cover","getGlobalEvent","globalEvent","getGlobalData","globalData","loadData","emitGlobalEvent","getInjectData","unshift","apply","setGlobalData","setData","setGlobalVar","$once","nextRefresh","emitsOptions","getCurrentFormRule","_h$vm$setupState$getG","loadFetchVar","fail","beforeFetch","watchFetch","watchLoadData","change","_opt","wait","getData","getLoadData","watchData","isGlobal","refreshData","params","changeValue","changeField","Api","useProvider","usePage","loadRule","__init","globalBeforeFetch","parseInjectEvent","injectEvent","parseEventLst","parseEvent","__inject","parseEmit","emitPrefix","eventName","eventInject","emitKey","fieldKey","arg","__emit","_inject","self","__origin","__json","loadStrVar","vars","regex","matches","extractVar","_split","shift","treeToVal","tree","slice","isNaN","lastVal","trim","parseTemplateToTree","template","tokens","current","depth","char","token","replaceAll","loadVal","useInject","page","first","limit","Math","ceil","parseInt","pageLoad","pageFn","clearNextTick","clearTimeout","bindNextTick","setTimeout","useRender","parseRule","fullRule","loadFn","loadCtrl","control","syncProp","pre","_loadRule","syncForm","preIndex","isRepeat","ruleEffect","repeat","isCopy","isInit","parseJson","bindParser","rmSubRuleData","setCtx","_preIndex","refreshUpdate","refreshControl","useCtrl","controls","getCtrl","handleFn","valid","isHidden","hideLst","reverse","ruleCon","ctrlCtx","_reloadRule","useLoader","setFlag","setFormData","syncValue","valueChange","fieldChange","isQuote","isChange","subData","isIgnore","ignoreHiddenFields","linkField","refreshRule","useInput","getNameCtx","setIdCtx","rmIdCtx","lst","getParser","list","newValue","call","adapter","computedRule","computedValue","compute","linkage","linkageVariable","beforeValidate","getValidateMessage","invalid","formatRule","entries","num","isInteger","some","checkCondition","or","one","variableVal","variable","compare","invert","computeValue","obj","rmSub","$del","useContext","_mounted","_ctx$prop","run","p","values","hook","deepName","_parent$prop","useLifecycle","ps","_c","c","arr","getComponent","onEffect","provider","used","_used","_ctx$rule","emitEffect","custom","getEffect","_type","useEffect","fragment","makeDirective","withDirectives","concat","directive","resolveDirective","modifiers","tidyDirectives","createManager","CustomManager","Manager","assign","mergeOptionsRule","mergeOptions","componentValidate","$provider","fetchAttr","to","parseOpt","set","fetchCache","_option","body","unwatchs","modify","isObj","html","tag","getCookie","cookieArray","decodeURIComponent","cookie","charAt","substring","getLocalStorage","localStorage","getItem","getSessionStorage","sessionStorage","baseDriver","cookieDriver","localStorageDriver","sessionStorageDriver","baseLanguage","en","email","ip","phone","uppercase","lowercase","positive","negative","equal","enum","hasKeys","minLen","maxLen","integer","number","zh-cn","parseProp","nameProp","instance","defValueTag","Element","nodeType","isArr","hasOwnProperty","nst","PREFIX","SUFFIX","makeFn","timeout","drivers","useApps","listener","globalConfig","$mobile","createVNode","isNativeTag","appContext","resolveComponent","nodes","line","toLocaleLowerCase","CreateNodeFactory","getApi","useApp","base","displayName","nameAlias","formCreateParser","$vnode","app","createApp","$data","createFormApp","div","mount","inherit","_config","setModelField","setFormula","setDriver","setDataDriver","_driver","removeData","uniqueId","Mitt","WeakMap","tmpData","Handle","useAttr","formCreate","exportAttrs","isSub","globalLanguageDriver","param","globalDataDriver","_emit","language","globalVarDriver","globalVariable","key2","isSubForm","$formCreate","globalProperties","$component","mixin","FcComponent","util","exclude","timeStamp","_isVue","isPromise","random","now"],"mappings":"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"}
1
+ {"version":3,"file":"index.min.js","sources":["../src/vant/src/components/calendar.jsx","../src/vant/src/core/utils.js","../src/vant/src/components/cascader.jsx","../src/vant/src/components/checkbox.jsx","../src/vant/src/components/select.jsx","../src/vant/src/components/uploader.jsx","../src/vant/src/components/radio.jsx","../src/vant/src/components/datePicker.jsx","../src/vant/src/components/timePicker.jsx","../src/vant/src/components/group.jsx","../src/vant/src/components/icon/IconWarning.vue","../src/vant/src/components/icon/IconWarning.vue?vue&type=template&id=78ef5f99&lang.js","../src/vant/src/components/index.js","../src/vant/src/parsers/index.js","../src/vant/src/parsers/hidden.js","../src/vant/src/parsers/row.js","../src/vant/src/core/alias.js","../node_modules/vant/es/utils/basic.mjs","../node_modules/vant/es/utils/props.mjs","../node_modules/@vant/use/dist/index.esm.mjs","../node_modules/vant/es/utils/dom.mjs","../node_modules/vant/es/utils/format.mjs","../node_modules/vant/es/utils/deep-assign.mjs","../node_modules/vant/es/locale/index.mjs","../node_modules/vant/es/locale/lang/zh-CN.mjs","../node_modules/vant/es/utils/create.mjs","../node_modules/vant/es/utils/constant.mjs","../node_modules/vant/es/utils/interceptor.mjs","../node_modules/vant/es/utils/with-install.mjs","../node_modules/vant/es/utils/closest.mjs","../node_modules/vant/es/composables/on-popup-reopen.mjs","../node_modules/vant/es/composables/use-height.mjs","../node_modules/vant/es/composables/use-placeholder.mjs","../node_modules/vant/es/action-bar/ActionBar.mjs","../node_modules/vant/es/action-bar/index.mjs","../node_modules/vant/es/composables/use-expose.mjs","../node_modules/vant/es/composables/use-route.mjs","../node_modules/vant/es/badge/Badge.mjs","../node_modules/vant/es/badge/index.mjs","../node_modules/vant/es/composables/use-global-z-index.mjs","../node_modules/vant/es/config-provider/ConfigProvider.mjs","../node_modules/vant/es/icon/Icon.mjs","../node_modules/vant/es/icon/index.mjs","../node_modules/vant/es/loading/Loading.mjs","../node_modules/vant/es/loading/index.mjs","../node_modules/vant/es/button/Button.mjs","../node_modules/vant/es/button/index.mjs","../node_modules/vant/es/action-bar-button/ActionBarButton.mjs","../node_modules/vant/es/action-bar-button/index.mjs","../node_modules/vant/es/action-bar-icon/ActionBarIcon.mjs","../node_modules/vant/es/action-bar-icon/index.mjs","../node_modules/vant/es/popup/shared.mjs","../node_modules/vant/es/composables/use-touch.mjs","../node_modules/vant/es/composables/use-lock-scroll.mjs","../node_modules/vant/es/composables/use-lazy-render.mjs","../node_modules/vant/es/composables/use-scope-id.mjs","../node_modules/vant/es/overlay/Overlay.mjs","../node_modules/vant/es/overlay/index.mjs","../node_modules/vant/es/popup/Popup.mjs","../node_modules/vant/es/popup/index.mjs","../node_modules/vant/es/action-sheet/ActionSheet.mjs","../node_modules/vant/es/action-sheet/index.mjs","../node_modules/vant/es/picker/utils.mjs","../node_modules/vant/es/picker/PickerColumn.mjs","../node_modules/vant/es/picker/PickerToolbar.mjs","../node_modules/vant/es/composables/use-sync-prop-ref.mjs","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../node_modules/vant/es/composables/use-id.mjs","../node_modules/vant/es/composables/use-refs.mjs","../node_modules/vant/es/composables/use-visibility-change.mjs","../node_modules/vant/es/sticky/Sticky.mjs","../node_modules/vant/es/sticky/index.mjs","../node_modules/vant/es/swipe/Swipe.mjs","../node_modules/vant/es/swipe/index.mjs","../node_modules/vant/es/tabs/TabsContent.mjs","../node_modules/vant/es/tabs/Tabs.mjs","../node_modules/vant/es/tabs/utils.mjs","../node_modules/vant/es/composables/use-tab-status.mjs","../node_modules/vant/es/tab/TabTitle.mjs","../node_modules/vant/es/swipe-item/SwipeItem.mjs","../node_modules/vant/es/swipe-item/index.mjs","../node_modules/vant/es/tab/Tab.mjs","../node_modules/vant/es/tab/index.mjs","../node_modules/vant/es/tabs/index.mjs","../node_modules/vant/es/picker-group/PickerGroup.mjs","../node_modules/vant/es/picker/Picker.mjs","../node_modules/vant/es/area/utils.mjs","../node_modules/vant/es/picker/index.mjs","../node_modules/vant/es/area/Area.mjs","../node_modules/vant/es/area/index.mjs","../node_modules/vant/es/cell/Cell.mjs","../node_modules/vant/es/cell/index.mjs","../node_modules/vant/es/form/Form.mjs","../node_modules/vant/es/form/index.mjs","../node_modules/vant/es/field/utils.mjs","../node_modules/vant/es/field/Field.mjs","../node_modules/vant/es/field/index.mjs","../node_modules/vant/es/toast/lock-click.mjs","../node_modules/vant/es/toast/Toast.mjs","../node_modules/vant/es/utils/mount-component.mjs","../node_modules/vant/es/toast/function-call.mjs","../node_modules/vant/es/toast/index.mjs","../node_modules/vant/es/switch/Switch.mjs","../node_modules/vant/es/switch/index.mjs","../node_modules/vant/es/address-edit/AddressEditDetail.mjs","../node_modules/vant/es/address-edit/AddressEdit.mjs","../node_modules/vant/es/address-edit/index.mjs","../node_modules/vant/es/radio-group/RadioGroup.mjs","../node_modules/vant/es/radio-group/index.mjs","../node_modules/vant/es/checkbox-group/CheckboxGroup.mjs","../node_modules/vant/es/checkbox-group/index.mjs","../node_modules/vant/es/tag/Tag.mjs","../node_modules/vant/es/tag/index.mjs","../node_modules/vant/es/checkbox/Checker.mjs","../node_modules/vant/es/radio/Radio.mjs","../node_modules/vant/es/radio/index.mjs","../node_modules/vant/es/checkbox/Checkbox.mjs","../node_modules/vant/es/checkbox/index.mjs","../node_modules/vant/es/address-list/AddressListItem.mjs","../node_modules/vant/es/address-list/AddressList.mjs","../node_modules/vant/es/address-list/index.mjs","../node_modules/vant/es/back-top/BackTop.mjs","../node_modules/vant/es/back-top/index.mjs","../node_modules/vant/es/lazyload/vue-lazyload/util.mjs","../node_modules/vant/es/barrage/Barrage.mjs","../node_modules/vant/es/barrage/index.mjs","../node_modules/vant/es/calendar/utils.mjs","../node_modules/vant/es/date-picker/utils.mjs","../node_modules/vant/es/calendar/CalendarDay.mjs","../node_modules/vant/es/calendar/CalendarMonth.mjs","../node_modules/vant/es/calendar/CalendarHeader.mjs","../node_modules/vant/es/calendar/Calendar.mjs","../node_modules/vant/es/calendar/index.mjs","../node_modules/vant/es/image/Image.mjs","../node_modules/vant/es/image/index.mjs","../node_modules/vant/es/card/Card.mjs","../node_modules/vant/es/card/index.mjs","../node_modules/vant/es/cascader/Cascader.mjs","../node_modules/vant/es/cascader/index.mjs","../node_modules/vant/es/cell-group/CellGroup.mjs","../node_modules/vant/es/cell-group/index.mjs","../node_modules/vant/es/circle/Circle.mjs","../node_modules/vant/es/circle/index.mjs","../node_modules/vant/es/row/Row.mjs","../node_modules/vant/es/col/Col.mjs","../node_modules/vant/es/col/index.mjs","../node_modules/vant/es/collapse/Collapse.mjs","../node_modules/vant/es/collapse/index.mjs","../node_modules/vant/es/collapse-item/CollapseItem.mjs","../node_modules/vant/es/collapse-item/index.mjs","../node_modules/vant/es/config-provider/index.mjs","../node_modules/vant/es/contact-card/ContactCard.mjs","../node_modules/vant/es/contact-card/index.mjs","../node_modules/vant/es/contact-edit/ContactEdit.mjs","../node_modules/vant/es/contact-edit/index.mjs","../node_modules/vant/es/contact-list/ContactList.mjs","../node_modules/vant/es/contact-list/index.mjs","../node_modules/vant/es/count-down/CountDown.mjs","../node_modules/vant/es/coupon/utils.mjs","../node_modules/vant/es/count-down/index.mjs","../node_modules/vant/es/count-down/utils.mjs","../node_modules/vant/es/coupon/Coupon.mjs","../node_modules/vant/es/coupon/index.mjs","../node_modules/vant/es/coupon-cell/CouponCell.mjs","../node_modules/vant/es/coupon-cell/index.mjs","../node_modules/vant/es/empty/Empty.mjs","../node_modules/vant/es/empty/index.mjs","../node_modules/vant/es/coupon-list/CouponList.mjs","../node_modules/vant/es/coupon-list/index.mjs","../node_modules/vant/es/date-picker/DatePicker.mjs","../node_modules/vant/es/date-picker/index.mjs","../node_modules/vant/es/dialog/Dialog.mjs","../node_modules/vant/es/dialog/function-call.mjs","../node_modules/vant/es/dialog/index.mjs","../node_modules/vant/es/divider/Divider.mjs","../node_modules/vant/es/divider/index.mjs","../node_modules/vant/es/dropdown-menu/DropdownMenu.mjs","../node_modules/vant/es/dropdown-item/DropdownItem.mjs","../node_modules/vant/es/dropdown-item/index.mjs","../node_modules/vant/es/dropdown-menu/index.mjs","../node_modules/vant/es/floating-bubble/FloatingBubble.mjs","../node_modules/vant/es/floating-bubble/index.mjs","../node_modules/vant/es/floating-panel/FloatingPanel.mjs","../node_modules/vant/es/floating-panel/index.mjs","../node_modules/vant/es/grid/Grid.mjs","../node_modules/vant/es/grid/index.mjs","../node_modules/vant/es/grid-item/GridItem.mjs","../node_modules/vant/es/grid-item/index.mjs","../node_modules/vant/es/highlight/Highlight.mjs","../node_modules/vant/es/highlight/index.mjs","../node_modules/vant/es/image-preview/ImagePreviewItem.mjs","../node_modules/vant/es/image-preview/ImagePreview.mjs","../node_modules/vant/es/image-preview/function-call.mjs","../node_modules/vant/es/image-preview/index.mjs","../node_modules/vant/es/index-bar/IndexBar.mjs","../node_modules/vant/es/index-anchor/IndexAnchor.mjs","../node_modules/vant/es/index-anchor/index.mjs","../node_modules/vant/es/index-bar/index.mjs","../node_modules/vant/es/list/List.mjs","../node_modules/vant/es/list/index.mjs","../node_modules/vant/es/nav-bar/NavBar.mjs","../node_modules/vant/es/nav-bar/index.mjs","../node_modules/vant/es/notice-bar/NoticeBar.mjs","../node_modules/vant/es/notice-bar/index.mjs","../node_modules/vant/es/notify/Notify.mjs","../node_modules/vant/es/notify/function-call.mjs","../node_modules/vant/es/notify/index.mjs","../node_modules/vant/es/number-keyboard/NumberKeyboardKey.mjs","../node_modules/vant/es/number-keyboard/NumberKeyboard.mjs","../node_modules/vant/es/number-keyboard/index.mjs","../node_modules/vant/es/pagination/Pagination.mjs","../node_modules/vant/es/pagination/index.mjs","../node_modules/vant/es/password-input/PasswordInput.mjs","../node_modules/@vant/popperjs/dist/index.esm.mjs","../node_modules/vant/es/password-input/index.mjs","../node_modules/vant/es/picker-group/index.mjs","../node_modules/vant/es/popover/Popover.mjs","../node_modules/vant/es/popover/index.mjs","../node_modules/vant/es/progress/Progress.mjs","../node_modules/vant/es/progress/index.mjs","../node_modules/vant/es/pull-refresh/PullRefresh.mjs","../node_modules/vant/es/pull-refresh/index.mjs","../node_modules/vant/es/rate/Rate.mjs","../node_modules/vant/es/rate/index.mjs","../node_modules/vant/es/rolling-text/RollingTextItem.mjs","../node_modules/vant/es/rolling-text/RollingText.mjs","../node_modules/vant/es/rolling-text/index.mjs","../node_modules/vant/es/row/index.mjs","../node_modules/vant/es/search/Search.mjs","../node_modules/vant/es/search/index.mjs","../node_modules/vant/es/share-sheet/ShareSheet.mjs","../node_modules/vant/es/share-sheet/index.mjs","../node_modules/vant/es/sidebar/Sidebar.mjs","../node_modules/vant/es/sidebar/index.mjs","../node_modules/vant/es/sidebar-item/SidebarItem.mjs","../node_modules/vant/es/sidebar-item/index.mjs","../node_modules/vant/es/signature/Signature.mjs","../node_modules/vant/es/signature/index.mjs","../node_modules/vant/es/skeleton-title/SkeletonTitle.mjs","../node_modules/vant/es/skeleton-title/index.mjs","../node_modules/vant/es/skeleton-avatar/SkeletonAvatar.mjs","../node_modules/vant/es/skeleton-avatar/index.mjs","../node_modules/vant/es/skeleton-paragraph/SkeletonParagraph.mjs","../node_modules/vant/es/skeleton-paragraph/index.mjs","../node_modules/vant/es/skeleton/Skeleton.mjs","../node_modules/vant/es/skeleton/index.mjs","../node_modules/vant/es/skeleton-image/SkeletonImage.mjs","../node_modules/vant/es/skeleton-image/index.mjs","../node_modules/vant/es/slider/Slider.mjs","../node_modules/vant/es/slider/index.mjs","../node_modules/vant/es/space/Space.mjs","../node_modules/vant/es/space/index.mjs","../node_modules/vant/es/steps/Steps.mjs","../node_modules/vant/es/step/Step.mjs","../node_modules/vant/es/step/index.mjs","../node_modules/vant/es/stepper/Stepper.mjs","../node_modules/vant/es/stepper/index.mjs","../node_modules/vant/es/steps/index.mjs","../node_modules/vant/es/submit-bar/SubmitBar.mjs","../node_modules/vant/es/submit-bar/index.mjs","../node_modules/vant/es/swipe-cell/SwipeCell.mjs","../node_modules/vant/es/swipe-cell/index.mjs","../node_modules/vant/es/tabbar/Tabbar.mjs","../node_modules/vant/es/tabbar/index.mjs","../node_modules/vant/es/tabbar-item/TabbarItem.mjs","../node_modules/vant/es/tabbar-item/index.mjs","../node_modules/vant/es/text-ellipsis/TextEllipsis.mjs","../node_modules/vant/es/text-ellipsis/index.mjs","../node_modules/vant/es/time-picker/TimePicker.mjs","../node_modules/vant/es/time-picker/index.mjs","../node_modules/vant/es/tree-select/TreeSelect.mjs","../node_modules/vant/es/tree-select/index.mjs","../node_modules/vant/es/uploader/utils.mjs","../node_modules/vant/es/uploader/UploaderPreviewItem.mjs","../node_modules/vant/es/uploader/Uploader.mjs","../node_modules/vant/es/uploader/index.mjs","../node_modules/vant/es/watermark/Watermark.mjs","../src/vant/src/core/manager.js","../node_modules/vant/es/watermark/index.mjs","../src/vant/src/core/config.js","../src/vant/src/core/api.js","../node_modules/style-inject/dist/style-inject.es.js","../src/vant/src/core/provider.js","../src/vant/src/core/index.js","../src/vant/src/index.js","../src/core/src/frame/attrs.js","../src/core/src/frame/util.js","../src/core/src/components/formCreate.js","../src/core/src/factory/creator.js","../src/core/src/factory/maker.js","../src/core/src/frame/fetch.js","../src/core/src/frame/api.js","../src/core/src/render/index.js","../src/core/src/render/cache.js","../src/core/src/render/render.js","../src/core/src/handler/page.js","../src/core/src/factory/context.js","../src/core/src/handler/loader.js","../src/core/src/handler/input.js","../src/core/src/factory/parser.js","../src/core/src/handler/context.js","../src/core/src/handler/index.js","../src/core/src/handler/inject.js","../src/core/src/handler/render.js","../src/core/src/handler/lifecycle.js","../src/core/src/handler/effect.js","../src/core/src/components/fragment.js","../src/core/src/factory/node.js","../src/core/src/factory/manager.js","../src/core/src/frame/provider.js","../src/core/src/parser/html.js","../src/core/src/frame/dataDriver.js","../src/core/src/frame/language.js","../src/core/src/frame/index.js","../src/utils/lib/type.js","../src/utils/lib/modify.js","../src/utils/lib/deepextend.js","../src/utils/lib/extend.js","../src/utils/lib/console.js","../src/utils/lib/json.js","../src/utils/lib/unique.js","../src/utils/lib/debounce.js","../src/utils/lib/deepset.js","../src/utils/lib/slot.js","../src/utils/lib/toarray.js","../src/utils/lib/todate.js","../src/utils/lib/toline.js","../src/utils/lib/topromise.js","../src/utils/lib/tostring.js"],"sourcesContent":["import {computed, defineComponent, ref, toRef, watch} from 'vue';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport dayjs from 'dayjs';\n\nconst NAME = 'fcCalendar';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n placeholder: String,\n formCreateInject: Object,\n disabled: Boolean,\n clearable: Boolean,\n type: String,\n modelValue: [String, Array],\n minDate: [String, Date],\n maxDate: [String, Date],\n },\n emits: ['update:modelValue', 'change', 'fc.el'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n const formCreateInject = toRef(props, 'formCreateInject');\n const inputValue = ref(modelValue.value);\n\n watch(() => modelValue.value, (n) => {\n inputValue.value = n;\n })\n\n const formatter = (date) => {\n return dayjs(date).format('YYYY-MM-DD');\n }\n const toDate = (str) => {\n return dayjs(str).toDate();\n }\n\n const defaultDate = computed(() => {\n const value = modelValue.value;\n if (Array.isArray(value)) {\n return value.map(toDate);\n } else if (value) {\n return toDate(value);\n } else {\n return null;\n }\n })\n\n const dateRange = computed(() => {\n return {\n minDate: props.minDate ? dayjs(props.minDate).toDate() : undefined,\n maxDate: props.maxDate ? dayjs(props.maxDate).toDate() : undefined,\n }\n })\n\n const formatValue = (value) => {\n if (Array.isArray(value)) {\n inputValue.value = value.map(formatter);\n } else if (value) {\n inputValue.value = formatter(value);\n } else {\n inputValue.value = value;\n }\n }\n const onInput = () => {\n _.emit('update:modelValue', inputValue.value);\n _.emit('change', inputValue.value);\n }\n const strValue = {\n range() {\n return inputValue.value.length ? inputValue.value.join(' - ') : '';\n },\n multiple() {\n return inputValue.value.length ? (formCreateInject.value.t('selectedData', {length: inputValue.value.length}) ||`选择了 ${inputValue.value.length} 个日期`) : '';\n }\n }\n\n return {\n show,\n inputValue,\n defaultDate,\n dateRange,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm(value) {\n formatValue(value);\n show.value = false;\n onInput();\n },\n getStrValue() {\n if (inputValue.value) {\n return hasProperty(strValue, props.type) ? strValue[props.type]() : (inputValue.value || '');\n }\n return '';\n },\n clear(e) {\n e.stopPropagation();\n const value = Array.isArray(inputValue.value) ? [] : '';\n formatValue(value);\n onInput();\n }\n }\n },\n render() {\n const clearIcon = () => {\n return this.$props.clearable && !is.empty(this.inputValue) ?\n <i class=\"van-badge__wrapper van-icon van-icon-clear van-field__clear\"\n onClick={this.clear}></i> : undefined;\n }\n return <div class=\"_fc-calendar\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled}\n onClick={this.open}\n model-value={this.getStrValue()} isLink border={false} v-slots={{\n 'right-icon': clearIcon\n }}/>\n <van-calendar {...{...this.$attrs, ...this.dateRange}} show={this.show} onUpdate:show={v => (this.show = v)}\n type={this.type}\n onConfirm={this.confirm} defaultDate={this.defaultDate}/>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","export const normalizeOptions = (options) => {\n if (!options || !Array.isArray(options)) {\n return [];\n }\n return options.map(item => {\n const normalized = {...item};\n if (normalized.label !== undefined && normalized.text === undefined) {\n normalized.text = normalized.label;\n }\n if (normalized.children && Array.isArray(normalized.children)) {\n normalized.children = normalizeOptions(normalized.children);\n }\n return normalized;\n })\n};\n","import {computed, defineComponent, ref, toRef, watch} from 'vue';\nimport {normalizeOptions} from '../core/utils';\n\nconst NAME = 'fcCascader';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n placeholder: String,\n disabled: Boolean,\n clearable: Boolean,\n fieldNames: Object,\n modelValue: [String, Number],\n options: Array,\n minDate: [String, Date],\n maxDate: [String, Date],\n },\n emits: ['update:modelValue', 'fc.el', 'change'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n const fieldNames = toRef(props, 'fieldNames', {});\n const options = computed(() => {\n if (fieldNames?.value?.text) {\n return props.options || [];\n } else {\n return normalizeOptions(props.options || []);\n }\n })\n\n const findOptions = (options, value, path) => {\n for (let i = 0; i < options.length; i++) {\n if (options[i][fieldNames.value.value || 'value'] === value) {\n return [...path, options[i]];\n } else if (options[i][fieldNames.value.children || 'children']) {\n const find = findOptions(options[i][fieldNames.value.children || 'children'], value, [...path, options[i]]);\n if (find) {\n return find;\n }\n }\n }\n }\n\n const updateInputValue = (n) => {\n if (n == null || n === '') {\n return '';\n }\n const path = findOptions(options.value, n, []);\n return path ? path.map((option) => option[fieldNames.value.text || 'text']).join(' / ') : n;\n }\n\n const inputValue = ref(updateInputValue(modelValue.value));\n\n watch(() => modelValue.value, (n) => {\n inputValue.value = updateInputValue(n);\n });\n\n watch(() => options.value, () => {\n if (modelValue.value != null && modelValue.value !== '') {\n inputValue.value = updateInputValue(modelValue.value);\n }\n }, {deep: true});\n\n const onInput = (val) => {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n }\n\n return {\n show,\n inputValue,\n options,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm({selectedOptions, value}) {\n inputValue.value = selectedOptions.map((option) => option[fieldNames.value.text || 'text']).join(' / ');\n show.value = false;\n onInput(value);\n },\n clear(e) {\n e.stopPropagation();\n inputValue.value = '';\n onInput('');\n }\n }\n },\n render() {\n const clearIcon = () => {\n return this.$props.clearable && this.inputValue ?\n <i class=\"van-badge__wrapper van-icon van-icon-clear van-field__clear\"\n onClick={this.clear}></i> : undefined;\n }\n\n return <div class=\"_fc-cascader\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled}\n onClick={this.open}\n model-value={this.inputValue} border={false} isLink v-slots={{\n 'right-icon': clearIcon\n }}/>\n <van-popup show={this.show} onUpdate:show={(v) => this.show = v} round position=\"bottom\">\n <van-cascader\n {...this.$attrs}\n modelValue={this.modelValue}\n fieldNames={this.fieldNames}\n options={this.options}\n onClose={() => this.show = false}\n onFinish={this.confirm}\n />\n </van-popup>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","import {defineComponent, toRef} from 'vue';\n\nconst NAME = 'fcCheckbox';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n modelValue: Array,\n options: Array,\n },\n emits: ['update:modelValue', 'change'],\n setup(props, _) {\n const modelValue = toRef(props, 'modelValue', []);\n const options = toRef(props, 'options');\n\n return {\n options,\n modelValue,\n onInput(val) {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n },\n }\n },\n render() {\n return <van-checkbox-group direction=\"horizontal\" {...this.$attrs} modelValue={Array.isArray(this.modelValue) ? this.modelValue : []}\n onUpdateModelValue={this.onInput}>\n {(this.options || []).map(opt => {\n const tmp = {...opt};\n const {text, value} = opt;\n delete tmp.text;\n delete tmp.value;\n return <van-checkbox name={value} shape=\"square\" {...tmp}>{text || opt.label || value}</van-checkbox>\n })}\n </van-checkbox-group>\n }\n});\n","import {computed, defineComponent, ref, toRef} from 'vue';\nimport {normalizeOptions} from '../core/utils';\n\nconst NAME = 'fcSelect';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n placeholder: String,\n columnsFieldNames: Object,\n modelValue: [String, Number, Boolean],\n options: Array,\n },\n emits: ['update:modelValue', 'fc.el', 'change'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n const fieldNames = toRef(props, 'columnsFieldNames', {});\n const options = computed(() => {\n if (fieldNames?.value?.text) {\n return props.options || [];\n } else {\n return normalizeOptions(props.options || []);\n }\n })\n\n const inputValue = computed(() => {\n if (modelValue.value == null || modelValue.value === '') {\n return '';\n }\n for (let i = 0; i < (options.value || []).length; i++) {\n if (options.value[i][fieldNames.value.value || 'value'] === modelValue.value) {\n return options.value[i][fieldNames.value.text || 'text'];\n }\n }\n return modelValue.value;\n });\n\n const onInput = (val) => {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n }\n\n return {\n show,\n inputValue,\n options,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm({selectedValues}) {\n onInput(selectedValues[0]);\n show.value = false;\n },\n }\n },\n render() {\n return <div class=\"_fc-select\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled} onClick={this.open}\n model-value={this.inputValue} isLink/>\n <van-popup show={this.show} onUpdate:show={(v) => this.show = v} round position=\"bottom\">\n <van-picker\n {...this.$attrs}\n modelValue={[this.modelValue]}\n columnsFieldNames={this.columnsFieldNames}\n columns={this.options}\n onCancel={() => this.show = false}\n onConfirm={this.confirm}\n />\n </van-popup>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","import {defineComponent, ref, toRef, watch} from 'vue';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst NAME = 'fcUploader';\n\nfunction parseFile(file, i) {\n if (typeof file === 'object') {\n return file;\n }\n return {\n url: file,\n is_string: true,\n name: getFileName(file),\n uid: i\n };\n}\n\nfunction parseUpload(file) {\n return {...file, file, value: file};\n}\n\nfunction getFileName(file) {\n return ('' + file).split('/').pop()\n}\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n formCreateInject: Object,\n modelValue: [Array, String, Object],\n afterRead: Function,\n action: String,\n headers: Object,\n method: String,\n data: Object,\n uploadName: String,\n onSuccess: Function,\n onError: Function,\n maxCount: Number,\n },\n emits: ['update:modelValue', 'delete'],\n setup(props, _) {\n\n const afterRead = toRef(props, 'afterRead');\n const modelValue = toRef(props, 'modelValue', []);\n\n const fileList = ref(toArray(modelValue.value).map(parseFile).map(parseUpload));\n\n watch(() => modelValue.value, (n) => {\n fileList.value = toArray(n).map(parseFile).map(parseUpload);\n })\n\n const uploadValue = () => {\n let files = fileList.value.map((v) => v.is_string ? v.url : (v.value || v.url)).filter((url) => url !== undefined);\n _.emit('update:modelValue', props.maxCount === 1 ? (files[0] || '') : files);\n };\n\n return {\n fileList,\n modelValue,\n onDelete(file) {\n uploadValue();\n _.emit('delete', file);\n },\n uploadFile(file) {\n file.status = 'uploading';\n if (afterRead.value) {\n return afterRead.value(file);\n } else {\n const data = props.data || {};\n data[props.uploadName || 'file'] = file.file;\n props.formCreateInject.api.fetch({\n action: props.action,\n dataType: 'formData',\n source: 'upload',\n headers: props.headers || {},\n method: props.method || 'post',\n data\n }).then(res => {\n file.status = 'success';\n props.onSuccess && props.onSuccess(res, file);\n uploadValue();\n }).catch(e => {\n file.status = 'failed';\n file.message = this.formCreateInject.t('uploadFail') || '上传失败';\n props.onError && props.onError(e, file);\n });\n }\n }\n }\n },\n render() {\n return <van-uploader {...this.$attrs} model-value={this.fileList} maxCount={this.maxCount}\n onUpdate:model-value={(v) => this.fileList = v}\n afterRead={this.uploadFile} onDelete={this.onDelete} v-slots={this.$slots}/>\n }\n\n});\n","import {defineComponent, toRef} from 'vue';\n\nconst NAME = 'fcRadio';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n modelValue: [String, Number, Boolean],\n options: Array,\n },\n emits: ['update:modelValue', 'change'],\n setup(props, _) {\n const modelValue = toRef(props, 'modelValue', []);\n const options = toRef(props, 'options');\n\n return {\n options,\n modelValue,\n onInput(val) {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n },\n }\n },\n render() {\n return <van-radio-group direction=\"horizontal\" {...this.$attrs} modelValue={this.modelValue}\n onUpdateModelValue={this.onInput}>\n {(this.options || []).map(opt => {\n const tmp = {...opt};\n const {text, value} = opt;\n delete tmp.text;\n delete tmp.value;\n return <van-radio name={value} {...tmp}>{text || opt.label || value}</van-radio>\n })}\n </van-radio-group>\n }\n});\n","import {computed, defineComponent, ref, toRef} from 'vue';\nimport dayjs from 'dayjs';\n\nconst NAME = 'fcDatePicker';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n clearable: Boolean,\n placeholder: String,\n modelValue: [String, Number],\n minDate: [String, Date],\n maxDate: [String, Date],\n },\n emits: ['update:modelValue', 'fc.el', 'change'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n\n const formValue = computed(() => {\n if (modelValue.value == null || modelValue.value === '') {\n return [];\n }\n return modelValue.value.split('-');\n });\n\n const dateRange = computed(() => {\n return {\n minDate: props.minDate ? dayjs(props.minDate).toDate() : undefined,\n maxDate: props.maxDate ? dayjs(props.maxDate).toDate() : undefined,\n }\n })\n\n const onInput = (val) => {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n }\n\n return {\n show,\n formValue,\n dateRange,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm({selectedValues}) {\n onInput(selectedValues.join('-'));\n show.value = false;\n },\n clear(e) {\n e.stopPropagation();\n onInput('');\n }\n }\n },\n render() {\n const clearIcon = () => {\n return this.$props.clearable && this.modelValue ?\n <i class=\"van-badge__wrapper van-icon van-icon-clear van-field__clear\"\n onClick={this.clear}></i> : undefined;\n }\n return <div class=\"_fc-date-picker\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled}\n onClick={this.open}\n model-value={this.modelValue} border={false} isLink v-slots={{\n 'right-icon': clearIcon\n }}/>\n <van-popup show={this.show} onUpdate:show={(v) => this.show = v} round position=\"bottom\">\n <van-date-picker\n columnsType={['year', 'month', 'day']}\n {...{...this.$attrs, ...this.dateRange}}\n modelValue={this.formValue}\n onConfirm={this.confirm}\n onCancel={() => this.show = false}\n />\n </van-popup>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","import {computed, defineComponent, ref, toRef} from 'vue';\n\nconst NAME = 'fcTimePicker';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n clearable: Boolean,\n placeholder: String,\n modelValue: [String, Number],\n },\n emits: ['update:modelValue', 'fc.el', 'change'],\n setup(props, _) {\n const show = ref(false);\n const modelValue = toRef(props, 'modelValue');\n\n const formValue = computed(() => {\n if (modelValue.value == null || modelValue.value === '') {\n return [];\n }\n return modelValue.value.split(':');\n });\n\n const onInput = (val) => {\n _.emit('update:modelValue', val);\n _.emit('change', val);\n }\n\n return {\n show,\n formValue,\n open() {\n if (props.disabled) {\n return;\n }\n show.value = true;\n },\n confirm({selectedValues}) {\n onInput(selectedValues.join(':'));\n show.value = false;\n },\n clear(e) {\n e.stopPropagation();\n onInput('');\n }\n }\n },\n render() {\n const clearIcon = () => {\n return this.$props.clearable && this.modelValue ?\n <i class=\"van-badge__wrapper van-icon van-icon-clear van-field__clear\"\n onClick={this.clear}></i> : undefined;\n }\n return <div class=\"_fc-time-picker\">\n <van-field ref=\"el\" placeholder={this.placeholder} readonly disabled={this.$props.disabled}\n onClick={this.open}\n model-value={this.modelValue} border={false} isLink v-slots={{\n 'right-icon': clearIcon\n }}/>\n <van-popup show={this.show} onUpdate:show={(v) => this.show = v} round position=\"bottom\">\n <van-time-picker\n columnsType={['hour', 'minute']}\n {...this.$attrs}\n modelValue={this.formValue}\n onConfirm={this.confirm}\n onCancel={() => this.show = false}\n />\n </van-popup>\n </div>\n },\n mounted() {\n this.$emit('fc.el', this.$refs.el);\n }\n});\n","import {hasProperty} from '@form-create/utils/lib/type';\nimport {defineComponent, markRaw, nextTick, watch} from 'vue';\nimport deepExtend, {deepCopy} from '@form-create/utils/lib/deepextend';\nimport extend from '@form-create/utils/lib/extend';\nimport {toPromise} from '@form-create/utils';\n\nconst NAME = 'fcGroup';\n\n\nexport default defineComponent({\n name: NAME,\n props: {\n field: String,\n rule: Array,\n expand: Number,\n options: Object,\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 modelValue: {\n type: Array,\n default: () => []\n },\n defaultValue: Object,\n sortBtn: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined\n },\n title: {\n type: [String, Function],\n default: null\n },\n type: {\n type: String,\n default: 'default'\n },\n onBeforeRemove: {\n type: Function,\n default: () => {\n }\n },\n onBeforeAdd: {\n type: Function,\n default: () => {\n }\n },\n formCreateInject: Object,\n parse: Function,\n },\n data() {\n return {\n len: 0,\n cacheRule: {},\n cacheValue: {},\n sort: [],\n form: markRaw(this.formCreateInject.form.$form())\n }\n },\n emits: ['update:modelValue', 'change', 'itemMounted', 'remove', 'add'],\n watch: {\n rule: {\n handler(n, o) {\n Object.keys(this.cacheRule).forEach(v => {\n const item = this.cacheRule[v];\n if (item.$f) {\n const val = item.$f.formData();\n if (n === o) {\n item.$f.deferSyncValue(() => {\n deepExtend(item.rule, n);\n item.$f.setValue(val);\n }, true);\n } else {\n const val = item.$f.formData();\n item.$f.once('reloading', () => {\n item.$f.setValue(val);\n })\n item.rule = deepCopy(n);\n }\n }\n })\n },\n deep: true\n },\n expand(n) {\n let d = n - this.modelValue.length;\n if (d > 0) {\n this.expandRule(d);\n }\n },\n modelValue: {\n handler(n) {\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, true);\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 deep: true,\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('update:modelValue', 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] && 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\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.cacheRule[key].$f && this.cacheRule[key].$f.coverValue(value);\n this.cache(key, value);\n },\n addRule(i, emit) {\n const rule = this.formCreateInject.form.copyRules(this.rule || []);\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.cacheRule[++this.len] = {rule, options};\n this.sort = Object.keys(this.cacheRule);\n if (emit) {\n 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 nextTick(() => {\n this.$emit('itemMounted', $f, Object.keys(this.cacheRule).indexOf(key));\n });\n },\n removeRule(key, emit) {\n const index = Object.keys(this.cacheRule).indexOf(key);\n delete this.cacheRule[key];\n delete this.cacheValue[key];\n this.sort = Object.keys(this.cacheRule);\n if (emit) {\n nextTick(() => this.$emit('remove', index));\n }\n },\n add(i) {\n if (this.disabled || false === this.onBeforeAdd(this.modelValue)) {\n return;\n }\n const value = [...this.modelValue];\n value.push(this.defaultValue ? deepCopy(this.defaultValue) : (this.field ? null : {}));\n this.input(value);\n },\n del(index, key) {\n if (this.disabled) {\n return;\n }\n const del = () => {\n this.removeRule(key, true);\n const value = [...this.modelValue];\n value.splice(index, 1);\n this.input(value);\n }\n toPromise(this.onBeforeRemove(this.modelValue, index)).then(res => {\n if (false !== res) {\n del();\n }\n })\n },\n addIcon(key) {\n return <div class=\"_fc-m-group-btn _fc-m-group-plus-minus\" onClick={this.add}></div>;\n },\n delIcon(index, key) {\n return <div class=\"_fc-m-group-btn _fc-m-group-plus-minus _fc-m-group-minus\"\n onClick={() => this.del(index, key)}></div>\n },\n sortUpIcon(index) {\n return <div class=\"_fc-m-group-btn _fc-m-group-arrow _fc-m-group-up\"\n onClick={() => this.changeSort(index, -1)}></div>\n },\n sortDownIcon(index) {\n return <div class=\"_fc-m-group-btn _fc-m-group-arrow _fc-m-group-down\"\n onClick={() => this.changeSort(index, 1)}></div>\n },\n changeSort(index, sort) {\n const a = this.sort[index];\n this.sort[index] = this.sort[index + sort];\n this.sort[index + sort] = a;\n this.formCreateInject.subForm(this.sort.map(k=>{\n return this.cacheRule[k].$f;\n }));\n this.formData(0);\n },\n sortIcon(index, total) {\n const canMoveUp = index > 0;\n const canMoveDown = index < total - 1;\n\n if (!canMoveUp && !canMoveDown) {\n return null;\n }\n\n if (canMoveUp && canMoveDown) {\n // 显示合并的上下箭头按钮\n return <div class=\"_fc-m-group-btn _fc-m-group-sort\">\n <div class=\"_fc-m-group-sort-up\" onClick={() => this.changeSort(index, -1)}></div>\n <div class=\"_fc-m-group-sort-down\" onClick={() => this.changeSort(index, 1)}></div>\n </div>;\n }\n\n if (canMoveUp) {\n return this.sortUpIcon(index);\n }\n\n if (canMoveDown) {\n return this.sortDownIcon(index);\n }\n },\n makeIcon(total, index, key) {\n if (this.$slots.button) {\n return this.$slots.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) {\n const sortBtn = this.sortIcon(index, total);\n if (sortBtn) {\n btn.push(sortBtn);\n }\n }\n return btn;\n },\n expandRule(n) {\n for (let i = 0; i < n; i++) {\n this.modelValue.push(this.field ? null : {});\n }\n this.input([...this.modelValue]);\n },\n getTitle(index, key) {\n if (typeof this.title === 'function') {\n return this.title(index, this.modelValue[index], key);\n }\n if (typeof this.title === 'string') {\n return this.title.replace('{index}', index + 1);\n }\n return false;\n }\n },\n created() {\n const d = (this.expand || 0) - this.modelValue.length;\n for (let i = 0; i < this.modelValue.length; i++) {\n this.addRule(i);\n }\n if (d > 0) {\n this.expandRule(d);\n }\n },\n render() {\n const keys = this.sort;\n const button = this.button;\n const Type = this.form;\n const disabled = this.disabled;\n const isCardType = this.type === 'card';\n\n const children = keys.length === 0 ?\n (this.$slots.default ? (this.$slots.default({\n vm: this,\n add: this.add\n })) : <div key={'a_def'} class=\"_fc-m-group-plus-minus _fc-m-group-add fc-clock\"\n onClick={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 const title = this.getTitle(index, key);\n\n if (isCardType) {\n return <div class=\"_fc-m-group-container\" key={key}>\n <div class=\"_fc-m-group-header\">\n {title === false ? <div class=\"_fc-m-group-idx\">{index + 1}</div> : null}\n {title !== false ? <div class=\"_fc-m-group-title\">{title}</div> : null}\n <div class=\"_fc-m-group-handle fc-clock\">\n {(btn.length) ? btn : null}\n </div>\n </div>\n <div class=\"_fc-m-group-content\">\n <Type\n key={key}\n {...{\n disabled,\n 'onUpdate:modelValue': (formData) => this.formData(key, formData),\n 'onUpdate:api': ($f) => this.add$f(index, key, $f),\n inFor: true,\n modelValue: this.field ? {[this.field]: this._value(this.modelValue[index])} : this.modelValue[index],\n rule,\n option: options,\n extendOption: true\n }}\n />\n </div>\n </div>\n } else {\n return <div class=\"_fc-m-group-container\" key={key}>\n <Type\n key={key}\n {...{\n disabled,\n 'onUpdate:modelValue': (formData) => this.formData(key, formData),\n 'onUpdate:api': ($f) => this.add$f(index, key, $f),\n inFor: true,\n modelValue: this.field ? {[this.field]: this._value(this.modelValue[index])} : this.modelValue[index],\n rule,\n option: options,\n extendOption: true\n }}\n />\n <div class=\"_fc-m-group-idx\">{index + 1}</div>\n {(btn.length) ? <div class=\"_fc-m-group-handle fc-clock\">{btn}</div> : null}\n </div>\n }\n });\n return <div key={'con'} class={'_fc-m-group ' + (disabled ? '_fc-m-group-disabled' : '') + (isCardType ? ' _fc-m-group-card' : '')}>{children}</div>\n }\n});\n","<template>\n <svg class=\"icon\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"currentColor\"\n d=\"M512 64a448 448 0 110 896 448 448 0 010-896zm0 832a384 384 0 000-768 384 384 0 000 768zm48-176a48 48 0 11-96 0 48 48 0 0196 0zm-48-464a32 32 0 0132 32v288a32 32 0 01-64 0V288a32 32 0 0132-32z\"></path>\n </svg>\n</template>\n\n<script>\nexport default {\n name: 'IconWarning'\n}\n</script>\n","<template>\n <svg class=\"icon\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill=\"currentColor\"\n d=\"M512 64a448 448 0 110 896 448 448 0 010-896zm0 832a384 384 0 000-768 384 384 0 000 768zm48-176a48 48 0 11-96 0 48 48 0 0196 0zm-48-464a32 32 0 0132 32v288a32 32 0 01-64 0V288a32 32 0 0132-32z\"></path>\n </svg>\n</template>\n\n<script>\nexport default {\n name: 'IconWarning'\n}\n</script>\n","import subForm from '@form-create/component-subform/dist/index';\nimport Calendar from './calendar';\nimport Cascader from './cascader';\nimport Checkbox from './checkbox';\nimport Select from './select';\nimport Uploader from './uploader';\nimport Radio from './radio';\nimport DatePicker from './datePicker';\nimport TimePicker from './timePicker';\nimport Group from './group';\nimport IconWarning from './icon/IconWarning.vue';\n\n\nexport default [\n subForm,\n IconWarning,\n Calendar,\n Cascader,\n Checkbox,\n Radio,\n Select,\n DatePicker,\n TimePicker,\n Group,\n Uploader,\n]\n","import hidden from './hidden';\nimport row from './row';\nimport {hasProperty} from '@form-create/utils/lib/type';\n\n\nconst checkbox = {\n name: 'checkbox',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n}\n\nconst radio = {\n name: 'radio',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n}\n\nconst select = {\n name: 'select',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n}\n\nconst cascader = {\n name: 'cascader',\n mergeProp(ctx) {\n const props = ctx.prop.props;\n if (!hasProperty(props, 'options'))\n props.options = ctx.prop.options || [];\n }\n}\n\nconst textarea = {\n name: 'textarea',\n mergeProp(ctx) {\n let {props} = ctx.prop;\n props.type = 'textarea';\n }\n}\n\n\nexport default [\n hidden,\n row,\n cascader,\n checkbox,\n radio,\n select,\n textarea,\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","export default {\n name: 'FcRow',\n render(_, ctx) {\n return ctx.vNode.col({props: {span: 24}}, {\n default:()=>[\n ctx.vNode.row(ctx.prop, _)\n ]\n })\n }\n}\n","const PRE = 'van';\nexport default {\n button: PRE + '-button',\n icon: PRE + '-icon',\n slider: PRE + '-slider',\n stepper: PRE + '-stepper',\n inputNumber: PRE + '-stepper',\n rate: PRE + '-rate',\n uploader: 'fc-uploader',\n upload: 'fc-uploader',\n cell: PRE + '-cell',\n timePicker: 'fc-time-picker',\n datePicker: 'fc-date-picker',\n 'switch': PRE + '-switch',\n select: 'fc-select',\n cascader: 'fc-cascader',\n calendar: 'fc-calendar',\n checkbox: 'fc-checkbox',\n radio: 'fc-radio',\n input: PRE + '-field',\n textarea: PRE + '-field',\n field: PRE + '-field',\n formItem: PRE + '-field',\n form: PRE + '-form',\n col: PRE + '-col',\n row: PRE + '-row',\n group: 'fc-group',\n array: 'fc-group',\n object: 'fc-sub-form',\n subForm: 'fc-sub-form',\n}\n","function noop() {\n}\nconst extend = Object.assign;\nconst inBrowser = typeof window !== \"undefined\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isDef = (val) => val !== void 0 && val !== null;\nconst isFunction = (val) => typeof val === \"function\";\nconst isPromise = (val) => isObject(val) && isFunction(val.then) && isFunction(val.catch);\nconst isDate = (val) => Object.prototype.toString.call(val) === \"[object Date]\" && !Number.isNaN(val.getTime());\nfunction isMobile(value) {\n value = value.replace(/[^-|\\d]/g, \"\");\n return /^((\\+86)|(86))?(1)\\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value);\n}\nconst isNumeric = (val) => typeof val === \"number\" || /^\\d+(\\.\\d+)?$/.test(val);\nconst isIOS = () => inBrowser ? /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()) : false;\nfunction get(object, path) {\n const keys = path.split(\".\");\n let result = object;\n keys.forEach((key) => {\n var _a;\n result = isObject(result) ? (_a = result[key]) != null ? _a : \"\" : \"\";\n });\n return result;\n}\nfunction pick(obj, keys, ignoreUndefined) {\n return keys.reduce(\n (ret, key) => {\n if (!ignoreUndefined || obj[key] !== void 0) {\n ret[key] = obj[key];\n }\n return ret;\n },\n {}\n );\n}\nconst isSameValue = (newValue, oldValue) => JSON.stringify(newValue) === JSON.stringify(oldValue);\nconst toArray = (item) => Array.isArray(item) ? item : [item];\nconst flat = (arr) => arr.reduce((acc, val) => acc.concat(val), []);\nexport {\n extend,\n flat,\n get,\n inBrowser,\n isDate,\n isDef,\n isFunction,\n isIOS,\n isMobile,\n isNumeric,\n isObject,\n isPromise,\n isSameValue,\n noop,\n pick,\n toArray\n};\n","const unknownProp = null;\nconst numericProp = [Number, String];\nconst truthProp = {\n type: Boolean,\n default: true\n};\nconst makeRequiredProp = (type) => ({\n type,\n required: true\n});\nconst makeArrayProp = () => ({\n type: Array,\n default: () => []\n});\nconst makeNumberProp = (defaultVal) => ({\n type: Number,\n default: defaultVal\n});\nconst makeNumericProp = (defaultVal) => ({\n type: numericProp,\n default: defaultVal\n});\nconst makeStringProp = (defaultVal) => ({\n type: String,\n default: defaultVal\n});\nexport {\n makeArrayProp,\n makeNumberProp,\n makeNumericProp,\n makeRequiredProp,\n makeStringProp,\n numericProp,\n truthProp,\n unknownProp\n};\n","// src/utils.ts\nvar inBrowser = typeof window !== \"undefined\";\nvar supportsPassive = true;\nfunction raf(fn) {\n return inBrowser ? requestAnimationFrame(fn) : -1;\n}\nfunction cancelRaf(id) {\n if (inBrowser) {\n cancelAnimationFrame(id);\n }\n}\nfunction doubleRaf(fn) {\n raf(() => raf(fn));\n}\n\n// src/useRect/index.ts\nimport { unref } from \"vue\";\nvar isWindow = (val) => val === window;\nvar makeDOMRect = (width2, height2) => ({\n top: 0,\n left: 0,\n right: width2,\n bottom: height2,\n width: width2,\n height: height2\n});\nvar useRect = (elementOrRef) => {\n const element = unref(elementOrRef);\n if (isWindow(element)) {\n const width2 = element.innerWidth;\n const height2 = element.innerHeight;\n return makeDOMRect(width2, height2);\n }\n if (element == null ? void 0 : element.getBoundingClientRect) {\n return element.getBoundingClientRect();\n }\n return makeDOMRect(0, 0);\n};\n\n// src/useToggle/index.ts\nimport { ref } from \"vue\";\nfunction useToggle(defaultValue = false) {\n const state = ref(defaultValue);\n const toggle = (value = !state.value) => {\n state.value = value;\n };\n return [state, toggle];\n}\n\n// src/useRelation/useParent.ts\nimport {\n ref as ref2,\n inject,\n computed,\n onUnmounted,\n getCurrentInstance\n} from \"vue\";\nfunction useParent(key) {\n const parent = inject(key, null);\n if (parent) {\n const instance = getCurrentInstance();\n const { link, unlink, internalChildren } = parent;\n link(instance);\n onUnmounted(() => unlink(instance));\n const index = computed(() => internalChildren.indexOf(instance));\n return {\n parent,\n index\n };\n }\n return {\n parent: null,\n index: ref2(-1)\n };\n}\n\n// src/useRelation/useChildren.ts\nimport {\n isVNode,\n provide,\n reactive,\n getCurrentInstance as getCurrentInstance2\n} from \"vue\";\nfunction flattenVNodes(children) {\n const result = [];\n const traverse = (children2) => {\n if (Array.isArray(children2)) {\n children2.forEach((child) => {\n var _a;\n if (isVNode(child)) {\n result.push(child);\n if ((_a = child.component) == null ? void 0 : _a.subTree) {\n result.push(child.component.subTree);\n traverse(child.component.subTree.children);\n }\n if (child.children) {\n traverse(child.children);\n }\n }\n });\n }\n };\n traverse(children);\n return result;\n}\nvar findVNodeIndex = (vnodes, vnode) => {\n const index = vnodes.indexOf(vnode);\n if (index === -1) {\n return vnodes.findIndex(\n (item) => vnode.key !== void 0 && vnode.key !== null && item.type === vnode.type && item.key === vnode.key\n );\n }\n return index;\n};\nfunction sortChildren(parent, publicChildren, internalChildren) {\n const vnodes = flattenVNodes(parent.subTree.children);\n internalChildren.sort(\n (a, b) => findVNodeIndex(vnodes, a.vnode) - findVNodeIndex(vnodes, b.vnode)\n );\n const orderedPublicChildren = internalChildren.map((item) => item.proxy);\n publicChildren.sort((a, b) => {\n const indexA = orderedPublicChildren.indexOf(a);\n const indexB = orderedPublicChildren.indexOf(b);\n return indexA - indexB;\n });\n}\nfunction useChildren(key) {\n const publicChildren = reactive([]);\n const internalChildren = reactive([]);\n const parent = getCurrentInstance2();\n const linkChildren = (value) => {\n const link = (child) => {\n if (child.proxy) {\n internalChildren.push(child);\n publicChildren.push(child.proxy);\n sortChildren(parent, publicChildren, internalChildren);\n }\n };\n const unlink = (child) => {\n const index = internalChildren.indexOf(child);\n publicChildren.splice(index, 1);\n internalChildren.splice(index, 1);\n };\n provide(\n key,\n Object.assign(\n {\n link,\n unlink,\n children: publicChildren,\n internalChildren\n },\n value\n )\n );\n };\n return {\n children: publicChildren,\n linkChildren\n };\n}\n\n// src/useCountDown/index.ts\nimport {\n ref as ref3,\n computed as computed2,\n onActivated,\n onDeactivated,\n onBeforeUnmount\n} from \"vue\";\nvar SECOND = 1e3;\nvar MINUTE = 60 * SECOND;\nvar HOUR = 60 * MINUTE;\nvar DAY = 24 * HOUR;\nfunction parseTime(time) {\n const days = Math.floor(time / DAY);\n const hours = Math.floor(time % DAY / HOUR);\n const minutes = Math.floor(time % HOUR / MINUTE);\n const seconds = Math.floor(time % MINUTE / SECOND);\n const milliseconds = Math.floor(time % SECOND);\n return {\n total: time,\n days,\n hours,\n minutes,\n seconds,\n milliseconds\n };\n}\nfunction isSameSecond(time1, time2) {\n return Math.floor(time1 / 1e3) === Math.floor(time2 / 1e3);\n}\nfunction useCountDown(options) {\n let rafId;\n let endTime;\n let counting;\n let deactivated;\n const remain = ref3(options.time);\n const current = computed2(() => parseTime(remain.value));\n const pause = () => {\n counting = false;\n cancelRaf(rafId);\n };\n const getCurrentRemain = () => Math.max(endTime - Date.now(), 0);\n const setRemain = (value) => {\n var _a, _b;\n remain.value = value;\n (_a = options.onChange) == null ? void 0 : _a.call(options, current.value);\n if (value === 0) {\n pause();\n (_b = options.onFinish) == null ? void 0 : _b.call(options);\n }\n };\n const microTick = () => {\n rafId = raf(() => {\n if (counting) {\n setRemain(getCurrentRemain());\n if (remain.value > 0) {\n microTick();\n }\n }\n });\n };\n const macroTick = () => {\n rafId = raf(() => {\n if (counting) {\n const remainRemain = getCurrentRemain();\n if (!isSameSecond(remainRemain, remain.value) || remainRemain === 0) {\n setRemain(remainRemain);\n }\n if (remain.value > 0) {\n macroTick();\n }\n }\n });\n };\n const tick = () => {\n if (!inBrowser) {\n return;\n }\n if (options.millisecond) {\n microTick();\n } else {\n macroTick();\n }\n };\n const start = () => {\n if (!counting) {\n endTime = Date.now() + remain.value;\n counting = true;\n tick();\n }\n };\n const reset = (totalTime = options.time) => {\n pause();\n remain.value = totalTime;\n };\n onBeforeUnmount(pause);\n onActivated(() => {\n if (deactivated) {\n counting = true;\n deactivated = false;\n tick();\n }\n });\n onDeactivated(() => {\n if (counting) {\n pause();\n deactivated = true;\n }\n });\n return {\n start,\n pause,\n reset,\n current\n };\n}\n\n// src/useClickAway/index.ts\nimport { unref as unref3 } from \"vue\";\n\n// src/useEventListener/index.ts\nimport {\n watch,\n isRef,\n unref as unref2,\n onUnmounted as onUnmounted2,\n onDeactivated as onDeactivated2\n} from \"vue\";\n\n// src/onMountedOrActivated/index.ts\nimport { nextTick, onMounted, onActivated as onActivated2 } from \"vue\";\nfunction onMountedOrActivated(hook) {\n let mounted;\n onMounted(() => {\n hook();\n nextTick(() => {\n mounted = true;\n });\n });\n onActivated2(() => {\n if (mounted) {\n hook();\n }\n });\n}\n\n// src/useEventListener/index.ts\nfunction useEventListener(type, listener, options = {}) {\n if (!inBrowser) {\n return;\n }\n const { target = window, passive = false, capture = false } = options;\n let cleaned = false;\n let attached;\n const add = (target2) => {\n if (cleaned) {\n return;\n }\n const element = unref2(target2);\n if (element && !attached) {\n element.addEventListener(type, listener, {\n capture,\n passive\n });\n attached = true;\n }\n };\n const remove = (target2) => {\n if (cleaned) {\n return;\n }\n const element = unref2(target2);\n if (element && attached) {\n element.removeEventListener(type, listener, capture);\n attached = false;\n }\n };\n onUnmounted2(() => remove(target));\n onDeactivated2(() => remove(target));\n onMountedOrActivated(() => add(target));\n let stopWatch;\n if (isRef(target)) {\n stopWatch = watch(target, (val, oldVal) => {\n remove(oldVal);\n add(val);\n });\n }\n return () => {\n stopWatch == null ? void 0 : stopWatch();\n remove(target);\n cleaned = true;\n };\n}\n\n// src/useClickAway/index.ts\nfunction useClickAway(target, listener, options = {}) {\n if (!inBrowser) {\n return;\n }\n const { eventName = \"click\" } = options;\n const onClick = (event) => {\n const targets = Array.isArray(target) ? target : [target];\n const isClickAway = targets.every((item) => {\n const element = unref3(item);\n return element && !element.contains(event.target);\n });\n if (isClickAway) {\n listener(event);\n }\n };\n useEventListener(eventName, onClick, { target: document });\n}\n\n// src/useWindowSize/index.ts\nimport { ref as ref4 } from \"vue\";\nvar width;\nvar height;\nfunction useWindowSize() {\n if (!width) {\n width = ref4(0);\n height = ref4(0);\n if (inBrowser) {\n const update = () => {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n };\n update();\n window.addEventListener(\"resize\", update, { passive: true });\n window.addEventListener(\"orientationchange\", update, { passive: true });\n }\n }\n return { width, height };\n}\n\n// src/useScrollParent/index.ts\nimport { ref as ref5, onMounted as onMounted2 } from \"vue\";\nvar overflowScrollReg = /scroll|auto|overlay/i;\nvar defaultRoot = inBrowser ? window : void 0;\nfunction isElement(node) {\n const ELEMENT_NODE_TYPE = 1;\n return node.tagName !== \"HTML\" && node.tagName !== \"BODY\" && node.nodeType === ELEMENT_NODE_TYPE;\n}\nfunction getScrollParent(el, root = defaultRoot) {\n let node = el;\n while (node && node !== root && isElement(node)) {\n const { overflowY } = window.getComputedStyle(node);\n if (overflowScrollReg.test(overflowY)) {\n return node;\n }\n node = node.parentNode;\n }\n return root;\n}\nfunction useScrollParent(el, root = defaultRoot) {\n const scrollParent = ref5();\n onMounted2(() => {\n if (el.value) {\n scrollParent.value = getScrollParent(el.value, root);\n }\n });\n return scrollParent;\n}\n\n// src/usePageVisibility/index.ts\nimport { ref as ref6 } from \"vue\";\nvar visibility;\nfunction usePageVisibility() {\n if (!visibility) {\n visibility = ref6(\"visible\");\n if (inBrowser) {\n const update = () => {\n visibility.value = document.hidden ? \"hidden\" : \"visible\";\n };\n update();\n window.addEventListener(\"visibilitychange\", update);\n }\n }\n return visibility;\n}\n\n// src/useCustomFieldValue/index.ts\nimport { watch as watch2, inject as inject2 } from \"vue\";\nvar CUSTOM_FIELD_INJECTION_KEY = Symbol(\"van-field\");\nfunction useCustomFieldValue(customValue) {\n const field = inject2(CUSTOM_FIELD_INJECTION_KEY, null);\n if (field && !field.customValue.value) {\n field.customValue.value = customValue;\n watch2(customValue, () => {\n field.resetValidation();\n field.validateWithTrigger(\"onChange\");\n });\n }\n}\n\n// src/useRaf/index.ts\nfunction useRaf(fn, options) {\n if (inBrowser) {\n const { interval = 0, isLoop = false } = options || {};\n let start;\n let isStopped = false;\n let rafId;\n const stop = () => {\n isStopped = true;\n cancelAnimationFrame(rafId);\n };\n const frameWrapper = (timestamp) => {\n if (isStopped)\n return;\n if (start === void 0) {\n start = timestamp;\n } else if (timestamp - start > interval) {\n fn(timestamp);\n start = timestamp;\n if (!isLoop) {\n stop();\n return;\n }\n }\n rafId = requestAnimationFrame(frameWrapper);\n };\n rafId = requestAnimationFrame(frameWrapper);\n return stop;\n }\n return () => {\n };\n}\nexport {\n CUSTOM_FIELD_INJECTION_KEY,\n cancelRaf,\n doubleRaf,\n flattenVNodes,\n getScrollParent,\n inBrowser,\n onMountedOrActivated,\n raf,\n sortChildren,\n supportsPassive,\n useChildren,\n useClickAway,\n useCountDown,\n useCustomFieldValue,\n useEventListener,\n usePageVisibility,\n useParent,\n useRaf,\n useRect,\n useScrollParent,\n useToggle,\n useWindowSize\n};\n","import { useRect, useWindowSize } from \"@vant/use\";\nimport { unref } from \"vue\";\nimport { isIOS as checkIsIOS } from \"./basic.mjs\";\nfunction getScrollTop(el) {\n const top = \"scrollTop\" in el ? el.scrollTop : el.pageYOffset;\n return Math.max(top, 0);\n}\nfunction setScrollTop(el, value) {\n if (\"scrollTop\" in el) {\n el.scrollTop = value;\n } else {\n el.scrollTo(el.scrollX, value);\n }\n}\nfunction getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nfunction setRootScrollTop(value) {\n setScrollTop(window, value);\n setScrollTop(document.body, value);\n}\nfunction getElementTop(el, scroller) {\n if (el === window) {\n return 0;\n }\n const scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n return useRect(el).top + scrollTop;\n}\nconst isIOS = checkIsIOS();\nfunction resetScroll() {\n if (isIOS) {\n setRootScrollTop(getRootScrollTop());\n }\n}\nconst stopPropagation = (event) => event.stopPropagation();\nfunction preventDefault(event, isStopPropagation) {\n if (typeof event.cancelable !== \"boolean\" || event.cancelable) {\n event.preventDefault();\n }\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}\nfunction isHidden(elementRef) {\n const el = unref(elementRef);\n if (!el) {\n return false;\n }\n const style = window.getComputedStyle(el);\n const hidden = style.display === \"none\";\n const parentHidden = el.offsetParent === null && style.position !== \"fixed\";\n return hidden || parentHidden;\n}\nconst { width: windowWidth, height: windowHeight } = useWindowSize();\nfunction isContainingBlock(el) {\n const css = window.getComputedStyle(el);\n return css.transform !== \"none\" || css.perspective !== \"none\" || [\"transform\", \"perspective\", \"filter\"].some(\n (value) => (css.willChange || \"\").includes(value)\n );\n}\nfunction getContainingBlock(el) {\n let node = el.parentElement;\n while (node) {\n if (node && node.tagName !== \"HTML\" && node.tagName !== \"BODY\" && isContainingBlock(node)) {\n return node;\n }\n node = node.parentElement;\n }\n return null;\n}\nexport {\n getContainingBlock,\n getElementTop,\n getRootScrollTop,\n getScrollTop,\n isHidden,\n preventDefault,\n resetScroll,\n setRootScrollTop,\n setScrollTop,\n stopPropagation,\n windowHeight,\n windowWidth\n};\n","import { inBrowser } from \"./basic.mjs\";\nimport { windowWidth, windowHeight } from \"./dom.mjs\";\nimport { isDef, isNumeric } from \"./basic.mjs\";\nfunction addUnit(value) {\n if (isDef(value)) {\n return isNumeric(value) ? `${value}px` : String(value);\n }\n return void 0;\n}\nfunction getSizeStyle(originSize) {\n if (isDef(originSize)) {\n if (Array.isArray(originSize)) {\n return {\n width: addUnit(originSize[0]),\n height: addUnit(originSize[1])\n };\n }\n const size = addUnit(originSize);\n return {\n width: size,\n height: size\n };\n }\n}\nfunction getZIndexStyle(zIndex) {\n const style = {};\n if (zIndex !== void 0) {\n style.zIndex = +zIndex;\n }\n return style;\n}\nlet rootFontSize;\nfunction getRootFontSize() {\n if (!rootFontSize) {\n const doc = document.documentElement;\n const fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;\n rootFontSize = parseFloat(fontSize);\n }\n return rootFontSize;\n}\nfunction convertRem(value) {\n value = value.replace(/rem/g, \"\");\n return +value * getRootFontSize();\n}\nfunction convertVw(value) {\n value = value.replace(/vw/g, \"\");\n return +value * windowWidth.value / 100;\n}\nfunction convertVh(value) {\n value = value.replace(/vh/g, \"\");\n return +value * windowHeight.value / 100;\n}\nfunction unitToPx(value) {\n if (typeof value === \"number\") {\n return value;\n }\n if (inBrowser) {\n if (value.includes(\"rem\")) {\n return convertRem(value);\n }\n if (value.includes(\"vw\")) {\n return convertVw(value);\n }\n if (value.includes(\"vh\")) {\n return convertVh(value);\n }\n }\n return parseFloat(value);\n}\nconst camelizeRE = /-(\\w)/g;\nconst camelize = (str) => str.replace(camelizeRE, (_, c) => c.toUpperCase());\nconst kebabCase = (str) => str.replace(/([A-Z])/g, \"-$1\").toLowerCase().replace(/^-/, \"\");\nfunction padZero(num, targetLength = 2) {\n let str = num + \"\";\n while (str.length < targetLength) {\n str = \"0\" + str;\n }\n return str;\n}\nconst clamp = (num, min, max) => Math.min(Math.max(num, min), max);\nfunction trimExtraChar(value, char, regExp) {\n const index = value.indexOf(char);\n if (index === -1) {\n return value;\n }\n if (char === \"-\" && index !== 0) {\n return value.slice(0, index);\n }\n return value.slice(0, index + 1) + value.slice(index).replace(regExp, \"\");\n}\nfunction formatNumber(value, allowDot = true, allowMinus = true) {\n if (allowDot) {\n value = trimExtraChar(value, \".\", /\\./g);\n } else {\n value = value.split(\".\")[0];\n }\n if (allowMinus) {\n value = trimExtraChar(value, \"-\", /-/g);\n } else {\n value = value.replace(/-/, \"\");\n }\n const regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;\n return value.replace(regExp, \"\");\n}\nfunction addNumber(num1, num2) {\n const cardinal = 10 ** 10;\n return Math.round((num1 + num2) * cardinal) / cardinal;\n}\nexport {\n addNumber,\n addUnit,\n camelize,\n clamp,\n formatNumber,\n getSizeStyle,\n getZIndexStyle,\n kebabCase,\n padZero,\n unitToPx\n};\n","import { isDef, isObject } from \"./basic.mjs\";\nconst { hasOwnProperty } = Object.prototype;\nfunction assignKey(to, from, key) {\n const val = from[key];\n if (!isDef(val)) {\n return;\n }\n if (!hasOwnProperty.call(to, key) || !isObject(val)) {\n to[key] = val;\n } else {\n to[key] = deepAssign(Object(to[key]), val);\n }\n}\nfunction deepAssign(to, from) {\n Object.keys(from).forEach((key) => {\n assignKey(to, from, key);\n });\n return to;\n}\nexport {\n deepAssign\n};\n","import { ref, reactive } from \"vue\";\nimport { deepAssign } from \"../utils/deep-assign.mjs\";\nimport defaultMessages from \"./lang/zh-CN.mjs\";\nconst lang = ref(\"zh-CN\");\nconst messages = reactive({\n \"zh-CN\": defaultMessages\n});\nconst Locale = {\n messages() {\n return messages[lang.value];\n },\n use(newLang, newMessages) {\n lang.value = newLang;\n this.add({ [newLang]: newMessages });\n },\n add(newMessages = {}) {\n deepAssign(messages, newMessages);\n }\n};\nconst useCurrentLang = () => lang;\nvar stdin_default = Locale;\nexport {\n Locale,\n stdin_default as default,\n useCurrentLang\n};\n","var stdin_default = {\n name: \"\\u59D3\\u540D\",\n tel: \"\\u7535\\u8BDD\",\n save: \"\\u4FDD\\u5B58\",\n clear: \"\\u6E05\\u7A7A\",\n cancel: \"\\u53D6\\u6D88\",\n confirm: \"\\u786E\\u8BA4\",\n delete: \"\\u5220\\u9664\",\n loading: \"\\u52A0\\u8F7D\\u4E2D...\",\n noCoupon: \"\\u6682\\u65E0\\u4F18\\u60E0\\u5238\",\n nameEmpty: \"\\u8BF7\\u586B\\u5199\\u59D3\\u540D\",\n addContact: \"\\u6DFB\\u52A0\\u8054\\u7CFB\\u4EBA\",\n telInvalid: \"\\u8BF7\\u586B\\u5199\\u6B63\\u786E\\u7684\\u7535\\u8BDD\",\n vanCalendar: {\n end: \"\\u7ED3\\u675F\",\n start: \"\\u5F00\\u59CB\",\n title: \"\\u65E5\\u671F\\u9009\\u62E9\",\n weekdays: [\"\\u65E5\", \"\\u4E00\", \"\\u4E8C\", \"\\u4E09\", \"\\u56DB\", \"\\u4E94\", \"\\u516D\"],\n monthTitle: (year, month) => `${year}\\u5E74${month}\\u6708`,\n rangePrompt: (maxRange) => `\\u6700\\u591A\\u9009\\u62E9 ${maxRange} \\u5929`\n },\n vanCascader: {\n select: \"\\u8BF7\\u9009\\u62E9\"\n },\n vanPagination: {\n prev: \"\\u4E0A\\u4E00\\u9875\",\n next: \"\\u4E0B\\u4E00\\u9875\"\n },\n vanPullRefresh: {\n pulling: \"\\u4E0B\\u62C9\\u5373\\u53EF\\u5237\\u65B0...\",\n loosing: \"\\u91CA\\u653E\\u5373\\u53EF\\u5237\\u65B0...\"\n },\n vanSubmitBar: {\n label: \"\\u5408\\u8BA1:\"\n },\n vanCoupon: {\n unlimited: \"\\u65E0\\u95E8\\u69DB\",\n discount: (discount) => `${discount}\\u6298`,\n condition: (condition) => `\\u6EE1${condition}\\u5143\\u53EF\\u7528`\n },\n vanCouponCell: {\n title: \"\\u4F18\\u60E0\\u5238\",\n count: (count) => `${count}\\u5F20\\u53EF\\u7528`\n },\n vanCouponList: {\n exchange: \"\\u5151\\u6362\",\n close: \"\\u4E0D\\u4F7F\\u7528\",\n enable: \"\\u53EF\\u7528\",\n disabled: \"\\u4E0D\\u53EF\\u7528\",\n placeholder: \"\\u8F93\\u5165\\u4F18\\u60E0\\u7801\"\n },\n vanAddressEdit: {\n area: \"\\u5730\\u533A\",\n areaEmpty: \"\\u8BF7\\u9009\\u62E9\\u5730\\u533A\",\n addressEmpty: \"\\u8BF7\\u586B\\u5199\\u8BE6\\u7EC6\\u5730\\u5740\",\n addressDetail: \"\\u8BE6\\u7EC6\\u5730\\u5740\",\n defaultAddress: \"\\u8BBE\\u4E3A\\u9ED8\\u8BA4\\u6536\\u8D27\\u5730\\u5740\"\n },\n vanAddressList: {\n add: \"\\u65B0\\u589E\\u5730\\u5740\"\n }\n};\nexport {\n stdin_default as default\n};\n","import { get, isFunction } from \"./basic.mjs\";\nimport { camelize } from \"./format.mjs\";\nimport locale from \"../locale/index.mjs\";\nfunction createTranslate(name) {\n const prefix = camelize(name) + \".\";\n return (path, ...args) => {\n const messages = locale.messages();\n const message = get(messages, prefix + path) || get(messages, path);\n return isFunction(message) ? message(...args) : message;\n };\n}\nfunction genBem(name, mods) {\n if (!mods) {\n return \"\";\n }\n if (typeof mods === \"string\") {\n return ` ${name}--${mods}`;\n }\n if (Array.isArray(mods)) {\n return mods.reduce(\n (ret, item) => ret + genBem(name, item),\n \"\"\n );\n }\n return Object.keys(mods).reduce(\n (ret, key) => ret + (mods[key] ? genBem(name, key) : \"\"),\n \"\"\n );\n}\nfunction createBEM(name) {\n return (el, mods) => {\n if (el && typeof el !== \"string\") {\n mods = el;\n el = \"\";\n }\n el = el ? `${name}__${el}` : name;\n return `${el}${genBem(el, mods)}`;\n };\n}\nfunction createNamespace(name) {\n const prefixedName = `van-${name}`;\n return [\n prefixedName,\n createBEM(prefixedName),\n createTranslate(prefixedName)\n ];\n}\nexport {\n createBEM,\n createNamespace,\n createTranslate\n};\n","const BORDER = \"van-hairline\";\nconst BORDER_TOP = `${BORDER}--top`;\nconst BORDER_LEFT = `${BORDER}--left`;\nconst BORDER_RIGHT = `${BORDER}--right`;\nconst BORDER_BOTTOM = `${BORDER}--bottom`;\nconst BORDER_SURROUND = `${BORDER}--surround`;\nconst BORDER_TOP_BOTTOM = `${BORDER}--top-bottom`;\nconst BORDER_UNSET_TOP_BOTTOM = `${BORDER}-unset--top-bottom`;\nconst HAPTICS_FEEDBACK = \"van-haptics-feedback\";\nconst FORM_KEY = /* @__PURE__ */ Symbol(\"van-form\");\nconst LONG_PRESS_START_TIME = 500;\nconst TAP_OFFSET = 5;\nexport {\n BORDER,\n BORDER_BOTTOM,\n BORDER_LEFT,\n BORDER_RIGHT,\n BORDER_SURROUND,\n BORDER_TOP,\n BORDER_TOP_BOTTOM,\n BORDER_UNSET_TOP_BOTTOM,\n FORM_KEY,\n HAPTICS_FEEDBACK,\n LONG_PRESS_START_TIME,\n TAP_OFFSET\n};\n","import { noop, isPromise } from \"./basic.mjs\";\nfunction callInterceptor(interceptor, {\n args = [],\n done,\n canceled,\n error\n}) {\n if (interceptor) {\n const returnVal = interceptor.apply(null, args);\n if (isPromise(returnVal)) {\n returnVal.then((value) => {\n if (value) {\n done();\n } else if (canceled) {\n canceled();\n }\n }).catch(error || noop);\n } else if (returnVal) {\n done();\n } else if (canceled) {\n canceled();\n }\n } else {\n done();\n }\n}\nexport {\n callInterceptor\n};\n","import { camelize } from \"./format.mjs\";\nfunction withInstall(options) {\n options.install = (app) => {\n const { name } = options;\n if (name) {\n app.component(name, options);\n app.component(camelize(`-${name}`), options);\n }\n };\n return options;\n}\nexport {\n withInstall\n};\n","function closest(arr, target) {\n return arr.reduce(\n (pre, cur) => Math.abs(pre - target) < Math.abs(cur - target) ? pre : cur\n );\n}\nexport {\n closest\n};\n","import { inject, watch } from \"vue\";\nconst POPUP_TOGGLE_KEY = /* @__PURE__ */ Symbol();\nfunction onPopupReopen(callback) {\n const popupToggleStatus = inject(POPUP_TOGGLE_KEY, null);\n if (popupToggleStatus) {\n watch(popupToggleStatus, (show) => {\n if (show) {\n callback();\n }\n });\n }\n}\nexport {\n POPUP_TOGGLE_KEY,\n onPopupReopen\n};\n","import { useRect } from \"@vant/use\";\nimport { ref, onMounted, nextTick, watch } from \"vue\";\nimport { windowHeight, windowWidth } from \"../utils/index.mjs\";\nimport { onPopupReopen } from \"./on-popup-reopen.mjs\";\nconst useHeight = (element, withSafeArea) => {\n const height = ref();\n const setHeight = () => {\n height.value = useRect(element).height;\n };\n onMounted(() => {\n nextTick(setHeight);\n if (withSafeArea) {\n for (let i = 1; i <= 3; i++) {\n setTimeout(setHeight, 100 * i);\n }\n }\n });\n onPopupReopen(() => nextTick(setHeight));\n watch([windowWidth, windowHeight], setHeight);\n return height;\n};\nexport {\n useHeight\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport { useHeight } from \"./use-height.mjs\";\nfunction usePlaceholder(contentRef, bem) {\n const height = useHeight(contentRef, true);\n return (renderContent) => _createVNode(\"div\", {\n \"class\": bem(\"placeholder\"),\n \"style\": {\n height: height.value ? `${height.value}px` : void 0\n }\n }, [renderContent()]);\n}\nexport {\n usePlaceholder\n};\n","import { defineComponent, ref, createVNode as _createVNode } from \"vue\";\nimport { truthProp, createNamespace } from \"../utils/index.mjs\";\nimport { useChildren } from \"@vant/use\";\nimport { usePlaceholder } from \"../composables/use-placeholder.mjs\";\nconst [name, bem] = createNamespace(\"action-bar\");\nconst ACTION_BAR_KEY = Symbol(name);\nconst actionBarProps = {\n placeholder: Boolean,\n safeAreaInsetBottom: truthProp\n};\nvar stdin_default = defineComponent({\n name,\n props: actionBarProps,\n setup(props, {\n slots\n }) {\n const root = ref();\n const renderPlaceholder = usePlaceholder(root, bem);\n const {\n linkChildren\n } = useChildren(ACTION_BAR_KEY);\n linkChildren();\n const renderActionBar = () => {\n var _a;\n return _createVNode(\"div\", {\n \"ref\": root,\n \"class\": [bem(), {\n \"van-safe-area-bottom\": props.safeAreaInsetBottom\n }]\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n return () => {\n if (props.placeholder) {\n return renderPlaceholder(renderActionBar);\n }\n return renderActionBar();\n };\n }\n});\nexport {\n ACTION_BAR_KEY,\n actionBarProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ActionBar from \"./ActionBar.mjs\";\nconst ActionBar = withInstall(_ActionBar);\nvar stdin_default = ActionBar;\nimport { actionBarProps } from \"./ActionBar.mjs\";\nexport {\n ActionBar,\n actionBarProps,\n stdin_default as default\n};\n","import { getCurrentInstance } from \"vue\";\nimport { extend } from \"../utils/index.mjs\";\nfunction useExpose(apis) {\n const instance = getCurrentInstance();\n if (instance) {\n extend(instance.proxy, apis);\n }\n}\nexport {\n useExpose\n};\n","import {\n getCurrentInstance\n} from \"vue\";\nconst routeProps = {\n to: [String, Object],\n url: String,\n replace: Boolean\n};\nfunction route({\n to,\n url,\n replace,\n $router: router\n}) {\n if (to && router) {\n router[replace ? \"replace\" : \"push\"](to);\n } else if (url) {\n replace ? location.replace(url) : location.href = url;\n }\n}\nfunction useRoute() {\n const vm = getCurrentInstance().proxy;\n return () => route(vm);\n}\nexport {\n route,\n routeProps,\n useRoute\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isDef, addUnit, isNumeric, truthProp, numericProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"badge\");\nconst badgeProps = {\n dot: Boolean,\n max: numericProp,\n tag: makeStringProp(\"div\"),\n color: String,\n offset: Array,\n content: numericProp,\n showZero: truthProp,\n position: makeStringProp(\"top-right\")\n};\nvar stdin_default = defineComponent({\n name,\n props: badgeProps,\n setup(props, {\n slots\n }) {\n const hasContent = () => {\n if (slots.content) {\n return true;\n }\n const {\n content,\n showZero\n } = props;\n return isDef(content) && content !== \"\" && (showZero || content !== 0 && content !== \"0\");\n };\n const renderContent = () => {\n const {\n dot,\n max,\n content\n } = props;\n if (!dot && hasContent()) {\n if (slots.content) {\n return slots.content();\n }\n if (isDef(max) && isNumeric(content) && +content > +max) {\n return `${max}+`;\n }\n return content;\n }\n };\n const getOffsetWithMinusString = (val) => val.startsWith(\"-\") ? val.replace(\"-\", \"\") : `-${val}`;\n const style = computed(() => {\n const style2 = {\n background: props.color\n };\n if (props.offset) {\n const [x, y] = props.offset;\n const {\n position\n } = props;\n const [offsetY, offsetX] = position.split(\"-\");\n if (slots.default) {\n if (typeof y === \"number\") {\n style2[offsetY] = addUnit(offsetY === \"top\" ? y : -y);\n } else {\n style2[offsetY] = offsetY === \"top\" ? addUnit(y) : getOffsetWithMinusString(y);\n }\n if (typeof x === \"number\") {\n style2[offsetX] = addUnit(offsetX === \"left\" ? x : -x);\n } else {\n style2[offsetX] = offsetX === \"left\" ? addUnit(x) : getOffsetWithMinusString(x);\n }\n } else {\n style2.marginTop = addUnit(y);\n style2.marginLeft = addUnit(x);\n }\n }\n return style2;\n });\n const renderBadge = () => {\n if (hasContent() || props.dot) {\n return _createVNode(\"div\", {\n \"class\": bem([props.position, {\n dot: props.dot,\n fixed: !!slots.default\n }]),\n \"style\": style.value\n }, [renderContent()]);\n }\n };\n return () => {\n if (slots.default) {\n const {\n tag\n } = props;\n return _createVNode(tag, {\n \"class\": bem(\"wrapper\")\n }, {\n default: () => [slots.default(), renderBadge()]\n });\n }\n return renderBadge();\n };\n }\n});\nexport {\n badgeProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Badge from \"./Badge.mjs\";\nconst Badge = withInstall(_Badge);\nvar stdin_default = Badge;\nimport { badgeProps } from \"./Badge.mjs\";\nexport {\n Badge,\n badgeProps,\n stdin_default as default\n};\n","let globalZIndex = 2e3;\nconst useGlobalZIndex = () => ++globalZIndex;\nconst setGlobalZIndex = (val) => {\n globalZIndex = val;\n};\nexport {\n setGlobalZIndex,\n useGlobalZIndex\n};\n","import { watch, provide, computed, watchEffect, onActivated, onDeactivated, onBeforeUnmount, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, inBrowser, kebabCase, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { setGlobalZIndex } from \"../composables/use-global-z-index.mjs\";\nconst [name, bem] = createNamespace(\"config-provider\");\nconst CONFIG_PROVIDER_KEY = Symbol(name);\nconst configProviderProps = {\n tag: makeStringProp(\"div\"),\n theme: makeStringProp(\"light\"),\n zIndex: Number,\n themeVars: Object,\n themeVarsDark: Object,\n themeVarsLight: Object,\n themeVarsScope: makeStringProp(\"local\"),\n iconPrefix: String\n};\nfunction insertDash(str) {\n return str.replace(/([a-zA-Z])(\\d)/g, \"$1-$2\");\n}\nfunction mapThemeVarsToCSSVars(themeVars) {\n const cssVars = {};\n Object.keys(themeVars).forEach((key) => {\n const formattedKey = insertDash(kebabCase(key));\n cssVars[`--van-${formattedKey}`] = themeVars[key];\n });\n return cssVars;\n}\nfunction syncThemeVarsOnRoot(newStyle = {}, oldStyle = {}) {\n Object.keys(newStyle).forEach((key) => {\n if (newStyle[key] !== oldStyle[key]) {\n document.documentElement.style.setProperty(key, newStyle[key]);\n }\n });\n Object.keys(oldStyle).forEach((key) => {\n if (!newStyle[key]) {\n document.documentElement.style.removeProperty(key);\n }\n });\n}\nvar stdin_default = defineComponent({\n name,\n props: configProviderProps,\n setup(props, {\n slots\n }) {\n const style = computed(() => mapThemeVarsToCSSVars(extend({}, props.themeVars, props.theme === \"dark\" ? props.themeVarsDark : props.themeVarsLight)));\n if (inBrowser) {\n const addTheme = () => {\n document.documentElement.classList.add(`van-theme-${props.theme}`);\n };\n const removeTheme = (theme = props.theme) => {\n document.documentElement.classList.remove(`van-theme-${theme}`);\n };\n watch(() => props.theme, (newVal, oldVal) => {\n if (oldVal) {\n removeTheme(oldVal);\n }\n addTheme();\n }, {\n immediate: true\n });\n onActivated(addTheme);\n onDeactivated(removeTheme);\n onBeforeUnmount(removeTheme);\n watch(style, (newStyle, oldStyle) => {\n if (props.themeVarsScope === \"global\") {\n syncThemeVarsOnRoot(newStyle, oldStyle);\n }\n });\n watch(() => props.themeVarsScope, (newScope, oldScope) => {\n if (oldScope === \"global\") {\n syncThemeVarsOnRoot({}, style.value);\n }\n if (newScope === \"global\") {\n syncThemeVarsOnRoot(style.value, {});\n }\n });\n if (props.themeVarsScope === \"global\") {\n syncThemeVarsOnRoot(style.value, {});\n }\n }\n provide(CONFIG_PROVIDER_KEY, props);\n watchEffect(() => {\n if (props.zIndex !== void 0) {\n setGlobalZIndex(props.zIndex);\n }\n });\n return () => _createVNode(props.tag, {\n \"class\": bem(),\n \"style\": props.themeVarsScope === \"local\" ? style.value : void 0\n }, {\n default: () => {\n var _a;\n return [(_a = slots.default) == null ? void 0 : _a.call(slots)];\n }\n });\n }\n});\nexport {\n CONFIG_PROVIDER_KEY,\n configProviderProps,\n stdin_default as default\n};\n","import { inject, computed, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { addUnit, numericProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { Badge } from \"../badge/index.mjs\";\nimport { CONFIG_PROVIDER_KEY } from \"../config-provider/ConfigProvider.mjs\";\nconst [name, bem] = createNamespace(\"icon\");\nconst isImage = (name2) => name2 == null ? void 0 : name2.includes(\"/\");\nconst iconProps = {\n dot: Boolean,\n tag: makeStringProp(\"i\"),\n name: String,\n size: numericProp,\n badge: numericProp,\n color: String,\n badgeProps: Object,\n classPrefix: String\n};\nvar stdin_default = defineComponent({\n name,\n props: iconProps,\n setup(props, {\n slots\n }) {\n const config = inject(CONFIG_PROVIDER_KEY, null);\n const classPrefix = computed(() => props.classPrefix || (config == null ? void 0 : config.iconPrefix) || bem());\n return () => {\n const {\n tag,\n dot,\n name: name2,\n size,\n badge,\n color\n } = props;\n const isImageIcon = isImage(name2);\n return _createVNode(Badge, _mergeProps({\n \"dot\": dot,\n \"tag\": tag,\n \"class\": [classPrefix.value, isImageIcon ? \"\" : `${classPrefix.value}-${name2}`],\n \"style\": {\n color,\n fontSize: addUnit(size)\n },\n \"content\": badge\n }, props.badgeProps), {\n default: () => {\n var _a;\n return [(_a = slots.default) == null ? void 0 : _a.call(slots), isImageIcon && _createVNode(\"img\", {\n \"class\": bem(\"image\"),\n \"src\": name2\n }, null)];\n }\n });\n };\n }\n});\nexport {\n stdin_default as default,\n iconProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Icon from \"./Icon.mjs\";\nconst Icon = withInstall(_Icon);\nvar stdin_default = Icon;\nimport { iconProps } from \"./Icon.mjs\";\nexport {\n Icon,\n stdin_default as default,\n iconProps\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, addUnit, numericProp, getSizeStyle, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"loading\");\nconst SpinIcon = Array(12).fill(null).map((_, index) => _createVNode(\"i\", {\n \"class\": bem(\"line\", String(index + 1))\n}, null));\nconst CircularIcon = _createVNode(\"svg\", {\n \"class\": bem(\"circular\"),\n \"viewBox\": \"25 25 50 50\"\n}, [_createVNode(\"circle\", {\n \"cx\": \"50\",\n \"cy\": \"50\",\n \"r\": \"20\",\n \"fill\": \"none\"\n}, null)]);\nconst loadingProps = {\n size: numericProp,\n type: makeStringProp(\"circular\"),\n color: String,\n vertical: Boolean,\n textSize: numericProp,\n textColor: String\n};\nvar stdin_default = defineComponent({\n name,\n props: loadingProps,\n setup(props, {\n slots\n }) {\n const spinnerStyle = computed(() => extend({\n color: props.color\n }, getSizeStyle(props.size)));\n const renderIcon = () => {\n const DefaultIcon = props.type === \"spinner\" ? SpinIcon : CircularIcon;\n return _createVNode(\"span\", {\n \"class\": bem(\"spinner\", props.type),\n \"style\": spinnerStyle.value\n }, [slots.icon ? slots.icon() : DefaultIcon]);\n };\n const renderText = () => {\n var _a;\n if (slots.default) {\n return _createVNode(\"span\", {\n \"class\": bem(\"text\"),\n \"style\": {\n fontSize: addUnit(props.textSize),\n color: (_a = props.textColor) != null ? _a : props.color\n }\n }, [slots.default()]);\n }\n };\n return () => {\n const {\n type,\n vertical\n } = props;\n return _createVNode(\"div\", {\n \"class\": bem([type, {\n vertical\n }]),\n \"aria-live\": \"polite\",\n \"aria-busy\": true\n }, [renderIcon(), renderText()]);\n };\n }\n});\nexport {\n stdin_default as default,\n loadingProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Loading from \"./Loading.mjs\";\nconst Loading = withInstall(_Loading);\nvar stdin_default = Loading;\nimport { loadingProps } from \"./Loading.mjs\";\nexport {\n Loading,\n stdin_default as default,\n loadingProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, numericProp, preventDefault, makeStringProp, createNamespace, BORDER_SURROUND } from \"../utils/index.mjs\";\nimport { useRoute, routeProps } from \"../composables/use-route.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nconst [name, bem] = createNamespace(\"button\");\nconst buttonProps = extend({}, routeProps, {\n tag: makeStringProp(\"button\"),\n text: String,\n icon: String,\n type: makeStringProp(\"default\"),\n size: makeStringProp(\"normal\"),\n color: String,\n block: Boolean,\n plain: Boolean,\n round: Boolean,\n square: Boolean,\n loading: Boolean,\n hairline: Boolean,\n disabled: Boolean,\n iconPrefix: String,\n nativeType: makeStringProp(\"button\"),\n loadingSize: numericProp,\n loadingText: String,\n loadingType: String,\n iconPosition: makeStringProp(\"left\")\n});\nvar stdin_default = defineComponent({\n name,\n props: buttonProps,\n emits: [\"click\"],\n setup(props, {\n emit,\n slots\n }) {\n const route = useRoute();\n const renderLoadingIcon = () => {\n if (slots.loading) {\n return slots.loading();\n }\n return _createVNode(Loading, {\n \"size\": props.loadingSize,\n \"type\": props.loadingType,\n \"class\": bem(\"loading\")\n }, null);\n };\n const renderIcon = () => {\n if (props.loading) {\n return renderLoadingIcon();\n }\n if (slots.icon) {\n return _createVNode(\"div\", {\n \"class\": bem(\"icon\")\n }, [slots.icon()]);\n }\n if (props.icon) {\n return _createVNode(Icon, {\n \"name\": props.icon,\n \"class\": bem(\"icon\"),\n \"classPrefix\": props.iconPrefix\n }, null);\n }\n };\n const renderText = () => {\n let text;\n if (props.loading) {\n text = props.loadingText;\n } else {\n text = slots.default ? slots.default() : props.text;\n }\n if (text) {\n return _createVNode(\"span\", {\n \"class\": bem(\"text\")\n }, [text]);\n }\n };\n const getStyle = () => {\n const {\n color,\n plain\n } = props;\n if (color) {\n const style = {\n color: plain ? color : \"white\"\n };\n if (!plain) {\n style.background = color;\n }\n if (color.includes(\"gradient\")) {\n style.border = 0;\n } else {\n style.borderColor = color;\n }\n return style;\n }\n };\n const onClick = (event) => {\n if (props.loading) {\n preventDefault(event);\n } else if (!props.disabled) {\n emit(\"click\", event);\n route();\n }\n };\n return () => {\n const {\n tag,\n type,\n size,\n block,\n round,\n plain,\n square,\n loading,\n disabled,\n hairline,\n nativeType,\n iconPosition\n } = props;\n const classes = [bem([type, size, {\n plain,\n block,\n round,\n square,\n loading,\n disabled,\n hairline\n }]), {\n [BORDER_SURROUND]: hairline\n }];\n return _createVNode(tag, {\n \"type\": nativeType,\n \"class\": classes,\n \"style\": getStyle(),\n \"disabled\": disabled,\n \"onClick\": onClick\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [iconPosition === \"left\" && renderIcon(), renderText(), iconPosition === \"right\" && renderIcon()])]\n });\n };\n }\n});\nexport {\n buttonProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Button from \"./Button.mjs\";\nconst Button = withInstall(_Button);\nvar stdin_default = Button;\nimport { buttonProps } from \"./Button.mjs\";\nexport {\n Button,\n buttonProps,\n stdin_default as default\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, createNamespace } from \"../utils/index.mjs\";\nimport { ACTION_BAR_KEY } from \"../action-bar/ActionBar.mjs\";\nimport { useParent } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { useRoute, routeProps } from \"../composables/use-route.mjs\";\nimport { Button } from \"../button/index.mjs\";\nconst [name, bem] = createNamespace(\"action-bar-button\");\nconst actionBarButtonProps = extend({}, routeProps, {\n type: String,\n text: String,\n icon: String,\n color: String,\n loading: Boolean,\n disabled: Boolean\n});\nvar stdin_default = defineComponent({\n name,\n props: actionBarButtonProps,\n setup(props, {\n slots\n }) {\n const route = useRoute();\n const {\n parent,\n index\n } = useParent(ACTION_BAR_KEY);\n const isFirst = computed(() => {\n if (parent) {\n const prev = parent.children[index.value - 1];\n return !(prev && \"isButton\" in prev);\n }\n });\n const isLast = computed(() => {\n if (parent) {\n const next = parent.children[index.value + 1];\n return !(next && \"isButton\" in next);\n }\n });\n useExpose({\n isButton: true\n });\n return () => {\n const {\n type,\n icon,\n text,\n color,\n loading,\n disabled\n } = props;\n return _createVNode(Button, {\n \"class\": bem([type, {\n last: isLast.value,\n first: isFirst.value\n }]),\n \"size\": \"large\",\n \"type\": type,\n \"icon\": icon,\n \"color\": color,\n \"loading\": loading,\n \"disabled\": disabled,\n \"onClick\": route\n }, {\n default: () => [slots.default ? slots.default() : text]\n });\n };\n }\n});\nexport {\n actionBarButtonProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ActionBarButton from \"./ActionBarButton.mjs\";\nconst ActionBarButton = withInstall(_ActionBarButton);\nvar stdin_default = ActionBarButton;\nimport { actionBarButtonProps } from \"./ActionBarButton.mjs\";\nexport {\n ActionBarButton,\n actionBarButtonProps,\n stdin_default as default\n};\n","import { defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { extend, createNamespace, unknownProp, numericProp } from \"../utils/index.mjs\";\nimport { ACTION_BAR_KEY } from \"../action-bar/ActionBar.mjs\";\nimport { useParent } from \"@vant/use\";\nimport { useRoute, routeProps } from \"../composables/use-route.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Badge } from \"../badge/index.mjs\";\nconst [name, bem] = createNamespace(\"action-bar-icon\");\nconst actionBarIconProps = extend({}, routeProps, {\n dot: Boolean,\n text: String,\n icon: String,\n color: String,\n badge: numericProp,\n iconClass: unknownProp,\n badgeProps: Object,\n iconPrefix: String\n});\nvar stdin_default = defineComponent({\n name,\n props: actionBarIconProps,\n setup(props, {\n slots\n }) {\n const route = useRoute();\n useParent(ACTION_BAR_KEY);\n const renderIcon = () => {\n const {\n dot,\n badge,\n icon,\n color,\n iconClass,\n badgeProps,\n iconPrefix\n } = props;\n if (slots.icon) {\n return _createVNode(Badge, _mergeProps({\n \"dot\": dot,\n \"class\": bem(\"icon\"),\n \"content\": badge\n }, badgeProps), {\n default: slots.icon\n });\n }\n return _createVNode(Icon, {\n \"tag\": \"div\",\n \"dot\": dot,\n \"name\": icon,\n \"badge\": badge,\n \"color\": color,\n \"class\": [bem(\"icon\"), iconClass],\n \"badgeProps\": badgeProps,\n \"classPrefix\": iconPrefix\n }, null);\n };\n return () => _createVNode(\"div\", {\n \"role\": \"button\",\n \"class\": bem(),\n \"tabindex\": 0,\n \"onClick\": route\n }, [renderIcon(), slots.default ? slots.default() : props.text]);\n }\n});\nexport {\n actionBarIconProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ActionBarIcon from \"./ActionBarIcon.mjs\";\nconst ActionBarIcon = withInstall(_ActionBarIcon);\nvar stdin_default = ActionBarIcon;\nimport { actionBarIconProps } from \"./ActionBarIcon.mjs\";\nexport {\n ActionBarIcon,\n actionBarIconProps,\n stdin_default as default\n};\n","import { truthProp, unknownProp, numericProp } from \"../utils/index.mjs\";\nconst popupSharedProps = {\n // whether to show popup\n show: Boolean,\n // z-index\n zIndex: numericProp,\n // whether to show overlay\n overlay: truthProp,\n // transition duration\n duration: numericProp,\n // teleport\n teleport: [String, Object],\n // prevent body scroll\n lockScroll: truthProp,\n // whether to lazy render\n lazyRender: truthProp,\n // callback function before close\n beforeClose: Function,\n // overlay props\n overlayProps: Object,\n // overlay custom style\n overlayStyle: Object,\n // overlay custom class name\n overlayClass: unknownProp,\n // Initial rendering animation\n transitionAppear: Boolean,\n // whether to close popup when overlay is clicked\n closeOnClickOverlay: truthProp\n};\nconst popupSharedPropKeys = Object.keys(\n popupSharedProps\n);\nexport {\n popupSharedPropKeys,\n popupSharedProps\n};\n","import { ref } from \"vue\";\nimport { TAP_OFFSET } from \"../utils/index.mjs\";\nfunction getDirection(x, y) {\n if (x > y) {\n return \"horizontal\";\n }\n if (y > x) {\n return \"vertical\";\n }\n return \"\";\n}\nfunction useTouch() {\n const startX = ref(0);\n const startY = ref(0);\n const deltaX = ref(0);\n const deltaY = ref(0);\n const offsetX = ref(0);\n const offsetY = ref(0);\n const direction = ref(\"\");\n const isTap = ref(true);\n const isVertical = () => direction.value === \"vertical\";\n const isHorizontal = () => direction.value === \"horizontal\";\n const reset = () => {\n deltaX.value = 0;\n deltaY.value = 0;\n offsetX.value = 0;\n offsetY.value = 0;\n direction.value = \"\";\n isTap.value = true;\n };\n const start = ((event) => {\n reset();\n startX.value = event.touches[0].clientX;\n startY.value = event.touches[0].clientY;\n });\n const move = ((event) => {\n const touch = event.touches[0];\n deltaX.value = (touch.clientX < 0 ? 0 : touch.clientX) - startX.value;\n deltaY.value = touch.clientY - startY.value;\n offsetX.value = Math.abs(deltaX.value);\n offsetY.value = Math.abs(deltaY.value);\n const LOCK_DIRECTION_DISTANCE = 10;\n if (!direction.value || offsetX.value < LOCK_DIRECTION_DISTANCE && offsetY.value < LOCK_DIRECTION_DISTANCE) {\n direction.value = getDirection(offsetX.value, offsetY.value);\n }\n if (isTap.value && (offsetX.value > TAP_OFFSET || offsetY.value > TAP_OFFSET)) {\n isTap.value = false;\n }\n });\n return {\n move,\n start,\n reset,\n startX,\n startY,\n deltaX,\n deltaY,\n offsetX,\n offsetY,\n direction,\n isVertical,\n isHorizontal,\n isTap\n };\n}\nexport {\n useTouch\n};\n","import { watch, onBeforeUnmount, onDeactivated } from \"vue\";\nimport { getScrollParent, onMountedOrActivated } from \"@vant/use\";\nimport { useTouch } from \"./use-touch.mjs\";\nimport { preventDefault } from \"../utils/index.mjs\";\nlet totalLockCount = 0;\nconst BODY_LOCK_CLASS = \"van-overflow-hidden\";\nfunction useLockScroll(rootRef, shouldLock) {\n const touch = useTouch();\n const DIRECTION_UP = \"01\";\n const DIRECTION_DOWN = \"10\";\n const onTouchMove = (event) => {\n touch.move(event);\n const direction = touch.deltaY.value > 0 ? DIRECTION_DOWN : DIRECTION_UP;\n const el = getScrollParent(\n event.target,\n rootRef.value\n );\n const { scrollHeight, offsetHeight, scrollTop } = el;\n let status = \"11\";\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? \"00\" : \"01\";\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = \"10\";\n }\n if (status !== \"11\" && touch.isVertical() && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n };\n const lock = () => {\n document.addEventListener(\"touchstart\", touch.start);\n document.addEventListener(\"touchmove\", onTouchMove, { passive: false });\n if (!totalLockCount) {\n document.body.classList.add(BODY_LOCK_CLASS);\n }\n totalLockCount++;\n };\n const unlock = () => {\n if (totalLockCount) {\n document.removeEventListener(\"touchstart\", touch.start);\n document.removeEventListener(\"touchmove\", onTouchMove);\n totalLockCount--;\n if (!totalLockCount) {\n document.body.classList.remove(BODY_LOCK_CLASS);\n }\n }\n };\n const init = () => shouldLock() && lock();\n const destroy = () => shouldLock() && unlock();\n onMountedOrActivated(init);\n onDeactivated(destroy);\n onBeforeUnmount(destroy);\n watch(shouldLock, (value) => {\n value ? lock() : unlock();\n });\n}\nexport {\n useLockScroll\n};\n","import { ref, watch } from \"vue\";\nfunction useLazyRender(show) {\n const inited = ref(false);\n watch(\n show,\n (value) => {\n if (value) {\n inited.value = value;\n }\n },\n { immediate: true }\n );\n return (render) => () => inited.value ? render() : null;\n}\nexport {\n useLazyRender\n};\n","import { getCurrentInstance } from \"vue\";\nconst useScopeId = () => {\n var _a;\n const { scopeId } = ((_a = getCurrentInstance()) == null ? void 0 : _a.vnode) || {};\n return scopeId ? { [scopeId]: \"\" } : null;\n};\nexport {\n useScopeId\n};\n","import { ref, defineComponent, Teleport, Transition, vShow as _vShow, mergeProps as _mergeProps, createVNode as _createVNode, withDirectives as _withDirectives } from \"vue\";\nimport { isDef, extend, truthProp, numericProp, unknownProp, preventDefault, createNamespace, getZIndexStyle } from \"../utils/index.mjs\";\nimport { useEventListener } from \"@vant/use\";\nimport { useLazyRender } from \"../composables/use-lazy-render.mjs\";\nconst [name, bem] = createNamespace(\"overlay\");\nconst overlayProps = {\n show: Boolean,\n zIndex: numericProp,\n duration: numericProp,\n className: unknownProp,\n lockScroll: truthProp,\n lazyRender: truthProp,\n customStyle: Object,\n teleport: [String, Object]\n};\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: overlayProps,\n setup(props, {\n attrs,\n slots\n }) {\n const root = ref();\n const lazyRender = useLazyRender(() => props.show || !props.lazyRender);\n const onTouchMove = (event) => {\n if (props.lockScroll) {\n preventDefault(event, true);\n }\n };\n const renderOverlay = lazyRender(() => {\n var _a;\n const style = extend(getZIndexStyle(props.zIndex), props.customStyle);\n if (isDef(props.duration)) {\n style.animationDuration = `${props.duration}s`;\n }\n return _withDirectives(_createVNode(\"div\", _mergeProps({\n \"ref\": root,\n \"style\": style,\n \"class\": [bem(), props.className]\n }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots)]), [[_vShow, props.show]]);\n });\n useEventListener(\"touchmove\", onTouchMove, {\n target: root\n });\n return () => {\n const Content = _createVNode(Transition, {\n \"name\": \"van-fade\",\n \"appear\": true\n }, {\n default: renderOverlay\n });\n if (props.teleport) {\n return _createVNode(Teleport, {\n \"to\": props.teleport\n }, {\n default: () => [Content]\n });\n }\n return Content;\n };\n }\n});\nexport {\n stdin_default as default,\n overlayProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Overlay from \"./Overlay.mjs\";\nconst Overlay = withInstall(_Overlay);\nvar stdin_default = Overlay;\nimport { overlayProps } from \"./Overlay.mjs\";\nexport {\n Overlay,\n stdin_default as default,\n overlayProps\n};\n","import { ref, watch, provide, Teleport, nextTick, computed, onMounted, Transition, onActivated, onDeactivated, defineComponent, mergeProps as _mergeProps, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment } from \"vue\";\nimport { popupSharedProps } from \"./shared.mjs\";\nimport { isDef, extend, makeStringProp, callInterceptor, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { useEventListener } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { useLockScroll } from \"../composables/use-lock-scroll.mjs\";\nimport { useLazyRender } from \"../composables/use-lazy-render.mjs\";\nimport { POPUP_TOGGLE_KEY } from \"../composables/on-popup-reopen.mjs\";\nimport { useGlobalZIndex } from \"../composables/use-global-z-index.mjs\";\nimport { useScopeId } from \"../composables/use-scope-id.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Overlay } from \"../overlay/index.mjs\";\nconst popupProps = extend({}, popupSharedProps, {\n round: Boolean,\n position: makeStringProp(\"center\"),\n closeIcon: makeStringProp(\"cross\"),\n closeable: Boolean,\n transition: String,\n iconPrefix: String,\n closeOnPopstate: Boolean,\n closeIconPosition: makeStringProp(\"top-right\"),\n destroyOnClose: Boolean,\n safeAreaInsetTop: Boolean,\n safeAreaInsetBottom: Boolean\n});\nconst [name, bem] = createNamespace(\"popup\");\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: popupProps,\n emits: [\"open\", \"close\", \"opened\", \"closed\", \"keydown\", \"update:show\", \"clickOverlay\", \"clickCloseIcon\"],\n setup(props, {\n emit,\n attrs,\n slots\n }) {\n let opened;\n let shouldReopen;\n const zIndex = ref();\n const popupRef = ref();\n const lazyRender = useLazyRender(() => props.show || !props.lazyRender);\n const style = computed(() => {\n const style2 = {\n zIndex: zIndex.value\n };\n if (isDef(props.duration)) {\n const key = props.position === \"center\" ? \"animationDuration\" : \"transitionDuration\";\n style2[key] = `${props.duration}s`;\n }\n return style2;\n });\n const open = () => {\n if (!opened) {\n opened = true;\n zIndex.value = props.zIndex !== void 0 ? +props.zIndex : useGlobalZIndex();\n emit(\"open\");\n }\n };\n const close = () => {\n if (opened) {\n callInterceptor(props.beforeClose, {\n done() {\n opened = false;\n emit(\"close\");\n emit(\"update:show\", false);\n }\n });\n }\n };\n const onClickOverlay = (event) => {\n emit(\"clickOverlay\", event);\n if (props.closeOnClickOverlay) {\n close();\n }\n };\n const renderOverlay = () => {\n if (props.overlay) {\n const overlayProps = extend({\n show: props.show,\n class: props.overlayClass,\n zIndex: zIndex.value,\n duration: props.duration,\n customStyle: props.overlayStyle,\n role: props.closeOnClickOverlay ? \"button\" : void 0,\n tabindex: props.closeOnClickOverlay ? 0 : void 0\n }, props.overlayProps);\n return _createVNode(Overlay, _mergeProps(overlayProps, useScopeId(), {\n \"onClick\": onClickOverlay\n }), {\n default: slots[\"overlay-content\"]\n });\n }\n };\n const onClickCloseIcon = (event) => {\n emit(\"clickCloseIcon\", event);\n close();\n };\n const renderCloseIcon = () => {\n if (props.closeable) {\n return _createVNode(Icon, {\n \"role\": \"button\",\n \"tabindex\": 0,\n \"name\": props.closeIcon,\n \"class\": [bem(\"close-icon\", props.closeIconPosition), HAPTICS_FEEDBACK],\n \"classPrefix\": props.iconPrefix,\n \"onClick\": onClickCloseIcon\n }, null);\n }\n };\n let timer;\n const onOpened = () => {\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n emit(\"opened\");\n });\n };\n const onClosed = () => emit(\"closed\");\n const onKeydown = (event) => emit(\"keydown\", event);\n const renderPopup = lazyRender(() => {\n var _a;\n const {\n destroyOnClose,\n round,\n position,\n safeAreaInsetTop,\n safeAreaInsetBottom,\n show\n } = props;\n if (!show && destroyOnClose) {\n return;\n }\n return _withDirectives(_createVNode(\"div\", _mergeProps({\n \"ref\": popupRef,\n \"style\": style.value,\n \"role\": \"dialog\",\n \"tabindex\": 0,\n \"class\": [bem({\n round,\n [position]: position\n }), {\n \"van-safe-area-top\": safeAreaInsetTop,\n \"van-safe-area-bottom\": safeAreaInsetBottom\n }],\n \"onKeydown\": onKeydown\n }, attrs, useScopeId()), [(_a = slots.default) == null ? void 0 : _a.call(slots), renderCloseIcon()]), [[_vShow, show]]);\n });\n const renderTransition = () => {\n const {\n position,\n transition,\n transitionAppear\n } = props;\n const name2 = position === \"center\" ? \"van-fade\" : `van-popup-slide-${position}`;\n return _createVNode(Transition, {\n \"name\": transition || name2,\n \"appear\": transitionAppear,\n \"onAfterEnter\": onOpened,\n \"onAfterLeave\": onClosed\n }, {\n default: renderPopup\n });\n };\n watch(() => props.show, (show) => {\n if (show && !opened) {\n open();\n if (attrs.tabindex === 0) {\n nextTick(() => {\n var _a;\n (_a = popupRef.value) == null ? void 0 : _a.focus();\n });\n }\n }\n if (!show && opened) {\n opened = false;\n emit(\"close\");\n }\n });\n useExpose({\n popupRef\n });\n useLockScroll(popupRef, () => props.show && props.lockScroll);\n useEventListener(\"popstate\", () => {\n if (props.closeOnPopstate) {\n close();\n shouldReopen = false;\n }\n });\n onMounted(() => {\n if (props.show) {\n open();\n }\n });\n onActivated(() => {\n if (shouldReopen) {\n emit(\"update:show\", true);\n shouldReopen = false;\n }\n });\n onDeactivated(() => {\n if (props.show && props.teleport) {\n close();\n shouldReopen = true;\n }\n });\n provide(POPUP_TOGGLE_KEY, () => props.show);\n return () => {\n if (props.teleport) {\n return _createVNode(Teleport, {\n \"to\": props.teleport\n }, {\n default: () => [renderOverlay(), renderTransition()]\n });\n }\n return _createVNode(_Fragment, null, [renderOverlay(), renderTransition()]);\n };\n }\n});\nexport {\n stdin_default as default,\n popupProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Popup from \"./Popup.mjs\";\nconst Popup = withInstall(_Popup);\nvar stdin_default = Popup;\nimport { popupProps } from \"./Popup.mjs\";\nexport {\n Popup,\n stdin_default as default,\n popupProps\n};\n","import { nextTick, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { pick, extend, truthProp, makeArrayProp, makeStringProp, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nimport { popupSharedProps, popupSharedPropKeys } from \"../popup/shared.mjs\";\nconst [name, bem] = createNamespace(\"action-sheet\");\nconst actionSheetProps = extend({}, popupSharedProps, {\n title: String,\n round: truthProp,\n actions: makeArrayProp(),\n closeIcon: makeStringProp(\"cross\"),\n closeable: truthProp,\n cancelText: String,\n description: String,\n closeOnPopstate: truthProp,\n closeOnClickAction: Boolean,\n safeAreaInsetBottom: truthProp\n});\nconst popupInheritKeys = [...popupSharedPropKeys, \"round\", \"closeOnPopstate\", \"safeAreaInsetBottom\"];\nvar stdin_default = defineComponent({\n name,\n props: actionSheetProps,\n emits: [\"select\", \"cancel\", \"update:show\"],\n setup(props, {\n slots,\n emit\n }) {\n const updateShow = (show) => emit(\"update:show\", show);\n const onCancel = () => {\n updateShow(false);\n emit(\"cancel\");\n };\n const renderHeader = () => {\n if (props.title) {\n return _createVNode(\"div\", {\n \"class\": bem(\"header\")\n }, [props.title, props.closeable && _createVNode(Icon, {\n \"name\": props.closeIcon,\n \"class\": [bem(\"close\"), HAPTICS_FEEDBACK],\n \"onClick\": onCancel\n }, null)]);\n }\n };\n const renderCancel = () => {\n if (slots.cancel || props.cancelText) {\n return [_createVNode(\"div\", {\n \"class\": bem(\"gap\")\n }, null), _createVNode(\"button\", {\n \"type\": \"button\",\n \"class\": bem(\"cancel\"),\n \"onClick\": onCancel\n }, [slots.cancel ? slots.cancel() : props.cancelText])];\n }\n };\n const renderIcon = (action) => {\n if (action.icon) {\n return _createVNode(Icon, {\n \"class\": bem(\"item-icon\"),\n \"name\": action.icon\n }, null);\n }\n };\n const renderActionContent = (action, index) => {\n if (action.loading) {\n return _createVNode(Loading, {\n \"class\": bem(\"loading-icon\")\n }, null);\n }\n if (slots.action) {\n return slots.action({\n action,\n index\n });\n }\n return [_createVNode(\"span\", {\n \"class\": bem(\"name\")\n }, [action.name]), action.subname && _createVNode(\"div\", {\n \"class\": bem(\"subname\")\n }, [action.subname])];\n };\n const renderAction = (action, index) => {\n const {\n color,\n loading,\n callback,\n disabled,\n className\n } = action;\n const onClick = () => {\n if (disabled || loading) {\n return;\n }\n if (callback) {\n callback(action);\n }\n if (props.closeOnClickAction) {\n updateShow(false);\n }\n nextTick(() => emit(\"select\", action, index));\n };\n return _createVNode(\"button\", {\n \"type\": \"button\",\n \"style\": {\n color\n },\n \"class\": [bem(\"item\", {\n loading,\n disabled\n }), className],\n \"onClick\": onClick\n }, [renderIcon(action), renderActionContent(action, index)]);\n };\n const renderDescription = () => {\n if (props.description || slots.description) {\n const content = slots.description ? slots.description() : props.description;\n return _createVNode(\"div\", {\n \"class\": bem(\"description\")\n }, [content]);\n }\n };\n return () => _createVNode(Popup, _mergeProps({\n \"class\": bem(),\n \"position\": \"bottom\",\n \"onUpdate:show\": updateShow\n }, pick(props, popupInheritKeys)), {\n default: () => {\n var _a;\n return [renderHeader(), renderDescription(), _createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [props.actions.map(renderAction), (_a = slots.default) == null ? void 0 : _a.call(slots)]), renderCancel()];\n }\n });\n }\n});\nexport {\n actionSheetProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ActionSheet from \"./ActionSheet.mjs\";\nconst ActionSheet = withInstall(_ActionSheet);\nvar stdin_default = ActionSheet;\nimport { actionSheetProps } from \"./ActionSheet.mjs\";\nexport {\n ActionSheet,\n actionSheetProps,\n stdin_default as default\n};\n","import { isDef, clamp, extend, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem, t] = createNamespace(\"picker\");\nconst getFirstEnabledOption = (options) => options.find((option) => !option.disabled) || options[0];\nfunction getColumnsType(columns, fields) {\n const firstColumn = columns[0];\n if (firstColumn) {\n if (Array.isArray(firstColumn)) {\n return \"multiple\";\n }\n if (fields.children in firstColumn) {\n return \"cascade\";\n }\n }\n return \"default\";\n}\nfunction findIndexOfEnabledOption(options, index) {\n index = clamp(index, 0, options.length);\n for (let i = index; i < options.length; i++) {\n if (!options[i].disabled) return i;\n }\n for (let i = index - 1; i >= 0; i--) {\n if (!options[i].disabled) return i;\n }\n return 0;\n}\nconst isOptionExist = (options, value, fields) => value !== void 0 && options.some((option) => option[fields.value] === value);\nfunction findOptionByValue(options, value, fields) {\n const index = options.findIndex((option) => option[fields.value] === value);\n const enabledIndex = findIndexOfEnabledOption(options, index);\n return options[enabledIndex];\n}\nfunction formatCascadeColumns(columns, fields, selectedValues) {\n const formatted = [];\n let cursor = {\n [fields.children]: columns\n };\n let columnIndex = 0;\n while (cursor && cursor[fields.children]) {\n const options = cursor[fields.children];\n const value = selectedValues.value[columnIndex];\n cursor = isDef(value) ? findOptionByValue(options, value, fields) : void 0;\n if (!cursor && options.length) {\n const firstValue = getFirstEnabledOption(options)[fields.value];\n cursor = findOptionByValue(options, firstValue, fields);\n }\n columnIndex++;\n formatted.push(options);\n }\n return formatted;\n}\nfunction getElementTranslateY(element) {\n const { transform } = window.getComputedStyle(element);\n const translateY = transform.slice(7, transform.length - 1).split(\", \")[5];\n return Number(translateY);\n}\nfunction assignDefaultFields(fields) {\n return extend(\n {\n text: \"text\",\n value: \"value\",\n children: \"children\"\n },\n fields\n );\n}\nexport {\n assignDefaultFields,\n bem,\n findIndexOfEnabledOption,\n findOptionByValue,\n formatCascadeColumns,\n getColumnsType,\n getElementTranslateY,\n getFirstEnabledOption,\n isOptionExist,\n name,\n t\n};\n","import { ref, computed, watchEffect, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { clamp, numericProp, makeArrayProp, preventDefault, createNamespace, makeRequiredProp } from \"../utils/index.mjs\";\nimport { getElementTranslateY, findIndexOfEnabledOption } from \"./utils.mjs\";\nimport { useEventListener, useParent } from \"@vant/use\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst DEFAULT_DURATION = 200;\nconst MOMENTUM_TIME = 300;\nconst MOMENTUM_DISTANCE = 15;\nconst [name, bem] = createNamespace(\"picker-column\");\nconst PICKER_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: {\n value: numericProp,\n fields: makeRequiredProp(Object),\n options: makeArrayProp(),\n readonly: Boolean,\n allowHtml: Boolean,\n optionHeight: makeRequiredProp(Number),\n swipeDuration: makeRequiredProp(numericProp),\n visibleOptionNum: makeRequiredProp(numericProp)\n },\n emits: [\"change\", \"clickOption\", \"scrollInto\"],\n setup(props, {\n emit,\n slots\n }) {\n let moving;\n let startOffset;\n let touchStartTime;\n let momentumOffset;\n let transitionEndTrigger;\n const root = ref();\n const wrapper = ref();\n const currentOffset = ref(0);\n const currentDuration = ref(0);\n const touch = useTouch();\n const count = () => props.options.length;\n const baseOffset = () => props.optionHeight * (+props.visibleOptionNum - 1) / 2;\n const updateValueByIndex = (index) => {\n let enabledIndex = findIndexOfEnabledOption(props.options, index);\n const offset = -enabledIndex * props.optionHeight;\n const trigger = () => {\n if (enabledIndex > count() - 1) {\n enabledIndex = findIndexOfEnabledOption(props.options, index);\n }\n const value = props.options[enabledIndex][props.fields.value];\n if (value !== props.value) {\n emit(\"change\", value);\n }\n };\n if (moving && offset !== currentOffset.value) {\n transitionEndTrigger = trigger;\n } else {\n trigger();\n }\n currentOffset.value = offset;\n };\n const isReadonly = () => props.readonly || !props.options.length;\n const onClickOption = (index) => {\n if (moving || isReadonly()) {\n return;\n }\n transitionEndTrigger = null;\n currentDuration.value = DEFAULT_DURATION;\n updateValueByIndex(index);\n emit(\"clickOption\", props.options[index]);\n };\n const getIndexByOffset = (offset) => clamp(Math.round(-offset / props.optionHeight), 0, count() - 1);\n const currentIndex = computed(() => getIndexByOffset(currentOffset.value));\n const momentum = (distance, duration) => {\n const speed = Math.abs(distance / duration);\n distance = currentOffset.value + speed / 3e-3 * (distance < 0 ? -1 : 1);\n const index = getIndexByOffset(distance);\n currentDuration.value = +props.swipeDuration;\n updateValueByIndex(index);\n };\n const stopMomentum = () => {\n moving = false;\n currentDuration.value = 0;\n if (transitionEndTrigger) {\n transitionEndTrigger();\n transitionEndTrigger = null;\n }\n };\n const onTouchStart = (event) => {\n if (isReadonly()) {\n return;\n }\n touch.start(event);\n if (moving) {\n const translateY = getElementTranslateY(wrapper.value);\n currentOffset.value = Math.min(0, translateY - baseOffset());\n }\n currentDuration.value = 0;\n startOffset = currentOffset.value;\n touchStartTime = Date.now();\n momentumOffset = startOffset;\n transitionEndTrigger = null;\n };\n const onTouchMove = (event) => {\n if (isReadonly()) {\n return;\n }\n touch.move(event);\n if (touch.isVertical()) {\n moving = true;\n preventDefault(event, true);\n }\n const newOffset = clamp(startOffset + touch.deltaY.value, -(count() * props.optionHeight), props.optionHeight);\n const newIndex = getIndexByOffset(newOffset);\n if (newIndex !== currentIndex.value) {\n emit(\"scrollInto\", props.options[newIndex]);\n }\n currentOffset.value = newOffset;\n const now = Date.now();\n if (now - touchStartTime > MOMENTUM_TIME) {\n touchStartTime = now;\n momentumOffset = newOffset;\n }\n };\n const onTouchEnd = () => {\n if (isReadonly()) {\n return;\n }\n const distance = currentOffset.value - momentumOffset;\n const duration = Date.now() - touchStartTime;\n const startMomentum = duration < MOMENTUM_TIME && Math.abs(distance) > MOMENTUM_DISTANCE;\n if (startMomentum) {\n momentum(distance, duration);\n return;\n }\n const index = getIndexByOffset(currentOffset.value);\n currentDuration.value = DEFAULT_DURATION;\n updateValueByIndex(index);\n setTimeout(() => {\n moving = false;\n }, 0);\n };\n const renderOptions = () => {\n const optionStyle = {\n height: `${props.optionHeight}px`\n };\n return props.options.map((option, index) => {\n const text = option[props.fields.text];\n const {\n disabled\n } = option;\n const value = option[props.fields.value];\n const data = {\n role: \"button\",\n style: optionStyle,\n tabindex: disabled ? -1 : 0,\n class: [bem(\"item\", {\n disabled,\n selected: value === props.value\n }), option.className],\n onClick: () => onClickOption(index)\n };\n const childData = {\n class: \"van-ellipsis\",\n [props.allowHtml ? \"innerHTML\" : \"textContent\"]: text\n };\n return _createVNode(\"li\", data, [slots.option ? slots.option(option, index) : _createVNode(\"div\", childData, null)]);\n });\n };\n useParent(PICKER_KEY);\n useExpose({\n stopMomentum\n });\n watchEffect(() => {\n const index = moving ? Math.floor(-currentOffset.value / props.optionHeight) : props.options.findIndex((option) => option[props.fields.value] === props.value);\n const enabledIndex = findIndexOfEnabledOption(props.options, index);\n const offset = -enabledIndex * props.optionHeight;\n if (moving && enabledIndex < index) stopMomentum();\n currentOffset.value = offset;\n });\n useEventListener(\"touchmove\", onTouchMove, {\n target: root\n });\n return () => _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem(),\n \"onTouchstartPassive\": onTouchStart,\n \"onTouchend\": onTouchEnd,\n \"onTouchcancel\": onTouchEnd\n }, [_createVNode(\"ul\", {\n \"ref\": wrapper,\n \"style\": {\n transform: `translate3d(0, ${currentOffset.value + baseOffset()}px, 0)`,\n transitionDuration: `${currentDuration.value}ms`,\n transitionProperty: currentDuration.value ? \"all\" : \"none\"\n },\n \"class\": bem(\"wrapper\"),\n \"onTransitionend\": stopMomentum\n }, [renderOptions()])]);\n }\n});\nexport {\n PICKER_KEY,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { bem, t } from \"./utils.mjs\";\nimport { createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nconst [name] = createNamespace(\"picker-toolbar\");\nconst pickerToolbarProps = {\n title: String,\n cancelButtonText: String,\n confirmButtonText: String\n};\nconst pickerToolbarSlots = [\"cancel\", \"confirm\", \"title\", \"toolbar\"];\nconst pickerToolbarPropKeys = Object.keys(pickerToolbarProps);\nvar stdin_default = defineComponent({\n name,\n props: pickerToolbarProps,\n emits: [\"confirm\", \"cancel\"],\n setup(props, {\n emit,\n slots\n }) {\n const renderTitle = () => {\n if (slots.title) {\n return slots.title();\n }\n if (props.title) {\n return _createVNode(\"div\", {\n \"class\": [bem(\"title\"), \"van-ellipsis\"]\n }, [props.title]);\n }\n };\n const onCancel = () => emit(\"cancel\");\n const onConfirm = () => emit(\"confirm\");\n const renderCancel = () => {\n var _a;\n const text = (_a = props.cancelButtonText) != null ? _a : t(\"cancel\");\n if (!slots.cancel && !text) {\n return;\n }\n return _createVNode(\"button\", {\n \"type\": \"button\",\n \"class\": [bem(\"cancel\"), HAPTICS_FEEDBACK],\n \"onClick\": onCancel\n }, [slots.cancel ? slots.cancel() : text]);\n };\n const renderConfirm = () => {\n var _a;\n const text = (_a = props.confirmButtonText) != null ? _a : t(\"confirm\");\n if (!slots.confirm && !text) {\n return;\n }\n return _createVNode(\"button\", {\n \"type\": \"button\",\n \"class\": [bem(\"confirm\"), HAPTICS_FEEDBACK],\n \"onClick\": onConfirm\n }, [slots.confirm ? slots.confirm() : text]);\n };\n return () => _createVNode(\"div\", {\n \"class\": bem(\"toolbar\")\n }, [slots.toolbar ? slots.toolbar() : [renderCancel(), renderTitle(), renderConfirm()]]);\n }\n});\nexport {\n stdin_default as default,\n pickerToolbarPropKeys,\n pickerToolbarProps,\n pickerToolbarSlots\n};\n","import { ref, watch } from \"vue\";\nconst useSyncPropRef = (getProp, setProp) => {\n const propRef = ref(getProp());\n watch(getProp, (value) => {\n if (value !== propRef.value) {\n propRef.value = value;\n }\n });\n watch(propRef, (value) => {\n if (value !== getProp()) {\n setProp(value);\n }\n });\n return propRef;\n};\nexport {\n useSyncPropRef\n};\n","/**\n* @vue/shared v3.5.26\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \"&quot;\";\n break;\n case 38:\n escaped = \"&amp;\";\n break;\n case 39:\n escaped = \"&#39;\";\n break;\n case 60:\n escaped = \"&lt;\";\n break;\n case 62:\n escaped = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","import { getCurrentInstance } from \"vue\";\nlet current = 0;\nfunction useId() {\n const vm = getCurrentInstance();\n const { name = \"unknown\" } = (vm == null ? void 0 : vm.type) || {};\n if (process.env.NODE_ENV === \"test\") {\n return name;\n }\n return `${name}-${++current}`;\n}\nexport {\n useId\n};\n","import { ref, onBeforeUpdate } from \"vue\";\nfunction useRefs() {\n const refs = ref([]);\n const cache = [];\n onBeforeUpdate(() => {\n refs.value = [];\n });\n const setRefs = (index) => {\n if (!cache[index]) {\n cache[index] = (el) => {\n refs.value[index] = el;\n };\n }\n return cache[index];\n };\n return [refs, setRefs];\n}\nexport {\n useRefs\n};\n","import { inBrowser } from \"../utils/index.mjs\";\nimport { onDeactivated, onBeforeUnmount } from \"vue\";\nimport { onMountedOrActivated } from \"@vant/use\";\nfunction useVisibilityChange(target, onChange) {\n if (!inBrowser || !window.IntersectionObserver) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n onChange(entries[0].intersectionRatio > 0);\n },\n { root: document.body }\n );\n const observe = () => {\n if (target.value) {\n observer.observe(target.value);\n }\n };\n const unobserve = () => {\n if (target.value) {\n observer.unobserve(target.value);\n }\n };\n onDeactivated(unobserve);\n onBeforeUnmount(unobserve);\n onMountedOrActivated(observe);\n}\nexport {\n useVisibilityChange\n};\n","import { ref, watch, computed, nextTick, reactive, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, isHidden, unitToPx, numericProp, windowWidth, windowHeight, getScrollTop, getZIndexStyle, makeStringProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { useRect, useEventListener, useScrollParent } from \"@vant/use\";\nimport { useVisibilityChange } from \"../composables/use-visibility-change.mjs\";\nconst [name, bem] = createNamespace(\"sticky\");\nconst stickyProps = {\n zIndex: numericProp,\n position: makeStringProp(\"top\"),\n container: Object,\n offsetTop: makeNumericProp(0),\n offsetBottom: makeNumericProp(0)\n};\nvar stdin_default = defineComponent({\n name,\n props: stickyProps,\n emits: [\"scroll\", \"change\"],\n setup(props, {\n emit,\n slots\n }) {\n const root = ref();\n const scrollParent = useScrollParent(root);\n const state = reactive({\n fixed: false,\n width: 0,\n // root width\n height: 0,\n // root height\n transform: 0\n });\n const isReset = ref(false);\n const offset = computed(() => unitToPx(props.position === \"top\" ? props.offsetTop : props.offsetBottom));\n const rootStyle = computed(() => {\n if (isReset.value) {\n return;\n }\n const {\n fixed,\n height,\n width\n } = state;\n if (fixed) {\n return {\n width: `${width}px`,\n height: `${height}px`\n };\n }\n });\n const stickyStyle = computed(() => {\n if (!state.fixed || isReset.value) {\n return;\n }\n const style = extend(getZIndexStyle(props.zIndex), {\n width: `${state.width}px`,\n height: `${state.height}px`,\n [props.position]: `${offset.value}px`\n });\n if (state.transform) {\n style.transform = `translate3d(0, ${state.transform}px, 0)`;\n }\n return style;\n });\n const emitScroll = (scrollTop) => emit(\"scroll\", {\n scrollTop,\n isFixed: state.fixed\n });\n const onScroll = () => {\n if (!root.value || isHidden(root)) {\n return;\n }\n const {\n container,\n position\n } = props;\n const rootRect = useRect(root);\n const scrollTop = getScrollTop(window);\n state.width = rootRect.width;\n state.height = rootRect.height;\n if (position === \"top\") {\n if (container) {\n const containerRect = useRect(container);\n const difference = containerRect.bottom - offset.value - state.height;\n state.fixed = offset.value > rootRect.top && containerRect.bottom > 0;\n state.transform = difference < 0 ? difference : 0;\n } else {\n state.fixed = offset.value > rootRect.top;\n }\n } else {\n const {\n clientHeight\n } = document.documentElement;\n if (container) {\n const containerRect = useRect(container);\n const difference = clientHeight - containerRect.top - offset.value - state.height;\n state.fixed = clientHeight - offset.value < rootRect.bottom && clientHeight > containerRect.top;\n state.transform = difference < 0 ? -difference : 0;\n } else {\n state.fixed = clientHeight - offset.value < rootRect.bottom;\n }\n }\n emitScroll(scrollTop);\n };\n watch(() => state.fixed, (value) => emit(\"change\", value));\n useEventListener(\"scroll\", onScroll, {\n target: scrollParent,\n passive: true\n });\n useVisibilityChange(root, onScroll);\n watch([windowWidth, windowHeight], () => {\n if (!root.value || isHidden(root) || !state.fixed) {\n return;\n }\n isReset.value = true;\n nextTick(() => {\n const rootRect = useRect(root);\n state.width = rootRect.width;\n state.height = rootRect.height;\n isReset.value = false;\n });\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"ref\": root,\n \"style\": rootStyle.value\n }, [_createVNode(\"div\", {\n \"class\": bem({\n fixed: state.fixed && !isReset.value\n }),\n \"style\": stickyStyle.value\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)])]);\n };\n }\n});\nexport {\n stdin_default as default,\n stickyProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Sticky from \"./Sticky.mjs\";\nconst Sticky = withInstall(_Sticky);\nvar stdin_default = Sticky;\nimport { stickyProps } from \"./Sticky.mjs\";\nexport {\n Sticky,\n stdin_default as default,\n stickyProps\n};\n","import { ref, watch, reactive, computed, onMounted, onActivated, onDeactivated, onBeforeUnmount, defineComponent, nextTick, createVNode as _createVNode } from \"vue\";\nimport { clamp, isHidden, truthProp, numericProp, windowWidth, windowHeight, preventDefault, createNamespace, makeNumericProp } from \"../utils/index.mjs\";\nimport { doubleRaf, useChildren, useEventListener, usePageVisibility } from \"@vant/use\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { onPopupReopen } from \"../composables/on-popup-reopen.mjs\";\nconst [name, bem] = createNamespace(\"swipe\");\nconst swipeProps = {\n loop: truthProp,\n width: numericProp,\n height: numericProp,\n vertical: Boolean,\n autoplay: makeNumericProp(0),\n duration: makeNumericProp(500),\n touchable: truthProp,\n lazyRender: Boolean,\n initialSwipe: makeNumericProp(0),\n indicatorColor: String,\n showIndicators: truthProp,\n stopPropagation: truthProp\n};\nconst SWIPE_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: swipeProps,\n emits: [\"change\", \"dragStart\", \"dragEnd\"],\n setup(props, {\n emit,\n slots\n }) {\n const root = ref();\n const track = ref();\n const state = reactive({\n rect: null,\n width: 0,\n height: 0,\n offset: 0,\n active: 0,\n swiping: false\n });\n let dragging = false;\n const touch = useTouch();\n const {\n children,\n linkChildren\n } = useChildren(SWIPE_KEY);\n const count = computed(() => children.length);\n const size = computed(() => state[props.vertical ? \"height\" : \"width\"]);\n const delta = computed(() => props.vertical ? touch.deltaY.value : touch.deltaX.value);\n const minOffset = computed(() => {\n if (state.rect) {\n const base = props.vertical ? state.rect.height : state.rect.width;\n return base - size.value * count.value;\n }\n return 0;\n });\n const maxCount = computed(() => size.value ? Math.ceil(Math.abs(minOffset.value) / size.value) : count.value);\n const trackSize = computed(() => count.value * size.value);\n const activeIndicator = computed(() => (state.active + count.value) % count.value);\n const isCorrectDirection = computed(() => {\n const expect = props.vertical ? \"vertical\" : \"horizontal\";\n return touch.direction.value === expect;\n });\n const trackStyle = computed(() => {\n const style = {\n transitionDuration: `${state.swiping ? 0 : props.duration}ms`,\n transform: `translate${props.vertical ? \"Y\" : \"X\"}(${+state.offset.toFixed(2)}px)`\n };\n if (size.value) {\n const mainAxis = props.vertical ? \"height\" : \"width\";\n const crossAxis = props.vertical ? \"width\" : \"height\";\n style[mainAxis] = `${trackSize.value}px`;\n style[crossAxis] = props[crossAxis] ? `${props[crossAxis]}px` : \"\";\n }\n return style;\n });\n const getTargetActive = (pace) => {\n const {\n active\n } = state;\n if (pace) {\n if (props.loop) {\n return clamp(active + pace, -1, count.value);\n }\n return clamp(active + pace, 0, maxCount.value);\n }\n return active;\n };\n const getTargetOffset = (targetActive, offset = 0) => {\n let currentPosition = targetActive * size.value;\n if (!props.loop) {\n currentPosition = Math.min(currentPosition, -minOffset.value);\n }\n let targetOffset = offset - currentPosition;\n if (!props.loop) {\n targetOffset = clamp(targetOffset, minOffset.value, 0);\n }\n return targetOffset;\n };\n const move = ({\n pace = 0,\n offset = 0,\n emitChange\n }) => {\n if (count.value <= 1) {\n return;\n }\n const {\n active\n } = state;\n const targetActive = getTargetActive(pace);\n const targetOffset = getTargetOffset(targetActive, offset);\n if (props.loop) {\n if (children[0] && targetOffset !== minOffset.value) {\n const outRightBound = targetOffset < minOffset.value;\n children[0].setOffset(outRightBound ? trackSize.value : 0);\n }\n if (children[count.value - 1] && targetOffset !== 0) {\n const outLeftBound = targetOffset > 0;\n children[count.value - 1].setOffset(outLeftBound ? -trackSize.value : 0);\n }\n }\n state.active = targetActive;\n state.offset = targetOffset;\n if (emitChange && targetActive !== active) {\n emit(\"change\", activeIndicator.value);\n }\n };\n const correctPosition = () => {\n state.swiping = true;\n if (state.active <= -1) {\n move({\n pace: count.value\n });\n } else if (state.active >= count.value) {\n move({\n pace: -count.value\n });\n }\n };\n const prev = () => {\n correctPosition();\n touch.reset();\n doubleRaf(() => {\n state.swiping = false;\n move({\n pace: -1,\n emitChange: true\n });\n });\n };\n const next = () => {\n correctPosition();\n touch.reset();\n doubleRaf(() => {\n state.swiping = false;\n move({\n pace: 1,\n emitChange: true\n });\n });\n };\n let autoplayTimer;\n const stopAutoplay = () => clearTimeout(autoplayTimer);\n const autoplay = () => {\n stopAutoplay();\n if (+props.autoplay > 0 && count.value > 1) {\n autoplayTimer = setTimeout(() => {\n next();\n autoplay();\n }, +props.autoplay);\n }\n };\n const initialize = (active = +props.initialSwipe) => {\n if (!root.value) {\n return;\n }\n const cb = () => {\n var _a, _b;\n if (!isHidden(root)) {\n const rect = {\n width: root.value.offsetWidth,\n height: root.value.offsetHeight\n };\n state.rect = rect;\n state.width = +((_a = props.width) != null ? _a : rect.width);\n state.height = +((_b = props.height) != null ? _b : rect.height);\n }\n if (count.value) {\n active = Math.min(count.value - 1, active);\n if (active === -1) {\n active = count.value - 1;\n }\n }\n state.active = active;\n state.swiping = true;\n state.offset = getTargetOffset(active);\n children.forEach((swipe) => {\n swipe.setOffset(0);\n });\n autoplay();\n };\n if (isHidden(root)) {\n nextTick().then(cb);\n } else {\n cb();\n }\n };\n const resize = () => initialize(state.active);\n let touchStartTime;\n const onTouchStart = (event) => {\n if (!props.touchable || // avoid resetting position on multi-finger touch\n event.touches.length > 1) return;\n touch.start(event);\n dragging = false;\n touchStartTime = Date.now();\n stopAutoplay();\n correctPosition();\n };\n const onTouchMove = (event) => {\n if (props.touchable && state.swiping) {\n touch.move(event);\n if (isCorrectDirection.value) {\n const isEdgeTouch = !props.loop && (state.active === 0 && delta.value > 0 || state.active === count.value - 1 && delta.value < 0);\n if (!isEdgeTouch) {\n preventDefault(event, props.stopPropagation);\n move({\n offset: delta.value\n });\n if (!dragging) {\n emit(\"dragStart\", {\n index: activeIndicator.value\n });\n dragging = true;\n }\n }\n }\n }\n };\n const onTouchEnd = () => {\n if (!props.touchable || !state.swiping) {\n return;\n }\n const duration = Date.now() - touchStartTime;\n const speed = delta.value / duration;\n const shouldSwipe = Math.abs(speed) > 0.25 || Math.abs(delta.value) > size.value / 2;\n if (shouldSwipe && isCorrectDirection.value) {\n const offset = props.vertical ? touch.offsetY.value : touch.offsetX.value;\n let pace = 0;\n if (props.loop) {\n pace = offset > 0 ? delta.value > 0 ? -1 : 1 : 0;\n } else {\n pace = -Math[delta.value > 0 ? \"ceil\" : \"floor\"](delta.value / size.value);\n }\n move({\n pace,\n emitChange: true\n });\n } else if (delta.value) {\n move({\n pace: 0\n });\n }\n dragging = false;\n state.swiping = false;\n emit(\"dragEnd\", {\n index: activeIndicator.value\n });\n autoplay();\n };\n const swipeTo = (index, options = {}) => {\n correctPosition();\n touch.reset();\n doubleRaf(() => {\n let targetIndex;\n if (props.loop && index === count.value) {\n targetIndex = state.active === 0 ? 0 : index;\n } else {\n targetIndex = index % count.value;\n }\n if (options.immediate) {\n doubleRaf(() => {\n state.swiping = false;\n });\n } else {\n state.swiping = false;\n }\n move({\n pace: targetIndex - state.active,\n emitChange: true\n });\n });\n };\n const renderDot = (_, index) => {\n const active = index === activeIndicator.value;\n const style = active ? {\n backgroundColor: props.indicatorColor\n } : void 0;\n return _createVNode(\"i\", {\n \"style\": style,\n \"class\": bem(\"indicator\", {\n active\n })\n }, null);\n };\n const renderIndicator = () => {\n if (slots.indicator) {\n return slots.indicator({\n active: activeIndicator.value,\n total: count.value\n });\n }\n if (props.showIndicators && count.value > 1) {\n return _createVNode(\"div\", {\n \"class\": bem(\"indicators\", {\n vertical: props.vertical\n })\n }, [Array(count.value).fill(\"\").map(renderDot)]);\n }\n };\n useExpose({\n prev,\n next,\n state,\n resize,\n swipeTo\n });\n linkChildren({\n size,\n props,\n count,\n activeIndicator\n });\n watch(() => props.initialSwipe, (value) => initialize(+value));\n watch(count, () => initialize(state.active));\n watch(() => props.autoplay, autoplay);\n watch([windowWidth, windowHeight, () => props.width, () => props.height], resize);\n watch(usePageVisibility(), (visible) => {\n if (visible === \"visible\") {\n autoplay();\n } else {\n stopAutoplay();\n }\n });\n onMounted(initialize);\n onActivated(() => initialize(state.active));\n onPopupReopen(() => initialize(state.active));\n onDeactivated(stopAutoplay);\n onBeforeUnmount(stopAutoplay);\n useEventListener(\"touchmove\", onTouchMove, {\n target: track\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem()\n }, [_createVNode(\"div\", {\n \"ref\": track,\n \"style\": trackStyle.value,\n \"class\": bem(\"track\", {\n vertical: props.vertical\n }),\n \"onTouchstartPassive\": onTouchStart,\n \"onTouchend\": onTouchEnd,\n \"onTouchcancel\": onTouchEnd\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), renderIndicator()]);\n };\n }\n});\nexport {\n SWIPE_KEY,\n stdin_default as default,\n swipeProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Swipe from \"./Swipe.mjs\";\nconst Swipe = withInstall(_Swipe);\nvar stdin_default = Swipe;\nimport { swipeProps } from \"./Swipe.mjs\";\nexport {\n Swipe,\n stdin_default as default,\n swipeProps\n};\n","import { ref, watch, onMounted, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { numericProp, makeRequiredProp, createNamespace } from \"../utils/index.mjs\";\nimport { Swipe } from \"../swipe/index.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"tabs\");\nvar stdin_default = defineComponent({\n name,\n props: {\n count: makeRequiredProp(Number),\n inited: Boolean,\n animated: Boolean,\n duration: makeRequiredProp(numericProp),\n swipeable: Boolean,\n lazyRender: Boolean,\n currentIndex: makeRequiredProp(Number)\n },\n emits: [\"change\"],\n setup(props, {\n emit,\n slots\n }) {\n const swipeRef = ref();\n const onChange = (index) => emit(\"change\", index);\n const renderChildren = () => {\n var _a;\n const Content = (_a = slots.default) == null ? void 0 : _a.call(slots);\n if (props.animated || props.swipeable) {\n return _createVNode(Swipe, {\n \"ref\": swipeRef,\n \"loop\": false,\n \"class\": bem(\"track\"),\n \"duration\": +props.duration * 1e3,\n \"touchable\": props.swipeable,\n \"lazyRender\": props.lazyRender,\n \"showIndicators\": false,\n \"onChange\": onChange\n }, {\n default: () => [Content]\n });\n }\n return Content;\n };\n const swipeToCurrentTab = (index) => {\n const swipe = swipeRef.value;\n if (swipe && swipe.state.active !== index) {\n swipe.swipeTo(index, {\n immediate: !props.inited\n });\n }\n };\n watch(() => props.currentIndex, swipeToCurrentTab);\n onMounted(() => {\n swipeToCurrentTab(props.currentIndex);\n });\n useExpose({\n swipeRef\n });\n return () => _createVNode(\"div\", {\n \"class\": bem(\"content\", {\n animated: props.animated || props.swipeable\n })\n }, [renderChildren()]);\n }\n});\nexport {\n stdin_default as default\n};\n","import { ref, watch, computed, reactive, nextTick, onActivated, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isDef, addUnit, isHidden, unitToPx, truthProp, numericProp, windowWidth, getElementTop, makeStringProp, callInterceptor, createNamespace, makeNumericProp, setRootScrollTop, BORDER_TOP_BOTTOM } from \"../utils/index.mjs\";\nimport { scrollLeftTo, scrollTopTo } from \"./utils.mjs\";\nimport { useRect, useChildren, useScrollParent, useEventListener, onMountedOrActivated } from \"@vant/use\";\nimport { useId } from \"../composables/use-id.mjs\";\nimport { route } from \"../composables/use-route.mjs\";\nimport { useRefs } from \"../composables/use-refs.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { onPopupReopen } from \"../composables/on-popup-reopen.mjs\";\nimport { useVisibilityChange } from \"../composables/use-visibility-change.mjs\";\nimport { Sticky } from \"../sticky/index.mjs\";\nimport TabsContent from \"./TabsContent.mjs\";\nconst [name, bem] = createNamespace(\"tabs\");\nconst tabsProps = {\n type: makeStringProp(\"line\"),\n color: String,\n border: Boolean,\n sticky: Boolean,\n shrink: Boolean,\n active: makeNumericProp(0),\n duration: makeNumericProp(0.3),\n animated: Boolean,\n ellipsis: truthProp,\n swipeable: Boolean,\n scrollspy: Boolean,\n offsetTop: makeNumericProp(0),\n background: String,\n lazyRender: truthProp,\n showHeader: truthProp,\n lineWidth: numericProp,\n lineHeight: numericProp,\n beforeChange: Function,\n swipeThreshold: makeNumericProp(5),\n titleActiveColor: String,\n titleInactiveColor: String\n};\nconst TABS_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: tabsProps,\n emits: [\"change\", \"scroll\", \"rendered\", \"clickTab\", \"update:active\"],\n setup(props, {\n emit,\n slots\n }) {\n let tabHeight;\n let lockScroll;\n let stickyFixed;\n let cancelScrollLeftToRaf;\n let cancelScrollTopToRaf;\n const root = ref();\n const navRef = ref();\n const wrapRef = ref();\n const contentRef = ref();\n const id = useId();\n const scroller = useScrollParent(root);\n const [titleRefs, setTitleRefs] = useRefs();\n const {\n children,\n linkChildren\n } = useChildren(TABS_KEY);\n const state = reactive({\n inited: false,\n position: \"\",\n lineStyle: {},\n currentIndex: -1\n });\n const scrollable = computed(() => children.length > +props.swipeThreshold || !props.ellipsis || props.shrink);\n const navStyle = computed(() => ({\n borderColor: props.color,\n background: props.background\n }));\n const getTabName = (tab, index) => {\n var _a;\n return (_a = tab.name) != null ? _a : index;\n };\n const currentName = computed(() => {\n const activeTab = children[state.currentIndex];\n if (activeTab) {\n return getTabName(activeTab, state.currentIndex);\n }\n });\n const offsetTopPx = computed(() => unitToPx(props.offsetTop));\n const scrollOffset = computed(() => {\n if (props.sticky) {\n return offsetTopPx.value + tabHeight;\n }\n return 0;\n });\n const scrollIntoView = (immediate) => {\n const nav = navRef.value;\n const titles = titleRefs.value;\n if (!scrollable.value || !nav || !titles || !titles[state.currentIndex]) {\n return;\n }\n const title = titles[state.currentIndex].$el;\n const to = title.offsetLeft - (nav.offsetWidth - title.offsetWidth) / 2;\n if (cancelScrollLeftToRaf) cancelScrollLeftToRaf();\n cancelScrollLeftToRaf = scrollLeftTo(nav, to, immediate ? 0 : +props.duration);\n };\n const setLine = () => {\n const shouldAnimate = state.inited;\n nextTick(() => {\n const titles = titleRefs.value;\n if (!titles || !titles[state.currentIndex] || props.type !== \"line\" || isHidden(root.value)) {\n return;\n }\n const title = titles[state.currentIndex].$el;\n const {\n lineWidth,\n lineHeight\n } = props;\n const left = title.offsetLeft + title.offsetWidth / 2;\n const lineStyle = {\n width: addUnit(lineWidth),\n backgroundColor: props.color,\n transform: `translateX(${left}px) translateX(-50%)`\n };\n if (shouldAnimate) {\n lineStyle.transitionDuration = `${props.duration}s`;\n }\n if (isDef(lineHeight)) {\n const height = addUnit(lineHeight);\n lineStyle.height = height;\n lineStyle.borderRadius = height;\n }\n state.lineStyle = lineStyle;\n });\n };\n const findAvailableTab = (index) => {\n const diff = index < state.currentIndex ? -1 : 1;\n while (index >= 0 && index < children.length) {\n if (!children[index].disabled) {\n return index;\n }\n index += diff;\n }\n };\n const setCurrentIndex = (currentIndex, skipScrollIntoView) => {\n const newIndex = findAvailableTab(currentIndex);\n if (!isDef(newIndex)) {\n return;\n }\n const newTab = children[newIndex];\n const newName = getTabName(newTab, newIndex);\n const shouldEmitChange = state.currentIndex !== null;\n if (state.currentIndex !== newIndex) {\n state.currentIndex = newIndex;\n if (!skipScrollIntoView) {\n scrollIntoView();\n }\n setLine();\n }\n if (newName !== props.active) {\n emit(\"update:active\", newName);\n if (shouldEmitChange) {\n emit(\"change\", newName, newTab.title);\n }\n }\n if (stickyFixed && !props.scrollspy) {\n setRootScrollTop(Math.ceil(getElementTop(root.value) - offsetTopPx.value));\n }\n };\n const setCurrentIndexByName = (name2, skipScrollIntoView) => {\n const index = children.findIndex((tab, index2) => getTabName(tab, index2) === name2);\n setCurrentIndex(index === -1 ? 0 : index, skipScrollIntoView);\n };\n const scrollToCurrentContent = (immediate = false) => {\n if (props.scrollspy) {\n const target = children[state.currentIndex].$el;\n if (target && scroller.value) {\n const to = getElementTop(target, scroller.value) - scrollOffset.value;\n lockScroll = true;\n if (cancelScrollTopToRaf) cancelScrollTopToRaf();\n cancelScrollTopToRaf = scrollTopTo(scroller.value, to, immediate ? 0 : +props.duration, () => {\n lockScroll = false;\n });\n }\n }\n };\n const onClickTab = (item, index, event) => {\n const {\n title,\n disabled\n } = children[index];\n const name2 = getTabName(children[index], index);\n if (!disabled) {\n callInterceptor(props.beforeChange, {\n args: [name2],\n done: () => {\n setCurrentIndex(index);\n scrollToCurrentContent();\n }\n });\n route(item);\n }\n emit(\"clickTab\", {\n name: name2,\n title,\n event,\n disabled\n });\n };\n const onStickyScroll = (params) => {\n stickyFixed = params.isFixed;\n emit(\"scroll\", params);\n };\n const scrollTo = (name2) => {\n nextTick(() => {\n setCurrentIndexByName(name2);\n scrollToCurrentContent(true);\n });\n };\n const getCurrentIndexOnScroll = () => {\n for (let index = 0; index < children.length; index++) {\n const {\n top\n } = useRect(children[index].$el);\n if (top > scrollOffset.value) {\n return index === 0 ? 0 : index - 1;\n }\n }\n return children.length - 1;\n };\n const onScroll = () => {\n if (props.scrollspy && !lockScroll) {\n const index = getCurrentIndexOnScroll();\n setCurrentIndex(index);\n }\n };\n const renderLine = () => {\n if (props.type === \"line\" && children.length) {\n return _createVNode(\"div\", {\n \"class\": bem(\"line\"),\n \"style\": state.lineStyle\n }, null);\n }\n };\n const renderHeader = () => {\n var _a, _b, _c;\n const {\n type,\n border,\n sticky\n } = props;\n const Header = [_createVNode(\"div\", {\n \"ref\": sticky ? void 0 : wrapRef,\n \"class\": [bem(\"wrap\"), {\n [BORDER_TOP_BOTTOM]: type === \"line\" && border\n }]\n }, [_createVNode(\"div\", {\n \"ref\": navRef,\n \"role\": \"tablist\",\n \"class\": bem(\"nav\", [type, {\n shrink: props.shrink,\n complete: scrollable.value\n }]),\n \"style\": navStyle.value,\n \"aria-orientation\": \"horizontal\"\n }, [(_a = slots[\"nav-left\"]) == null ? void 0 : _a.call(slots), children.map((item) => item.renderTitle(onClickTab)), renderLine(), (_b = slots[\"nav-right\"]) == null ? void 0 : _b.call(slots)])]), (_c = slots[\"nav-bottom\"]) == null ? void 0 : _c.call(slots)];\n if (sticky) {\n return _createVNode(\"div\", {\n \"ref\": wrapRef\n }, [Header]);\n }\n return Header;\n };\n const resize = () => {\n setLine();\n nextTick(() => {\n var _a, _b;\n scrollIntoView(true);\n (_b = (_a = contentRef.value) == null ? void 0 : _a.swipeRef.value) == null ? void 0 : _b.resize();\n });\n };\n watch(() => [props.color, props.duration, props.lineWidth, props.lineHeight], setLine);\n watch(windowWidth, resize);\n watch(() => props.active, (value) => {\n if (value !== currentName.value) {\n setCurrentIndexByName(value);\n }\n });\n watch(() => children.length, () => {\n if (state.inited) {\n setCurrentIndexByName(props.active);\n setLine();\n nextTick(() => {\n scrollIntoView(true);\n });\n }\n });\n const init = () => {\n setCurrentIndexByName(props.active, true);\n nextTick(() => {\n state.inited = true;\n if (wrapRef.value) {\n tabHeight = useRect(wrapRef.value).height;\n }\n scrollIntoView(true);\n });\n };\n const onRendered = (name2, title) => emit(\"rendered\", name2, title);\n useExpose({\n resize,\n scrollTo\n });\n onActivated(setLine);\n onPopupReopen(setLine);\n onMountedOrActivated(init);\n useVisibilityChange(root, setLine);\n useEventListener(\"scroll\", onScroll, {\n target: scroller,\n passive: true\n });\n linkChildren({\n id,\n props,\n setLine,\n scrollable,\n onRendered,\n currentName,\n setTitleRefs,\n scrollIntoView\n });\n return () => _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem([props.type])\n }, [props.showHeader ? props.sticky ? _createVNode(Sticky, {\n \"container\": root.value,\n \"offsetTop\": offsetTopPx.value,\n \"onScroll\": onStickyScroll\n }, {\n default: () => [renderHeader()]\n }) : renderHeader() : null, _createVNode(TabsContent, {\n \"ref\": contentRef,\n \"count\": children.length,\n \"inited\": state.inited,\n \"animated\": props.animated,\n \"duration\": props.duration,\n \"swipeable\": props.swipeable,\n \"lazyRender\": props.lazyRender,\n \"currentIndex\": state.currentIndex,\n \"onChange\": setCurrentIndex\n }, {\n default: () => {\n var _a;\n return [(_a = slots.default) == null ? void 0 : _a.call(slots)];\n }\n })]);\n }\n});\nexport {\n TABS_KEY,\n stdin_default as default,\n tabsProps\n};\n","import { raf, cancelRaf } from \"@vant/use\";\nimport { getScrollTop, setScrollTop } from \"../utils/index.mjs\";\nfunction scrollLeftTo(scroller, to, duration) {\n let rafId;\n let count = 0;\n const from = scroller.scrollLeft;\n const frames = duration === 0 ? 1 : Math.round(duration * 1e3 / 16);\n let scrollLeft = from;\n function cancel() {\n cancelRaf(rafId);\n }\n function animate() {\n scrollLeft += (to - from) / frames;\n scroller.scrollLeft = scrollLeft;\n if (++count < frames) {\n rafId = raf(animate);\n }\n }\n animate();\n return cancel;\n}\nfunction scrollTopTo(scroller, to, duration, callback) {\n let rafId;\n let current = getScrollTop(scroller);\n const isDown = current < to;\n const frames = duration === 0 ? 1 : Math.round(duration * 1e3 / 16);\n const step = (to - current) / frames;\n function cancel() {\n cancelRaf(rafId);\n }\n function animate() {\n current += step;\n if (isDown && current > to || !isDown && current < to) {\n current = to;\n }\n setScrollTop(scroller, current);\n if (isDown && current < to || !isDown && current > to) {\n rafId = raf(animate);\n } else if (callback) {\n rafId = raf(callback);\n }\n }\n animate();\n return cancel;\n}\nexport {\n scrollLeftTo,\n scrollTopTo\n};\n","import { inject, provide, computed } from \"vue\";\nconst TAB_STATUS_KEY = /* @__PURE__ */ Symbol();\nconst ALL_TAB_STATUS_KEY = /* @__PURE__ */ Symbol();\nconst useTabStatus = () => inject(TAB_STATUS_KEY, null);\nconst useAllTabStatus = () => inject(ALL_TAB_STATUS_KEY, null);\nconst useProvideTabStatus = (status) => {\n const allTabStatus = useAllTabStatus();\n provide(TAB_STATUS_KEY, status);\n provide(\n ALL_TAB_STATUS_KEY,\n computed(() => {\n return (allTabStatus == null || allTabStatus.value) && status.value;\n })\n );\n};\nexport {\n ALL_TAB_STATUS_KEY,\n TAB_STATUS_KEY,\n useAllTabStatus,\n useProvideTabStatus,\n useTabStatus\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isDef, truthProp, numericProp, createNamespace } from \"../utils/index.mjs\";\nimport { Badge } from \"../badge/index.mjs\";\nconst [name, bem] = createNamespace(\"tab\");\nconst TabTitle = defineComponent({\n name,\n props: {\n id: String,\n dot: Boolean,\n type: String,\n color: String,\n title: String,\n badge: numericProp,\n shrink: Boolean,\n isActive: Boolean,\n disabled: Boolean,\n controls: String,\n scrollable: Boolean,\n activeColor: String,\n inactiveColor: String,\n showZeroBadge: truthProp\n },\n setup(props, {\n slots\n }) {\n const style = computed(() => {\n const style2 = {};\n const {\n type,\n color,\n disabled,\n isActive,\n activeColor,\n inactiveColor\n } = props;\n const isCard = type === \"card\";\n if (color && isCard) {\n style2.borderColor = color;\n if (!disabled) {\n if (isActive) {\n style2.backgroundColor = color;\n } else {\n style2.color = color;\n }\n }\n }\n const titleColor = isActive ? activeColor : inactiveColor;\n if (titleColor) {\n style2.color = titleColor;\n }\n return style2;\n });\n const renderText = () => {\n const Text = _createVNode(\"span\", {\n \"class\": bem(\"text\", {\n ellipsis: !props.scrollable\n })\n }, [slots.title ? slots.title() : props.title]);\n if (props.dot || isDef(props.badge) && props.badge !== \"\") {\n return _createVNode(Badge, {\n \"dot\": props.dot,\n \"content\": props.badge,\n \"showZero\": props.showZeroBadge\n }, {\n default: () => [Text]\n });\n }\n return Text;\n };\n return () => _createVNode(\"div\", {\n \"id\": props.id,\n \"role\": \"tab\",\n \"class\": [bem([props.type, {\n grow: props.scrollable && !props.shrink,\n shrink: props.shrink,\n active: props.isActive,\n disabled: props.disabled\n }])],\n \"style\": style.value,\n \"tabindex\": props.disabled ? void 0 : props.isActive ? 0 : -1,\n \"aria-selected\": props.isActive,\n \"aria-disabled\": props.disabled || void 0,\n \"aria-controls\": props.controls,\n \"data-allow-mismatch\": \"attribute\"\n }, [renderText()]);\n }\n});\nexport {\n TabTitle\n};\n","import { computed, nextTick, reactive, onMounted, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { createNamespace } from \"../utils/index.mjs\";\nimport { SWIPE_KEY } from \"../swipe/Swipe.mjs\";\nimport { useParent } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"swipe-item\");\nvar stdin_default = defineComponent({\n name,\n setup(props, {\n slots\n }) {\n let rendered;\n const state = reactive({\n offset: 0,\n inited: false,\n mounted: false\n });\n const {\n parent,\n index\n } = useParent(SWIPE_KEY);\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <SwipeItem> must be a child component of <Swipe>.\");\n }\n return;\n }\n const style = computed(() => {\n const style2 = {};\n const {\n vertical\n } = parent.props;\n if (parent.size.value) {\n style2[vertical ? \"height\" : \"width\"] = `${parent.size.value}px`;\n }\n if (state.offset) {\n style2.transform = `translate${vertical ? \"Y\" : \"X\"}(${state.offset}px)`;\n }\n return style2;\n });\n const shouldRender = computed(() => {\n const {\n loop,\n lazyRender\n } = parent.props;\n if (!lazyRender || rendered) {\n return true;\n }\n if (!state.mounted) {\n return false;\n }\n const active = parent.activeIndicator.value;\n const maxActive = parent.count.value - 1;\n const prevActive = active === 0 && loop ? maxActive : active - 1;\n const nextActive = active === maxActive && loop ? 0 : active + 1;\n rendered = index.value === active || index.value === prevActive || index.value === nextActive;\n return rendered;\n });\n const setOffset = (offset) => {\n state.offset = offset;\n };\n onMounted(() => {\n nextTick(() => {\n state.mounted = true;\n });\n });\n useExpose({\n setOffset\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": bem(),\n \"style\": style.value\n }, [shouldRender.value ? (_a = slots.default) == null ? void 0 : _a.call(slots) : null]);\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _SwipeItem from \"./SwipeItem.mjs\";\nconst SwipeItem = withInstall(_SwipeItem);\nvar stdin_default = SwipeItem;\nexport {\n SwipeItem,\n stdin_default as default\n};\n","import { ref, watch, computed, nextTick, watchEffect, defineComponent, getCurrentInstance, mergeProps as _mergeProps, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nimport { normalizeClass, normalizeStyle, stringifyStyle } from \"@vue/shared\";\nimport { pick, extend, truthProp, unknownProp, numericProp, createNamespace } from \"../utils/index.mjs\";\nimport { TABS_KEY } from \"../tabs/Tabs.mjs\";\nimport { doubleRaf, useParent } from \"@vant/use\";\nimport { useId } from \"../composables/use-id.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { routeProps } from \"../composables/use-route.mjs\";\nimport { useProvideTabStatus } from \"../composables/use-tab-status.mjs\";\nimport { TabTitle } from \"./TabTitle.mjs\";\nimport { SwipeItem } from \"../swipe-item/index.mjs\";\nconst [name, bem] = createNamespace(\"tab\");\nconst tabProps = extend({}, routeProps, {\n dot: Boolean,\n name: numericProp,\n badge: numericProp,\n title: String,\n disabled: Boolean,\n titleClass: unknownProp,\n titleStyle: [String, Object],\n showZeroBadge: truthProp\n});\nvar stdin_default = defineComponent({\n name,\n props: tabProps,\n setup(props, {\n slots\n }) {\n const id = useId();\n const inited = ref(false);\n const instance = getCurrentInstance();\n const {\n parent,\n index\n } = useParent(TABS_KEY);\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <Tab> must be a child component of <Tabs>.\");\n }\n return;\n }\n const getName = () => {\n var _a;\n return (_a = props.name) != null ? _a : index.value;\n };\n const init = () => {\n inited.value = true;\n if (parent.props.lazyRender) {\n nextTick(() => {\n parent.onRendered(getName(), props.title);\n });\n }\n };\n const active = computed(() => {\n const isActive = getName() === parent.currentName.value;\n if (isActive && !inited.value) {\n init();\n }\n return isActive;\n });\n const parsedClass = ref(\"\");\n const parsedStyle = ref(\"\");\n watchEffect(() => {\n const {\n titleClass,\n titleStyle\n } = props;\n parsedClass.value = titleClass ? normalizeClass(titleClass) : \"\";\n parsedStyle.value = titleStyle && typeof titleStyle !== \"string\" ? stringifyStyle(normalizeStyle(titleStyle)) : titleStyle;\n });\n const renderTitle = (onClickTab) => _createVNode(TabTitle, _mergeProps({\n \"key\": id,\n \"id\": `${parent.id}-${index.value}`,\n \"ref\": parent.setTitleRefs(index.value),\n \"style\": parsedStyle.value,\n \"class\": parsedClass.value,\n \"isActive\": active.value,\n \"controls\": id,\n \"scrollable\": parent.scrollable.value,\n \"activeColor\": parent.props.titleActiveColor,\n \"inactiveColor\": parent.props.titleInactiveColor,\n \"onClick\": (event) => onClickTab(instance.proxy, index.value, event)\n }, pick(parent.props, [\"type\", \"color\", \"shrink\"]), pick(props, [\"dot\", \"badge\", \"title\", \"disabled\", \"showZeroBadge\"])), {\n title: slots.title\n });\n const hasInactiveClass = ref(!active.value);\n watch(active, (val) => {\n if (val) {\n hasInactiveClass.value = false;\n } else {\n doubleRaf(() => {\n hasInactiveClass.value = true;\n });\n }\n });\n watch(() => props.title, () => {\n parent.setLine();\n parent.scrollIntoView();\n });\n useProvideTabStatus(active);\n useExpose({\n id,\n renderTitle\n });\n return () => {\n var _a;\n const label = `${parent.id}-${index.value}`;\n const {\n animated,\n swipeable,\n scrollspy,\n lazyRender\n } = parent.props;\n if (!slots.default && !animated) {\n return;\n }\n const show = scrollspy || active.value;\n if (animated || swipeable) {\n return _createVNode(SwipeItem, {\n \"id\": id,\n \"role\": \"tabpanel\",\n \"class\": bem(\"panel-wrapper\", {\n inactive: hasInactiveClass.value\n }),\n \"tabindex\": active.value ? 0 : -1,\n \"aria-hidden\": !active.value,\n \"aria-labelledby\": label,\n \"data-allow-mismatch\": \"attribute\"\n }, {\n default: () => {\n var _a2;\n return [_createVNode(\"div\", {\n \"class\": bem(\"panel\")\n }, [(_a2 = slots.default) == null ? void 0 : _a2.call(slots)])];\n }\n });\n }\n const shouldRender = inited.value || scrollspy || !lazyRender;\n const Content = shouldRender ? (_a = slots.default) == null ? void 0 : _a.call(slots) : null;\n return _withDirectives(_createVNode(\"div\", {\n \"id\": id,\n \"role\": \"tabpanel\",\n \"class\": bem(\"panel\"),\n \"tabindex\": show ? 0 : -1,\n \"aria-labelledby\": label,\n \"data-allow-mismatch\": \"attribute\"\n }, [Content]), [[_vShow, show]]);\n };\n }\n});\nexport {\n stdin_default as default,\n tabProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Tab from \"./Tab.mjs\";\nconst Tab = withInstall(_Tab);\nvar stdin_default = Tab;\nimport { tabProps } from \"./Tab.mjs\";\nimport { useTabStatus, useAllTabStatus } from \"../composables/use-tab-status.mjs\";\nexport {\n Tab,\n stdin_default as default,\n tabProps,\n useAllTabStatus,\n useTabStatus\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Tabs from \"./Tabs.mjs\";\nconst Tabs = withInstall(_Tabs);\nvar stdin_default = Tabs;\nimport { tabsProps } from \"./Tabs.mjs\";\nexport {\n Tabs,\n stdin_default as default,\n tabsProps\n};\n","import { defineComponent, Comment, Fragment, createVNode as _createVNode } from \"vue\";\nimport { flat, pick, extend, makeArrayProp, makeNumericProp, createNamespace, truthProp } from \"../utils/index.mjs\";\nimport { useChildren } from \"@vant/use\";\nimport { useSyncPropRef } from \"../composables/use-sync-prop-ref.mjs\";\nimport { Tab } from \"../tab/index.mjs\";\nimport { Tabs } from \"../tabs/index.mjs\";\nimport Toolbar, { pickerToolbarProps, pickerToolbarSlots } from \"../picker/PickerToolbar.mjs\";\nconst [name, bem] = createNamespace(\"picker-group\");\nconst PICKER_GROUP_KEY = Symbol(name);\nconst pickerGroupProps = extend({\n tabs: makeArrayProp(),\n activeTab: makeNumericProp(0),\n nextStepText: String,\n showToolbar: truthProp\n}, pickerToolbarProps);\nvar stdin_default = defineComponent({\n name,\n props: pickerGroupProps,\n emits: [\"confirm\", \"cancel\", \"update:activeTab\"],\n setup(props, {\n emit,\n slots\n }) {\n const activeTab = useSyncPropRef(() => props.activeTab, (value) => emit(\"update:activeTab\", value));\n const {\n children,\n linkChildren\n } = useChildren(PICKER_GROUP_KEY);\n linkChildren();\n const showNextButton = () => +activeTab.value < props.tabs.length - 1 && props.nextStepText;\n const onConfirm = () => {\n if (showNextButton()) {\n activeTab.value = +activeTab.value + 1;\n } else {\n emit(\"confirm\", children.map((item) => item.confirm()));\n }\n };\n const onCancel = () => emit(\"cancel\");\n return () => {\n var _a, _b;\n let childNodes = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b.filter((node) => node.type !== Comment).map((node) => {\n if (node.type === Fragment) {\n return node.children;\n }\n return node;\n });\n if (childNodes) {\n childNodes = flat(childNodes);\n }\n const confirmButtonText = showNextButton() ? props.nextStepText : props.confirmButtonText;\n return _createVNode(\"div\", {\n \"class\": bem()\n }, [props.showToolbar ? _createVNode(Toolbar, {\n \"title\": props.title,\n \"cancelButtonText\": props.cancelButtonText,\n \"confirmButtonText\": confirmButtonText,\n \"onConfirm\": onConfirm,\n \"onCancel\": onCancel\n }, pick(slots, pickerToolbarSlots)) : null, _createVNode(Tabs, {\n \"active\": activeTab.value,\n \"onUpdate:active\": ($event) => activeTab.value = $event,\n \"class\": bem(\"tabs\"),\n \"shrink\": true,\n \"animated\": true,\n \"lazyRender\": false\n }, {\n default: () => [props.tabs.map((title, index) => _createVNode(Tab, {\n \"title\": title,\n \"titleClass\": bem(\"tab-title\")\n }, {\n default: () => [childNodes == null ? void 0 : childNodes[index]]\n }))]\n })]);\n };\n }\n});\nexport {\n PICKER_GROUP_KEY,\n stdin_default as default,\n pickerGroupProps\n};\n","import { ref, watch, computed, nextTick, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { pick, extend, unitToPx, truthProp, isSameValue, makeArrayProp, preventDefault, makeStringProp, makeNumericProp, BORDER_UNSET_TOP_BOTTOM } from \"../utils/index.mjs\";\nimport { bem, name, isOptionExist, getColumnsType, findOptionByValue, assignDefaultFields, formatCascadeColumns, getFirstEnabledOption } from \"./utils.mjs\";\nimport { useChildren, useEventListener, useParent } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nimport Column, { PICKER_KEY } from \"./PickerColumn.mjs\";\nimport Toolbar, { pickerToolbarPropKeys, pickerToolbarProps, pickerToolbarSlots } from \"./PickerToolbar.mjs\";\nimport { PICKER_GROUP_KEY } from \"../picker-group/PickerGroup.mjs\";\nconst pickerSharedProps = extend({\n loading: Boolean,\n readonly: Boolean,\n allowHtml: Boolean,\n optionHeight: makeNumericProp(44),\n showToolbar: truthProp,\n swipeDuration: makeNumericProp(1e3),\n visibleOptionNum: makeNumericProp(6)\n}, pickerToolbarProps);\nconst pickerProps = extend({}, pickerSharedProps, {\n columns: makeArrayProp(),\n modelValue: makeArrayProp(),\n toolbarPosition: makeStringProp(\"top\"),\n columnsFieldNames: Object\n});\nvar stdin_default = defineComponent({\n name,\n props: pickerProps,\n emits: [\"confirm\", \"cancel\", \"change\", \"scrollInto\", \"clickOption\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const columnsRef = ref();\n const selectedValues = ref(props.modelValue.slice(0));\n const {\n parent\n } = useParent(PICKER_GROUP_KEY);\n const {\n children,\n linkChildren\n } = useChildren(PICKER_KEY);\n linkChildren();\n const fields = computed(() => assignDefaultFields(props.columnsFieldNames));\n const optionHeight = computed(() => unitToPx(props.optionHeight));\n const columnsType = computed(() => getColumnsType(props.columns, fields.value));\n const currentColumns = computed(() => {\n const {\n columns\n } = props;\n switch (columnsType.value) {\n case \"multiple\":\n return columns;\n case \"cascade\":\n return formatCascadeColumns(columns, fields.value, selectedValues);\n default:\n return [columns];\n }\n });\n const hasOptions = computed(() => currentColumns.value.some((options) => options.length));\n const selectedOptions = computed(() => currentColumns.value.map((options, index) => findOptionByValue(options, selectedValues.value[index], fields.value)));\n const selectedIndexes = computed(() => currentColumns.value.map((options, index) => options.findIndex((option) => option[fields.value.value] === selectedValues.value[index])));\n const setValue = (index, value) => {\n if (selectedValues.value[index] !== value) {\n const newValues = selectedValues.value.slice(0);\n newValues[index] = value;\n selectedValues.value = newValues;\n }\n };\n const getEventParams = () => ({\n selectedValues: selectedValues.value.slice(0),\n selectedOptions: selectedOptions.value,\n selectedIndexes: selectedIndexes.value\n });\n const onChange = (value, columnIndex) => {\n setValue(columnIndex, value);\n if (columnsType.value === \"cascade\") {\n selectedValues.value.forEach((value2, index) => {\n const options = currentColumns.value[index];\n if (!isOptionExist(options, value2, fields.value)) {\n setValue(index, options.length ? options[0][fields.value.value] : void 0);\n }\n });\n }\n nextTick(() => {\n emit(\"change\", extend({\n columnIndex\n }, getEventParams()));\n });\n };\n const onClickOption = (currentOption, columnIndex) => {\n const params = {\n columnIndex,\n currentOption\n };\n emit(\"clickOption\", extend(getEventParams(), params));\n emit(\"scrollInto\", params);\n };\n const confirm = () => {\n children.forEach((child) => child.stopMomentum());\n const params = getEventParams();\n nextTick(() => {\n const params2 = getEventParams();\n emit(\"confirm\", params2);\n });\n return params;\n };\n const cancel = () => emit(\"cancel\", getEventParams());\n const renderColumnItems = () => currentColumns.value.map((options, columnIndex) => _createVNode(Column, {\n \"value\": selectedValues.value[columnIndex],\n \"fields\": fields.value,\n \"options\": options,\n \"readonly\": props.readonly,\n \"allowHtml\": props.allowHtml,\n \"optionHeight\": optionHeight.value,\n \"swipeDuration\": props.swipeDuration,\n \"visibleOptionNum\": props.visibleOptionNum,\n \"onChange\": (value) => onChange(value, columnIndex),\n \"onClickOption\": (option) => onClickOption(option, columnIndex),\n \"onScrollInto\": (option) => {\n emit(\"scrollInto\", {\n currentOption: option,\n columnIndex\n });\n }\n }, {\n option: slots.option\n }));\n const renderMask = (wrapHeight) => {\n if (hasOptions.value) {\n const frameStyle = {\n height: `${optionHeight.value}px`\n };\n const maskStyle = {\n backgroundSize: `100% ${(wrapHeight - optionHeight.value) / 2}px`\n };\n return [_createVNode(\"div\", {\n \"class\": bem(\"mask\"),\n \"style\": maskStyle\n }, null), _createVNode(\"div\", {\n \"class\": [BORDER_UNSET_TOP_BOTTOM, bem(\"frame\")],\n \"style\": frameStyle\n }, null)];\n }\n };\n const renderColumns = () => {\n const wrapHeight = optionHeight.value * +props.visibleOptionNum;\n const columnsStyle = {\n height: `${wrapHeight}px`\n };\n if (!props.loading && !hasOptions.value && slots.empty) {\n return slots.empty();\n }\n return _createVNode(\"div\", {\n \"ref\": columnsRef,\n \"class\": bem(\"columns\"),\n \"style\": columnsStyle\n }, [renderColumnItems(), renderMask(wrapHeight)]);\n };\n const renderToolbar = () => {\n if (props.showToolbar && !parent) {\n return _createVNode(Toolbar, _mergeProps(pick(props, pickerToolbarPropKeys), {\n \"onConfirm\": confirm,\n \"onCancel\": cancel\n }), pick(slots, pickerToolbarSlots));\n }\n };\n const resetSelectedValues = (columns) => {\n columns.forEach((options, index) => {\n if (options.length && !isOptionExist(options, selectedValues.value[index], fields.value)) {\n setValue(index, getFirstEnabledOption(options)[fields.value.value]);\n }\n });\n };\n watch(currentColumns, (columns) => resetSelectedValues(columns), {\n immediate: true\n });\n let lastEmittedModelValue;\n watch(() => props.modelValue, (newValues) => {\n if (!isSameValue(newValues, selectedValues.value) && !isSameValue(newValues, lastEmittedModelValue)) {\n selectedValues.value = newValues.slice(0);\n lastEmittedModelValue = newValues.slice(0);\n }\n if (props.modelValue.length === 0) {\n resetSelectedValues(currentColumns.value);\n }\n }, {\n deep: true\n });\n watch(selectedValues, (newValues) => {\n if (!isSameValue(newValues, props.modelValue)) {\n lastEmittedModelValue = newValues.slice(0);\n emit(\"update:modelValue\", lastEmittedModelValue);\n }\n }, {\n immediate: true\n });\n useEventListener(\"touchmove\", preventDefault, {\n target: columnsRef\n });\n const getSelectedOptions = () => selectedOptions.value;\n useExpose({\n confirm,\n getSelectedOptions\n });\n return () => {\n var _a, _b;\n return _createVNode(\"div\", {\n \"class\": bem()\n }, [props.toolbarPosition === \"top\" ? renderToolbar() : null, props.loading ? _createVNode(Loading, {\n \"class\": bem(\"loading\")\n }, null) : null, (_a = slots[\"columns-top\"]) == null ? void 0 : _a.call(slots), renderColumns(), (_b = slots[\"columns-bottom\"]) == null ? void 0 : _b.call(slots), props.toolbarPosition === \"bottom\" ? renderToolbar() : null]);\n };\n }\n});\nexport {\n stdin_default as default,\n pickerProps,\n pickerSharedProps\n};\n","const AREA_EMPTY_CODE = \"000000\";\nconst INHERIT_SLOTS = [\n \"title\",\n \"cancel\",\n \"confirm\",\n \"toolbar\",\n \"columns-top\",\n \"columns-bottom\"\n];\nconst INHERIT_PROPS = [\n \"title\",\n \"loading\",\n \"readonly\",\n \"optionHeight\",\n \"swipeDuration\",\n \"visibleOptionNum\",\n \"cancelButtonText\",\n \"confirmButtonText\"\n];\nconst makeOption = (text = \"\", value = AREA_EMPTY_CODE, children = void 0) => ({\n text,\n value,\n children\n});\nfunction formatDataForCascade({\n areaList,\n columnsNum,\n columnsPlaceholder: placeholder\n}) {\n const {\n city_list: city = {},\n county_list: county = {},\n province_list: province = {}\n } = areaList;\n const showCity = +columnsNum > 1;\n const showCounty = +columnsNum > 2;\n const getProvinceChildren = () => {\n if (showCity) {\n return placeholder.length > 1 ? [\n makeOption(\n placeholder[1],\n AREA_EMPTY_CODE,\n showCounty ? [] : void 0\n )\n ] : [];\n }\n };\n const provinceMap = /* @__PURE__ */ new Map();\n Object.keys(province).forEach((code) => {\n provinceMap.set(\n code.slice(0, 2),\n makeOption(province[code], code, getProvinceChildren())\n );\n });\n const cityMap = /* @__PURE__ */ new Map();\n if (showCity) {\n const getCityChildren = () => {\n if (showCounty) {\n return placeholder.length > 2 ? [makeOption(placeholder[2])] : [];\n }\n };\n Object.keys(city).forEach((code) => {\n const option = makeOption(city[code], code, getCityChildren());\n cityMap.set(code.slice(0, 4), option);\n const province2 = provinceMap.get(code.slice(0, 2));\n if (province2) {\n province2.children.push(option);\n }\n });\n }\n if (showCounty) {\n Object.keys(county).forEach((code) => {\n const city2 = cityMap.get(code.slice(0, 4));\n if (city2) {\n city2.children.push(makeOption(county[code], code));\n }\n });\n }\n const options = Array.from(provinceMap.values());\n if (placeholder.length) {\n const county2 = showCounty ? [makeOption(placeholder[2])] : void 0;\n const city2 = showCity ? [makeOption(placeholder[1], AREA_EMPTY_CODE, county2)] : void 0;\n options.unshift(makeOption(placeholder[0], AREA_EMPTY_CODE, city2));\n }\n return options;\n}\nexport {\n AREA_EMPTY_CODE,\n INHERIT_PROPS,\n INHERIT_SLOTS,\n formatDataForCascade\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Picker from \"./Picker.mjs\";\nconst Picker = withInstall(_Picker);\nvar stdin_default = Picker;\nimport { pickerProps } from \"./Picker.mjs\";\nexport {\n Picker,\n stdin_default as default,\n pickerProps\n};\n","import { ref, watch, computed, defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { pick, extend, makeArrayProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { pickerSharedProps } from \"../picker/Picker.mjs\";\nimport { INHERIT_PROPS, INHERIT_SLOTS, formatDataForCascade } from \"./utils.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Picker } from \"../picker/index.mjs\";\nconst [name, bem] = createNamespace(\"area\");\nconst areaProps = extend({}, pick(pickerSharedProps, INHERIT_PROPS), {\n modelValue: String,\n columnsNum: makeNumericProp(3),\n columnsPlaceholder: makeArrayProp(),\n areaList: {\n type: Object,\n default: () => ({})\n }\n});\nvar stdin_default = defineComponent({\n name,\n props: areaProps,\n emits: [\"change\", \"confirm\", \"cancel\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const codes = ref([]);\n const picker = ref();\n const columns = computed(() => formatDataForCascade(props));\n const onChange = (...args) => emit(\"change\", ...args);\n const onCancel = (...args) => emit(\"cancel\", ...args);\n const onConfirm = (...args) => emit(\"confirm\", ...args);\n watch(codes, (newCodes) => {\n const lastCode = newCodes.length ? newCodes[newCodes.length - 1] : \"\";\n if (lastCode && lastCode !== props.modelValue) {\n emit(\"update:modelValue\", lastCode);\n }\n }, {\n deep: true\n });\n watch(() => props.modelValue, (newCode) => {\n if (newCode) {\n const lastCode = codes.value.length ? codes.value[codes.value.length - 1] : \"\";\n if (newCode !== lastCode) {\n codes.value = [`${newCode.slice(0, 2)}0000`, `${newCode.slice(0, 4)}00`, newCode].slice(0, +props.columnsNum);\n }\n } else {\n codes.value = [];\n }\n }, {\n immediate: true\n });\n useExpose({\n confirm: () => {\n var _a;\n return (_a = picker.value) == null ? void 0 : _a.confirm();\n },\n getSelectedOptions: () => {\n var _a;\n return ((_a = picker.value) == null ? void 0 : _a.getSelectedOptions()) || [];\n }\n });\n return () => _createVNode(Picker, _mergeProps({\n \"ref\": picker,\n \"modelValue\": codes.value,\n \"onUpdate:modelValue\": ($event) => codes.value = $event,\n \"class\": bem(),\n \"columns\": columns.value,\n \"onChange\": onChange,\n \"onCancel\": onCancel,\n \"onConfirm\": onConfirm\n }, pick(props, INHERIT_PROPS)), pick(slots, INHERIT_SLOTS));\n }\n});\nexport {\n areaProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Area from \"./Area.mjs\";\nconst Area = withInstall(_Area);\nvar stdin_default = Area;\nimport { areaProps } from \"./Area.mjs\";\nexport {\n Area,\n areaProps,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isDef, extend, truthProp, unknownProp, numericProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { useRoute, routeProps } from \"../composables/use-route.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"cell\");\nconst cellSharedProps = {\n tag: makeStringProp(\"div\"),\n icon: String,\n size: String,\n title: numericProp,\n value: numericProp,\n label: numericProp,\n center: Boolean,\n isLink: Boolean,\n border: truthProp,\n iconPrefix: String,\n valueClass: unknownProp,\n labelClass: unknownProp,\n titleClass: unknownProp,\n titleStyle: null,\n arrowDirection: String,\n required: {\n type: [Boolean, String],\n default: null\n },\n clickable: {\n type: Boolean,\n default: null\n }\n};\nconst cellProps = extend({}, cellSharedProps, routeProps);\nvar stdin_default = defineComponent({\n name,\n props: cellProps,\n setup(props, {\n slots\n }) {\n const route = useRoute();\n const renderLabel = () => {\n const showLabel = slots.label || isDef(props.label);\n if (showLabel) {\n return _createVNode(\"div\", {\n \"class\": [bem(\"label\"), props.labelClass]\n }, [slots.label ? slots.label() : props.label]);\n }\n };\n const renderTitle = () => {\n var _a;\n if (slots.title || isDef(props.title)) {\n const titleSlot = (_a = slots.title) == null ? void 0 : _a.call(slots);\n if (Array.isArray(titleSlot) && titleSlot.length === 0) {\n return;\n }\n return _createVNode(\"div\", {\n \"class\": [bem(\"title\"), props.titleClass],\n \"style\": props.titleStyle\n }, [titleSlot || _createVNode(\"span\", null, [props.title]), renderLabel()]);\n }\n };\n const renderValue = () => {\n const slot = slots.value || slots.default;\n const hasValue = slot || isDef(props.value);\n if (hasValue) {\n return _createVNode(\"div\", {\n \"class\": [bem(\"value\"), props.valueClass]\n }, [slot ? slot() : _createVNode(\"span\", null, [props.value])]);\n }\n };\n const renderLeftIcon = () => {\n if (slots.icon) {\n return slots.icon();\n }\n if (props.icon) {\n return _createVNode(Icon, {\n \"name\": props.icon,\n \"class\": bem(\"left-icon\"),\n \"classPrefix\": props.iconPrefix\n }, null);\n }\n };\n const renderRightIcon = () => {\n if (slots[\"right-icon\"]) {\n return slots[\"right-icon\"]();\n }\n if (props.isLink) {\n const name2 = props.arrowDirection && props.arrowDirection !== \"right\" ? `arrow-${props.arrowDirection}` : \"arrow\";\n return _createVNode(Icon, {\n \"name\": name2,\n \"class\": bem(\"right-icon\")\n }, null);\n }\n };\n return () => {\n var _a;\n const {\n tag,\n size,\n center,\n border,\n isLink,\n required\n } = props;\n const clickable = (_a = props.clickable) != null ? _a : isLink;\n const classes = {\n center,\n required: !!required,\n clickable,\n borderless: !border\n };\n if (size) {\n classes[size] = !!size;\n }\n return _createVNode(tag, {\n \"class\": bem(classes),\n \"role\": clickable ? \"button\" : void 0,\n \"tabindex\": clickable ? 0 : void 0,\n \"onClick\": route\n }, {\n default: () => {\n var _a2;\n return [renderLeftIcon(), renderTitle(), renderValue(), renderRightIcon(), (_a2 = slots.extra) == null ? void 0 : _a2.call(slots)];\n }\n });\n };\n }\n});\nexport {\n cellProps,\n cellSharedProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Cell from \"./Cell.mjs\";\nconst Cell = withInstall(_Cell);\nvar stdin_default = Cell;\nimport { cellProps } from \"./Cell.mjs\";\nexport {\n Cell,\n cellProps,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { FORM_KEY, truthProp, numericProp, preventDefault, createNamespace } from \"../utils/index.mjs\";\nimport { useChildren } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"form\");\nconst formProps = {\n colon: Boolean,\n disabled: Boolean,\n readonly: Boolean,\n required: [Boolean, String],\n showError: Boolean,\n labelWidth: numericProp,\n labelAlign: String,\n inputAlign: String,\n scrollToError: Boolean,\n scrollToErrorPosition: String,\n validateFirst: Boolean,\n submitOnEnter: truthProp,\n showErrorMessage: truthProp,\n errorMessageAlign: String,\n validateTrigger: {\n type: [String, Array],\n default: \"onBlur\"\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: formProps,\n emits: [\"submit\", \"failed\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n children,\n linkChildren\n } = useChildren(FORM_KEY);\n const getFieldsByNames = (names) => {\n if (names) {\n return children.filter((field) => names.includes(field.name));\n }\n return children;\n };\n const validateSeq = (names) => new Promise((resolve, reject) => {\n const errors = [];\n const fields = getFieldsByNames(names);\n fields.reduce((promise, field) => promise.then(() => {\n if (!errors.length) {\n return field.validate().then((error) => {\n if (error) {\n errors.push(error);\n }\n });\n }\n }), Promise.resolve()).then(() => {\n if (errors.length) {\n reject(errors);\n } else {\n resolve();\n }\n });\n });\n const validateAll = (names) => new Promise((resolve, reject) => {\n const fields = getFieldsByNames(names);\n Promise.all(fields.map((item) => item.validate())).then((errors) => {\n errors = errors.filter(Boolean);\n if (errors.length) {\n reject(errors);\n } else {\n resolve();\n }\n });\n });\n const validateField = (name2) => {\n const matched = children.find((item) => item.name === name2);\n if (matched) {\n return new Promise((resolve, reject) => {\n matched.validate().then((error) => {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n });\n }\n return Promise.reject();\n };\n const validate = (name2) => {\n if (typeof name2 === \"string\") {\n return validateField(name2);\n }\n return props.validateFirst ? validateSeq(name2) : validateAll(name2);\n };\n const resetValidation = (name2) => {\n if (typeof name2 === \"string\") {\n name2 = [name2];\n }\n const fields = getFieldsByNames(name2);\n fields.forEach((item) => {\n item.resetValidation();\n });\n };\n const getValidationStatus = () => children.reduce((form, field) => {\n form[field.name] = field.getValidationStatus();\n return form;\n }, {});\n const scrollToField = (name2, options) => {\n children.some((item) => {\n if (item.name === name2) {\n item.$el.scrollIntoView(options);\n return true;\n }\n return false;\n });\n };\n const getValues = () => children.reduce((form, field) => {\n if (field.name !== void 0) {\n form[field.name] = field.formValue.value;\n }\n return form;\n }, {});\n const submit = () => {\n const values = getValues();\n validate().then(() => emit(\"submit\", values)).catch((errors) => {\n emit(\"failed\", {\n values,\n errors\n });\n const {\n scrollToError,\n scrollToErrorPosition\n } = props;\n if (scrollToError && errors[0].name) {\n scrollToField(errors[0].name, scrollToErrorPosition ? {\n block: scrollToErrorPosition\n } : void 0);\n }\n });\n };\n const onSubmit = (event) => {\n preventDefault(event);\n submit();\n };\n linkChildren({\n props\n });\n useExpose({\n submit,\n validate,\n getValues,\n scrollToField,\n resetValidation,\n getValidationStatus\n });\n return () => {\n var _a;\n return _createVNode(\"form\", {\n \"class\": bem(),\n \"onSubmit\": onSubmit\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n stdin_default as default,\n formProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Form from \"./Form.mjs\";\nconst Form = withInstall(_Form);\nvar stdin_default = Form;\nimport { formProps } from \"./Form.mjs\";\nexport {\n Form,\n stdin_default as default,\n formProps\n};\n","import {\n isObject,\n isPromise,\n isFunction,\n getRootScrollTop,\n setRootScrollTop\n} from \"../utils/index.mjs\";\nfunction isEmptyValue(value) {\n if (Array.isArray(value)) {\n return !value.length;\n }\n if (value === 0) {\n return false;\n }\n return !value;\n}\nfunction runSyncRule(value, rule) {\n if (isEmptyValue(value)) {\n if (rule.required) {\n return false;\n }\n if (rule.validateEmpty === false) {\n return true;\n }\n }\n if (rule.pattern && !rule.pattern.test(String(value))) {\n return false;\n }\n return true;\n}\nfunction runRuleValidator(value, rule) {\n return new Promise((resolve) => {\n const returnVal = rule.validator(value, rule);\n if (isPromise(returnVal)) {\n returnVal.then(resolve);\n return;\n }\n resolve(returnVal);\n });\n}\nfunction getRuleMessage(value, rule) {\n const { message } = rule;\n if (isFunction(message)) {\n return message(value, rule);\n }\n return message || \"\";\n}\nfunction startComposing({ target }) {\n target.composing = true;\n}\nfunction endComposing({ target }) {\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nfunction resizeTextarea(input, autosize) {\n const scrollTop = getRootScrollTop();\n input.style.height = \"auto\";\n let height = input.scrollHeight;\n if (isObject(autosize)) {\n const { maxHeight, minHeight } = autosize;\n if (maxHeight !== void 0) {\n height = Math.min(height, maxHeight);\n }\n if (minHeight !== void 0) {\n height = Math.max(height, minHeight);\n }\n }\n if (height) {\n input.style.height = `${height}px`;\n setRootScrollTop(scrollTop);\n }\n}\nfunction mapInputType(type, inputmode) {\n if (type === \"number\") {\n type = \"text\";\n inputmode != null ? inputmode : inputmode = \"decimal\";\n }\n if (type === \"digit\") {\n type = \"tel\";\n inputmode != null ? inputmode : inputmode = \"numeric\";\n }\n return { type, inputmode };\n}\nfunction getStringLength(str) {\n return [...str].length;\n}\nfunction cutString(str, maxlength) {\n return [...str].slice(0, maxlength).join(\"\");\n}\nexport {\n cutString,\n endComposing,\n getRuleMessage,\n getStringLength,\n isEmptyValue,\n mapInputType,\n resizeTextarea,\n runRuleValidator,\n runSyncRule,\n startComposing\n};\n","import { ref, watch, provide, computed, nextTick, reactive, onMounted, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode } from \"vue\";\nimport { isDef, extend, addUnit, toArray, FORM_KEY, numericProp, unknownProp, resetScroll, formatNumber, preventDefault, makeStringProp, makeNumericProp, createNamespace, clamp } from \"../utils/index.mjs\";\nimport { cutString, runSyncRule, endComposing, mapInputType, isEmptyValue, startComposing, getRuleMessage, resizeTextarea, getStringLength, runRuleValidator } from \"./utils.mjs\";\nimport { cellSharedProps } from \"../cell/Cell.mjs\";\nimport { useParent, useEventListener, CUSTOM_FIELD_INJECTION_KEY } from \"@vant/use\";\nimport { useId } from \"../composables/use-id.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nconst [name, bem] = createNamespace(\"field\");\nconst fieldSharedProps = {\n id: String,\n name: String,\n leftIcon: String,\n rightIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n maxlength: numericProp,\n max: Number,\n min: Number,\n formatter: Function,\n clearIcon: makeStringProp(\"clear\"),\n modelValue: makeNumericProp(\"\"),\n inputAlign: String,\n placeholder: String,\n autocomplete: String,\n autocapitalize: String,\n autocorrect: String,\n errorMessage: String,\n enterkeyhint: String,\n clearTrigger: makeStringProp(\"focus\"),\n formatTrigger: makeStringProp(\"onChange\"),\n spellcheck: {\n type: Boolean,\n default: null\n },\n error: {\n type: Boolean,\n default: null\n },\n disabled: {\n type: Boolean,\n default: null\n },\n readonly: {\n type: Boolean,\n default: null\n },\n inputmode: String\n};\nconst fieldProps = extend({}, cellSharedProps, fieldSharedProps, {\n rows: numericProp,\n type: makeStringProp(\"text\"),\n rules: Array,\n autosize: [Boolean, Object],\n labelWidth: numericProp,\n labelClass: unknownProp,\n labelAlign: String,\n showWordLimit: Boolean,\n errorMessageAlign: String,\n colon: {\n type: Boolean,\n default: null\n }\n});\nvar stdin_default = defineComponent({\n name,\n props: fieldProps,\n emits: [\"blur\", \"focus\", \"clear\", \"keypress\", \"clickInput\", \"endValidate\", \"startValidate\", \"clickLeftIcon\", \"clickRightIcon\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const id = useId();\n const state = reactive({\n status: \"unvalidated\",\n focused: false,\n validateMessage: \"\"\n });\n const inputRef = ref();\n const clearIconRef = ref();\n const customValue = ref();\n const {\n parent: form\n } = useParent(FORM_KEY);\n const getModelValue = () => {\n var _a;\n return String((_a = props.modelValue) != null ? _a : \"\");\n };\n const getProp = (key) => {\n if (isDef(props[key])) {\n return props[key];\n }\n if (form && isDef(form.props[key])) {\n return form.props[key];\n }\n };\n const showClear = computed(() => {\n const readonly = getProp(\"readonly\");\n if (props.clearable && !readonly) {\n const hasValue = getModelValue() !== \"\";\n const trigger = props.clearTrigger === \"always\" || props.clearTrigger === \"focus\" && state.focused;\n return hasValue && trigger;\n }\n return false;\n });\n const formValue = computed(() => {\n if (customValue.value && slots.input) {\n return customValue.value();\n }\n return props.modelValue;\n });\n const showRequiredMark = computed(() => {\n var _a;\n const required = getProp(\"required\");\n if (required === \"auto\") {\n return (_a = props.rules) == null ? void 0 : _a.some((rule) => rule.required);\n }\n return required;\n });\n const runRules = (rules) => rules.reduce((promise, rule) => promise.then(() => {\n if (state.status === \"failed\") {\n return;\n }\n let {\n value\n } = formValue;\n if (rule.formatter) {\n value = rule.formatter(value, rule);\n }\n if (!runSyncRule(value, rule)) {\n state.status = \"failed\";\n state.validateMessage = getRuleMessage(value, rule);\n return;\n }\n if (rule.validator) {\n if (isEmptyValue(value) && rule.validateEmpty === false) {\n return;\n }\n return runRuleValidator(value, rule).then((result) => {\n if (result && typeof result === \"string\") {\n state.status = \"failed\";\n state.validateMessage = result;\n } else if (result === false) {\n state.status = \"failed\";\n state.validateMessage = getRuleMessage(value, rule);\n }\n });\n }\n }), Promise.resolve());\n const resetValidation = () => {\n state.status = \"unvalidated\";\n state.validateMessage = \"\";\n };\n const endValidate = () => emit(\"endValidate\", {\n status: state.status,\n message: state.validateMessage\n });\n const validate = (rules = props.rules) => new Promise((resolve) => {\n resetValidation();\n if (rules) {\n emit(\"startValidate\");\n runRules(rules).then(() => {\n if (state.status === \"failed\") {\n resolve({\n name: props.name,\n message: state.validateMessage\n });\n endValidate();\n } else {\n state.status = \"passed\";\n resolve();\n endValidate();\n }\n });\n } else {\n resolve();\n }\n });\n const validateWithTrigger = (trigger) => {\n if (form && props.rules) {\n const {\n validateTrigger\n } = form.props;\n const defaultTrigger = toArray(validateTrigger).includes(trigger);\n const rules = props.rules.filter((rule) => {\n if (rule.trigger) {\n return toArray(rule.trigger).includes(trigger);\n }\n return defaultTrigger;\n });\n if (rules.length) {\n validate(rules);\n }\n }\n };\n const limitValueLength = (value) => {\n var _a;\n const {\n maxlength\n } = props;\n if (isDef(maxlength) && getStringLength(value) > +maxlength) {\n const modelValue = getModelValue();\n if (modelValue && getStringLength(modelValue) === +maxlength) {\n return modelValue;\n }\n const selectionEnd = (_a = inputRef.value) == null ? void 0 : _a.selectionEnd;\n if (state.focused && selectionEnd) {\n const valueArr = [...value];\n const exceededLength = valueArr.length - +maxlength;\n valueArr.splice(selectionEnd - exceededLength, exceededLength);\n return valueArr.join(\"\");\n }\n return cutString(value, +maxlength);\n }\n return value;\n };\n const updateValue = (value, trigger = \"onChange\") => {\n var _a, _b;\n const originalValue = value;\n value = limitValueLength(value);\n const limitDiffLen = originalValue.length - value.length;\n if (props.type === \"number\" || props.type === \"digit\") {\n const isNumber = props.type === \"number\";\n value = formatNumber(value, isNumber, isNumber);\n if (trigger === \"onBlur\" && value !== \"\" && (props.min !== void 0 || props.max !== void 0)) {\n const adjustedValue = clamp(+value, (_a = props.min) != null ? _a : -Infinity, (_b = props.max) != null ? _b : Infinity);\n if (+value !== adjustedValue) {\n value = adjustedValue.toString();\n }\n }\n }\n let formatterDiffLen = 0;\n if (props.formatter && trigger === props.formatTrigger) {\n const {\n formatter,\n maxlength\n } = props;\n value = formatter(value);\n if (isDef(maxlength) && getStringLength(value) > +maxlength) {\n value = cutString(value, +maxlength);\n }\n if (inputRef.value && state.focused) {\n const {\n selectionEnd\n } = inputRef.value;\n const bcoVal = cutString(originalValue, selectionEnd);\n formatterDiffLen = formatter(bcoVal).length - bcoVal.length;\n }\n }\n if (inputRef.value && inputRef.value.value !== value) {\n if (state.focused) {\n let {\n selectionStart,\n selectionEnd\n } = inputRef.value;\n inputRef.value.value = value;\n if (isDef(selectionStart) && isDef(selectionEnd)) {\n const valueLen = value.length;\n if (limitDiffLen) {\n selectionStart -= limitDiffLen;\n selectionEnd -= limitDiffLen;\n } else if (formatterDiffLen) {\n selectionStart += formatterDiffLen;\n selectionEnd += formatterDiffLen;\n }\n inputRef.value.setSelectionRange(Math.min(selectionStart, valueLen), Math.min(selectionEnd, valueLen));\n }\n } else {\n inputRef.value.value = value;\n }\n }\n if (value !== props.modelValue) {\n emit(\"update:modelValue\", value);\n }\n };\n const onInput = (event) => {\n if (!event.target.composing) {\n updateValue(event.target.value);\n }\n };\n const blur = () => {\n var _a;\n return (_a = inputRef.value) == null ? void 0 : _a.blur();\n };\n const focus = () => {\n var _a;\n return (_a = inputRef.value) == null ? void 0 : _a.focus();\n };\n const adjustTextareaSize = () => {\n const input = inputRef.value;\n if (props.type === \"textarea\" && props.autosize && input) {\n resizeTextarea(input, props.autosize);\n }\n };\n const onFocus = (event) => {\n state.focused = true;\n emit(\"focus\", event);\n nextTick(adjustTextareaSize);\n if (getProp(\"readonly\")) {\n blur();\n }\n };\n const onBlur = (event) => {\n state.focused = false;\n updateValue(getModelValue(), \"onBlur\");\n emit(\"blur\", event);\n if (getProp(\"readonly\")) {\n return;\n }\n validateWithTrigger(\"onBlur\");\n nextTick(adjustTextareaSize);\n resetScroll();\n };\n const onClickInput = (event) => emit(\"clickInput\", event);\n const onClickLeftIcon = (event) => emit(\"clickLeftIcon\", event);\n const onClickRightIcon = (event) => emit(\"clickRightIcon\", event);\n const onClear = (event) => {\n preventDefault(event);\n emit(\"update:modelValue\", \"\");\n emit(\"clear\", event);\n };\n const showError = computed(() => {\n if (typeof props.error === \"boolean\") {\n return props.error;\n }\n if (form && form.props.showError && state.status === \"failed\") {\n return true;\n }\n });\n const labelStyle = computed(() => {\n const labelWidth = getProp(\"labelWidth\");\n const labelAlign = getProp(\"labelAlign\");\n if (labelWidth && labelAlign !== \"top\") {\n return {\n width: addUnit(labelWidth)\n };\n }\n });\n const onKeypress = (event) => {\n const ENTER_CODE = 13;\n if (event.keyCode === ENTER_CODE) {\n const submitOnEnter = form && form.props.submitOnEnter;\n if (!submitOnEnter && props.type !== \"textarea\") {\n preventDefault(event);\n }\n if (props.type === \"search\") {\n blur();\n }\n }\n emit(\"keypress\", event);\n };\n const getInputId = () => props.id || `${id}-input`;\n const getValidationStatus = () => state.status;\n const renderInput = () => {\n const controlClass = bem(\"control\", [getProp(\"inputAlign\"), {\n error: showError.value,\n custom: !!slots.input,\n \"min-height\": props.type === \"textarea\" && !props.autosize\n }]);\n if (slots.input) {\n return _createVNode(\"div\", {\n \"class\": controlClass,\n \"onClick\": onClickInput\n }, [slots.input()]);\n }\n const inputAttrs = {\n id: getInputId(),\n ref: inputRef,\n name: props.name,\n rows: props.rows !== void 0 ? +props.rows : void 0,\n class: controlClass,\n disabled: getProp(\"disabled\"),\n readonly: getProp(\"readonly\"),\n autofocus: props.autofocus,\n placeholder: props.placeholder,\n autocomplete: props.autocomplete,\n autocapitalize: props.autocapitalize,\n autocorrect: props.autocorrect,\n enterkeyhint: props.enterkeyhint,\n spellcheck: props.spellcheck,\n \"aria-labelledby\": props.label ? `${id}-label` : void 0,\n \"data-allow-mismatch\": \"attribute\",\n onBlur,\n onFocus,\n onInput,\n onClick: onClickInput,\n onChange: endComposing,\n onKeypress,\n onCompositionend: endComposing,\n onCompositionstart: startComposing\n };\n if (props.type === \"textarea\") {\n return _createVNode(\"textarea\", _mergeProps(inputAttrs, {\n \"inputmode\": props.inputmode\n }), null);\n }\n return _createVNode(\"input\", _mergeProps(mapInputType(props.type, props.inputmode), inputAttrs), null);\n };\n const renderLeftIcon = () => {\n const leftIconSlot = slots[\"left-icon\"];\n if (props.leftIcon || leftIconSlot) {\n return _createVNode(\"div\", {\n \"class\": bem(\"left-icon\"),\n \"onClick\": onClickLeftIcon\n }, [leftIconSlot ? leftIconSlot() : _createVNode(Icon, {\n \"name\": props.leftIcon,\n \"classPrefix\": props.iconPrefix\n }, null)]);\n }\n };\n const renderRightIcon = () => {\n const rightIconSlot = slots[\"right-icon\"];\n if (props.rightIcon || rightIconSlot) {\n return _createVNode(\"div\", {\n \"class\": bem(\"right-icon\"),\n \"onClick\": onClickRightIcon\n }, [rightIconSlot ? rightIconSlot() : _createVNode(Icon, {\n \"name\": props.rightIcon,\n \"classPrefix\": props.iconPrefix\n }, null)]);\n }\n };\n const renderWordLimit = () => {\n if (props.showWordLimit && props.maxlength) {\n const count = getStringLength(getModelValue());\n return _createVNode(\"div\", {\n \"class\": bem(\"word-limit\")\n }, [_createVNode(\"span\", {\n \"class\": bem(\"word-num\")\n }, [count]), _createTextVNode(\"/\"), props.maxlength]);\n }\n };\n const renderMessage = () => {\n if (form && form.props.showErrorMessage === false) {\n return;\n }\n const message = props.errorMessage || state.validateMessage;\n if (message) {\n const slot = slots[\"error-message\"];\n const errorMessageAlign = getProp(\"errorMessageAlign\");\n return _createVNode(\"div\", {\n \"class\": bem(\"error-message\", errorMessageAlign)\n }, [slot ? slot({\n message\n }) : message]);\n }\n };\n const renderLabel = () => {\n const labelWidth = getProp(\"labelWidth\");\n const labelAlign = getProp(\"labelAlign\");\n const colon = getProp(\"colon\") ? \":\" : \"\";\n if (slots.label) {\n return [slots.label(), colon];\n }\n if (props.label) {\n return _createVNode(\"label\", {\n \"id\": `${id}-label`,\n \"for\": slots.input ? void 0 : getInputId(),\n \"data-allow-mismatch\": \"attribute\",\n \"onClick\": (event) => {\n preventDefault(event);\n focus();\n },\n \"style\": labelAlign === \"top\" && labelWidth ? {\n width: addUnit(labelWidth)\n } : void 0\n }, [props.label + colon]);\n }\n };\n const renderFieldBody = () => [_createVNode(\"div\", {\n \"class\": bem(\"body\")\n }, [renderInput(), showClear.value && _createVNode(Icon, {\n \"ref\": clearIconRef,\n \"name\": props.clearIcon,\n \"class\": bem(\"clear\")\n }, null), renderRightIcon(), slots.button && _createVNode(\"div\", {\n \"class\": bem(\"button\")\n }, [slots.button()])]), renderWordLimit(), renderMessage()];\n useExpose({\n blur,\n focus,\n validate,\n formValue,\n resetValidation,\n getValidationStatus\n });\n provide(CUSTOM_FIELD_INJECTION_KEY, {\n customValue,\n resetValidation,\n validateWithTrigger\n });\n watch(() => props.modelValue, () => {\n updateValue(getModelValue());\n resetValidation();\n validateWithTrigger(\"onChange\");\n nextTick(adjustTextareaSize);\n });\n onMounted(() => {\n updateValue(getModelValue(), props.formatTrigger);\n nextTick(adjustTextareaSize);\n });\n useEventListener(\"touchstart\", onClear, {\n target: computed(() => {\n var _a;\n return (_a = clearIconRef.value) == null ? void 0 : _a.$el;\n })\n });\n return () => {\n const disabled = getProp(\"disabled\");\n const labelAlign = getProp(\"labelAlign\");\n const LeftIcon = renderLeftIcon();\n const renderTitle = () => {\n const Label = renderLabel();\n if (labelAlign === \"top\") {\n return [LeftIcon, Label].filter(Boolean);\n }\n return Label || [];\n };\n return _createVNode(Cell, {\n \"size\": props.size,\n \"class\": bem({\n error: showError.value,\n disabled,\n [`label-${labelAlign}`]: labelAlign\n }),\n \"center\": props.center,\n \"border\": props.border,\n \"isLink\": props.isLink,\n \"clickable\": props.clickable,\n \"titleStyle\": labelStyle.value,\n \"valueClass\": bem(\"value\"),\n \"titleClass\": [bem(\"label\", [labelAlign, {\n required: showRequiredMark.value\n }]), props.labelClass],\n \"arrowDirection\": props.arrowDirection\n }, {\n icon: LeftIcon && labelAlign !== \"top\" ? () => LeftIcon : null,\n title: renderTitle,\n value: renderFieldBody,\n extra: slots.extra\n });\n };\n }\n});\nexport {\n stdin_default as default,\n fieldProps,\n fieldSharedProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Field from \"./Field.mjs\";\nconst Field = withInstall(_Field);\nvar stdin_default = Field;\nimport { fieldProps } from \"./Field.mjs\";\nexport {\n Field,\n stdin_default as default,\n fieldProps\n};\n","let lockCount = 0;\nfunction lockClick(lock) {\n if (lock) {\n if (!lockCount) {\n document.body.classList.add(\"van-toast--unclickable\");\n }\n lockCount++;\n } else if (lockCount) {\n lockCount--;\n if (!lockCount) {\n document.body.classList.remove(\"van-toast--unclickable\");\n }\n }\n}\nexport {\n lockClick\n};\n","import { watch, onMounted, onUnmounted, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { pick, isDef, unknownProp, numericProp, makeStringProp, makeNumberProp, createNamespace } from \"../utils/index.mjs\";\nimport { lockClick } from \"./lock-click.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nconst [name, bem] = createNamespace(\"toast\");\nconst popupInheritProps = [\"show\", \"overlay\", \"teleport\", \"transition\", \"overlayClass\", \"overlayStyle\", \"closeOnClickOverlay\", \"zIndex\"];\nconst toastProps = {\n icon: String,\n show: Boolean,\n type: makeStringProp(\"text\"),\n overlay: Boolean,\n message: numericProp,\n iconSize: numericProp,\n duration: makeNumberProp(2e3),\n position: makeStringProp(\"middle\"),\n teleport: [String, Object],\n wordBreak: String,\n className: unknownProp,\n iconPrefix: String,\n transition: makeStringProp(\"van-fade\"),\n loadingType: String,\n forbidClick: Boolean,\n overlayClass: unknownProp,\n overlayStyle: Object,\n closeOnClick: Boolean,\n closeOnClickOverlay: Boolean,\n zIndex: numericProp\n};\nvar stdin_default = defineComponent({\n name,\n props: toastProps,\n emits: [\"update:show\"],\n setup(props, {\n emit,\n slots\n }) {\n let timer;\n let clickable = false;\n const toggleClickable = () => {\n const newValue = props.show && props.forbidClick;\n if (clickable !== newValue) {\n clickable = newValue;\n lockClick(clickable);\n }\n };\n const updateShow = (show) => emit(\"update:show\", show);\n const onClick = () => {\n if (props.closeOnClick) {\n updateShow(false);\n }\n };\n const clearTimer = () => clearTimeout(timer);\n const renderIcon = () => {\n const {\n icon,\n type,\n iconSize,\n iconPrefix,\n loadingType\n } = props;\n const hasIcon = icon || type === \"success\" || type === \"fail\";\n if (hasIcon) {\n return _createVNode(Icon, {\n \"name\": icon || type,\n \"size\": iconSize,\n \"class\": bem(\"icon\"),\n \"classPrefix\": iconPrefix\n }, null);\n }\n if (type === \"loading\") {\n return _createVNode(Loading, {\n \"class\": bem(\"loading\"),\n \"size\": iconSize,\n \"type\": loadingType\n }, null);\n }\n };\n const renderMessage = () => {\n const {\n type,\n message\n } = props;\n if (slots.message) {\n return _createVNode(\"div\", {\n \"class\": bem(\"text\")\n }, [slots.message()]);\n }\n if (isDef(message) && message !== \"\") {\n return type === \"html\" ? _createVNode(\"div\", {\n \"key\": 0,\n \"class\": bem(\"text\"),\n \"innerHTML\": String(message)\n }, null) : _createVNode(\"div\", {\n \"class\": bem(\"text\")\n }, [message]);\n }\n };\n watch(() => [props.show, props.forbidClick], toggleClickable);\n watch(() => [props.show, props.type, props.message, props.duration], () => {\n clearTimer();\n if (props.show && props.duration > 0) {\n timer = setTimeout(() => {\n updateShow(false);\n }, props.duration);\n }\n });\n onMounted(toggleClickable);\n onUnmounted(toggleClickable);\n return () => _createVNode(Popup, _mergeProps({\n \"class\": [bem([props.position, props.wordBreak === \"normal\" ? \"break-normal\" : props.wordBreak, {\n [props.type]: !props.icon\n }]), props.className],\n \"lockScroll\": false,\n \"onClick\": onClick,\n \"onClosed\": clearTimer,\n \"onUpdate:show\": updateShow\n }, pick(props, popupInheritProps)), {\n default: () => [renderIcon(), renderMessage()]\n });\n }\n});\nexport {\n stdin_default as default,\n toastProps\n};\n","import { createApp, reactive } from \"vue\";\nimport { extend } from \"./basic.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nfunction usePopupState() {\n const state = reactive({\n show: false\n });\n const toggle = (show) => {\n state.show = show;\n };\n const open = (props) => {\n extend(state, props, { transitionAppear: true });\n toggle(true);\n };\n const close = () => toggle(false);\n useExpose({ open, close, toggle });\n return {\n open,\n close,\n state,\n toggle\n };\n}\nfunction mountComponent(RootComponent) {\n const app = createApp(RootComponent);\n const root = document.createElement(\"div\");\n document.body.appendChild(root);\n return {\n instance: app.mount(root),\n unmount() {\n app.unmount();\n document.body.removeChild(root);\n }\n };\n}\nexport {\n mountComponent,\n usePopupState\n};\n","import { ref, watch, getCurrentInstance, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { extend, isObject, inBrowser } from \"../utils/index.mjs\";\nimport { mountComponent, usePopupState } from \"../utils/mount-component.mjs\";\nimport VanToast from \"./Toast.mjs\";\nconst defaultOptions = {\n icon: \"\",\n type: \"text\",\n message: \"\",\n className: \"\",\n overlay: false,\n onClose: void 0,\n onOpened: void 0,\n duration: 2e3,\n teleport: \"body\",\n iconSize: void 0,\n iconPrefix: void 0,\n position: \"middle\",\n transition: \"van-fade\",\n forbidClick: false,\n loadingType: void 0,\n overlayClass: \"\",\n overlayStyle: void 0,\n closeOnClick: false,\n closeOnClickOverlay: false\n};\nlet queue = [];\nlet allowMultiple = false;\nlet currentOptions = extend({}, defaultOptions);\nconst defaultOptionsMap = /* @__PURE__ */ new Map();\nfunction parseOptions(message) {\n if (isObject(message)) {\n return message;\n }\n return {\n message\n };\n}\nfunction createInstance() {\n const {\n instance,\n unmount\n } = mountComponent({\n setup() {\n const message = ref(\"\");\n const {\n open,\n state,\n close,\n toggle\n } = usePopupState();\n const onClosed = () => {\n if (allowMultiple) {\n queue = queue.filter((item) => item !== instance);\n unmount();\n }\n };\n const render = () => {\n const attrs = {\n onClosed,\n \"onUpdate:show\": toggle\n };\n return _createVNode(VanToast, _mergeProps(state, attrs), null);\n };\n watch(message, (val) => {\n state.message = val;\n });\n getCurrentInstance().render = render;\n return {\n open,\n close,\n message\n };\n }\n });\n return instance;\n}\nfunction getInstance() {\n if (!queue.length || allowMultiple) {\n const instance = createInstance();\n queue.push(instance);\n }\n return queue[queue.length - 1];\n}\nfunction showToast(options = {}) {\n if (!inBrowser) {\n return {};\n }\n const toast = getInstance();\n const parsedOptions = parseOptions(options);\n toast.open(extend({}, currentOptions, defaultOptionsMap.get(parsedOptions.type || currentOptions.type), parsedOptions));\n return toast;\n}\nconst createMethod = (type) => (options) => showToast(extend({\n type\n}, parseOptions(options)));\nconst showLoadingToast = createMethod(\"loading\");\nconst showSuccessToast = createMethod(\"success\");\nconst showFailToast = createMethod(\"fail\");\nconst closeToast = (all) => {\n var _a;\n if (queue.length) {\n if (all) {\n queue.forEach((toast) => {\n toast.close();\n });\n queue = [];\n } else if (!allowMultiple) {\n queue[0].close();\n } else {\n (_a = queue.shift()) == null ? void 0 : _a.close();\n }\n }\n};\nfunction setToastDefaultOptions(type, options) {\n if (typeof type === \"string\") {\n defaultOptionsMap.set(type, options);\n } else {\n extend(currentOptions, type);\n }\n}\nconst resetToastDefaultOptions = (type) => {\n if (typeof type === \"string\") {\n defaultOptionsMap.delete(type);\n } else {\n currentOptions = extend({}, defaultOptions);\n defaultOptionsMap.clear();\n }\n};\nconst allowMultipleToast = (value = true) => {\n allowMultiple = value;\n};\nexport {\n allowMultipleToast,\n closeToast,\n resetToastDefaultOptions,\n setToastDefaultOptions,\n showFailToast,\n showLoadingToast,\n showSuccessToast,\n showToast\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Toast from \"./Toast.mjs\";\nconst Toast = withInstall(_Toast);\nvar stdin_default = Toast;\nimport { toastProps } from \"./Toast.mjs\";\nimport {\n showToast,\n closeToast,\n showFailToast,\n showLoadingToast,\n showSuccessToast,\n allowMultipleToast,\n setToastDefaultOptions,\n resetToastDefaultOptions\n} from \"./function-call.mjs\";\nexport {\n Toast,\n allowMultipleToast,\n closeToast,\n stdin_default as default,\n resetToastDefaultOptions,\n setToastDefaultOptions,\n showFailToast,\n showLoadingToast,\n showSuccessToast,\n showToast,\n toastProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { addUnit, numericProp, unknownProp, createNamespace } from \"../utils/index.mjs\";\nimport { useCustomFieldValue } from \"@vant/use\";\nimport { Loading } from \"../loading/index.mjs\";\nconst [name, bem] = createNamespace(\"switch\");\nconst switchProps = {\n size: numericProp,\n loading: Boolean,\n disabled: Boolean,\n modelValue: unknownProp,\n activeColor: String,\n inactiveColor: String,\n activeValue: {\n type: unknownProp,\n default: true\n },\n inactiveValue: {\n type: unknownProp,\n default: false\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: switchProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const isChecked = () => props.modelValue === props.activeValue;\n const onClick = () => {\n if (!props.disabled && !props.loading) {\n const newValue = isChecked() ? props.inactiveValue : props.activeValue;\n emit(\"update:modelValue\", newValue);\n emit(\"change\", newValue);\n }\n };\n const renderLoading = () => {\n if (props.loading) {\n const color = isChecked() ? props.activeColor : props.inactiveColor;\n return _createVNode(Loading, {\n \"class\": bem(\"loading\"),\n \"color\": color\n }, null);\n }\n if (slots.node) {\n return slots.node();\n }\n };\n useCustomFieldValue(() => props.modelValue);\n return () => {\n var _a;\n const {\n size,\n loading,\n disabled,\n activeColor,\n inactiveColor\n } = props;\n const checked = isChecked();\n const style = {\n fontSize: addUnit(size),\n backgroundColor: checked ? activeColor : inactiveColor\n };\n return _createVNode(\"div\", {\n \"role\": \"switch\",\n \"class\": bem({\n on: checked,\n loading,\n disabled\n }),\n \"style\": style,\n \"tabindex\": disabled ? void 0 : 0,\n \"aria-checked\": checked,\n \"onClick\": onClick\n }, [_createVNode(\"div\", {\n \"class\": bem(\"node\")\n }, [renderLoading()]), (_a = slots.background) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n stdin_default as default,\n switchProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Switch from \"./Switch.mjs\";\nconst Switch = withInstall(_Switch);\nvar stdin_default = Switch;\nimport { switchProps } from \"./Switch.mjs\";\nexport {\n Switch,\n stdin_default as default,\n switchProps\n};\n","import { ref, defineComponent, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\nimport { createNamespace, numericProp } from \"../utils/index.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nimport { Field } from \"../field/index.mjs\";\nconst [name, bem] = createNamespace(\"address-edit-detail\");\nconst t = createNamespace(\"address-edit\")[2];\nvar stdin_default = defineComponent({\n name,\n props: {\n show: Boolean,\n rows: numericProp,\n value: String,\n rules: Array,\n focused: Boolean,\n maxlength: numericProp,\n searchResult: Array,\n showSearchResult: Boolean\n },\n emits: [\"blur\", \"focus\", \"input\", \"selectSearch\"],\n setup(props, {\n emit\n }) {\n const field = ref();\n const showSearchResult = () => props.focused && props.searchResult && props.showSearchResult;\n const onSelect = (express) => {\n emit(\"selectSearch\", express);\n emit(\"input\", `${express.address || \"\"} ${express.name || \"\"}`.trim());\n };\n const renderSearchResult = () => {\n if (!showSearchResult()) {\n return;\n }\n const {\n searchResult\n } = props;\n return searchResult.map((express) => _createVNode(Cell, {\n \"clickable\": true,\n \"key\": (express.name || \"\") + (express.address || \"\"),\n \"icon\": \"location-o\",\n \"title\": express.name,\n \"label\": express.address,\n \"class\": bem(\"search-item\"),\n \"border\": false,\n \"onClick\": () => onSelect(express)\n }, null));\n };\n const onBlur = (event) => emit(\"blur\", event);\n const onFocus = (event) => emit(\"focus\", event);\n const onInput = (value) => emit(\"input\", value);\n return () => {\n if (props.show) {\n return _createVNode(_Fragment, null, [_createVNode(Field, {\n \"autosize\": true,\n \"clearable\": true,\n \"ref\": field,\n \"class\": bem(),\n \"rows\": props.rows,\n \"type\": \"textarea\",\n \"rules\": props.rules,\n \"label\": t(\"addressDetail\"),\n \"border\": !showSearchResult(),\n \"maxlength\": props.maxlength,\n \"modelValue\": props.value,\n \"placeholder\": t(\"addressDetail\"),\n \"onBlur\": onBlur,\n \"onFocus\": onFocus,\n \"onUpdate:modelValue\": onInput\n }, null), renderSearchResult()]);\n }\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { ref, watch, computed, nextTick, reactive, defineComponent, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nimport { extend, isObject, isMobile, truthProp, numericProp, makeArrayProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Area } from \"../area/index.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nimport { Form } from \"../form/index.mjs\";\nimport { Field } from \"../field/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nimport { showToast } from \"../toast/index.mjs\";\nimport { Button } from \"../button/index.mjs\";\nimport { Switch } from \"../switch/index.mjs\";\nimport AddressEditDetail from \"./AddressEditDetail.mjs\";\nimport { AREA_EMPTY_CODE } from \"../area/utils.mjs\";\nconst [name, bem, t] = createNamespace(\"address-edit\");\nconst DEFAULT_DATA = {\n name: \"\",\n tel: \"\",\n city: \"\",\n county: \"\",\n province: \"\",\n areaCode: \"\",\n isDefault: false,\n addressDetail: \"\"\n};\nconst addressEditProps = {\n areaList: Object,\n isSaving: Boolean,\n isDeleting: Boolean,\n validator: Function,\n showArea: truthProp,\n showDetail: truthProp,\n showDelete: Boolean,\n disableArea: Boolean,\n searchResult: Array,\n telMaxlength: numericProp,\n showSetDefault: Boolean,\n saveButtonText: String,\n areaPlaceholder: String,\n deleteButtonText: String,\n showSearchResult: Boolean,\n detailRows: makeNumericProp(1),\n detailMaxlength: makeNumericProp(200),\n areaColumnsPlaceholder: makeArrayProp(),\n addressInfo: {\n type: Object,\n default: () => extend({}, DEFAULT_DATA)\n },\n telValidator: {\n type: Function,\n default: isMobile\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: addressEditProps,\n emits: [\"save\", \"focus\", \"change\", \"delete\", \"clickArea\", \"changeArea\", \"changeDetail\", \"selectSearch\", \"changeDefault\"],\n setup(props, {\n emit,\n slots\n }) {\n const areaRef = ref();\n const data = reactive({});\n const showAreaPopup = ref(false);\n const detailFocused = ref(false);\n const areaListLoaded = computed(() => isObject(props.areaList) && Object.keys(props.areaList).length);\n const areaText = computed(() => {\n const {\n province,\n city,\n county,\n areaCode\n } = data;\n if (areaCode) {\n const arr = [province, city, county];\n if (province && province === city) {\n arr.splice(1, 1);\n }\n return arr.filter(Boolean).join(\"/\");\n }\n return \"\";\n });\n const hideBottomFields = computed(() => {\n var _a;\n return ((_a = props.searchResult) == null ? void 0 : _a.length) && detailFocused.value;\n });\n const onFocus = (key) => {\n detailFocused.value = key === \"addressDetail\";\n emit(\"focus\", key);\n };\n const onChange = (key, value) => {\n emit(\"change\", {\n key,\n value\n });\n };\n const rules = computed(() => {\n const {\n validator,\n telValidator\n } = props;\n const makeRule = (name2, emptyMessage) => ({\n validator: (value) => {\n if (validator) {\n const message = validator(name2, value);\n if (message) {\n return message;\n }\n }\n if (!value) {\n return emptyMessage;\n }\n return true;\n }\n });\n return {\n name: [makeRule(\"name\", t(\"nameEmpty\"))],\n tel: [makeRule(\"tel\", t(\"telInvalid\")), {\n validator: telValidator,\n message: t(\"telInvalid\")\n }],\n areaCode: [makeRule(\"areaCode\", t(\"areaEmpty\"))],\n addressDetail: [makeRule(\"addressDetail\", t(\"addressEmpty\"))]\n };\n });\n const onSave = () => emit(\"save\", data);\n const onChangeDetail = (val) => {\n data.addressDetail = val;\n emit(\"changeDetail\", val);\n };\n const assignAreaText = (options) => {\n data.province = options[0].text;\n data.city = options[1].text;\n data.county = options[2].text;\n };\n const onAreaConfirm = ({\n selectedValues,\n selectedOptions\n }) => {\n if (selectedValues.some((value) => value === AREA_EMPTY_CODE)) {\n showToast(t(\"areaEmpty\"));\n } else {\n showAreaPopup.value = false;\n assignAreaText(selectedOptions);\n emit(\"changeArea\", selectedOptions);\n }\n };\n const onDelete = () => emit(\"delete\", data);\n const setAreaCode = (code) => {\n data.areaCode = code || \"\";\n };\n const onDetailBlur = () => {\n setTimeout(() => {\n detailFocused.value = false;\n });\n };\n const setAddressDetail = (value) => {\n data.addressDetail = value;\n };\n const renderSetDefaultCell = () => {\n if (props.showSetDefault) {\n const slots2 = {\n \"right-icon\": () => _createVNode(Switch, {\n \"modelValue\": data.isDefault,\n \"onUpdate:modelValue\": ($event) => data.isDefault = $event,\n \"onChange\": (event) => emit(\"changeDefault\", event)\n }, null)\n };\n return _withDirectives(_createVNode(Cell, {\n \"center\": true,\n \"border\": false,\n \"title\": t(\"defaultAddress\"),\n \"class\": bem(\"default\")\n }, slots2), [[_vShow, !hideBottomFields.value]]);\n }\n };\n useExpose({\n setAreaCode,\n setAddressDetail\n });\n watch(() => props.addressInfo, (value) => {\n extend(data, DEFAULT_DATA, value);\n nextTick(() => {\n var _a;\n const options = (_a = areaRef.value) == null ? void 0 : _a.getSelectedOptions();\n if (options && options.every((option) => option && option.value !== AREA_EMPTY_CODE)) {\n assignAreaText(options);\n }\n });\n }, {\n deep: true,\n immediate: true\n });\n return () => {\n const {\n disableArea\n } = props;\n return _createVNode(Form, {\n \"class\": bem(),\n \"onSubmit\": onSave\n }, {\n default: () => {\n var _a;\n return [_createVNode(\"div\", {\n \"class\": bem(\"fields\")\n }, [_createVNode(Field, {\n \"modelValue\": data.name,\n \"onUpdate:modelValue\": [($event) => data.name = $event, (val) => onChange(\"name\", val)],\n \"clearable\": true,\n \"label\": t(\"name\"),\n \"rules\": rules.value.name,\n \"placeholder\": t(\"name\"),\n \"onFocus\": () => onFocus(\"name\")\n }, null), _createVNode(Field, {\n \"modelValue\": data.tel,\n \"onUpdate:modelValue\": [($event) => data.tel = $event, (val) => onChange(\"tel\", val)],\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t(\"tel\"),\n \"rules\": rules.value.tel,\n \"maxlength\": props.telMaxlength,\n \"placeholder\": t(\"tel\"),\n \"onFocus\": () => onFocus(\"tel\")\n }, null), _withDirectives(_createVNode(Field, {\n \"readonly\": true,\n \"label\": t(\"area\"),\n \"is-link\": !disableArea,\n \"modelValue\": areaText.value,\n \"rules\": props.showArea ? rules.value.areaCode : void 0,\n \"placeholder\": props.areaPlaceholder || t(\"area\"),\n \"onFocus\": () => onFocus(\"areaCode\"),\n \"onClick\": () => {\n emit(\"clickArea\");\n showAreaPopup.value = !disableArea;\n }\n }, null), [[_vShow, props.showArea]]), _createVNode(AddressEditDetail, {\n \"show\": props.showDetail,\n \"rows\": props.detailRows,\n \"rules\": rules.value.addressDetail,\n \"value\": data.addressDetail,\n \"focused\": detailFocused.value,\n \"maxlength\": props.detailMaxlength,\n \"searchResult\": props.searchResult,\n \"showSearchResult\": props.showSearchResult,\n \"onBlur\": onDetailBlur,\n \"onFocus\": () => onFocus(\"addressDetail\"),\n \"onInput\": onChangeDetail,\n \"onSelectSearch\": (event) => emit(\"selectSearch\", event)\n }, null), (_a = slots.default) == null ? void 0 : _a.call(slots)]), renderSetDefaultCell(), _withDirectives(_createVNode(\"div\", {\n \"class\": bem(\"buttons\")\n }, [_createVNode(Button, {\n \"block\": true,\n \"round\": true,\n \"type\": \"primary\",\n \"text\": props.saveButtonText || t(\"save\"),\n \"class\": bem(\"button\"),\n \"loading\": props.isSaving,\n \"nativeType\": \"submit\"\n }, null), props.showDelete && _createVNode(Button, {\n \"block\": true,\n \"round\": true,\n \"class\": bem(\"button\"),\n \"loading\": props.isDeleting,\n \"text\": props.deleteButtonText || t(\"delete\"),\n \"onClick\": onDelete\n }, null)]), [[_vShow, !hideBottomFields.value]]), _createVNode(Popup, {\n \"show\": showAreaPopup.value,\n \"onUpdate:show\": ($event) => showAreaPopup.value = $event,\n \"round\": true,\n \"teleport\": \"body\",\n \"position\": \"bottom\",\n \"lazyRender\": false\n }, {\n default: () => [_createVNode(Area, {\n \"modelValue\": data.areaCode,\n \"onUpdate:modelValue\": ($event) => data.areaCode = $event,\n \"ref\": areaRef,\n \"loading\": !areaListLoaded.value,\n \"areaList\": props.areaList,\n \"columnsPlaceholder\": props.areaColumnsPlaceholder,\n \"onConfirm\": onAreaConfirm,\n \"onCancel\": () => {\n showAreaPopup.value = false;\n }\n }, null)]\n })];\n }\n });\n };\n }\n});\nexport {\n addressEditProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _AddressEdit from \"./AddressEdit.mjs\";\nconst AddressEdit = withInstall(_AddressEdit);\nvar stdin_default = AddressEdit;\nimport { addressEditProps } from \"./AddressEdit.mjs\";\nexport {\n AddressEdit,\n addressEditProps,\n stdin_default as default\n};\n","import { watch, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { unknownProp, numericProp, createNamespace } from \"../utils/index.mjs\";\nimport { useChildren, useCustomFieldValue } from \"@vant/use\";\nconst [name, bem] = createNamespace(\"radio-group\");\nconst radioGroupProps = {\n shape: String,\n disabled: Boolean,\n iconSize: numericProp,\n direction: String,\n modelValue: unknownProp,\n checkedColor: String\n};\nconst RADIO_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: radioGroupProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n linkChildren\n } = useChildren(RADIO_KEY);\n const updateValue = (value) => emit(\"update:modelValue\", value);\n watch(() => props.modelValue, (value) => emit(\"change\", value));\n linkChildren({\n props,\n updateValue\n });\n useCustomFieldValue(() => props.modelValue);\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": bem([props.direction]),\n \"role\": \"radiogroup\"\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n RADIO_KEY,\n stdin_default as default,\n radioGroupProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _RadioGroup from \"./RadioGroup.mjs\";\nconst RadioGroup = withInstall(_RadioGroup);\nvar stdin_default = RadioGroup;\nimport { radioGroupProps } from \"./RadioGroup.mjs\";\nexport {\n RadioGroup,\n stdin_default as default,\n radioGroupProps\n};\n","import { watch, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { numericProp, makeArrayProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { useChildren, useCustomFieldValue } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"checkbox-group\");\nconst checkboxGroupProps = {\n max: numericProp,\n shape: makeStringProp(\"round\"),\n disabled: Boolean,\n iconSize: numericProp,\n direction: String,\n modelValue: makeArrayProp(),\n checkedColor: String\n};\nconst CHECKBOX_GROUP_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: checkboxGroupProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n children,\n linkChildren\n } = useChildren(CHECKBOX_GROUP_KEY);\n const updateValue = (value) => emit(\"update:modelValue\", value);\n const toggleAll = (options = {}) => {\n if (typeof options === \"boolean\") {\n options = {\n checked: options\n };\n }\n const {\n checked,\n skipDisabled\n } = options;\n const checkedChildren = children.filter((item) => {\n if (!item.props.bindGroup) {\n return false;\n }\n if (item.props.disabled && skipDisabled) {\n return item.checked.value;\n }\n return checked != null ? checked : !item.checked.value;\n });\n const names = checkedChildren.map((item) => item.name);\n updateValue(names);\n };\n watch(() => props.modelValue, (value) => emit(\"change\", value));\n useExpose({\n toggleAll\n });\n useCustomFieldValue(() => props.modelValue);\n linkChildren({\n props,\n updateValue\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": bem([props.direction])\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n CHECKBOX_GROUP_KEY,\n checkboxGroupProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _CheckboxGroup from \"./CheckboxGroup.mjs\";\nconst CheckboxGroup = withInstall(_CheckboxGroup);\nvar stdin_default = CheckboxGroup;\nimport { checkboxGroupProps } from \"./CheckboxGroup.mjs\";\nexport {\n CheckboxGroup,\n checkboxGroupProps,\n stdin_default as default\n};\n","import { Transition, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, makeStringProp, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"tag\");\nconst tagProps = {\n size: String,\n mark: Boolean,\n show: truthProp,\n type: makeStringProp(\"default\"),\n color: String,\n plain: Boolean,\n round: Boolean,\n textColor: String,\n closeable: Boolean\n};\nvar stdin_default = defineComponent({\n name,\n props: tagProps,\n emits: [\"close\"],\n setup(props, {\n slots,\n emit\n }) {\n const onClose = (event) => {\n event.stopPropagation();\n emit(\"close\", event);\n };\n const getStyle = () => {\n if (props.plain) {\n return {\n color: props.textColor || props.color,\n borderColor: props.color\n };\n }\n return {\n color: props.textColor,\n background: props.color\n };\n };\n const renderTag = () => {\n var _a;\n const {\n type,\n mark,\n plain,\n round,\n size,\n closeable\n } = props;\n const classes = {\n mark,\n plain,\n round\n };\n if (size) {\n classes[size] = size;\n }\n const CloseIcon = closeable && _createVNode(Icon, {\n \"name\": \"cross\",\n \"class\": [bem(\"close\"), HAPTICS_FEEDBACK],\n \"onClick\": onClose\n }, null);\n return _createVNode(\"span\", {\n \"style\": getStyle(),\n \"class\": bem([classes, type])\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots), CloseIcon]);\n };\n return () => _createVNode(Transition, {\n \"name\": props.closeable ? \"van-fade\" : void 0\n }, {\n default: () => [props.show ? renderTag() : null]\n });\n }\n});\nexport {\n stdin_default as default,\n tagProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Tag from \"./Tag.mjs\";\nconst Tag = withInstall(_Tag);\nvar stdin_default = Tag;\nimport { tagProps } from \"./Tag.mjs\";\nexport {\n Tag,\n stdin_default as default,\n tagProps\n};\n","import { ref, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, addUnit, truthProp, numericProp, unknownProp, makeRequiredProp } from \"../utils/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst checkerProps = {\n name: unknownProp,\n disabled: Boolean,\n iconSize: numericProp,\n modelValue: unknownProp,\n checkedColor: String,\n labelPosition: String,\n labelDisabled: Boolean\n};\nvar stdin_default = defineComponent({\n props: extend({}, checkerProps, {\n bem: makeRequiredProp(Function),\n role: String,\n shape: String,\n parent: Object,\n checked: Boolean,\n bindGroup: truthProp,\n indeterminate: {\n type: Boolean,\n default: null\n }\n }),\n emits: [\"click\", \"toggle\"],\n setup(props, {\n emit,\n slots\n }) {\n const iconRef = ref();\n const getParentProp = (name) => {\n if (props.parent && props.bindGroup) {\n return props.parent.props[name];\n }\n };\n const disabled = computed(() => {\n if (props.parent && props.bindGroup) {\n const disabled2 = getParentProp(\"disabled\") || props.disabled;\n if (props.role === \"checkbox\") {\n const checkedCount = getParentProp(\"modelValue\").length;\n const max = getParentProp(\"max\");\n const overlimit = max && checkedCount >= +max;\n return disabled2 || overlimit && !props.checked;\n }\n return disabled2;\n }\n return props.disabled;\n });\n const direction = computed(() => getParentProp(\"direction\"));\n const iconStyle = computed(() => {\n const checkedColor = props.checkedColor || getParentProp(\"checkedColor\");\n if (checkedColor && (props.checked || props.indeterminate) && !disabled.value) {\n return {\n borderColor: checkedColor,\n backgroundColor: checkedColor\n };\n }\n });\n const shape = computed(() => {\n return props.shape || getParentProp(\"shape\") || \"round\";\n });\n const onClick = (event) => {\n const {\n target\n } = event;\n const icon = iconRef.value;\n const iconClicked = icon === target || (icon == null ? void 0 : icon.contains(target));\n if (!disabled.value && (iconClicked || !props.labelDisabled)) {\n emit(\"toggle\");\n }\n emit(\"click\", event);\n };\n const renderIcon = () => {\n var _a, _b;\n const {\n bem,\n checked,\n indeterminate\n } = props;\n const iconSize = props.iconSize || getParentProp(\"iconSize\");\n return _createVNode(\"div\", {\n \"ref\": iconRef,\n \"class\": bem(\"icon\", [shape.value, {\n disabled: disabled.value,\n checked,\n indeterminate\n }]),\n \"style\": shape.value !== \"dot\" ? {\n fontSize: addUnit(iconSize)\n } : {\n width: addUnit(iconSize),\n height: addUnit(iconSize),\n borderColor: (_a = iconStyle.value) == null ? void 0 : _a.borderColor\n }\n }, [slots.icon ? slots.icon({\n checked,\n disabled: disabled.value\n }) : shape.value !== \"dot\" ? _createVNode(Icon, {\n \"name\": indeterminate ? \"minus\" : \"success\",\n \"style\": iconStyle.value\n }, null) : _createVNode(\"div\", {\n \"class\": bem(\"icon--dot__icon\"),\n \"style\": {\n backgroundColor: (_b = iconStyle.value) == null ? void 0 : _b.backgroundColor\n }\n }, null)]);\n };\n const renderLabel = () => {\n const {\n checked\n } = props;\n if (slots.default) {\n return _createVNode(\"span\", {\n \"class\": props.bem(\"label\", [props.labelPosition, {\n disabled: disabled.value\n }])\n }, [slots.default({\n checked,\n disabled: disabled.value\n })]);\n }\n };\n return () => {\n const nodes = props.labelPosition === \"left\" ? [renderLabel(), renderIcon()] : [renderIcon(), renderLabel()];\n return _createVNode(\"div\", {\n \"role\": props.role,\n \"class\": props.bem([{\n disabled: disabled.value,\n \"label-disabled\": props.labelDisabled\n }, direction.value]),\n \"tabindex\": disabled.value ? void 0 : 0,\n \"aria-checked\": props.checked,\n \"onClick\": onClick\n }, [nodes]);\n };\n }\n});\nexport {\n checkerProps,\n stdin_default as default\n};\n","import { defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { pick, extend, createNamespace } from \"../utils/index.mjs\";\nimport { RADIO_KEY } from \"../radio-group/RadioGroup.mjs\";\nimport { useParent } from \"@vant/use\";\nimport Checker, { checkerProps } from \"../checkbox/Checker.mjs\";\nconst radioProps = extend({}, checkerProps, {\n shape: String\n});\nconst [name, bem] = createNamespace(\"radio\");\nvar stdin_default = defineComponent({\n name,\n props: radioProps,\n emits: [\"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n parent\n } = useParent(RADIO_KEY);\n const checked = () => {\n const value = parent ? parent.props.modelValue : props.modelValue;\n return value === props.name;\n };\n const toggle = () => {\n if (parent) {\n parent.updateValue(props.name);\n } else {\n emit(\"update:modelValue\", props.name);\n }\n };\n return () => _createVNode(Checker, _mergeProps({\n \"bem\": bem,\n \"role\": \"radio\",\n \"parent\": parent,\n \"checked\": checked(),\n \"onToggle\": toggle\n }, props), pick(slots, [\"default\", \"icon\"]));\n }\n});\nexport {\n stdin_default as default,\n radioProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Radio from \"./Radio.mjs\";\nconst Radio = withInstall(_Radio);\nvar stdin_default = Radio;\nimport { radioProps } from \"./Radio.mjs\";\nexport {\n Radio,\n stdin_default as default,\n radioProps\n};\n","import { watch, computed, defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { pick, extend, truthProp, createNamespace } from \"../utils/index.mjs\";\nimport { CHECKBOX_GROUP_KEY } from \"../checkbox-group/CheckboxGroup.mjs\";\nimport { useParent, useCustomFieldValue } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport Checker, { checkerProps } from \"./Checker.mjs\";\nconst [name, bem] = createNamespace(\"checkbox\");\nconst checkboxProps = extend({}, checkerProps, {\n shape: String,\n bindGroup: truthProp,\n indeterminate: {\n type: Boolean,\n default: null\n }\n});\nvar stdin_default = defineComponent({\n name,\n props: checkboxProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n parent\n } = useParent(CHECKBOX_GROUP_KEY);\n const setParentValue = (checked2) => {\n const {\n name: name2\n } = props;\n const {\n max,\n modelValue\n } = parent.props;\n const value = modelValue.slice();\n if (checked2) {\n const overlimit = max && value.length >= +max;\n if (!overlimit && !value.includes(name2)) {\n value.push(name2);\n if (props.bindGroup) {\n parent.updateValue(value);\n }\n }\n } else {\n const index = value.indexOf(name2);\n if (index !== -1) {\n value.splice(index, 1);\n if (props.bindGroup) {\n parent.updateValue(value);\n }\n }\n }\n };\n const checked = computed(() => {\n if (parent && props.bindGroup) {\n return parent.props.modelValue.indexOf(props.name) !== -1;\n }\n return !!props.modelValue;\n });\n const toggle = (newValue = !checked.value) => {\n if (parent && props.bindGroup) {\n setParentValue(newValue);\n } else {\n emit(\"update:modelValue\", newValue);\n }\n if (props.indeterminate !== null) emit(\"change\", newValue);\n };\n watch(() => props.modelValue, (value) => {\n if (props.indeterminate === null) emit(\"change\", value);\n });\n useExpose({\n toggle,\n props,\n checked\n });\n useCustomFieldValue(() => props.modelValue);\n return () => _createVNode(Checker, _mergeProps({\n \"bem\": bem,\n \"role\": \"checkbox\",\n \"parent\": parent,\n \"checked\": checked.value,\n \"onToggle\": toggle\n }, props), pick(slots, [\"default\", \"icon\"]));\n }\n});\nexport {\n checkboxProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Checkbox from \"./Checkbox.mjs\";\nconst Checkbox = withInstall(_Checkbox);\nvar stdin_default = Checkbox;\nimport { checkboxProps } from \"./Checkbox.mjs\";\nexport {\n Checkbox,\n checkboxProps,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, createNamespace, makeRequiredProp, makeStringProp } from \"../utils/index.mjs\";\nimport { Tag } from \"../tag/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nimport { Radio } from \"../radio/index.mjs\";\nimport { Checkbox } from \"../checkbox/index.mjs\";\nconst [name, bem] = createNamespace(\"address-item\");\nvar stdin_default = defineComponent({\n name,\n props: {\n address: makeRequiredProp(Object),\n disabled: Boolean,\n switchable: Boolean,\n singleChoice: Boolean,\n defaultTagText: String,\n rightIcon: makeStringProp(\"edit\")\n },\n emits: [\"edit\", \"click\", \"select\"],\n setup(props, {\n slots,\n emit\n }) {\n const onClick = (event) => {\n if (props.switchable) {\n emit(\"select\");\n }\n emit(\"click\", event);\n };\n const renderRightIcon = () => _createVNode(Icon, {\n \"name\": props.rightIcon,\n \"class\": bem(\"edit\"),\n \"onClick\": (event) => {\n event.stopPropagation();\n emit(\"edit\");\n emit(\"click\", event);\n }\n }, null);\n const renderTag = () => {\n if (slots.tag) {\n return slots.tag(props.address);\n }\n if (props.address.isDefault && props.defaultTagText) {\n return _createVNode(Tag, {\n \"type\": \"primary\",\n \"round\": true,\n \"class\": bem(\"tag\")\n }, {\n default: () => [props.defaultTagText]\n });\n }\n };\n const renderContent = () => {\n const {\n address,\n disabled,\n switchable,\n singleChoice\n } = props;\n const Info = [_createVNode(\"div\", {\n \"class\": bem(\"name\")\n }, [`${address.name} ${address.tel}`, renderTag()]), _createVNode(\"div\", {\n \"class\": bem(\"address\")\n }, [address.address])];\n if (switchable && !disabled) {\n if (singleChoice) {\n return _createVNode(Radio, {\n \"name\": address.id,\n \"iconSize\": 18\n }, {\n default: () => [Info]\n });\n } else {\n return _createVNode(Checkbox, {\n \"name\": address.id,\n \"iconSize\": 18\n }, {\n default: () => [Info]\n });\n }\n }\n return Info;\n };\n return () => {\n var _a;\n const {\n disabled\n } = props;\n return _createVNode(\"div\", {\n \"class\": bem({\n disabled\n }),\n \"onClick\": onClick\n }, [_createVNode(Cell, {\n \"border\": false,\n \"titleClass\": bem(\"title\")\n }, {\n title: renderContent,\n \"right-icon\": renderRightIcon\n }), (_a = slots.bottom) == null ? void 0 : _a.call(slots, extend({}, props.address, {\n disabled\n }))]);\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { defineComponent, computed, createVNode as _createVNode } from \"vue\";\nimport { truthProp, numericProp, makeArrayProp, createNamespace, makeStringProp } from \"../utils/index.mjs\";\nimport { Button } from \"../button/index.mjs\";\nimport { RadioGroup } from \"../radio-group/index.mjs\";\nimport { CheckboxGroup } from \"../checkbox-group/index.mjs\";\nimport AddressListItem from \"./AddressListItem.mjs\";\nconst [name, bem, t] = createNamespace(\"address-list\");\nconst addressListProps = {\n list: makeArrayProp(),\n modelValue: [...numericProp, Array],\n switchable: truthProp,\n disabledText: String,\n disabledList: makeArrayProp(),\n showAddButton: truthProp,\n addButtonText: String,\n defaultTagText: String,\n rightIcon: makeStringProp(\"edit\")\n};\nvar stdin_default = defineComponent({\n name,\n props: addressListProps,\n emits: [\"add\", \"edit\", \"select\", \"clickItem\", \"editDisabled\", \"selectDisabled\", \"update:modelValue\"],\n setup(props, {\n slots,\n emit\n }) {\n const singleChoice = computed(() => !Array.isArray(props.modelValue));\n const renderItem = (item, index, disabled) => {\n const onEdit = () => emit(disabled ? \"editDisabled\" : \"edit\", item, index);\n const onClick = (event) => emit(\"clickItem\", item, index, {\n event\n });\n const onSelect = () => {\n emit(disabled ? \"selectDisabled\" : \"select\", item, index);\n if (!disabled) {\n if (singleChoice.value) {\n emit(\"update:modelValue\", item.id);\n } else {\n const value = props.modelValue;\n if (value.includes(item.id)) {\n emit(\"update:modelValue\", value.filter((id) => id !== item.id));\n } else {\n emit(\"update:modelValue\", [...value, item.id]);\n }\n }\n }\n };\n return _createVNode(AddressListItem, {\n \"key\": item.id,\n \"address\": item,\n \"disabled\": disabled,\n \"switchable\": props.switchable,\n \"singleChoice\": singleChoice.value,\n \"defaultTagText\": props.defaultTagText,\n \"rightIcon\": props.rightIcon,\n \"onEdit\": onEdit,\n \"onClick\": onClick,\n \"onSelect\": onSelect\n }, {\n bottom: slots[\"item-bottom\"],\n tag: slots.tag\n });\n };\n const renderList = (list, disabled) => {\n if (list) {\n return list.map((item, index) => renderItem(item, index, disabled));\n }\n };\n const renderBottom = () => props.showAddButton ? _createVNode(\"div\", {\n \"class\": [bem(\"bottom\"), \"van-safe-area-bottom\"]\n }, [_createVNode(Button, {\n \"round\": true,\n \"block\": true,\n \"type\": \"primary\",\n \"text\": props.addButtonText || t(\"add\"),\n \"class\": bem(\"add\"),\n \"onClick\": () => emit(\"add\")\n }, null)]) : void 0;\n return () => {\n var _a, _b;\n const List = renderList(props.list);\n const DisabledList = renderList(props.disabledList, true);\n const DisabledText = props.disabledText && _createVNode(\"div\", {\n \"class\": bem(\"disabled-text\")\n }, [props.disabledText]);\n return _createVNode(\"div\", {\n \"class\": bem()\n }, [(_a = slots.top) == null ? void 0 : _a.call(slots), !singleChoice.value && Array.isArray(props.modelValue) ? _createVNode(CheckboxGroup, {\n \"modelValue\": props.modelValue\n }, {\n default: () => [List]\n }) : _createVNode(RadioGroup, {\n \"modelValue\": props.modelValue\n }, {\n default: () => [List]\n }), DisabledText, DisabledList, (_b = slots.default) == null ? void 0 : _b.call(slots), renderBottom()]);\n };\n }\n});\nexport {\n addressListProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _AddressList from \"./AddressList.mjs\";\nconst AddressList = withInstall(_AddressList);\nvar stdin_default = AddressList;\nimport { addressListProps } from \"./AddressList.mjs\";\nexport {\n AddressList,\n addressListProps,\n stdin_default as default\n};\n","import { ref, watch, computed, Teleport, nextTick, onMounted, defineComponent, onDeactivated, onActivated, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { extend, addUnit, inBrowser, numericProp, getScrollTop, getZIndexStyle, createNamespace, makeNumericProp } from \"../utils/index.mjs\";\nimport { throttle } from \"../lazyload/vue-lazyload/util.mjs\";\nimport { useEventListener, getScrollParent } from \"@vant/use\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"back-top\");\nconst backTopProps = {\n right: numericProp,\n bottom: numericProp,\n zIndex: numericProp,\n target: [String, Object],\n offset: makeNumericProp(200),\n immediate: Boolean,\n teleport: {\n type: [String, Object],\n default: \"body\"\n }\n};\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: backTopProps,\n emits: [\"click\"],\n setup(props, {\n emit,\n slots,\n attrs\n }) {\n let shouldReshow = false;\n const show = ref(false);\n const root = ref();\n const scrollParent = ref();\n const style = computed(() => extend(getZIndexStyle(props.zIndex), {\n right: addUnit(props.right),\n bottom: addUnit(props.bottom)\n }));\n const onClick = (event) => {\n var _a;\n emit(\"click\", event);\n (_a = scrollParent.value) == null ? void 0 : _a.scrollTo({\n top: 0,\n behavior: props.immediate ? \"auto\" : \"smooth\"\n });\n };\n const scroll = () => {\n show.value = scrollParent.value ? getScrollTop(scrollParent.value) >= +props.offset : false;\n };\n const getTarget = () => {\n const {\n target\n } = props;\n if (typeof target === \"string\") {\n const el = document.querySelector(target);\n if (el) {\n return el;\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.error(`[Vant] BackTop: target element \"${target}\" was not found, the BackTop component will not be rendered.`);\n }\n } else {\n return target;\n }\n };\n const updateTarget = () => {\n if (inBrowser) {\n nextTick(() => {\n scrollParent.value = props.target ? getTarget() : getScrollParent(root.value);\n scroll();\n });\n }\n };\n useEventListener(\"scroll\", throttle(scroll, 100), {\n target: scrollParent\n });\n onMounted(updateTarget);\n onActivated(() => {\n if (shouldReshow) {\n show.value = true;\n shouldReshow = false;\n }\n });\n onDeactivated(() => {\n if (show.value && props.teleport) {\n show.value = false;\n shouldReshow = true;\n }\n });\n watch(() => props.target, updateTarget);\n return () => {\n const Content = _createVNode(\"div\", _mergeProps({\n \"ref\": !props.teleport ? root : void 0,\n \"class\": bem({\n active: show.value\n }),\n \"style\": style.value,\n \"onClick\": onClick\n }, attrs), [slots.default ? slots.default() : _createVNode(Icon, {\n \"name\": \"back-top\",\n \"class\": bem(\"icon\")\n }, null)]);\n if (props.teleport) {\n return [_createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem(\"placeholder\")\n }, null), _createVNode(Teleport, {\n \"to\": props.teleport\n }, {\n default: () => [Content]\n })];\n }\n return Content;\n };\n }\n});\nexport {\n backTopProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _BackTop from \"./BackTop.mjs\";\nconst BackTop = withInstall(_BackTop);\nvar stdin_default = BackTop;\nimport { backTopProps } from \"./BackTop.mjs\";\nexport {\n BackTop,\n backTopProps,\n stdin_default as default\n};\n","import { inBrowser } from \"@vant/use\";\nconst hasIntersectionObserver = inBrowser && \"IntersectionObserver\" in window && \"IntersectionObserverEntry\" in window && \"intersectionRatio\" in window.IntersectionObserverEntry.prototype;\nconst modeType = {\n event: \"event\",\n observer: \"observer\"\n};\nfunction remove(arr, item) {\n if (!arr.length) return;\n const index = arr.indexOf(item);\n if (index > -1) return arr.splice(index, 1);\n}\nfunction getBestSelectionFromSrcset(el, scale) {\n if (el.tagName !== \"IMG\" || !el.getAttribute(\"data-srcset\")) return;\n let options = el.getAttribute(\"data-srcset\");\n const container = el.parentNode;\n const containerWidth = container.offsetWidth * scale;\n let spaceIndex;\n let tmpSrc;\n let tmpWidth;\n options = options.trim().split(\",\");\n const result = options.map((item) => {\n item = item.trim();\n spaceIndex = item.lastIndexOf(\" \");\n if (spaceIndex === -1) {\n tmpSrc = item;\n tmpWidth = 999998;\n } else {\n tmpSrc = item.substr(0, spaceIndex);\n tmpWidth = parseInt(\n item.substr(spaceIndex + 1, item.length - spaceIndex - 2),\n 10\n );\n }\n return [tmpWidth, tmpSrc];\n });\n result.sort((a, b) => {\n if (a[0] < b[0]) {\n return 1;\n }\n if (a[0] > b[0]) {\n return -1;\n }\n if (a[0] === b[0]) {\n if (b[1].indexOf(\".webp\", b[1].length - 5) !== -1) {\n return 1;\n }\n if (a[1].indexOf(\".webp\", a[1].length - 5) !== -1) {\n return -1;\n }\n }\n return 0;\n });\n let bestSelectedSrc = \"\";\n let tmpOption;\n for (let i = 0; i < result.length; i++) {\n tmpOption = result[i];\n bestSelectedSrc = tmpOption[1];\n const next = result[i + 1];\n if (next && next[0] < containerWidth) {\n bestSelectedSrc = tmpOption[1];\n break;\n } else if (!next) {\n bestSelectedSrc = tmpOption[1];\n break;\n }\n }\n return bestSelectedSrc;\n}\nconst getDPR = (scale = 1) => inBrowser ? window.devicePixelRatio || scale : scale;\nfunction supportWebp() {\n if (!inBrowser) return false;\n let support = true;\n try {\n const elem = document.createElement(\"canvas\");\n if (elem.getContext && elem.getContext(\"2d\")) {\n support = elem.toDataURL(\"image/webp\").indexOf(\"data:image/webp\") === 0;\n }\n } catch (err) {\n support = false;\n }\n return support;\n}\nfunction throttle(action, delay) {\n let timeout = null;\n let lastRun = 0;\n return function(...args) {\n if (timeout) {\n return;\n }\n const elapsed = Date.now() - lastRun;\n const runCallback = () => {\n lastRun = Date.now();\n timeout = false;\n action.apply(this, args);\n };\n if (elapsed >= delay) {\n runCallback();\n } else {\n timeout = setTimeout(runCallback, delay);\n }\n };\n}\nfunction on(el, type, func) {\n el.addEventListener(type, func, {\n capture: false,\n passive: true\n });\n}\nfunction off(el, type, func) {\n el.removeEventListener(type, func, false);\n}\nconst loadImageAsync = (item, resolve, reject) => {\n const image = new Image();\n if (!item || !item.src) {\n return reject(new Error(\"image src is required\"));\n }\n image.src = item.src;\n if (item.cors) {\n image.crossOrigin = item.cors;\n }\n image.onload = () => resolve({\n naturalHeight: image.naturalHeight,\n naturalWidth: image.naturalWidth,\n src: image.src\n });\n image.onerror = (e) => reject(e);\n};\nclass ImageCache {\n constructor({ max }) {\n this.options = {\n max: max || 100\n };\n this.caches = [];\n }\n has(key) {\n return this.caches.indexOf(key) > -1;\n }\n add(key) {\n if (this.has(key)) return;\n this.caches.push(key);\n if (this.caches.length > this.options.max) {\n this.free();\n }\n }\n free() {\n this.caches.shift();\n }\n}\nexport {\n ImageCache,\n getBestSelectionFromSrcset,\n getDPR,\n hasIntersectionObserver,\n loadImageAsync,\n modeType,\n off,\n on,\n remove,\n supportWebp,\n throttle\n};\n","var __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport { defineComponent, onMounted, ref, nextTick, watch, createVNode as _createVNode } from \"vue\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { createNamespace, makeArrayProp, makeNumberProp, makeNumericProp, truthProp } from \"../utils/index.mjs\";\nconst barrageProps = {\n top: makeNumericProp(10),\n rows: makeNumericProp(4),\n duration: makeNumericProp(4e3),\n autoPlay: truthProp,\n delay: makeNumberProp(300),\n modelValue: makeArrayProp()\n};\nconst [name, bem] = createNamespace(\"barrage\");\nvar stdin_default = defineComponent({\n name,\n props: barrageProps,\n emits: [\"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const barrageWrapper = ref();\n const className = bem(\"item\");\n const total = ref(0);\n const barrageItems = [];\n const createBarrageItem = (text, delay = props.delay) => {\n const item = document.createElement(\"span\");\n item.className = className;\n item.innerText = String(text);\n item.style.animationDuration = `${props.duration}ms`;\n item.style.animationDelay = `${delay}ms`;\n item.style.animationName = \"van-barrage\";\n item.style.animationTimingFunction = \"linear\";\n return item;\n };\n const isInitBarrage = ref(true);\n const isPlay = ref(props.autoPlay);\n const appendBarrageItem = ({\n id,\n text\n }, i) => {\n var _a;\n const item = createBarrageItem(text, isInitBarrage.value ? i * props.delay : void 0);\n if (!props.autoPlay && isPlay.value === false) {\n item.style.animationPlayState = \"paused\";\n }\n (_a = barrageWrapper.value) == null ? void 0 : _a.append(item);\n total.value++;\n const top = (total.value - 1) % +props.rows * item.offsetHeight + +props.top;\n item.style.top = `${top}px`;\n item.dataset.id = String(id);\n barrageItems.push(item);\n item.addEventListener(\"animationend\", () => {\n emit(\"update:modelValue\", [...props.modelValue].filter((v) => String(v.id) !== item.dataset.id));\n });\n };\n const updateBarrages = (newValue, oldValue) => {\n const map = new Map(oldValue.map((item) => [item.id, item]));\n newValue.forEach((item, i) => {\n if (map.has(item.id)) {\n map.delete(item.id);\n } else {\n appendBarrageItem(item, i);\n }\n });\n map.forEach((item) => {\n const index = barrageItems.findIndex((span) => span.dataset.id === String(item.id));\n if (index > -1) {\n barrageItems[index].remove();\n barrageItems.splice(index, 1);\n }\n });\n isInitBarrage.value = false;\n };\n watch(() => props.modelValue.slice(), (newValue, oldValue) => updateBarrages(newValue != null ? newValue : [], oldValue != null ? oldValue : []), {\n deep: true\n });\n const rootStyle = ref({});\n onMounted(() => __async(null, null, function* () {\n var _a;\n rootStyle.value[\"--move-distance\"] = `-${(_a = barrageWrapper.value) == null ? void 0 : _a.offsetWidth}px`;\n yield nextTick();\n updateBarrages(props.modelValue, []);\n }));\n const play = () => {\n isPlay.value = true;\n barrageItems.forEach((item) => {\n item.style.animationPlayState = \"running\";\n });\n };\n const pause = () => {\n isPlay.value = false;\n barrageItems.forEach((item) => {\n item.style.animationPlayState = \"paused\";\n });\n };\n useExpose({\n play,\n pause\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": bem(),\n \"ref\": barrageWrapper,\n \"style\": rootStyle.value\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n barrageProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Barrage from \"./Barrage.mjs\";\nconst Barrage = withInstall(_Barrage);\nvar stdin_default = Barrage;\nimport { barrageProps } from \"./Barrage.mjs\";\nexport {\n Barrage,\n barrageProps,\n stdin_default as default\n};\n","import { createNamespace } from \"../utils/index.mjs\";\nconst [name, bem, t] = createNamespace(\"calendar\");\nconst formatMonthTitle = (date) => t(\"monthTitle\", date.getFullYear(), date.getMonth() + 1);\nfunction compareMonth(date1, date2) {\n const year1 = date1.getFullYear();\n const year2 = date2.getFullYear();\n if (year1 === year2) {\n const month1 = date1.getMonth();\n const month2 = date2.getMonth();\n return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;\n }\n return year1 > year2 ? 1 : -1;\n}\nfunction compareDay(day1, day2) {\n const compareMonthResult = compareMonth(day1, day2);\n if (compareMonthResult === 0) {\n const date1 = day1.getDate();\n const date2 = day2.getDate();\n return date1 === date2 ? 0 : date1 > date2 ? 1 : -1;\n }\n return compareMonthResult;\n}\nconst cloneDate = (date) => new Date(date);\nconst cloneDates = (dates) => Array.isArray(dates) ? dates.map(cloneDate) : cloneDate(dates);\nfunction getDayByOffset(date, offset) {\n const cloned = cloneDate(date);\n cloned.setDate(cloned.getDate() + offset);\n return cloned;\n}\nfunction getMonthByOffset(date, offset) {\n const cloned = cloneDate(date);\n cloned.setMonth(cloned.getMonth() + offset);\n if (cloned.getDate() !== date.getDate()) {\n cloned.setDate(0);\n }\n return cloned;\n}\nfunction getYearByOffset(date, offset) {\n const cloned = cloneDate(date);\n cloned.setFullYear(cloned.getFullYear() + offset);\n if (cloned.getDate() !== date.getDate()) {\n cloned.setDate(0);\n }\n return cloned;\n}\nconst getPrevDay = (date) => getDayByOffset(date, -1);\nconst getNextDay = (date) => getDayByOffset(date, 1);\nconst getPrevMonth = (date) => getMonthByOffset(date, -1);\nconst getNextMonth = (date) => getMonthByOffset(date, 1);\nconst getPrevYear = (date) => getYearByOffset(date, -1);\nconst getNextYear = (date) => getYearByOffset(date, 1);\nconst getToday = () => {\n const today = /* @__PURE__ */ new Date();\n today.setHours(0, 0, 0, 0);\n return today;\n};\nfunction calcDateNum(date) {\n const day1 = date[0].getTime();\n const day2 = date[1].getTime();\n return (day2 - day1) / (1e3 * 60 * 60 * 24) + 1;\n}\nfunction isLastRowInMonth(date, offset = 0) {\n const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n const currentPos = offset + date.getDate() - 1;\n const lastDayPos = offset + lastDay.getDate() - 1;\n return Math.floor(currentPos / 7) === Math.floor(lastDayPos / 7);\n}\nexport {\n bem,\n calcDateNum,\n cloneDate,\n cloneDates,\n compareDay,\n compareMonth,\n formatMonthTitle,\n getDayByOffset,\n getMonthByOffset,\n getNextDay,\n getNextMonth,\n getNextYear,\n getPrevDay,\n getPrevMonth,\n getPrevYear,\n getToday,\n getYearByOffset,\n isLastRowInMonth,\n name,\n t\n};\n","import { extend, padZero, makeArrayProp, clamp } from \"../utils/index.mjs\";\nimport { pickerSharedProps } from \"../picker/Picker.mjs\";\nconst sharedProps = extend({}, pickerSharedProps, {\n modelValue: makeArrayProp(),\n filter: Function,\n formatter: {\n type: Function,\n default: (type, option) => option\n }\n});\nconst pickerInheritKeys = Object.keys(pickerSharedProps);\nfunction times(n, iteratee) {\n if (n < 0) {\n return [];\n }\n const result = Array(n);\n let index = -1;\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\nconst getMonthEndDay = (year, month) => 32 - new Date(year, month - 1, 32).getDate();\nconst genOptions = (min, max, type, formatter, filter, values) => {\n const options = times(max - min + 1, (index) => {\n const value = padZero(min + index);\n return formatter(type, {\n text: value,\n value\n });\n });\n return filter ? filter(type, options, values) : options;\n};\nconst formatValueRange = (values, columns) => values.map((value, index) => {\n const column = columns[index];\n if (column.length) {\n const minValue = +column[0].value;\n const maxValue = +column[column.length - 1].value;\n return padZero(clamp(+value, minValue, maxValue));\n }\n return value;\n});\nexport {\n formatValueRange,\n genOptions,\n getMonthEndDay,\n pickerInheritKeys,\n sharedProps,\n times\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { makeNumberProp, createNamespace, makeRequiredProp } from \"../utils/index.mjs\";\nimport { bem, isLastRowInMonth } from \"./utils.mjs\";\nconst [name] = createNamespace(\"calendar-day\");\nvar stdin_default = defineComponent({\n name,\n props: {\n item: makeRequiredProp(Object),\n color: String,\n index: Number,\n offset: makeNumberProp(0),\n rowHeight: String\n },\n emits: [\"click\", \"clickDisabledDate\"],\n setup(props, {\n emit,\n slots\n }) {\n const style = computed(() => {\n const {\n item,\n index,\n color,\n offset,\n rowHeight\n } = props;\n const style2 = {\n height: rowHeight\n };\n if (item.type === \"placeholder\") {\n style2.width = \"100%\";\n return style2;\n }\n if (index === 0) {\n style2.marginLeft = `${100 * offset / 7}%`;\n }\n if (color) {\n switch (item.type) {\n case \"end\":\n case \"start\":\n case \"start-end\":\n case \"multiple-middle\":\n case \"multiple-selected\":\n style2.background = color;\n break;\n case \"middle\":\n style2.color = color;\n break;\n }\n }\n if (item.date && isLastRowInMonth(item.date, offset)) {\n style2.marginBottom = 0;\n }\n return style2;\n });\n const onClick = () => {\n if (props.item.type !== \"disabled\") {\n emit(\"click\", props.item);\n } else {\n emit(\"clickDisabledDate\", props.item);\n }\n };\n const renderTopInfo = () => {\n const {\n topInfo\n } = props.item;\n if (topInfo || slots[\"top-info\"]) {\n return _createVNode(\"div\", {\n \"class\": bem(\"top-info\")\n }, [slots[\"top-info\"] ? slots[\"top-info\"](props.item) : topInfo]);\n }\n };\n const renderBottomInfo = () => {\n const {\n bottomInfo\n } = props.item;\n if (bottomInfo || slots[\"bottom-info\"]) {\n return _createVNode(\"div\", {\n \"class\": bem(\"bottom-info\")\n }, [slots[\"bottom-info\"] ? slots[\"bottom-info\"](props.item) : bottomInfo]);\n }\n };\n const renderText = () => {\n return slots.text ? slots.text(props.item) : props.item.text;\n };\n const renderContent = () => {\n const {\n item,\n color,\n rowHeight\n } = props;\n const {\n type\n } = item;\n const Nodes = [renderTopInfo(), renderText(), renderBottomInfo()];\n if (type === \"selected\") {\n return _createVNode(\"div\", {\n \"class\": bem(\"selected-day\"),\n \"style\": {\n width: rowHeight,\n height: rowHeight,\n background: color\n }\n }, [Nodes]);\n }\n return Nodes;\n };\n return () => {\n const {\n type,\n className\n } = props.item;\n if (type === \"placeholder\") {\n return _createVNode(\"div\", {\n \"class\": bem(\"day\"),\n \"style\": style.value\n }, null);\n }\n return _createVNode(\"div\", {\n \"role\": \"gridcell\",\n \"style\": style.value,\n \"class\": [bem(\"day\", type), className],\n \"tabindex\": type === \"disabled\" ? void 0 : -1,\n \"onClick\": onClick\n }, [renderContent()]);\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { ref, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { pick, addUnit, numericProp, setScrollTop, createNamespace, makeRequiredProp } from \"../utils/index.mjs\";\nimport { getMonthEndDay } from \"../date-picker/utils.mjs\";\nimport { t, bem, compareDay, getPrevDay, getNextDay, formatMonthTitle } from \"./utils.mjs\";\nimport { useRect, useToggle } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { useHeight } from \"../composables/use-height.mjs\";\nimport CalendarDay from \"./CalendarDay.mjs\";\nconst [name] = createNamespace(\"calendar-month\");\nconst calendarMonthProps = {\n date: makeRequiredProp(Date),\n type: String,\n color: String,\n minDate: Date,\n maxDate: Date,\n showMark: Boolean,\n rowHeight: numericProp,\n formatter: Function,\n lazyRender: Boolean,\n currentDate: [Date, Array],\n allowSameDay: Boolean,\n showSubtitle: Boolean,\n showMonthTitle: Boolean,\n firstDayOfWeek: Number\n};\nvar stdin_default = defineComponent({\n name,\n props: calendarMonthProps,\n emits: [\"click\", \"clickDisabledDate\"],\n setup(props, {\n emit,\n slots\n }) {\n const [visible, setVisible] = useToggle();\n const daysRef = ref();\n const monthRef = ref();\n const height = useHeight(monthRef);\n const title = computed(() => formatMonthTitle(props.date));\n const rowHeight = computed(() => addUnit(props.rowHeight));\n const offset = computed(() => {\n const date = props.date.getDate();\n const day = props.date.getDay();\n const realDay = (day - date % 7 + 8) % 7;\n if (props.firstDayOfWeek) {\n return (realDay + 7 - props.firstDayOfWeek) % 7;\n }\n return realDay;\n });\n const totalDay = computed(() => getMonthEndDay(props.date.getFullYear(), props.date.getMonth() + 1));\n const shouldRender = computed(() => visible.value || !props.lazyRender);\n const getTitle = () => title.value;\n const getMultipleDayType = (day) => {\n const isSelected = (date) => props.currentDate.some((item) => compareDay(item, date) === 0);\n if (isSelected(day)) {\n const prevDay = getPrevDay(day);\n const nextDay = getNextDay(day);\n const prevSelected = isSelected(prevDay);\n const nextSelected = isSelected(nextDay);\n if (prevSelected && nextSelected) {\n return \"multiple-middle\";\n }\n if (prevSelected) {\n return \"end\";\n }\n if (nextSelected) {\n return \"start\";\n }\n return \"multiple-selected\";\n }\n return \"\";\n };\n const getRangeDayType = (day) => {\n const [startDay, endDay] = props.currentDate;\n if (!startDay) {\n return \"\";\n }\n const compareToStart = compareDay(day, startDay);\n if (!endDay) {\n return compareToStart === 0 ? \"start\" : \"\";\n }\n const compareToEnd = compareDay(day, endDay);\n if (props.allowSameDay && compareToStart === 0 && compareToEnd === 0) {\n return \"start-end\";\n }\n if (compareToStart === 0) {\n return \"start\";\n }\n if (compareToEnd === 0) {\n return \"end\";\n }\n if (compareToStart > 0 && compareToEnd < 0) {\n return \"middle\";\n }\n return \"\";\n };\n const getDayType = (day) => {\n const {\n type,\n minDate,\n maxDate,\n currentDate\n } = props;\n if (minDate && compareDay(day, minDate) < 0 || maxDate && compareDay(day, maxDate) > 0) {\n return \"disabled\";\n }\n if (currentDate === null) {\n return \"\";\n }\n if (Array.isArray(currentDate)) {\n if (type === \"multiple\") {\n return getMultipleDayType(day);\n }\n if (type === \"range\") {\n return getRangeDayType(day);\n }\n } else if (type === \"single\") {\n return compareDay(day, currentDate) === 0 ? \"selected\" : \"\";\n }\n return \"\";\n };\n const getBottomInfo = (dayType) => {\n if (props.type === \"range\") {\n if (dayType === \"start\" || dayType === \"end\") {\n return t(dayType);\n }\n if (dayType === \"start-end\") {\n return `${t(\"start\")}/${t(\"end\")}`;\n }\n }\n };\n const renderTitle = () => {\n if (props.showMonthTitle) {\n return _createVNode(\"div\", {\n \"class\": bem(\"month-title\")\n }, [slots[\"month-title\"] ? slots[\"month-title\"]({\n date: props.date,\n text: title.value\n }) : title.value]);\n }\n };\n const renderMark = () => {\n if (props.showMark && shouldRender.value) {\n return _createVNode(\"div\", {\n \"class\": bem(\"month-mark\")\n }, [props.date.getMonth() + 1]);\n }\n };\n const placeholders = computed(() => {\n const count = Math.ceil((totalDay.value + offset.value) / 7);\n return Array(count).fill({\n type: \"placeholder\"\n });\n });\n const days = computed(() => {\n const days2 = [];\n const year = props.date.getFullYear();\n const month = props.date.getMonth();\n for (let day = 1; day <= totalDay.value; day++) {\n const date = new Date(year, month, day);\n const type = getDayType(date);\n let config = {\n date,\n type,\n text: day,\n bottomInfo: getBottomInfo(type)\n };\n if (props.formatter) {\n config = props.formatter(config);\n }\n days2.push(config);\n }\n return days2;\n });\n const disabledDays = computed(() => days.value.filter((day) => day.type === \"disabled\"));\n const scrollToDate = (body, targetDate) => {\n if (daysRef.value) {\n const daysRect = useRect(daysRef.value);\n const totalRows = placeholders.value.length;\n const currentRow = Math.ceil((targetDate.getDate() + offset.value) / 7);\n const rowOffset = (currentRow - 1) * daysRect.height / totalRows;\n setScrollTop(body, daysRect.top + rowOffset + body.scrollTop - useRect(body).top);\n }\n };\n const renderDay = (item, index) => _createVNode(CalendarDay, {\n \"item\": item,\n \"index\": index,\n \"color\": props.color,\n \"offset\": offset.value,\n \"rowHeight\": rowHeight.value,\n \"onClick\": (item2) => emit(\"click\", item2),\n \"onClickDisabledDate\": (item2) => emit(\"clickDisabledDate\", item2)\n }, pick(slots, [\"top-info\", \"bottom-info\", \"text\"]));\n const renderDays = () => _createVNode(\"div\", {\n \"ref\": daysRef,\n \"role\": \"grid\",\n \"class\": bem(\"days\")\n }, [renderMark(), (shouldRender.value ? days : placeholders).value.map(renderDay)]);\n useExpose({\n getTitle,\n getHeight: () => height.value,\n setVisible,\n scrollToDate,\n disabledDays\n });\n return () => _createVNode(\"div\", {\n \"class\": bem(\"month\"),\n \"ref\": monthRef\n }, [renderTitle(), renderDays()]);\n }\n});\nexport {\n stdin_default as default\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { createNamespace, HAPTICS_FEEDBACK, makeStringProp } from \"../utils/index.mjs\";\nimport { t, bem, compareMonth, getPrevMonth, getPrevYear, getNextMonth, getNextYear } from \"./utils.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name] = createNamespace(\"calendar-header\");\nvar stdin_default = defineComponent({\n name,\n props: {\n date: Date,\n minDate: Date,\n maxDate: Date,\n title: String,\n subtitle: String,\n showTitle: Boolean,\n showSubtitle: Boolean,\n firstDayOfWeek: Number,\n switchMode: makeStringProp(\"none\")\n },\n emits: [\"clickSubtitle\", \"panelChange\"],\n setup(props, {\n slots,\n emit\n }) {\n const prevMonthDisabled = computed(() => props.date && props.minDate && compareMonth(getPrevMonth(props.date), props.minDate) < 0);\n const prevYearDisabled = computed(() => props.date && props.minDate && compareMonth(getPrevYear(props.date), props.minDate) < 0);\n const nextMonthDisabled = computed(() => props.date && props.maxDate && compareMonth(getNextMonth(props.date), props.maxDate) > 0);\n const nextYearDisabled = computed(() => props.date && props.maxDate && compareMonth(getNextYear(props.date), props.maxDate) > 0);\n const renderTitle = () => {\n if (props.showTitle) {\n const text = props.title || t(\"title\");\n const title = slots.title ? slots.title() : text;\n return _createVNode(\"div\", {\n \"class\": bem(\"header-title\")\n }, [title]);\n }\n };\n const onClickSubtitle = (event) => emit(\"clickSubtitle\", event);\n const onPanelChange = (date) => emit(\"panelChange\", date);\n const renderAction = (isNext) => {\n const showYearAction = props.switchMode === \"year-month\";\n const monthSlot = slots[isNext ? \"next-month\" : \"prev-month\"];\n const yearSlot = slots[isNext ? \"next-year\" : \"prev-year\"];\n const monthDisabled = isNext ? nextMonthDisabled.value : prevMonthDisabled.value;\n const yearDisabled = isNext ? nextYearDisabled.value : prevYearDisabled.value;\n const monthIconName = isNext ? \"arrow\" : \"arrow-left\";\n const yearIconName = isNext ? \"arrow-double-right\" : \"arrow-double-left\";\n const onMonthChange = () => onPanelChange((isNext ? getNextMonth : getPrevMonth)(props.date));\n const onYearChange = () => onPanelChange((isNext ? getNextYear : getPrevYear)(props.date));\n const MonthAction = _createVNode(\"view\", {\n \"class\": bem(\"header-action\", {\n disabled: monthDisabled\n }),\n \"onClick\": monthDisabled ? void 0 : onMonthChange\n }, [monthSlot ? monthSlot({\n disabled: monthDisabled\n }) : _createVNode(Icon, {\n \"class\": {\n [HAPTICS_FEEDBACK]: !monthDisabled\n },\n \"name\": monthIconName\n }, null)]);\n const YearAction = showYearAction && _createVNode(\"view\", {\n \"class\": bem(\"header-action\", {\n disabled: yearDisabled\n }),\n \"onClick\": yearDisabled ? void 0 : onYearChange\n }, [yearSlot ? yearSlot({\n disabled: yearDisabled\n }) : _createVNode(Icon, {\n \"class\": {\n [HAPTICS_FEEDBACK]: !yearDisabled\n },\n \"name\": yearIconName\n }, null)]);\n return isNext ? [MonthAction, YearAction] : [YearAction, MonthAction];\n };\n const renderSubtitle = () => {\n if (props.showSubtitle) {\n const title = slots.subtitle ? slots.subtitle({\n date: props.date,\n text: props.subtitle\n }) : props.subtitle;\n const canSwitch = props.switchMode !== \"none\";\n return _createVNode(\"div\", {\n \"class\": bem(\"header-subtitle\", {\n \"with-switch\": canSwitch\n }),\n \"onClick\": onClickSubtitle\n }, [canSwitch ? [renderAction(), _createVNode(\"div\", {\n \"class\": bem(\"header-subtitle-text\")\n }, [title]), renderAction(true)] : title]);\n }\n };\n const renderWeekDays = () => {\n const {\n firstDayOfWeek\n } = props;\n const weekdays = t(\"weekdays\");\n const renderWeekDays2 = [...weekdays.slice(firstDayOfWeek, 7), ...weekdays.slice(0, firstDayOfWeek)];\n return _createVNode(\"div\", {\n \"class\": bem(\"weekdays\")\n }, [renderWeekDays2.map((text) => _createVNode(\"span\", {\n \"class\": bem(\"weekday\")\n }, [text]))]);\n };\n return () => _createVNode(\"div\", {\n \"class\": bem(\"header\")\n }, [renderTitle(), renderSubtitle(), renderWeekDays()]);\n }\n});\nexport {\n stdin_default as default\n};\n","import { ref, watch, computed, defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { pick, isDate, truthProp, numericProp, getScrollTop, makeStringProp, makeNumericProp } from \"../utils/index.mjs\";\nimport { t, bem, name, getToday, cloneDate, cloneDates, getPrevDay, getNextDay, compareDay, calcDateNum, compareMonth, getDayByOffset, getMonthByOffset } from \"./utils.mjs\";\nimport { raf, useRect, onMountedOrActivated } from \"@vant/use\";\nimport { useRefs } from \"../composables/use-refs.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nimport { Button } from \"../button/index.mjs\";\nimport { showToast } from \"../toast/index.mjs\";\nimport CalendarMonth from \"./CalendarMonth.mjs\";\nimport CalendarHeader from \"./CalendarHeader.mjs\";\nconst calendarProps = {\n show: Boolean,\n type: makeStringProp(\"single\"),\n switchMode: makeStringProp(\"none\"),\n title: String,\n color: String,\n round: truthProp,\n readonly: Boolean,\n poppable: truthProp,\n maxRange: makeNumericProp(null),\n position: makeStringProp(\"bottom\"),\n teleport: [String, Object],\n showMark: truthProp,\n showTitle: truthProp,\n formatter: Function,\n rowHeight: numericProp,\n confirmText: String,\n rangePrompt: String,\n lazyRender: truthProp,\n showConfirm: truthProp,\n defaultDate: [Date, Array],\n allowSameDay: Boolean,\n showSubtitle: truthProp,\n closeOnPopstate: truthProp,\n showRangePrompt: truthProp,\n confirmDisabledText: String,\n closeOnClickOverlay: truthProp,\n safeAreaInsetTop: Boolean,\n safeAreaInsetBottom: truthProp,\n minDate: {\n type: Date,\n validator: isDate\n },\n maxDate: {\n type: Date,\n validator: isDate\n },\n firstDayOfWeek: {\n type: numericProp,\n default: 0,\n validator: (val) => val >= 0 && val <= 6\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: calendarProps,\n emits: [\"select\", \"confirm\", \"unselect\", \"monthShow\", \"overRange\", \"update:show\", \"clickSubtitle\", \"clickDisabledDate\", \"clickOverlay\", \"panelChange\"],\n setup(props, {\n emit,\n slots\n }) {\n const canSwitch = computed(() => props.switchMode !== \"none\");\n const minDate = computed(() => {\n if (!props.minDate && !canSwitch.value) {\n return getToday();\n }\n return props.minDate;\n });\n const maxDate = computed(() => {\n if (!props.maxDate && !canSwitch.value) {\n return getMonthByOffset(getToday(), 6);\n }\n return props.maxDate;\n });\n const limitDateRange = (date, min = minDate.value, max = maxDate.value) => {\n if (min && compareDay(date, min) === -1) {\n return min;\n }\n if (max && compareDay(date, max) === 1) {\n return max;\n }\n return date;\n };\n const getInitialDate = (defaultDate = props.defaultDate) => {\n const {\n type,\n allowSameDay\n } = props;\n if (defaultDate === null) {\n return defaultDate;\n }\n const now = getToday();\n if (type === \"range\") {\n if (!Array.isArray(defaultDate)) {\n defaultDate = [];\n }\n if (defaultDate.length === 1 && compareDay(defaultDate[0], now) === 1) {\n defaultDate = [];\n }\n const min = minDate.value;\n const max = maxDate.value;\n const start = limitDateRange(defaultDate[0] || now, min, max ? allowSameDay ? max : getPrevDay(max) : void 0);\n const end = limitDateRange(defaultDate[1] || (allowSameDay ? now : getNextDay(now)), min ? allowSameDay ? min : getNextDay(min) : void 0);\n return [start, end];\n }\n if (type === \"multiple\") {\n if (Array.isArray(defaultDate)) {\n return defaultDate.map((date) => limitDateRange(date));\n }\n return [limitDateRange(now)];\n }\n if (!defaultDate || Array.isArray(defaultDate)) {\n defaultDate = now;\n }\n return limitDateRange(defaultDate);\n };\n const getInitialPanelDate = () => {\n const date = Array.isArray(currentDate.value) ? currentDate.value[0] : currentDate.value;\n return date ? date : limitDateRange(getToday());\n };\n let bodyHeight;\n const bodyRef = ref();\n const currentDate = ref(getInitialDate());\n const currentPanelDate = ref(getInitialPanelDate());\n const currentMonthRef = ref();\n const [monthRefs, setMonthRefs] = useRefs();\n const dayOffset = computed(() => props.firstDayOfWeek ? +props.firstDayOfWeek % 7 : 0);\n const months = computed(() => {\n const months2 = [];\n if (!minDate.value || !maxDate.value) {\n return months2;\n }\n const cursor = new Date(minDate.value);\n cursor.setDate(1);\n do {\n months2.push(new Date(cursor));\n cursor.setMonth(cursor.getMonth() + 1);\n } while (compareMonth(cursor, maxDate.value) !== 1);\n return months2;\n });\n const buttonDisabled = computed(() => {\n if (currentDate.value) {\n if (props.type === \"range\") {\n return !currentDate.value[0] || !currentDate.value[1];\n }\n if (props.type === \"multiple\") {\n return !currentDate.value.length;\n }\n }\n return !currentDate.value;\n });\n const getSelectedDate = () => currentDate.value;\n const onScroll = () => {\n const top = getScrollTop(bodyRef.value);\n const bottom = top + bodyHeight;\n const heights = months.value.map((item, index) => monthRefs.value[index].getHeight());\n const heightSum = heights.reduce((a, b) => a + b, 0);\n if (bottom > heightSum && top > 0) {\n return;\n }\n let height = 0;\n let currentMonth;\n const visibleRange = [-1, -1];\n for (let i = 0; i < months.value.length; i++) {\n const month = monthRefs.value[i];\n const visible = height <= bottom && height + heights[i] >= top;\n if (visible) {\n visibleRange[1] = i;\n if (!currentMonth) {\n currentMonth = month;\n visibleRange[0] = i;\n }\n if (!monthRefs.value[i].showed) {\n monthRefs.value[i].showed = true;\n emit(\"monthShow\", {\n date: month.date,\n title: month.getTitle()\n });\n }\n }\n height += heights[i];\n }\n months.value.forEach((month, index) => {\n const visible = index >= visibleRange[0] - 1 && index <= visibleRange[1] + 1;\n monthRefs.value[index].setVisible(visible);\n });\n if (currentMonth) {\n currentMonthRef.value = currentMonth;\n }\n };\n const scrollToDate = (targetDate) => {\n if (canSwitch.value) {\n currentPanelDate.value = targetDate;\n } else {\n raf(() => {\n months.value.some((month, index) => {\n if (compareMonth(month, targetDate) === 0) {\n if (bodyRef.value) {\n monthRefs.value[index].scrollToDate(bodyRef.value, targetDate);\n }\n return true;\n }\n return false;\n });\n onScroll();\n });\n }\n };\n const scrollToCurrentDate = () => {\n if (props.poppable && !props.show) {\n return;\n }\n if (currentDate.value) {\n const targetDate = props.type === \"single\" ? currentDate.value : currentDate.value[0];\n if (isDate(targetDate)) {\n scrollToDate(targetDate);\n }\n } else if (!canSwitch.value) {\n raf(onScroll);\n }\n };\n const init = () => {\n if (props.poppable && !props.show) {\n return;\n }\n if (!canSwitch.value) {\n raf(() => {\n bodyHeight = Math.floor(useRect(bodyRef).height);\n });\n }\n scrollToCurrentDate();\n };\n const reset = (date = getInitialDate()) => {\n currentDate.value = date;\n scrollToCurrentDate();\n };\n const checkRange = (date) => {\n const {\n maxRange,\n rangePrompt,\n showRangePrompt\n } = props;\n if (maxRange && calcDateNum(date) > +maxRange) {\n if (showRangePrompt) {\n showToast(rangePrompt || t(\"rangePrompt\", maxRange));\n }\n emit(\"overRange\");\n return false;\n }\n return true;\n };\n const onPanelChange = (date) => {\n currentPanelDate.value = date;\n emit(\"panelChange\", {\n date\n });\n };\n const onConfirm = () => {\n var _a;\n return emit(\"confirm\", (_a = currentDate.value) != null ? _a : cloneDates(currentDate.value));\n };\n const select = (date, complete) => {\n const setCurrentDate = (date2) => {\n currentDate.value = date2;\n emit(\"select\", cloneDates(date2));\n };\n if (complete && props.type === \"range\") {\n const valid = checkRange(date);\n if (!valid) {\n setCurrentDate([date[0], getDayByOffset(date[0], +props.maxRange - 1)]);\n return;\n }\n }\n setCurrentDate(date);\n if (complete && !props.showConfirm) {\n onConfirm();\n }\n };\n const getDisabledDate = (disabledDays2, startDay, date) => {\n var _a;\n return (_a = disabledDays2.find((day) => compareDay(startDay, day.date) === -1 && compareDay(day.date, date) === -1)) == null ? void 0 : _a.date;\n };\n const disabledDays = computed(() => monthRefs.value.reduce((arr, ref2) => {\n var _a, _b;\n arr.push(...(_b = (_a = ref2.disabledDays) == null ? void 0 : _a.value) != null ? _b : []);\n return arr;\n }, []));\n const onClickDay = (item) => {\n if (props.readonly || !item.date) {\n return;\n }\n const {\n date\n } = item;\n const {\n type\n } = props;\n if (type === \"range\") {\n if (!currentDate.value) {\n select([date]);\n return;\n }\n const [startDay, endDay] = currentDate.value;\n if (startDay && !endDay) {\n const compareToStart = compareDay(date, startDay);\n if (compareToStart === 1) {\n const disabledDay = getDisabledDate(disabledDays.value, startDay, date);\n if (disabledDay) {\n const endDay2 = getPrevDay(disabledDay);\n if (compareDay(startDay, endDay2) === -1) {\n select([startDay, endDay2]);\n } else {\n select([date]);\n }\n } else {\n select([startDay, date], true);\n }\n } else if (compareToStart === -1) {\n select([date]);\n } else if (props.allowSameDay) {\n select([date, date], true);\n }\n } else {\n select([date]);\n }\n } else if (type === \"multiple\") {\n if (!currentDate.value) {\n select([date]);\n return;\n }\n const dates = currentDate.value;\n const selectedIndex = dates.findIndex((dateItem) => compareDay(dateItem, date) === 0);\n if (selectedIndex !== -1) {\n const [unselectedDate] = dates.splice(selectedIndex, 1);\n emit(\"unselect\", cloneDate(unselectedDate));\n } else if (props.maxRange && dates.length >= +props.maxRange) {\n showToast(props.rangePrompt || t(\"rangePrompt\", props.maxRange));\n } else {\n select([...dates, date]);\n }\n } else {\n select(date, true);\n }\n };\n const onClickOverlay = (event) => emit(\"clickOverlay\", event);\n const updateShow = (value) => emit(\"update:show\", value);\n const renderMonth = (date, index) => {\n const showMonthTitle = index !== 0 || !props.showSubtitle;\n return _createVNode(CalendarMonth, _mergeProps({\n \"ref\": canSwitch.value ? currentMonthRef : setMonthRefs(index),\n \"date\": date,\n \"currentDate\": currentDate.value,\n \"showMonthTitle\": showMonthTitle,\n \"firstDayOfWeek\": dayOffset.value,\n \"lazyRender\": canSwitch.value ? false : props.lazyRender,\n \"maxDate\": maxDate.value,\n \"minDate\": minDate.value\n }, pick(props, [\"type\", \"color\", \"showMark\", \"formatter\", \"rowHeight\", \"showSubtitle\", \"allowSameDay\"]), {\n \"onClick\": onClickDay,\n \"onClickDisabledDate\": (item) => emit(\"clickDisabledDate\", item)\n }), pick(slots, [\"top-info\", \"bottom-info\", \"month-title\", \"text\"]));\n };\n const renderFooterButton = () => {\n if (slots.footer) {\n return slots.footer();\n }\n if (props.showConfirm) {\n const slot = slots[\"confirm-text\"];\n const disabled = buttonDisabled.value;\n const text = disabled ? props.confirmDisabledText : props.confirmText;\n return _createVNode(Button, {\n \"round\": true,\n \"block\": true,\n \"type\": \"primary\",\n \"color\": props.color,\n \"class\": bem(\"confirm\"),\n \"disabled\": disabled,\n \"nativeType\": \"button\",\n \"onClick\": onConfirm\n }, {\n default: () => [slot ? slot({\n disabled\n }) : text || t(\"confirm\")]\n });\n }\n };\n const renderFooter = () => _createVNode(\"div\", {\n \"class\": [bem(\"footer\"), {\n \"van-safe-area-bottom\": props.safeAreaInsetBottom\n }]\n }, [renderFooterButton()]);\n const renderCalendar = () => {\n var _a, _b;\n return _createVNode(\"div\", {\n \"class\": bem()\n }, [_createVNode(CalendarHeader, {\n \"date\": (_a = currentMonthRef.value) == null ? void 0 : _a.date,\n \"maxDate\": maxDate.value,\n \"minDate\": minDate.value,\n \"title\": props.title,\n \"subtitle\": (_b = currentMonthRef.value) == null ? void 0 : _b.getTitle(),\n \"showTitle\": props.showTitle,\n \"showSubtitle\": props.showSubtitle,\n \"switchMode\": props.switchMode,\n \"firstDayOfWeek\": dayOffset.value,\n \"onClickSubtitle\": (event) => emit(\"clickSubtitle\", event),\n \"onPanelChange\": onPanelChange\n }, pick(slots, [\"title\", \"subtitle\", \"prev-month\", \"prev-year\", \"next-month\", \"next-year\"])), _createVNode(\"div\", {\n \"ref\": bodyRef,\n \"class\": bem(\"body\"),\n \"onScroll\": canSwitch.value ? void 0 : onScroll\n }, [canSwitch.value ? renderMonth(currentPanelDate.value, 0) : months.value.map(renderMonth)]), renderFooter()]);\n };\n watch(() => props.show, init);\n watch(() => [props.type, props.minDate, props.maxDate, props.switchMode], () => reset(getInitialDate(currentDate.value)));\n watch(() => props.defaultDate, (value) => {\n reset(value);\n });\n useExpose({\n reset,\n scrollToDate,\n getSelectedDate\n });\n onMountedOrActivated(init);\n return () => {\n if (props.poppable) {\n return _createVNode(Popup, {\n \"show\": props.show,\n \"class\": bem(\"popup\"),\n \"round\": props.round,\n \"position\": props.position,\n \"closeable\": props.showTitle || props.showSubtitle,\n \"teleport\": props.teleport,\n \"closeOnPopstate\": props.closeOnPopstate,\n \"safeAreaInsetTop\": props.safeAreaInsetTop,\n \"closeOnClickOverlay\": props.closeOnClickOverlay,\n \"onClickOverlay\": onClickOverlay,\n \"onUpdate:show\": updateShow\n }, {\n default: renderCalendar\n });\n }\n return renderCalendar();\n };\n }\n});\nexport {\n calendarProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Calendar from \"./Calendar.mjs\";\nconst Calendar = withInstall(_Calendar);\nvar stdin_default = Calendar;\nimport { calendarProps } from \"./Calendar.mjs\";\nexport {\n Calendar,\n calendarProps,\n stdin_default as default\n};\n","import { ref, watch, computed, nextTick, onMounted, onBeforeUnmount, defineComponent, getCurrentInstance, createVNode as _createVNode, resolveDirective as _resolveDirective, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\nimport { isDef, addUnit, inBrowser, truthProp, numericProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"image\");\nconst imageProps = {\n src: String,\n alt: String,\n fit: String,\n position: String,\n round: Boolean,\n block: Boolean,\n width: numericProp,\n height: numericProp,\n radius: numericProp,\n lazyLoad: Boolean,\n iconSize: numericProp,\n showError: truthProp,\n errorIcon: makeStringProp(\"photo-fail\"),\n iconPrefix: String,\n showLoading: truthProp,\n loadingIcon: makeStringProp(\"photo\"),\n crossorigin: String,\n referrerpolicy: String,\n decoding: String\n};\nvar stdin_default = defineComponent({\n name,\n props: imageProps,\n emits: [\"load\", \"error\"],\n setup(props, {\n emit,\n slots\n }) {\n const error = ref(false);\n const loading = ref(true);\n const imageRef = ref();\n const {\n $Lazyload\n } = getCurrentInstance().proxy;\n const style = computed(() => {\n const style2 = {\n width: addUnit(props.width),\n height: addUnit(props.height)\n };\n if (isDef(props.radius)) {\n style2.overflow = \"hidden\";\n style2.borderRadius = addUnit(props.radius);\n }\n return style2;\n });\n watch(() => props.src, () => {\n error.value = false;\n loading.value = true;\n });\n const onLoad = (event) => {\n if (loading.value) {\n loading.value = false;\n emit(\"load\", event);\n }\n };\n const triggerLoad = () => {\n const loadEvent = new Event(\"load\");\n Object.defineProperty(loadEvent, \"target\", {\n value: imageRef.value,\n enumerable: true\n });\n onLoad(loadEvent);\n };\n const onError = (event) => {\n error.value = true;\n loading.value = false;\n emit(\"error\", event);\n };\n const renderIcon = (name2, className, slot) => {\n if (slot) {\n return slot();\n }\n return _createVNode(Icon, {\n \"name\": name2,\n \"size\": props.iconSize,\n \"class\": className,\n \"classPrefix\": props.iconPrefix\n }, null);\n };\n const renderPlaceholder = () => {\n if (loading.value && props.showLoading) {\n return _createVNode(\"div\", {\n \"class\": bem(\"loading\")\n }, [renderIcon(props.loadingIcon, bem(\"loading-icon\"), slots.loading)]);\n }\n if (error.value && props.showError) {\n return _createVNode(\"div\", {\n \"class\": bem(\"error\")\n }, [renderIcon(props.errorIcon, bem(\"error-icon\"), slots.error)]);\n }\n };\n const renderImage = () => {\n if (error.value || !props.src) {\n return;\n }\n const attrs = {\n alt: props.alt,\n class: bem(\"img\"),\n decoding: props.decoding,\n style: {\n objectFit: props.fit,\n objectPosition: props.position\n },\n crossorigin: props.crossorigin,\n referrerpolicy: props.referrerpolicy\n };\n if (props.lazyLoad) {\n return _withDirectives(_createVNode(\"img\", _mergeProps({\n \"ref\": imageRef\n }, attrs), null), [[_resolveDirective(\"lazy\"), props.src]]);\n }\n return _createVNode(\"img\", _mergeProps({\n \"ref\": imageRef,\n \"src\": props.src,\n \"onLoad\": onLoad,\n \"onError\": onError\n }, attrs), null);\n };\n const onLazyLoaded = ({\n el\n }) => {\n const check = () => {\n if (el === imageRef.value && loading.value) {\n triggerLoad();\n }\n };\n if (imageRef.value) {\n check();\n } else {\n nextTick(check);\n }\n };\n const onLazyLoadError = ({\n el\n }) => {\n if (el === imageRef.value && !error.value) {\n onError();\n }\n };\n if ($Lazyload && inBrowser) {\n $Lazyload.$on(\"loaded\", onLazyLoaded);\n $Lazyload.$on(\"error\", onLazyLoadError);\n onBeforeUnmount(() => {\n $Lazyload.$off(\"loaded\", onLazyLoaded);\n $Lazyload.$off(\"error\", onLazyLoadError);\n });\n }\n onMounted(() => {\n nextTick(() => {\n var _a;\n if (((_a = imageRef.value) == null ? void 0 : _a.complete) && !props.lazyLoad) {\n triggerLoad();\n }\n });\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": bem({\n round: props.round,\n block: props.block\n }),\n \"style\": style.value\n }, [renderImage(), renderPlaceholder(), (_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n stdin_default as default,\n imageProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Image from \"./Image.mjs\";\nconst Image = withInstall(_Image);\nvar stdin_default = Image;\nimport { imageProps } from \"./Image.mjs\";\nexport {\n Image,\n stdin_default as default,\n imageProps\n};\n","import { defineComponent, createVNode as _createVNode, Fragment as _Fragment, createTextVNode as _createTextVNode } from \"vue\";\nimport { isDef, numericProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { Tag } from \"../tag/index.mjs\";\nimport { Image } from \"../image/index.mjs\";\nconst [name, bem] = createNamespace(\"card\");\nconst cardProps = {\n tag: String,\n num: numericProp,\n desc: String,\n thumb: String,\n title: String,\n price: numericProp,\n centered: Boolean,\n lazyLoad: Boolean,\n currency: makeStringProp(\"\\xA5\"),\n thumbLink: String,\n originPrice: numericProp\n};\nvar stdin_default = defineComponent({\n name,\n props: cardProps,\n emits: [\"clickThumb\"],\n setup(props, {\n slots,\n emit\n }) {\n const renderTitle = () => {\n if (slots.title) {\n return slots.title();\n }\n if (props.title) {\n return _createVNode(\"div\", {\n \"class\": [bem(\"title\"), \"van-multi-ellipsis--l2\"]\n }, [props.title]);\n }\n };\n const renderThumbTag = () => {\n if (slots.tag || props.tag) {\n return _createVNode(\"div\", {\n \"class\": bem(\"tag\")\n }, [slots.tag ? slots.tag() : _createVNode(Tag, {\n \"mark\": true,\n \"type\": \"primary\"\n }, {\n default: () => [props.tag]\n })]);\n }\n };\n const renderThumbImage = () => {\n if (slots.thumb) {\n return slots.thumb();\n }\n return _createVNode(Image, {\n \"src\": props.thumb,\n \"fit\": \"cover\",\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"lazyLoad\": props.lazyLoad\n }, null);\n };\n const renderThumb = () => {\n if (slots.thumb || props.thumb) {\n return _createVNode(\"a\", {\n \"href\": props.thumbLink,\n \"class\": bem(\"thumb\"),\n \"onClick\": (event) => emit(\"clickThumb\", event)\n }, [renderThumbImage(), renderThumbTag()]);\n }\n };\n const renderDesc = () => {\n if (slots.desc) {\n return slots.desc();\n }\n if (props.desc) {\n return _createVNode(\"div\", {\n \"class\": [bem(\"desc\"), \"van-ellipsis\"]\n }, [props.desc]);\n }\n };\n const renderPriceText = () => {\n const priceArr = props.price.toString().split(\".\");\n return _createVNode(\"div\", null, [_createVNode(\"span\", {\n \"class\": bem(\"price-currency\")\n }, [props.currency]), _createVNode(\"span\", {\n \"class\": bem(\"price-integer\")\n }, [priceArr[0]]), priceArr.length > 1 && _createVNode(_Fragment, null, [_createTextVNode(\".\"), _createVNode(\"span\", {\n \"class\": bem(\"price-decimal\")\n }, [priceArr[1]])])]);\n };\n return () => {\n var _a, _b, _c;\n const showNum = slots.num || isDef(props.num);\n const showPrice = slots.price || isDef(props.price);\n const showOriginPrice = slots[\"origin-price\"] || isDef(props.originPrice);\n const showBottom = showNum || showPrice || showOriginPrice || slots.bottom;\n const Price = showPrice && _createVNode(\"div\", {\n \"class\": bem(\"price\")\n }, [slots.price ? slots.price() : renderPriceText()]);\n const OriginPrice = showOriginPrice && _createVNode(\"div\", {\n \"class\": bem(\"origin-price\")\n }, [slots[\"origin-price\"] ? slots[\"origin-price\"]() : `${props.currency} ${props.originPrice}`]);\n const Num = showNum && _createVNode(\"div\", {\n \"class\": bem(\"num\")\n }, [slots.num ? slots.num() : `x${props.num}`]);\n const Footer = slots.footer && _createVNode(\"div\", {\n \"class\": bem(\"footer\")\n }, [slots.footer()]);\n const Bottom = showBottom && _createVNode(\"div\", {\n \"class\": bem(\"bottom\")\n }, [(_a = slots[\"price-top\"]) == null ? void 0 : _a.call(slots), Price, OriginPrice, Num, (_b = slots.bottom) == null ? void 0 : _b.call(slots)]);\n return _createVNode(\"div\", {\n \"class\": bem()\n }, [_createVNode(\"div\", {\n \"class\": bem(\"header\")\n }, [renderThumb(), _createVNode(\"div\", {\n \"class\": bem(\"content\", {\n centered: props.centered\n })\n }, [_createVNode(\"div\", null, [renderTitle(), renderDesc(), (_c = slots.tags) == null ? void 0 : _c.call(slots)]), Bottom])]), Footer]);\n };\n }\n});\nexport {\n cardProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Card from \"./Card.mjs\";\nconst Card = withInstall(_Card);\nvar stdin_default = Card;\nimport { cardProps } from \"./Card.mjs\";\nexport {\n Card,\n cardProps,\n stdin_default as default\n};\n","import { ref, watch, nextTick, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, truthProp, numericProp, makeArrayProp, makeStringProp, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { useRefs } from \"../composables/use-refs.mjs\";\nimport { Tab } from \"../tab/index.mjs\";\nimport { Tabs } from \"../tabs/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem, t] = createNamespace(\"cascader\");\nconst cascaderProps = {\n title: String,\n options: makeArrayProp(),\n closeable: truthProp,\n swipeable: truthProp,\n closeIcon: makeStringProp(\"cross\"),\n showHeader: truthProp,\n modelValue: numericProp,\n fieldNames: Object,\n placeholder: String,\n activeColor: String\n};\nvar stdin_default = defineComponent({\n name,\n props: cascaderProps,\n emits: [\"close\", \"change\", \"finish\", \"clickTab\", \"update:modelValue\"],\n setup(props, {\n slots,\n emit\n }) {\n const tabs = ref([]);\n const activeTab = ref(0);\n const [selectedElementRefs, setSelectedElementRefs] = useRefs();\n const {\n text: textKey,\n value: valueKey,\n children: childrenKey\n } = extend({\n text: \"text\",\n value: \"value\",\n children: \"children\"\n }, props.fieldNames);\n const getSelectedOptionsByValue = (options, value) => {\n for (const option of options) {\n if (option[valueKey] === value) {\n return [option];\n }\n if (option[childrenKey]) {\n const selectedOptions = getSelectedOptionsByValue(option[childrenKey], value);\n if (selectedOptions) {\n return [option, ...selectedOptions];\n }\n }\n }\n };\n const updateTabs = () => {\n const {\n options,\n modelValue\n } = props;\n if (modelValue !== void 0) {\n const selectedOptions = getSelectedOptionsByValue(options, modelValue);\n if (selectedOptions) {\n let optionsCursor = options;\n tabs.value = selectedOptions.map((option) => {\n const tab = {\n options: optionsCursor,\n selected: option\n };\n const next = optionsCursor.find((item) => item[valueKey] === option[valueKey]);\n if (next) {\n optionsCursor = next[childrenKey];\n }\n return tab;\n });\n if (optionsCursor) {\n tabs.value.push({\n options: optionsCursor,\n selected: null\n });\n }\n nextTick(() => {\n activeTab.value = tabs.value.length - 1;\n });\n return;\n }\n }\n tabs.value = [{\n options,\n selected: null\n }];\n };\n const onSelect = (option, tabIndex) => {\n if (option.disabled) {\n return;\n }\n tabs.value[tabIndex].selected = option;\n if (tabs.value.length > tabIndex + 1) {\n tabs.value = tabs.value.slice(0, tabIndex + 1);\n }\n if (option[childrenKey]) {\n const nextTab = {\n options: option[childrenKey],\n selected: null\n };\n if (tabs.value[tabIndex + 1]) {\n tabs.value[tabIndex + 1] = nextTab;\n } else {\n tabs.value.push(nextTab);\n }\n nextTick(() => {\n activeTab.value++;\n });\n }\n const selectedOptions = tabs.value.map((tab) => tab.selected).filter(Boolean);\n emit(\"update:modelValue\", option[valueKey]);\n const params = {\n value: option[valueKey],\n tabIndex,\n selectedOptions\n };\n emit(\"change\", params);\n if (!option[childrenKey]) {\n emit(\"finish\", params);\n }\n };\n const onClose = () => emit(\"close\");\n const onClickTab = ({\n name: name2,\n title\n }) => emit(\"clickTab\", name2, title);\n const renderHeader = () => props.showHeader ? _createVNode(\"div\", {\n \"class\": bem(\"header\")\n }, [_createVNode(\"h2\", {\n \"class\": bem(\"title\")\n }, [slots.title ? slots.title() : props.title]), props.closeable ? _createVNode(Icon, {\n \"name\": props.closeIcon,\n \"class\": [bem(\"close-icon\"), HAPTICS_FEEDBACK],\n \"onClick\": onClose\n }, null) : null]) : null;\n const renderOption = (option, selectedOption, tabIndex) => {\n const {\n disabled\n } = option;\n const selected = !!(selectedOption && option[valueKey] === selectedOption[valueKey]);\n const color = option.color || (selected ? props.activeColor : void 0);\n const Text = slots.option ? slots.option({\n option,\n selected\n }) : _createVNode(\"span\", null, [option[textKey]]);\n return _createVNode(\"li\", {\n \"ref\": selected ? setSelectedElementRefs(tabIndex) : void 0,\n \"role\": \"menuitemradio\",\n \"class\": [bem(\"option\", {\n selected,\n disabled\n }), option.className],\n \"style\": {\n color\n },\n \"tabindex\": disabled ? void 0 : selected ? 0 : -1,\n \"aria-checked\": selected,\n \"aria-disabled\": disabled || void 0,\n \"onClick\": () => onSelect(option, tabIndex)\n }, [Text, selected ? _createVNode(Icon, {\n \"name\": \"success\",\n \"class\": bem(\"selected-icon\")\n }, null) : null]);\n };\n const renderOptions = (options, selectedOption, tabIndex) => _createVNode(\"ul\", {\n \"role\": \"menu\",\n \"class\": bem(\"options\")\n }, [options.map((option) => renderOption(option, selectedOption, tabIndex))]);\n const renderTab = (tab, tabIndex) => {\n const {\n options,\n selected\n } = tab;\n const placeholder = props.placeholder || t(\"select\");\n const title = selected ? selected[textKey] : placeholder;\n return _createVNode(Tab, {\n \"title\": title,\n \"titleClass\": bem(\"tab\", {\n unselected: !selected\n })\n }, {\n default: () => {\n var _a, _b;\n return [(_a = slots[\"options-top\"]) == null ? void 0 : _a.call(slots, {\n tabIndex\n }), renderOptions(options, selected, tabIndex), (_b = slots[\"options-bottom\"]) == null ? void 0 : _b.call(slots, {\n tabIndex\n })];\n }\n });\n };\n const renderTabs = () => _createVNode(Tabs, {\n \"active\": activeTab.value,\n \"onUpdate:active\": ($event) => activeTab.value = $event,\n \"shrink\": true,\n \"animated\": true,\n \"class\": bem(\"tabs\"),\n \"color\": props.activeColor,\n \"swipeable\": props.swipeable,\n \"onClickTab\": onClickTab\n }, {\n default: () => [tabs.value.map(renderTab)]\n });\n const scrollIntoView = (el) => {\n const scrollParent = el.parentElement;\n if (scrollParent) {\n scrollParent.scrollTop = el.offsetTop - (scrollParent.offsetHeight - el.offsetHeight) / 2;\n }\n };\n updateTabs();\n watch(activeTab, (value) => {\n const el = selectedElementRefs.value[value];\n if (el) scrollIntoView(el);\n });\n watch(() => props.options, updateTabs, {\n deep: true\n });\n watch(() => props.modelValue, (value) => {\n if (value !== void 0) {\n const values = tabs.value.map((tab) => {\n var _a;\n return (_a = tab.selected) == null ? void 0 : _a[valueKey];\n });\n if (values.includes(value)) {\n return;\n }\n }\n updateTabs();\n });\n return () => _createVNode(\"div\", {\n \"class\": bem()\n }, [renderHeader(), renderTabs()]);\n }\n});\nexport {\n cascaderProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Cascader from \"./Cascader.mjs\";\nconst Cascader = withInstall(_Cascader);\nvar stdin_default = Cascader;\nimport { cascaderProps } from \"./Cascader.mjs\";\nexport {\n Cascader,\n cascaderProps,\n stdin_default as default\n};\n","import { defineComponent, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\nimport { truthProp, createNamespace, BORDER_TOP_BOTTOM } from \"../utils/index.mjs\";\nimport { useScopeId } from \"../composables/use-scope-id.mjs\";\nconst [name, bem] = createNamespace(\"cell-group\");\nconst cellGroupProps = {\n title: String,\n inset: Boolean,\n border: truthProp\n};\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: cellGroupProps,\n setup(props, {\n slots,\n attrs\n }) {\n const renderGroup = () => {\n var _a;\n return _createVNode(\"div\", _mergeProps({\n \"class\": [bem({\n inset: props.inset\n }), {\n [BORDER_TOP_BOTTOM]: props.border && !props.inset\n }]\n }, attrs, useScopeId()), [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n const renderTitle = () => _createVNode(\"div\", {\n \"class\": bem(\"title\", {\n inset: props.inset\n })\n }, [slots.title ? slots.title() : props.title]);\n return () => {\n if (props.title || slots.title) {\n return _createVNode(_Fragment, null, [renderTitle(), renderGroup()]);\n }\n return renderGroup();\n };\n }\n});\nexport {\n cellGroupProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _CellGroup from \"./CellGroup.mjs\";\nconst CellGroup = withInstall(_CellGroup);\nvar stdin_default = CellGroup;\nimport { cellGroupProps } from \"./CellGroup.mjs\";\nexport {\n CellGroup,\n cellGroupProps,\n stdin_default as default\n};\n","import { watch, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { raf, cancelRaf } from \"@vant/use\";\nimport { isObject, truthProp, numericProp, getSizeStyle, makeStringProp, makeNumberProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"circle\");\nlet uid = 0;\nconst format = (rate) => Math.min(Math.max(+rate, 0), 100);\nfunction getPath(clockwise, viewBoxSize) {\n const sweepFlag = clockwise ? 1 : 0;\n return `M ${viewBoxSize / 2} ${viewBoxSize / 2} m 0, -500 a 500, 500 0 1, ${sweepFlag} 0, 1000 a 500, 500 0 1, ${sweepFlag} 0, -1000`;\n}\nconst circleProps = {\n text: String,\n size: numericProp,\n fill: makeStringProp(\"none\"),\n rate: makeNumericProp(100),\n speed: makeNumericProp(0),\n color: [String, Object],\n clockwise: truthProp,\n layerColor: String,\n currentRate: makeNumberProp(0),\n strokeWidth: makeNumericProp(40),\n strokeLinecap: String,\n startPosition: makeStringProp(\"top\")\n};\nvar stdin_default = defineComponent({\n name,\n props: circleProps,\n emits: [\"update:currentRate\"],\n setup(props, {\n emit,\n slots\n }) {\n const id = `van-circle-${uid++}`;\n const viewBoxSize = computed(() => +props.strokeWidth + 1e3);\n const path = computed(() => getPath(props.clockwise, viewBoxSize.value));\n const svgStyle = computed(() => {\n const ROTATE_ANGLE_MAP = {\n top: 0,\n right: 90,\n bottom: 180,\n left: 270\n };\n const angleValue = ROTATE_ANGLE_MAP[props.startPosition];\n if (angleValue) {\n return {\n transform: `rotate(${angleValue}deg)`\n };\n }\n });\n watch(() => props.rate, (rate) => {\n let rafId;\n const startTime = Date.now();\n const startRate = props.currentRate;\n const endRate = format(rate);\n const duration = Math.abs((startRate - endRate) * 1e3 / +props.speed);\n const animate = () => {\n const now = Date.now();\n const progress = Math.min((now - startTime) / duration, 1);\n const rate2 = progress * (endRate - startRate) + startRate;\n emit(\"update:currentRate\", format(parseFloat(rate2.toFixed(1))));\n if (endRate > startRate ? rate2 < endRate : rate2 > endRate) {\n rafId = raf(animate);\n }\n };\n if (props.speed) {\n if (rafId) {\n cancelRaf(rafId);\n }\n rafId = raf(animate);\n } else {\n emit(\"update:currentRate\", endRate);\n }\n }, {\n immediate: true\n });\n const renderHover = () => {\n const PERIMETER = 3140;\n const {\n strokeWidth,\n currentRate,\n strokeLinecap\n } = props;\n const offset = PERIMETER * currentRate / 100;\n const color = isObject(props.color) ? `url(#${id})` : props.color;\n const style = {\n stroke: color,\n strokeWidth: `${+strokeWidth + 1}px`,\n strokeLinecap,\n strokeDasharray: `${offset}px ${PERIMETER}px`\n };\n return _createVNode(\"path\", {\n \"d\": path.value,\n \"style\": style,\n \"class\": bem(\"hover\"),\n \"stroke\": color\n }, null);\n };\n const renderLayer = () => {\n const style = {\n fill: props.fill,\n stroke: props.layerColor,\n strokeWidth: `${props.strokeWidth}px`\n };\n return _createVNode(\"path\", {\n \"class\": bem(\"layer\"),\n \"style\": style,\n \"d\": path.value\n }, null);\n };\n const renderGradient = () => {\n const {\n color\n } = props;\n if (!isObject(color)) {\n return;\n }\n const Stops = Object.keys(color).sort((a, b) => parseFloat(a) - parseFloat(b)).map((key, index) => _createVNode(\"stop\", {\n \"key\": index,\n \"offset\": key,\n \"stop-color\": color[key]\n }, null));\n return _createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": id,\n \"x1\": \"100%\",\n \"y1\": \"0%\",\n \"x2\": \"0%\",\n \"y2\": \"0%\"\n }, [Stops])]);\n };\n const renderText = () => {\n if (slots.default) {\n return slots.default();\n }\n if (props.text) {\n return _createVNode(\"div\", {\n \"class\": bem(\"text\")\n }, [props.text]);\n }\n };\n return () => _createVNode(\"div\", {\n \"class\": bem(),\n \"style\": getSizeStyle(props.size)\n }, [_createVNode(\"svg\", {\n \"viewBox\": `0 0 ${viewBoxSize.value} ${viewBoxSize.value}`,\n \"style\": svgStyle.value\n }, [renderGradient(), renderLayer(), renderHover()]), renderText()]);\n }\n});\nexport {\n circleProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Circle from \"./Circle.mjs\";\nconst Circle = withInstall(_Circle);\nvar stdin_default = Circle;\nimport { circleProps } from \"./Circle.mjs\";\nexport {\n Circle,\n circleProps,\n stdin_default as default\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { useChildren } from \"@vant/use\";\nconst [name, bem] = createNamespace(\"row\");\nconst ROW_KEY = Symbol(name);\nconst rowProps = {\n tag: makeStringProp(\"div\"),\n wrap: truthProp,\n align: String,\n gutter: {\n type: [String, Number, Array],\n default: 0\n },\n justify: String\n};\nvar stdin_default = defineComponent({\n name,\n props: rowProps,\n setup(props, {\n slots\n }) {\n const {\n children,\n linkChildren\n } = useChildren(ROW_KEY);\n const groups = computed(() => {\n const groups2 = [[]];\n let totalSpan = 0;\n children.forEach((child, index) => {\n totalSpan += Number(child.span);\n if (totalSpan > 24) {\n groups2.push([index]);\n totalSpan -= 24;\n } else {\n groups2[groups2.length - 1].push(index);\n }\n });\n return groups2;\n });\n const spaces = computed(() => {\n let gutter = 0;\n if (Array.isArray(props.gutter)) {\n gutter = Number(props.gutter[0]) || 0;\n } else {\n gutter = Number(props.gutter);\n }\n const spaces2 = [];\n if (!gutter) {\n return spaces2;\n }\n groups.value.forEach((group) => {\n const averagePadding = gutter * (group.length - 1) / group.length;\n group.forEach((item, index) => {\n if (index === 0) {\n spaces2.push({\n right: averagePadding\n });\n } else {\n const left = gutter - spaces2[item - 1].right;\n const right = averagePadding - left;\n spaces2.push({\n left,\n right\n });\n }\n });\n });\n return spaces2;\n });\n const verticalSpaces = computed(() => {\n const {\n gutter\n } = props;\n const spaces2 = [];\n if (Array.isArray(gutter) && gutter.length > 1) {\n const bottom = Number(gutter[1]) || 0;\n if (bottom <= 0) {\n return spaces2;\n }\n groups.value.forEach((group, index) => {\n if (index === groups.value.length - 1) return;\n group.forEach(() => {\n spaces2.push({\n bottom\n });\n });\n });\n }\n return spaces2;\n });\n linkChildren({\n spaces,\n verticalSpaces\n });\n return () => {\n const {\n tag,\n wrap,\n align,\n justify\n } = props;\n return _createVNode(tag, {\n \"class\": bem({\n [`align-${align}`]: align,\n [`justify-${justify}`]: justify,\n nowrap: !wrap\n })\n }, {\n default: () => {\n var _a;\n return [(_a = slots.default) == null ? void 0 : _a.call(slots)];\n }\n });\n };\n }\n});\nexport {\n ROW_KEY,\n stdin_default as default,\n rowProps\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { numericProp, createNamespace, makeNumericProp, makeStringProp, extend } from \"../utils/index.mjs\";\nimport { useParent } from \"@vant/use\";\nimport { ROW_KEY } from \"../row/Row.mjs\";\nconst [name, bem] = createNamespace(\"col\");\nconst colProps = {\n tag: makeStringProp(\"div\"),\n span: makeNumericProp(0),\n offset: numericProp\n};\nvar stdin_default = defineComponent({\n name,\n props: colProps,\n setup(props, {\n slots\n }) {\n const {\n parent,\n index\n } = useParent(ROW_KEY);\n const style = computed(() => {\n if (!parent) {\n return;\n }\n const {\n spaces,\n verticalSpaces\n } = parent;\n let styles = {};\n if (spaces && spaces.value && spaces.value[index.value]) {\n const {\n left,\n right\n } = spaces.value[index.value];\n styles = {\n paddingLeft: left ? `${left}px` : null,\n paddingRight: right ? `${right}px` : null\n };\n }\n const {\n bottom\n } = verticalSpaces.value[index.value] || {};\n return extend(styles, {\n marginBottom: bottom ? `${bottom}px` : null\n });\n });\n return () => {\n const {\n tag,\n span,\n offset\n } = props;\n return _createVNode(tag, {\n \"style\": style.value,\n \"class\": bem({\n [span]: span,\n [`offset-${offset}`]: offset\n })\n }, {\n default: () => {\n var _a;\n return [(_a = slots.default) == null ? void 0 : _a.call(slots)];\n }\n });\n };\n }\n});\nexport {\n colProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Col from \"./Col.mjs\";\nconst Col = withInstall(_Col);\nvar stdin_default = Col;\nimport { colProps } from \"./Col.mjs\";\nexport {\n Col,\n colProps,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, createNamespace, BORDER_TOP_BOTTOM } from \"../utils/index.mjs\";\nimport { useChildren } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"collapse\");\nconst COLLAPSE_KEY = Symbol(name);\nconst collapseProps = {\n border: truthProp,\n accordion: Boolean,\n modelValue: {\n type: [String, Number, Array],\n default: \"\"\n }\n};\nfunction validateModelValue(modelValue, accordion) {\n if (accordion && Array.isArray(modelValue)) {\n console.error('[Vant] Collapse: \"v-model\" should not be Array in accordion mode');\n return false;\n }\n if (!accordion && !Array.isArray(modelValue)) {\n console.error('[Vant] Collapse: \"v-model\" should be Array in non-accordion mode');\n return false;\n }\n return true;\n}\nvar stdin_default = defineComponent({\n name,\n props: collapseProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n linkChildren,\n children\n } = useChildren(COLLAPSE_KEY);\n const updateName = (name2) => {\n emit(\"change\", name2);\n emit(\"update:modelValue\", name2);\n };\n const toggle = (name2, expanded) => {\n const {\n accordion,\n modelValue\n } = props;\n if (accordion) {\n updateName(name2 === modelValue ? \"\" : name2);\n } else if (expanded) {\n updateName(modelValue.concat(name2));\n } else {\n updateName(modelValue.filter((activeName) => activeName !== name2));\n }\n };\n const toggleAll = (options = {}) => {\n if (props.accordion) {\n return;\n }\n if (typeof options === \"boolean\") {\n options = {\n expanded: options\n };\n }\n const {\n expanded,\n skipDisabled\n } = options;\n const expandedChildren = children.filter((item) => {\n if (item.disabled && skipDisabled) {\n return item.expanded.value;\n }\n return expanded != null ? expanded : !item.expanded.value;\n });\n const names = expandedChildren.map((item) => item.itemName.value);\n updateName(names);\n };\n const isExpanded = (name2) => {\n const {\n accordion,\n modelValue\n } = props;\n if (process.env.NODE_ENV !== \"production\" && !validateModelValue(modelValue, accordion)) {\n return false;\n }\n return accordion ? modelValue === name2 : modelValue.includes(name2);\n };\n useExpose({\n toggleAll\n });\n linkChildren({\n toggle,\n isExpanded\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": [bem(), {\n [BORDER_TOP_BOTTOM]: props.border\n }]\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n COLLAPSE_KEY,\n collapseProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Collapse from \"./Collapse.mjs\";\nconst Collapse = withInstall(_Collapse);\nvar stdin_default = Collapse;\nimport { collapseProps } from \"./Collapse.mjs\";\nexport {\n Collapse,\n collapseProps,\n stdin_default as default\n};\n","import { ref, watch, computed, nextTick, defineComponent, mergeProps as _mergeProps, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nimport { cellSharedProps } from \"../cell/Cell.mjs\";\nimport { pick, extend, truthProp, numericProp, createNamespace } from \"../utils/index.mjs\";\nimport { COLLAPSE_KEY } from \"../collapse/Collapse.mjs\";\nimport { raf, doubleRaf, useParent } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { useLazyRender } from \"../composables/use-lazy-render.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nconst [name, bem] = createNamespace(\"collapse-item\");\nconst CELL_SLOTS = [\"icon\", \"title\", \"value\", \"label\", \"right-icon\"];\nconst collapseItemProps = extend({}, cellSharedProps, {\n name: numericProp,\n isLink: truthProp,\n disabled: Boolean,\n readonly: Boolean,\n lazyRender: truthProp\n});\nvar stdin_default = defineComponent({\n name,\n props: collapseItemProps,\n setup(props, {\n slots\n }) {\n const wrapperRef = ref();\n const contentRef = ref();\n const {\n parent,\n index\n } = useParent(COLLAPSE_KEY);\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <CollapseItem> must be a child component of <Collapse>.\");\n }\n return;\n }\n const name2 = computed(() => {\n var _a;\n return (_a = props.name) != null ? _a : index.value;\n });\n const expanded = computed(() => parent.isExpanded(name2.value));\n const show = ref(expanded.value);\n const lazyRender = useLazyRender(() => show.value || !props.lazyRender);\n const onTransitionEnd = () => {\n if (!expanded.value) {\n show.value = false;\n } else if (wrapperRef.value) {\n wrapperRef.value.style.height = \"\";\n }\n };\n watch(expanded, (value, oldValue) => {\n if (oldValue === null) {\n return;\n }\n if (value) {\n show.value = true;\n }\n const tick = value ? nextTick : raf;\n tick(() => {\n if (!contentRef.value || !wrapperRef.value) {\n return;\n }\n const {\n offsetHeight\n } = contentRef.value;\n if (offsetHeight) {\n const contentHeight = `${offsetHeight}px`;\n wrapperRef.value.style.height = value ? \"0\" : contentHeight;\n doubleRaf(() => {\n if (wrapperRef.value) {\n wrapperRef.value.style.height = value ? contentHeight : \"0\";\n }\n });\n } else {\n onTransitionEnd();\n }\n });\n });\n const toggle = (newValue = !expanded.value) => {\n parent.toggle(name2.value, newValue);\n };\n const onClickTitle = () => {\n if (!props.disabled && !props.readonly) {\n toggle();\n }\n };\n const renderTitle = () => {\n const {\n border,\n disabled,\n readonly\n } = props;\n const attrs = pick(props, Object.keys(cellSharedProps));\n if (readonly) {\n attrs.isLink = false;\n }\n if (disabled || readonly) {\n attrs.clickable = false;\n }\n return _createVNode(Cell, _mergeProps({\n \"role\": \"button\",\n \"class\": bem(\"title\", {\n disabled,\n expanded: expanded.value,\n borderless: !border\n }),\n \"aria-expanded\": String(expanded.value),\n \"onClick\": onClickTitle\n }, attrs), pick(slots, CELL_SLOTS));\n };\n const renderContent = lazyRender(() => {\n var _a;\n return _withDirectives(_createVNode(\"div\", {\n \"ref\": wrapperRef,\n \"class\": bem(\"wrapper\"),\n \"onTransitionend\": onTransitionEnd\n }, [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": bem(\"content\")\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)])]), [[_vShow, show.value]]);\n });\n useExpose({\n toggle,\n expanded,\n itemName: name2\n });\n return () => _createVNode(\"div\", {\n \"class\": [bem({\n border: index.value && props.border\n })]\n }, [renderTitle(), renderContent()]);\n }\n});\nexport {\n collapseItemProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _CollapseItem from \"./CollapseItem.mjs\";\nconst CollapseItem = withInstall(_CollapseItem);\nvar stdin_default = CollapseItem;\nimport { collapseItemProps } from \"./CollapseItem.mjs\";\nexport {\n CollapseItem,\n collapseItemProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ConfigProvider from \"./ConfigProvider.mjs\";\nconst ConfigProvider = withInstall(_ConfigProvider);\nvar stdin_default = ConfigProvider;\nimport { configProviderProps } from \"./ConfigProvider.mjs\";\nexport {\n ConfigProvider,\n configProviderProps,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nconst [name, bem, t] = createNamespace(\"contact-card\");\nconst contactCardProps = {\n tel: String,\n name: String,\n type: makeStringProp(\"add\"),\n addText: String,\n editable: truthProp\n};\nvar stdin_default = defineComponent({\n name,\n props: contactCardProps,\n emits: [\"click\"],\n setup(props, {\n emit\n }) {\n const onClick = (event) => {\n if (props.editable) {\n emit(\"click\", event);\n }\n };\n const renderContent = () => {\n if (props.type === \"add\") {\n return props.addText || t(\"addContact\");\n }\n return [_createVNode(\"div\", null, [`${t(\"name\")}\\uFF1A${props.name}`]), _createVNode(\"div\", null, [`${t(\"tel\")}\\uFF1A${props.tel}`])];\n };\n return () => _createVNode(Cell, {\n \"center\": true,\n \"icon\": props.type === \"edit\" ? \"contact\" : \"add-square\",\n \"class\": bem([props.type]),\n \"border\": false,\n \"isLink\": props.editable,\n \"titleClass\": bem(\"title\"),\n \"onClick\": onClick\n }, {\n title: renderContent\n });\n }\n});\nexport {\n contactCardProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ContactCard from \"./ContactCard.mjs\";\nconst ContactCard = withInstall(_ContactCard);\nvar stdin_default = ContactCard;\nimport { contactCardProps } from \"./ContactCard.mjs\";\nexport {\n ContactCard,\n contactCardProps,\n stdin_default as default\n};\n","import { watch, reactive, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isMobile, createNamespace, extend } from \"../utils/index.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nimport { Form } from \"../form/index.mjs\";\nimport { Field } from \"../field/index.mjs\";\nimport { Button } from \"../button/index.mjs\";\nimport { Switch } from \"../switch/index.mjs\";\nconst [name, bem, t] = createNamespace(\"contact-edit\");\nconst DEFAULT_CONTACT = {\n tel: \"\",\n name: \"\"\n};\nconst contactEditProps = {\n isEdit: Boolean,\n isSaving: Boolean,\n isDeleting: Boolean,\n showSetDefault: Boolean,\n setDefaultLabel: String,\n contactInfo: {\n type: Object,\n default: () => extend({}, DEFAULT_CONTACT)\n },\n telValidator: {\n type: Function,\n default: isMobile\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: contactEditProps,\n emits: [\"save\", \"delete\", \"changeDefault\"],\n setup(props, {\n emit\n }) {\n const contact = reactive(extend({}, DEFAULT_CONTACT, props.contactInfo));\n const onSave = () => {\n if (!props.isSaving) {\n emit(\"save\", contact);\n }\n };\n const onDelete = () => emit(\"delete\", contact);\n const renderButtons = () => _createVNode(\"div\", {\n \"class\": bem(\"buttons\")\n }, [_createVNode(Button, {\n \"block\": true,\n \"round\": true,\n \"type\": \"primary\",\n \"text\": t(\"save\"),\n \"class\": bem(\"button\"),\n \"loading\": props.isSaving,\n \"nativeType\": \"submit\"\n }, null), props.isEdit && _createVNode(Button, {\n \"block\": true,\n \"round\": true,\n \"text\": t(\"delete\"),\n \"class\": bem(\"button\"),\n \"loading\": props.isDeleting,\n \"onClick\": onDelete\n }, null)]);\n const renderSwitch = () => _createVNode(Switch, {\n \"modelValue\": contact.isDefault,\n \"onUpdate:modelValue\": ($event) => contact.isDefault = $event,\n \"onChange\": (checked) => emit(\"changeDefault\", checked)\n }, null);\n const renderSetDefault = () => {\n if (props.showSetDefault) {\n return _createVNode(Cell, {\n \"title\": props.setDefaultLabel,\n \"class\": bem(\"switch-cell\"),\n \"border\": false\n }, {\n \"right-icon\": renderSwitch\n });\n }\n };\n watch(() => props.contactInfo, (value) => extend(contact, DEFAULT_CONTACT, value));\n return () => _createVNode(Form, {\n \"class\": bem(),\n \"onSubmit\": onSave\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": bem(\"fields\")\n }, [_createVNode(Field, {\n \"modelValue\": contact.name,\n \"onUpdate:modelValue\": ($event) => contact.name = $event,\n \"clearable\": true,\n \"label\": t(\"name\"),\n \"rules\": [{\n required: true,\n message: t(\"nameEmpty\")\n }],\n \"maxlength\": \"30\",\n \"placeholder\": t(\"name\")\n }, null), _createVNode(Field, {\n \"modelValue\": contact.tel,\n \"onUpdate:modelValue\": ($event) => contact.tel = $event,\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t(\"tel\"),\n \"rules\": [{\n validator: props.telValidator,\n message: t(\"telInvalid\")\n }],\n \"placeholder\": t(\"tel\")\n }, null)]), renderSetDefault(), renderButtons()]\n });\n }\n});\nexport {\n contactEditProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ContactEdit from \"./ContactEdit.mjs\";\nconst ContactEdit = withInstall(_ContactEdit);\nvar stdin_default = ContactEdit;\nimport { contactEditProps } from \"./ContactEdit.mjs\";\nexport {\n ContactEdit,\n contactEditProps,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { createNamespace, unknownProp } from \"../utils/index.mjs\";\nimport { Tag } from \"../tag/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nimport { Radio } from \"../radio/index.mjs\";\nimport { Button } from \"../button/index.mjs\";\nimport { RadioGroup } from \"../radio-group/index.mjs\";\nconst [name, bem, t] = createNamespace(\"contact-list\");\nconst contactListProps = {\n list: Array,\n addText: String,\n modelValue: unknownProp,\n defaultTagText: String\n};\nvar stdin_default = defineComponent({\n name,\n props: contactListProps,\n emits: [\"add\", \"edit\", \"select\", \"update:modelValue\"],\n setup(props, {\n emit\n }) {\n const renderItem = (item, index) => {\n const onClick = () => {\n emit(\"update:modelValue\", item.id);\n emit(\"select\", item, index);\n };\n const renderRightIcon = () => _createVNode(Radio, {\n \"class\": bem(\"radio\"),\n \"name\": item.id,\n \"iconSize\": 18\n }, null);\n const renderEditIcon = () => _createVNode(Icon, {\n \"name\": \"edit\",\n \"class\": bem(\"edit\"),\n \"onClick\": (event) => {\n event.stopPropagation();\n emit(\"edit\", item, index);\n }\n }, null);\n const renderContent = () => {\n const nodes = [`${item.name}\\uFF0C${item.tel}`];\n if (item.isDefault && props.defaultTagText) {\n nodes.push(_createVNode(Tag, {\n \"type\": \"primary\",\n \"round\": true,\n \"class\": bem(\"item-tag\")\n }, {\n default: () => [props.defaultTagText]\n }));\n }\n return nodes;\n };\n return _createVNode(Cell, {\n \"key\": item.id,\n \"isLink\": true,\n \"center\": true,\n \"class\": bem(\"item\"),\n \"titleClass\": bem(\"item-title\"),\n \"onClick\": onClick\n }, {\n icon: renderEditIcon,\n title: renderContent,\n \"right-icon\": renderRightIcon\n });\n };\n return () => _createVNode(\"div\", {\n \"class\": bem()\n }, [_createVNode(RadioGroup, {\n \"modelValue\": props.modelValue,\n \"class\": bem(\"group\")\n }, {\n default: () => [props.list && props.list.map(renderItem)]\n }), _createVNode(\"div\", {\n \"class\": [bem(\"bottom\"), \"van-safe-area-bottom\"]\n }, [_createVNode(Button, {\n \"round\": true,\n \"block\": true,\n \"type\": \"primary\",\n \"class\": bem(\"add\"),\n \"text\": props.addText || t(\"addContact\"),\n \"onClick\": () => emit(\"add\")\n }, null)])]);\n }\n});\nexport {\n contactListProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ContactList from \"./ContactList.mjs\";\nconst ContactList = withInstall(_ContactList);\nvar stdin_default = ContactList;\nimport { contactListProps } from \"./ContactList.mjs\";\nexport {\n ContactList,\n contactListProps,\n stdin_default as default\n};\n","import { watch, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, makeStringProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { parseFormat } from \"./utils.mjs\";\nimport { useCountDown } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"count-down\");\nconst countDownProps = {\n time: makeNumericProp(0),\n format: makeStringProp(\"HH:mm:ss\"),\n autoStart: truthProp,\n millisecond: Boolean\n};\nvar stdin_default = defineComponent({\n name,\n props: countDownProps,\n emits: [\"change\", \"finish\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n start,\n pause,\n reset,\n current\n } = useCountDown({\n time: +props.time,\n millisecond: props.millisecond,\n onChange: (current2) => emit(\"change\", current2),\n onFinish: () => emit(\"finish\")\n });\n const timeText = computed(() => parseFormat(props.format, current.value));\n const resetTime = () => {\n reset(+props.time);\n if (props.autoStart) {\n start();\n }\n };\n watch(() => props.time, resetTime, {\n immediate: true\n });\n useExpose({\n start,\n pause,\n reset: resetTime\n });\n return () => _createVNode(\"div\", {\n \"role\": \"timer\",\n \"class\": bem()\n }, [slots.default ? slots.default(current.value) : timeText.value]);\n }\n});\nexport {\n countDownProps,\n stdin_default as default\n};\n","import { padZero } from \"../utils/index.mjs\";\nfunction getDate(timeStamp) {\n const date = new Date(timeStamp * 1e3);\n return `${date.getFullYear()}.${padZero(date.getMonth() + 1)}.${padZero(\n date.getDate()\n )}`;\n}\nconst formatDiscount = (discount) => (discount / 10).toFixed(discount % 10 === 0 ? 0 : 1);\nconst formatAmount = (amount) => (amount / 100).toFixed(amount % 100 === 0 ? 0 : amount % 10 === 0 ? 1 : 2);\nexport {\n formatAmount,\n formatDiscount,\n getDate\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _CountDown from \"./CountDown.mjs\";\nconst CountDown = withInstall(_CountDown);\nvar stdin_default = CountDown;\nimport { countDownProps } from \"./CountDown.mjs\";\nexport {\n CountDown,\n countDownProps,\n stdin_default as default\n};\n","import { padZero } from \"../utils/index.mjs\";\nfunction parseFormat(format, currentTime) {\n const { days } = currentTime;\n let { hours, minutes, seconds, milliseconds } = currentTime;\n if (format.includes(\"DD\")) {\n format = format.replace(\"DD\", padZero(days));\n } else {\n hours += days * 24;\n }\n if (format.includes(\"HH\")) {\n format = format.replace(\"HH\", padZero(hours));\n } else {\n minutes += hours * 60;\n }\n if (format.includes(\"mm\")) {\n format = format.replace(\"mm\", padZero(minutes));\n } else {\n seconds += minutes * 60;\n }\n if (format.includes(\"ss\")) {\n format = format.replace(\"ss\", padZero(seconds));\n } else {\n milliseconds += seconds * 1e3;\n }\n if (format.includes(\"S\")) {\n const ms = padZero(milliseconds, 3);\n if (format.includes(\"SSS\")) {\n format = format.replace(\"SSS\", ms);\n } else if (format.includes(\"SS\")) {\n format = format.replace(\"SS\", ms.slice(0, 2));\n } else {\n format = format.replace(\"S\", ms.charAt(0));\n }\n }\n return format;\n}\nexport {\n parseFormat\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { makeStringProp, createNamespace, makeRequiredProp } from \"../utils/index.mjs\";\nimport { getDate, formatAmount, formatDiscount } from \"./utils.mjs\";\nimport { Checkbox } from \"../checkbox/index.mjs\";\nconst [name, bem, t] = createNamespace(\"coupon\");\nvar stdin_default = defineComponent({\n name,\n props: {\n chosen: Boolean,\n coupon: makeRequiredProp(Object),\n disabled: Boolean,\n currency: makeStringProp(\"\\xA5\")\n },\n setup(props) {\n const validPeriod = computed(() => {\n const {\n startAt,\n endAt\n } = props.coupon;\n return `${getDate(startAt)} - ${getDate(endAt)}`;\n });\n const faceAmount = computed(() => {\n const {\n coupon,\n currency\n } = props;\n if (coupon.valueDesc) {\n return [coupon.valueDesc, _createVNode(\"span\", null, [coupon.unitDesc || \"\"])];\n }\n if (coupon.denominations) {\n const denominations = formatAmount(coupon.denominations);\n return [_createVNode(\"span\", null, [currency]), ` ${denominations}`];\n }\n if (coupon.discount) {\n return t(\"discount\", formatDiscount(coupon.discount));\n }\n return \"\";\n });\n const conditionMessage = computed(() => {\n const condition = formatAmount(props.coupon.originCondition || 0);\n return condition === \"0\" ? t(\"unlimited\") : t(\"condition\", condition);\n });\n return () => {\n const {\n chosen,\n coupon,\n disabled\n } = props;\n const description = disabled && coupon.reason || coupon.description;\n return _createVNode(\"div\", {\n \"class\": bem({\n disabled\n })\n }, [_createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [_createVNode(\"div\", {\n \"class\": bem(\"head\")\n }, [_createVNode(\"h2\", {\n \"class\": bem(\"amount\")\n }, [faceAmount.value]), _createVNode(\"p\", {\n \"class\": bem(\"condition\")\n }, [coupon.condition || conditionMessage.value])]), _createVNode(\"div\", {\n \"class\": bem(\"body\")\n }, [_createVNode(\"p\", {\n \"class\": bem(\"name\")\n }, [coupon.name]), _createVNode(\"p\", {\n \"class\": bem(\"valid\")\n }, [validPeriod.value]), !disabled && _createVNode(Checkbox, {\n \"class\": bem(\"corner\"),\n \"modelValue\": chosen\n }, null)])]), description && _createVNode(\"p\", {\n \"class\": bem(\"description\")\n }, [description])]);\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Coupon from \"./Coupon.mjs\";\nconst Coupon = withInstall(_Coupon);\nvar stdin_default = Coupon;\nexport {\n Coupon,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isDef, truthProp, makeArrayProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nconst [name, bem, t] = createNamespace(\"coupon-cell\");\nconst couponCellProps = {\n title: String,\n border: truthProp,\n editable: truthProp,\n coupons: makeArrayProp(),\n currency: makeStringProp(\"\\xA5\"),\n chosenCoupon: {\n type: [Number, Array],\n default: -1\n }\n};\nconst getValue = (coupon) => {\n const {\n value,\n denominations\n } = coupon;\n if (isDef(value)) {\n return value;\n }\n if (isDef(denominations)) {\n return denominations;\n }\n return 0;\n};\nfunction formatValue({\n coupons,\n chosenCoupon,\n currency\n}) {\n let value = 0;\n let isExist = false;\n (Array.isArray(chosenCoupon) ? chosenCoupon : [chosenCoupon]).forEach((i) => {\n const coupon = coupons[+i];\n if (coupon) {\n isExist = true;\n value += getValue(coupon);\n }\n });\n if (isExist) {\n return `-${currency} ${(value / 100).toFixed(2)}`;\n }\n return coupons.length === 0 ? t(\"noCoupon\") : t(\"count\", coupons.length);\n}\nvar stdin_default = defineComponent({\n name,\n props: couponCellProps,\n setup(props) {\n return () => {\n const selected = Array.isArray(props.chosenCoupon) ? props.chosenCoupon.length : props.coupons[+props.chosenCoupon];\n return _createVNode(Cell, {\n \"class\": bem(),\n \"value\": formatValue(props),\n \"title\": props.title || t(\"title\"),\n \"border\": props.border,\n \"isLink\": props.editable,\n \"valueClass\": bem(\"value\", {\n selected\n })\n }, null);\n };\n }\n});\nexport {\n couponCellProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _CouponCell from \"./CouponCell.mjs\";\nconst CouponCell = withInstall(_CouponCell);\nvar stdin_default = CouponCell;\nimport { couponCellProps } from \"./CouponCell.mjs\";\nexport {\n CouponCell,\n couponCellProps,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { useId } from \"../composables/use-id.mjs\";\nimport { getSizeStyle, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"empty\");\nconst emptyProps = {\n image: makeStringProp(\"default\"),\n imageSize: [Number, String, Array],\n description: String\n};\nvar stdin_default = defineComponent({\n name,\n props: emptyProps,\n setup(props, {\n slots\n }) {\n const renderDescription = () => {\n const description = slots.description ? slots.description() : props.description;\n if (description) {\n return _createVNode(\"p\", {\n \"class\": bem(\"description\")\n }, [description]);\n }\n };\n const renderBottom = () => {\n if (slots.default) {\n return _createVNode(\"div\", {\n \"class\": bem(\"bottom\")\n }, [slots.default()]);\n }\n };\n const baseId = useId();\n const getId = (num) => `${baseId}-${num}`;\n const getUrlById = (num) => `url(#${getId(num)})`;\n const renderStop = (color, offset, opacity) => _createVNode(\"stop\", {\n \"stop-color\": color,\n \"offset\": `${offset}%`,\n \"stop-opacity\": opacity\n }, null);\n const renderStops = (fromColor, toColor) => [renderStop(fromColor, 0), renderStop(toColor, 100)];\n const renderShadow = (id) => [_createVNode(\"defs\", null, [_createVNode(\"radialGradient\", {\n \"id\": getId(id),\n \"cx\": \"50%\",\n \"cy\": \"54%\",\n \"fx\": \"50%\",\n \"fy\": \"54%\",\n \"r\": \"297%\",\n \"gradientTransform\": \"matrix(-.16 0 0 -.33 .58 .72)\",\n \"data-allow-mismatch\": \"attribute\"\n }, [renderStop(\"#EBEDF0\", 0), renderStop(\"#F2F3F5\", 100, 0.3)])]), _createVNode(\"ellipse\", {\n \"fill\": getUrlById(id),\n \"opacity\": \".8\",\n \"cx\": \"80\",\n \"cy\": \"140\",\n \"rx\": \"46\",\n \"ry\": \"8\",\n \"data-allow-mismatch\": \"attribute\"\n }, null)];\n const renderBuilding = () => [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": getId(\"a\"),\n \"x1\": \"64%\",\n \"y1\": \"100%\",\n \"x2\": \"64%\",\n \"data-allow-mismatch\": \"attribute\"\n }, [renderStop(\"#FFF\", 0, 0.5), renderStop(\"#F2F3F5\", 100)])]), _createVNode(\"g\", {\n \"opacity\": \".8\",\n \"data-allow-mismatch\": \"children\"\n }, [_createVNode(\"path\", {\n \"d\": \"M36 131V53H16v20H2v58h34z\",\n \"fill\": getUrlById(\"a\")\n }, null), _createVNode(\"path\", {\n \"d\": \"M123 15h22v14h9v77h-31V15z\",\n \"fill\": getUrlById(\"a\")\n }, null)])];\n const renderCloud = () => [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": getId(\"b\"),\n \"x1\": \"64%\",\n \"y1\": \"97%\",\n \"x2\": \"64%\",\n \"y2\": \"0%\",\n \"data-allow-mismatch\": \"attribute\"\n }, [renderStop(\"#F2F3F5\", 0, 0.3), renderStop(\"#F2F3F5\", 100)])]), _createVNode(\"g\", {\n \"opacity\": \".8\",\n \"data-allow-mismatch\": \"children\"\n }, [_createVNode(\"path\", {\n \"d\": \"M87 6c3 0 7 3 8 6a8 8 0 1 1-1 16H80a7 7 0 0 1-8-6c0-4 3-7 6-7 0-5 4-9 9-9Z\",\n \"fill\": getUrlById(\"b\")\n }, null), _createVNode(\"path\", {\n \"d\": \"M19 23c2 0 3 1 4 3 2 0 4 2 4 4a4 4 0 0 1-4 3v1h-7v-1l-1 1c-2 0-3-2-3-4 0-1 1-3 3-3 0-2 2-4 4-4Z\",\n \"fill\": getUrlById(\"b\")\n }, null)])];\n const renderNetwork = () => _createVNode(\"svg\", {\n \"viewBox\": \"0 0 160 160\"\n }, [_createVNode(\"defs\", {\n \"data-allow-mismatch\": \"children\"\n }, [_createVNode(\"linearGradient\", {\n \"id\": getId(1),\n \"x1\": \"64%\",\n \"y1\": \"100%\",\n \"x2\": \"64%\"\n }, [renderStop(\"#FFF\", 0, 0.5), renderStop(\"#F2F3F5\", 100)]), _createVNode(\"linearGradient\", {\n \"id\": getId(2),\n \"x1\": \"50%\",\n \"x2\": \"50%\",\n \"y2\": \"84%\"\n }, [renderStop(\"#EBEDF0\", 0), renderStop(\"#DCDEE0\", 100, 0)]), _createVNode(\"linearGradient\", {\n \"id\": getId(3),\n \"x1\": \"100%\",\n \"x2\": \"100%\",\n \"y2\": \"100%\"\n }, [renderStops(\"#EAEDF0\", \"#DCDEE0\")]), _createVNode(\"radialGradient\", {\n \"id\": getId(4),\n \"cx\": \"50%\",\n \"cy\": \"0%\",\n \"fx\": \"50%\",\n \"fy\": \"0%\",\n \"r\": \"100%\",\n \"gradientTransform\": \"matrix(0 1 -.54 0 .5 -.5)\"\n }, [renderStop(\"#EBEDF0\", 0), renderStop(\"#FFF\", 100, 0)])]), _createVNode(\"g\", {\n \"fill\": \"none\"\n }, [renderBuilding(), _createVNode(\"path\", {\n \"fill\": getUrlById(4),\n \"d\": \"M0 139h160v21H0z\",\n \"data-allow-mismatch\": \"attribute\"\n }, null), _createVNode(\"path\", {\n \"d\": \"M80 54a7 7 0 0 1 3 13v27l-2 2h-2a2 2 0 0 1-2-2V67a7 7 0 0 1 3-13z\",\n \"fill\": getUrlById(2),\n \"data-allow-mismatch\": \"attribute\"\n }, null), _createVNode(\"g\", {\n \"opacity\": \".6\",\n \"stroke-linecap\": \"round\",\n \"stroke-width\": \"7\",\n \"data-allow-mismatch\": \"children\"\n }, [_createVNode(\"path\", {\n \"d\": \"M64 47a19 19 0 0 0-5 13c0 5 2 10 5 13\",\n \"stroke\": getUrlById(3)\n }, null), _createVNode(\"path\", {\n \"d\": \"M53 36a34 34 0 0 0 0 48\",\n \"stroke\": getUrlById(3)\n }, null), _createVNode(\"path\", {\n \"d\": \"M95 73a19 19 0 0 0 6-13c0-5-2-9-6-13\",\n \"stroke\": getUrlById(3)\n }, null), _createVNode(\"path\", {\n \"d\": \"M106 84a34 34 0 0 0 0-48\",\n \"stroke\": getUrlById(3)\n }, null)]), _createVNode(\"g\", {\n \"transform\": \"translate(31 105)\"\n }, [_createVNode(\"rect\", {\n \"fill\": \"#EBEDF0\",\n \"width\": \"98\",\n \"height\": \"34\",\n \"rx\": \"2\"\n }, null), _createVNode(\"rect\", {\n \"fill\": \"#FFF\",\n \"x\": \"9\",\n \"y\": \"8\",\n \"width\": \"80\",\n \"height\": \"18\",\n \"rx\": \"1.1\"\n }, null), _createVNode(\"rect\", {\n \"fill\": \"#EBEDF0\",\n \"x\": \"15\",\n \"y\": \"12\",\n \"width\": \"18\",\n \"height\": \"6\",\n \"rx\": \"1.1\"\n }, null)])])]);\n const renderMaterial = () => _createVNode(\"svg\", {\n \"viewBox\": \"0 0 160 160\"\n }, [_createVNode(\"defs\", {\n \"data-allow-mismatch\": \"children\"\n }, [_createVNode(\"linearGradient\", {\n \"x1\": \"50%\",\n \"x2\": \"50%\",\n \"y2\": \"100%\",\n \"id\": getId(5)\n }, [renderStops(\"#F2F3F5\", \"#DCDEE0\")]), _createVNode(\"linearGradient\", {\n \"x1\": \"95%\",\n \"y1\": \"48%\",\n \"x2\": \"5.5%\",\n \"y2\": \"51%\",\n \"id\": getId(6)\n }, [renderStops(\"#EAEDF1\", \"#DCDEE0\")]), _createVNode(\"linearGradient\", {\n \"y1\": \"45%\",\n \"x2\": \"100%\",\n \"y2\": \"54%\",\n \"id\": getId(7)\n }, [renderStops(\"#EAEDF1\", \"#DCDEE0\")])]), renderBuilding(), renderCloud(), _createVNode(\"g\", {\n \"transform\": \"translate(36 50)\",\n \"fill\": \"none\"\n }, [_createVNode(\"g\", {\n \"transform\": \"translate(8)\"\n }, [_createVNode(\"rect\", {\n \"fill\": \"#EBEDF0\",\n \"opacity\": \".6\",\n \"x\": \"38\",\n \"y\": \"13\",\n \"width\": \"36\",\n \"height\": \"53\",\n \"rx\": \"2\"\n }, null), _createVNode(\"rect\", {\n \"fill\": getUrlById(5),\n \"width\": \"64\",\n \"height\": \"66\",\n \"rx\": \"2\",\n \"data-allow-mismatch\": \"attribute\"\n }, null), _createVNode(\"rect\", {\n \"fill\": \"#FFF\",\n \"x\": \"6\",\n \"y\": \"6\",\n \"width\": \"52\",\n \"height\": \"55\",\n \"rx\": \"1\"\n }, null), _createVNode(\"g\", {\n \"transform\": \"translate(15 17)\",\n \"fill\": getUrlById(6),\n \"data-allow-mismatch\": \"attribute\"\n }, [_createVNode(\"rect\", {\n \"width\": \"34\",\n \"height\": \"6\",\n \"rx\": \"1\"\n }, null), _createVNode(\"path\", {\n \"d\": \"M0 14h34v6H0z\"\n }, null), _createVNode(\"rect\", {\n \"y\": \"28\",\n \"width\": \"34\",\n \"height\": \"6\",\n \"rx\": \"1\"\n }, null)])]), _createVNode(\"rect\", {\n \"fill\": getUrlById(7),\n \"y\": \"61\",\n \"width\": \"88\",\n \"height\": \"28\",\n \"rx\": \"1\",\n \"data-allow-mismatch\": \"attribute\"\n }, null), _createVNode(\"rect\", {\n \"fill\": \"#F7F8FA\",\n \"x\": \"29\",\n \"y\": \"72\",\n \"width\": \"30\",\n \"height\": \"6\",\n \"rx\": \"1\"\n }, null)])]);\n const renderError = () => _createVNode(\"svg\", {\n \"viewBox\": \"0 0 160 160\"\n }, [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"x1\": \"50%\",\n \"x2\": \"50%\",\n \"y2\": \"100%\",\n \"id\": getId(8),\n \"data-allow-mismatch\": \"attribute\"\n }, [renderStops(\"#EAEDF1\", \"#DCDEE0\")])]), renderBuilding(), renderCloud(), renderShadow(\"c\"), _createVNode(\"path\", {\n \"d\": \"m59 60 21 21 21-21h3l9 9v3L92 93l21 21v3l-9 9h-3l-21-21-21 21h-3l-9-9v-3l21-21-21-21v-3l9-9h3Z\",\n \"fill\": getUrlById(8),\n \"data-allow-mismatch\": \"attribute\"\n }, null)]);\n const renderSearch = () => _createVNode(\"svg\", {\n \"viewBox\": \"0 0 160 160\"\n }, [_createVNode(\"defs\", {\n \"data-allow-mismatch\": \"children\"\n }, [_createVNode(\"linearGradient\", {\n \"x1\": \"50%\",\n \"y1\": \"100%\",\n \"x2\": \"50%\",\n \"id\": getId(9)\n }, [renderStops(\"#EEE\", \"#D8D8D8\")]), _createVNode(\"linearGradient\", {\n \"x1\": \"100%\",\n \"y1\": \"50%\",\n \"y2\": \"50%\",\n \"id\": getId(10)\n }, [renderStops(\"#F2F3F5\", \"#DCDEE0\")]), _createVNode(\"linearGradient\", {\n \"x1\": \"50%\",\n \"x2\": \"50%\",\n \"y2\": \"100%\",\n \"id\": getId(11)\n }, [renderStops(\"#F2F3F5\", \"#DCDEE0\")]), _createVNode(\"linearGradient\", {\n \"x1\": \"50%\",\n \"x2\": \"50%\",\n \"y2\": \"100%\",\n \"id\": getId(12)\n }, [renderStops(\"#FFF\", \"#F7F8FA\")])]), renderBuilding(), renderCloud(), renderShadow(\"d\"), _createVNode(\"g\", {\n \"transform\": \"rotate(-45 113 -4)\",\n \"fill\": \"none\",\n \"data-allow-mismatch\": \"children\"\n }, [_createVNode(\"rect\", {\n \"fill\": getUrlById(9),\n \"x\": \"24\",\n \"y\": \"52.8\",\n \"width\": \"5.8\",\n \"height\": \"19\",\n \"rx\": \"1\"\n }, null), _createVNode(\"rect\", {\n \"fill\": getUrlById(10),\n \"x\": \"22.1\",\n \"y\": \"67.3\",\n \"width\": \"9.9\",\n \"height\": \"28\",\n \"rx\": \"1\"\n }, null), _createVNode(\"circle\", {\n \"stroke\": getUrlById(11),\n \"stroke-width\": \"8\",\n \"cx\": \"27\",\n \"cy\": \"27\",\n \"r\": \"27\"\n }, null), _createVNode(\"circle\", {\n \"fill\": getUrlById(12),\n \"cx\": \"27\",\n \"cy\": \"27\",\n \"r\": \"16\"\n }, null), _createVNode(\"path\", {\n \"d\": \"M37 7c-8 0-15 5-16 12\",\n \"stroke\": getUrlById(11),\n \"stroke-width\": \"3\",\n \"opacity\": \".5\",\n \"stroke-linecap\": \"round\",\n \"transform\": \"rotate(45 29 13)\"\n }, null)])]);\n const renderImage = () => {\n var _a;\n if (slots.image) {\n return slots.image();\n }\n const PRESET_IMAGES = {\n error: renderError,\n search: renderSearch,\n network: renderNetwork,\n default: renderMaterial\n };\n return ((_a = PRESET_IMAGES[props.image]) == null ? void 0 : _a.call(PRESET_IMAGES)) || _createVNode(\"img\", {\n \"src\": props.image\n }, null);\n };\n return () => _createVNode(\"div\", {\n \"class\": bem()\n }, [_createVNode(\"div\", {\n \"class\": bem(\"image\"),\n \"style\": getSizeStyle(props.imageSize)\n }, [renderImage()]), renderDescription(), renderBottom()]);\n }\n});\nexport {\n stdin_default as default,\n emptyProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Empty from \"./Empty.mjs\";\nconst Empty = withInstall(_Empty);\nvar stdin_default = Empty;\nimport { emptyProps } from \"./Empty.mjs\";\nexport {\n Empty,\n stdin_default as default,\n emptyProps\n};\n","import { ref, watch, computed, nextTick, onMounted, defineComponent, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nimport { truthProp, windowHeight, makeArrayProp, makeStringProp, makeNumberProp, createNamespace } from \"../utils/index.mjs\";\nimport { useRefs } from \"../composables/use-refs.mjs\";\nimport { Tab } from \"../tab/index.mjs\";\nimport { Tabs } from \"../tabs/index.mjs\";\nimport { Empty } from \"../empty/index.mjs\";\nimport { Field } from \"../field/index.mjs\";\nimport { Button } from \"../button/index.mjs\";\nimport { Coupon } from \"../coupon/index.mjs\";\nimport { useRect } from \"@vant/use\";\nconst [name, bem, t] = createNamespace(\"coupon-list\");\nconst couponListProps = {\n code: makeStringProp(\"\"),\n coupons: makeArrayProp(),\n currency: makeStringProp(\"\\xA5\"),\n showCount: truthProp,\n emptyImage: String,\n enabledTitle: String,\n disabledTitle: String,\n disabledCoupons: makeArrayProp(),\n showExchangeBar: truthProp,\n showCloseButton: truthProp,\n closeButtonText: String,\n inputPlaceholder: String,\n exchangeMinLength: makeNumberProp(1),\n exchangeButtonText: String,\n displayedCouponIndex: makeNumberProp(-1),\n exchangeButtonLoading: Boolean,\n exchangeButtonDisabled: Boolean,\n chosenCoupon: {\n type: [Number, Array],\n default: -1\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: couponListProps,\n emits: [\"change\", \"exchange\", \"update:code\"],\n setup(props, {\n emit,\n slots\n }) {\n const [couponRefs, setCouponRefs] = useRefs();\n const root = ref();\n const barRef = ref();\n const activeTab = ref(0);\n const listHeight = ref(0);\n const currentCode = ref(props.code);\n const buttonDisabled = computed(() => !props.exchangeButtonLoading && (props.exchangeButtonDisabled || !currentCode.value || currentCode.value.length < props.exchangeMinLength));\n const updateListHeight = () => {\n const TABS_HEIGHT = 44;\n const rootHeight = useRect(root).height;\n const headerHeight = useRect(barRef).height + TABS_HEIGHT;\n listHeight.value = (rootHeight > headerHeight ? rootHeight : windowHeight.value) - headerHeight;\n };\n const onExchange = () => {\n emit(\"exchange\", currentCode.value);\n if (!props.code) {\n currentCode.value = \"\";\n }\n };\n const scrollToCoupon = (index) => {\n nextTick(() => {\n var _a;\n return (_a = couponRefs.value[index]) == null ? void 0 : _a.scrollIntoView();\n });\n };\n const renderEmpty = () => _createVNode(Empty, {\n \"image\": props.emptyImage\n }, {\n default: () => [_createVNode(\"p\", {\n \"class\": bem(\"empty-tip\")\n }, [t(\"noCoupon\")])]\n });\n const renderExchangeBar = () => {\n if (props.showExchangeBar) {\n return _createVNode(\"div\", {\n \"ref\": barRef,\n \"class\": bem(\"exchange-bar\")\n }, [_createVNode(Field, {\n \"modelValue\": currentCode.value,\n \"onUpdate:modelValue\": ($event) => currentCode.value = $event,\n \"clearable\": true,\n \"border\": false,\n \"class\": bem(\"field\"),\n \"placeholder\": props.inputPlaceholder || t(\"placeholder\"),\n \"maxlength\": \"20\"\n }, null), _createVNode(Button, {\n \"plain\": true,\n \"type\": \"primary\",\n \"class\": bem(\"exchange\"),\n \"text\": props.exchangeButtonText || t(\"exchange\"),\n \"loading\": props.exchangeButtonLoading,\n \"disabled\": buttonDisabled.value,\n \"onClick\": onExchange\n }, null)]);\n }\n };\n const renderCouponTab = () => {\n const {\n coupons,\n chosenCoupon\n } = props;\n const count = props.showCount ? ` (${coupons.length})` : \"\";\n const title = (props.enabledTitle || t(\"enable\")) + count;\n const updateChosenCoupon = (currentValues = [], value = 0) => {\n if (currentValues.includes(value)) {\n return currentValues.filter((item) => item !== value);\n }\n return [...currentValues, value];\n };\n return _createVNode(Tab, {\n \"title\": title\n }, {\n default: () => {\n var _a;\n return [_createVNode(\"div\", {\n \"class\": bem(\"list\", {\n \"with-bottom\": props.showCloseButton\n }),\n \"style\": {\n height: `${listHeight.value}px`\n }\n }, [coupons.map((coupon, index) => _createVNode(Coupon, {\n \"key\": coupon.id,\n \"ref\": setCouponRefs(index),\n \"coupon\": coupon,\n \"chosen\": Array.isArray(chosenCoupon) ? chosenCoupon.includes(index) : index === chosenCoupon,\n \"currency\": props.currency,\n \"onClick\": () => emit(\"change\", Array.isArray(chosenCoupon) ? updateChosenCoupon(chosenCoupon, index) : index)\n }, null)), !coupons.length && renderEmpty(), (_a = slots[\"list-footer\"]) == null ? void 0 : _a.call(slots)])];\n }\n });\n };\n const renderDisabledTab = () => {\n const {\n disabledCoupons\n } = props;\n const count = props.showCount ? ` (${disabledCoupons.length})` : \"\";\n const title = (props.disabledTitle || t(\"disabled\")) + count;\n return _createVNode(Tab, {\n \"title\": title\n }, {\n default: () => {\n var _a;\n return [_createVNode(\"div\", {\n \"class\": bem(\"list\", {\n \"with-bottom\": props.showCloseButton\n }),\n \"style\": {\n height: `${listHeight.value}px`\n }\n }, [disabledCoupons.map((coupon) => _createVNode(Coupon, {\n \"disabled\": true,\n \"key\": coupon.id,\n \"coupon\": coupon,\n \"currency\": props.currency\n }, null)), !disabledCoupons.length && renderEmpty(), (_a = slots[\"disabled-list-footer\"]) == null ? void 0 : _a.call(slots)])];\n }\n });\n };\n watch(() => props.code, (value) => {\n currentCode.value = value;\n });\n watch(windowHeight, updateListHeight);\n watch(currentCode, (value) => emit(\"update:code\", value));\n watch(() => props.displayedCouponIndex, scrollToCoupon);\n onMounted(() => {\n updateListHeight();\n scrollToCoupon(props.displayedCouponIndex);\n });\n return () => _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem()\n }, [renderExchangeBar(), _createVNode(Tabs, {\n \"active\": activeTab.value,\n \"onUpdate:active\": ($event) => activeTab.value = $event,\n \"class\": bem(\"tab\")\n }, {\n default: () => [renderCouponTab(), renderDisabledTab()]\n }), _createVNode(\"div\", {\n \"class\": bem(\"bottom\")\n }, [slots[\"list-button\"] ? slots[\"list-button\"]() : _withDirectives(_createVNode(Button, {\n \"round\": true,\n \"block\": true,\n \"type\": \"primary\",\n \"class\": bem(\"close\"),\n \"text\": props.closeButtonText || t(\"close\"),\n \"onClick\": () => emit(\"change\", Array.isArray(props.chosenCoupon) ? [] : -1)\n }, null), [[_vShow, props.showCloseButton]])])]);\n }\n});\nexport {\n couponListProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _CouponList from \"./CouponList.mjs\";\nconst CouponList = withInstall(_CouponList);\nvar stdin_default = CouponList;\nimport { couponListProps } from \"./CouponList.mjs\";\nexport {\n CouponList,\n couponListProps,\n stdin_default as default\n};\n","import { ref, watch, computed, defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { pick, extend, isDate, isSameValue, createNamespace } from \"../utils/index.mjs\";\nimport { genOptions, sharedProps, getMonthEndDay, pickerInheritKeys, formatValueRange } from \"./utils.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Picker } from \"../picker/index.mjs\";\nconst currentYear = (/* @__PURE__ */ new Date()).getFullYear();\nconst [name] = createNamespace(\"date-picker\");\nconst datePickerProps = extend({}, sharedProps, {\n columnsType: {\n type: Array,\n default: () => [\"year\", \"month\", \"day\"]\n },\n minDate: {\n type: Date,\n default: () => new Date(currentYear - 10, 0, 1),\n validator: isDate\n },\n maxDate: {\n type: Date,\n default: () => new Date(currentYear + 10, 11, 31),\n validator: isDate\n }\n});\nvar stdin_default = defineComponent({\n name,\n props: datePickerProps,\n emits: [\"confirm\", \"cancel\", \"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const currentValues = ref(props.modelValue);\n const updatedByExternalSources = ref(false);\n const pickerRef = ref();\n const computedValues = computed(() => updatedByExternalSources.value ? props.modelValue : currentValues.value);\n const isMinYear = (year) => year === props.minDate.getFullYear();\n const isMaxYear = (year) => year === props.maxDate.getFullYear();\n const isMinMonth = (month) => month === props.minDate.getMonth() + 1;\n const isMaxMonth = (month) => month === props.maxDate.getMonth() + 1;\n const getValue = (type) => {\n const {\n minDate,\n columnsType\n } = props;\n const index = columnsType.indexOf(type);\n const value = computedValues.value[index];\n if (value) {\n return +value;\n }\n switch (type) {\n case \"year\":\n return minDate.getFullYear();\n case \"month\":\n return minDate.getMonth() + 1;\n case \"day\":\n return minDate.getDate();\n }\n };\n const genYearOptions = () => {\n const minYear = props.minDate.getFullYear();\n const maxYear = props.maxDate.getFullYear();\n return genOptions(minYear, maxYear, \"year\", props.formatter, props.filter, computedValues.value);\n };\n const genMonthOptions = () => {\n const year = getValue(\"year\");\n const minMonth = isMinYear(year) ? props.minDate.getMonth() + 1 : 1;\n const maxMonth = isMaxYear(year) ? props.maxDate.getMonth() + 1 : 12;\n return genOptions(minMonth, maxMonth, \"month\", props.formatter, props.filter, computedValues.value);\n };\n const genDayOptions = () => {\n const year = getValue(\"year\");\n const month = getValue(\"month\");\n const minDate = isMinYear(year) && isMinMonth(month) ? props.minDate.getDate() : 1;\n const maxDate = isMaxYear(year) && isMaxMonth(month) ? props.maxDate.getDate() : getMonthEndDay(year, month);\n return genOptions(minDate, maxDate, \"day\", props.formatter, props.filter, computedValues.value);\n };\n const confirm = () => {\n var _a;\n return (_a = pickerRef.value) == null ? void 0 : _a.confirm();\n };\n const getSelectedDate = () => currentValues.value;\n const columns = computed(() => props.columnsType.map((type) => {\n switch (type) {\n case \"year\":\n return genYearOptions();\n case \"month\":\n return genMonthOptions();\n case \"day\":\n return genDayOptions();\n default:\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(`[Vant] DatePicker: unsupported columns type: ${type}`);\n }\n return [];\n }\n }));\n watch(currentValues, (newValues) => {\n if (!isSameValue(newValues, props.modelValue)) {\n emit(\"update:modelValue\", newValues);\n }\n });\n watch(() => props.modelValue, (newValues, oldValues) => {\n updatedByExternalSources.value = isSameValue(oldValues, currentValues.value);\n newValues = formatValueRange(newValues, columns.value);\n if (!isSameValue(newValues, currentValues.value)) {\n currentValues.value = newValues;\n }\n updatedByExternalSources.value = false;\n }, {\n immediate: true\n });\n const onChange = (...args) => emit(\"change\", ...args);\n const onCancel = (...args) => emit(\"cancel\", ...args);\n const onConfirm = (...args) => emit(\"confirm\", ...args);\n useExpose({\n confirm,\n getSelectedDate\n });\n return () => _createVNode(Picker, _mergeProps({\n \"ref\": pickerRef,\n \"modelValue\": currentValues.value,\n \"onUpdate:modelValue\": ($event) => currentValues.value = $event,\n \"columns\": columns.value,\n \"onChange\": onChange,\n \"onCancel\": onCancel,\n \"onConfirm\": onConfirm\n }, pick(props, pickerInheritKeys)), slots);\n }\n});\nexport {\n datePickerProps,\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _DatePicker from \"./DatePicker.mjs\";\nconst DatePicker = withInstall(_DatePicker);\nvar stdin_default = DatePicker;\nimport { datePickerProps } from \"./DatePicker.mjs\";\nexport {\n DatePicker,\n datePickerProps,\n stdin_default as default\n};\n","import { ref, reactive, withKeys, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { noop, pick, extend, addUnit, truthProp, isFunction, BORDER_TOP, BORDER_LEFT, unknownProp, numericProp, makeStringProp, callInterceptor, createNamespace } from \"../utils/index.mjs\";\nimport { popupSharedProps, popupSharedPropKeys } from \"../popup/shared.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nimport { Button } from \"../button/index.mjs\";\nimport { ActionBar } from \"../action-bar/index.mjs\";\nimport { ActionBarButton } from \"../action-bar-button/index.mjs\";\nconst [name, bem, t] = createNamespace(\"dialog\");\nconst dialogProps = extend({}, popupSharedProps, {\n title: String,\n theme: String,\n width: numericProp,\n message: [String, Function],\n callback: Function,\n allowHtml: Boolean,\n className: unknownProp,\n transition: makeStringProp(\"van-dialog-bounce\"),\n messageAlign: String,\n closeOnPopstate: truthProp,\n showCancelButton: Boolean,\n cancelButtonText: String,\n cancelButtonColor: String,\n cancelButtonDisabled: Boolean,\n confirmButtonText: String,\n confirmButtonColor: String,\n confirmButtonDisabled: Boolean,\n showConfirmButton: truthProp,\n closeOnClickOverlay: Boolean,\n keyboardEnabled: truthProp,\n destroyOnClose: Boolean\n});\nconst popupInheritKeys = [...popupSharedPropKeys, \"transition\", \"closeOnPopstate\", \"destroyOnClose\"];\nvar stdin_default = defineComponent({\n name,\n props: dialogProps,\n emits: [\"confirm\", \"cancel\", \"keydown\", \"update:show\"],\n setup(props, {\n emit,\n slots\n }) {\n const root = ref();\n const loading = reactive({\n confirm: false,\n cancel: false\n });\n const updateShow = (value) => emit(\"update:show\", value);\n const close = (action) => {\n var _a;\n updateShow(false);\n (_a = props.callback) == null ? void 0 : _a.call(props, action);\n };\n const getActionHandler = (action) => () => {\n if (!props.show) {\n return;\n }\n emit(action);\n if (props.beforeClose) {\n loading[action] = true;\n callInterceptor(props.beforeClose, {\n args: [action],\n done() {\n close(action);\n loading[action] = false;\n },\n canceled() {\n loading[action] = false;\n }\n });\n } else {\n close(action);\n }\n };\n const onCancel = getActionHandler(\"cancel\");\n const onConfirm = getActionHandler(\"confirm\");\n const onKeydown = withKeys((event) => {\n var _a, _b;\n if (!props.keyboardEnabled) {\n return;\n }\n if (event.target !== ((_b = (_a = root.value) == null ? void 0 : _a.popupRef) == null ? void 0 : _b.value)) {\n return;\n }\n const onEventType = {\n Enter: props.showConfirmButton ? onConfirm : noop,\n Escape: props.showCancelButton ? onCancel : noop\n };\n onEventType[event.key]();\n emit(\"keydown\", event);\n }, [\"enter\", \"esc\"]);\n const renderTitle = () => {\n const title = slots.title ? slots.title() : props.title;\n if (title) {\n return _createVNode(\"div\", {\n \"class\": bem(\"header\", {\n isolated: !props.message && !slots.default\n })\n }, [title]);\n }\n };\n const renderMessage = (hasTitle) => {\n const {\n message,\n allowHtml,\n messageAlign\n } = props;\n const classNames = bem(\"message\", {\n \"has-title\": hasTitle,\n [messageAlign]: messageAlign\n });\n const content = isFunction(message) ? message() : message;\n if (allowHtml && typeof content === \"string\") {\n return _createVNode(\"div\", {\n \"class\": classNames,\n \"innerHTML\": content\n }, null);\n }\n return _createVNode(\"div\", {\n \"class\": classNames\n }, [content]);\n };\n const renderContent = () => {\n if (slots.default) {\n return _createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [slots.default()]);\n }\n const {\n title,\n message,\n allowHtml\n } = props;\n if (message) {\n const hasTitle = !!(title || slots.title);\n return _createVNode(\"div\", {\n \"key\": allowHtml ? 1 : 0,\n \"class\": bem(\"content\", {\n isolated: !hasTitle\n })\n }, [renderMessage(hasTitle)]);\n }\n };\n const renderButtons = () => _createVNode(\"div\", {\n \"class\": [BORDER_TOP, bem(\"footer\")]\n }, [props.showCancelButton && _createVNode(Button, {\n \"size\": \"large\",\n \"text\": props.cancelButtonText || t(\"cancel\"),\n \"class\": bem(\"cancel\"),\n \"style\": {\n color: props.cancelButtonColor\n },\n \"loading\": loading.cancel,\n \"disabled\": props.cancelButtonDisabled,\n \"onClick\": onCancel\n }, null), props.showConfirmButton && _createVNode(Button, {\n \"size\": \"large\",\n \"text\": props.confirmButtonText || t(\"confirm\"),\n \"class\": [bem(\"confirm\"), {\n [BORDER_LEFT]: props.showCancelButton\n }],\n \"style\": {\n color: props.confirmButtonColor\n },\n \"loading\": loading.confirm,\n \"disabled\": props.confirmButtonDisabled,\n \"onClick\": onConfirm\n }, null)]);\n const renderRoundButtons = () => _createVNode(ActionBar, {\n \"class\": bem(\"footer\")\n }, {\n default: () => [props.showCancelButton && _createVNode(ActionBarButton, {\n \"type\": \"warning\",\n \"text\": props.cancelButtonText || t(\"cancel\"),\n \"class\": bem(\"cancel\"),\n \"color\": props.cancelButtonColor,\n \"loading\": loading.cancel,\n \"disabled\": props.cancelButtonDisabled,\n \"onClick\": onCancel\n }, null), props.showConfirmButton && _createVNode(ActionBarButton, {\n \"type\": \"danger\",\n \"text\": props.confirmButtonText || t(\"confirm\"),\n \"class\": bem(\"confirm\"),\n \"color\": props.confirmButtonColor,\n \"loading\": loading.confirm,\n \"disabled\": props.confirmButtonDisabled,\n \"onClick\": onConfirm\n }, null)]\n });\n const renderFooter = () => {\n if (slots.footer) {\n return slots.footer();\n }\n return props.theme === \"round-button\" ? renderRoundButtons() : renderButtons();\n };\n return () => {\n const {\n width,\n title,\n theme,\n message,\n className\n } = props;\n return _createVNode(Popup, _mergeProps({\n \"ref\": root,\n \"role\": \"dialog\",\n \"class\": [bem([theme]), className],\n \"style\": {\n width: addUnit(width)\n },\n \"tabindex\": 0,\n \"aria-labelledby\": title || message,\n \"onKeydown\": onKeydown,\n \"onUpdate:show\": updateShow\n }, pick(props, popupInheritKeys)), {\n default: () => [renderTitle(), renderContent(), renderFooter()]\n });\n };\n }\n});\nexport {\n stdin_default as default,\n dialogProps\n};\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { extend, inBrowser } from \"../utils/index.mjs\";\nimport { mountComponent, usePopupState } from \"../utils/mount-component.mjs\";\nimport Dialog from \"./Dialog.mjs\";\nlet instance;\nconst DEFAULT_OPTIONS = {\n title: \"\",\n width: \"\",\n theme: null,\n message: \"\",\n overlay: true,\n callback: null,\n teleport: \"body\",\n className: \"\",\n allowHtml: false,\n lockScroll: true,\n transition: void 0,\n beforeClose: null,\n overlayClass: \"\",\n overlayStyle: void 0,\n messageAlign: \"\",\n cancelButtonText: \"\",\n cancelButtonColor: null,\n cancelButtonDisabled: false,\n confirmButtonText: \"\",\n confirmButtonColor: null,\n confirmButtonDisabled: false,\n showConfirmButton: true,\n showCancelButton: false,\n closeOnPopstate: true,\n closeOnClickOverlay: false,\n destroyOnClose: false\n};\nlet currentOptions = extend({}, DEFAULT_OPTIONS);\nfunction initInstance() {\n const Wrapper = {\n setup() {\n const {\n state,\n toggle\n } = usePopupState();\n return () => _createVNode(Dialog, _mergeProps(state, {\n \"onUpdate:show\": toggle\n }), null);\n }\n };\n ({\n instance\n } = mountComponent(Wrapper));\n}\nfunction showDialog(options) {\n if (!inBrowser) {\n return Promise.resolve(void 0);\n }\n return new Promise((resolve, reject) => {\n if (!instance) {\n initInstance();\n }\n instance.open(extend({}, currentOptions, options, {\n callback: (action) => {\n (action === \"confirm\" ? resolve : reject)(action);\n }\n }));\n });\n}\nconst setDialogDefaultOptions = (options) => {\n extend(currentOptions, options);\n};\nconst resetDialogDefaultOptions = () => {\n currentOptions = extend({}, DEFAULT_OPTIONS);\n};\nconst showConfirmDialog = (options) => showDialog(extend({\n showCancelButton: true\n}, options));\nconst closeDialog = () => {\n if (instance) {\n instance.toggle(false);\n }\n};\nexport {\n closeDialog,\n resetDialogDefaultOptions,\n setDialogDefaultOptions,\n showConfirmDialog,\n showDialog\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Dialog from \"./Dialog.mjs\";\nconst Dialog = withInstall(_Dialog);\nvar stdin_default = Dialog;\nimport { dialogProps } from \"./Dialog.mjs\";\nimport {\n showDialog,\n closeDialog,\n showConfirmDialog,\n setDialogDefaultOptions,\n resetDialogDefaultOptions\n} from \"./function-call.mjs\";\nexport {\n Dialog,\n closeDialog,\n stdin_default as default,\n dialogProps,\n resetDialogDefaultOptions,\n setDialogDefaultOptions,\n showConfirmDialog,\n showDialog\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"divider\");\nconst dividerProps = {\n dashed: Boolean,\n hairline: truthProp,\n vertical: Boolean,\n contentPosition: makeStringProp(\"center\")\n};\nvar stdin_default = defineComponent({\n name,\n props: dividerProps,\n setup(props, {\n slots\n }) {\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"role\": \"separator\",\n \"class\": bem({\n dashed: props.dashed,\n hairline: props.hairline,\n vertical: props.vertical,\n [`content-${props.contentPosition}`]: !!slots.default && !props.vertical\n })\n }, [!props.vertical && ((_a = slots.default) == null ? void 0 : _a.call(slots))]);\n };\n }\n});\nexport {\n stdin_default as default,\n dividerProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Divider from \"./Divider.mjs\";\nconst Divider = withInstall(_Divider);\nvar stdin_default = Divider;\nimport { dividerProps } from \"./Divider.mjs\";\nexport {\n Divider,\n stdin_default as default,\n dividerProps\n};\n","import { ref, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isDef, truthProp, numericProp, windowHeight, makeStringProp, makeNumericProp, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { useId } from \"../composables/use-id.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { useRect, useChildren, useClickAway, useScrollParent, useEventListener } from \"@vant/use\";\nconst [name, bem] = createNamespace(\"dropdown-menu\");\nconst dropdownMenuProps = {\n overlay: truthProp,\n zIndex: numericProp,\n duration: makeNumericProp(0.2),\n direction: makeStringProp(\"down\"),\n activeColor: String,\n autoLocate: Boolean,\n closeOnClickOutside: truthProp,\n closeOnClickOverlay: truthProp,\n swipeThreshold: numericProp\n};\nconst DROPDOWN_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: dropdownMenuProps,\n setup(props, {\n slots\n }) {\n const id = useId();\n const root = ref();\n const barRef = ref();\n const offset = ref(0);\n const {\n children,\n linkChildren\n } = useChildren(DROPDOWN_KEY);\n const scrollParent = useScrollParent(root);\n const opened = computed(() => children.some((item) => item.state.showWrapper));\n const scrollable = computed(() => props.swipeThreshold && children.length > +props.swipeThreshold);\n const barStyle = computed(() => {\n if (opened.value && isDef(props.zIndex)) {\n return {\n zIndex: +props.zIndex + 1\n };\n }\n });\n const close = () => {\n children.forEach((item) => {\n item.toggle(false);\n });\n };\n const onClickAway = () => {\n if (props.closeOnClickOutside) {\n close();\n }\n };\n const updateOffset = () => {\n if (barRef.value) {\n const rect = useRect(barRef);\n if (props.direction === \"down\") {\n offset.value = rect.bottom;\n } else {\n offset.value = windowHeight.value - rect.top;\n }\n }\n };\n const onScroll = () => {\n if (opened.value) {\n updateOffset();\n }\n };\n const toggleItem = (active) => {\n children.forEach((item, index) => {\n if (index === active) {\n item.toggle();\n } else if (item.state.showPopup) {\n item.toggle(false, {\n immediate: true\n });\n }\n });\n };\n const renderTitle = (item, index) => {\n const {\n showPopup\n } = item.state;\n const {\n disabled,\n titleClass\n } = item;\n return _createVNode(\"div\", {\n \"id\": `${id}-${index}`,\n \"role\": \"button\",\n \"tabindex\": disabled ? void 0 : 0,\n \"data-allow-mismatch\": \"attribute\",\n \"class\": [bem(\"item\", {\n disabled,\n grow: scrollable.value\n }), {\n [HAPTICS_FEEDBACK]: !disabled\n }],\n \"onClick\": () => {\n if (!disabled) {\n toggleItem(index);\n }\n }\n }, [_createVNode(\"span\", {\n \"class\": [bem(\"title\", {\n down: showPopup === (props.direction === \"down\"),\n active: showPopup\n }), titleClass],\n \"style\": {\n color: showPopup ? props.activeColor : \"\"\n }\n }, [_createVNode(\"div\", {\n \"class\": \"van-ellipsis\"\n }, [item.renderTitle()])])]);\n };\n useExpose({\n close,\n opened\n });\n linkChildren({\n id,\n props,\n offset,\n opened,\n updateOffset\n });\n useClickAway(root, onClickAway);\n useEventListener(\"scroll\", onScroll, {\n target: scrollParent,\n passive: true\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem()\n }, [_createVNode(\"div\", {\n \"ref\": barRef,\n \"style\": barStyle.value,\n \"class\": bem(\"bar\", {\n opened: opened.value,\n scrollable: scrollable.value\n })\n }, [children.map(renderTitle)]), (_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n DROPDOWN_KEY,\n stdin_default as default,\n dropdownMenuProps\n};\n","import { reactive, Teleport, defineComponent, ref, createVNode as _createVNode, vShow as _vShow, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\nimport { truthProp, unknownProp, getZIndexStyle, createNamespace, makeArrayProp, getContainingBlock } from \"../utils/index.mjs\";\nimport { DROPDOWN_KEY } from \"../dropdown-menu/DropdownMenu.mjs\";\nimport { useParent, useRect } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Cell } from \"../cell/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nconst [name, bem] = createNamespace(\"dropdown-item\");\nconst dropdownItemProps = {\n title: String,\n options: makeArrayProp(),\n disabled: Boolean,\n teleport: [String, Object],\n lazyRender: truthProp,\n modelValue: unknownProp,\n titleClass: unknownProp\n};\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: dropdownItemProps,\n emits: [\"open\", \"opened\", \"close\", \"closed\", \"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots,\n attrs\n }) {\n const state = reactive({\n showPopup: false,\n transition: true,\n showWrapper: false\n });\n const wrapperRef = ref();\n const {\n parent,\n index\n } = useParent(DROPDOWN_KEY);\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <DropdownItem> must be a child component of <DropdownMenu>.\");\n }\n return;\n }\n const getEmitter = (name2) => () => emit(name2);\n const onOpen = getEmitter(\"open\");\n const onClose = getEmitter(\"close\");\n const onOpened = getEmitter(\"opened\");\n const onClosed = () => {\n state.showWrapper = false;\n emit(\"closed\");\n };\n const onClickWrapper = (event) => {\n if (props.teleport) {\n event.stopPropagation();\n }\n };\n const toggle = (show = !state.showPopup, options = {}) => {\n if (show === state.showPopup) {\n return;\n }\n state.showPopup = show;\n state.transition = !options.immediate;\n if (show) {\n parent.updateOffset();\n state.showWrapper = true;\n }\n };\n const renderTitle = () => {\n if (slots.title) {\n return slots.title();\n }\n if (props.title) {\n return props.title;\n }\n const match = props.options.find((option) => option.value === props.modelValue);\n return match ? match.text : \"\";\n };\n const renderOption = (option) => {\n const {\n activeColor\n } = parent.props;\n const {\n disabled\n } = option;\n const active = option.value === props.modelValue;\n const onClick = () => {\n if (disabled) {\n return;\n }\n state.showPopup = false;\n if (option.value !== props.modelValue) {\n emit(\"update:modelValue\", option.value);\n emit(\"change\", option.value);\n }\n };\n const renderIcon = () => {\n if (active) {\n return _createVNode(Icon, {\n \"class\": bem(\"icon\"),\n \"color\": disabled ? void 0 : activeColor,\n \"name\": \"success\"\n }, null);\n }\n };\n return _createVNode(Cell, {\n \"role\": \"menuitem\",\n \"key\": String(option.value),\n \"icon\": option.icon,\n \"title\": option.text,\n \"class\": bem(\"option\", {\n active,\n disabled\n }),\n \"style\": {\n color: active ? activeColor : \"\"\n },\n \"tabindex\": active ? 0 : -1,\n \"clickable\": !disabled,\n \"onClick\": onClick\n }, {\n value: renderIcon\n });\n };\n const renderContent = () => {\n const {\n offset\n } = parent;\n const {\n autoLocate,\n zIndex,\n overlay,\n duration,\n direction,\n closeOnClickOverlay\n } = parent.props;\n const style = getZIndexStyle(zIndex);\n let offsetValue = offset.value;\n if (autoLocate && wrapperRef.value) {\n const offsetParent = getContainingBlock(wrapperRef.value);\n if (offsetParent) {\n offsetValue -= useRect(offsetParent).top;\n }\n }\n if (direction === \"down\") {\n style.top = `${offsetValue}px`;\n } else {\n style.bottom = `${offsetValue}px`;\n }\n return _withDirectives(_createVNode(\"div\", _mergeProps({\n \"ref\": wrapperRef,\n \"style\": style,\n \"class\": bem([direction]),\n \"onClick\": onClickWrapper\n }, attrs), [_createVNode(Popup, {\n \"show\": state.showPopup,\n \"onUpdate:show\": ($event) => state.showPopup = $event,\n \"role\": \"menu\",\n \"class\": bem(\"content\"),\n \"overlay\": overlay,\n \"overlayProps\": {\n duration: state.transition && !parent.opened.value ? duration : 0\n },\n \"position\": direction === \"down\" ? \"top\" : \"bottom\",\n \"duration\": state.transition ? duration : 0,\n \"lazyRender\": props.lazyRender,\n \"overlayStyle\": {\n position: \"absolute\"\n },\n \"aria-labelledby\": `${parent.id}-${index.value}`,\n \"data-allow-mismatch\": \"attribute\",\n \"closeOnClickOverlay\": closeOnClickOverlay,\n \"onOpen\": onOpen,\n \"onClose\": onClose,\n \"onOpened\": onOpened,\n \"onClosed\": onClosed\n }, {\n default: () => {\n var _a;\n return [props.options.map(renderOption), (_a = slots.default) == null ? void 0 : _a.call(slots)];\n }\n })]), [[_vShow, state.showWrapper]]);\n };\n useExpose({\n state,\n toggle,\n renderTitle\n });\n return () => {\n if (props.teleport) {\n return _createVNode(Teleport, {\n \"to\": props.teleport\n }, {\n default: () => [renderContent()]\n });\n }\n return renderContent();\n };\n }\n});\nexport {\n stdin_default as default,\n dropdownItemProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _DropdownItem from \"./DropdownItem.mjs\";\nconst DropdownItem = withInstall(_DropdownItem);\nvar stdin_default = DropdownItem;\nimport { dropdownItemProps } from \"./DropdownItem.mjs\";\nexport {\n DropdownItem,\n stdin_default as default,\n dropdownItemProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _DropdownMenu from \"./DropdownMenu.mjs\";\nconst DropdownMenu = withInstall(_DropdownMenu);\nvar stdin_default = DropdownMenu;\nimport { dropdownMenuProps } from \"./DropdownMenu.mjs\";\nexport {\n DropdownMenu,\n stdin_default as default,\n dropdownMenuProps\n};\n","import { Teleport, computed, defineComponent, nextTick, onMounted, ref, watch, onActivated, onDeactivated, createVNode as _createVNode, vShow as _vShow, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\nimport { pick, addUnit, closest, createNamespace, isObject, makeStringProp, windowWidth, windowHeight } from \"../utils/index.mjs\";\nimport { useRect, useEventListener } from \"@vant/use\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport Icon from \"../icon/index.mjs\";\nconst floatingBubbleProps = {\n gap: {\n type: [Number, Object],\n default: 24\n },\n icon: String,\n axis: makeStringProp(\"y\"),\n magnetic: String,\n offset: Object,\n teleport: {\n type: [String, Object],\n default: \"body\"\n }\n};\nconst [name, bem] = createNamespace(\"floating-bubble\");\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: floatingBubbleProps,\n emits: [\"click\", \"update:offset\", \"offsetChange\"],\n setup(props, {\n slots,\n emit,\n attrs\n }) {\n const rootRef = ref();\n const state = ref({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n const gapX = computed(() => isObject(props.gap) ? props.gap.x : props.gap);\n const gapY = computed(() => isObject(props.gap) ? props.gap.y : props.gap);\n const boundary = computed(() => ({\n top: gapY.value,\n right: windowWidth.value - state.value.width - gapX.value,\n bottom: windowHeight.value - state.value.height - gapY.value,\n left: gapX.value\n }));\n const dragging = ref(false);\n let initialized = false;\n const rootStyle = computed(() => {\n const style = {};\n const x = addUnit(state.value.x);\n const y = addUnit(state.value.y);\n style.transform = `translate3d(${x}, ${y}, 0)`;\n if (dragging.value || !initialized) {\n style.transition = \"none\";\n }\n return style;\n });\n const updateState = () => {\n if (!show.value) return;\n const {\n width,\n height\n } = useRect(rootRef.value);\n const {\n offset\n } = props;\n state.value = {\n x: offset ? offset.x : windowWidth.value - width - gapX.value,\n y: offset ? offset.y : windowHeight.value - height - gapY.value,\n width,\n height\n };\n };\n const touch = useTouch();\n let prevX = 0;\n let prevY = 0;\n const onTouchStart = (e) => {\n touch.start(e);\n dragging.value = true;\n prevX = state.value.x;\n prevY = state.value.y;\n };\n const onTouchMove = (e) => {\n e.preventDefault();\n touch.move(e);\n if (props.axis === \"lock\") return;\n if (!touch.isTap.value) {\n if (props.axis === \"x\" || props.axis === \"xy\") {\n let nextX = prevX + touch.deltaX.value;\n if (nextX < boundary.value.left) nextX = boundary.value.left;\n if (nextX > boundary.value.right) nextX = boundary.value.right;\n state.value.x = nextX;\n }\n if (props.axis === \"y\" || props.axis === \"xy\") {\n let nextY = prevY + touch.deltaY.value;\n if (nextY < boundary.value.top) nextY = boundary.value.top;\n if (nextY > boundary.value.bottom) nextY = boundary.value.bottom;\n state.value.y = nextY;\n }\n const offset = pick(state.value, [\"x\", \"y\"]);\n emit(\"update:offset\", offset);\n }\n };\n useEventListener(\"touchmove\", onTouchMove, {\n target: rootRef\n });\n const onTouchEnd = () => {\n dragging.value = false;\n nextTick(() => {\n if (props.magnetic === \"x\") {\n const nextX = closest([boundary.value.left, boundary.value.right], state.value.x);\n state.value.x = nextX;\n }\n if (props.magnetic === \"y\") {\n const nextY = closest([boundary.value.top, boundary.value.bottom], state.value.y);\n state.value.y = nextY;\n }\n if (!touch.isTap.value) {\n const offset = pick(state.value, [\"x\", \"y\"]);\n emit(\"update:offset\", offset);\n if (prevX !== offset.x || prevY !== offset.y) {\n emit(\"offsetChange\", offset);\n }\n }\n });\n };\n const onClick = (e) => {\n if (touch.isTap.value) emit(\"click\", e);\n else e.stopPropagation();\n };\n onMounted(() => {\n updateState();\n nextTick(() => {\n initialized = true;\n });\n });\n watch([windowWidth, windowHeight, gapX, gapY, () => props.offset], updateState, {\n deep: true\n });\n const show = ref(true);\n onActivated(() => {\n show.value = true;\n });\n onDeactivated(() => {\n if (props.teleport) {\n show.value = false;\n }\n });\n return () => {\n const Content = _withDirectives(_createVNode(\"div\", _mergeProps({\n \"class\": bem(),\n \"ref\": rootRef,\n \"onTouchstartPassive\": onTouchStart,\n \"onTouchend\": onTouchEnd,\n \"onTouchcancel\": onTouchEnd,\n \"onClickCapture\": onClick,\n \"style\": rootStyle.value\n }, attrs), [slots.default ? slots.default() : _createVNode(Icon, {\n \"name\": props.icon,\n \"class\": bem(\"icon\")\n }, null)]), [[_vShow, show.value]]);\n return props.teleport ? _createVNode(Teleport, {\n \"to\": props.teleport\n }, {\n default: () => [Content]\n }) : Content;\n };\n }\n});\nexport {\n stdin_default as default,\n floatingBubbleProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _FloatingBubble from \"./FloatingBubble.mjs\";\nconst FloatingBubble = withInstall(_FloatingBubble);\nvar stdin_default = FloatingBubble;\nimport { floatingBubbleProps } from \"./FloatingBubble.mjs\";\nexport {\n FloatingBubble,\n stdin_default as default,\n floatingBubbleProps\n};\n","import { ref, watch, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { addUnit, closest, createNamespace, makeArrayProp, makeNumericProp, preventDefault, truthProp, windowHeight } from \"../utils/index.mjs\";\nimport { useEventListener } from \"@vant/use\";\nimport { useLockScroll } from \"../composables/use-lock-scroll.mjs\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { useSyncPropRef } from \"../composables/use-sync-prop-ref.mjs\";\nconst floatingPanelProps = {\n height: makeNumericProp(0),\n anchors: makeArrayProp(),\n duration: makeNumericProp(0.3),\n magnetic: truthProp,\n contentDraggable: truthProp,\n lockScroll: Boolean,\n safeAreaInsetBottom: truthProp\n};\nconst [name, bem] = createNamespace(\"floating-panel\");\nvar stdin_default = defineComponent({\n name,\n props: floatingPanelProps,\n emits: [\"heightChange\", \"update:height\"],\n setup(props, {\n emit,\n slots\n }) {\n const DAMP = 0.2;\n const rootRef = ref();\n const contentRef = ref();\n const height = useSyncPropRef(() => +props.height, (value) => emit(\"update:height\", value));\n const boundary = computed(() => {\n var _a, _b;\n return {\n min: (_a = props.anchors[0]) != null ? _a : 100,\n max: (_b = props.anchors[props.anchors.length - 1]) != null ? _b : Math.round(windowHeight.value * 0.6)\n };\n });\n const anchors = computed(() => props.anchors.length >= 2 ? props.anchors : [boundary.value.min, boundary.value.max]);\n const dragging = ref(false);\n const rootStyle = computed(() => ({\n height: addUnit(boundary.value.max),\n transform: `translateY(calc(100% + ${addUnit(-height.value)}))`,\n transition: !dragging.value ? `transform ${props.duration}s cubic-bezier(0.18, 0.89, 0.32, 1.28)` : \"none\"\n }));\n const ease = (moveY) => {\n const absDistance = Math.abs(moveY);\n const {\n min,\n max\n } = boundary.value;\n if (absDistance > max) {\n return -(max + (absDistance - max) * DAMP);\n }\n if (absDistance < min) {\n return -(min - (min - absDistance) * DAMP);\n }\n return moveY;\n };\n let startY;\n let maxScroll = -1;\n const touch = useTouch();\n const onTouchstart = (e) => {\n touch.start(e);\n dragging.value = true;\n startY = -height.value;\n maxScroll = -1;\n };\n const onTouchmove = (e) => {\n var _a;\n touch.move(e);\n const target = e.target;\n if (contentRef.value === target || ((_a = contentRef.value) == null ? void 0 : _a.contains(target))) {\n const {\n scrollTop\n } = contentRef.value;\n maxScroll = Math.max(maxScroll, scrollTop);\n if (!props.contentDraggable) return;\n if (-startY < boundary.value.max) {\n preventDefault(e, true);\n } else if (!(scrollTop <= 0 && touch.deltaY.value > 0) || maxScroll > 0) {\n return;\n }\n }\n const moveY = touch.deltaY.value + startY;\n height.value = -ease(moveY);\n };\n const onTouchend = () => {\n maxScroll = -1;\n dragging.value = false;\n if (props.magnetic) {\n height.value = closest(anchors.value, height.value);\n } else {\n const {\n min,\n max\n } = boundary.value;\n height.value = Math.max(min, Math.min(max, height.value));\n }\n if (height.value !== -startY) {\n emit(\"heightChange\", {\n height: height.value\n });\n }\n };\n watch(boundary, () => {\n height.value = closest(anchors.value, height.value);\n }, {\n immediate: true\n });\n useLockScroll(rootRef, () => props.lockScroll || dragging.value);\n useEventListener(\"touchmove\", onTouchmove, {\n target: rootRef\n });\n const renderHeader = () => {\n if (slots.header) {\n return slots.header();\n }\n return _createVNode(\"div\", {\n \"class\": bem(\"header\")\n }, [_createVNode(\"div\", {\n \"class\": bem(\"header-bar\")\n }, null)]);\n };\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": [bem(), {\n \"van-safe-area-bottom\": props.safeAreaInsetBottom\n }],\n \"ref\": rootRef,\n \"style\": rootStyle.value,\n \"onTouchstartPassive\": onTouchstart,\n \"onTouchend\": onTouchend,\n \"onTouchcancel\": onTouchend\n }, [renderHeader(), _createVNode(\"div\", {\n \"class\": bem(\"content\"),\n \"ref\": contentRef,\n \"style\": {\n paddingBottom: addUnit(boundary.value.max - height.value)\n }\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)])]);\n };\n }\n});\nexport {\n stdin_default as default,\n floatingPanelProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _FloatingPanel from \"./FloatingPanel.mjs\";\nconst FloatingPanel = withInstall(_FloatingPanel);\nvar stdin_default = FloatingPanel;\nimport { floatingPanelProps } from \"./FloatingPanel.mjs\";\nexport {\n FloatingPanel,\n stdin_default as default,\n floatingPanelProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { createNamespace, addUnit, truthProp, numericProp, makeNumericProp } from \"../utils/index.mjs\";\nimport { BORDER_TOP } from \"../utils/constant.mjs\";\nimport { useChildren } from \"@vant/use\";\nconst [name, bem] = createNamespace(\"grid\");\nconst gridProps = {\n square: Boolean,\n center: truthProp,\n border: truthProp,\n gutter: numericProp,\n reverse: Boolean,\n iconSize: numericProp,\n direction: String,\n clickable: Boolean,\n columnNum: makeNumericProp(4)\n};\nconst GRID_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: gridProps,\n setup(props, {\n slots\n }) {\n const {\n linkChildren\n } = useChildren(GRID_KEY);\n linkChildren({\n props\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"style\": {\n paddingLeft: addUnit(props.gutter)\n },\n \"class\": [bem(), {\n [BORDER_TOP]: props.border && !props.gutter\n }]\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n GRID_KEY,\n stdin_default as default,\n gridProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Grid from \"./Grid.mjs\";\nconst Grid = withInstall(_Grid);\nvar stdin_default = Grid;\nimport { gridProps } from \"./Grid.mjs\";\nexport {\n Grid,\n stdin_default as default,\n gridProps\n};\n","import { computed, defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { BORDER, extend, addUnit, numericProp, createNamespace } from \"../utils/index.mjs\";\nimport { GRID_KEY } from \"../grid/Grid.mjs\";\nimport { useParent } from \"@vant/use\";\nimport { useRoute, routeProps } from \"../composables/use-route.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Badge } from \"../badge/index.mjs\";\nconst [name, bem] = createNamespace(\"grid-item\");\nconst gridItemProps = extend({}, routeProps, {\n dot: Boolean,\n text: String,\n icon: String,\n badge: numericProp,\n iconColor: String,\n iconPrefix: String,\n badgeProps: Object\n});\nvar stdin_default = defineComponent({\n name,\n props: gridItemProps,\n setup(props, {\n slots\n }) {\n const {\n parent,\n index\n } = useParent(GRID_KEY);\n const route = useRoute();\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <GridItem> must be a child component of <Grid>.\");\n }\n return;\n }\n const rootStyle = computed(() => {\n const {\n square,\n gutter,\n columnNum\n } = parent.props;\n const percent = `${100 / +columnNum}%`;\n const style = {\n flexBasis: percent\n };\n if (square) {\n style.paddingTop = percent;\n } else if (gutter) {\n const gutterValue = addUnit(gutter);\n style.paddingRight = gutterValue;\n if (index.value >= +columnNum) {\n style.marginTop = gutterValue;\n }\n }\n return style;\n });\n const contentStyle = computed(() => {\n const {\n square,\n gutter\n } = parent.props;\n if (square && gutter) {\n const gutterValue = addUnit(gutter);\n return {\n right: gutterValue,\n bottom: gutterValue,\n height: \"auto\"\n };\n }\n });\n const renderIcon = () => {\n if (slots.icon) {\n return _createVNode(Badge, _mergeProps({\n \"dot\": props.dot,\n \"content\": props.badge\n }, props.badgeProps), {\n default: slots.icon\n });\n }\n if (props.icon) {\n return _createVNode(Icon, {\n \"dot\": props.dot,\n \"name\": props.icon,\n \"size\": parent.props.iconSize,\n \"badge\": props.badge,\n \"class\": bem(\"icon\"),\n \"color\": props.iconColor,\n \"badgeProps\": props.badgeProps,\n \"classPrefix\": props.iconPrefix\n }, null);\n }\n };\n const renderText = () => {\n if (slots.text) {\n return slots.text();\n }\n if (props.text) {\n return _createVNode(\"span\", {\n \"class\": bem(\"text\")\n }, [props.text]);\n }\n };\n const renderContent = () => {\n if (slots.default) {\n return slots.default();\n }\n return [renderIcon(), renderText()];\n };\n return () => {\n const {\n center,\n border,\n square,\n gutter,\n reverse,\n direction,\n clickable\n } = parent.props;\n const classes = [bem(\"content\", [direction, {\n center,\n square,\n reverse,\n clickable,\n surround: border && gutter\n }]), {\n [BORDER]: border\n }];\n return _createVNode(\"div\", {\n \"class\": [bem({\n square\n })],\n \"style\": rootStyle.value\n }, [_createVNode(\"div\", {\n \"role\": clickable ? \"button\" : void 0,\n \"class\": classes,\n \"style\": contentStyle.value,\n \"tabindex\": clickable ? 0 : void 0,\n \"onClick\": route\n }, [renderContent()])]);\n };\n }\n});\nexport {\n stdin_default as default,\n gridItemProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _GridItem from \"./GridItem.mjs\";\nconst GridItem = withInstall(_GridItem);\nvar stdin_default = GridItem;\nimport { gridItemProps } from \"./GridItem.mjs\";\nexport {\n GridItem,\n stdin_default as default,\n gridItemProps\n};\n","import { defineComponent, computed, createVNode as _createVNode } from \"vue\";\nimport { createNamespace, makeRequiredProp, makeStringProp, truthProp } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"highlight\");\nconst highlightProps = {\n autoEscape: truthProp,\n caseSensitive: Boolean,\n highlightClass: String,\n highlightTag: makeStringProp(\"span\"),\n keywords: makeRequiredProp([String, Array]),\n sourceString: makeStringProp(\"\"),\n tag: makeStringProp(\"div\"),\n unhighlightClass: String,\n unhighlightTag: makeStringProp(\"span\")\n};\nvar stdin_default = defineComponent({\n name,\n props: highlightProps,\n setup(props) {\n const highlightChunks = computed(() => {\n const {\n autoEscape,\n caseSensitive,\n keywords,\n sourceString\n } = props;\n const flags = caseSensitive ? \"g\" : \"gi\";\n const _keywords = Array.isArray(keywords) ? keywords : [keywords];\n let chunks = _keywords.filter((keyword) => keyword).reduce((chunks2, keyword) => {\n if (autoEscape) {\n keyword = keyword.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n const regex = new RegExp(keyword, flags);\n let match;\n while (match = regex.exec(sourceString)) {\n const start = match.index;\n const end = regex.lastIndex;\n if (start >= end) {\n regex.lastIndex++;\n continue;\n }\n chunks2.push({\n start,\n end,\n highlight: true\n });\n }\n return chunks2;\n }, []);\n chunks = chunks.sort((a, b) => a.start - b.start).reduce((chunks2, currentChunk) => {\n const prevChunk = chunks2[chunks2.length - 1];\n if (!prevChunk || currentChunk.start > prevChunk.end) {\n const unhighlightStart = prevChunk ? prevChunk.end : 0;\n const unhighlightEnd = currentChunk.start;\n if (unhighlightStart !== unhighlightEnd) {\n chunks2.push({\n start: unhighlightStart,\n end: unhighlightEnd,\n highlight: false\n });\n }\n chunks2.push(currentChunk);\n } else {\n prevChunk.end = Math.max(prevChunk.end, currentChunk.end);\n }\n return chunks2;\n }, []);\n const lastChunk = chunks[chunks.length - 1];\n if (!lastChunk) {\n chunks.push({\n start: 0,\n end: sourceString.length,\n highlight: false\n });\n }\n if (lastChunk && lastChunk.end < sourceString.length) {\n chunks.push({\n start: lastChunk.end,\n end: sourceString.length,\n highlight: false\n });\n }\n return chunks;\n });\n const renderContent = () => {\n const {\n sourceString,\n highlightClass,\n unhighlightClass,\n highlightTag,\n unhighlightTag\n } = props;\n return highlightChunks.value.map((chunk) => {\n const {\n start,\n end,\n highlight\n } = chunk;\n const text = sourceString.slice(start, end);\n if (highlight) {\n return _createVNode(highlightTag, {\n \"class\": [bem(\"tag\"), highlightClass]\n }, {\n default: () => [text]\n });\n }\n return _createVNode(unhighlightTag, {\n \"class\": unhighlightClass\n }, {\n default: () => [text]\n });\n });\n };\n return () => {\n const {\n tag\n } = props;\n return _createVNode(tag, {\n \"class\": bem()\n }, {\n default: () => [renderContent()]\n });\n };\n }\n});\nexport {\n stdin_default as default,\n highlightProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Highlight from \"./Highlight.mjs\";\nconst Highlight = withInstall(_Highlight);\nvar stdin_default = Highlight;\nimport { highlightProps } from \"./Highlight.mjs\";\nexport {\n Highlight,\n stdin_default as default,\n highlightProps\n};\n","import { ref, watch, computed, reactive, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { clamp, numericProp, preventDefault, createNamespace, makeRequiredProp, LONG_PRESS_START_TIME } from \"../utils/index.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { raf, useEventListener, useRect } from \"@vant/use\";\nimport { Image } from \"../image/index.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nimport { SwipeItem } from \"../swipe-item/index.mjs\";\nconst getDistance = (touches) => Math.sqrt((touches[0].clientX - touches[1].clientX) ** 2 + (touches[0].clientY - touches[1].clientY) ** 2);\nconst getCenter = (touches) => ({\n x: (touches[0].clientX + touches[1].clientX) / 2,\n y: (touches[0].clientY + touches[1].clientY) / 2\n});\nconst bem = createNamespace(\"image-preview\")[1];\nconst longImageRatio = 2.6;\nconst imagePreviewItemProps = {\n src: String,\n show: Boolean,\n active: Number,\n minZoom: makeRequiredProp(numericProp),\n maxZoom: makeRequiredProp(numericProp),\n rootWidth: makeRequiredProp(Number),\n rootHeight: makeRequiredProp(Number),\n disableZoom: Boolean,\n doubleScale: Boolean,\n closeOnClickImage: Boolean,\n closeOnClickOverlay: Boolean,\n vertical: Boolean\n};\nvar stdin_default = defineComponent({\n props: imagePreviewItemProps,\n emits: [\"scale\", \"close\", \"longPress\"],\n setup(props, {\n emit,\n slots\n }) {\n const state = reactive({\n scale: 1,\n moveX: 0,\n moveY: 0,\n moving: false,\n zooming: false,\n initializing: false,\n imageRatio: 0\n });\n const touch = useTouch();\n const imageRef = ref();\n const swipeItem = ref();\n const vertical = ref(false);\n const isLongImage = ref(false);\n let initialMoveY = 0;\n const imageStyle = computed(() => {\n const {\n scale,\n moveX,\n moveY,\n moving,\n zooming,\n initializing\n } = state;\n const style = {\n transitionDuration: zooming || moving || initializing ? \"0s\" : \".3s\"\n };\n if (scale !== 1 || isLongImage.value) {\n style.transform = `matrix(${scale}, 0, 0, ${scale}, ${moveX}, ${moveY})`;\n }\n return style;\n });\n const maxMoveX = computed(() => {\n if (state.imageRatio) {\n const {\n rootWidth,\n rootHeight\n } = props;\n const displayWidth = vertical.value ? rootHeight / state.imageRatio : rootWidth;\n return Math.max(0, (state.scale * displayWidth - rootWidth) / 2);\n }\n return 0;\n });\n const maxMoveY = computed(() => {\n if (state.imageRatio) {\n const {\n rootWidth,\n rootHeight\n } = props;\n const displayHeight = vertical.value ? rootHeight : rootWidth * state.imageRatio;\n return Math.max(0, (state.scale * displayHeight - rootHeight) / 2);\n }\n return 0;\n });\n const setScale = (scale, center) => {\n var _a;\n scale = clamp(scale, +props.minZoom, +props.maxZoom + 1);\n if (scale !== state.scale) {\n const ratio = scale / state.scale;\n state.scale = scale;\n if (center) {\n const imageRect = useRect((_a = imageRef.value) == null ? void 0 : _a.$el);\n const origin = {\n x: imageRect.width * 0.5,\n y: imageRect.height * 0.5\n };\n const moveX = state.moveX - (center.x - imageRect.left - origin.x) * (ratio - 1);\n const moveY = state.moveY - (center.y - imageRect.top - origin.y) * (ratio - 1);\n state.moveX = clamp(moveX, -maxMoveX.value, maxMoveX.value);\n state.moveY = clamp(moveY, -maxMoveY.value, maxMoveY.value);\n } else {\n state.moveX = 0;\n state.moveY = isLongImage.value ? initialMoveY : 0;\n }\n emit(\"scale\", {\n scale,\n index: props.active\n });\n }\n };\n const resetScale = () => {\n setScale(1);\n };\n const toggleScale = () => {\n const scale = state.scale > 1 ? 1 : 2;\n setScale(scale, scale === 2 || isLongImage.value ? {\n x: touch.startX.value,\n y: touch.startY.value\n } : void 0);\n };\n let fingerNum;\n let startMoveX;\n let startMoveY;\n let startScale;\n let startDistance;\n let lastCenter;\n let doubleTapTimer;\n let touchStartTime;\n let isImageMoved = false;\n const onTouchStart = (event) => {\n const {\n touches\n } = event;\n fingerNum = touches.length;\n if (fingerNum === 2 && props.disableZoom) {\n return;\n }\n const {\n offsetX\n } = touch;\n touch.start(event);\n startMoveX = state.moveX;\n startMoveY = state.moveY;\n touchStartTime = Date.now();\n isImageMoved = false;\n state.moving = fingerNum === 1 && (state.scale !== 1 || isLongImage.value);\n state.zooming = fingerNum === 2 && !offsetX.value;\n if (state.zooming) {\n startScale = state.scale;\n startDistance = getDistance(touches);\n }\n };\n const onTouchMove = (event) => {\n const {\n touches\n } = event;\n touch.move(event);\n if (state.moving) {\n const {\n deltaX,\n deltaY\n } = touch;\n const moveX = deltaX.value + startMoveX;\n const moveY = deltaY.value + startMoveY;\n if ((props.vertical ? touch.isVertical() && Math.abs(moveY) > maxMoveY.value : touch.isHorizontal() && Math.abs(moveX) > maxMoveX.value) && !isImageMoved) {\n state.moving = false;\n return;\n }\n isImageMoved = true;\n preventDefault(event, true);\n state.moveX = clamp(moveX, -maxMoveX.value, maxMoveX.value);\n state.moveY = clamp(moveY, -maxMoveY.value, maxMoveY.value);\n }\n if (state.zooming) {\n preventDefault(event, true);\n if (touches.length === 2) {\n const distance = getDistance(touches);\n const scale = startScale * distance / startDistance;\n lastCenter = getCenter(touches);\n setScale(scale, lastCenter);\n }\n }\n };\n const checkClose = (event) => {\n var _a;\n const swipeItemEl = (_a = swipeItem.value) == null ? void 0 : _a.$el;\n if (!swipeItemEl) return;\n const imageEl = swipeItemEl.firstElementChild;\n const isClickOverlay = event.target === swipeItemEl;\n const isClickImage = imageEl == null ? void 0 : imageEl.contains(event.target);\n if (!props.closeOnClickImage && isClickImage) return;\n if (!props.closeOnClickOverlay && isClickOverlay) return;\n emit(\"close\");\n };\n const checkTap = (event) => {\n if (fingerNum > 1) {\n return;\n }\n const deltaTime = Date.now() - touchStartTime;\n const TAP_TIME = 250;\n if (touch.isTap.value) {\n if (deltaTime < TAP_TIME) {\n if (props.doubleScale) {\n if (doubleTapTimer) {\n clearTimeout(doubleTapTimer);\n doubleTapTimer = null;\n toggleScale();\n } else {\n doubleTapTimer = setTimeout(() => {\n checkClose(event);\n doubleTapTimer = null;\n }, TAP_TIME);\n }\n } else {\n checkClose(event);\n }\n } else if (deltaTime > LONG_PRESS_START_TIME) {\n emit(\"longPress\");\n }\n }\n };\n const onTouchEnd = (event) => {\n let stopPropagation = false;\n if (state.moving || state.zooming) {\n stopPropagation = true;\n if (state.moving && startMoveX === state.moveX && startMoveY === state.moveY) {\n stopPropagation = false;\n }\n if (!event.touches.length) {\n if (state.zooming) {\n state.moveX = clamp(state.moveX, -maxMoveX.value, maxMoveX.value);\n state.moveY = clamp(state.moveY, -maxMoveY.value, maxMoveY.value);\n state.zooming = false;\n }\n state.moving = false;\n startMoveX = 0;\n startMoveY = 0;\n startScale = 1;\n if (state.scale < 1) {\n resetScale();\n }\n const maxZoom = +props.maxZoom;\n if (state.scale > maxZoom) {\n setScale(maxZoom, lastCenter);\n }\n }\n }\n preventDefault(event, stopPropagation);\n checkTap(event);\n touch.reset();\n };\n const resize = () => {\n const {\n rootWidth,\n rootHeight\n } = props;\n const rootRatio = rootHeight / rootWidth;\n const {\n imageRatio\n } = state;\n vertical.value = state.imageRatio > rootRatio && imageRatio < longImageRatio;\n isLongImage.value = state.imageRatio > rootRatio && imageRatio >= longImageRatio;\n if (isLongImage.value) {\n initialMoveY = (imageRatio * rootWidth - rootHeight) / 2;\n state.moveY = initialMoveY;\n state.initializing = true;\n raf(() => {\n state.initializing = false;\n });\n }\n resetScale();\n };\n const onLoad = (event) => {\n const {\n naturalWidth,\n naturalHeight\n } = event.target;\n state.imageRatio = naturalHeight / naturalWidth;\n resize();\n };\n watch(() => props.active, resetScale);\n watch(() => props.show, (value) => {\n if (!value) {\n resetScale();\n }\n });\n watch(() => [props.rootWidth, props.rootHeight], resize);\n useEventListener(\"touchmove\", onTouchMove, {\n target: computed(() => {\n var _a;\n return (_a = swipeItem.value) == null ? void 0 : _a.$el;\n })\n });\n useExpose({\n resetScale\n });\n return () => {\n const imageSlots = {\n loading: () => _createVNode(Loading, {\n \"type\": \"spinner\"\n }, null)\n };\n return _createVNode(SwipeItem, {\n \"ref\": swipeItem,\n \"class\": bem(\"swipe-item\"),\n \"onTouchstartPassive\": onTouchStart,\n \"onTouchend\": onTouchEnd,\n \"onTouchcancel\": onTouchEnd\n }, {\n default: () => [slots.image ? _createVNode(\"div\", {\n \"class\": bem(\"image-wrap\")\n }, [slots.image({\n src: props.src,\n onLoad,\n style: imageStyle.value\n })]) : _createVNode(Image, {\n \"ref\": imageRef,\n \"src\": props.src,\n \"fit\": \"contain\",\n \"class\": bem(\"image\", {\n vertical: vertical.value\n }),\n \"style\": imageStyle.value,\n \"onLoad\": onLoad\n }, imageSlots)]\n });\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { ref, watch, nextTick, reactive, onMounted, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { pick, truthProp, unknownProp, windowWidth, windowHeight, makeArrayProp, makeStringProp, makeNumericProp, callInterceptor, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { useRect } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Swipe } from \"../swipe/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nimport ImagePreviewItem from \"./ImagePreviewItem.mjs\";\nconst [name, bem] = createNamespace(\"image-preview\");\nconst popupProps = [\"show\", \"teleport\", \"transition\", \"overlayStyle\", \"closeOnPopstate\"];\nconst imagePreviewProps = {\n show: Boolean,\n loop: truthProp,\n images: makeArrayProp(),\n minZoom: makeNumericProp(1 / 3),\n maxZoom: makeNumericProp(3),\n overlay: truthProp,\n vertical: Boolean,\n closeable: Boolean,\n showIndex: truthProp,\n className: unknownProp,\n closeIcon: makeStringProp(\"clear\"),\n transition: String,\n beforeClose: Function,\n doubleScale: truthProp,\n overlayClass: unknownProp,\n overlayStyle: Object,\n swipeDuration: makeNumericProp(300),\n startPosition: makeNumericProp(0),\n showIndicators: Boolean,\n closeOnPopstate: truthProp,\n closeOnClickImage: truthProp,\n closeOnClickOverlay: truthProp,\n closeIconPosition: makeStringProp(\"top-right\"),\n teleport: [String, Object]\n};\nvar stdin_default = defineComponent({\n name,\n props: imagePreviewProps,\n emits: [\"scale\", \"close\", \"closed\", \"change\", \"longPress\", \"update:show\"],\n setup(props, {\n emit,\n slots\n }) {\n const swipeRef = ref();\n const activedPreviewItemRef = ref();\n const state = reactive({\n active: 0,\n rootWidth: 0,\n rootHeight: 0,\n disableZoom: false\n });\n const resize = () => {\n if (swipeRef.value) {\n const rect = useRect(swipeRef.value.$el);\n state.rootWidth = rect.width;\n state.rootHeight = rect.height;\n swipeRef.value.resize();\n }\n };\n const emitScale = (args) => emit(\"scale\", args);\n const updateShow = (show) => emit(\"update:show\", show);\n const emitClose = () => {\n callInterceptor(props.beforeClose, {\n args: [state.active],\n done: () => updateShow(false)\n });\n };\n const setActive = (active) => {\n if (active !== state.active) {\n state.active = active;\n emit(\"change\", active);\n }\n };\n const renderIndex = () => {\n if (props.showIndex) {\n return _createVNode(\"div\", {\n \"class\": bem(\"index\")\n }, [slots.index ? slots.index({\n index: state.active\n }) : `${state.active + 1} / ${props.images.length}`]);\n }\n };\n const renderCover = () => {\n if (slots.cover) {\n return _createVNode(\"div\", {\n \"class\": bem(\"cover\")\n }, [slots.cover()]);\n }\n };\n const onDragStart = () => {\n state.disableZoom = true;\n };\n const onDragEnd = () => {\n state.disableZoom = false;\n };\n const renderImages = () => _createVNode(Swipe, {\n \"ref\": swipeRef,\n \"lazyRender\": true,\n \"loop\": props.loop,\n \"class\": bem(\"swipe\"),\n \"vertical\": props.vertical,\n \"duration\": props.swipeDuration,\n \"initialSwipe\": props.startPosition,\n \"showIndicators\": props.showIndicators,\n \"indicatorColor\": \"white\",\n \"onChange\": setActive,\n \"onDragEnd\": onDragEnd,\n \"onDragStart\": onDragStart\n }, {\n default: () => [props.images.map((image, index) => _createVNode(ImagePreviewItem, {\n \"ref\": (item) => {\n if (index === state.active) {\n activedPreviewItemRef.value = item;\n }\n },\n \"src\": image,\n \"show\": props.show,\n \"active\": state.active,\n \"maxZoom\": props.maxZoom,\n \"minZoom\": props.minZoom,\n \"rootWidth\": state.rootWidth,\n \"rootHeight\": state.rootHeight,\n \"disableZoom\": state.disableZoom,\n \"doubleScale\": props.doubleScale,\n \"closeOnClickImage\": props.closeOnClickImage,\n \"closeOnClickOverlay\": props.closeOnClickOverlay,\n \"vertical\": props.vertical,\n \"onScale\": emitScale,\n \"onClose\": emitClose,\n \"onLongPress\": () => emit(\"longPress\", {\n index\n })\n }, {\n image: slots.image\n }))]\n });\n const renderClose = () => {\n if (props.closeable) {\n return _createVNode(Icon, {\n \"role\": \"button\",\n \"name\": props.closeIcon,\n \"class\": [bem(\"close-icon\", props.closeIconPosition), HAPTICS_FEEDBACK],\n \"onClick\": emitClose\n }, null);\n }\n };\n const onClosed = () => emit(\"closed\");\n const swipeTo = (index, options) => {\n var _a;\n return (_a = swipeRef.value) == null ? void 0 : _a.swipeTo(index, options);\n };\n useExpose({\n resetScale: () => {\n var _a;\n (_a = activedPreviewItemRef.value) == null ? void 0 : _a.resetScale();\n },\n swipeTo\n });\n onMounted(resize);\n watch([windowWidth, windowHeight], resize);\n watch(() => props.startPosition, (value) => setActive(+value));\n watch(() => props.show, (value) => {\n const {\n images,\n startPosition\n } = props;\n if (value) {\n setActive(+startPosition);\n nextTick(() => {\n resize();\n swipeTo(+startPosition, {\n immediate: true\n });\n });\n } else {\n emit(\"close\", {\n index: state.active,\n url: images[state.active]\n });\n }\n });\n return () => _createVNode(Popup, _mergeProps({\n \"class\": [bem(), props.className],\n \"overlayClass\": [bem(\"overlay\"), props.overlayClass],\n \"onClosed\": onClosed,\n \"onUpdate:show\": updateShow\n }, pick(props, popupProps)), {\n default: () => [renderClose(), renderImages(), renderIndex(), renderCover()]\n });\n }\n});\nexport {\n stdin_default as default,\n imagePreviewProps\n};\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { extend, inBrowser } from \"../utils/index.mjs\";\nimport { mountComponent, usePopupState } from \"../utils/mount-component.mjs\";\nimport VanImagePreview from \"./ImagePreview.mjs\";\nlet instance;\nconst defaultConfig = {\n loop: true,\n images: [],\n maxZoom: 3,\n minZoom: 1 / 3,\n onScale: void 0,\n onClose: void 0,\n onChange: void 0,\n vertical: false,\n teleport: \"body\",\n className: \"\",\n showIndex: true,\n closeable: false,\n closeIcon: \"clear\",\n transition: void 0,\n beforeClose: void 0,\n doubleScale: true,\n overlayStyle: void 0,\n overlayClass: void 0,\n startPosition: 0,\n swipeDuration: 300,\n showIndicators: false,\n closeOnPopstate: true,\n closeOnClickOverlay: true,\n closeIconPosition: \"top-right\"\n};\nfunction initInstance() {\n ({\n instance\n } = mountComponent({\n setup() {\n const {\n state,\n toggle\n } = usePopupState();\n const onClosed = () => {\n state.images = [];\n };\n return () => _createVNode(VanImagePreview, _mergeProps(state, {\n \"onClosed\": onClosed,\n \"onUpdate:show\": toggle\n }), null);\n }\n }));\n}\nconst showImagePreview = (options, startPosition = 0) => {\n if (!inBrowser) {\n return;\n }\n if (!instance) {\n initInstance();\n }\n options = Array.isArray(options) ? {\n images: options,\n startPosition\n } : options;\n instance.open(extend({}, defaultConfig, options));\n return instance;\n};\nexport {\n showImagePreview\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ImagePreview from \"./ImagePreview.mjs\";\nconst ImagePreview = withInstall(_ImagePreview);\nvar stdin_default = ImagePreview;\nimport { imagePreviewProps } from \"./ImagePreview.mjs\";\nimport { showImagePreview } from \"./function-call.mjs\";\nexport {\n ImagePreview,\n stdin_default as default,\n imagePreviewProps,\n showImagePreview\n};\n","import { ref, watch, computed, nextTick, Teleport, onMounted, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isDef, isHidden, truthProp, numericProp, getScrollTop, preventDefault, makeNumberProp, createNamespace, getRootScrollTop, setRootScrollTop } from \"../utils/index.mjs\";\nimport { useRect, useChildren, useScrollParent, useEventListener } from \"@vant/use\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nfunction genAlphabet() {\n const charCodeOfA = \"A\".charCodeAt(0);\n const indexList = Array(26).fill(\"\").map((_, i) => String.fromCharCode(charCodeOfA + i));\n return indexList;\n}\nconst [name, bem] = createNamespace(\"index-bar\");\nconst indexBarProps = {\n sticky: truthProp,\n zIndex: numericProp,\n teleport: [String, Object],\n highlightColor: String,\n stickyOffsetTop: makeNumberProp(0),\n indexList: {\n type: Array,\n default: genAlphabet\n }\n};\nconst INDEX_BAR_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: indexBarProps,\n emits: [\"select\", \"change\"],\n setup(props, {\n emit,\n slots\n }) {\n const root = ref();\n const sidebar = ref();\n const activeAnchor = ref(\"\");\n const touch = useTouch();\n const scrollParent = useScrollParent(root);\n const {\n children,\n linkChildren\n } = useChildren(INDEX_BAR_KEY);\n let selectActiveIndex;\n linkChildren({\n props\n });\n const sidebarStyle = computed(() => {\n if (isDef(props.zIndex)) {\n return {\n zIndex: +props.zIndex + 1\n };\n }\n });\n const highlightStyle = computed(() => {\n if (props.highlightColor) {\n return {\n color: props.highlightColor\n };\n }\n });\n const getActiveAnchor = (scrollTop, rects) => {\n for (let i = children.length - 1; i >= 0; i--) {\n const prevHeight = i > 0 ? rects[i - 1].height : 0;\n const reachTop = props.sticky ? prevHeight + props.stickyOffsetTop : 0;\n if (scrollTop + reachTop >= rects[i].top) {\n return i;\n }\n }\n return -1;\n };\n const getMatchAnchor = (index) => children.find((item) => String(item.index) === index);\n const onScroll = () => {\n if (isHidden(root)) {\n return;\n }\n const {\n sticky,\n indexList\n } = props;\n const scrollTop = getScrollTop(scrollParent.value);\n const scrollParentRect = useRect(scrollParent);\n const rects = children.map((item) => item.getRect(scrollParent.value, scrollParentRect));\n let active = -1;\n if (selectActiveIndex) {\n const match = getMatchAnchor(selectActiveIndex);\n if (match) {\n const rect = match.getRect(scrollParent.value, scrollParentRect);\n if (props.sticky && props.stickyOffsetTop) {\n active = getActiveAnchor(rect.top - props.stickyOffsetTop, rects);\n } else {\n active = getActiveAnchor(rect.top, rects);\n }\n }\n } else {\n active = getActiveAnchor(scrollTop, rects);\n }\n activeAnchor.value = indexList[active];\n if (sticky) {\n children.forEach((item, index) => {\n const {\n state,\n $el\n } = item;\n if (index === active || index === active - 1) {\n const rect = $el.getBoundingClientRect();\n state.left = rect.left;\n state.width = rect.width;\n } else {\n state.left = null;\n state.width = null;\n }\n if (index === active) {\n state.active = true;\n state.top = Math.max(props.stickyOffsetTop, rects[index].top - scrollTop) + scrollParentRect.top;\n } else if (index === active - 1 && selectActiveIndex === \"\") {\n const activeItemTop = rects[active].top - scrollTop;\n state.active = activeItemTop > 0;\n state.top = activeItemTop + scrollParentRect.top - rects[index].height;\n } else {\n state.active = false;\n }\n });\n }\n selectActiveIndex = \"\";\n };\n const init = () => {\n nextTick(onScroll);\n };\n useEventListener(\"scroll\", onScroll, {\n target: scrollParent,\n passive: true\n });\n onMounted(init);\n watch(() => props.indexList, init);\n watch(activeAnchor, (value) => {\n if (value) {\n emit(\"change\", value);\n }\n });\n const renderIndexes = () => props.indexList.map((index) => {\n const active = index === activeAnchor.value;\n return _createVNode(\"span\", {\n \"class\": bem(\"index\", {\n active\n }),\n \"style\": active ? highlightStyle.value : void 0,\n \"data-index\": index\n }, [index]);\n });\n const scrollTo = (index) => {\n selectActiveIndex = String(index);\n const match = getMatchAnchor(selectActiveIndex);\n if (match) {\n const scrollTop = getScrollTop(scrollParent.value);\n const scrollParentRect = useRect(scrollParent);\n const {\n offsetHeight\n } = document.documentElement;\n match.$el.scrollIntoView();\n if (scrollTop === offsetHeight - scrollParentRect.height) {\n onScroll();\n return;\n }\n if (props.sticky && props.stickyOffsetTop) {\n if (getRootScrollTop() === offsetHeight - scrollParentRect.height) {\n setRootScrollTop(getRootScrollTop());\n } else {\n setRootScrollTop(getRootScrollTop() - props.stickyOffsetTop);\n }\n }\n emit(\"select\", match.index);\n }\n };\n const scrollToElement = (element) => {\n const {\n index\n } = element.dataset;\n if (index) {\n scrollTo(index);\n }\n };\n const onClickSidebar = (event) => {\n scrollToElement(event.target);\n };\n let touchActiveIndex;\n const onTouchMove = (event) => {\n touch.move(event);\n if (touch.isVertical()) {\n preventDefault(event);\n const {\n clientX,\n clientY\n } = event.touches[0];\n const target = document.elementFromPoint(clientX, clientY);\n if (target) {\n const {\n index\n } = target.dataset;\n if (index && touchActiveIndex !== index) {\n touchActiveIndex = index;\n scrollToElement(target);\n }\n }\n }\n };\n const renderSidebar = () => _createVNode(\"div\", {\n \"ref\": sidebar,\n \"class\": bem(\"sidebar\"),\n \"style\": sidebarStyle.value,\n \"onClick\": onClickSidebar,\n \"onTouchstartPassive\": touch.start\n }, [renderIndexes()]);\n useExpose({\n scrollTo\n });\n useEventListener(\"touchmove\", onTouchMove, {\n target: sidebar\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem()\n }, [props.teleport ? _createVNode(Teleport, {\n \"to\": props.teleport\n }, {\n default: () => [renderSidebar()]\n }) : renderSidebar(), (_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n INDEX_BAR_KEY,\n stdin_default as default,\n indexBarProps\n};\n","import { ref, reactive, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { extend, numericProp, BORDER_BOTTOM, getZIndexStyle, createNamespace } from \"../utils/index.mjs\";\nimport { INDEX_BAR_KEY } from \"../index-bar/IndexBar.mjs\";\nimport { getScrollTop, getRootScrollTop } from \"../utils/dom.mjs\";\nimport { useRect, useParent } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"index-anchor\");\nconst indexAnchorProps = {\n index: numericProp\n};\nvar stdin_default = defineComponent({\n name,\n props: indexAnchorProps,\n setup(props, {\n slots\n }) {\n const state = reactive({\n top: 0,\n left: null,\n rect: {\n top: 0,\n height: 0\n },\n width: null,\n active: false\n });\n const root = ref();\n const {\n parent\n } = useParent(INDEX_BAR_KEY);\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <IndexAnchor> must be a child component of <IndexBar>.\");\n }\n return;\n }\n const isSticky = () => state.active && parent.props.sticky;\n const anchorStyle = computed(() => {\n const {\n zIndex,\n highlightColor\n } = parent.props;\n if (isSticky()) {\n return extend(getZIndexStyle(zIndex), {\n left: state.left ? `${state.left}px` : void 0,\n width: state.width ? `${state.width}px` : void 0,\n transform: state.top ? `translate3d(0, ${state.top}px, 0)` : void 0,\n color: highlightColor\n });\n }\n });\n const getRect = (scrollParent, scrollParentRect) => {\n const rootRect = useRect(root);\n state.rect.height = rootRect.height;\n if (scrollParent === window || scrollParent === document.body) {\n state.rect.top = rootRect.top + getRootScrollTop();\n } else {\n state.rect.top = rootRect.top + getScrollTop(scrollParent) - scrollParentRect.top;\n }\n return state.rect;\n };\n useExpose({\n state,\n getRect\n });\n return () => {\n const sticky = isSticky();\n return _createVNode(\"div\", {\n \"ref\": root,\n \"style\": {\n height: sticky ? `${state.rect.height}px` : void 0\n }\n }, [_createVNode(\"div\", {\n \"style\": anchorStyle.value,\n \"class\": [bem({\n sticky\n }), {\n [BORDER_BOTTOM]: sticky\n }]\n }, [slots.default ? slots.default() : props.index])]);\n };\n }\n});\nexport {\n stdin_default as default,\n indexAnchorProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _IndexAnchor from \"./IndexAnchor.mjs\";\nconst IndexAnchor = withInstall(_IndexAnchor);\nvar stdin_default = IndexAnchor;\nimport { indexAnchorProps } from \"./IndexAnchor.mjs\";\nexport {\n IndexAnchor,\n stdin_default as default,\n indexAnchorProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _IndexBar from \"./IndexBar.mjs\";\nconst IndexBar = withInstall(_IndexBar);\nvar stdin_default = IndexBar;\nimport { indexBarProps } from \"./IndexBar.mjs\";\nexport {\n IndexBar,\n stdin_default as default,\n indexBarProps\n};\n","import { ref, watch, computed, nextTick, onUpdated, onMounted, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { isHidden, truthProp, makeStringProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { useRect, useScrollParent, useEventListener } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { useAllTabStatus } from \"../composables/use-tab-status.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nconst [name, bem, t] = createNamespace(\"list\");\nconst listProps = {\n error: Boolean,\n offset: makeNumericProp(300),\n loading: Boolean,\n disabled: Boolean,\n finished: Boolean,\n scroller: Object,\n errorText: String,\n direction: makeStringProp(\"down\"),\n loadingText: {\n type: String,\n default: \"\"\n },\n finishedText: String,\n immediateCheck: truthProp\n};\nvar stdin_default = defineComponent({\n name,\n props: listProps,\n emits: [\"load\", \"update:error\", \"update:loading\"],\n setup(props, {\n emit,\n slots\n }) {\n const loading = ref(props.loading);\n const root = ref();\n const placeholder = ref();\n const tabStatus = useAllTabStatus();\n const scrollParent = useScrollParent(root);\n const scroller = computed(() => props.scroller || scrollParent.value);\n const check = () => {\n nextTick(() => {\n if (loading.value || props.finished || props.disabled || props.error || // skip check when inside an inactive tab\n (tabStatus == null ? void 0 : tabStatus.value) === false) {\n return;\n }\n const {\n direction\n } = props;\n const offset = +props.offset;\n const scrollParentRect = useRect(scroller);\n if (!scrollParentRect.height || isHidden(root)) {\n return;\n }\n let isReachEdge = false;\n const placeholderRect = useRect(placeholder);\n if (direction === \"up\") {\n isReachEdge = scrollParentRect.top - placeholderRect.top <= offset;\n } else {\n isReachEdge = placeholderRect.bottom - scrollParentRect.bottom <= offset;\n }\n if (isReachEdge) {\n loading.value = true;\n emit(\"update:loading\", true);\n emit(\"load\");\n }\n });\n };\n const renderFinishedText = () => {\n if (props.finished) {\n const text = slots.finished ? slots.finished() : props.finishedText;\n if (text) {\n return _createVNode(\"div\", {\n \"class\": bem(\"finished-text\")\n }, [text]);\n }\n }\n };\n const clickErrorText = () => {\n emit(\"update:error\", false);\n check();\n };\n const renderErrorText = () => {\n if (props.error) {\n const text = slots.error ? slots.error() : props.errorText;\n if (text) {\n return _createVNode(\"div\", {\n \"role\": \"button\",\n \"class\": bem(\"error-text\"),\n \"tabindex\": 0,\n \"onClick\": clickErrorText\n }, [text]);\n }\n }\n };\n const renderLoading = () => {\n if (loading.value && !props.finished && !props.disabled) {\n return _createVNode(\"div\", {\n \"class\": bem(\"loading\")\n }, [slots.loading ? slots.loading() : props.loadingText != null && _createVNode(Loading, {\n \"class\": bem(\"loading-icon\")\n }, {\n default: () => [props.loadingText || t(\"loading\")]\n })]);\n }\n };\n watch(() => [props.loading, props.finished, props.error], check);\n if (tabStatus) {\n watch(tabStatus, (tabActive) => {\n if (tabActive) {\n check();\n }\n });\n }\n onUpdated(() => {\n loading.value = props.loading;\n });\n onMounted(() => {\n if (props.immediateCheck) {\n check();\n }\n });\n useExpose({\n check\n });\n useEventListener(\"scroll\", check, {\n target: scroller,\n passive: true\n });\n return () => {\n var _a;\n const Content = (_a = slots.default) == null ? void 0 : _a.call(slots);\n const Placeholder = _createVNode(\"div\", {\n \"ref\": placeholder,\n \"class\": bem(\"placeholder\")\n }, null);\n return _createVNode(\"div\", {\n \"ref\": root,\n \"role\": \"feed\",\n \"class\": bem(),\n \"aria-busy\": loading.value\n }, [props.direction === \"down\" ? Content : Placeholder, renderLoading(), renderFinishedText(), renderErrorText(), props.direction === \"up\" ? Content : Placeholder]);\n };\n }\n});\nexport {\n stdin_default as default,\n listProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _List from \"./List.mjs\";\nconst List = withInstall(_List);\nvar stdin_default = List;\nimport { listProps } from \"./List.mjs\";\nexport {\n List,\n stdin_default as default,\n listProps\n};\n","import { ref, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, numericProp, BORDER_BOTTOM, getZIndexStyle, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { usePlaceholder } from \"../composables/use-placeholder.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"nav-bar\");\nconst navBarProps = {\n title: String,\n fixed: Boolean,\n zIndex: numericProp,\n border: truthProp,\n leftText: String,\n rightText: String,\n leftDisabled: Boolean,\n rightDisabled: Boolean,\n leftArrow: Boolean,\n placeholder: Boolean,\n safeAreaInsetTop: Boolean,\n clickable: truthProp\n};\nvar stdin_default = defineComponent({\n name,\n props: navBarProps,\n emits: [\"clickLeft\", \"clickRight\"],\n setup(props, {\n emit,\n slots\n }) {\n const navBarRef = ref();\n const renderPlaceholder = usePlaceholder(navBarRef, bem);\n const onClickLeft = (event) => {\n if (!props.leftDisabled) {\n emit(\"clickLeft\", event);\n }\n };\n const onClickRight = (event) => {\n if (!props.rightDisabled) {\n emit(\"clickRight\", event);\n }\n };\n const renderLeft = () => {\n if (slots.left) {\n return slots.left();\n }\n return [props.leftArrow && _createVNode(Icon, {\n \"class\": bem(\"arrow\"),\n \"name\": \"arrow-left\"\n }, null), props.leftText && _createVNode(\"span\", {\n \"class\": bem(\"text\")\n }, [props.leftText])];\n };\n const renderRight = () => {\n if (slots.right) {\n return slots.right();\n }\n return _createVNode(\"span\", {\n \"class\": bem(\"text\")\n }, [props.rightText]);\n };\n const renderNavBar = () => {\n const {\n title,\n fixed,\n border,\n zIndex\n } = props;\n const style = getZIndexStyle(zIndex);\n const hasLeft = props.leftArrow || props.leftText || slots.left;\n const hasRight = props.rightText || slots.right;\n return _createVNode(\"div\", {\n \"ref\": navBarRef,\n \"style\": style,\n \"class\": [bem({\n fixed\n }), {\n [BORDER_BOTTOM]: border,\n \"van-safe-area-top\": props.safeAreaInsetTop\n }]\n }, [_createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [hasLeft && _createVNode(\"div\", {\n \"class\": [bem(\"left\", {\n disabled: props.leftDisabled\n }), props.clickable && !props.leftDisabled ? HAPTICS_FEEDBACK : \"\"],\n \"onClick\": onClickLeft\n }, [renderLeft()]), _createVNode(\"div\", {\n \"class\": [bem(\"title\"), \"van-ellipsis\"]\n }, [slots.title ? slots.title() : title]), hasRight && _createVNode(\"div\", {\n \"class\": [bem(\"right\", {\n disabled: props.rightDisabled\n }), props.clickable && !props.rightDisabled ? HAPTICS_FEEDBACK : \"\"],\n \"onClick\": onClickRight\n }, [renderRight()])])]);\n };\n return () => {\n if (props.fixed && props.placeholder) {\n return renderPlaceholder(renderNavBar);\n }\n return renderNavBar();\n };\n }\n});\nexport {\n stdin_default as default,\n navBarProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _NavBar from \"./NavBar.mjs\";\nconst NavBar = withInstall(_NavBar);\nvar stdin_default = NavBar;\nimport { navBarProps } from \"./NavBar.mjs\";\nexport {\n NavBar,\n stdin_default as default,\n navBarProps\n};\n","import { ref, watch, reactive, defineComponent, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nimport { isDef, createNamespace, makeNumericProp } from \"../utils/index.mjs\";\nimport { raf, useRect, doubleRaf, useEventListener, onMountedOrActivated } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { onPopupReopen } from \"../composables/on-popup-reopen.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"notice-bar\");\nconst noticeBarProps = {\n text: String,\n mode: String,\n color: String,\n delay: makeNumericProp(1),\n speed: makeNumericProp(60),\n leftIcon: String,\n wrapable: Boolean,\n background: String,\n scrollable: {\n type: Boolean,\n default: null\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: noticeBarProps,\n emits: [\"close\", \"replay\"],\n setup(props, {\n emit,\n slots\n }) {\n let wrapWidth = 0;\n let contentWidth = 0;\n let startTimer;\n const wrapRef = ref();\n const contentRef = ref();\n const state = reactive({\n show: true,\n offset: 0,\n duration: 0\n });\n const renderLeftIcon = () => {\n if (slots[\"left-icon\"]) {\n return slots[\"left-icon\"]();\n }\n if (props.leftIcon) {\n return _createVNode(Icon, {\n \"class\": bem(\"left-icon\"),\n \"name\": props.leftIcon\n }, null);\n }\n };\n const getRightIconName = () => {\n if (props.mode === \"closeable\") {\n return \"cross\";\n }\n if (props.mode === \"link\") {\n return \"arrow\";\n }\n };\n const onClickRightIcon = (event) => {\n if (props.mode === \"closeable\") {\n state.show = false;\n emit(\"close\", event);\n }\n };\n const renderRightIcon = () => {\n if (slots[\"right-icon\"]) {\n return slots[\"right-icon\"]();\n }\n const name2 = getRightIconName();\n if (name2) {\n return _createVNode(Icon, {\n \"name\": name2,\n \"class\": bem(\"right-icon\"),\n \"onClick\": onClickRightIcon\n }, null);\n }\n };\n const onTransitionEnd = () => {\n state.offset = wrapWidth;\n state.duration = 0;\n raf(() => {\n doubleRaf(() => {\n state.offset = -contentWidth;\n state.duration = (contentWidth + wrapWidth) / +props.speed;\n emit(\"replay\");\n });\n });\n };\n const renderMarquee = () => {\n const ellipsis = props.scrollable === false && !props.wrapable;\n const style = {\n transform: state.offset ? `translateX(${state.offset}px)` : \"\",\n transitionDuration: `${state.duration}s`\n };\n return _createVNode(\"div\", {\n \"ref\": wrapRef,\n \"role\": \"marquee\",\n \"class\": bem(\"wrap\")\n }, [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"style\": style,\n \"class\": [bem(\"content\"), {\n \"van-ellipsis\": ellipsis\n }],\n \"onTransitionend\": onTransitionEnd\n }, [slots.default ? slots.default() : props.text])]);\n };\n const reset = () => {\n const {\n delay,\n speed,\n scrollable\n } = props;\n const ms = isDef(delay) ? +delay * 1e3 : 0;\n wrapWidth = 0;\n contentWidth = 0;\n state.offset = 0;\n state.duration = 0;\n clearTimeout(startTimer);\n startTimer = setTimeout(() => {\n if (!wrapRef.value || !contentRef.value || scrollable === false) {\n return;\n }\n const wrapRefWidth = useRect(wrapRef).width;\n const contentRefWidth = useRect(contentRef).width;\n if (scrollable || contentRefWidth > wrapRefWidth) {\n doubleRaf(() => {\n wrapWidth = wrapRefWidth;\n contentWidth = contentRefWidth;\n state.offset = -contentWidth;\n state.duration = contentWidth / +speed;\n });\n }\n }, ms);\n };\n onPopupReopen(reset);\n onMountedOrActivated(reset);\n useEventListener(\"pageshow\", reset);\n useExpose({\n reset\n });\n watch(() => [props.text, props.scrollable], reset);\n return () => {\n const {\n color,\n wrapable,\n background\n } = props;\n return _withDirectives(_createVNode(\"div\", {\n \"role\": \"alert\",\n \"class\": bem({\n wrapable\n }),\n \"style\": {\n color,\n background\n }\n }, [renderLeftIcon(), renderMarquee(), renderRightIcon()]), [[_vShow, state.show]]);\n };\n }\n});\nexport {\n stdin_default as default,\n noticeBarProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _NoticeBar from \"./NoticeBar.mjs\";\nconst NoticeBar = withInstall(_NoticeBar);\nvar stdin_default = NoticeBar;\nimport { noticeBarProps } from \"./NoticeBar.mjs\";\nexport {\n NoticeBar,\n stdin_default as default,\n noticeBarProps\n};\n","import { defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { pick, extend, numericProp, unknownProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nimport { popupSharedProps } from \"../popup/shared.mjs\";\nconst [name, bem] = createNamespace(\"notify\");\nconst popupInheritProps = [\"lockScroll\", \"position\", \"show\", \"teleport\", \"zIndex\"];\nconst notifyProps = extend({}, popupSharedProps, {\n type: makeStringProp(\"danger\"),\n color: String,\n message: numericProp,\n position: makeStringProp(\"top\"),\n className: unknownProp,\n background: String,\n lockScroll: Boolean\n});\nvar stdin_default = defineComponent({\n name,\n props: notifyProps,\n emits: [\"update:show\"],\n setup(props, {\n emit,\n slots\n }) {\n const updateShow = (show) => emit(\"update:show\", show);\n return () => _createVNode(Popup, _mergeProps({\n \"class\": [bem([props.type]), props.className],\n \"style\": {\n color: props.color,\n background: props.background\n },\n \"overlay\": false,\n \"duration\": 0.2,\n \"onUpdate:show\": updateShow\n }, pick(props, popupInheritProps)), {\n default: () => [slots.default ? slots.default() : props.message]\n });\n }\n});\nexport {\n stdin_default as default,\n notifyProps\n};\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { extend, isObject, inBrowser } from \"../utils/index.mjs\";\nimport { mountComponent, usePopupState } from \"../utils/mount-component.mjs\";\nimport VanNotify from \"./Notify.mjs\";\nlet timer;\nlet instance;\nconst parseOptions = (message) => isObject(message) ? message : {\n message\n};\nfunction initInstance() {\n ({\n instance\n } = mountComponent({\n setup() {\n const {\n state,\n toggle\n } = usePopupState();\n return () => _createVNode(VanNotify, _mergeProps(state, {\n \"onUpdate:show\": toggle\n }), null);\n }\n }));\n}\nconst getDefaultOptions = () => ({\n type: \"danger\",\n color: void 0,\n message: \"\",\n onClose: void 0,\n onClick: void 0,\n onOpened: void 0,\n duration: 3e3,\n position: void 0,\n className: \"\",\n lockScroll: false,\n background: void 0\n});\nlet currentOptions = getDefaultOptions();\nconst closeNotify = () => {\n if (instance) {\n instance.toggle(false);\n }\n};\nfunction showNotify(options) {\n if (!inBrowser) {\n return;\n }\n if (!instance) {\n initInstance();\n }\n options = extend({}, currentOptions, parseOptions(options));\n instance.open(options);\n clearTimeout(timer);\n if (options.duration > 0) {\n timer = setTimeout(closeNotify, options.duration);\n }\n return instance;\n}\nconst setNotifyDefaultOptions = (options) => extend(currentOptions, options);\nconst resetNotifyDefaultOptions = () => {\n currentOptions = getDefaultOptions();\n};\nexport {\n closeNotify,\n resetNotifyDefaultOptions,\n setNotifyDefaultOptions,\n showNotify\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Notify from \"./Notify.mjs\";\nconst Notify = withInstall(_Notify);\nvar stdin_default = Notify;\nimport { notifyProps } from \"./Notify.mjs\";\nimport {\n showNotify,\n closeNotify,\n setNotifyDefaultOptions,\n resetNotifyDefaultOptions\n} from \"./function-call.mjs\";\nexport {\n Notify,\n closeNotify,\n stdin_default as default,\n notifyProps,\n resetNotifyDefaultOptions,\n setNotifyDefaultOptions,\n showNotify\n};\n","import { ref, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { numericProp, createNamespace, preventDefault } from \"../utils/index.mjs\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nconst [name, bem] = createNamespace(\"key\");\nconst CollapseIcon = _createVNode(\"svg\", {\n \"class\": bem(\"collapse-icon\"),\n \"viewBox\": \"0 0 30 24\"\n}, [_createVNode(\"path\", {\n \"d\": \"M26 13h-2v2h2v-2zm-8-3h2V8h-2v2zm2-4h2V4h-2v2zm2 4h4V4h-2v4h-2v2zm-7 14 3-3h-6l3 3zM6 13H4v2h2v-2zm16 0H8v2h14v-2zm-12-3h2V8h-2v2zM28 0l1 1 1 1v15l-1 2H1l-1-2V2l1-1 1-1zm0 2H2v15h26V2zM6 4v2H4V4zm10 2h2V4h-2v2zM8 9v1H4V8zm8 0v1h-2V8zm-6-5v2H8V4zm4 0v2h-2V4z\",\n \"fill\": \"currentColor\"\n}, null)]);\nconst DeleteIcon = _createVNode(\"svg\", {\n \"class\": bem(\"delete-icon\"),\n \"viewBox\": \"0 0 32 22\"\n}, [_createVNode(\"path\", {\n \"d\": \"M28 0a4 4 0 0 1 4 4v14a4 4 0 0 1-4 4H10.4a2 2 0 0 1-1.4-.6L1 13.1c-.6-.5-.9-1.3-.9-2 0-1 .3-1.7.9-2.2L9 .6a2 2 0 0 1 1.4-.6zm0 2H10.4l-8.2 8.3a1 1 0 0 0-.3.7c0 .3.1.5.3.7l8.2 8.4H28a2 2 0 0 0 2-2V4c0-1.1-.9-2-2-2zm-5 4a1 1 0 0 1 .7.3 1 1 0 0 1 0 1.4L20.4 11l3.3 3.3c.2.2.3.5.3.7 0 .3-.1.5-.3.7a1 1 0 0 1-.7.3 1 1 0 0 1-.7-.3L19 12.4l-3.4 3.3a1 1 0 0 1-.6.3 1 1 0 0 1-.7-.3 1 1 0 0 1-.3-.7c0-.2.1-.5.3-.7l3.3-3.3-3.3-3.3A1 1 0 0 1 14 7c0-.3.1-.5.3-.7A1 1 0 0 1 15 6a1 1 0 0 1 .6.3L19 9.6l3.3-3.3A1 1 0 0 1 23 6z\",\n \"fill\": \"currentColor\"\n}, null)]);\nvar stdin_default = defineComponent({\n name,\n props: {\n type: String,\n text: numericProp,\n color: String,\n wider: Boolean,\n large: Boolean,\n loading: Boolean\n },\n emits: [\"press\"],\n setup(props, {\n emit,\n slots\n }) {\n const active = ref(false);\n const touch = useTouch();\n const onTouchStart = (event) => {\n touch.start(event);\n active.value = true;\n };\n const onTouchMove = (event) => {\n touch.move(event);\n if (touch.direction.value) {\n active.value = false;\n }\n };\n const onTouchEnd = (event) => {\n if (active.value) {\n if (!slots.default) {\n preventDefault(event);\n }\n active.value = false;\n emit(\"press\", props.text, props.type);\n }\n };\n const renderContent = () => {\n if (props.loading) {\n return _createVNode(Loading, {\n \"class\": bem(\"loading-icon\")\n }, null);\n }\n const text = slots.default ? slots.default() : props.text;\n switch (props.type) {\n case \"delete\":\n return text || DeleteIcon;\n case \"extra\":\n return text || CollapseIcon;\n default:\n return text;\n }\n };\n return () => _createVNode(\"div\", {\n \"class\": bem(\"wrapper\", {\n wider: props.wider\n }),\n \"onTouchstartPassive\": onTouchStart,\n \"onTouchmovePassive\": onTouchMove,\n \"onTouchend\": onTouchEnd,\n \"onTouchcancel\": onTouchEnd\n }, [_createVNode(\"div\", {\n \"role\": \"button\",\n \"tabindex\": 0,\n \"class\": bem([props.color, {\n large: props.large,\n active: active.value,\n delete: props.type === \"delete\"\n }])\n }, [renderContent()])]);\n }\n});\nexport {\n stdin_default as default\n};\n","import { ref, watch, computed, Teleport, Transition, defineComponent, createVNode as _createVNode, vShow as _vShow, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\nimport { truthProp, numericProp, getZIndexStyle, makeStringProp, makeNumericProp, stopPropagation, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { useClickAway } from \"@vant/use\";\nimport NumberKeyboardKey from \"./NumberKeyboardKey.mjs\";\nconst [name, bem] = createNamespace(\"number-keyboard\");\nconst numberKeyboardProps = {\n show: Boolean,\n title: String,\n theme: makeStringProp(\"default\"),\n zIndex: numericProp,\n teleport: [String, Object],\n maxlength: makeNumericProp(Infinity),\n modelValue: makeStringProp(\"\"),\n transition: truthProp,\n blurOnClose: truthProp,\n showDeleteKey: truthProp,\n randomKeyOrder: Boolean,\n closeButtonText: String,\n deleteButtonText: String,\n closeButtonLoading: Boolean,\n hideOnClickOutside: truthProp,\n safeAreaInsetBottom: truthProp,\n extraKey: {\n type: [String, Array],\n default: \"\"\n }\n};\nfunction shuffle(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n return array;\n}\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: numberKeyboardProps,\n emits: [\"show\", \"hide\", \"blur\", \"input\", \"close\", \"delete\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots,\n attrs\n }) {\n const root = ref();\n const genBasicKeys = () => {\n const keys2 = Array(9).fill(\"\").map((_, i) => ({\n text: i + 1\n }));\n if (props.randomKeyOrder) {\n shuffle(keys2);\n }\n return keys2;\n };\n const genDefaultKeys = () => [...genBasicKeys(), {\n text: props.extraKey,\n type: \"extra\"\n }, {\n text: 0\n }, {\n text: props.showDeleteKey ? props.deleteButtonText : \"\",\n type: props.showDeleteKey ? \"delete\" : \"\"\n }];\n const genCustomKeys = () => {\n const keys2 = genBasicKeys();\n const {\n extraKey\n } = props;\n const extraKeys = Array.isArray(extraKey) ? extraKey : [extraKey];\n if (extraKeys.length === 0) {\n keys2.push({\n text: 0,\n wider: true\n });\n } else if (extraKeys.length === 1) {\n keys2.push({\n text: 0,\n wider: true\n }, {\n text: extraKeys[0],\n type: \"extra\"\n });\n } else if (extraKeys.length === 2) {\n keys2.push({\n text: extraKeys[0],\n type: \"extra\"\n }, {\n text: 0\n }, {\n text: extraKeys[1],\n type: \"extra\"\n });\n }\n return keys2;\n };\n const keys = computed(() => props.theme === \"custom\" ? genCustomKeys() : genDefaultKeys());\n const onBlur = () => {\n if (props.show) {\n emit(\"blur\");\n }\n };\n const onClose = () => {\n emit(\"close\");\n if (props.blurOnClose) {\n onBlur();\n }\n };\n const onAnimationEnd = () => emit(props.show ? \"show\" : \"hide\");\n const onPress = (text, type) => {\n if (text === \"\") {\n if (type === \"extra\") {\n onBlur();\n }\n return;\n }\n const value = props.modelValue;\n if (type === \"delete\") {\n emit(\"delete\");\n emit(\"update:modelValue\", value.slice(0, value.length - 1));\n } else if (type === \"close\") {\n onClose();\n } else if (value.length < +props.maxlength) {\n emit(\"input\", text);\n emit(\"update:modelValue\", value + text);\n }\n };\n const renderTitle = () => {\n const {\n title,\n theme,\n closeButtonText\n } = props;\n const leftSlot = slots[\"title-left\"];\n const showClose = closeButtonText && theme === \"default\";\n const showTitle = title || showClose || leftSlot;\n if (!showTitle) {\n return;\n }\n return _createVNode(\"div\", {\n \"class\": bem(\"header\")\n }, [leftSlot && _createVNode(\"span\", {\n \"class\": bem(\"title-left\")\n }, [leftSlot()]), title && _createVNode(\"h2\", {\n \"class\": bem(\"title\")\n }, [title]), showClose && _createVNode(\"button\", {\n \"type\": \"button\",\n \"class\": [bem(\"close\"), HAPTICS_FEEDBACK],\n \"onClick\": onClose\n }, [closeButtonText])]);\n };\n const renderKeys = () => keys.value.map((key) => {\n const keySlots = {};\n if (key.type === \"delete\") {\n keySlots.default = slots.delete;\n }\n if (key.type === \"extra\") {\n keySlots.default = slots[\"extra-key\"];\n }\n return _createVNode(NumberKeyboardKey, {\n \"key\": key.text,\n \"text\": key.text,\n \"type\": key.type,\n \"wider\": key.wider,\n \"color\": key.color,\n \"onPress\": onPress\n }, keySlots);\n });\n const renderSidebar = () => {\n if (props.theme === \"custom\") {\n return _createVNode(\"div\", {\n \"class\": bem(\"sidebar\")\n }, [props.showDeleteKey && _createVNode(NumberKeyboardKey, {\n \"large\": true,\n \"text\": props.deleteButtonText,\n \"type\": \"delete\",\n \"onPress\": onPress\n }, {\n default: slots.delete\n }), _createVNode(NumberKeyboardKey, {\n \"large\": true,\n \"text\": props.closeButtonText,\n \"type\": \"close\",\n \"color\": \"blue\",\n \"loading\": props.closeButtonLoading,\n \"onPress\": onPress\n }, null)]);\n }\n };\n watch(() => props.show, (value) => {\n if (!props.transition) {\n emit(value ? \"show\" : \"hide\");\n }\n });\n if (props.hideOnClickOutside) {\n useClickAway(root, onBlur, {\n eventName: \"touchstart\"\n });\n }\n return () => {\n const Title = renderTitle();\n const Content = _createVNode(Transition, {\n \"name\": props.transition ? \"van-slide-up\" : \"\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", _mergeProps({\n \"ref\": root,\n \"style\": getZIndexStyle(props.zIndex),\n \"class\": bem({\n unfit: !props.safeAreaInsetBottom,\n \"with-title\": !!Title\n }),\n \"onAnimationend\": onAnimationEnd,\n \"onTouchstartPassive\": stopPropagation\n }, attrs), [Title, _createVNode(\"div\", {\n \"class\": bem(\"body\")\n }, [_createVNode(\"div\", {\n \"class\": bem(\"keys\")\n }, [renderKeys()]), renderSidebar()])]), [[_vShow, props.show]])]\n });\n if (props.teleport) {\n return _createVNode(Teleport, {\n \"to\": props.teleport\n }, {\n default: () => [Content]\n });\n }\n return Content;\n };\n }\n});\nexport {\n stdin_default as default,\n numberKeyboardProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _NumberKeyboard from \"./NumberKeyboard.mjs\";\nconst NumberKeyboard = withInstall(_NumberKeyboard);\nvar stdin_default = NumberKeyboard;\nimport { numberKeyboardProps } from \"./NumberKeyboard.mjs\";\nexport {\n NumberKeyboard,\n stdin_default as default,\n numberKeyboardProps\n};\n","import { computed, watchEffect, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { clamp, truthProp, makeStringProp, makeNumberProp, makeNumericProp, createNamespace, BORDER_SURROUND } from \"../utils/index.mjs\";\nconst [name, bem, t] = createNamespace(\"pagination\");\nconst makePage = (number, text, active) => ({\n number,\n text,\n active\n});\nconst paginationProps = {\n mode: makeStringProp(\"multi\"),\n prevText: String,\n nextText: String,\n pageCount: makeNumericProp(0),\n modelValue: makeNumberProp(0),\n totalItems: makeNumericProp(0),\n showPageSize: makeNumericProp(5),\n itemsPerPage: makeNumericProp(10),\n forceEllipses: Boolean,\n showPrevButton: truthProp,\n showNextButton: truthProp\n};\nvar stdin_default = defineComponent({\n name,\n props: paginationProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const count = computed(() => {\n const {\n pageCount,\n totalItems,\n itemsPerPage\n } = props;\n const count2 = +pageCount || Math.ceil(+totalItems / +itemsPerPage);\n return Math.max(1, count2);\n });\n const pages = computed(() => {\n const items = [];\n const pageCount = count.value;\n const showPageSize = +props.showPageSize;\n const {\n modelValue,\n forceEllipses\n } = props;\n let startPage = 1;\n let endPage = pageCount;\n const isMaxSized = showPageSize < pageCount;\n if (isMaxSized) {\n startPage = Math.max(modelValue - Math.floor(showPageSize / 2), 1);\n endPage = startPage + showPageSize - 1;\n if (endPage > pageCount) {\n endPage = pageCount;\n startPage = endPage - showPageSize + 1;\n }\n }\n for (let number = startPage; number <= endPage; number++) {\n const page = makePage(number, number, number === modelValue);\n items.push(page);\n }\n if (isMaxSized && showPageSize > 0 && forceEllipses) {\n if (startPage > 1) {\n const prevPages = makePage(startPage - 1, \"...\");\n items.unshift(prevPages);\n }\n if (endPage < pageCount) {\n const nextPages = makePage(endPage + 1, \"...\");\n items.push(nextPages);\n }\n }\n return items;\n });\n const updateModelValue = (value, emitChange) => {\n value = clamp(value, 1, count.value);\n if (props.modelValue !== value) {\n emit(\"update:modelValue\", value);\n if (emitChange) {\n emit(\"change\", value);\n }\n }\n };\n watchEffect(() => updateModelValue(props.modelValue));\n const renderDesc = () => _createVNode(\"li\", {\n \"class\": bem(\"page-desc\")\n }, [slots.pageDesc ? slots.pageDesc() : `${props.modelValue}/${count.value}`]);\n const renderPrevButton = () => {\n const {\n mode,\n modelValue,\n showPrevButton\n } = props;\n if (!showPrevButton) {\n return;\n }\n const slot = slots[\"prev-text\"];\n const disabled = modelValue === 1;\n return _createVNode(\"li\", {\n \"class\": [bem(\"item\", {\n disabled,\n border: mode === \"simple\",\n prev: true\n }), BORDER_SURROUND]\n }, [_createVNode(\"button\", {\n \"type\": \"button\",\n \"disabled\": disabled,\n \"onClick\": () => updateModelValue(modelValue - 1, true)\n }, [slot ? slot() : props.prevText || t(\"prev\")])]);\n };\n const renderNextButton = () => {\n const {\n mode,\n modelValue,\n showNextButton\n } = props;\n if (!showNextButton) {\n return;\n }\n const slot = slots[\"next-text\"];\n const disabled = modelValue === count.value;\n return _createVNode(\"li\", {\n \"class\": [bem(\"item\", {\n disabled,\n border: mode === \"simple\",\n next: true\n }), BORDER_SURROUND]\n }, [_createVNode(\"button\", {\n \"type\": \"button\",\n \"disabled\": disabled,\n \"onClick\": () => updateModelValue(modelValue + 1, true)\n }, [slot ? slot() : props.nextText || t(\"next\")])]);\n };\n const renderPages = () => pages.value.map((page) => _createVNode(\"li\", {\n \"class\": [bem(\"item\", {\n active: page.active,\n page: true\n }), BORDER_SURROUND]\n }, [_createVNode(\"button\", {\n \"type\": \"button\",\n \"aria-current\": page.active || void 0,\n \"onClick\": () => updateModelValue(page.number, true)\n }, [slots.page ? slots.page(page) : page.text])]));\n return () => _createVNode(\"nav\", {\n \"role\": \"navigation\",\n \"class\": bem()\n }, [_createVNode(\"ul\", {\n \"class\": bem(\"items\")\n }, [renderPrevButton(), props.mode === \"simple\" ? renderDesc() : renderPages(), renderNextButton()])]);\n }\n});\nexport {\n stdin_default as default,\n paginationProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Pagination from \"./Pagination.mjs\";\nconst Pagination = withInstall(_Pagination);\nvar stdin_default = Pagination;\nimport { paginationProps } from \"./Pagination.mjs\";\nexport {\n Pagination,\n stdin_default as default,\n paginationProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { addUnit, truthProp, numericProp, BORDER_LEFT, makeStringProp, BORDER_SURROUND, createNamespace, makeNumericProp } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"password-input\");\nconst passwordInputProps = {\n info: String,\n mask: truthProp,\n value: makeStringProp(\"\"),\n gutter: numericProp,\n length: makeNumericProp(6),\n focused: Boolean,\n errorInfo: String\n};\nvar stdin_default = defineComponent({\n name,\n props: passwordInputProps,\n emits: [\"focus\"],\n setup(props, {\n emit\n }) {\n const onTouchStart = (event) => {\n event.stopPropagation();\n emit(\"focus\", event);\n };\n const renderPoints = () => {\n const Points = [];\n const {\n mask,\n value,\n gutter,\n focused\n } = props;\n const length = +props.length;\n for (let i = 0; i < length; i++) {\n const char = value[i];\n const showBorder = i !== 0 && !gutter;\n const showCursor = focused && i === value.length;\n let style;\n if (i !== 0 && gutter) {\n style = {\n marginLeft: addUnit(gutter)\n };\n }\n Points.push(_createVNode(\"li\", {\n \"class\": [{\n [BORDER_LEFT]: showBorder\n }, bem(\"item\", {\n focus: showCursor\n })],\n \"style\": style\n }, [mask ? _createVNode(\"i\", {\n \"style\": {\n visibility: char ? \"visible\" : \"hidden\"\n }\n }, null) : char, showCursor && _createVNode(\"div\", {\n \"class\": bem(\"cursor\")\n }, null)]));\n }\n return Points;\n };\n return () => {\n const info = props.errorInfo || props.info;\n return _createVNode(\"div\", {\n \"class\": bem()\n }, [_createVNode(\"ul\", {\n \"class\": [bem(\"security\"), {\n [BORDER_SURROUND]: !props.gutter\n }],\n \"onTouchstartPassive\": onTouchStart\n }, [renderPoints()]), info && _createVNode(\"div\", {\n \"class\": bem(props.errorInfo ? \"error-info\" : \"info\")\n }, [info])]);\n };\n }\n});\nexport {\n stdin_default as default,\n passwordInputProps\n};\n","// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindow.js\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n if (node.toString() !== \"[object Window]\") {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n return node;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\nfunction isShadowRoot(node) {\n if (typeof ShadowRoot === \"undefined\") {\n return false;\n }\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/math.js\nvar round = Math.round;\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/userAgent.js\nfunction getUAString() {\n var uaData = navigator.userAgentData;\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(function(item) {\n return item.brand + \"/\" + item.version;\n }).join(\" \");\n }\n return navigator.userAgent;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js\nfunction isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x,\n y\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js\nfunction getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft,\n scrollTop\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js\nfunction getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js\nfunction getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js\nfunction getNodeName(element) {\n return element ? (element.nodeName || \"\").toLowerCase() : null;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js\nfunction getDocumentElement(element) {\n return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js\nfunction getWindowScrollBarX(element) {\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js\nfunction isScrollParent(element) {\n var _getComputedStyle = getComputedStyle(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n}\nfunction getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== \"body\" || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js\nfunction getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element);\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width,\n height\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js\nfunction getParentNode(element) {\n if (getNodeName(element) === \"html\") {\n return element;\n }\n return element.assignedSlot || element.parentNode || (isShadowRoot(element) ? element.host : null) || getDocumentElement(element);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js\nfunction getScrollParent(node) {\n if ([\"html\", \"body\", \"#document\"].indexOf(getNodeName(node)) >= 0) {\n return node.ownerDocument.body;\n }\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n return getScrollParent(getParentNode(node));\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js\nfunction listScrollParents(element, list) {\n var _element$ownerDocumen;\n if (list === void 0) {\n list = [];\n }\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target)));\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js\nfunction isTableElement(element) {\n return [\"table\", \"td\", \"th\"].indexOf(getNodeName(element)) >= 0;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === \"fixed\") {\n return null;\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n if (isIE && isHTMLElement(element)) {\n var elementCss = getComputedStyle(element);\n if (elementCss.position === \"fixed\") {\n return null;\n }\n }\n var currentNode = getParentNode(element);\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n while (isHTMLElement(currentNode) && [\"html\", \"body\"].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode);\n if (css.transform !== \"none\" || css.perspective !== \"none\" || css.contain === \"paint\" || [\"transform\", \"perspective\"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === \"filter\" || isFirefox && css.filter && css.filter !== \"none\") {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n return null;\n}\nfunction getOffsetParent(element) {\n var window2 = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === \"static\") {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n if (offsetParent && (getNodeName(offsetParent) === \"html\" || getNodeName(offsetParent) === \"body\" && getComputedStyle(offsetParent).position === \"static\")) {\n return window2;\n }\n return offsetParent || getContainingBlock(element) || window2;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/enums.js\nvar top = \"top\";\nvar bottom = \"bottom\";\nvar right = \"right\";\nvar left = \"left\";\nvar auto = \"auto\";\nvar basePlacements = [top, bottom, right, left];\nvar start = \"start\";\nvar end = \"end\";\nvar placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nvar beforeRead = \"beforeRead\";\nvar read = \"read\";\nvar afterRead = \"afterRead\";\nvar beforeMain = \"beforeMain\";\nvar main = \"main\";\nvar afterMain = \"afterMain\";\nvar beforeWrite = \"beforeWrite\";\nvar write = \"write\";\nvar afterWrite = \"afterWrite\";\nvar modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/orderModifiers.js\nfunction order(modifiers) {\n var map = /* @__PURE__ */ new Map();\n var visited = /* @__PURE__ */ new Set();\n var result = [];\n modifiers.forEach(function(modifier) {\n map.set(modifier.name, modifier);\n });\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function(dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n modifiers.forEach(function(modifier) {\n if (!visited.has(modifier.name)) {\n sort(modifier);\n }\n });\n return result;\n}\nfunction orderModifiers(modifiers) {\n var orderedModifiers = order(modifiers);\n return modifierPhases.reduce(function(acc, phase) {\n return acc.concat(orderedModifiers.filter(function(modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/debounce.js\nfunction debounce(fn2) {\n var pending;\n return function() {\n if (!pending) {\n pending = new Promise(function(resolve) {\n Promise.resolve().then(function() {\n pending = void 0;\n resolve(fn2());\n });\n });\n }\n return pending;\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/format.js\nfunction format(str) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return [].concat(args).reduce(function(p, c) {\n return p.replace(/%s/, c);\n }, str);\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/validateModifiers.js\nvar INVALID_MODIFIER_ERROR = 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nvar MISSING_DEPENDENCY_ERROR = 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nvar VALID_PROPERTIES = [\"name\", \"enabled\", \"phase\", \"fn\", \"effect\", \"requires\", \"options\"];\nfunction validateModifiers(modifiers) {\n modifiers.forEach(function(modifier) {\n [].concat(Object.keys(modifier), VALID_PROPERTIES).filter(function(value, index, self) {\n return self.indexOf(value) === index;\n }).forEach(function(key) {\n switch (key) {\n case \"name\":\n if (typeof modifier.name !== \"string\") {\n console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '\"name\"', '\"string\"', '\"' + String(modifier.name) + '\"'));\n }\n break;\n case \"enabled\":\n if (typeof modifier.enabled !== \"boolean\") {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"enabled\"', '\"boolean\"', '\"' + String(modifier.enabled) + '\"'));\n }\n break;\n case \"phase\":\n if (modifierPhases.indexOf(modifier.phase) < 0) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"phase\"', \"either \" + modifierPhases.join(\", \"), '\"' + String(modifier.phase) + '\"'));\n }\n break;\n case \"fn\":\n if (typeof modifier.fn !== \"function\") {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"fn\"', '\"function\"', '\"' + String(modifier.fn) + '\"'));\n }\n break;\n case \"effect\":\n if (modifier.effect != null && typeof modifier.effect !== \"function\") {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"effect\"', '\"function\"', '\"' + String(modifier.fn) + '\"'));\n }\n break;\n case \"requires\":\n if (modifier.requires != null && !Array.isArray(modifier.requires)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requires\"', '\"array\"', '\"' + String(modifier.requires) + '\"'));\n }\n break;\n case \"requiresIfExists\":\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requiresIfExists\"', '\"array\"', '\"' + String(modifier.requiresIfExists) + '\"'));\n }\n break;\n case \"options\":\n case \"data\":\n break;\n default:\n console.error('PopperJS: an invalid property has been provided to the \"' + modifier.name + '\" modifier, valid properties are ' + VALID_PROPERTIES.map(function(s) {\n return '\"' + s + '\"';\n }).join(\", \") + '; but \"' + key + '\" was provided.');\n }\n modifier.requires && modifier.requires.forEach(function(requirement) {\n if (modifiers.find(function(mod) {\n return mod.name === requirement;\n }) == null) {\n console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));\n }\n });\n });\n });\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/uniqueBy.js\nfunction uniqueBy(arr, fn2) {\n var identifiers = /* @__PURE__ */ new Set();\n return arr.filter(function(item) {\n var identifier = fn2(item);\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getBasePlacement.js\nfunction getBasePlacement(placement) {\n return placement.split(\"-\")[0];\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/mergeByName.js\nfunction mergeByName(modifiers) {\n var merged = modifiers.reduce(function(merged2, current) {\n var existing = merged2[current.name];\n merged2[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged2;\n }, {});\n return Object.keys(merged).map(function(key) {\n return merged[key];\n });\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getVariation.js\nfunction getVariation(placement) {\n return placement.split(\"-\")[1];\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js\nfunction getMainAxisFromPlacement(placement) {\n return [\"top\", \"bottom\"].indexOf(placement) >= 0 ? \"x\" : \"y\";\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/computeOffsets.js\nfunction computeOffsets(_ref) {\n var reference = _ref.reference, element = _ref.element, placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n if (mainAxis != null) {\n var len = mainAxis === \"y\" ? \"height\" : \"width\";\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n default:\n }\n }\n return offsets;\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/createPopper.js\nvar INVALID_ELEMENT_ERROR = \"Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.\";\nvar INFINITE_LOOP_ERROR = \"Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.\";\nvar DEFAULT_OPTIONS = {\n placement: \"bottom\",\n modifiers: [],\n strategy: \"absolute\"\n};\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return !args.some(function(element) {\n return !(element && typeof element.getBoundingClientRect === \"function\");\n });\n}\nfunction popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper2(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n var state = {\n placement: \"bottom\",\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference,\n popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state,\n setOptions: function setOptions(setOptionsAction) {\n var options2 = typeof setOptionsAction === \"function\" ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options2);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n };\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));\n state.orderedModifiers = orderedModifiers.filter(function(m) {\n return m.enabled;\n });\n if (true) {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function(_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function(_ref2) {\n var name = _ref2.name;\n return name === \"flip\";\n });\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', \"present and enabled to work.\"].join(\" \"));\n }\n }\n var _getComputedStyle = getComputedStyle(popper), marginTop = _getComputedStyle.marginTop, marginRight = _getComputedStyle.marginRight, marginBottom = _getComputedStyle.marginBottom, marginLeft = _getComputedStyle.marginLeft;\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function(margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', \"between the popper and its reference element or boundary.\", \"To replicate margin, use the `offset` modifier, as well as\", \"the `padding` option in the `preventOverflow` and `flip`\", \"modifiers.\"].join(\" \"));\n }\n }\n runModifierEffects();\n return instance.update();\n },\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n var _state$elements = state.elements, reference2 = _state$elements.reference, popper2 = _state$elements.popper;\n if (!areValidElements(reference2, popper2)) {\n if (true) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return;\n }\n state.rects = {\n reference: getCompositeRect(reference2, getOffsetParent(popper2), state.options.strategy === \"fixed\"),\n popper: getLayoutRect(popper2)\n };\n state.reset = false;\n state.placement = state.options.placement;\n state.orderedModifiers.forEach(function(modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (true) {\n __debug_loops__ += 1;\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;\n if (typeof fn2 === \"function\") {\n state = fn2({\n state,\n options: _options,\n name,\n instance\n }) || state;\n }\n }\n },\n update: debounce(function() {\n return new Promise(function(resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n if (!areValidElements(reference, popper)) {\n if (true) {\n console.error(INVALID_ELEMENT_ERROR);\n }\n return instance;\n }\n instance.setOptions(options).then(function(state2) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state2);\n }\n });\n function runModifierEffects() {\n state.orderedModifiers.forEach(function(_ref3) {\n var name = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect3 = _ref3.effect;\n if (typeof effect3 === \"function\") {\n var cleanupFn = effect3({\n state,\n name,\n instance,\n options: options2\n });\n var noopFn = function noopFn2() {\n };\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function(fn2) {\n return fn2();\n });\n effectCleanupFns = [];\n }\n return instance;\n };\n}\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/eventListeners.js\nvar passive = {\n passive: true\n};\nfunction effect(_ref) {\n var state = _ref.state, instance = _ref.instance, options = _ref.options;\n var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;\n var window2 = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n if (scroll) {\n scrollParents.forEach(function(scrollParent) {\n scrollParent.addEventListener(\"scroll\", instance.update, passive);\n });\n }\n if (resize) {\n window2.addEventListener(\"resize\", instance.update, passive);\n }\n return function() {\n if (scroll) {\n scrollParents.forEach(function(scrollParent) {\n scrollParent.removeEventListener(\"scroll\", instance.update, passive);\n });\n }\n if (resize) {\n window2.removeEventListener(\"resize\", instance.update, passive);\n }\n };\n}\nvar eventListeners_default = {\n name: \"eventListeners\",\n enabled: true,\n phase: \"write\",\n fn: function fn() {\n },\n effect,\n data: {}\n};\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js\nfunction popperOffsets(_ref) {\n var state = _ref.state, name = _ref.name;\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: \"absolute\",\n placement: state.placement\n });\n}\nvar popperOffsets_default = {\n name: \"popperOffsets\",\n enabled: true,\n phase: \"read\",\n fn: popperOffsets,\n data: {}\n};\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/computeStyles.js\nvar unsetSides = {\n top: \"auto\",\n right: \"auto\",\n bottom: \"auto\",\n left: \"auto\"\n};\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x, y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\nfunction mapToStyles(_ref2) {\n var _Object$assign2;\n var popper = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;\n var _ref3 = typeof roundOffsets === \"function\" ? roundOffsets({\n x,\n y\n }) : {\n x,\n y\n };\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty(\"x\");\n var hasY = offsets.hasOwnProperty(\"y\");\n var sideX = left;\n var sideY = top;\n var win = window;\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = \"clientHeight\";\n var widthProp = \"clientWidth\";\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n if (getComputedStyle(offsetParent).position !== \"static\" && position === \"absolute\") {\n heightProp = \"scrollHeight\";\n widthProp = \"scrollWidth\";\n }\n }\n offsetParent = offsetParent;\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n var commonStyles = Object.assign({\n position\n }, adaptive && unsetSides);\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x,\n y\n }) : {\n x,\n y\n };\n x = _ref4.x;\n y = _ref4.y;\n if (gpuAcceleration) {\n var _Object$assign;\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? \"0\" : \"\", _Object$assign[sideX] = hasX ? \"0\" : \"\", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : \"\", _Object$assign2[sideX] = hasX ? x + \"px\" : \"\", _Object$assign2.transform = \"\", _Object$assign2));\n}\nfunction computeStyles(_ref5) {\n var state = _ref5.state, options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n if (true) {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || \"\";\n if (adaptive && [\"transform\", \"top\", \"right\", \"bottom\", \"left\"].some(function(property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn([\"Popper: Detected CSS transitions on at least one of the following\", 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', \"\\n\\n\", 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', \"for smooth transitions, or remove these properties from the CSS\", \"transition declaration on the popper element if only transitioning\", \"opacity or background-color for example.\", \"\\n\\n\", \"We recommend using the popper element as a wrapper around an inner\", \"element that can have any CSS property transitioned for animations.\"].join(\" \"));\n }\n }\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration,\n isFixed: state.options.strategy === \"fixed\"\n };\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive,\n roundOffsets\n })));\n }\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: \"absolute\",\n adaptive: false,\n roundOffsets\n })));\n }\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n \"data-popper-placement\": state.placement\n });\n}\nvar computeStyles_default = {\n name: \"computeStyles\",\n enabled: true,\n phase: \"beforeWrite\",\n fn: computeStyles,\n data: {}\n};\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/applyStyles.js\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function(name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name];\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function(name2) {\n var value = attributes[name2];\n if (value === false) {\n element.removeAttribute(name2);\n } else {\n element.setAttribute(name2, value === true ? \"\" : value);\n }\n });\n });\n}\nfunction effect2(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: \"0\",\n top: \"0\",\n margin: \"0\"\n },\n arrow: {\n position: \"absolute\"\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n return function() {\n Object.keys(state.elements).forEach(function(name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);\n var style = styleProperties.reduce(function(style2, property) {\n style2[property] = \"\";\n return style2;\n }, {});\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function(attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n}\nvar applyStyles_default = {\n name: \"applyStyles\",\n enabled: true,\n phase: \"write\",\n fn: applyStyles,\n effect: effect2,\n requires: [\"computeStyles\"]\n};\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/popper-lite.js\nvar defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default];\nvar createPopper = /* @__PURE__ */ popperGenerator({\n defaultModifiers\n});\n\n// ../../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/offset.js\nfunction distanceAndSkiddingToXY(placement, rects, offset2) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n var _ref = typeof offset2 === \"function\" ? offset2(Object.assign({}, rects, {\n placement\n })) : offset2, skidding = _ref[0], distance = _ref[1];\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\nfunction offset(_ref2) {\n var state = _ref2.state, options = _ref2.options, name = _ref2.name;\n var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function(acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n state.modifiersData[name] = data;\n}\nvar offset_default = {\n name: \"offset\",\n enabled: true,\n phase: \"main\",\n requires: [\"popperOffsets\"],\n fn: offset\n};\nexport {\n createPopper,\n offset_default as offsetModifier\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _PasswordInput from \"./PasswordInput.mjs\";\nconst PasswordInput = withInstall(_PasswordInput);\nvar stdin_default = PasswordInput;\nimport { passwordInputProps } from \"./PasswordInput.mjs\";\nexport {\n PasswordInput,\n stdin_default as default,\n passwordInputProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _PickerGroup from \"./PickerGroup.mjs\";\nconst PickerGroup = withInstall(_PickerGroup);\nvar stdin_default = PickerGroup;\nimport { pickerGroupProps } from \"./PickerGroup.mjs\";\nexport {\n PickerGroup,\n stdin_default as default,\n pickerGroupProps\n};\n","import { ref, watch, nextTick, onMounted, watchEffect, onBeforeUnmount, defineComponent, createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\nimport { createPopper, offsetModifier } from \"@vant/popperjs\";\nimport { pick, extend, inBrowser, truthProp, numericProp, unknownProp, BORDER_RIGHT, BORDER_BOTTOM, makeArrayProp, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { useClickAway } from \"@vant/use\";\nimport { useScopeId } from \"../composables/use-scope-id.mjs\";\nimport { useSyncPropRef } from \"../composables/use-sync-prop-ref.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nconst [name, bem] = createNamespace(\"popover\");\nconst popupProps = [\"overlay\", \"duration\", \"teleport\", \"overlayStyle\", \"overlayClass\", \"closeOnClickOverlay\"];\nconst popoverProps = {\n show: Boolean,\n theme: makeStringProp(\"light\"),\n overlay: Boolean,\n actions: makeArrayProp(),\n actionsDirection: makeStringProp(\"vertical\"),\n trigger: makeStringProp(\"click\"),\n duration: numericProp,\n showArrow: truthProp,\n placement: makeStringProp(\"bottom\"),\n iconPrefix: String,\n overlayClass: unknownProp,\n overlayStyle: Object,\n closeOnClickAction: truthProp,\n closeOnClickOverlay: truthProp,\n closeOnClickOutside: truthProp,\n offset: {\n type: Array,\n default: () => [0, 8]\n },\n teleport: {\n type: [String, Object],\n default: \"body\"\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: popoverProps,\n emits: [\"select\", \"touchstart\", \"update:show\"],\n setup(props, {\n emit,\n slots,\n attrs\n }) {\n let popper;\n const popupRef = ref();\n const wrapperRef = ref();\n const popoverRef = ref();\n const show = useSyncPropRef(() => props.show, (value) => emit(\"update:show\", value));\n const getPopoverOptions = () => ({\n placement: props.placement,\n modifiers: [{\n name: \"computeStyles\",\n options: {\n adaptive: false,\n gpuAcceleration: false\n }\n }, extend({}, offsetModifier, {\n options: {\n offset: props.offset\n }\n })]\n });\n const createPopperInstance = () => {\n if (wrapperRef.value && popoverRef.value) {\n return createPopper(wrapperRef.value, popoverRef.value.popupRef.value, getPopoverOptions());\n }\n return null;\n };\n const updateLocation = () => {\n nextTick(() => {\n if (!show.value) {\n return;\n }\n if (!popper) {\n popper = createPopperInstance();\n if (inBrowser) {\n window.addEventListener(\"animationend\", updateLocation);\n window.addEventListener(\"transitionend\", updateLocation);\n }\n } else {\n popper.setOptions(getPopoverOptions());\n }\n });\n };\n const updateShow = (value) => {\n show.value = value;\n };\n const onClickWrapper = () => {\n if (props.trigger === \"click\") {\n show.value = !show.value;\n }\n };\n const onClickAction = (action, index) => {\n if (action.disabled) {\n return;\n }\n emit(\"select\", action, index);\n if (props.closeOnClickAction) {\n show.value = false;\n }\n };\n const onClickAway = () => {\n if (show.value && props.closeOnClickOutside && (!props.overlay || props.closeOnClickOverlay)) {\n show.value = false;\n }\n };\n const renderActionContent = (action, index) => {\n if (slots.action) {\n return slots.action({\n action,\n index\n });\n }\n return [action.icon && _createVNode(Icon, {\n \"name\": action.icon,\n \"classPrefix\": props.iconPrefix,\n \"class\": bem(\"action-icon\")\n }, null), _createVNode(\"div\", {\n \"class\": [bem(\"action-text\"), {\n [BORDER_BOTTOM]: props.actionsDirection === \"vertical\"\n }]\n }, [action.text])];\n };\n const renderAction = (action, index) => {\n const {\n icon,\n color,\n disabled,\n className\n } = action;\n return _createVNode(\"div\", {\n \"role\": \"menuitem\",\n \"class\": [bem(\"action\", {\n disabled,\n \"with-icon\": icon\n }), {\n [BORDER_RIGHT]: props.actionsDirection === \"horizontal\"\n }, className],\n \"style\": {\n color\n },\n \"tabindex\": disabled ? void 0 : 0,\n \"aria-disabled\": disabled || void 0,\n \"onClick\": () => onClickAction(action, index)\n }, [renderActionContent(action, index)]);\n };\n onMounted(() => {\n updateLocation();\n watchEffect(() => {\n var _a;\n popupRef.value = (_a = popoverRef.value) == null ? void 0 : _a.popupRef.value;\n });\n });\n onBeforeUnmount(() => {\n if (popper) {\n if (inBrowser) {\n window.removeEventListener(\"animationend\", updateLocation);\n window.removeEventListener(\"transitionend\", updateLocation);\n }\n popper.destroy();\n popper = null;\n }\n });\n watch(() => [show.value, props.offset, props.placement], updateLocation);\n useClickAway([wrapperRef, popupRef], onClickAway, {\n eventName: \"touchstart\"\n });\n return () => {\n var _a;\n return _createVNode(_Fragment, null, [_createVNode(\"span\", {\n \"ref\": wrapperRef,\n \"class\": bem(\"wrapper\"),\n \"onClick\": onClickWrapper\n }, [(_a = slots.reference) == null ? void 0 : _a.call(slots)]), _createVNode(Popup, _mergeProps({\n \"ref\": popoverRef,\n \"show\": show.value,\n \"class\": bem([props.theme]),\n \"position\": \"\",\n \"transition\": \"van-popover-zoom\",\n \"lockScroll\": false,\n \"onUpdate:show\": updateShow\n }, attrs, useScopeId(), pick(props, popupProps)), {\n default: () => [props.showArrow && _createVNode(\"div\", {\n \"class\": bem(\"arrow\")\n }, null), _createVNode(\"div\", {\n \"role\": \"menu\",\n \"class\": bem(\"content\", props.actionsDirection)\n }, [slots.default ? slots.default() : props.actions.map(renderAction)])]\n })]);\n };\n }\n});\nexport {\n stdin_default as default,\n popoverProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Popover from \"./Popover.mjs\";\nconst Popover = withInstall(_Popover);\nvar stdin_default = Popover;\nimport { popoverProps } from \"./Popover.mjs\";\nexport {\n Popover,\n stdin_default as default,\n popoverProps\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { addUnit, truthProp, numericProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"progress\");\nconst progressProps = {\n color: String,\n inactive: Boolean,\n pivotText: String,\n textColor: String,\n showPivot: truthProp,\n pivotColor: String,\n trackColor: String,\n strokeWidth: numericProp,\n percentage: {\n type: numericProp,\n default: 0,\n validator: (value) => +value >= 0 && +value <= 100\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: progressProps,\n setup(props) {\n const background = computed(() => props.inactive ? void 0 : props.color);\n const format = (rate) => Math.min(Math.max(+rate, 0), 100);\n const renderPivot = () => {\n const {\n textColor,\n pivotText,\n pivotColor,\n percentage\n } = props;\n const safePercentage = format(percentage);\n const text = pivotText != null ? pivotText : `${percentage}%`;\n if (props.showPivot && text) {\n const style = {\n color: textColor,\n left: `${safePercentage}%`,\n transform: `translate(-${safePercentage}%,-50%)`,\n background: pivotColor || background.value\n };\n return _createVNode(\"span\", {\n \"style\": style,\n \"class\": bem(\"pivot\", {\n inactive: props.inactive\n })\n }, [text]);\n }\n };\n return () => {\n const {\n trackColor,\n percentage,\n strokeWidth\n } = props;\n const safePercentage = format(percentage);\n const rootStyle = {\n background: trackColor,\n height: addUnit(strokeWidth)\n };\n const portionStyle = {\n width: `${safePercentage}%`,\n background: background.value\n };\n return _createVNode(\"div\", {\n \"class\": bem(),\n \"style\": rootStyle\n }, [_createVNode(\"span\", {\n \"class\": bem(\"portion\", {\n inactive: props.inactive\n }),\n \"style\": portionStyle\n }, null), renderPivot()]);\n };\n }\n});\nexport {\n stdin_default as default,\n progressProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Progress from \"./Progress.mjs\";\nconst Progress = withInstall(_Progress);\nvar stdin_default = Progress;\nimport { progressProps } from \"./Progress.mjs\";\nexport {\n Progress,\n stdin_default as default,\n progressProps\n};\n","import { ref, watch, reactive, nextTick, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { numericProp, getScrollTop, preventDefault, createNamespace, makeNumericProp } from \"../utils/index.mjs\";\nimport { useEventListener, useScrollParent } from \"@vant/use\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nconst [name, bem, t] = createNamespace(\"pull-refresh\");\nconst DEFAULT_HEAD_HEIGHT = 50;\nconst TEXT_STATUS = [\"pulling\", \"loosing\", \"success\"];\nconst pullRefreshProps = {\n disabled: Boolean,\n modelValue: Boolean,\n headHeight: makeNumericProp(DEFAULT_HEAD_HEIGHT),\n successText: String,\n pullingText: String,\n loosingText: String,\n loadingText: String,\n pullDistance: numericProp,\n successDuration: makeNumericProp(500),\n animationDuration: makeNumericProp(300)\n};\nvar stdin_default = defineComponent({\n name,\n props: pullRefreshProps,\n emits: [\"change\", \"refresh\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n let reachTop;\n const root = ref();\n const track = ref();\n const scrollParent = useScrollParent(root);\n const state = reactive({\n status: \"normal\",\n distance: 0,\n duration: 0\n });\n const touch = useTouch();\n const getHeadStyle = () => {\n if (props.headHeight !== DEFAULT_HEAD_HEIGHT) {\n return {\n height: `${props.headHeight}px`\n };\n }\n };\n const isTouchable = () => state.status !== \"loading\" && state.status !== \"success\" && !props.disabled;\n const ease = (distance) => {\n const pullDistance = +(props.pullDistance || props.headHeight);\n if (distance > pullDistance) {\n if (distance < pullDistance * 2) {\n distance = pullDistance + (distance - pullDistance) / 2;\n } else {\n distance = pullDistance * 1.5 + (distance - pullDistance * 2) / 4;\n }\n }\n return Math.round(distance);\n };\n const setStatus = (distance, isLoading) => {\n const pullDistance = +(props.pullDistance || props.headHeight);\n state.distance = distance;\n if (isLoading) {\n state.status = \"loading\";\n } else if (distance === 0) {\n state.status = \"normal\";\n } else if (distance < pullDistance) {\n state.status = \"pulling\";\n } else {\n state.status = \"loosing\";\n }\n emit(\"change\", {\n status: state.status,\n distance\n });\n };\n const getStatusText = () => {\n const {\n status\n } = state;\n if (status === \"normal\") {\n return \"\";\n }\n return props[`${status}Text`] || t(status);\n };\n const renderStatus = () => {\n const {\n status,\n distance\n } = state;\n if (slots[status]) {\n return slots[status]({\n distance\n });\n }\n const nodes = [];\n if (TEXT_STATUS.includes(status)) {\n nodes.push(_createVNode(\"div\", {\n \"class\": bem(\"text\")\n }, [getStatusText()]));\n }\n if (status === \"loading\") {\n nodes.push(_createVNode(Loading, {\n \"class\": bem(\"loading\")\n }, {\n default: getStatusText\n }));\n }\n return nodes;\n };\n const showSuccessTip = () => {\n state.status = \"success\";\n setTimeout(() => {\n setStatus(0);\n }, +props.successDuration);\n };\n const checkPosition = (event) => {\n reachTop = getScrollTop(scrollParent.value) === 0;\n if (reachTop) {\n state.duration = 0;\n touch.start(event);\n }\n };\n const onTouchStart = (event) => {\n if (isTouchable()) {\n checkPosition(event);\n }\n };\n const onTouchMove = (event) => {\n if (isTouchable()) {\n if (!reachTop) {\n checkPosition(event);\n }\n const {\n deltaY\n } = touch;\n touch.move(event);\n if (reachTop && deltaY.value >= 0 && touch.isVertical()) {\n preventDefault(event);\n setStatus(ease(deltaY.value));\n }\n }\n };\n const onTouchEnd = () => {\n if (reachTop && touch.deltaY.value && isTouchable()) {\n state.duration = +props.animationDuration;\n if (state.status === \"loosing\") {\n setStatus(+props.headHeight, true);\n emit(\"update:modelValue\", true);\n nextTick(() => emit(\"refresh\"));\n } else {\n setStatus(0);\n }\n }\n };\n watch(() => props.modelValue, (value) => {\n state.duration = +props.animationDuration;\n if (value) {\n setStatus(+props.headHeight, true);\n } else if (slots.success || props.successText) {\n showSuccessTip();\n } else {\n setStatus(0, false);\n }\n });\n useEventListener(\"touchmove\", onTouchMove, {\n target: track\n });\n return () => {\n var _a;\n const trackStyle = {\n transitionDuration: `${state.duration}ms`,\n transform: state.distance ? `translate3d(0,${state.distance}px, 0)` : \"\"\n };\n return _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem()\n }, [_createVNode(\"div\", {\n \"ref\": track,\n \"class\": bem(\"track\"),\n \"style\": trackStyle,\n \"onTouchstartPassive\": onTouchStart,\n \"onTouchend\": onTouchEnd,\n \"onTouchcancel\": onTouchEnd\n }, [_createVNode(\"div\", {\n \"class\": bem(\"head\"),\n \"style\": getHeadStyle()\n }, [renderStatus()]), (_a = slots.default) == null ? void 0 : _a.call(slots)])]);\n };\n }\n});\nexport {\n stdin_default as default,\n pullRefreshProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _PullRefresh from \"./PullRefresh.mjs\";\nconst PullRefresh = withInstall(_PullRefresh);\nvar stdin_default = PullRefresh;\nimport { pullRefreshProps } from \"./PullRefresh.mjs\";\nexport {\n PullRefresh,\n stdin_default as default,\n pullRefreshProps\n};\n","import { computed, defineComponent, ref, createVNode as _createVNode } from \"vue\";\nimport { addUnit, truthProp, numericProp, preventDefault, makeStringProp, makeNumberProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { useRect, useCustomFieldValue, useEventListener } from \"@vant/use\";\nimport { useRefs } from \"../composables/use-refs.mjs\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"rate\");\nfunction getRateStatus(value, index, allowHalf, readonly) {\n if (value >= index) {\n return {\n status: \"full\",\n value: 1\n };\n }\n if (value + 0.5 >= index && allowHalf && !readonly) {\n return {\n status: \"half\",\n value: 0.5\n };\n }\n if (value + 1 >= index && allowHalf && readonly) {\n const cardinal = 10 ** 10;\n return {\n status: \"half\",\n value: Math.round((value - index + 1) * cardinal) / cardinal\n };\n }\n return {\n status: \"void\",\n value: 0\n };\n}\nconst rateProps = {\n size: numericProp,\n icon: makeStringProp(\"star\"),\n color: String,\n count: makeNumericProp(5),\n gutter: numericProp,\n clearable: Boolean,\n readonly: Boolean,\n disabled: Boolean,\n voidIcon: makeStringProp(\"star-o\"),\n allowHalf: Boolean,\n voidColor: String,\n touchable: truthProp,\n iconPrefix: String,\n modelValue: makeNumberProp(0),\n disabledColor: String\n};\nvar stdin_default = defineComponent({\n name,\n props: rateProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit\n }) {\n const touch = useTouch();\n const [itemRefs, setItemRefs] = useRefs();\n const groupRef = ref();\n const unselectable = computed(() => props.readonly || props.disabled);\n const untouchable = computed(() => unselectable.value || !props.touchable);\n const list = computed(() => Array(+props.count).fill(\"\").map((_, i) => getRateStatus(props.modelValue, i + 1, props.allowHalf, props.readonly)));\n let ranges;\n let groupRefRect;\n let minRectTop = Number.MAX_SAFE_INTEGER;\n let maxRectTop = Number.MIN_SAFE_INTEGER;\n const updateRanges = () => {\n groupRefRect = useRect(groupRef);\n const rects = itemRefs.value.map(useRect);\n ranges = [];\n rects.forEach((rect, index) => {\n minRectTop = Math.min(rect.top, minRectTop);\n maxRectTop = Math.max(rect.top, maxRectTop);\n if (props.allowHalf) {\n ranges.push({\n score: index + 0.5,\n left: rect.left,\n top: rect.top,\n height: rect.height\n }, {\n score: index + 1,\n left: rect.left + rect.width / 2,\n top: rect.top,\n height: rect.height\n });\n } else {\n ranges.push({\n score: index + 1,\n left: rect.left,\n top: rect.top,\n height: rect.height\n });\n }\n });\n };\n const getScoreByPosition = (x, y) => {\n for (let i = ranges.length - 1; i > 0; i--) {\n if (y >= groupRefRect.top && y <= groupRefRect.bottom) {\n if (x > ranges[i].left && y >= ranges[i].top && y <= ranges[i].top + ranges[i].height) {\n return ranges[i].score;\n }\n } else {\n const curTop = y < groupRefRect.top ? minRectTop : maxRectTop;\n if (x > ranges[i].left && ranges[i].top === curTop) {\n return ranges[i].score;\n }\n }\n }\n return props.allowHalf ? 0.5 : 1;\n };\n const select = (value) => {\n if (unselectable.value || value === props.modelValue) return;\n emit(\"update:modelValue\", value);\n emit(\"change\", value);\n };\n const onTouchStart = (event) => {\n if (untouchable.value) {\n return;\n }\n touch.start(event);\n updateRanges();\n };\n const onTouchMove = (event) => {\n if (untouchable.value) {\n return;\n }\n touch.move(event);\n if (touch.isHorizontal() && !touch.isTap.value) {\n const {\n clientX,\n clientY\n } = event.touches[0];\n preventDefault(event);\n select(getScoreByPosition(clientX, clientY));\n }\n };\n const renderStar = (item, index) => {\n const {\n icon,\n size,\n color,\n count,\n gutter,\n voidIcon,\n disabled,\n voidColor,\n allowHalf,\n iconPrefix,\n disabledColor\n } = props;\n const score = index + 1;\n const isFull = item.status === \"full\";\n const isVoid = item.status === \"void\";\n const renderHalf = allowHalf && item.value > 0 && item.value < 1;\n let style;\n if (gutter && score !== +count) {\n style = {\n paddingRight: addUnit(gutter)\n };\n }\n const onClickItem = (event) => {\n updateRanges();\n let value = allowHalf ? getScoreByPosition(event.clientX, event.clientY) : score;\n if (props.clearable && touch.isTap.value && value === props.modelValue) {\n value = 0;\n }\n select(value);\n };\n return _createVNode(\"div\", {\n \"key\": index,\n \"ref\": setItemRefs(index),\n \"role\": \"radio\",\n \"style\": style,\n \"class\": bem(\"item\"),\n \"tabindex\": disabled ? void 0 : 0,\n \"aria-setsize\": count,\n \"aria-posinset\": score,\n \"aria-checked\": !isVoid,\n \"onClick\": onClickItem\n }, [_createVNode(Icon, {\n \"size\": size,\n \"name\": isFull ? icon : voidIcon,\n \"class\": bem(\"icon\", {\n disabled,\n full: isFull\n }),\n \"color\": disabled ? disabledColor : isFull ? color : voidColor,\n \"classPrefix\": iconPrefix\n }, null), renderHalf && _createVNode(Icon, {\n \"size\": size,\n \"style\": {\n width: item.value + \"em\"\n },\n \"name\": isVoid ? voidIcon : icon,\n \"class\": bem(\"icon\", [\"half\", {\n disabled,\n full: !isVoid\n }]),\n \"color\": disabled ? disabledColor : isVoid ? voidColor : color,\n \"classPrefix\": iconPrefix\n }, null)]);\n };\n useCustomFieldValue(() => props.modelValue);\n useEventListener(\"touchmove\", onTouchMove, {\n target: groupRef\n });\n return () => _createVNode(\"div\", {\n \"ref\": groupRef,\n \"role\": \"radiogroup\",\n \"class\": bem({\n readonly: props.readonly,\n disabled: props.disabled\n }),\n \"tabindex\": props.disabled ? void 0 : 0,\n \"aria-disabled\": props.disabled,\n \"aria-readonly\": props.readonly,\n \"onTouchstartPassive\": onTouchStart\n }, [list.value.map(renderStar)]);\n }\n});\nexport {\n stdin_default as default,\n rateProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Rate from \"./Rate.mjs\";\nconst Rate = withInstall(_Rate);\nvar stdin_default = Rate;\nimport { rateProps } from \"./Rate.mjs\";\nexport {\n Rate,\n stdin_default as default,\n rateProps\n};\n","import { defineComponent, computed, createVNode as _createVNode } from \"vue\";\nimport { createNamespace, makeNumberProp, makeArrayProp, makeStringProp, addUnit } from \"../utils/index.mjs\";\nconst props = {\n figureArr: makeArrayProp(),\n delay: Number,\n duration: makeNumberProp(2),\n isStart: Boolean,\n direction: makeStringProp(\"down\"),\n height: makeNumberProp(40)\n};\nconst [name, bem] = createNamespace(\"rolling-text-item\");\nvar stdin_default = defineComponent({\n name,\n props,\n setup(props2) {\n const newFigureArr = computed(() => props2.direction === \"down\" ? props2.figureArr.slice().reverse() : props2.figureArr);\n const translatePx = computed(() => {\n const totalHeight = props2.height * (props2.figureArr.length - 1);\n return `-${totalHeight}px`;\n });\n const itemStyle = computed(() => ({\n lineHeight: addUnit(props2.height)\n }));\n const rootStyle = computed(() => ({\n height: addUnit(props2.height),\n \"--van-translate\": translatePx.value,\n \"--van-duration\": props2.duration + \"s\",\n \"--van-delay\": props2.delay + \"s\"\n }));\n return () => _createVNode(\"div\", {\n \"class\": bem([props2.direction]),\n \"style\": rootStyle.value\n }, [_createVNode(\"div\", {\n \"class\": bem(\"box\", {\n animate: props2.isStart\n })\n }, [Array.isArray(newFigureArr.value) && newFigureArr.value.map((figure) => _createVNode(\"div\", {\n \"class\": bem(\"item\"),\n \"style\": itemStyle.value\n }, [figure]))])]);\n }\n});\nexport {\n stdin_default as default,\n props\n};\n","import { ref, defineComponent, computed, watch, createVNode as _createVNode } from \"vue\";\nimport { raf } from \"@vant/use\";\nimport { createNamespace, makeArrayProp, makeNumberProp, makeStringProp, truthProp, padZero } from \"../utils/index.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport RollingTextItem from \"./RollingTextItem.mjs\";\nconst [name, bem] = createNamespace(\"rolling-text\");\nconst rollingTextProps = {\n startNum: makeNumberProp(0),\n targetNum: Number,\n textList: makeArrayProp(),\n duration: makeNumberProp(2),\n autoStart: truthProp,\n direction: makeStringProp(\"down\"),\n stopOrder: makeStringProp(\"ltr\"),\n height: makeNumberProp(40)\n};\nconst CIRCLE_NUM = 2;\nvar stdin_default = defineComponent({\n name,\n props: rollingTextProps,\n setup(props) {\n const isCustomType = computed(() => Array.isArray(props.textList) && props.textList.length);\n const itemLength = computed(() => {\n if (isCustomType.value) return props.textList[0].length;\n return `${Math.max(props.startNum, props.targetNum)}`.length;\n });\n const getTextArrByIdx = (idx) => {\n const result = [];\n for (let i = 0; i < props.textList.length; i++) {\n result.push(props.textList[i][idx]);\n }\n return result;\n };\n const targetNumArr = computed(() => {\n if (isCustomType.value) return new Array(itemLength.value).fill(\"\");\n return padZero(props.targetNum, itemLength.value).split(\"\");\n });\n const startNumArr = computed(() => padZero(props.startNum, itemLength.value).split(\"\"));\n const getFigureArr = (i) => {\n const start2 = +startNumArr.value[i];\n const target = +targetNumArr.value[i];\n const result = [];\n for (let i2 = start2; i2 <= 9; i2++) {\n result.push(i2);\n }\n for (let i2 = 0; i2 <= CIRCLE_NUM; i2++) {\n for (let j = 0; j <= 9; j++) {\n result.push(j);\n }\n }\n for (let i2 = 0; i2 <= target; i2++) {\n result.push(i2);\n }\n return result;\n };\n const getDelay = (i, len) => {\n if (props.stopOrder === \"ltr\") return 0.2 * i;\n return 0.2 * (len - 1 - i);\n };\n const rolling = ref(props.autoStart);\n const start = () => {\n rolling.value = true;\n };\n const reset = () => {\n rolling.value = false;\n if (props.autoStart) {\n raf(() => start());\n }\n };\n watch(() => props.autoStart, (value) => {\n if (value) {\n start();\n }\n });\n useExpose({\n start,\n reset\n });\n return () => _createVNode(\"div\", {\n \"class\": bem()\n }, [targetNumArr.value.map((_, i) => _createVNode(RollingTextItem, {\n \"figureArr\": isCustomType.value ? getTextArrByIdx(i) : getFigureArr(i),\n \"duration\": props.duration,\n \"direction\": props.direction,\n \"isStart\": rolling.value,\n \"height\": props.height,\n \"delay\": getDelay(i, itemLength.value)\n }, null))]);\n }\n});\nexport {\n stdin_default as default,\n rollingTextProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _RollingText from \"./RollingText.mjs\";\nconst RollingText = withInstall(_RollingText);\nvar stdin_default = RollingText;\nimport { rollingTextProps } from \"./RollingText.mjs\";\nexport {\n RollingText,\n stdin_default as default,\n rollingTextProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Row from \"./Row.mjs\";\nconst Row = withInstall(_Row);\nvar stdin_default = Row;\nimport { rowProps } from \"./Row.mjs\";\nexport {\n Row,\n stdin_default as default,\n rowProps\n};\n","import { ref, defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { pick, extend, truthProp, preventDefault, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { fieldSharedProps } from \"../field/Field.mjs\";\nimport { useId } from \"../composables/use-id.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Field } from \"../field/index.mjs\";\nconst [name, bem, t] = createNamespace(\"search\");\nconst searchProps = extend({}, fieldSharedProps, {\n label: String,\n shape: makeStringProp(\"square\"),\n leftIcon: makeStringProp(\"search\"),\n clearable: truthProp,\n actionText: String,\n background: String,\n showAction: Boolean\n});\nvar stdin_default = defineComponent({\n name,\n props: searchProps,\n emits: [\"blur\", \"focus\", \"clear\", \"search\", \"cancel\", \"clickInput\", \"clickLeftIcon\", \"clickRightIcon\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots,\n attrs\n }) {\n const id = useId();\n const fieldRef = ref();\n const onCancel = () => {\n if (!slots.action) {\n emit(\"update:modelValue\", \"\");\n emit(\"cancel\");\n }\n };\n const onKeypress = (event) => {\n const ENTER_CODE = 13;\n if (event.keyCode === ENTER_CODE) {\n preventDefault(event);\n emit(\"search\", props.modelValue);\n }\n };\n const getInputId = () => props.id || `${id}-input`;\n const renderLabel = () => {\n if (slots.label || props.label) {\n return _createVNode(\"label\", {\n \"class\": bem(\"label\"),\n \"for\": getInputId(),\n \"data-allow-mismatch\": \"attribute\"\n }, [slots.label ? slots.label() : props.label]);\n }\n };\n const renderAction = () => {\n if (props.showAction) {\n const text = props.actionText || t(\"cancel\");\n return _createVNode(\"div\", {\n \"class\": bem(\"action\"),\n \"role\": \"button\",\n \"tabindex\": 0,\n \"onClick\": onCancel\n }, [slots.action ? slots.action() : text]);\n }\n };\n const blur = () => {\n var _a;\n return (_a = fieldRef.value) == null ? void 0 : _a.blur();\n };\n const focus = () => {\n var _a;\n return (_a = fieldRef.value) == null ? void 0 : _a.focus();\n };\n const onBlur = (event) => emit(\"blur\", event);\n const onFocus = (event) => emit(\"focus\", event);\n const onClear = (event) => emit(\"clear\", event);\n const onClickInput = (event) => emit(\"clickInput\", event);\n const onClickLeftIcon = (event) => emit(\"clickLeftIcon\", event);\n const onClickRightIcon = (event) => emit(\"clickRightIcon\", event);\n const fieldPropNames = Object.keys(fieldSharedProps);\n const renderField = () => {\n const fieldAttrs = extend({}, attrs, pick(props, fieldPropNames), {\n id: getInputId()\n });\n const onInput = (value) => emit(\"update:modelValue\", value);\n return _createVNode(Field, _mergeProps({\n \"ref\": fieldRef,\n \"type\": \"search\",\n \"class\": bem(\"field\", {\n \"with-message\": fieldAttrs.errorMessage\n }),\n \"border\": false,\n \"labelAlign\": \"left\",\n \"onBlur\": onBlur,\n \"onFocus\": onFocus,\n \"onClear\": onClear,\n \"onKeypress\": onKeypress,\n \"onClickInput\": onClickInput,\n \"onClickLeftIcon\": onClickLeftIcon,\n \"onClickRightIcon\": onClickRightIcon,\n \"onUpdate:modelValue\": onInput\n }, fieldAttrs), pick(slots, [\"left-icon\", \"right-icon\"]));\n };\n useExpose({\n focus,\n blur\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": bem({\n \"show-action\": props.showAction\n }),\n \"style\": {\n background: props.background\n }\n }, [(_a = slots.left) == null ? void 0 : _a.call(slots), _createVNode(\"div\", {\n \"class\": bem(\"content\", props.shape)\n }, [renderLabel(), renderField()]), renderAction()]);\n };\n }\n});\nexport {\n stdin_default as default,\n searchProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Search from \"./Search.mjs\";\nconst Search = withInstall(_Search);\nvar stdin_default = Search;\nimport { searchProps } from \"./Search.mjs\";\nexport {\n Search,\n stdin_default as default,\n searchProps\n};\n","import { defineComponent, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { pick, extend, truthProp, makeArrayProp, createNamespace, HAPTICS_FEEDBACK } from \"../utils/index.mjs\";\nimport { popupSharedProps, popupSharedPropKeys } from \"../popup/shared.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Popup } from \"../popup/index.mjs\";\nconst isImage = (name2) => name2 == null ? void 0 : name2.includes(\"/\");\nconst popupInheritKeys = [...popupSharedPropKeys, \"round\", \"closeOnPopstate\", \"safeAreaInsetBottom\"];\nconst iconMap = {\n qq: \"qq\",\n link: \"link-o\",\n weibo: \"weibo\",\n qrcode: \"qr\",\n poster: \"photo-o\",\n wechat: \"wechat\",\n \"weapp-qrcode\": \"miniprogram-o\",\n \"wechat-moments\": \"wechat-moments\"\n};\nconst [name, bem, t] = createNamespace(\"share-sheet\");\nconst shareSheetProps = extend({}, popupSharedProps, {\n title: String,\n round: truthProp,\n options: makeArrayProp(),\n cancelText: String,\n description: String,\n closeOnPopstate: truthProp,\n safeAreaInsetBottom: truthProp\n});\nvar stdin_default = defineComponent({\n name,\n props: shareSheetProps,\n emits: [\"cancel\", \"select\", \"update:show\"],\n setup(props, {\n emit,\n slots\n }) {\n const updateShow = (value) => emit(\"update:show\", value);\n const onCancel = () => {\n updateShow(false);\n emit(\"cancel\");\n };\n const onSelect = (option, index) => emit(\"select\", option, index);\n const renderHeader = () => {\n const title = slots.title ? slots.title() : props.title;\n const description = slots.description ? slots.description() : props.description;\n if (title || description) {\n return _createVNode(\"div\", {\n \"class\": bem(\"header\")\n }, [title && _createVNode(\"h2\", {\n \"class\": bem(\"title\")\n }, [title]), description && _createVNode(\"span\", {\n \"class\": bem(\"description\")\n }, [description])]);\n }\n };\n const renderIcon = (icon) => {\n if (isImage(icon)) {\n return _createVNode(\"img\", {\n \"src\": icon,\n \"class\": bem(\"image-icon\")\n }, null);\n }\n return _createVNode(\"div\", {\n \"class\": bem(\"icon\", [icon])\n }, [_createVNode(Icon, {\n \"name\": iconMap[icon] || icon\n }, null)]);\n };\n const renderOption = (option, index) => {\n const {\n name: name2,\n icon,\n className,\n description\n } = option;\n return _createVNode(\"div\", {\n \"role\": \"button\",\n \"tabindex\": 0,\n \"class\": [bem(\"option\"), className, HAPTICS_FEEDBACK],\n \"onClick\": () => onSelect(option, index)\n }, [renderIcon(icon), name2 && _createVNode(\"span\", {\n \"class\": bem(\"name\")\n }, [name2]), description && _createVNode(\"span\", {\n \"class\": bem(\"option-description\")\n }, [description])]);\n };\n const renderOptions = (options, border) => _createVNode(\"div\", {\n \"class\": bem(\"options\", {\n border\n })\n }, [options.map(renderOption)]);\n const renderRows = () => {\n const {\n options\n } = props;\n if (Array.isArray(options[0])) {\n return options.map((item, index) => renderOptions(item, index !== 0));\n }\n return renderOptions(options);\n };\n const renderCancelButton = () => {\n var _a;\n const cancelText = (_a = props.cancelText) != null ? _a : t(\"cancel\");\n if (slots.cancel || cancelText) {\n return _createVNode(\"button\", {\n \"type\": \"button\",\n \"class\": bem(\"cancel\"),\n \"onClick\": onCancel\n }, [slots.cancel ? slots.cancel() : cancelText]);\n }\n };\n return () => _createVNode(Popup, _mergeProps({\n \"class\": bem(),\n \"position\": \"bottom\",\n \"onUpdate:show\": updateShow\n }, pick(props, popupInheritKeys)), {\n default: () => [renderHeader(), renderRows(), renderCancelButton()]\n });\n }\n});\nexport {\n stdin_default as default,\n shareSheetProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _ShareSheet from \"./ShareSheet.mjs\";\nconst ShareSheet = withInstall(_ShareSheet);\nvar stdin_default = ShareSheet;\nimport { shareSheetProps } from \"./ShareSheet.mjs\";\nexport {\n ShareSheet,\n stdin_default as default,\n shareSheetProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { useChildren } from \"@vant/use\";\nconst [name, bem] = createNamespace(\"sidebar\");\nconst SIDEBAR_KEY = Symbol(name);\nconst sidebarProps = {\n modelValue: makeNumericProp(0)\n};\nvar stdin_default = defineComponent({\n name,\n props: sidebarProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n linkChildren\n } = useChildren(SIDEBAR_KEY);\n const getActive = () => +props.modelValue;\n const setActive = (value) => {\n if (value !== getActive()) {\n emit(\"update:modelValue\", value);\n emit(\"change\", value);\n }\n };\n linkChildren({\n getActive,\n setActive\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"role\": \"tablist\",\n \"class\": bem()\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n }\n});\nexport {\n SIDEBAR_KEY,\n stdin_default as default,\n sidebarProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Sidebar from \"./Sidebar.mjs\";\nconst Sidebar = withInstall(_Sidebar);\nvar stdin_default = Sidebar;\nimport { sidebarProps } from \"./Sidebar.mjs\";\nexport {\n Sidebar,\n stdin_default as default,\n sidebarProps\n};\n","import { defineComponent, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { extend, numericProp, createNamespace } from \"../utils/index.mjs\";\nimport { SIDEBAR_KEY } from \"../sidebar/Sidebar.mjs\";\nimport { useParent } from \"@vant/use\";\nimport { useRoute, routeProps } from \"../composables/use-route.mjs\";\nimport { Badge } from \"../badge/index.mjs\";\nconst [name, bem] = createNamespace(\"sidebar-item\");\nconst sidebarItemProps = extend({}, routeProps, {\n dot: Boolean,\n title: String,\n badge: numericProp,\n disabled: Boolean,\n badgeProps: Object\n});\nvar stdin_default = defineComponent({\n name,\n props: sidebarItemProps,\n emits: [\"click\"],\n setup(props, {\n emit,\n slots\n }) {\n const route = useRoute();\n const {\n parent,\n index\n } = useParent(SIDEBAR_KEY);\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <SidebarItem> must be a child component of <Sidebar>.\");\n }\n return;\n }\n const onClick = () => {\n if (props.disabled) {\n return;\n }\n emit(\"click\", index.value);\n parent.setActive(index.value);\n route();\n };\n return () => {\n const {\n dot,\n badge,\n title,\n disabled\n } = props;\n const selected = index.value === parent.getActive();\n return _createVNode(\"div\", {\n \"role\": \"tab\",\n \"class\": bem({\n select: selected,\n disabled\n }),\n \"tabindex\": disabled ? void 0 : 0,\n \"aria-selected\": selected,\n \"onClick\": onClick\n }, [_createVNode(Badge, _mergeProps({\n \"dot\": dot,\n \"class\": bem(\"text\"),\n \"content\": badge\n }, props.badgeProps), {\n default: () => [slots.title ? slots.title() : title]\n })]);\n };\n }\n});\nexport {\n stdin_default as default,\n sidebarItemProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _SidebarItem from \"./SidebarItem.mjs\";\nconst SidebarItem = withInstall(_SidebarItem);\nvar stdin_default = SidebarItem;\nimport { sidebarItemProps } from \"./SidebarItem.mjs\";\nexport {\n SidebarItem,\n stdin_default as default,\n sidebarItemProps\n};\n","import { computed, ref, onMounted, defineComponent, watch, createVNode as _createVNode } from \"vue\";\nimport { inBrowser, makeNumberProp, makeStringProp, createNamespace, preventDefault, windowWidth } from \"../utils/index.mjs\";\nimport { useRect } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Button } from \"../button/index.mjs\";\nconst [name, bem, t] = createNamespace(\"signature\");\nconst signatureProps = {\n tips: String,\n type: makeStringProp(\"png\"),\n penColor: makeStringProp(\"#000\"),\n lineWidth: makeNumberProp(3),\n clearButtonText: String,\n backgroundColor: makeStringProp(\"\"),\n confirmButtonText: String\n};\nconst hasCanvasSupport = () => {\n var _a;\n const canvas = document.createElement(\"canvas\");\n return !!((_a = canvas.getContext) == null ? void 0 : _a.call(canvas, \"2d\"));\n};\nvar stdin_default = defineComponent({\n name,\n props: signatureProps,\n emits: [\"submit\", \"clear\", \"start\", \"end\", \"signing\"],\n setup(props, {\n emit,\n slots\n }) {\n const canvasRef = ref();\n const wrapRef = ref();\n const ctx = computed(() => {\n if (!canvasRef.value) return null;\n return canvasRef.value.getContext(\"2d\");\n });\n const isRenderCanvas = inBrowser ? hasCanvasSupport() : true;\n let canvasWidth = 0;\n let canvasHeight = 0;\n let canvasRect;\n const touchStart = () => {\n if (!ctx.value) {\n return false;\n }\n ctx.value.beginPath();\n ctx.value.lineWidth = props.lineWidth;\n ctx.value.strokeStyle = props.penColor;\n canvasRect = useRect(canvasRef);\n emit(\"start\");\n };\n const touchMove = (event) => {\n if (!ctx.value) {\n return false;\n }\n preventDefault(event);\n const touch = event.touches[0];\n const mouseX = touch.clientX - ((canvasRect == null ? void 0 : canvasRect.left) || 0);\n const mouseY = touch.clientY - ((canvasRect == null ? void 0 : canvasRect.top) || 0);\n ctx.value.lineCap = \"round\";\n ctx.value.lineJoin = \"round\";\n ctx.value.lineTo(mouseX, mouseY);\n ctx.value.stroke();\n emit(\"signing\", event);\n };\n const touchEnd = (event) => {\n preventDefault(event);\n emit(\"end\");\n };\n const isCanvasEmpty = (canvas) => {\n const empty = document.createElement(\"canvas\");\n empty.width = canvas.width;\n empty.height = canvas.height;\n if (props.backgroundColor) {\n const emptyCtx = empty.getContext(\"2d\");\n setCanvasBgColor(emptyCtx);\n }\n return canvas.toDataURL() === empty.toDataURL();\n };\n const setCanvasBgColor = (ctx2) => {\n if (ctx2 && props.backgroundColor) {\n ctx2.fillStyle = props.backgroundColor;\n ctx2.fillRect(0, 0, canvasWidth, canvasHeight);\n }\n };\n const submit = () => {\n var _a, _b;\n const canvas = canvasRef.value;\n if (!canvas) {\n return;\n }\n const isEmpty = isCanvasEmpty(canvas);\n const image = isEmpty ? \"\" : ((_b = (_a = {\n jpg: () => canvas.toDataURL(\"image/jpeg\", 0.8),\n jpeg: () => canvas.toDataURL(\"image/jpeg\", 0.8)\n })[props.type]) == null ? void 0 : _b.call(_a)) || canvas.toDataURL(`image/${props.type}`);\n emit(\"submit\", {\n image,\n canvas\n });\n };\n const clear = () => {\n if (ctx.value) {\n ctx.value.clearRect(0, 0, canvasWidth, canvasHeight);\n ctx.value.closePath();\n setCanvasBgColor(ctx.value);\n }\n emit(\"clear\");\n };\n const initialize = () => {\n var _a, _b, _c;\n if (isRenderCanvas && canvasRef.value) {\n const canvas = canvasRef.value;\n const dpr = inBrowser ? window.devicePixelRatio : 1;\n canvasWidth = canvas.width = (((_a = wrapRef.value) == null ? void 0 : _a.offsetWidth) || 0) * dpr;\n canvasHeight = canvas.height = (((_b = wrapRef.value) == null ? void 0 : _b.offsetHeight) || 0) * dpr;\n (_c = ctx.value) == null ? void 0 : _c.scale(dpr, dpr);\n setCanvasBgColor(ctx.value);\n }\n };\n const resize = () => {\n if (ctx.value) {\n const data = ctx.value.getImageData(0, 0, canvasWidth, canvasHeight);\n initialize();\n ctx.value.putImageData(data, 0, 0);\n }\n };\n watch(windowWidth, resize);\n onMounted(initialize);\n useExpose({\n resize,\n clear,\n submit\n });\n return () => _createVNode(\"div\", {\n \"class\": bem()\n }, [_createVNode(\"div\", {\n \"class\": bem(\"content\"),\n \"ref\": wrapRef\n }, [isRenderCanvas ? _createVNode(\"canvas\", {\n \"ref\": canvasRef,\n \"onTouchstartPassive\": touchStart,\n \"onTouchmove\": touchMove,\n \"onTouchend\": touchEnd\n }, null) : slots.tips ? slots.tips() : _createVNode(\"p\", null, [props.tips])]), _createVNode(\"div\", {\n \"class\": bem(\"footer\")\n }, [_createVNode(Button, {\n \"size\": \"small\",\n \"onClick\": clear\n }, {\n default: () => [props.clearButtonText || t(\"clear\")]\n }), _createVNode(Button, {\n \"type\": \"primary\",\n \"size\": \"small\",\n \"onClick\": submit\n }, {\n default: () => [props.confirmButtonText || t(\"confirm\")]\n })])]);\n }\n});\nexport {\n stdin_default as default,\n signatureProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Signature from \"./Signature.mjs\";\nconst Signature = withInstall(_Signature);\nvar stdin_default = Signature;\nexport {\n Signature,\n stdin_default as default\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { createNamespace, numericProp, addUnit } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"skeleton-title\");\nconst skeletonTitleProps = {\n round: Boolean,\n titleWidth: numericProp\n};\nvar stdin_default = defineComponent({\n name,\n props: skeletonTitleProps,\n setup(props) {\n return () => _createVNode(\"h3\", {\n \"class\": bem([{\n round: props.round\n }]),\n \"style\": {\n width: addUnit(props.titleWidth)\n }\n }, null);\n }\n});\nexport {\n stdin_default as default,\n skeletonTitleProps\n};\n","import _SkeletonTitle from \"./SkeletonTitle.mjs\";\nimport { withInstall } from \"../utils/index.mjs\";\nconst SkeletonTitle = withInstall(_SkeletonTitle);\nvar stdin_default = SkeletonTitle;\nimport { skeletonTitleProps } from \"./SkeletonTitle.mjs\";\nexport {\n SkeletonTitle,\n stdin_default as default,\n skeletonTitleProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { numericProp, getSizeStyle, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"skeleton-avatar\");\nconst skeletonAvatarProps = {\n avatarSize: numericProp,\n avatarShape: makeStringProp(\"round\")\n};\nvar stdin_default = defineComponent({\n name,\n props: skeletonAvatarProps,\n setup(props) {\n return () => _createVNode(\"div\", {\n \"class\": bem([props.avatarShape]),\n \"style\": getSizeStyle(props.avatarSize)\n }, null);\n }\n});\nexport {\n stdin_default as default,\n skeletonAvatarProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _SkeletonAvatar from \"./SkeletonAvatar.mjs\";\nconst SkeletonAvatar = withInstall(_SkeletonAvatar);\nvar stdin_default = SkeletonAvatar;\nimport { skeletonAvatarProps } from \"./SkeletonAvatar.mjs\";\nexport {\n SkeletonAvatar,\n stdin_default as default,\n skeletonAvatarProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { createNamespace, numericProp } from \"../utils/index.mjs\";\nconst DEFAULT_ROW_WIDTH = \"100%\";\nconst skeletonParagraphProps = {\n round: Boolean,\n rowWidth: {\n type: numericProp,\n default: DEFAULT_ROW_WIDTH\n }\n};\nconst [name, bem] = createNamespace(\"skeleton-paragraph\");\nvar stdin_default = defineComponent({\n name,\n props: skeletonParagraphProps,\n setup(props) {\n return () => _createVNode(\"div\", {\n \"class\": bem([{\n round: props.round\n }]),\n \"style\": {\n width: props.rowWidth\n }\n }, null);\n }\n});\nexport {\n DEFAULT_ROW_WIDTH,\n stdin_default as default,\n skeletonParagraphProps\n};\n","import _SkeletonParagraph from \"./SkeletonParagraph.mjs\";\nimport { withInstall } from \"../utils/index.mjs\";\nconst SkeletonParagraph = withInstall(_SkeletonParagraph);\nvar stdin_default = SkeletonParagraph;\nimport { skeletonParagraphProps, DEFAULT_ROW_WIDTH } from \"./SkeletonParagraph.mjs\";\nexport {\n DEFAULT_ROW_WIDTH,\n SkeletonParagraph,\n stdin_default as default,\n skeletonParagraphProps\n};\n","import { defineComponent, createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\nimport { addUnit, truthProp, numericProp, makeStringProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport SkeletonTitle from \"../skeleton-title/index.mjs\";\nimport SkeletonAvatar from \"../skeleton-avatar/index.mjs\";\nimport SkeletonParagraph, { DEFAULT_ROW_WIDTH } from \"../skeleton-paragraph/index.mjs\";\nconst [name, bem] = createNamespace(\"skeleton\");\nconst DEFAULT_LAST_ROW_WIDTH = \"60%\";\nconst skeletonProps = {\n row: makeNumericProp(0),\n round: Boolean,\n title: Boolean,\n titleWidth: numericProp,\n avatar: Boolean,\n avatarSize: numericProp,\n avatarShape: makeStringProp(\"round\"),\n loading: truthProp,\n animate: truthProp,\n rowWidth: {\n type: [Number, String, Array],\n default: DEFAULT_ROW_WIDTH\n }\n};\nvar stdin_default = defineComponent({\n name,\n inheritAttrs: false,\n props: skeletonProps,\n setup(props, {\n slots,\n attrs\n }) {\n const renderAvatar = () => {\n if (props.avatar) {\n return _createVNode(SkeletonAvatar, {\n \"avatarShape\": props.avatarShape,\n \"avatarSize\": props.avatarSize\n }, null);\n }\n };\n const renderTitle = () => {\n if (props.title) {\n return _createVNode(SkeletonTitle, {\n \"round\": props.round,\n \"titleWidth\": props.titleWidth\n }, null);\n }\n };\n const getRowWidth = (index) => {\n const {\n rowWidth\n } = props;\n if (rowWidth === DEFAULT_ROW_WIDTH && index === +props.row - 1) {\n return DEFAULT_LAST_ROW_WIDTH;\n }\n if (Array.isArray(rowWidth)) {\n return rowWidth[index];\n }\n return rowWidth;\n };\n const renderRows = () => Array(+props.row).fill(\"\").map((_, i) => _createVNode(SkeletonParagraph, {\n \"key\": i,\n \"round\": props.round,\n \"rowWidth\": addUnit(getRowWidth(i))\n }, null));\n const renderContents = () => {\n if (slots.template) {\n return slots.template();\n }\n return _createVNode(_Fragment, null, [renderAvatar(), _createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [renderTitle(), renderRows()])]);\n };\n return () => {\n var _a;\n if (!props.loading) {\n return (_a = slots.default) == null ? void 0 : _a.call(slots);\n }\n return _createVNode(\"div\", _mergeProps({\n \"class\": bem({\n animate: props.animate,\n round: props.round\n })\n }, attrs), [renderContents()]);\n };\n }\n});\nexport {\n stdin_default as default,\n skeletonProps\n};\n","import _Skeleton from \"./Skeleton.mjs\";\nimport { withInstall } from \"../utils/index.mjs\";\nconst Skeleton = withInstall(_Skeleton);\nvar stdin_default = Skeleton;\nimport { skeletonProps } from \"./Skeleton.mjs\";\nexport {\n Skeleton,\n stdin_default as default,\n skeletonProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { numericProp, getSizeStyle, makeStringProp, createNamespace } from \"../utils/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"skeleton-image\");\nconst skeletonImageProps = {\n imageSize: numericProp,\n imageShape: makeStringProp(\"square\")\n};\nvar stdin_default = defineComponent({\n name,\n props: skeletonImageProps,\n setup(props) {\n return () => _createVNode(\"div\", {\n \"class\": bem([props.imageShape]),\n \"style\": getSizeStyle(props.imageSize)\n }, [_createVNode(Icon, {\n \"name\": \"photo\",\n \"class\": bem(\"icon\")\n }, null)]);\n }\n});\nexport {\n stdin_default as default,\n skeletonImageProps\n};\n","import _SkeletonImage from \"./SkeletonImage.mjs\";\nimport { withInstall } from \"../utils/index.mjs\";\nconst SkeletonImage = withInstall(_SkeletonImage);\nvar stdin_default = SkeletonImage;\nimport { skeletonImageProps } from \"./SkeletonImage.mjs\";\nexport {\n SkeletonImage,\n stdin_default as default,\n skeletonImageProps\n};\n","import { ref, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { clamp, addUnit, addNumber, numericProp, isSameValue, getSizeStyle, preventDefault, stopPropagation, createNamespace, makeNumericProp } from \"../utils/index.mjs\";\nimport { useRect, useCustomFieldValue, useEventListener } from \"@vant/use\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nconst [name, bem] = createNamespace(\"slider\");\nconst sliderProps = {\n min: makeNumericProp(0),\n max: makeNumericProp(100),\n step: makeNumericProp(1),\n range: Boolean,\n reverse: Boolean,\n disabled: Boolean,\n readonly: Boolean,\n vertical: Boolean,\n barHeight: numericProp,\n buttonSize: numericProp,\n activeColor: String,\n inactiveColor: String,\n modelValue: {\n type: [Number, Array],\n default: 0\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: sliderProps,\n emits: [\"change\", \"dragEnd\", \"dragStart\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n let buttonIndex;\n let current;\n let startValue;\n const root = ref();\n const slider = [ref(), ref()];\n const dragStatus = ref();\n const touch = useTouch();\n const scope = computed(() => Number(props.max) - Number(props.min));\n const wrapperStyle = computed(() => {\n const crossAxis = props.vertical ? \"width\" : \"height\";\n return {\n background: props.inactiveColor,\n [crossAxis]: addUnit(props.barHeight)\n };\n });\n const isRange = (val) => props.range && Array.isArray(val);\n const calcMainAxis = () => {\n const {\n modelValue,\n min\n } = props;\n if (isRange(modelValue)) {\n return `${(modelValue[1] - modelValue[0]) * 100 / scope.value}%`;\n }\n return `${(modelValue - Number(min)) * 100 / scope.value}%`;\n };\n const calcOffset = () => {\n const {\n modelValue,\n min\n } = props;\n if (isRange(modelValue)) {\n return `${(modelValue[0] - Number(min)) * 100 / scope.value}%`;\n }\n return \"0%\";\n };\n const barStyle = computed(() => {\n const mainAxis = props.vertical ? \"height\" : \"width\";\n const style = {\n [mainAxis]: calcMainAxis(),\n background: props.activeColor\n };\n if (dragStatus.value) {\n style.transition = \"none\";\n }\n const getPositionKey = () => {\n if (props.vertical) {\n return props.reverse ? \"bottom\" : \"top\";\n }\n return props.reverse ? \"right\" : \"left\";\n };\n style[getPositionKey()] = calcOffset();\n return style;\n });\n const format = (value) => {\n const min = +props.min;\n const max = +props.max;\n const step = +props.step;\n value = clamp(value, min, max);\n const diff = Math.round((value - min) / step) * step;\n return addNumber(min, diff);\n };\n const updateStartValue = () => {\n const current2 = props.modelValue;\n if (isRange(current2)) {\n startValue = current2.map(format);\n } else {\n startValue = format(current2);\n }\n };\n const handleRangeValue = (value) => {\n var _a, _b;\n const left = (_a = value[0]) != null ? _a : Number(props.min);\n const right = (_b = value[1]) != null ? _b : Number(props.max);\n return left > right ? [right, left] : [left, right];\n };\n const updateValue = (value, end) => {\n if (isRange(value)) {\n value = handleRangeValue(value).map(format);\n } else {\n value = format(value);\n }\n if (!isSameValue(value, props.modelValue)) {\n emit(\"update:modelValue\", value);\n }\n if (end && !isSameValue(value, startValue)) {\n emit(\"change\", value);\n }\n };\n const onClick = (event) => {\n event.stopPropagation();\n if (props.disabled || props.readonly) {\n return;\n }\n updateStartValue();\n const {\n min,\n reverse,\n vertical,\n modelValue\n } = props;\n const rect = useRect(root);\n const getDelta = () => {\n if (vertical) {\n if (reverse) {\n return rect.bottom - event.clientY;\n }\n return event.clientY - rect.top;\n }\n if (reverse) {\n return rect.right - event.clientX;\n }\n return event.clientX - rect.left;\n };\n const total = vertical ? rect.height : rect.width;\n const value = Number(min) + getDelta() / total * scope.value;\n if (isRange(modelValue)) {\n const [left, right] = modelValue;\n const middle = (left + right) / 2;\n if (value <= middle) {\n updateValue([value, right], true);\n } else {\n updateValue([left, value], true);\n }\n } else {\n updateValue(value, true);\n }\n };\n const onTouchStart = (event) => {\n if (props.disabled || props.readonly) {\n return;\n }\n touch.start(event);\n current = props.modelValue;\n updateStartValue();\n dragStatus.value = \"start\";\n };\n const onTouchMove = (event) => {\n if (props.disabled || props.readonly) {\n return;\n }\n if (dragStatus.value === \"start\") {\n emit(\"dragStart\", event);\n }\n preventDefault(event, true);\n touch.move(event);\n dragStatus.value = \"dragging\";\n const rect = useRect(root);\n const delta = props.vertical ? touch.deltaY.value : touch.deltaX.value;\n const total = props.vertical ? rect.height : rect.width;\n let diff = delta / total * scope.value;\n if (props.reverse) {\n diff = -diff;\n }\n if (isRange(startValue)) {\n const index = props.reverse ? 1 - buttonIndex : buttonIndex;\n current[index] = startValue[index] + diff;\n } else {\n current = startValue + diff;\n }\n updateValue(current);\n };\n const onTouchEnd = (event) => {\n if (props.disabled || props.readonly) {\n return;\n }\n if (dragStatus.value === \"dragging\") {\n updateValue(current, true);\n emit(\"dragEnd\", event);\n }\n dragStatus.value = \"\";\n };\n const getButtonClassName = (index) => {\n if (typeof index === \"number\") {\n const position = [\"left\", \"right\"];\n return bem(`button-wrapper`, position[index]);\n }\n return bem(\"button-wrapper\", props.reverse ? \"left\" : \"right\");\n };\n const renderButtonContent = (value, index) => {\n const dragging = dragStatus.value === \"dragging\";\n if (typeof index === \"number\") {\n const slot = slots[index === 0 ? \"left-button\" : \"right-button\"];\n let dragIndex;\n if (dragging && Array.isArray(current)) {\n dragIndex = current[0] > current[1] ? buttonIndex ^ 1 : buttonIndex;\n }\n if (slot) {\n return slot({\n value,\n dragging,\n dragIndex\n });\n }\n }\n if (slots.button) {\n return slots.button({\n value,\n dragging\n });\n }\n return _createVNode(\"div\", {\n \"class\": bem(\"button\"),\n \"style\": getSizeStyle(props.buttonSize)\n }, null);\n };\n const renderButton = (index) => {\n const current2 = typeof index === \"number\" ? props.modelValue[index] : props.modelValue;\n return _createVNode(\"div\", {\n \"ref\": slider[index != null ? index : 0],\n \"role\": \"slider\",\n \"class\": getButtonClassName(index),\n \"tabindex\": props.disabled ? void 0 : 0,\n \"aria-valuemin\": props.min,\n \"aria-valuenow\": current2,\n \"aria-valuemax\": props.max,\n \"aria-disabled\": props.disabled || void 0,\n \"aria-readonly\": props.readonly || void 0,\n \"aria-orientation\": props.vertical ? \"vertical\" : \"horizontal\",\n \"onTouchstartPassive\": (event) => {\n if (typeof index === \"number\") {\n buttonIndex = index;\n }\n onTouchStart(event);\n },\n \"onTouchend\": onTouchEnd,\n \"onTouchcancel\": onTouchEnd,\n \"onClick\": stopPropagation\n }, [renderButtonContent(current2, index)]);\n };\n updateValue(props.modelValue);\n useCustomFieldValue(() => props.modelValue);\n slider.forEach((item) => {\n useEventListener(\"touchmove\", onTouchMove, {\n target: item\n });\n });\n return () => _createVNode(\"div\", {\n \"ref\": root,\n \"style\": wrapperStyle.value,\n \"class\": bem({\n vertical: props.vertical,\n disabled: props.disabled\n }),\n \"onClick\": onClick\n }, [_createVNode(\"div\", {\n \"class\": bem(\"bar\"),\n \"style\": barStyle.value\n }, [props.range ? [renderButton(0), renderButton(1)] : renderButton()])]);\n }\n});\nexport {\n stdin_default as default,\n sliderProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Slider from \"./Slider.mjs\";\nconst Slider = withInstall(_Slider);\nvar stdin_default = Slider;\nimport { sliderProps } from \"./Slider.mjs\";\nexport {\n Slider,\n stdin_default as default,\n sliderProps\n};\n","import { computed, Comment, defineComponent, Fragment, Text, createVNode as _createVNode } from \"vue\";\nimport { createNamespace } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"space\");\nconst spaceProps = {\n align: String,\n direction: {\n type: String,\n default: \"horizontal\"\n },\n size: {\n type: [Number, String, Array],\n default: 8\n },\n wrap: Boolean,\n fill: Boolean\n};\nfunction filterEmpty(children = []) {\n const nodes = [];\n children.forEach((child) => {\n if (Array.isArray(child)) {\n nodes.push(...child);\n } else if (child.type === Fragment) {\n nodes.push(...filterEmpty(child.children));\n } else {\n nodes.push(child);\n }\n });\n return nodes.filter((c) => {\n var _a;\n return !(c && (c.type === Comment || c.type === Fragment && ((_a = c.children) == null ? void 0 : _a.length) === 0 || c.type === Text && c.children.trim() === \"\"));\n });\n}\nvar stdin_default = defineComponent({\n name,\n props: spaceProps,\n setup(props, {\n slots\n }) {\n const mergedAlign = computed(() => {\n var _a;\n return (_a = props.align) != null ? _a : props.direction === \"horizontal\" ? \"center\" : \"\";\n });\n const getMargin = (size) => {\n if (typeof size === \"number\") {\n return size + \"px\";\n }\n return size;\n };\n const getMarginStyle = (isLast) => {\n const style = {};\n const marginRight = `${getMargin(Array.isArray(props.size) ? props.size[0] : props.size)}`;\n const marginBottom = `${getMargin(Array.isArray(props.size) ? props.size[1] : props.size)}`;\n if (isLast) {\n return props.wrap ? {\n marginBottom\n } : {};\n }\n if (props.direction === \"horizontal\") {\n style.marginRight = marginRight;\n }\n if (props.direction === \"vertical\" || props.wrap) {\n style.marginBottom = marginBottom;\n }\n return style;\n };\n return () => {\n var _a;\n const children = filterEmpty((_a = slots.default) == null ? void 0 : _a.call(slots));\n return _createVNode(\"div\", {\n \"class\": [bem({\n [props.direction]: props.direction,\n [`align-${mergedAlign.value}`]: mergedAlign.value,\n wrap: props.wrap,\n fill: props.fill\n })]\n }, [children.map((c, i) => _createVNode(\"div\", {\n \"key\": `item-${i}`,\n \"class\": `${name}-item`,\n \"style\": getMarginStyle(i === children.length - 1)\n }, [c]))]);\n };\n }\n});\nexport {\n stdin_default as default,\n spaceProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Space from \"./Space.mjs\";\nconst Space = withInstall(_Space);\nvar stdin_default = Space;\nimport { spaceProps } from \"./Space.mjs\";\nexport {\n Space,\n stdin_default as default,\n spaceProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { makeStringProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { useChildren } from \"@vant/use\";\nconst [name, bem] = createNamespace(\"steps\");\nconst stepsProps = {\n active: makeNumericProp(0),\n direction: makeStringProp(\"horizontal\"),\n activeIcon: makeStringProp(\"checked\"),\n iconPrefix: String,\n finishIcon: String,\n activeColor: String,\n inactiveIcon: String,\n inactiveColor: String\n};\nconst STEPS_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: stepsProps,\n emits: [\"clickStep\"],\n setup(props, {\n emit,\n slots\n }) {\n const {\n linkChildren\n } = useChildren(STEPS_KEY);\n const onClickStep = (index) => emit(\"clickStep\", index);\n linkChildren({\n props,\n onClickStep\n });\n return () => {\n var _a;\n return _createVNode(\"div\", {\n \"class\": bem([props.direction])\n }, [_createVNode(\"div\", {\n \"class\": bem(\"items\")\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)])]);\n };\n }\n});\nexport {\n STEPS_KEY,\n stdin_default as default,\n stepsProps\n};\n","import { computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { BORDER, createNamespace } from \"../utils/index.mjs\";\nimport { STEPS_KEY } from \"../steps/Steps.mjs\";\nimport { useParent } from \"@vant/use\";\nimport { Icon } from \"../icon/index.mjs\";\nconst [name, bem] = createNamespace(\"step\");\nvar stdin_default = defineComponent({\n name,\n setup(props, {\n slots\n }) {\n const {\n parent,\n index\n } = useParent(STEPS_KEY);\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <Step> must be a child component of <Steps>.\");\n }\n return;\n }\n const parentProps = parent.props;\n const getStatus = () => {\n const active = +parentProps.active;\n if (index.value < active) {\n return \"finish\";\n }\n return index.value === active ? \"process\" : \"waiting\";\n };\n const isActive = () => getStatus() === \"process\";\n const lineStyle = computed(() => ({\n background: getStatus() === \"finish\" ? parentProps.activeColor : parentProps.inactiveColor\n }));\n const titleStyle = computed(() => {\n if (isActive()) {\n return {\n color: parentProps.activeColor\n };\n }\n if (getStatus() === \"waiting\") {\n return {\n color: parentProps.inactiveColor\n };\n }\n });\n const onClickStep = () => parent.onClickStep(index.value);\n const renderCircle = () => {\n const {\n iconPrefix,\n finishIcon,\n activeIcon,\n activeColor,\n inactiveIcon\n } = parentProps;\n if (isActive()) {\n if (slots[\"active-icon\"]) {\n return slots[\"active-icon\"]();\n }\n return _createVNode(Icon, {\n \"class\": bem(\"icon\", \"active\"),\n \"name\": activeIcon,\n \"color\": activeColor,\n \"classPrefix\": iconPrefix\n }, null);\n }\n if (getStatus() === \"finish\" && (finishIcon || slots[\"finish-icon\"])) {\n if (slots[\"finish-icon\"]) {\n return slots[\"finish-icon\"]();\n }\n return _createVNode(Icon, {\n \"class\": bem(\"icon\", \"finish\"),\n \"name\": finishIcon,\n \"color\": activeColor,\n \"classPrefix\": iconPrefix\n }, null);\n }\n if (slots[\"inactive-icon\"]) {\n return slots[\"inactive-icon\"]();\n }\n if (inactiveIcon) {\n return _createVNode(Icon, {\n \"class\": bem(\"icon\"),\n \"name\": inactiveIcon,\n \"classPrefix\": iconPrefix\n }, null);\n }\n return _createVNode(\"i\", {\n \"class\": bem(\"circle\"),\n \"style\": lineStyle.value\n }, null);\n };\n return () => {\n var _a;\n const status = getStatus();\n return _createVNode(\"div\", {\n \"class\": [BORDER, bem([parentProps.direction, {\n [status]: status\n }])]\n }, [_createVNode(\"div\", {\n \"class\": bem(\"title\", {\n active: isActive()\n }),\n \"style\": titleStyle.value,\n \"onClick\": onClickStep\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), _createVNode(\"div\", {\n \"class\": bem(\"circle-container\"),\n \"onClick\": onClickStep\n }, [renderCircle()]), _createVNode(\"div\", {\n \"class\": bem(\"line\"),\n \"style\": lineStyle.value\n }, null)]);\n };\n }\n});\nexport {\n stdin_default as default\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Step from \"./Step.mjs\";\nconst Step = withInstall(_Step);\nvar stdin_default = Step;\nexport {\n Step,\n stdin_default as default\n};\n","import { ref, watch, computed, nextTick, defineComponent, vShow as _vShow, mergeProps as _mergeProps, createVNode as _createVNode, withDirectives as _withDirectives } from \"vue\";\nimport { isDef, addUnit, addNumber, truthProp, resetScroll, numericProp, formatNumber, getSizeStyle, preventDefault, createNamespace, callInterceptor, makeNumericProp, HAPTICS_FEEDBACK, LONG_PRESS_START_TIME } from \"../utils/index.mjs\";\nimport { useCustomFieldValue } from \"@vant/use\";\nconst [name, bem] = createNamespace(\"stepper\");\nconst LONG_PRESS_INTERVAL = 200;\nconst isEqual = (value1, value2) => String(value1) === String(value2);\nconst stepperProps = {\n min: makeNumericProp(1),\n max: makeNumericProp(Infinity),\n name: makeNumericProp(\"\"),\n step: makeNumericProp(1),\n theme: String,\n integer: Boolean,\n disabled: Boolean,\n showPlus: truthProp,\n showMinus: truthProp,\n showInput: truthProp,\n longPress: truthProp,\n autoFixed: truthProp,\n allowEmpty: Boolean,\n modelValue: numericProp,\n inputWidth: numericProp,\n buttonSize: numericProp,\n placeholder: String,\n disablePlus: Boolean,\n disableMinus: Boolean,\n disableInput: Boolean,\n beforeChange: Function,\n defaultValue: makeNumericProp(1),\n decimalLength: numericProp\n};\nvar stdin_default = defineComponent({\n name,\n props: stepperProps,\n emits: [\"plus\", \"blur\", \"minus\", \"focus\", \"change\", \"overlimit\", \"update:modelValue\"],\n setup(props, {\n emit\n }) {\n const format = (value, autoFixed = true) => {\n const {\n min,\n max,\n allowEmpty,\n decimalLength\n } = props;\n if (allowEmpty && value === \"\") {\n return value;\n }\n if (typeof value === \"number\" && String(value).includes(\"e\")) {\n value = value.toFixed(decimalLength ? +decimalLength : 17);\n }\n value = formatNumber(String(value), !props.integer);\n value = value === \"\" ? 0 : +value;\n value = Number.isNaN(value) ? +min : value;\n value = autoFixed ? Math.max(Math.min(+max, value), +min) : value;\n if (isDef(decimalLength)) {\n value = value.toFixed(+decimalLength);\n }\n return value;\n };\n const getInitialValue = () => {\n var _a;\n const defaultValue = (_a = props.modelValue) != null ? _a : props.defaultValue;\n const value = format(defaultValue);\n if (!isEqual(value, props.modelValue)) {\n emit(\"update:modelValue\", value);\n }\n return value;\n };\n let actionType;\n const inputRef = ref();\n const current = ref(getInitialValue());\n const minusDisabled = computed(() => props.disabled || props.disableMinus || +current.value <= +props.min);\n const plusDisabled = computed(() => props.disabled || props.disablePlus || +current.value >= +props.max);\n const inputStyle = computed(() => ({\n width: addUnit(props.inputWidth),\n height: addUnit(props.buttonSize)\n }));\n const buttonStyle = computed(() => getSizeStyle(props.buttonSize));\n const check = () => {\n const value = format(current.value);\n if (!isEqual(value, current.value)) {\n current.value = value;\n }\n };\n const setValue = (value) => {\n if (props.beforeChange) {\n callInterceptor(props.beforeChange, {\n args: [value],\n done() {\n current.value = value;\n }\n });\n } else {\n current.value = value;\n }\n };\n const onChange = () => {\n if (actionType === \"plus\" && plusDisabled.value || actionType === \"minus\" && minusDisabled.value) {\n emit(\"overlimit\", actionType);\n return;\n }\n const diff = actionType === \"minus\" ? -props.step : +props.step;\n const value = format(addNumber(+current.value, diff));\n setValue(value);\n emit(actionType);\n };\n const onInput = (event) => {\n const input = event.target;\n const {\n value\n } = input;\n const {\n decimalLength\n } = props;\n let formatted = formatNumber(String(value), !props.integer);\n if (isDef(decimalLength) && formatted.includes(\".\")) {\n const pair = formatted.split(\".\");\n formatted = `${pair[0]}.${pair[1].slice(0, +decimalLength)}`;\n }\n if (props.beforeChange) {\n input.value = String(current.value);\n } else if (!isEqual(value, formatted)) {\n input.value = formatted;\n }\n const isNumeric = formatted === String(+formatted);\n setValue(isNumeric ? +formatted : formatted);\n };\n const onFocus = (event) => {\n var _a;\n if (props.disableInput) {\n (_a = inputRef.value) == null ? void 0 : _a.blur();\n } else {\n emit(\"focus\", event);\n }\n };\n const onBlur = (event) => {\n const input = event.target;\n const value = format(input.value, props.autoFixed);\n input.value = String(value);\n current.value = value;\n nextTick(() => {\n emit(\"blur\", event);\n resetScroll();\n });\n };\n let isLongPress;\n let longPressTimer;\n const longPressStep = () => {\n longPressTimer = setTimeout(() => {\n onChange();\n longPressStep();\n }, LONG_PRESS_INTERVAL);\n };\n const onTouchStart = () => {\n if (props.longPress) {\n isLongPress = false;\n clearTimeout(longPressTimer);\n longPressTimer = setTimeout(() => {\n isLongPress = true;\n onChange();\n longPressStep();\n }, LONG_PRESS_START_TIME);\n }\n };\n const onTouchEnd = (event) => {\n if (props.longPress) {\n clearTimeout(longPressTimer);\n if (isLongPress) {\n preventDefault(event);\n }\n }\n };\n const onMousedown = (event) => {\n if (props.disableInput) {\n preventDefault(event);\n }\n };\n const createListeners = (type) => ({\n onClick: (event) => {\n preventDefault(event);\n actionType = type;\n onChange();\n },\n onTouchstartPassive: () => {\n actionType = type;\n onTouchStart();\n },\n onTouchend: onTouchEnd,\n onTouchcancel: onTouchEnd\n });\n watch(() => [props.max, props.min, props.integer, props.decimalLength], check);\n watch(() => props.modelValue, (value) => {\n if (!isEqual(value, current.value)) {\n current.value = format(value);\n }\n });\n watch(current, (value) => {\n emit(\"update:modelValue\", value);\n emit(\"change\", value, {\n name: props.name\n });\n });\n useCustomFieldValue(() => props.modelValue);\n return () => _createVNode(\"div\", {\n \"role\": \"group\",\n \"class\": bem([props.theme])\n }, [_withDirectives(_createVNode(\"button\", _mergeProps({\n \"type\": \"button\",\n \"style\": buttonStyle.value,\n \"class\": [bem(\"minus\", {\n disabled: minusDisabled.value\n }), {\n [HAPTICS_FEEDBACK]: !minusDisabled.value\n }],\n \"aria-disabled\": minusDisabled.value || void 0\n }, createListeners(\"minus\")), null), [[_vShow, props.showMinus]]), _withDirectives(_createVNode(\"input\", {\n \"ref\": inputRef,\n \"type\": props.integer ? \"tel\" : \"text\",\n \"role\": \"spinbutton\",\n \"class\": bem(\"input\"),\n \"value\": current.value,\n \"style\": inputStyle.value,\n \"disabled\": props.disabled,\n \"readonly\": props.disableInput,\n \"inputmode\": props.integer ? \"numeric\" : \"decimal\",\n \"placeholder\": props.placeholder,\n \"autocomplete\": \"off\",\n \"aria-valuemax\": props.max,\n \"aria-valuemin\": props.min,\n \"aria-valuenow\": current.value,\n \"onBlur\": onBlur,\n \"onInput\": onInput,\n \"onFocus\": onFocus,\n \"onMousedown\": onMousedown\n }, null), [[_vShow, props.showInput]]), _withDirectives(_createVNode(\"button\", _mergeProps({\n \"type\": \"button\",\n \"style\": buttonStyle.value,\n \"class\": [bem(\"plus\", {\n disabled: plusDisabled.value\n }), {\n [HAPTICS_FEEDBACK]: !plusDisabled.value\n }],\n \"aria-disabled\": plusDisabled.value || void 0\n }, createListeners(\"plus\")), null), [[_vShow, props.showPlus]])]);\n }\n});\nexport {\n stdin_default as default,\n stepperProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Stepper from \"./Stepper.mjs\";\nconst Stepper = withInstall(_Stepper);\nvar stdin_default = Stepper;\nimport { stepperProps } from \"./Stepper.mjs\";\nexport {\n Stepper,\n stdin_default as default,\n stepperProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Steps from \"./Steps.mjs\";\nconst Steps = withInstall(_Steps);\nvar stdin_default = Steps;\nimport { stepsProps } from \"./Steps.mjs\";\nexport {\n Steps,\n stdin_default as default,\n stepsProps\n};\n","import { ref, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, makeStringProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Button } from \"../button/index.mjs\";\nimport { usePlaceholder } from \"../composables/use-placeholder.mjs\";\nconst [name, bem, t] = createNamespace(\"submit-bar\");\nconst submitBarProps = {\n tip: String,\n label: String,\n price: Number,\n tipIcon: String,\n loading: Boolean,\n currency: makeStringProp(\"\\xA5\"),\n disabled: Boolean,\n textAlign: String,\n buttonText: String,\n buttonType: makeStringProp(\"danger\"),\n buttonColor: String,\n suffixLabel: String,\n placeholder: Boolean,\n decimalLength: makeNumericProp(2),\n safeAreaInsetBottom: truthProp\n};\nvar stdin_default = defineComponent({\n name,\n props: submitBarProps,\n emits: [\"submit\"],\n setup(props, {\n emit,\n slots\n }) {\n const root = ref();\n const renderPlaceholder = usePlaceholder(root, bem);\n const renderText = () => {\n const {\n price,\n label,\n currency,\n textAlign,\n suffixLabel,\n decimalLength\n } = props;\n if (typeof price === \"number\") {\n const pricePair = (price / 100).toFixed(+decimalLength).split(\".\");\n const decimal = decimalLength ? `.${pricePair[1]}` : \"\";\n return _createVNode(\"div\", {\n \"class\": bem(\"text\"),\n \"style\": {\n textAlign\n }\n }, [_createVNode(\"span\", null, [label || t(\"label\")]), _createVNode(\"span\", {\n \"class\": bem(\"price\")\n }, [currency, _createVNode(\"span\", {\n \"class\": bem(\"price-integer\")\n }, [pricePair[0]]), decimal]), suffixLabel && _createVNode(\"span\", {\n \"class\": bem(\"suffix-label\")\n }, [suffixLabel])]);\n }\n };\n const renderTip = () => {\n var _a;\n const {\n tip,\n tipIcon\n } = props;\n if (slots.tip || tip) {\n return _createVNode(\"div\", {\n \"class\": bem(\"tip\")\n }, [tipIcon && _createVNode(Icon, {\n \"class\": bem(\"tip-icon\"),\n \"name\": tipIcon\n }, null), tip && _createVNode(\"span\", {\n \"class\": bem(\"tip-text\")\n }, [tip]), (_a = slots.tip) == null ? void 0 : _a.call(slots)]);\n }\n };\n const onClickButton = () => emit(\"submit\");\n const renderButton = () => {\n if (slots.button) {\n return slots.button();\n }\n return _createVNode(Button, {\n \"round\": true,\n \"type\": props.buttonType,\n \"text\": props.buttonText,\n \"class\": bem(\"button\", props.buttonType),\n \"color\": props.buttonColor,\n \"loading\": props.loading,\n \"disabled\": props.disabled,\n \"onClick\": onClickButton\n }, null);\n };\n const renderSubmitBar = () => {\n var _a, _b;\n return _createVNode(\"div\", {\n \"ref\": root,\n \"class\": [bem(), {\n \"van-safe-area-bottom\": props.safeAreaInsetBottom\n }]\n }, [(_a = slots.top) == null ? void 0 : _a.call(slots), renderTip(), _createVNode(\"div\", {\n \"class\": bem(\"bar\")\n }, [(_b = slots.default) == null ? void 0 : _b.call(slots), renderText(), renderButton()])]);\n };\n return () => {\n if (props.placeholder) {\n return renderPlaceholder(renderSubmitBar);\n }\n return renderSubmitBar();\n };\n }\n});\nexport {\n stdin_default as default,\n submitBarProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _SubmitBar from \"./SubmitBar.mjs\";\nconst SubmitBar = withInstall(_SubmitBar);\nvar stdin_default = SubmitBar;\nimport { submitBarProps } from \"./SubmitBar.mjs\";\nexport {\n SubmitBar,\n stdin_default as default,\n submitBarProps\n};\n","import { ref, reactive, computed, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { clamp, isDef, numericProp, preventDefault, callInterceptor, createNamespace, makeNumericProp } from \"../utils/index.mjs\";\nimport { useRect, useClickAway, useEventListener } from \"@vant/use\";\nimport { useTouch } from \"../composables/use-touch.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"swipe-cell\");\nconst swipeCellProps = {\n name: makeNumericProp(\"\"),\n disabled: Boolean,\n leftWidth: numericProp,\n rightWidth: numericProp,\n beforeClose: Function,\n stopPropagation: Boolean\n};\nvar stdin_default = defineComponent({\n name,\n props: swipeCellProps,\n emits: [\"open\", \"close\", \"click\"],\n setup(props, {\n emit,\n slots\n }) {\n let opened;\n let lockClick;\n let startOffset;\n let isInBeforeClosing;\n const root = ref();\n const leftRef = ref();\n const rightRef = ref();\n const state = reactive({\n offset: 0,\n dragging: false\n });\n const touch = useTouch();\n const getWidthByRef = (ref2) => ref2.value ? useRect(ref2).width : 0;\n const leftWidth = computed(() => isDef(props.leftWidth) ? +props.leftWidth : getWidthByRef(leftRef));\n const rightWidth = computed(() => isDef(props.rightWidth) ? +props.rightWidth : getWidthByRef(rightRef));\n const open = (side) => {\n state.offset = side === \"left\" ? leftWidth.value : -rightWidth.value;\n if (!opened) {\n opened = true;\n emit(\"open\", {\n name: props.name,\n position: side\n });\n }\n };\n const close = (position) => {\n state.offset = 0;\n if (opened) {\n opened = false;\n emit(\"close\", {\n name: props.name,\n position\n });\n }\n };\n const toggle = (side) => {\n const offset = Math.abs(state.offset);\n const THRESHOLD = 0.15;\n const threshold = opened ? 1 - THRESHOLD : THRESHOLD;\n const width = side === \"left\" ? leftWidth.value : rightWidth.value;\n if (width && offset > width * threshold) {\n open(side);\n } else {\n close(side);\n }\n };\n const onTouchStart = (event) => {\n if (!props.disabled) {\n startOffset = state.offset;\n touch.start(event);\n }\n };\n const onTouchMove = (event) => {\n if (props.disabled) {\n return;\n }\n const {\n deltaX\n } = touch;\n touch.move(event);\n if (touch.isHorizontal()) {\n lockClick = true;\n state.dragging = true;\n const isEdge = !opened || deltaX.value * startOffset < 0;\n if (isEdge) {\n preventDefault(event, props.stopPropagation);\n }\n state.offset = clamp(deltaX.value + startOffset, -rightWidth.value, leftWidth.value);\n }\n };\n const onTouchEnd = () => {\n if (state.dragging) {\n state.dragging = false;\n toggle(state.offset > 0 ? \"left\" : \"right\");\n setTimeout(() => {\n lockClick = false;\n }, 0);\n }\n };\n const onClick = (position = \"outside\", event) => {\n if (isInBeforeClosing) return;\n emit(\"click\", position);\n if (opened && !lockClick) {\n isInBeforeClosing = true;\n callInterceptor(props.beforeClose, {\n args: [{\n event,\n name: props.name,\n position\n }],\n done: () => {\n isInBeforeClosing = false;\n close(position);\n },\n canceled: () => isInBeforeClosing = false,\n error: () => isInBeforeClosing = false\n });\n }\n };\n const getClickHandler = (position) => (event) => {\n if (lockClick || opened) {\n event.stopPropagation();\n }\n if (lockClick) {\n return;\n }\n onClick(position, event);\n };\n const renderSideContent = (side, ref2) => {\n const contentSlot = slots[side];\n if (contentSlot) {\n return _createVNode(\"div\", {\n \"ref\": ref2,\n \"class\": bem(side),\n \"onClick\": getClickHandler(side)\n }, [contentSlot()]);\n }\n };\n useExpose({\n open,\n close\n });\n useClickAway(root, (event) => onClick(\"outside\", event), {\n eventName: \"touchstart\"\n });\n useEventListener(\"touchmove\", onTouchMove, {\n target: root\n });\n return () => {\n var _a;\n const wrapperStyle = {\n transform: `translate3d(${state.offset}px, 0, 0)`,\n transitionDuration: state.dragging ? \"0s\" : \".6s\"\n };\n return _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem(),\n \"onClick\": getClickHandler(\"cell\"),\n \"onTouchstartPassive\": onTouchStart,\n \"onTouchend\": onTouchEnd,\n \"onTouchcancel\": onTouchEnd\n }, [_createVNode(\"div\", {\n \"class\": bem(\"wrapper\"),\n \"style\": wrapperStyle\n }, [renderSideContent(\"left\", leftRef), (_a = slots.default) == null ? void 0 : _a.call(slots), renderSideContent(\"right\", rightRef)])]);\n };\n }\n});\nexport {\n stdin_default as default,\n swipeCellProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _SwipeCell from \"./SwipeCell.mjs\";\nconst SwipeCell = withInstall(_SwipeCell);\nvar stdin_default = SwipeCell;\nimport { swipeCellProps } from \"./SwipeCell.mjs\";\nexport {\n SwipeCell,\n stdin_default as default,\n swipeCellProps\n};\n","import { ref, defineComponent, createVNode as _createVNode } from \"vue\";\nimport { truthProp, numericProp, getZIndexStyle, createNamespace, callInterceptor, makeNumericProp, BORDER_TOP_BOTTOM } from \"../utils/index.mjs\";\nimport { useChildren } from \"@vant/use\";\nimport { usePlaceholder } from \"../composables/use-placeholder.mjs\";\nconst [name, bem] = createNamespace(\"tabbar\");\nconst tabbarProps = {\n route: Boolean,\n fixed: truthProp,\n border: truthProp,\n zIndex: numericProp,\n placeholder: Boolean,\n activeColor: String,\n beforeChange: Function,\n inactiveColor: String,\n modelValue: makeNumericProp(0),\n safeAreaInsetBottom: {\n type: Boolean,\n default: null\n }\n};\nconst TABBAR_KEY = Symbol(name);\nvar stdin_default = defineComponent({\n name,\n props: tabbarProps,\n emits: [\"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const root = ref();\n const {\n linkChildren\n } = useChildren(TABBAR_KEY);\n const renderPlaceholder = usePlaceholder(root, bem);\n const enableSafeArea = () => {\n var _a;\n return (_a = props.safeAreaInsetBottom) != null ? _a : props.fixed;\n };\n const renderTabbar = () => {\n var _a;\n const {\n fixed,\n zIndex,\n border\n } = props;\n return _createVNode(\"div\", {\n \"ref\": root,\n \"role\": \"tablist\",\n \"style\": getZIndexStyle(zIndex),\n \"class\": [bem({\n fixed\n }), {\n [BORDER_TOP_BOTTOM]: border,\n \"van-safe-area-bottom\": enableSafeArea()\n }]\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);\n };\n const setActive = (active, afterChange) => {\n callInterceptor(props.beforeChange, {\n args: [active],\n done() {\n emit(\"update:modelValue\", active);\n emit(\"change\", active);\n afterChange();\n }\n });\n };\n linkChildren({\n props,\n setActive\n });\n return () => {\n if (props.fixed && props.placeholder) {\n return renderPlaceholder(renderTabbar);\n }\n return renderTabbar();\n };\n }\n});\nexport {\n TABBAR_KEY,\n stdin_default as default,\n tabbarProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Tabbar from \"./Tabbar.mjs\";\nconst Tabbar = withInstall(_Tabbar);\nvar stdin_default = Tabbar;\nimport { tabbarProps } from \"./Tabbar.mjs\";\nexport {\n Tabbar,\n stdin_default as default,\n tabbarProps\n};\n","import { computed, defineComponent, getCurrentInstance, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\nimport { createNamespace, extend, isObject, numericProp } from \"../utils/index.mjs\";\nimport { TABBAR_KEY } from \"../tabbar/Tabbar.mjs\";\nimport { useParent } from \"@vant/use\";\nimport { routeProps, useRoute } from \"../composables/use-route.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Badge } from \"../badge/index.mjs\";\nconst [name, bem] = createNamespace(\"tabbar-item\");\nconst tabbarItemProps = extend({}, routeProps, {\n dot: Boolean,\n icon: String,\n name: numericProp,\n badge: numericProp,\n badgeProps: Object,\n iconPrefix: String\n});\nvar stdin_default = defineComponent({\n name,\n props: tabbarItemProps,\n emits: [\"click\"],\n setup(props, {\n emit,\n slots\n }) {\n const route = useRoute();\n const vm = getCurrentInstance().proxy;\n const {\n parent,\n index\n } = useParent(TABBAR_KEY);\n if (!parent) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"[Vant] <TabbarItem> must be a child component of <Tabbar>.\");\n }\n return;\n }\n const active = computed(() => {\n var _a;\n const {\n route: route2,\n modelValue\n } = parent.props;\n if (route2 && \"$route\" in vm) {\n const {\n $route\n } = vm;\n const {\n to\n } = props;\n const config = isObject(to) ? to : {\n path: to\n };\n return $route.matched.some((val) => {\n const pathMatched = \"path\" in config && config.path === val.path;\n const nameMatched = \"name\" in config && config.name === val.name;\n return pathMatched || nameMatched;\n });\n }\n return ((_a = props.name) != null ? _a : index.value) === modelValue;\n });\n const onClick = (event) => {\n var _a;\n if (!active.value) {\n parent.setActive((_a = props.name) != null ? _a : index.value, route);\n }\n emit(\"click\", event);\n };\n const renderIcon = () => {\n if (slots.icon) {\n return slots.icon({\n active: active.value\n });\n }\n if (props.icon) {\n return _createVNode(Icon, {\n \"name\": props.icon,\n \"classPrefix\": props.iconPrefix\n }, null);\n }\n };\n return () => {\n var _a;\n const {\n dot,\n badge\n } = props;\n const {\n activeColor,\n inactiveColor\n } = parent.props;\n const color = active.value ? activeColor : inactiveColor;\n return _createVNode(\"div\", {\n \"role\": \"tab\",\n \"class\": bem({\n active: active.value\n }),\n \"style\": {\n color\n },\n \"tabindex\": 0,\n \"aria-selected\": active.value,\n \"onClick\": onClick\n }, [_createVNode(Badge, _mergeProps({\n \"dot\": dot,\n \"class\": bem(\"icon\"),\n \"content\": badge\n }, props.badgeProps), {\n default: renderIcon\n }), _createVNode(\"div\", {\n \"class\": bem(\"text\")\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots, {\n active: active.value\n })])]);\n };\n }\n});\nexport {\n stdin_default as default,\n tabbarItemProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _TabbarItem from \"./TabbarItem.mjs\";\nconst TabbarItem = withInstall(_TabbarItem);\nvar stdin_default = TabbarItem;\nimport { tabbarItemProps } from \"./TabbarItem.mjs\";\nexport {\n TabbarItem,\n stdin_default as default,\n tabbarItemProps\n};\n","import { ref, watch, computed, onActivated, onMounted, defineComponent, nextTick, createVNode as _createVNode } from \"vue\";\nimport { makeNumericProp, makeStringProp, createNamespace, windowWidth } from \"../utils/index.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nconst [name, bem] = createNamespace(\"text-ellipsis\");\nconst textEllipsisProps = {\n rows: makeNumericProp(1),\n dots: makeStringProp(\"...\"),\n content: makeStringProp(\"\"),\n expandText: makeStringProp(\"\"),\n collapseText: makeStringProp(\"\"),\n position: makeStringProp(\"end\")\n};\nvar stdin_default = defineComponent({\n name,\n props: textEllipsisProps,\n emits: [\"clickAction\"],\n setup(props, {\n emit,\n slots\n }) {\n const text = ref(props.content);\n const expanded = ref(false);\n const hasAction = ref(false);\n const root = ref();\n const actionRef = ref();\n let needRecalculate = false;\n const actionText = computed(() => expanded.value ? props.collapseText : props.expandText);\n const pxToNum = (value) => {\n if (!value) return 0;\n const match = value.match(/^\\d*(\\.\\d*)?/);\n return match ? Number(match[0]) : 0;\n };\n const cloneContainer = () => {\n if (!root.value || !root.value.isConnected) return;\n const originStyle = window.getComputedStyle(root.value);\n const container = document.createElement(\"div\");\n const styleNames = Array.prototype.slice.apply(originStyle);\n styleNames.forEach((name2) => {\n container.style.setProperty(name2, originStyle.getPropertyValue(name2));\n });\n container.style.position = \"fixed\";\n container.style.zIndex = \"-9999\";\n container.style.top = \"-9999px\";\n container.style.height = \"auto\";\n container.style.minHeight = \"auto\";\n container.style.maxHeight = \"auto\";\n container.innerText = props.content;\n document.body.appendChild(container);\n return container;\n };\n const calcEllipsisText = (container, maxHeight) => {\n var _a, _b;\n const {\n content,\n position,\n dots\n } = props;\n const end = content.length;\n const middle = 0 + end >> 1;\n const actionHTML = slots.action ? (_b = (_a = actionRef.value) == null ? void 0 : _a.outerHTML) != null ? _b : \"\" : props.expandText;\n const calcEllipse = () => {\n const tail = (left, right) => {\n if (right - left <= 1) {\n if (position === \"end\") {\n return content.slice(0, left) + dots;\n }\n return dots + content.slice(right, end);\n }\n const middle2 = Math.round((left + right) / 2);\n if (position === \"end\") {\n container.innerText = content.slice(0, middle2) + dots;\n } else {\n container.innerText = dots + content.slice(middle2, end);\n }\n container.innerHTML += actionHTML;\n if (container.offsetHeight > maxHeight) {\n if (position === \"end\") {\n return tail(left, middle2);\n }\n return tail(middle2, right);\n }\n if (position === \"end\") {\n return tail(middle2, right);\n }\n return tail(left, middle2);\n };\n return tail(0, end);\n };\n const middleTail = (leftPart, rightPart) => {\n if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {\n return content.slice(0, leftPart[0]) + dots + content.slice(rightPart[1], end);\n }\n const leftMiddle = Math.floor((leftPart[0] + leftPart[1]) / 2);\n const rightMiddle = Math.ceil((rightPart[0] + rightPart[1]) / 2);\n container.innerText = props.content.slice(0, leftMiddle) + props.dots + props.content.slice(rightMiddle, end);\n container.innerHTML += actionHTML;\n if (container.offsetHeight >= maxHeight) {\n return middleTail([leftPart[0], leftMiddle], [rightMiddle, rightPart[1]]);\n }\n return middleTail([leftMiddle, leftPart[1]], [rightPart[0], rightMiddle]);\n };\n return props.position === \"middle\" ? middleTail([0, middle], [middle, end]) : calcEllipse();\n };\n const calcEllipsised = () => {\n const container = cloneContainer();\n if (!container) {\n needRecalculate = true;\n return;\n }\n const {\n paddingBottom,\n paddingTop,\n lineHeight\n } = container.style;\n const maxHeight = Math.ceil((Number(props.rows) + 0.5) * pxToNum(lineHeight) + pxToNum(paddingTop) + pxToNum(paddingBottom));\n if (maxHeight < container.offsetHeight) {\n hasAction.value = true;\n text.value = calcEllipsisText(container, maxHeight);\n } else {\n hasAction.value = false;\n text.value = props.content;\n }\n document.body.removeChild(container);\n };\n const toggle = (isExpanded = !expanded.value) => {\n expanded.value = isExpanded;\n };\n const onClickAction = (event) => {\n toggle();\n emit(\"clickAction\", event);\n };\n const renderAction = () => {\n const action = slots.action ? slots.action({\n expanded: expanded.value\n }) : actionText.value;\n return _createVNode(\"span\", {\n \"ref\": actionRef,\n \"class\": bem(\"action\"),\n \"onClick\": onClickAction\n }, [action]);\n };\n onMounted(() => {\n calcEllipsised();\n if (slots.action) {\n nextTick(calcEllipsised);\n }\n });\n onActivated(() => {\n if (needRecalculate) {\n needRecalculate = false;\n calcEllipsised();\n }\n });\n watch([windowWidth, () => [props.content, props.rows, props.position]], calcEllipsised);\n useExpose({\n toggle\n });\n return () => _createVNode(\"div\", {\n \"ref\": root,\n \"class\": bem()\n }, [expanded.value ? props.content : text.value, hasAction.value ? renderAction() : null]);\n }\n});\nexport {\n stdin_default as default,\n textEllipsisProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _TextEllipsis from \"./TextEllipsis.mjs\";\nconst TextEllipsis = withInstall(_TextEllipsis);\nvar stdin_default = TextEllipsis;\nimport { textEllipsisProps } from \"./TextEllipsis.mjs\";\nexport {\n TextEllipsis,\n stdin_default as default,\n textEllipsisProps\n};\n","import { computed, defineComponent, ref, watch, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\nimport { formatValueRange, genOptions, pickerInheritKeys, sharedProps } from \"../date-picker/utils.mjs\";\nimport { pick, extend, isSameValue, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Picker } from \"../picker/index.mjs\";\nconst [name] = createNamespace(\"time-picker\");\nconst validateTime = (val) => /^([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)$/.test(val);\nconst fullColumns = [\"hour\", \"minute\", \"second\"];\nconst timePickerProps = extend({}, sharedProps, {\n minHour: makeNumericProp(0),\n maxHour: makeNumericProp(23),\n minMinute: makeNumericProp(0),\n maxMinute: makeNumericProp(59),\n minSecond: makeNumericProp(0),\n maxSecond: makeNumericProp(59),\n minTime: {\n type: String,\n validator: validateTime\n },\n maxTime: {\n type: String,\n validator: validateTime\n },\n columnsType: {\n type: Array,\n default: () => [\"hour\", \"minute\"]\n }\n});\nvar stdin_default = defineComponent({\n name,\n props: timePickerProps,\n emits: [\"confirm\", \"cancel\", \"change\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const currentValues = ref(props.modelValue);\n const pickerRef = ref();\n const getValidTime = (time) => {\n const timeLimitArr = time.split(\":\");\n return fullColumns.map((col, i) => props.columnsType.includes(col) ? timeLimitArr[i] : \"00\");\n };\n const confirm = () => {\n var _a;\n return (_a = pickerRef.value) == null ? void 0 : _a.confirm();\n };\n const getSelectedTime = () => currentValues.value;\n const columns = computed(() => {\n let {\n minHour,\n maxHour,\n minMinute,\n maxMinute,\n minSecond,\n maxSecond\n } = props;\n if (props.minTime || props.maxTime) {\n const fullTime = {\n hour: 0,\n minute: 0,\n second: 0\n };\n props.columnsType.forEach((col, i) => {\n var _a;\n fullTime[col] = (_a = currentValues.value[i]) != null ? _a : 0;\n });\n const {\n hour,\n minute\n } = fullTime;\n if (props.minTime) {\n const [minH, minM, minS] = getValidTime(props.minTime);\n minHour = minH;\n minMinute = +hour <= +minHour ? minM : \"00\";\n minSecond = +hour <= +minHour && +minute <= +minMinute ? minS : \"00\";\n }\n if (props.maxTime) {\n const [maxH, maxM, maxS] = getValidTime(props.maxTime);\n maxHour = maxH;\n maxMinute = +hour >= +maxHour ? maxM : \"59\";\n maxSecond = +hour >= +maxHour && +minute >= +maxMinute ? maxS : \"59\";\n }\n }\n return props.columnsType.map((type) => {\n const {\n filter,\n formatter\n } = props;\n switch (type) {\n case \"hour\":\n return genOptions(+minHour, +maxHour, type, formatter, filter, currentValues.value);\n case \"minute\":\n return genOptions(+minMinute, +maxMinute, type, formatter, filter, currentValues.value);\n case \"second\":\n return genOptions(+minSecond, +maxSecond, type, formatter, filter, currentValues.value);\n default:\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(`[Vant] TimePicker: unsupported columns type: ${type}`);\n }\n return [];\n }\n });\n });\n watch(currentValues, (newValues) => {\n if (!isSameValue(newValues, props.modelValue)) {\n emit(\"update:modelValue\", newValues);\n }\n });\n watch(() => props.modelValue, (newValues) => {\n newValues = formatValueRange(newValues, columns.value);\n if (!isSameValue(newValues, currentValues.value)) {\n currentValues.value = newValues;\n }\n }, {\n immediate: true\n });\n const onChange = (...args) => emit(\"change\", ...args);\n const onCancel = (...args) => emit(\"cancel\", ...args);\n const onConfirm = (...args) => emit(\"confirm\", ...args);\n useExpose({\n confirm,\n getSelectedTime\n });\n return () => _createVNode(Picker, _mergeProps({\n \"ref\": pickerRef,\n \"modelValue\": currentValues.value,\n \"onUpdate:modelValue\": ($event) => currentValues.value = $event,\n \"columns\": columns.value,\n \"onChange\": onChange,\n \"onCancel\": onCancel,\n \"onConfirm\": onConfirm\n }, pick(props, pickerInheritKeys)), slots);\n }\n});\nexport {\n stdin_default as default,\n timePickerProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _TimePicker from \"./TimePicker.mjs\";\nconst TimePicker = withInstall(_TimePicker);\nvar stdin_default = TimePicker;\nimport { timePickerProps } from \"./TimePicker.mjs\";\nexport {\n TimePicker,\n stdin_default as default,\n timePickerProps\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { addUnit, makeArrayProp, makeStringProp, makeNumericProp, createNamespace } from \"../utils/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Sidebar } from \"../sidebar/index.mjs\";\nimport { SidebarItem } from \"../sidebar-item/index.mjs\";\nconst [name, bem] = createNamespace(\"tree-select\");\nconst treeSelectProps = {\n max: makeNumericProp(Infinity),\n items: makeArrayProp(),\n height: makeNumericProp(300),\n selectedIcon: makeStringProp(\"success\"),\n mainActiveIndex: makeNumericProp(0),\n activeId: {\n type: [Number, String, Array],\n default: 0\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: treeSelectProps,\n emits: [\"clickNav\", \"clickItem\", \"update:activeId\", \"update:mainActiveIndex\"],\n setup(props, {\n emit,\n slots\n }) {\n const isActiveItem = (id) => Array.isArray(props.activeId) ? props.activeId.includes(id) : props.activeId === id;\n const renderSubItem = (item) => {\n const onClick = () => {\n if (item.disabled) {\n return;\n }\n let activeId;\n if (Array.isArray(props.activeId)) {\n activeId = props.activeId.slice();\n const index = activeId.indexOf(item.id);\n if (index !== -1) {\n activeId.splice(index, 1);\n } else if (activeId.length < +props.max) {\n activeId.push(item.id);\n }\n } else {\n activeId = item.id;\n }\n emit(\"update:activeId\", activeId);\n emit(\"clickItem\", item);\n };\n return _createVNode(\"div\", {\n \"key\": item.id,\n \"class\": [\"van-ellipsis\", bem(\"item\", {\n active: isActiveItem(item.id),\n disabled: item.disabled\n })],\n \"onClick\": onClick\n }, [item.text, isActiveItem(item.id) && _createVNode(Icon, {\n \"name\": props.selectedIcon,\n \"class\": bem(\"selected\")\n }, null)]);\n };\n const onSidebarChange = (index) => {\n emit(\"update:mainActiveIndex\", index);\n };\n const onClickSidebarItem = (index) => emit(\"clickNav\", index);\n const renderSidebar = () => {\n const Items = props.items.map((item) => _createVNode(SidebarItem, {\n \"dot\": item.dot,\n \"badge\": item.badge,\n \"class\": [bem(\"nav-item\"), item.className],\n \"disabled\": item.disabled,\n \"onClick\": onClickSidebarItem\n }, {\n title: () => slots[\"nav-text\"] ? slots[\"nav-text\"](item) : item.text\n }));\n return _createVNode(Sidebar, {\n \"class\": bem(\"nav\"),\n \"modelValue\": props.mainActiveIndex,\n \"onChange\": onSidebarChange\n }, {\n default: () => [Items]\n });\n };\n const renderContent = () => {\n if (slots.content) {\n return slots.content();\n }\n const selected = props.items[+props.mainActiveIndex] || {};\n if (selected.children) {\n return selected.children.map(renderSubItem);\n }\n };\n return () => _createVNode(\"div\", {\n \"class\": bem(),\n \"style\": {\n height: addUnit(props.height)\n }\n }, [renderSidebar(), _createVNode(\"div\", {\n \"class\": bem(\"content\")\n }, [renderContent()])]);\n }\n});\nexport {\n stdin_default as default,\n treeSelectProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _TreeSelect from \"./TreeSelect.mjs\";\nconst TreeSelect = withInstall(_TreeSelect);\nvar stdin_default = TreeSelect;\nimport { treeSelectProps } from \"./TreeSelect.mjs\";\nexport {\n TreeSelect,\n stdin_default as default,\n treeSelectProps\n};\n","import { toArray, createNamespace, isFunction } from \"../utils/index.mjs\";\nconst [name, bem, t] = createNamespace(\"uploader\");\nfunction readFileContent(file, resultType) {\n return new Promise((resolve) => {\n if (resultType === \"file\") {\n resolve();\n return;\n }\n const reader = new FileReader();\n reader.onload = (event) => {\n resolve(event.target.result);\n };\n if (resultType === \"dataUrl\") {\n reader.readAsDataURL(file);\n } else if (resultType === \"text\") {\n reader.readAsText(file);\n }\n });\n}\nfunction isOversize(items, maxSize) {\n return toArray(items).some((item) => {\n if (item.file) {\n if (isFunction(maxSize)) {\n return maxSize(item.file);\n }\n return item.file.size > +maxSize;\n }\n return false;\n });\n}\nfunction filterFiles(items, maxSize) {\n const valid = [];\n const invalid = [];\n items.forEach((item) => {\n if (isOversize(item, maxSize)) {\n invalid.push(item);\n } else {\n valid.push(item);\n }\n });\n return { valid, invalid };\n}\nconst IMAGE_REGEXP = /\\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg|avif)/i;\nconst isImageUrl = (url) => IMAGE_REGEXP.test(url);\nfunction isImageFile(item) {\n if (item.isImage) {\n return true;\n }\n if (item.file && item.file.type) {\n return item.file.type.indexOf(\"image\") === 0;\n }\n if (item.url) {\n return isImageUrl(item.url);\n }\n if (typeof item.content === \"string\") {\n return item.content.indexOf(\"data:image\") === 0;\n }\n return false;\n}\nexport {\n bem,\n filterFiles,\n isImageFile,\n isImageUrl,\n isOversize,\n name,\n readFileContent,\n t\n};\n","import { defineComponent, createVNode as _createVNode } from \"vue\";\nimport { t, bem, isImageFile } from \"./utils.mjs\";\nimport { isDef, extend, numericProp, getSizeStyle, callInterceptor, makeRequiredProp } from \"../utils/index.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { Image } from \"../image/index.mjs\";\nimport { Loading } from \"../loading/index.mjs\";\nvar stdin_default = defineComponent({\n props: {\n name: numericProp,\n item: makeRequiredProp(Object),\n index: Number,\n imageFit: String,\n lazyLoad: Boolean,\n deletable: Boolean,\n reupload: Boolean,\n previewSize: [Number, String, Array],\n beforeDelete: Function\n },\n emits: [\"delete\", \"preview\", \"reupload\"],\n setup(props, {\n emit,\n slots\n }) {\n const renderMask = () => {\n const {\n status,\n message\n } = props.item;\n if (status === \"uploading\" || status === \"failed\") {\n const MaskIcon = status === \"failed\" ? _createVNode(Icon, {\n \"name\": \"close\",\n \"class\": bem(\"mask-icon\")\n }, null) : _createVNode(Loading, {\n \"class\": bem(\"loading\")\n }, null);\n const showMessage = isDef(message) && message !== \"\";\n return _createVNode(\"div\", {\n \"class\": bem(\"mask\")\n }, [MaskIcon, showMessage && _createVNode(\"div\", {\n \"class\": bem(\"mask-message\")\n }, [message])]);\n }\n };\n const onDelete = (event) => {\n const {\n name,\n item,\n index,\n beforeDelete\n } = props;\n event.stopPropagation();\n callInterceptor(beforeDelete, {\n args: [item, {\n name,\n index\n }],\n done: () => emit(\"delete\")\n });\n };\n const onPreview = () => emit(\"preview\");\n const onReupload = () => emit(\"reupload\");\n const renderDeleteIcon = () => {\n if (props.deletable && props.item.status !== \"uploading\") {\n const slot = slots[\"preview-delete\"];\n return _createVNode(\"div\", {\n \"role\": \"button\",\n \"class\": bem(\"preview-delete\", {\n shadow: !slot\n }),\n \"tabindex\": 0,\n \"aria-label\": t(\"delete\"),\n \"onClick\": onDelete\n }, [slot ? slot() : _createVNode(Icon, {\n \"name\": \"cross\",\n \"class\": bem(\"preview-delete-icon\")\n }, null)]);\n }\n };\n const renderCover = () => {\n if (slots[\"preview-cover\"]) {\n const {\n index,\n item\n } = props;\n return _createVNode(\"div\", {\n \"class\": bem(\"preview-cover\")\n }, [slots[\"preview-cover\"](extend({\n index\n }, item))]);\n }\n };\n const renderPreview = () => {\n const {\n item,\n lazyLoad,\n imageFit,\n previewSize,\n reupload\n } = props;\n if (isImageFile(item)) {\n return _createVNode(Image, {\n \"fit\": imageFit,\n \"src\": item.objectUrl || item.content || item.url,\n \"class\": bem(\"preview-image\"),\n \"width\": Array.isArray(previewSize) ? previewSize[0] : previewSize,\n \"height\": Array.isArray(previewSize) ? previewSize[1] : previewSize,\n \"lazyLoad\": lazyLoad,\n \"onClick\": reupload ? onReupload : onPreview\n }, {\n default: renderCover\n });\n }\n return _createVNode(\"div\", {\n \"class\": bem(\"file\"),\n \"style\": getSizeStyle(props.previewSize)\n }, [_createVNode(Icon, {\n \"class\": bem(\"file-icon\"),\n \"name\": \"description\"\n }, null), _createVNode(\"div\", {\n \"class\": [bem(\"file-name\"), \"van-ellipsis\"]\n }, [item.file ? item.file.name : item.url]), renderCover()]);\n };\n return () => _createVNode(\"div\", {\n \"class\": bem(\"preview\")\n }, [renderPreview(), renderMask(), renderDeleteIcon()]);\n }\n});\nexport {\n stdin_default as default\n};\n","import { ref, reactive, defineComponent, onBeforeUnmount, nextTick, mergeProps as _mergeProps, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nimport { pick, extend, toArray, isPromise, truthProp, getSizeStyle, makeArrayProp, makeStringProp, makeNumericProp } from \"../utils/index.mjs\";\nimport { bem, name, isOversize, filterFiles, isImageFile, readFileContent } from \"./utils.mjs\";\nimport { useCustomFieldValue } from \"@vant/use\";\nimport { useExpose } from \"../composables/use-expose.mjs\";\nimport { Icon } from \"../icon/index.mjs\";\nimport { showImagePreview } from \"../image-preview/index.mjs\";\nimport UploaderPreviewItem from \"./UploaderPreviewItem.mjs\";\nconst uploaderProps = {\n name: makeNumericProp(\"\"),\n accept: makeStringProp(\"image/*\"),\n capture: String,\n multiple: Boolean,\n disabled: Boolean,\n readonly: Boolean,\n lazyLoad: Boolean,\n maxCount: makeNumericProp(Infinity),\n imageFit: makeStringProp(\"cover\"),\n resultType: makeStringProp(\"dataUrl\"),\n uploadIcon: makeStringProp(\"photograph\"),\n uploadText: String,\n deletable: truthProp,\n reupload: Boolean,\n afterRead: Function,\n showUpload: truthProp,\n modelValue: makeArrayProp(),\n beforeRead: Function,\n beforeDelete: Function,\n previewSize: [Number, String, Array],\n previewImage: truthProp,\n previewOptions: Object,\n previewFullImage: truthProp,\n maxSize: {\n type: [Number, String, Function],\n default: Infinity\n }\n};\nvar stdin_default = defineComponent({\n name,\n props: uploaderProps,\n emits: [\"delete\", \"oversize\", \"clickUpload\", \"closePreview\", \"clickPreview\", \"clickReupload\", \"update:modelValue\"],\n setup(props, {\n emit,\n slots\n }) {\n const inputRef = ref();\n const urls = [];\n const reuploadIndex = ref(-1);\n const isReuploading = ref(false);\n const getDetail = (index = props.modelValue.length) => ({\n name: props.name,\n index\n });\n const resetInput = () => {\n if (inputRef.value) {\n inputRef.value.value = \"\";\n }\n };\n const onAfterRead = (items) => {\n resetInput();\n if (isOversize(items, props.maxSize)) {\n if (Array.isArray(items)) {\n const result = filterFiles(items, props.maxSize);\n items = result.valid;\n emit(\"oversize\", result.invalid, getDetail());\n if (!items.length) {\n return;\n }\n } else {\n emit(\"oversize\", items, getDetail());\n return;\n }\n }\n items = reactive(items);\n if (reuploadIndex.value > -1) {\n const arr = [...props.modelValue];\n arr.splice(reuploadIndex.value, 1, items);\n emit(\"update:modelValue\", arr);\n reuploadIndex.value = -1;\n } else {\n emit(\"update:modelValue\", [...props.modelValue, ...toArray(items)]);\n }\n if (props.afterRead) {\n props.afterRead(items, getDetail());\n }\n };\n const readFile = (files) => {\n const {\n maxCount,\n modelValue,\n resultType\n } = props;\n if (Array.isArray(files)) {\n const remainCount = +maxCount - modelValue.length;\n if (files.length > remainCount) {\n files = files.slice(0, remainCount);\n }\n Promise.all(files.map((file) => readFileContent(file, resultType))).then((contents) => {\n const fileList = files.map((file, index) => {\n const result = {\n file,\n status: \"\",\n message: \"\",\n objectUrl: URL.createObjectURL(file)\n };\n if (contents[index]) {\n result.content = contents[index];\n }\n return result;\n });\n onAfterRead(fileList);\n });\n } else {\n readFileContent(files, resultType).then((content) => {\n const result = {\n file: files,\n status: \"\",\n message: \"\",\n objectUrl: URL.createObjectURL(files)\n };\n if (content) {\n result.content = content;\n }\n onAfterRead(result);\n });\n }\n };\n const onChange = (event) => {\n const {\n files\n } = event.target;\n if (props.disabled || !files || !files.length) {\n return;\n }\n const file = files.length === 1 ? files[0] : [].slice.call(files);\n if (props.beforeRead) {\n const response = props.beforeRead(file, getDetail());\n if (!response) {\n resetInput();\n return;\n }\n if (isPromise(response)) {\n response.then((data) => {\n if (data) {\n readFile(data);\n } else {\n readFile(file);\n }\n }).catch(resetInput);\n return;\n }\n }\n readFile(file);\n };\n let imagePreview;\n const onClosePreview = () => emit(\"closePreview\");\n const previewImage = (item) => {\n if (props.previewFullImage) {\n const imageFiles = props.modelValue.filter(isImageFile);\n const images = imageFiles.map((item2) => {\n if (item2.objectUrl && !item2.url && item2.status !== \"failed\") {\n item2.url = item2.objectUrl;\n urls.push(item2.url);\n }\n return item2.url;\n }).filter(Boolean);\n imagePreview = showImagePreview(extend({\n images,\n startPosition: imageFiles.indexOf(item),\n onClose: onClosePreview\n }, props.previewOptions));\n }\n };\n const closeImagePreview = () => {\n if (imagePreview) {\n imagePreview.close();\n }\n };\n const deleteFile = (item, index) => {\n const fileList = props.modelValue.slice(0);\n fileList.splice(index, 1);\n emit(\"update:modelValue\", fileList);\n emit(\"delete\", item, getDetail(index));\n };\n const reuploadFile = (index) => {\n isReuploading.value = true;\n reuploadIndex.value = index;\n nextTick(() => chooseFile());\n };\n const onInputClick = () => {\n if (!isReuploading.value) {\n reuploadIndex.value = -1;\n }\n isReuploading.value = false;\n };\n const renderPreviewItem = (item, index) => {\n const needPickData = [\"imageFit\", \"deletable\", \"reupload\", \"previewSize\", \"beforeDelete\"];\n const previewData = extend(pick(props, needPickData), pick(item, needPickData, true));\n return _createVNode(UploaderPreviewItem, _mergeProps({\n \"item\": item,\n \"index\": index,\n \"onClick\": () => emit(props.reupload ? \"clickReupload\" : \"clickPreview\", item, getDetail(index)),\n \"onDelete\": () => deleteFile(item, index),\n \"onPreview\": () => previewImage(item),\n \"onReupload\": () => reuploadFile(index)\n }, pick(props, [\"name\", \"lazyLoad\"]), previewData), pick(slots, [\"preview-cover\", \"preview-delete\"]));\n };\n const renderPreviewList = () => {\n if (props.previewImage) {\n return props.modelValue.map(renderPreviewItem);\n }\n };\n const onClickUpload = (event) => emit(\"clickUpload\", event);\n const renderUpload = () => {\n const lessThanMax = props.modelValue.length < +props.maxCount;\n const Input = props.readonly ? null : _createVNode(\"input\", {\n \"ref\": inputRef,\n \"type\": \"file\",\n \"class\": bem(\"input\"),\n \"accept\": props.accept,\n \"capture\": props.capture,\n \"multiple\": props.multiple && reuploadIndex.value === -1,\n \"disabled\": props.disabled,\n \"onChange\": onChange,\n \"onClick\": onInputClick\n }, null);\n if (slots.default) {\n return _withDirectives(_createVNode(\"div\", {\n \"class\": bem(\"input-wrapper\"),\n \"onClick\": onClickUpload\n }, [slots.default(), Input]), [[_vShow, lessThanMax]]);\n }\n return _withDirectives(_createVNode(\"div\", {\n \"class\": bem(\"upload\", {\n readonly: props.readonly\n }),\n \"style\": getSizeStyle(props.previewSize),\n \"onClick\": onClickUpload\n }, [_createVNode(Icon, {\n \"name\": props.uploadIcon,\n \"class\": bem(\"upload-icon\")\n }, null), props.uploadText && _createVNode(\"span\", {\n \"class\": bem(\"upload-text\")\n }, [props.uploadText]), Input]), [[_vShow, props.showUpload && lessThanMax]]);\n };\n const chooseFile = () => {\n if (inputRef.value && !props.disabled) {\n inputRef.value.click();\n }\n };\n onBeforeUnmount(() => {\n urls.forEach((url) => URL.revokeObjectURL(url));\n });\n useExpose({\n chooseFile,\n reuploadFile,\n closeImagePreview\n });\n useCustomFieldValue(() => props.modelValue);\n return () => _createVNode(\"div\", {\n \"class\": bem()\n }, [_createVNode(\"div\", {\n \"class\": bem(\"wrapper\", {\n disabled: props.disabled\n })\n }, [renderPreviewList(), renderUpload()])]);\n }\n});\nexport {\n stdin_default as default,\n uploaderProps\n};\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Uploader from \"./Uploader.mjs\";\nconst Uploader = withInstall(_Uploader);\nvar stdin_default = Uploader;\nimport { uploaderProps } from \"./Uploader.mjs\";\nexport {\n Uploader,\n stdin_default as default,\n uploaderProps\n};\n","import { defineComponent, nextTick, onMounted, onUnmounted, ref, watch, watchEffect, createVNode as _createVNode } from \"vue\";\nimport { extend, truthProp, numericProp, createNamespace, getZIndexStyle, makeNumberProp, makeNumericProp, makeStringProp } from \"../utils/index.mjs\";\nconst [name, bem] = createNamespace(\"watermark\");\nconst watermarkProps = {\n gapX: makeNumberProp(0),\n gapY: makeNumberProp(0),\n image: String,\n width: makeNumberProp(100),\n height: makeNumberProp(100),\n rotate: makeNumericProp(-22),\n zIndex: numericProp,\n content: String,\n opacity: numericProp,\n fullPage: truthProp,\n textColor: makeStringProp(\"#dcdee0\")\n};\nvar stdin_default = defineComponent({\n name,\n props: watermarkProps,\n setup(props, {\n slots\n }) {\n const svgElRef = ref();\n const watermarkUrl = ref(\"\");\n const imageBase64 = ref(\"\");\n const renderWatermark = () => {\n const rotateStyle = {\n transformOrigin: \"center\",\n transform: `rotate(${props.rotate}deg)`\n };\n const svgInner = () => {\n if (props.image && !slots.content) {\n return _createVNode(\"image\", {\n \"href\": imageBase64.value,\n \"xlink:href\": imageBase64.value,\n \"x\": \"0\",\n \"y\": \"0\",\n \"width\": props.width,\n \"height\": props.height,\n \"style\": rotateStyle\n }, null);\n }\n return _createVNode(\"foreignObject\", {\n \"x\": \"0\",\n \"y\": \"0\",\n \"width\": props.width,\n \"height\": props.height\n }, [_createVNode(\"div\", {\n \"xmlns\": \"http://www.w3.org/1999/xhtml\",\n \"style\": rotateStyle\n }, [slots.content ? slots.content() : _createVNode(\"span\", {\n \"style\": {\n color: props.textColor\n }\n }, [props.content])])]);\n };\n const svgWidth = props.width + props.gapX;\n const svgHeight = props.height + props.gapY;\n return _createVNode(\"svg\", {\n \"viewBox\": `0 0 ${svgWidth} ${svgHeight}`,\n \"width\": svgWidth,\n \"height\": svgHeight,\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"style\": {\n padding: `0 ${props.gapX}px ${props.gapY}px 0`,\n opacity: props.opacity\n }\n }, [svgInner()]);\n };\n const makeImageToBase64 = (url) => {\n const canvas = document.createElement(\"canvas\");\n const image = new Image();\n image.crossOrigin = \"anonymous\";\n image.referrerPolicy = \"no-referrer\";\n image.onload = () => {\n canvas.width = image.naturalWidth;\n canvas.height = image.naturalHeight;\n const ctx = canvas.getContext(\"2d\");\n ctx == null ? void 0 : ctx.drawImage(image, 0, 0);\n imageBase64.value = canvas.toDataURL();\n };\n image.src = url;\n };\n const makeSvgToBlobUrl = (svgStr) => {\n const svgBlob = new Blob([svgStr], {\n type: \"image/svg+xml\"\n });\n return URL.createObjectURL(svgBlob);\n };\n const revokeWatermarkUrl = () => {\n if (watermarkUrl.value) {\n URL.revokeObjectURL(watermarkUrl.value);\n }\n };\n const generateWatermarkUrl = () => {\n if (svgElRef.value) {\n revokeWatermarkUrl();\n watermarkUrl.value = makeSvgToBlobUrl(svgElRef.value.innerHTML);\n }\n };\n watchEffect(() => {\n if (props.image) {\n makeImageToBase64(props.image);\n }\n });\n watch(() => [props.content, props.textColor, props.height, props.width, props.rotate, props.gapX, props.gapY], generateWatermarkUrl);\n watch(imageBase64, () => {\n nextTick(generateWatermarkUrl);\n });\n onMounted(generateWatermarkUrl);\n onUnmounted(revokeWatermarkUrl);\n return () => {\n const style = extend({\n backgroundImage: `url(${watermarkUrl.value})`\n }, getZIndexStyle(props.zIndex));\n return _createVNode(\"div\", {\n \"class\": bem({\n full: props.fullPage\n }),\n \"style\": style\n }, [_createVNode(\"div\", {\n \"class\": bem(\"wrapper\"),\n \"ref\": svgElRef\n }, [renderWatermark()])]);\n };\n }\n});\nexport {\n stdin_default as default,\n watermarkProps\n};\n","import getConfig 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';\nimport {showNotify} from 'vant';\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\nfunction tidyRule(rule) {\n const _rule = {...rule};\n delete _rule.children;\n return _rule;\n}\n\nexport default {\n validate() {\n const form = this.form();\n if (form) {\n return form.validate();\n } else {\n return new Promise(v => v());\n }\n },\n validateField(field) {\n return new Promise((resolve, reject) => {\n const form = this.form();\n if (form) {\n form.validate(field).then(resolve).catch(reject);\n } else {\n resolve();\n }\n });\n },\n clearValidateState(ctx) {\n const form = this.form();\n if (form) {\n return form.resetValidation(ctx.id);\n }\n },\n tidyOptions(options) {\n ['submitBtn', 'resetBtn', 'row', 'info', 'wrap', 'col', 'title'].forEach(name => {\n tidyBool(options, name);\n })\n return options;\n },\n tidyRule({prop}) {\n tidy(prop, 'title');\n tidy(prop, 'info');\n prop.validate && prop.validate.forEach(item => {\n if (is.String(item.pattern)) {\n item.pattern = new RegExp(item.pattern);\n }\n });\n return prop;\n },\n mergeProp(ctx) {\n const def = {\n info: {\n icon: true,\n },\n title: {},\n col: {span: 24},\n wrap: {},\n };\n ['info', 'wrap', 'col', 'title'].forEach(name => {\n ctx.prop[name] = mergeProps([this.options[name] || {}, ctx.prop[name] || {}], def[name]);\n });\n },\n getDefaultOptions() {\n return getConfig();\n },\n adapterValidate(validate, validator) {\n if (validate.trigger === 'change') {\n validate.trigger = 'onChange';\n } else if (validate.trigger === 'blur') {\n validate.trigger = 'onBlur';\n }\n validate.validator = (value) => {\n return new Promise((resolve) => {\n const callback = (err) => {\n validate.message = err;\n if (err) {\n resolve(false);\n } else {\n resolve();\n }\n }\n return validator(value, callback);\n })\n }\n return validate;\n },\n update() {\n const form = this.options.form;\n this.rule = {\n props: {...form},\n on: {\n submit: (e) => {\n e.preventDefault();\n }\n },\n style: form.style,\n type: 'form',\n };\n },\n beforeRender() {\n const {key, ref} = this;\n const form = this.options.form;\n extend(this.rule, {key, ref, class: [form.className, form.class, 'form-create-m', this.$handle.preview ? 'is-preview' : '']});\n },\n render(children) {\n if (children.slotLen() && !this.$handle.preview) {\n children.setSlot(undefined, () => this.makeFormBtn());\n }\n return this.$r(this.rule, isFalse(this.options.row.show) ? children.getSlots() : [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) && rule.wrap.title !== false;\n const {col: _col} = this.rule.props;\n const cls = rule.wrap.class;\n delete rule.wrap.class;\n delete rule.wrap.title;\n const item = isFalse(rule.wrap.show) ? children : this.$r(mergeProps([rule.wrap, {\n props: {\n modelValue: ctx.rule.value,\n label: isTitle ? rule.title.title : undefined,\n ...tidyRule(rule.wrap || {}),\n name: ctx.id,\n rules: ctx.injectValidate(),\n },\n class: this.$render.mergeClass(cls || rule.className, 'fc-form-item'),\n key: `${uni}fi`,\n ref: ctx.wrapRef,\n type: 'formItem',\n }]), {input: () => children, ...(isTitle ? {label: () => this.makeInfo(rule, uni, ctx)} : {})});\n return (isFalse(_col) || isFalse(col.show)) ? item : this.makeCol(rule, uni, [item]);\n },\n isTitle(rule) {\n if (this.options.form.title === false) return false;\n const title = rule.title;\n return !((!title.title && !title.native) || isFalse(title.show))\n },\n makeInfo(rule, uni, ctx) {\n const titleProp = {...rule.title};\n const infoProp = {...rule.info};\n const titleSlot = this.getSlot('title');\n const children = [titleSlot ? titleSlot({\n title: ctx.refRule?.__$title?.value,\n rule: ctx.rule,\n options: this.options\n }) : ctx.refRule?.__$title?.value];\n const flag = !isFalse(infoProp.show) && (infoProp.info || infoProp.native) && !isFalse(infoProp.icon);\n if (flag) {\n children[infoProp.align !== 'left' ? 'unshift' : 'push'](this.$r({\n type: infoProp.icon === true ? 'icon-warning' : infoProp.icon,\n style: 'width:1em;',\n }));\n }\n\n const _prop = mergeProps([titleProp, {\n props: tidyRule(titleProp),\n key: `${uni}tit`,\n class: 'fc-form-title',\n type: titleProp.type || 'span',\n on: {\n click: (...args) => {\n if (flag && infoProp.info) {\n showNotify({type: 'warning', message: ctx.refRule?.__$info?.value, duration: 1000});\n }\n this.$handle.targetHook(ctx, 'titleClick', {args});\n }\n }\n }]);\n\n delete _prop.props.show;\n delete _prop.props.title;\n delete _prop.props.native;\n\n return this.$r(_prop, children);\n },\n makeCol(rule, uni, children) {\n const col = rule.col;\n return this.$r({\n class: this.$render.mergeClass(col.class, 'fc-form-col'),\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: this.$render.mergeClass(row.class, 'fc-form-row'),\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 return this.$r({\n type: 'cell',\n class: 'fc-form-cell fc-form-footer',\n key: `${this.key}fb`\n }, vn);\n },\n\n makeResetBtn() {\n const resetBtn = {...this.options.resetBtn};\n const innerText = resetBtn.innerText || this.$handle.api.t('reset') || '重置';\n delete resetBtn.innerText;\n delete resetBtn.click;\n delete resetBtn.col;\n delete resetBtn.show;\n return this.$r({\n type: 'button',\n props: resetBtn,\n class: 'fc-reset-btn',\n style: {width: resetBtn.width},\n on: {\n click: () => {\n const fApi = this.$handle.api;\n this.options.resetBtn.click\n ? this.options.resetBtn.click(fApi)\n : fApi.resetFields();\n }\n },\n key: `${this.key}b2`,\n }, [innerText]);\n },\n makeSubmitBtn() {\n const submitBtn = {...this.options.submitBtn};\n const innerText = submitBtn.innerText || this.$handle.api.t('submit') || '提交';\n delete submitBtn.innerText;\n delete submitBtn.click;\n delete submitBtn.col;\n delete submitBtn.show;\n return this.$r({\n type: 'button',\n props: submitBtn,\n class: 'fc-submit-btn',\n style: {width: submitBtn.width},\n on: {\n click: () => {\n const fApi = this.$handle.api;\n this.options.submitBtn.click\n ? this.options.submitBtn.click(fApi)\n : fApi.submit().catch(() => {\n });\n }\n },\n key: `${this.key}b1`,\n }, [innerText]);\n }\n}\n","import { withInstall } from \"../utils/index.mjs\";\nimport _Watermark from \"./Watermark.mjs\";\nconst Watermark = withInstall(_Watermark);\nvar stdin_default = Watermark;\nimport { watermarkProps } from \"./Watermark.mjs\";\nexport {\n Watermark,\n stdin_default as default,\n watermarkProps\n};\n","export default function getConfig() {\n return {\n form: {\n required: 'auto',\n labelAlign: 'right',\n inputAlign: 'right',\n },\n row: {\n show: true,\n gutter: 0,\n },\n submitBtn: {\n type: 'primary',\n loading: false,\n disabled: false,\n block: true,\n innerText: '',\n size: 'small',\n show: true,\n col: undefined,\n click: undefined,\n },\n resetBtn: {\n type: 'default',\n loading: false,\n disabled: false,\n block: true,\n innerText: '',\n size: 'small',\n show: false,\n col: undefined,\n click: undefined,\n },\n };\n}\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 return {\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.filter(v=>!v.isScope).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 h.emitEvent('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).filter(v=>!v.isScope).forEach(v => {\n all.push(v.validate());\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 return new Promise((resolve, reject) => {\n const promise = h.options.validateOnSubmit === false ? Promise.resolve() : api.validate();\n promise.then(() => {\n let formData = api.formData();\n h.beforeSubmit(formData).then(() => {\n is.Function(successFn) && invoke(() => successFn(formData, api));\n is.Function(h.options.onSubmit) && invoke(() => h.options.onSubmit(formData, api));\n h.vm.emit('submit', formData, api);\n resolve(formData);\n }).catch((e) => {})\n }).catch((...args) => {\n is.Function(failFn) && invoke(() => failFn(api, ...args));\n reject(...args)\n })\n });\n },\n };\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 is from '@form-create/utils/lib/type';\n\nconst required = {\n name: 'required',\n load(inject, rule, api) {\n const val = parseVal(inject.getValue());\n let _title = undefined;\n if (val.required === false) {\n inject.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n const validate = {\n required: true,\n validator(v) {\n updateMessage();\n return !is.empty(v);\n },\n trigger: ['onChange', 'onSubmit'],\n ...val,\n };\n const updateMessage = () => {\n const title = rule.__fc__.refRule.__$title?.value;\n if (_title === title) {\n return;\n }\n _title = title;\n if (!val.message) {\n validate.message = api.t('required', {title}) || (title + (api.getLocale() === 'en' ? ' is required' : '不能为空'));\n } else {\n const match = val.message.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n validate.message = api.t(match[1], {title});\n }\n }\n }\n updateMessage();\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\n\nexport default required\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 '../style/index.css';\nimport extendApi from './api';\nimport required from './provider';\nimport {Field} from 'vant';\n\nfunction install(FormCreate) {\n FormCreate.componentAlias(alias);\n\n components.forEach(component => {\n FormCreate.component(component.name, component);\n });\n\n FormCreate.register(required);\n\n parsers.forEach((parser) => {\n FormCreate.parser(parser);\n });\n\n if (Field.props) {\n Field.props.modelValue = {\n type: [String, Number, Array, Object, Boolean, Function],\n default: '',\n };\n }\n}\n\nexport default function VantFormCreate() {\n return FormCreateFactory({\n ui: 'process.env.UI',\n version: 'process.env.VERSION',\n manager,\n extendApi,\n install,\n isMobile: true,\n attrs: {\n normal: ['col', 'wrap'],\n key: ['title', 'info'],\n }\n });\n}\n","import VantFormCreate from './core/index';\n\nconst FormCreateMobile = VantFormCreate();\n\nif (typeof window !== 'undefined') {\n window.formCreateMobile = FormCreateMobile;\n}\n\nconst maker = FormCreateMobile.maker;\n\nexport {maker}\n\nexport default FormCreateMobile;\n","import {functionalMerge, normalMerge, toArrayMerge} from '@form-create/utils/lib/mergeprops';\n\n\nexport const keyAttrs = ['type', 'slot', 'ignore', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'slotUpdate', 'computed', 'preview', 'component', 'cache', 'modelEmit'];\n\nexport const arrayAttrs = ['validate', 'children', 'control'];\n\nexport const normalAttrs = ['effect', 'deep', 'renderSlots'];\n\nexport function attrs() {\n return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];\n}\n","import deepExtend from '@form-create/utils/lib/deepextend';\nimport 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 {isVNode} from 'vue';\nimport {upper} from '@form-create/utils/lib/toline';\nimport toCase from '@form-create/utils/lib/tocase';\n\nexport {parseJson, parseFn, toJson} from '@form-create/utils/lib/json';\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, mode) {\n return copyRules([rule], mode || false)[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\nexport function makeSlotBag() {\n const slotBag = {};\n const slotName = (n) => n || 'default';\n\n return {\n setSlot(slot, vnFn) {\n slot = slotName(slot);\n if (!vnFn || (Array.isArray(vnFn) && vnFn.length))\n return;\n if (!slotBag[slot]) slotBag[slot] = [];\n slotBag[slot].push(vnFn);\n },\n getSlot(slot, val) {\n slot = slotName(slot);\n const children = [];\n (slotBag[slot] || []).forEach(fn => {\n if (Array.isArray(fn)) {\n children.push(...fn);\n } else if (is.Function(fn)) {\n const res = fn(...(val || []));\n if (Array.isArray(res)) {\n children.push(...res);\n } else {\n children.push(res);\n }\n } else if (!is.Undef(fn)) {\n children.push(fn);\n }\n })\n return children;\n },\n getSlots() {\n const slots = {};\n Object.keys(slotBag).forEach(k => {\n slots[k] = (...args) => {\n return this.getSlot(k, args);\n }\n })\n return slots\n },\n slotLen(slot) {\n slot = slotName(slot);\n return slotBag[slot] ? slotBag[slot].length : 0;\n },\n mergeBag(bag) {\n if (!bag) return this;\n const slots = is.Function(bag.getSlots) ? bag.getSlots() : bag;\n if (Array.isArray(bag) || isVNode(bag)) {\n this.setSlot(undefined, () => bag);\n } else {\n Object.keys(slots).forEach(k => {\n this.setSlot(k, slots[k]);\n });\n }\n\n return this;\n }\n };\n}\n\nexport function toProps(rule) {\n const prop = {...(rule.props || {})};\n\n Object.keys(rule.on || {}).forEach(k => {\n if (k.indexOf('-') > 0) {\n k = toCase(k);\n }\n const name = `on${upper(k)}`;\n if (Array.isArray(prop[name])) {\n prop[name] = [...prop[name], rule.on[k]];\n } else if (prop[name]) {\n prop[name] = [prop[name], rule.on[k]];\n } else {\n prop[name] = rule.on[k];\n }\n })\n prop.key = rule.key;\n prop.ref = rule.ref;\n prop.class = rule.class;\n prop.id = rule.id;\n prop.style = rule.style;\n if (prop.slot) delete prop.slot;\n\n return prop;\n}\n\nexport function setPrototypeOf(o, proto) {\n Object.setPrototypeOf(o, proto);\n return o;\n}\n\n\nconst changeType = (a, b) => {\n if (typeof a === 'string') {\n return String(b);\n } else if (typeof a === 'number') {\n return Number(b);\n }\n return b;\n}\n\nexport const condition = {\n '==': (a, b) => {\n return JSON.stringify(a) === JSON.stringify(changeType(a, b));\n },\n '!=': (a, b) => {\n return !condition['=='](a, b);\n },\n '>': (a, b) => {\n return a > b;\n },\n '>=': (a, b) => {\n return a >= b;\n },\n '<': (a, b) => {\n return a < b;\n },\n '<=': (a, b) => {\n return a <= b;\n },\n on(a, b) {\n return a && a.indexOf && a.indexOf(changeType(a[0], b)) > -1;\n },\n notOn(a, b) {\n return !condition.on(a, b);\n },\n in(a, b) {\n return b && b.indexOf && b.indexOf(a) > -1;\n },\n notIn(a, b) {\n return !condition.in(a, b);\n },\n between(a, b) {\n return a > b[0] && a < b[1];\n },\n notBetween(a, b) {\n return a < b[0] || a > b[1];\n },\n empty(a) {\n return is.empty(a);\n },\n notEmpty(a) {\n return !is.empty(a);\n },\n pattern(a, b) {\n return new RegExp(b, 'g').test(a);\n }\n};\n\nexport function deepGet(val, split) {\n (Array.isArray(split) ? split : (split || '').split('.')).forEach(k => {\n if (val != null) {\n val = val[k];\n }\n });\n return val;\n}\n\nexport function extractVar(str) {\n const regex = /{{\\s*(.*?)\\s*}}/g;\n let match;\n const matches = {};\n while ((match = regex.exec(str)) !== null) {\n if (match[1]) {\n matches[match[1]] = true;\n }\n }\n return Object.keys(matches);\n}\n\nexport function convertFieldToConditions(field) {\n let parts = field.split('.');\n let conditions = [];\n let currentCondition = '';\n\n parts.forEach((part, index) => {\n if (index === 0) {\n currentCondition = part;\n } else {\n currentCondition += '.' + part;\n }\n conditions.push(currentCondition);\n });\n\n return conditions.join(' && ');\n}\n\nexport function parseTemplateToTree(template) {\n const tokens = [];\n let current = '';\n let depth = 0;\n\n for (let i = 0; i < template.length; i++) {\n const char = template[i];\n\n if (char === '[') {\n if (depth === 0 && current) {\n tokens.push({type: 'key', value: current});\n current = '';\n }\n depth++;\n current += char;\n } else if (char === ']') {\n depth--;\n current += char;\n\n if (depth === 0) {\n tokens.push({\n type: 'bracket',\n value: parseTemplateToTree(current.slice(1, -1))\n });\n current = '';\n }\n } else if (char === '.' && depth === 0) {\n if (current) {\n tokens.push({type: 'key', value: current});\n current = '';\n }\n } else {\n current += char;\n }\n }\n\n if (current) {\n tokens.push({type: 'key', value: current});\n }\n\n return tokens.map(token => {\n if (token.type === 'key') {\n return {key: token.value};\n } else {\n return {children: token.value};\n }\n });\n}\n","import {\n defineComponent,\n getCurrentInstance,\n inject,\n markRaw,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n onMounted,\n onUpdated,\n provide,\n reactive,\n toRefs,\n watch, watchEffect\n} from 'vue';\nimport toArray from '@form-create/utils/lib/toarray';\nimport debounce from '@form-create/utils/lib/debounce';\nimport toLine from '@form-create/utils/lib/toline';\nimport {toJson} from '../frame/util';\n\nconst getGroupInject = (vm, parent) => {\n if (!vm || vm === parent) {\n return;\n }\n if (vm.props.formCreateInject) {\n return vm.props.formCreateInject\n }\n if (vm.parent) {\n return getGroupInject(vm.parent, parent);\n }\n}\n\nexport default function $FormCreate(FormCreate, components, directives) {\n return defineComponent({\n name: 'FormCreate' + (FormCreate.isMobile ? 'Mobile' : ''),\n components,\n directives,\n props: {\n rule: {\n type: Array,\n required: true,\n default: () => []\n },\n option: {\n type: Object,\n default: () => ({})\n },\n extendOption: Boolean,\n driver: [String, Object],\n modelValue: Object,\n disabled: {\n type: Boolean,\n default: undefined,\n },\n preview: {\n type: Boolean,\n default: undefined,\n },\n index: [String, Number],\n api: Object,\n locale: [String, Object],\n t: Function,\n name: String,\n subForm: {\n type: Boolean,\n default: true\n },\n inFor: Boolean,\n },\n emits: ['update:api', 'update:modelValue', 'mounted', 'submit', 'reset', 'change', 'emit-event', 'control', 'remove-rule', 'remove-field', 'sync', 'reload', 'repeat-field', 'update', 'validate-field-fail', 'validate-fail', 'created'],\n render() {\n return this.fc.render();\n },\n setup(props) {\n const vm = getCurrentInstance();\n provide('parentFC', vm);\n const parent = inject('parentFC', null);\n let top = parent;\n\n if (parent) {\n while (top.setupState.parent) {\n top = top.setupState.parent;\n }\n } else {\n top = vm;\n }\n\n const {rule, modelValue, subForm, inFor} = toRefs(props);\n\n const data = reactive({\n ctxInject: {},\n destroyed: false,\n isShow: true,\n unique: 1,\n renderRule: [...rule.value || []],\n updateValue: JSON.stringify(modelValue.value || {}),\n });\n\n const fc = new FormCreate(vm);\n const fapi = fc.api();\n\n const isMore = inFor.value;\n\n const addSubForm = () => {\n if (parent) {\n const inject = getGroupInject(vm, parent);\n if (inject) {\n let sub;\n if (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 = getGroupInject(vm, parent);\n if (inject) {\n if (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 let styleEl = null;\n\n onBeforeMount(() => {\n watchEffect(() => {\n let content = '';\n const globalClass = (props.option && props.option.globalClass) || {};\n Object.keys(globalClass).forEach(k => {\n let subCss = '';\n globalClass[k].style && Object.keys(globalClass[k].style).forEach(key => {\n subCss += toLine(key) + ':' + globalClass[k].style[key] + ';';\n });\n if (globalClass[k].content) {\n subCss += globalClass[k].content + ';';\n }\n if (subCss) {\n content += `.${k}{${subCss}}`;\n }\n });\n if (props.option && props.option.style) {\n content += props.option.style;\n }\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.type = 'text/css';\n document.head.appendChild(styleEl);\n }\n styleEl.innerHTML = content || '';\n })\n });\n\n const emit$topForm = debounce(() => {\n fc.bus.$emit('$loadData.$topForm');\n }, 100);\n\n const emit$scopeForm = debounce(function () {\n fc.bus.$emit('$loadData.$scopeForm');\n }, 100);\n\n const emit$form = debounce(() => {\n fc.bus.$emit('$loadData.$form');\n }, 100);\n\n const emit$change = (field) => {\n fc.bus.$emit('change-$form.' + field);\n };\n\n onMounted(() => {\n if (parent) {\n fapi.top.bus.$on('$loadData.$form', emit$topForm);\n fapi.top.bus.$on('change', emit$change);\n }\n if (fapi !== fapi.scope) {\n fapi.scope.bus.$on('$loadData.$scopeForm', emit$scopeForm);\n }\n fc.mounted();\n });\n\n onBeforeUnmount(() => {\n if (parent) {\n fapi.top.bus.$off('$loadData.$form', emit$topForm);\n fapi.top.bus.$off('change', emit$change);\n }\n if (fapi !== fapi.scope) {\n fapi.scope.bus.$off('$loadData.$scopeForm', emit$scopeForm);\n }\n rmSubForm();\n data.destroyed = true;\n fc.unmount();\n styleEl && (styleEl.parentNode || styleEl.parentElement) && document.head.removeChild(styleEl);\n })\n\n onUpdated(() => {\n fc.updated();\n });\n\n addSubForm();\n\n watch(() => props.option, () => {\n fc.initOptions();\n fapi.refresh();\n }, {deep: true, flush: 'sync'});\n\n watch(() => [...rule.value], (n) => {\n if (fc.$handle.isBreakWatch() || n.length === data.renderRule.length && n.every(v => data.renderRule.indexOf(v) > -1)) return;\n fc.$handle.updateAppendData();\n fc.$handle.reloadRule(rule.value);\n vm.setupState.renderRule();\n })\n\n watch(() => [props.disabled, props.preview], () => {\n fapi.refresh();\n });\n\n watch(modelValue, (n) => {\n if (toJson(n || {}) === data.updateValue) return;\n if (fapi.config.forceCoverValue) {\n fapi.coverValue(n || {});\n } else {\n fapi.setValue(n || {});\n }\n }, {deep: true, flush: 'post'});\n\n watch(() => props.index, () => {\n fapi.coverValue({});\n fc.$handle.updateAppendData();\n nextTick(() => {\n nextTick(() => {\n fapi.clearValidateState();\n });\n });\n }, {flush: 'sync'});\n\n return {\n fc: markRaw(fc),\n parent: parent ? markRaw(parent) : parent,\n top: markRaw(top),\n fapi: markRaw(fapi),\n ...toRefs(data),\n getGroupInject: () => getGroupInject(vm, parent),\n refresh() {\n ++data.unique;\n },\n renderRule() {\n data.renderRule = [...rule.value || []];\n },\n updateValue(value) {\n if (data.destroyed) return;\n const json = toJson(value);\n if (data.updateValue === json) {\n return;\n }\n data.updateValue = json;\n vm.emit('update:modelValue', value);\n nextTick(() => {\n emit$form();\n if (!parent) {\n emit$topForm();\n emit$scopeForm();\n } else if (!subForm.value) {\n emit$scopeForm();\n }\n });\n }\n }\n },\n created() {\n const vm = getCurrentInstance();\n vm.emit('update:api', vm.setupState.fapi);\n vm.setupState.fc.init();\n },\n })\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {attrs} from '../frame/attrs';\nimport {copyRule, mergeRule} from '../frame/util';\nimport {$set} from '@form-create/utils/lib/modify';\n\nexport function baseRule() {\n return {\n props: {},\n on: {},\n options: [],\n children: [],\n 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 modelField(field) {\n this._data.modelField = field;\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 default function makerFactory() {\n return {\n create,\n factory: creatorFactory\n };\n}\n","// https://github.com/ElemeFE/element/blob/dev/packages/upload/src/ajax.js\n\nimport is from '@form-create/utils/lib/type';\nimport {parseFn} from '@form-create/utils/lib/json';\nimport {deepGet} from './util';\nimport {toPromise} from '@form-create/utils';\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 let action = option.action || '';\n\n if (xhr.upload && option.onProgress) {\n xhr.upload.addEventListener('progress', (evt) => {\n evt.percent = evt.total > 0 ? (evt.loaded / evt.total) * 100 : 0\n option.onProgress(evt)\n })\n }\n\n if (option.query) {\n const query = is.String(option.query) ? option.query : Object.keys(option.query).reduce((acc, key) => {\n acc[key] = (option.query[key] === null || option.query[key] === undefined) ? '' : option.query[key];\n return acc;\n }, {});\n const queryString = new URLSearchParams(query).toString();\n if (queryString) {\n if (action.includes('?')) {\n action += `&${queryString}`;\n } else {\n action += `?${queryString}`;\n }\n }\n }\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 || option.file) {\n if (option.file || (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 if(option.file){\n formData.append(option.filename, option.file, option.file.name)\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\n\nexport function asyncFetch(config, _fetch, api) {\n return new Promise((resolve, reject) => {\n (_fetch || fetch)({\n ...config,\n onSuccess(res) {\n let fn = (v) => v;\n const parse = parseFn(config.parse);\n if (is.Function(parse)) {\n fn = parse;\n } else if (parse && is.String(parse)) {\n fn = (v) => {\n return deepGet(v, parse);\n }\n }\n toPromise(fn(res, config.targetRule, api)).then(res => {\n resolve(res);\n });\n },\n onError(err) {\n reject(err);\n }\n })\n });\n}","import {byCtx, invoke, mergeRule, parseFn, toJson} from './util';\nimport {$set} from '@form-create/utils/lib/modify';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport extend from '@form-create/utils/lib/extend';\nimport {format} from '@form-create/utils/lib/console';\nimport {asyncFetch} from './fetch';\nimport {nextTick} from 'vue';\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 if (is.Undef(fields)) {\n fields = Object.keys({...h.fieldCtx, ...h.nameCtx});\n } else if (!Array.isArray(fields)) {\n fields = [fields];\n }\n fields.forEach(field => {\n const ctxs = h.fieldCtx[field] || h.nameCtx[field];\n ctxs && ctxs.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 isScope() {\n return h.vm.props.subForm === false;\n },\n get isPreview() {\n return h.preview;\n },\n get config() {\n return h.options\n },\n set config(val) {\n h.fc.options.value = val;\n },\n get options() {\n return h.options\n },\n set options(val) {\n h.fc.options.value = val;\n },\n get form() {\n return h.form\n },\n get rule() {\n return h.rules\n },\n get parent() {\n return h.vm.setupState.parent && h.vm.setupState.parent.setupState.fapi\n },\n get top() {\n if (api.parent) {\n return api.parent.top;\n }\n return api;\n },\n get scope() {\n let parent = h.vm;\n while (parent && parent.setupState.fapi) {\n if (!parent.props.subForm) {\n return parent.setupState.fapi;\n } else {\n parent = parent.setupState.parent;\n }\n }\n return api.top;\n },\n get children() {\n return allSubForm();\n },\n get siblings() {\n const inject = h.vm.setupState.getGroupInject();\n if (inject) {\n const subForm = inject.getSubForm();\n if (Array.isArray(subForm)) {\n return [...subForm];\n }\n }\n return undefined;\n },\n get index() {\n const siblings = api.siblings;\n if (siblings) {\n const idx = siblings.indexOf(api);\n return idx > -1 ? idx : undefined;\n }\n return undefined;\n },\n get formulas() {\n return {...h.fc.formulas};\n },\n formData(fields) {\n if (fields == null || typeof fields === 'boolean') {\n const data = {};\n Object.keys(h.form).forEach(k => {\n if (fields === true || h.ignoreFields.indexOf(k) === -1) {\n data[k] = copy(h.form[k]);\n }\n });\n return data;\n } else {\n return tidyFields(fields).reduce((initial, id) => {\n initial[id] = api.getValue(id);\n return initial;\n }, {});\n }\n },\n getValue(field) {\n const ctx = h.getFieldCtx(field);\n if (!ctx) {\n if (h.options.appendValue !== false && hasProperty(h.appendData, field)) {\n return copy(h.appendData[field]);\n }\n return undefined;\n }\n return copy(ctx.rule.value);\n },\n coverValue(formData) {\n const data = {...(formData || {})};\n h.deferSyncValue(() => {\n h.appendData = {};\n api.fields().forEach(key => {\n const ctxs = h.fieldCtx[key];\n if (ctxs) {\n const flag = hasProperty(formData, key);\n ctxs.forEach(ctx => {\n ctx.rule.value = flag ? formData[key] : undefined;\n })\n delete data[key];\n }\n });\n extend(h.appendData, data);\n }, true)\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 }, true)\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 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.getPending('children', ctx.rule.children);\n if (!Array.isArray(rules)) return;\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.getPending('children', ctx.rule.children);\n if (!Array.isArray(rules)) return;\n } else {\n index = ctx.root.indexOf(ctx.origin);\n rules = ctx.root;\n }\n } else rules = h.rules;\n rules.splice(index, 0, rule);\n },\n hidden(state, fields) {\n props(fields, 'hidden', !!state);\n h.refresh();\n },\n hiddenStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.hidden;\n },\n display(state, fields) {\n props(fields, 'display', !!state);\n h.refresh();\n },\n displayStatus(id) {\n const ctx = h.getCtx(id);\n if (!ctx) return;\n return !!ctx.rule.display;\n },\n disabled(disabled, fields) {\n tidyFields(fields).forEach((field) => {\n h.getCtxs(field).forEach(ctx => {\n $set(ctx.rule.props, 'disabled', !!disabled);\n });\n });\n h.refresh();\n },\n all(origin) {\n return Object.keys(h.ctxs).map(k => {\n const ctx = h.ctxs[k];\n return origin ? ctx.origin : ctx.rule;\n });\n },\n model(origin) {\n return h.fields().reduce((initial, key) => {\n const ctx = h.fieldCtx[key][0];\n initial[key] = origin ? ctx.origin : ctx.rule;\n return initial;\n }, {});\n },\n component(origin) {\n return Object.keys(h.nameCtx).reduce((initial, key) => {\n const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);\n initial[key] = ctx.length === 1 ? ctx[0] : ctx;\n return initial;\n }, {});\n },\n bind() {\n return api.form;\n },\n reload: (rules) => {\n h.reloadRule(rules)\n },\n updateOptions(options) {\n h.fc.updateOptions(options);\n api.refresh();\n },\n onSubmit(fn) {\n api.updateOptions({onSubmit: fn});\n },\n sync: (field) => {\n if (Array.isArray(field)) {\n field.forEach(v => api.sync(v));\n return;\n }\n let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);\n if (!ctxs) {\n return;\n }\n ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];\n ctxs.forEach(ctx => {\n if (!ctx.deleted) {\n const subForm = h.subForm[ctx.id];\n if (subForm) {\n if (Array.isArray(subForm)) {\n subForm.forEach(form => {\n form.refresh();\n })\n } else if (subForm) {\n subForm.refresh();\n }\n }\n //ctx.updateKey(true);\n h.$render.clearCache(ctx);\n }\n });\n h.refresh();\n },\n refresh: () => {\n allSubForm().forEach(sub => {\n sub.refresh();\n });\n h.$render.clearCacheAll();\n h.refresh();\n },\n refreshOptions() {\n h.$manager.updateOptions(h.options);\n api.refresh();\n },\n hideForm: (hide) => {\n h.vm.setupState.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 findType(type, origin) {\n let rule = undefined;\n Object.keys(h.ctxs).forEach(k => {\n const ctx = h.ctxs[k];\n if (ctx.rule.type === type) {\n rule = origin ? ctx.origin : ctx.rule;\n }\n });\n return rule;\n },\n findTypes(type, origin) {\n let rules = [];\n Object.keys(h.ctxs).forEach(k => {\n const ctx = h.ctxs[k];\n if (ctx.rule.type === type) {\n rules.push(origin ? ctx.origin : ctx.rule);\n }\n });\n return rules;\n },\n getRenderRule: (id) => {\n const ctx = h.getCtx(id);\n if (ctx) {\n return ctx.prop;\n }\n },\n getRefRule: (id) => {\n const ctxs = h.getCtxs(id);\n if (ctxs) {\n const rules = ctxs.map(ctx => {\n return ctx.rule;\n })\n return rules.length === 1 ? rules[0] : rules;\n }\n },\n setEffect(id, attr, value) {\n const ctx = h.getCtx(id);\n if (ctx && attr) {\n if (attr[0] === '$') {\n attr = attr.substr(1);\n }\n if (hasProperty(ctx.rule, '$' + attr)) {\n $set(ctx.rule, '$' + attr, value);\n }\n if (!hasProperty(ctx.rule, 'effect')) {\n 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 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 nextTick(() => {\n nextTick(() => {\n nextTick(() => {\n api.clearValidateState(fields);\n });\n });\n });\n if (fields == null) {\n is.Function(h.options.onReset) && invoke(() => h.options.onReset(api));\n h.vm.emit('reset', api);\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 h.bus.$emit('fc:closeModal:' + id);\n },\n getSubForm(field) {\n const ctx = h.getCtx(field);\n return ctx ? h.subForm[ctx.id] : undefined;\n },\n getChildrenRuleList(id) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n const rule = ctx ? ctx.rule : (flag ? id : api.getRule(id));\n if (!rule) {\n return [];\n }\n const rules = [];\n const findRules = children => {\n children && children.forEach(item => {\n if (typeof item !== 'object') {\n return;\n }\n if (item.field) {\n rules.push(item);\n }\n rules.push(...api.getChildrenRuleList(item));\n });\n }\n findRules(ctx ? ctx.loadChildrenPending() : rule.children);\n return rules;\n },\n getParentRule(id) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n return ctx.parent.rule;\n },\n getParentSubRule(id) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n if (ctx) {\n const group = ctx.getParentGroup();\n if (group) {\n return group.rule;\n }\n }\n },\n getChildrenFormData(id, flag) {\n const rules = api.getChildrenRuleList(id);\n return rules.reduce((formData, rule) => {\n if (rule.ignore !== true || flag === true) {\n formData[rule.field] = copy(rule.value);\n }\n return formData;\n }, {});\n },\n setChildrenFormData(id, formData, cover) {\n const rules = api.getChildrenRuleList(id);\n h.deferSyncValue(() => {\n rules.forEach(rule => {\n if (hasProperty(formData, rule.field)) {\n rule.value = formData[rule.field];\n } else if (cover) {\n rule.value = undefined;\n }\n });\n });\n },\n getGlobalEvent(name) {\n let event = api.options.globalEvent[name];\n if (event) {\n if (typeof event === 'object') {\n event = event.handle;\n }\n return parseFn(event);\n }\n return undefined;\n },\n getGlobalData(name) {\n return new Promise((resolve, inject) => {\n let config = api.options.globalData[name];\n if (!config) {\n resolve(h.fc.loadData[name]);\n } else if (config.type === 'fetch') {\n api.fetch(config).then(res => {\n resolve(res);\n }).catch(inject);\n } else {\n resolve(config.data);\n }\n });\n },\n emitGlobalEvent(name, ...args) {\n const fn = api.getGlobalEvent(name);\n if(fn) {\n const data = h.getInjectData({}, undefined);\n data.args = [...args];\n args.unshift(data);\n return fn.apply(null, args);\n }\n },\n setGlobalData(name, value) {\n api.setData('$globalData.' + name, value);\n },\n setGlobalVar(name, value) {\n api.setData('$var.' + name, value);\n },\n renderRule(id, onInput, force) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n return ctx ? h.$render.createRuleVnode(ctx, onInput, force) : undefined;\n },\n renderChildren(id, onInput, force) {\n const flag = typeof id === 'object';\n const ctx = flag ? byCtx(id) : h.getCtx(id);\n return ctx ? h.$render.createChildrenVnodes(ctx, onInput, force) : 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 deferSyncValue(fn, sync) {\n h.deferSyncValue(fn, sync);\n },\n emit(name, ...args) {\n if (h.vm.emitsOptions && !h.vm.emitsOptions[name]) {\n h.vm.emitsOptions[name] = null;\n }\n h.vm.emit(name, ...args);\n },\n bus: h.bus,\n getCurrentFormRule() {\n return h.vm.setupState.getGroupInject()?.rule;\n },\n fetch(opt) {\n return new Promise((resolve, reject) => {\n opt = deepCopy(opt);\n opt = h.loadFetchVar(opt);\n const fail = (e) => {\n invoke(() => opt.onError && opt.onError(e));\n reject(e);\n }\n h.beforeFetch(opt).then(() => {\n return asyncFetch(opt, h.fc.create.fetch, api).then((res) => {\n invoke(() => opt.onSuccess && opt.onSuccess(res));\n resolve(res);\n }).catch((e) => {\n fail(e);\n });\n }).catch(e => {\n fail(e);\n });\n });\n },\n watchFetch(opt, callback, error, beforeFetch) {\n return h.fc.watchLoadData((get, change) => {\n let _opt = deepCopy(opt);\n _opt = h.loadFetchVar(_opt, get);\n if (beforeFetch && beforeFetch(_opt, change) === false) {\n return;\n }\n const fail = (e) => {\n invoke(() => _opt.onError && _opt.onError(e));\n error && error(e);\n }\n h.beforeFetch(_opt).then(() => {\n return asyncFetch(_opt, h.fc.create.fetch, api).then(res => {\n invoke(() => _opt.onSuccess && _opt.onSuccess(res));\n callback && callback(res, change);\n }).catch(e => {\n fail(e);\n });\n }).catch(e => {\n fail(e);\n });\n }, opt.wait == null ? 1000 : opt.wait);\n },\n getData(id, def) {\n if (h.fc.get) {\n return h.fc.get(id, def);\n } else {\n return h.fc.getLoadData(id, def);\n }\n },\n watchData(fn) {\n return h.fc.watchLoadData((get, change) => {\n invoke(() => fn(get, change));\n })\n },\n setData(id, data, isGlobal) {\n return h.fc.setData(id, data, isGlobal);\n },\n refreshData(id) {\n return h.fc.refreshData(id);\n },\n t(id, params) {\n return h.fc.t(id, params);\n },\n getLocale() {\n return h.fc.getLocale();\n },\n helper: {\n tidyFields, props\n }\n };\n\n ['on', 'once', 'off'].forEach(n => {\n api[n] = function (...args) {\n h.bus[`$${n}`](...args);\n }\n });\n\n api.changeValue = api.changeField = api.setValue;\n\n return api;\n}\n","import useCache from './cache';\nimport useRender from './render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy} from '../frame/util';\n\nlet id = 1;\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),\n force: false,\n tmpInput: null,\n id: id++\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 if (ctx.parent) {\n this.clearCache(ctx.parent);\n }\n return;\n }\n if (this.cache[ctx.id].use === true || this.cache[ctx.id].parent) {\n this.$handle.refresh();\n }\n if (this.cache[ctx.id].parent) {\n this.clearCache(this.cache[ctx.id].parent);\n }\n this.cache[ctx.id] = null;\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, {copy} from '@form-create/utils/lib/extend';\nimport mergeProps from '@form-create/utils/lib/mergeprops';\nimport is from '@form-create/utils/lib/type';\nimport {invoke, makeSlotBag, mergeRule} from '../frame/util';\nimport toCase, {lower} from '@form-create/utils/lib/tocase';\nimport {deepSet, toLine} from '@form-create/utils';\nimport {computed, nextTick} from 'vue';\n\nexport default function useRender(Render) {\n extend(Render.prototype, {\n initRender() {\n this.cacheConfig = {};\n },\n getTypeSlot(ctx) {\n const _fn = (vm) => {\n if (vm) {\n let slot = undefined;\n if (ctx.rule.field) {\n slot = vm.slots['field-' + toLine(ctx.rule.field)] || vm.slots['field-' + ctx.rule.field];\n }\n if (!slot) {\n slot = vm.slots['type-' + toLine(ctx.type)] || vm.slots['type-' + ctx.type];\n }\n if (slot) {\n return slot;\n }\n return _fn(vm.setupState.parent);\n }\n }\n return _fn(this.vm);\n },\n render() {\n // console.warn('renderrrrr', this.id);\n if (!this.vm.setupState.isShow) {\n return;\n }\n this.$manager.beforeRender();\n const slotBag = makeSlotBag();\n this.sort.forEach((k) => {\n this.renderSlot(slotBag, this.$handle.ctxs[k]);\n });\n\n return this.$manager.render(slotBag);\n },\n renderSlot(slotBag, ctx, parent) {\n if (this.isFragment(ctx)) {\n ctx.initProp();\n this.mergeGlobal(ctx);\n ctx.initNone();\n const slots = this.renderChildren(ctx.loadChildrenPending(), ctx);\n const def = slots.default;\n def && slotBag.setSlot(ctx.rule.slot, () => def());\n delete slots.default;\n slotBag.mergeBag(slots);\n } else {\n slotBag.setSlot(ctx.rule.slot, this.renderCtx(ctx, parent));\n }\n },\n mergeGlobal(ctx) {\n const g = this.$handle.options.global;\n if (!g) return;\n if (!this.cacheConfig[ctx.trueType]) {\n this.cacheConfig[ctx.trueType] = computed(() => {\n const g = this.$handle.options.global;\n return mergeRule({}, [g['*'] || g.default || {}, g[ctx.originType] || g[ctx.type] || g[ctx.type] || {}]);\n });\n }\n ctx.prop = mergeRule({}, [this.cacheConfig[ctx.trueType].value, ctx.prop]);\n },\n setOptions(ctx) {\n const opt = ctx.loadPending({key: 'options', origin: ctx.prop.options, def: []});\n ctx.prop.options = opt;\n if (ctx.prop.optionsTo && opt) {\n deepSet(ctx.prop, ctx.prop.optionsTo, opt);\n }\n },\n deepSet(ctx) {\n const deep = ctx.prop.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 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 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 try {\n if (ctx.type === 'hidden') return;\n const rule = ctx.rule;\n if (this.force || (!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {\n let vn;\n ctx.initProp();\n this.mergeGlobal(ctx);\n ctx.initNone();\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 = !!(prop.preview != null ? prop.preview : this.$handle.preview);\n prop.props.formCreateInject = this.injectProp(ctx);\n let cacheFlag = prop.cache !== false;\n const preview = prop.preview;\n\n if (prop.hidden) {\n this.setCache(ctx, undefined, parent);\n return;\n }\n vn = (...slotValue) => {\n const inject = {\n rule,\n prop,\n preview,\n api: this.$handle.api,\n model: prop.model || {},\n slotValue\n }\n if (slotValue.length && rule.slotUpdate) {\n invoke(() => rule.slotUpdate(inject))\n }\n let children = {};\n const _load = ctx.loadChildrenPending();\n if (ctx.parser.renderChildren) {\n children = ctx.parser.renderChildren(_load, ctx);\n } else if (ctx.parser.loadChildren !== false) {\n children = this.renderChildren(_load, ctx);\n }\n Object.keys(prop.renderSlots || {}).forEach(key => {\n children[key] = (...args) => {\n if (is.Function(prop.renderSlots[key])) {\n return invoke(() => prop.renderSlots[key](...args));\n }\n const rule = this.parseSide(prop.renderSlots[key], ctx);\n return this.renderRule(rule);\n }\n })\n const slot = this.getTypeSlot(ctx);\n let _vn;\n if (slot) {\n inject.children = children;\n _vn = slot(inject)\n } else {\n _vn = preview ? ctx.parser.preview(copy(children), ctx) : ctx.parser.render(copy(children), ctx);\n }\n _vn = this.renderSides(_vn, ctx);\n if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {\n this.fc.targetFormDriver('updateWrap', ctx)\n _vn = this.$manager.makeWrap(ctx, _vn);\n }\n if (ctx.none) {\n if (Array.isArray(_vn)) {\n _vn = _vn.map(v => {\n if (!v || !v.__v_isVNode) {\n return v;\n }\n return this.none(v);\n });\n } else {\n _vn = this.none(_vn);\n }\n }\n cacheFlag && this.setCache(ctx, () => {\n return this.stable(_vn);\n }, parent);\n return _vn\n };\n this.setCache(ctx, vn, parent);\n }\n return (...args) => {\n const cache = this.getCache(ctx);\n if (cache) {\n return cache(...args);\n } else if (this.cache[ctx.id]) {\n return;\n }\n const _vn = this.renderCtx(ctx, ctx.parent);\n if (_vn) {\n return _vn();\n }\n };\n } catch (e) {\n console.error(e);\n return;\n }\n },\n none(vn) {\n if (vn) {\n vn.props.class = this.mergeClass(vn.props.class, 'fc-none')\n return vn;\n }\n },\n mergeClass(target, value) {\n if (Array.isArray(target)) {\n target.push(value);\n } else {\n return target ? [target, value] : value;\n }\n return target;\n },\n stable(vn) {\n const list = Array.isArray(vn) ? vn : [vn];\n list.forEach(v => {\n if (v && v.__v_isVNode && v.children && typeof v.children === 'object') {\n v.children.$stable = true;\n this.stable(v.children);\n }\n });\n return vn;\n },\n getModelField(ctx) {\n return ctx.prop.modelField || ctx.parser.modelField || this.fc.modelFields[this.vNode.aliasMap[ctx.type]] || this.fc.modelFields[ctx.type] || this.fc.modelFields[ctx.originType] || 'modelValue';\n },\n isFragment(ctx) {\n return ctx.type === 'fragment' || ctx.type === 'template';\n },\n injectProp(ctx) {\n const state = this.vm.setupState;\n if (!state.ctxInject[ctx.id]) {\n state.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 slots: () => {\n return this.vm.setupState.top.slots;\n },\n getWrap: () => {\n return this.vm.refs[ctx.wrapRef];\n },\n options: [],\n children: [],\n preview: false,\n id: ctx.id,\n field: ctx.field,\n rule: ctx.rule,\n input: ctx.input,\n t: (...args) => {\n return this.$handle.api.t(...args);\n },\n updateValue: (data) => {\n this.$handle.onUpdateValue(ctx, data);\n }\n }\n }\n const inject = state.ctxInject[ctx.id];\n extend(inject, {\n preview: ctx.prop.preview,\n options: ctx.prop.options,\n children: ctx.loadChildrenPending()\n });\n return inject;\n },\n ctxProp(ctx) {\n const {ref, key, rule} = ctx;\n this.$manager.mergeProp(ctx);\n ctx.parser.mergeProp(ctx);\n const props = [\n {\n ref: ref,\n key: rule.key || `${key}fc`,\n slot: undefined,\n on: {\n vnodeMounted: (vn) => {\n vn.el.__rule__ = ctx.rule;\n this.onMounted(ctx, vn.el);\n },\n 'fc.updateValue': (data) => {\n this.$handle.onUpdateValue(ctx, data);\n },\n 'fc.el': (el) => {\n ctx.exportEl = el;\n if (el) {\n (el.$el || el).__rule__ = ctx.rule;\n }\n }\n }\n }\n ]\n\n if (ctx.input) {\n const tmpInput = this.tmpInput;\n if (this.vm.props.disabled === true) {\n ctx.prop.props.disabled = true;\n }\n const field = this.getModelField(ctx);\n const model = {\n callback: (value) => {\n tmpInput && tmpInput(ctx.field, value, ctx.rule);\n this.onInput(ctx, value);\n },\n modelField: field,\n value: this.$handle.getFormData(ctx)\n };\n props.push({\n on: {\n [`update:${field}`]: model.callback,\n ...(ctx.prop.modelEmit ? {\n [ctx.prop.modelEmit]: () => this.onEmitInput(ctx)\n } : {}),\n },\n props: {\n [field]: model.value\n }\n })\n ctx.prop.model = model;\n }\n mergeProps(props, ctx.prop);\n return ctx.prop;\n },\n onMounted(ctx, el) {\n ctx.el = this.vm.refs[ctx.ref] || el;\n ctx.parser.mounted(ctx);\n this.$handle.effect(ctx, 'mounted');\n this.$handle.targetHook(ctx, 'mounted');\n },\n onInput(ctx, value) {\n if (ctx.prop.modelEmit) {\n this.$handle.onBaseInput(ctx, value);\n return;\n }\n this.$handle.onInput(ctx, value);\n },\n onEmitInput(ctx) {\n this.$handle.setValue(ctx, ctx.parser.toValue(ctx.modelValue, ctx), ctx.modelValue);\n },\n renderChildren(children, ctx) {\n if (!is.trueArray(children)) return {};\n const slotBag = makeSlotBag()\n children.map(child => {\n if (!child) return;\n if (is.String(child) || is.Number(child)) return slotBag.setSlot(null, `${child}`);\n if (child.__fc__) {\n return this.renderSlot(slotBag, child.__fc__, ctx);\n }\n if (child.type) {\n nextTick(() => {\n this.$handle.loadChildren(children, ctx);\n this.$handle.refresh();\n });\n }\n });\n return slotBag.getSlots();\n },\n defaultRender(ctx, children) {\n const prop = ctx.prop;\n if (prop.component) {\n if (typeof prop.component === 'string') {\n return this.vNode.make(prop.component, prop, children);\n } else {\n return this.vNode.makeComponent(prop.component, prop, children);\n }\n }\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(prop.type), prop, children);\n },\n createChildrenVnodes(ctx, onInput, force) {\n this.force = force !== false;\n this.tmpInput = onInput;\n const res = this.renderChildren(ctx.rule.children, ctx);\n this.force = false;\n this.tmpInput = null;\n return res;\n },\n createRuleVnode(ctx, onInput, force) {\n this.force = force !== false;\n this.tmpInput = onInput;\n const slotBag = makeSlotBag();\n this.renderSlot(slotBag, ctx, ctx.parent);\n this.force = false;\n this.tmpInput = null;\n return slotBag.getSlots();\n },\n renderRule(rule, children, origin) {\n if (!rule) return undefined;\n if (is.String(rule) || is.Number(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\n const slotBag = makeSlotBag();\n if (is.trueArray(rule.children)) {\n rule.children.forEach(v => {\n v && slotBag.setSlot(v?.slot, () => this.renderRule(v));\n });\n }\n const props = {...rule};\n delete props.type;\n delete props.is;\n return this.vNode.make(type, props, slotBag.mergeBag(children).getSlots());\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.bus.$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.bus.$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, invoke, mergeRule} from '../frame/util';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport {markRaw, reactive} from 'vue';\nimport is from '@form-create/utils/lib/type';\nimport toArray from '@form-create/utils/lib/toarray';\n\nfunction bind(ctx) {\n Object.defineProperties(ctx.origin, {\n __fc__: enumerable(markRaw(ctx), true)\n });\n if(ctx.rule !== ctx.origin) {\n Object.defineProperties(ctx.rule, {\n __fc__: enumerable(markRaw(ctx), true)\n });\n }\n}\n\nexport default function RuleContext(handle, rule, defaultValue) {\n const id = unique();\n const isInput = !!rule.field;\n extend(this, {\n id,\n ref: id,\n wrapRef: id + 'fi',\n rule,\n origin: rule.__origin__ || rule,\n name: rule.name,\n pending: {},\n none: false,\n watch: [],\n linkOn: [],\n root: [],\n ctrlRule: [],\n children: [],\n parent: null,\n group: rule.subRule ? this : null,\n cacheConfig: null,\n prop: {...rule},\n computed: {},\n payload: {},\n refRule: {},\n input: isInput,\n el: undefined,\n exportEl: undefined,\n defaultValue: isInput ? deepCopy(defaultValue) : undefined,\n field: rule.field || undefined\n })\n\n this.updateKey();\n bind(this);\n this.update(handle, true);\n}\n\nextend(RuleContext.prototype, {\n getParentGroup() {\n let ctx = this.parent;\n while (ctx) {\n if (ctx.group) {\n return ctx;\n }\n ctx = ctx.parent;\n }\n },\n loadChildrenPending() {\n const children = this.rule.children || [];\n if (Array.isArray(children))\n return children;\n return this.loadPending({\n key: 'children', origin: children, def: [],\n onLoad: (data) => {\n this.$handle && this.$handle.loadChildren(data, this);\n }, onUpdate: (value, oldValue) => {\n if (this.$handle) {\n value === oldValue ? this.$handle.loadChildren(value, this) : this.$handle.updateChildren(this, value, oldValue);\n }\n }, onReload: (value) => {\n if (this.$handle) {\n this.$handle.updateChildren(this, [], value);\n } else {\n delete this.pending.children;\n }\n }\n });\n },\n loadPending(config) {\n const {key, origin, def, onLoad, onReload, onUpdate} = config;\n\n if (this.pending[key] && this.pending[key].origin === origin) {\n return this.getPending(key, def);\n }\n\n delete this.pending[key];\n\n let value = origin;\n if (is.Function(origin)) {\n let source = invoke(() => origin({\n rule: this.rule, api: this.$api, update: (data) => {\n const value = data || def;\n const oldValue = this.getPending(key, def);\n this.setPending(key, origin, value);\n onUpdate && onUpdate(value, oldValue);\n }, reload: () => {\n const oldValue = this.getPending(key, def);\n delete this.pending[key];\n onReload && onReload(oldValue);\n this.$api && this.$api.sync(this.rule);\n }\n }));\n if (source && is.Function(source.then)) {\n source.then((data) => {\n const value = data || def;\n this.setPending(key, origin, value);\n onLoad && onLoad(value);\n this.$api && this.$api.sync(this.rule);\n }).catch(e => {\n console.error(e);\n })\n value = def;\n this.setPending(key, origin, value);\n } else {\n value = source || def;\n this.setPending(key, origin, value);\n onLoad && onLoad(value);\n }\n }\n return value;\n },\n getPending(key, def) {\n return (this.pending[key] && this.pending[key].value) || def;\n },\n setPending(key, origin, value) {\n this.pending[key] = {\n origin,\n value: reactive(value)\n };\n },\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 this.trueType = this.$handle.getType(this.originType);\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 delete rule.validate;\n this.prop = mergeRule({}, [rule, ...Object.keys(this.payload).map(k => this.payload[k]), this.computed]);\n this.prop.validate = [...this.refRule?.__$validate?.value || [], ...this.prop.validate || []]\n },\n initNone() {\n this.none = !(is.Undef(this.prop.display) || !!this.prop.display)\n },\n hasHidden() {\n return (!!this.rule.hidden) || (this.parent ? this.parent.hasHidden() : false);\n },\n injectValidate() {\n return this.prop.validate;\n },\n check(handle) {\n return this.vm === handle.vm\n },\n unwatch() {\n this.watch.forEach(un => un());\n this.watch = [];\n Object.keys(this.refRule).forEach(key => {\n if (key.indexOf('__$') !== 0) {\n delete this.refRule[key];\n }\n })\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 this.unwatch();\n this.unlink();\n this.rmCtrl();\n if (this.parent) {\n this.parent.children.splice(this.parent.children.indexOf(this) >>> 0, 1);\n }\n extend(this, {\n deleted: true,\n computed: {},\n parent: null,\n children: [],\n cacheConfig: null,\n none: false,\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 vNode: handle.$render.vNode,\n updated: false,\n cacheValue: this.rule.value\n });\n !init && this.unwatch();\n this.watchTo();\n this.link();\n this.updateType();\n }\n})\n","import extend from '@form-create/utils/lib/extend';\nimport {byCtx, condition, copyRule, enumerable, getRule, invoke, parseFn, parseJson, toJson} 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 {nextTick} from 'vue';\n\nexport default function useLoader(Handler) {\n extend(Handler.prototype, {\n nextRefresh(fn) {\n const id = this.loadedId;\n 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, 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', '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[(typeof prop === 'object' && prop.event) || `update:${prop}`] = (val) => {\n rule.props[(typeof prop === 'object' && prop.prop) || 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 this.syncForm();\n if (this.pageEnd) {\n this.bus.$emit('load-end');\n }\n this.vm.setupState.renderRule();\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.syncForm();\n this.bus.$emit('load-end');\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 const ctxs = 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__.loadChildrenPending(), _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.fc.targetFormDriver('loadRule', {rule, api: this.api}, this.fc);\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 if (ctx.deleted) {\n if (isCtrl(ctx)) {\n return;\n }\n ctx.update(this);\n } else {\n if (!ctx.check(this)) {\n if (isCtrl(ctx)) {\n return;\n }\n rules[index] = _rule = _rule._clone ? _rule._clone() : parseJson(toJson(_rule));\n ctx = null;\n isCopy = true;\n }\n }\n }\n if (!ctx) {\n const rule = this.parseRule(_rule);\n ctx = new RuleContext(this, rule, defaultValue);\n this.bindParser(ctx);\n } else {\n if (ctx.originType !== ctx.rule.type) {\n ctx.updateType();\n }\n this.bindParser(ctx);\n this.appendValue(ctx.rule);\n if (ctx.parent && ctx.parent !== parent) {\n this.rmSubRuleData(ctx);\n }\n }\n this.parseEmit(ctx);\n this.syncProp(ctx);\n ctx.parent = parent || null;\n ctx.root = rules;\n this.setCtx(ctx);\n\n if (!isCopy && !isInit) {\n this.effect(ctx, 'load');\n this.targetHook(ctx, 'load');\n }\n\n this.effect(ctx, 'created');\n\n const _load = ctx.loadChildrenPending()\n ctx.parser.loadChildren === false || loadChildren(_load, 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 }).filter(v => !!v);\n if (parent) {\n parent.children = ctxs;\n }\n },\n refreshControl(ctx) {\n return ctx.input && ctx.rule.control && this.useCtrl(ctx);\n },\n useCtrl(ctx) {\n const controls = getCtrl(ctx), validate = [], api = this.api;\n if (!controls.length) return false;\n\n for (let i = 0; i < controls.length; i++) {\n const control = controls[i], handleFn = control.handle || function (val) {\n return ((condition[control.condition || '=='] || condition['=='])(val, control.value));\n };\n if (!is.trueArray(control.rule)) continue;\n const data = {\n ...control,\n valid: invoke(() => handleFn(ctx.rule.value, api)),\n ctrl: findCtrl(ctx, control.rule),\n isHidden: is.String(control.rule[0]),\n };\n if ((data.valid && data.ctrl) || (!data.valid && !data.ctrl && !data.isHidden)) continue;\n validate.push(data);\n }\n if (!validate.length) return false;\n\n const hideLst = [];\n let flag = false;\n this.deferSyncValue(() => {\n validate.reverse().forEach(({isHidden, valid, rule, prepend, append, child, ctrl, method}) => {\n if (isHidden) {\n valid ? ctx.ctrlRule.push({\n __ctrl: true,\n children: rule,\n valid\n })\n : (ctrl && ctx.ctrlRule.splice(ctx.ctrlRule.indexOf(ctrl) >>> 0, 1));\n hideLst[valid ? 'push' : 'unshift'](() => {\n if (method === 'disabled' || method === 'enabled') {\n this.api.disabled(!valid, rule);\n } else if (method === 'display' || method === 'show') {\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 if (method === 'if') {\n this.api.hidden(!valid, rule);\n } else {\n this.api.hidden(!valid, rule);\n }\n });\n return;\n }\n if (valid) {\n flag = true;\n const ruleCon = {\n type: 'fragment',\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 if (hideLst.length) {\n if (this.loading) {\n hideLst.length && this.bus.$once('load-end', () => {\n hideLst.forEach(v => v());\n });\n } else {\n hideLst.length && nextTick(() => {\n hideLst.forEach(v => v());\n });\n }\n }\n this.vm.emit('control', ctx.origin, this.api);\n this.effect(ctx, 'control');\n return flag;\n },\n reloadRule(rules) {\n return this._reloadRule(rules);\n },\n _reloadRule(rules) {\n // console.warn('%c reload', 'color:red');\n if (!rules) rules = this.rules;\n\n const ctxs = {...this.ctxs};\n\n this.clearNextTick();\n this.initData(rules);\n this.fc.rules = rules;\n\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.bus.$emit('reloading', this.api);\n });\n\n this.bus.$off('next-tick', this.nextReload);\n this.bus.$once('next-tick', this.nextReload);\n this.bus.$emit('update', this.api);\n },\n //todo 组件生成全部通过 alias\n refresh() {\n this.vm.setupState.refresh();\n },\n });\n}\n\nfunction fullRule(rule) {\n const def = baseRule();\n\n Object.keys(def).forEach(k => {\n if (!hasProperty(rule, k)) rule[k] = def[k];\n });\n return rule;\n}\n\nfunction getCtrl(ctx) {\n const control = ctx.rule.control || [];\n if (is.Object(control)) return [control];\n else return control;\n}\n\nfunction findCtrl(ctx, rule) {\n for (let i = 0; i < ctx.ctrlRule.length; i++) {\n const ctrl = ctx.ctrlRule[i];\n if (ctrl.children === rule)\n return ctrl;\n }\n}\n\nfunction isCtrl(ctx) {\n return !!ctx.rule.__ctrl;\n}\n","import extend from '@form-create/utils/lib/extend';\nimport {$set} from '@form-create/utils/lib/modify';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport {invoke} from '../frame/util';\nimport {nextTick, reactive, toRef} from 'vue';\n\nexport default function useInput(Handler) {\n extend(Handler.prototype, {\n setValue(ctx, value, formValue, setFlag) {\n if (ctx.deleted) return;\n ctx.rule.value = value;\n this.changeStatus = true;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n this.setFormData(ctx, formValue);\n this.syncValue();\n this.valueChange(ctx, value);\n this.vm.emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);\n this.effect(ctx, 'value');\n this.targetHook(ctx, 'value', {value});\n this.emitEvent('change', ctx.field, value, {\n rule: ctx.origin,\n api: this.api,\n setFlag: setFlag || false\n })\n if (setFlag) {\n nextTick(() => {\n nextTick(() => {\n nextTick(() => {\n this.api.clearValidateState(ctx.id);\n });\n });\n });\n }\n this.$manager.fieldChange(ctx, value, formValue, setFlag);\n },\n onInput(ctx, value) {\n let val;\n if (ctx.input && (this.isQuote(ctx, val = ctx.parser.toValue(value, ctx)) || this.isChange(ctx, value))) {\n this.setValue(ctx, val, value);\n }\n },\n onUpdateValue(ctx, data) {\n this.deferSyncValue(() => {\n const group = ctx.getParentGroup();\n const subForm = group ? this.subRuleData[group.id] : null;\n const subData = {};\n Object.keys(data || {}).forEach(k => {\n if (subForm && hasProperty(subForm, k)) {\n subData[k] = data[k];\n } else if (hasProperty(this.api.form, k)) {\n this.api.form[k] = data[k];\n } else if (this.api.top !== this.api && hasProperty(this.api.top.form, k)) {\n this.api.top.form[k] = data[k];\n }\n });\n if (Object.keys(subData).length) {\n this.api.setChildrenFormData(group.rule, subData);\n }\n })\n },\n onBaseInput(ctx, value) {\n this.setFormData(ctx, value);\n ctx.modelValue = value;\n this.nextRefresh();\n this.$render.clearCache(ctx);\n },\n setFormData(ctx, value) {\n ctx.modelValue = value;\n const group = ctx.getParentGroup();\n if (group) {\n if (!this.subRuleData[group.id]) {\n this.subRuleData[group.id] = {};\n }\n this.subRuleData[group.id][ctx.field] = ctx.rule.value;\n }\n $set(this.formData, ctx.id, value);\n },\n rmSubRuleData(ctx) {\n const group = ctx.getParentGroup();\n if (group && this.subRuleData[group.id]) {\n delete this.subRuleData[group.id][ctx.field];\n }\n },\n getFormData(ctx) {\n return this.formData[ctx.id];\n },\n syncForm() {\n const data = reactive({});\n const fields = this.fields();\n const ignoreFields = [];\n if (this.options.appendValue !== false) {\n Object.keys(this.appendData).reduce((initial, field) => {\n if (fields.indexOf(field) === -1) {\n initial[field] = toRef(this.appendData, field);\n }\n return initial;\n }, data);\n }\n fields.reduce((initial, field) => {\n let ctx = (this.fieldCtx[field] || []).filter(ctx => !this.isIgnore(ctx))[0];\n if (!ctx) {\n ctx = this.fieldCtx[field][0];\n ignoreFields.push(field);\n }\n initial[field] = toRef(ctx.rule, 'value');\n return initial;\n }, data);\n this.form = data;\n this.ignoreFields = ignoreFields;\n this.syncValue();\n },\n isIgnore(ctx) {\n return ctx.rule.ignore === true || ((ctx.rule.ignore === 'hidden' || this.options.ignoreHiddenFields) && ctx.hasHidden());\n },\n appendValue(rule) {\n if ((!rule.field || !hasProperty(this.appendData, rule.field)) && (!is.Undef(rule.value) || !this.options.forceCoverValue)) {\n return;\n }\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.syncForm();\n }\n }\n },\n syncValue() {\n if (this.deferSyncFn) {\n return this.deferSyncFn.sync = true;\n }\n const data = {};\n Object.keys(this.form).forEach(k => {\n if (this.ignoreFields.indexOf(k) === -1) {\n data[k] = this.form[k];\n }\n });\n this.vm.setupState.updateValue(data);\n },\n isChange(ctx, value) {\n return JSON.stringify(this.getFormData(ctx), strFn) !== JSON.stringify(value, strFn);\n },\n isQuote(ctx, value) {\n return (value instanceof Function || is.Object(value) || Array.isArray(value)) && value === ctx.rule.value;\n },\n refreshUpdate(ctx, val, origin, field) {\n if (is.Function(ctx.rule.update)) {\n const state = invoke(() => ctx.rule.update(val, ctx.origin, this.api, {\n origin: origin || 'change',\n linkField: field\n }));\n if (state === undefined) return;\n ctx.rule.hidden = state === true;\n }\n },\n valueChange(ctx, val) {\n this.refreshRule(ctx, val);\n this.bus.$emit('change-' + ctx.field, val);\n },\n refreshRule(ctx, val, origin, field) {\n if (this.refreshControl(ctx)) {\n this.$render.clearCacheAll();\n this.loadRule();\n this.bus.$emit('update', this.api);\n this.refresh();\n }\n this.refreshUpdate(ctx, val, origin, field);\n },\n appendLink(ctx) {\n const link = ctx.rule.link;\n is.trueArray(link) && link.forEach(field => {\n const fn = () => this.refreshRule(ctx, ctx.rule.value, 'link', field);\n\n this.bus.$on('change-' + field, fn);\n ctx.linkOn.push(() => this.bus.$off('change-' + field, fn));\n });\n },\n fields() {\n return Object.keys(this.fieldCtx);\n },\n });\n}\n\nfunction strFn(key, val) {\n return typeof val === 'function' ? '' + val : val;\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 if(ctx.$handle.fc.renderDriver && ctx.$handle.fc.renderDriver.defaultRender){\n return ctx.$handle.fc.renderDriver.defaultRender(ctx, children);\n }\n return ctx.$render.defaultRender(ctx, children);\n },\n preview(children, ctx) {\n if(ctx.$handle.fc.renderDriver && ctx.$handle.fc.renderDriver.defaultPreview){\n return ctx.$handle.fc.renderDriver.defaultPreview(ctx, children);\n }\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 {condition, deepGet, invoke, convertFieldToConditions} from '../frame/util';\nimport {computed, nextTick, toRef, watch} from 'vue';\nimport {attrs} from '../frame/attrs';\nimport {deepSet} from '@form-create/utils';\nimport toArray from '@form-create/utils/lib/toarray';\n\nconst noneKey = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'slotUpdate', 'computed', 'component', 'cache'];\nconst oldValueTag = Symbol('oldValue');\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, false, true);\n }\n },\n getParser(ctx) {\n const list = this.fc.parsers;\n const renderDriver = this.fc.renderDriver;\n if (renderDriver) {\n const parsers = renderDriver.parsers || {};\n const parser = parsers[ctx.originType] || parsers[toCase(ctx.type)] || parsers[ctx.trueType];\n if (parser) {\n return parser;\n }\n }\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 all = attrs();\n all.filter(k => k[0] !== '_' && k[0] !== '$' && noneKey.indexOf(k) === -1).forEach((key) => {\n const ref = toRef(ctx.rule, key);\n const flag = key === 'children';\n ctx.refRule[key] = ref;\n ctx.watch.push(watch(flag ? () => is.Function(ref.value) ? ref.value : [...(ref.value || [])] : () => ref.value, (_, o) => {\n let n = ref.value;\n if (this.isBreakWatch()) return;\n if (flag && ctx.parser.loadChildren === false) {\n this.$render.clearCache(ctx);\n this.nextRefresh();\n return;\n }\n this.watching = true;\n nextTick(() => {\n this.targetHook(ctx, 'watch', {key, oldValue: o, newValue: n});\n });\n if (key === 'hidden' && Boolean(n) !== Boolean(o)) {\n this.$render.clearCacheAll();\n nextTick(() => {\n this.targetHook(ctx, 'hidden', {value: n});\n });\n }\n if ((key === 'ignore' && ctx.input) || (key === 'hidden' && (ctx.rule.ignore === 'hidden' || this.options.ignoreHiddenFields))) {\n this.syncForm();\n } else if (key === 'link') {\n ctx.link();\n return;\n } else if (['props', 'on', '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 (key === 'emit') {\n this.parseEmit(ctx);\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 (flag) {\n if (is.Function(o)) {\n o = ctx.getPending('children', []);\n }\n if (is.Function(n)) {\n n = ctx.loadChildrenPending();\n }\n this.updateChildren(ctx, n, o);\n }\n this.$render.clearCache(ctx);\n this.refresh();\n this.watching = false;\n }, {deep: !flag, sync: flag}));\n });\n ctx.refRule['__$title'] = computed(() => {\n let title = (typeof ctx.rule.title === 'object' ? ctx.rule.title.title : ctx.rule.title) || '';\n if (title) {\n const match = title.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n title = this.api.t(match[1]);\n }\n }\n return title;\n });\n ctx.refRule['__$info'] = computed(() => {\n let info = (typeof ctx.rule.info === 'object' ? ctx.rule.info.info : ctx.rule.info) || '';\n if (info) {\n const match = info.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n info = this.api.t(match[1]);\n }\n }\n return info;\n });\n ctx.refRule['__$validate'] = computed(() => {\n const t = (msg) => {\n const match = msg.match(/^\\{\\{\\s*\\$t\\.(.+)\\s*\\}\\}$/);\n if (match) {\n return this.api.t(match[1], {title: ctx.refRule?.__$title?.value});\n }\n return msg;\n }\n return toArray(ctx.rule.validate).map(item => {\n const temp = {...item};\n if (temp.message) {\n temp.message = t(temp.message);\n }\n if (is.Function(temp.validator)) {\n const that = ctx;\n temp.validator = function (...args) {\n return item.validator.call({\n that: this,\n id: that.id,\n field: that.field,\n rule: that.rule,\n api: that.$handle.api,\n }, ...args)\n }\n }\n if (temp.adapter) {\n if (typeof temp.error === 'object') {\n const msg = {...temp.error};\n Object.keys(msg).forEach((key) => {\n msg[key] = t(msg[key]);\n })\n temp.error = msg;\n }\n return this.adapterValidate(temp, ctx);\n }\n return temp;\n });\n });\n if (ctx.input) {\n const val = toRef(ctx.rule, 'value');\n ctx.watch.push(watch(() => val.value, () => {\n let formValue = ctx.parser.toFormValue(val.value, ctx);\n if (this.isChange(ctx, formValue)) {\n this.setValue(ctx, val.value, formValue, true);\n }\n }));\n }\n this.bus.$once('load-end', () => {\n let computedRule = ctx.rule.computed;\n if (!computedRule) {\n return;\n }\n if (typeof computedRule !== 'object') {\n computedRule = {value: computedRule}\n }\n Object.keys(computedRule).forEach(k => {\n const computedValue = computed(() => {\n const item = computedRule[k];\n if (!item) return undefined;\n const value = this.compute(ctx, item);\n if ((item.linkage || item.linkageVariable) && value === oldValueTag) {\n return oldValueTag;\n }\n return value;\n });\n const callback = (n) => {\n if (k === 'value') {\n this.onInput(ctx, n);\n } else if (k[0] === '$') {\n this.api.setEffect(ctx.id, k, n);\n } else {\n deepSet(ctx.rule, k, n);\n }\n };\n if (k === 'value' ? [undefined, null, ''].indexOf(ctx.rule.value) > -1 : computedValue.value !== deepGet(ctx.rule, k)) {\n callback(computedValue.value);\n }\n ctx.watch.push(watch(computedValue, (n) => {\n if(n === oldValueTag) {\n return ;\n }\n setTimeout(() => {\n callback(n);\n });\n }, {deep: true}));\n });\n\n });\n this.watchEffect(ctx);\n },\n adapterValidate(validate, ctx) {\n const validator = (value, callback) => {\n const before = validate.beforeValidate && invoke(() => validate.beforeValidate({\n value,\n api: this.api,\n validate,\n rule: ctx.rule\n }));\n if (before === false) {\n callback();\n } else {\n const key = this.validator(ctx, value, validate);\n if (!key) {\n if (validate.validator) {\n const res = validate.validator && invoke(() => validate.validator(value, callback));\n if (res && is.Function(res.then)) {\n res.then(() => callback()).catch((e) => callback(e));\n }\n } else {\n callback();\n }\n } else {\n let message = '';\n if (typeof validate.error === 'object') {\n message = validate.error[key] || validate.error.default;\n }\n if (!message && typeof validate.message === 'string') {\n message = validate.message;\n }\n if (!message) {\n message = this.getValidateMessage(ctx, {key, rule: validate[key]});\n }\n callback(message);\n }\n }\n }\n return this.$manager.adapterValidate({\n required: validate.required,\n message: validate.message,\n trigger: validate.trigger,\n }, validator);\n },\n getValidateMessage(ctx, invalid) {\n const formatRule = Array.isArray(invalid.rule) ? invalid.rule.join(',') : ('' + invalid.rule);\n return this.api.t(invalid.key === 'required' ? invalid.key : ('validate.' + invalid.key), {\n [invalid.key]: formatRule,\n title: ctx.refRule?.__$title?.value\n });\n },\n validator(ctx, value, validate) {\n const isEmpty = is.empty(value);\n if (isEmpty) {\n if (validate.required) {\n return 'required'\n }\n return;\n }\n for (const [key, rule] of Object.entries(validate)) {\n switch (key) {\n case 'len':\n case 'maxLen':\n case 'minLen':\n const check = (val) => {\n if (key === 'len') {\n return val === rule;\n } else if (key === 'maxLen') {\n return val <= rule;\n } else {\n return val >= rule;\n }\n }\n if (Array.isArray(value)) {\n if (!check(value.length)) {\n return key;\n }\n } else if (typeof value === 'object') {\n return key;\n } else if (!check(('' + value).length)) {\n return key;\n }\n break;\n case 'pattern':\n const reg = typeof rule === 'string' ? new RegExp(rule) : rule;\n if (!reg.test('' + value)) {\n return key;\n }\n break;\n case 'uppercase':\n if (rule && (typeof value !== 'string' || !/^[A-Z]*$/.test(value))) {\n return key;\n }\n break;\n case 'lowercase':\n if (rule && (typeof value !== 'string' || !/^[a-z]*$/.test(value))) {\n return key;\n }\n break;\n case 'min':\n case 'max':\n case 'positive':\n case 'negative':\n case 'integer':\n case 'number':\n const num = Number(value);\n if (Number.isNaN(num)) {\n return key;\n }\n if (key === 'min' && num < rule) {\n return key;\n }\n if (key === 'max' && num > rule) {\n return key;\n }\n if (key === 'positive' && num <= 0) {\n return key;\n }\n if (key === 'negative' && num >= 0) {\n return key;\n }\n if (key === 'integer' && !Number.isInteger(num)) {\n return key;\n }\n break;\n case 'equal':\n if (value !== rule) {\n return key;\n }\n break;\n case 'enum':\n if (Array.isArray(rule) && !rule.includes(value)) {\n return key;\n }\n break;\n case 'hasKeys':\n if (typeof value !== 'object' || Array.isArray(rule) && rule.some(key => !(key in value))) {\n return key;\n }\n break;\n case 'email':\n const regexEmail = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (!regexEmail.test('' + value)) {\n return key;\n }\n break;\n case 'url':\n const regexUrl = new RegExp(\n '^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n 'i'\n );\n if (!regexUrl.test('' + value)) {\n return key;\n }\n break;\n case 'ip':\n const regexIp =\n /^(2(5[0-5]{1}|[0-4]\\d{1})|[0-1]?\\d{1,2})(\\.(2(5[0-5]{1}|[0-4]\\d{1})|[0-1]?\\d{1,2})){3}$/;\n if (!regexIp.test('' + value)) {\n return key;\n }\n break;\n case 'phone':\n const regexPhone = /^(?:(?:\\+|00)86)?1[3-9]\\d{9}$/;\n if (!regexPhone.test('' + value)) {\n return key;\n }\n break;\n case 'computed':\n if (!this.compute(ctx, rule)) {\n return key;\n }\n break;\n default:\n break;\n }\n }\n },\n compute(ctx, item) {\n let fn;\n if (typeof item === 'object') {\n const group = ctx.getParentGroup();\n const checkCondition = (item) => {\n item = Array.isArray(item) ? {mode: 'AND', group: item} : item;\n if (!is.trueArray(item.group)) {\n return true;\n }\n const or = item.mode === 'OR';\n let valid = true;\n for (let i = 0; i < item.group.length; i++) {\n const one = item.group[i];\n let flag;\n let field = null;\n let variableVal = null;\n if (one.variable) {\n variableVal = this.fc.getLoadData(one.variable);\n } else if (one.field) {\n field = convertFieldToConditions(one.field || '');\n } else if (!one.mode) {\n return true;\n }\n let compare = one.compare;\n if (compare) {\n compare = convertFieldToConditions(compare || '');\n }\n if (one.mode) {\n flag = checkCondition(one);\n } else if (!condition[one.condition]) {\n flag = false;\n } else if (is.Function(one.handler)) {\n flag = invoke(() => one.handler(this.api, ctx.rule));\n } else {\n flag = invoke(() => (new Function('$condition', '$variableVal', '$val', '$form', '$scope', '$group', '$rule', `with($form){with($scope){with(this){with($group){ return $condition['${one.condition}'](${one.variable ? '$variableVal' : field}, ${compare ? compare : '$val'}); }}}}`)).call(this.api.form, condition, variableVal, one.value, this.api.top.form, this.api.top === this.api.scope ? {} : this.api.scope.form, group ? (this.subRuleData[group.id] || {}) : {}, ctx.rule));\n }\n if (or && flag) {\n return true;\n }\n if (!or) {\n valid = valid && flag;\n }\n }\n return or ? false : valid;\n }\n let val = checkCondition(item);\n val = item.invert === true ? !val : val;\n if (item.linkage) {\n return val ? invoke(() => this.computeValue(item.linkage, ctx, group), undefined) : oldValueTag;\n } else if(item.linkageVariable) {\n return val ? invoke(() => this.fc.getLoadData(item.linkageVariable), undefined) : oldValueTag;\n }\n return val;\n } else if (is.Function(item)) {\n fn = () => item(this.api.form, this.api, ctx.rule);\n } else {\n const group = ctx.getParentGroup();\n fn = () => this.computeValue(item, ctx, group);\n }\n return invoke(fn, undefined);\n },\n computeValue(str, ctx, group) {\n const that = this;\n const formulas = Object.keys(this.fc.formulas).reduce((obj, k) => {\n obj[k] = function (...args) {\n return that.fc.formulas[k].call({\n that: this,\n rule: ctx.rule,\n api: that.api,\n fc: that.fc\n }, ...args);\n }\n return obj;\n }, {})\n return invoke(() => (new Function('$formulas', '$form', '$scope', '$group', '$rule', '$api', `with($form){with($scope){with(this){with($group){with($formulas){ return ${str} }}}}}`)).call(this.api.form, formulas, this.api.top.form, this.api.top === this.api.scope ? {} : this.api.scope.form, group ? (this.subRuleData[group.id] || {}) : {}, ctx.rule, this.api), undefined);\n },\n updateChildren(ctx, n, o) {\n this.deferSyncValue(() => {\n o && o.forEach((child) => {\n if ((n || []).indexOf(child) === -1 && child && !is.String(child) && child.__fc__ && child.__fc__.parent === ctx) {\n this.rmCtx(child.__fc__);\n }\n });\n if (is.trueArray(n)) {\n this.loadChildren(n, ctx);\n this.bus.$emit('update', this.api);\n }\n });\n },\n rmSub(sub) {\n is.trueArray(sub) && sub.forEach(r => {\n r && r.__fc__ && this.rmCtx(r.__fc__);\n })\n },\n rmCtx(ctx) {\n if (ctx.deleted) return;\n const {id, field, input, name} = ctx;\n\n $del(this.ctxs, id);\n $del(this.formData, id);\n $del(this.subForm, id);\n $del(this.vm.setupState.ctxInject, id);\n const group = ctx.getParentGroup();\n if (group && this.subRuleData[group.id]) {\n $del(this.subRuleData[group.id], field);\n }\n if (ctx.group) {\n $del(this.subRuleData, id);\n }\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 const children = ctx.getPending('children', ctx.rule.children);\n if (is.trueArray(children)) {\n children.forEach(h => h && h.__fc__ && this.rmCtx(h.__fc__));\n }\n }\n if (ctx.root === this.rules) {\n this.vm.setupState.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 this.targetHook(ctx, 'deleted');\n input && !this.fieldCtx[field] && this.vm.emit('remove-field', field, ctx.rule, this.api);\n ctx.rule.__ctrl || this.vm.emit('remove-rule', ctx.rule, this.api);\n return ctx;\n },\n })\n}\n","import Api from '../frame/api';\nimport Render from '../render';\nimport extend from '@form-create/utils/lib/extend';\nimport {funcProxy, invoke} from '../frame/util';\nimport useInject from './inject';\nimport usePage from './page';\nimport useRender from './render';\nimport useLoader from './loader';\nimport useInput from './input';\nimport useContext from './context';\nimport useLifecycle from './lifecycle';\nimport useEffect from './effect';\nimport {reactive} from 'vue';\nimport is from '@form-create/utils/lib/type';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\n\n\nexport default function Handler(fc) {\n funcProxy(this, {\n options() {\n return fc.options.value || {};\n },\n bus() {\n return fc.bus;\n },\n preview() {\n if (fc.vm.props.preview != null) {\n return fc.vm.props.preview;\n } else if (fc.vm.setupState.parent && fc.vm.setupState.parent.props.preview != null) {\n return fc.vm.setupState.parent.props.preview;\n }\n return fc.options.value.preview || false;\n }\n })\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: reactive({}),\n subRuleData: reactive({}),\n subForm: {},\n form: reactive({}),\n appendData: {},\n ignoreFields: [],\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 this.initData(fc.rules);\n\n this.$manager = new fc.manager(this);\n this.$render = new Render(this);\n this.api = fc.extendApiFn.reduce((api, fn) => {\n const extendApi = invoke(() => fn(api, this));\n if (extendApi && extendApi !== api) {\n extend(api, extendApi);\n }\n return api;\n }, Api(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.updateAppendData();\n this.useProvider();\n this.usePage();\n this.loadRule();\n this.$manager.__init();\n this.lifecycle('created');\n },\n updateAppendData() {\n this.appendData = {...deepCopy(this.options.formData || {}), ...(this.fc.vm.props.modelValue || {}), ...this.appendData};\n },\n isBreakWatch() {\n return this.loading || this.noWatchFn || this.reloading;\n },\n globalBeforeFetch(opt) {\n return new Promise((resolve, reject) => {\n const source = this.options.beforeFetch && invoke(() => this.options.beforeFetch(opt, {api: this.api}));\n if (source && is.Function(source.then)) {\n source.then(resolve).catch(reject);\n } else {\n resolve();\n }\n });\n },\n beforeFetch(opt) {\n return new Promise((resolve, reject) => {\n const res = opt && opt.beforeFetch && invoke(() => opt.beforeFetch(opt, {api: this.api}));\n if (res && is.Function(res.then)) {\n res.then(resolve).catch(reject);\n } else if (res === false) {\n reject();\n } else {\n resolve();\n }\n }).then(() => {\n return this.globalBeforeFetch(opt);\n });\n },\n beforeSubmit(formData) {\n return new Promise((resolve, reject) => {\n const res = this.options.beforeSubmit && invoke(() => this.options.beforeSubmit(formData, {api: this.api}));\n if (res && is.Function(res.then)) {\n res.then(resolve).catch(reject);\n } else if (res === false) {\n reject();\n } else {\n resolve();\n }\n });\n }\n})\n\nuseInject(Handler);\nusePage(Handler);\nuseRender(Handler);\nuseLoader(Handler);\nuseInput(Handler);\nuseContext(Handler);\nuseLifecycle(Handler);\nuseEffect(Handler);\n","import extend from '@form-create/utils/lib/extend';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport toLine from '@form-create/utils/lib/toline';\nimport {deepGet, extractVar, invoke, parseFn, parseTemplateToTree} from '../frame/util';\nimport toCase from '@form-create/utils/lib/tocase';\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) {\n let event = {}, rule = ctx.rule, {emitPrefix, field, name, inject} = rule;\n let emit = rule.emit || [];\n if (is.trueArray(emit)) {\n emit.forEach(eventName => {\n if (!eventName) return;\n let eventInject;\n let emitKey = emitPrefix || field || name;\n if (is.Object(eventName)) {\n eventInject = eventName.inject;\n eventName = eventName.name;\n emitKey = eventName.prefix || emitKey;\n }\n if (emitKey) {\n const fieldKey = toLine(`${emitKey}-${eventName}`);\n const fn = (...arg) => {\n if (this.vm.emitsOptions && !this.vm.emitsOptions[fieldKey]) {\n this.vm.emitsOptions[fieldKey] = null;\n }\n this.vm.emit(fieldKey, ...arg);\n this.vm.emit('emit-event', fieldKey, ...arg);\n this.bus.$emit(fieldKey, ...arg);\n };\n fn.__emit = true;\n\n if (!eventInject && inject === false) {\n event[toCase(eventName)] = fn;\n } else {\n let _inject = eventInject || inject || this.options.injectEvent;\n event[toCase(eventName)] = is.Undef(_inject) ? fn : this.inject(rule, fn, _inject);\n }\n }\n\n });\n }\n ctx.computed.on = event;\n return event;\n },\n getInjectData(self, inject) {\n const $api = self.__fc__ && self.__fc__.$api;\n const vm = (self.__fc__ && self.__fc__.$handle.vm) || this.vm;\n const {option, rule} = vm.props;\n return {\n $f: $api || this.api,\n api: $api || 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 loadStrVar(str, get, group) {\n if (str && typeof str === 'string' && str.indexOf('{{') > -1 && str.indexOf('}}') > -1) {\n const tmp = str;\n const vars = extractVar(str);\n\n const getValue = (field) => {\n let flag = false;\n let val;\n if (group && field.indexOf('$form.') === 0) {\n const _split = field.split('.');\n _split.shift();\n if (hasProperty(group.value, _split[0])) {\n flag = true;\n val = get ? get({\n id: '$form.' + _split[0] + '_' + group.rule.__fc__.id,\n getValue: () => {\n return deepGet(group.value, _split);\n }\n }) : deepGet(group.value, _split);\n }\n }\n if (!flag) {\n val = get ? get(field) : this.fc.getLoadData(field)\n }\n return val;\n }\n\n const treeToVal = (tree) => {\n const fields = [];\n tree.forEach(item => {\n if (item.key) {\n fields.push(item.key);\n } else if (item.children) {\n fields.push(treeToVal(item.children));\n }\n })\n let flag = false;\n fields.forEach((field, idx) => {\n if (field != null && (field.indexOf('\\'') === 0 || field.indexOf('\"') === 0)) {\n fields[idx] = field.slice(1, -1)\n flag = true;\n }\n })\n if (fields.length === 1 && (flag || !isNaN(Number(fields[0])))) {\n return fields[0];\n }\n return getValue(fields.join('.'));\n }\n\n let lastVal;\n vars.forEach(v => {\n const split = v.split('||');\n const field = split[0].trim();\n if (field) {\n const def = (split[1] || '').trim();\n const tree = parseTemplateToTree(field);\n let val = invoke(() => treeToVal(tree));\n if ((val == null || val === '') && split.length > 1) {\n val = def;\n }\n lastVal = val;\n str = str.replaceAll(`{{${v}}}`, val == null ? '' : val);\n }\n })\n if (vars.length === 1 && tmp === `{{${vars[0]}}}`) {\n return lastVal;\n }\n }\n return str;\n },\n loadFetchVar(options, get, rule) {\n let group;\n if (rule && rule.__fc__) {\n group = rule.__fc__.getParentGroup();\n }\n const loadVal = str => {\n return this.loadStrVar(str, get, group ? {rule, value: (this.subRuleData[group.id] || {})} : null);\n }\n\n options.action = loadVal(options.action || '');\n\n ['headers', 'data', 'query'].forEach(key => {\n if (options[key]) {\n const data = Array.isArray(options[key]) ? [] : {};\n Object.keys(options[key]).forEach(k => {\n data[loadVal(k)] = loadVal(options[key][k]);\n });\n options[key] = data;\n }\n });\n\n return options;\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.setupState.unique > 0)\n return this.$render.render();\n else {\n this.vm.setupState.unique = 1;\n return [];\n }\n },\n });\n}\n","import extend from '@form-create/utils/lib/extend';\nimport is from '@form-create/utils/lib/type';\nimport {invoke, parseFn} from '../frame/util';\nimport toCase from '@form-create/utils/lib/tocase';\nimport {upper} from '@form-create/utils/lib/toline';\n\n\nexport default function useLifecycle(Handler) {\n extend(Handler.prototype, {\n mounted() {\n const _mounted = () => {\n this.isMounted = true;\n this.lifecycle('mounted');\n }\n if (this.pageEnd) {\n _mounted();\n } else {\n this.bus.$once('page-end', _mounted);\n }\n },\n lifecycle(name) {\n this.fc.targetFormDriver(name, this.api, this.fc);\n this.vm.emit(name, this.api);\n this.emitEvent(name, this.api);\n },\n emitEvent(name, ...args) {\n const _fn = this.options[name] || this.options[toCase('on-' + name)];\n if (_fn) {\n const fn = parseFn(_fn);\n is.Function(fn) && invoke(() => fn(...args));\n }\n this.bus.$emit(name, ...args);\n },\n targetHook(ctx, name, args) {\n let hook = ctx.prop?.hook?.[name];\n\n let run = (on, p) => {\n if (on) {\n on = Array.isArray(on) ? on : [on];\n on.forEach(fn => {\n invoke(() => fn({args: Object.values(args || {}), ...args || {}, self: ctx.rule, rule: ctx.rule, parent: p?.rule, $f: this.api, api: this.api, option: this.vm.props.option}));\n });\n }\n }\n run(hook);\n let deepName = 'deep' + upper(name);\n let parent = ctx.parent;\n while (parent) {\n let deepHook = parent.prop?.hook?.[deepName];\n run(deepHook, parent);\n parent = parent.parent;\n }\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';\nimport {watch} from 'vue';\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, k);\n this.providers[k] = prop;\n });\n },\n onEffect(provider, key) {\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:${key || 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 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(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 || ['fcFragment', 'fragment'].indexOf(type) > -1) return;\n const effect = custom ? custom : (Object.keys(rule).reduce((i, k) => {\n if (k[0] === '$') {\n i[k.substr(1)] = rule[k];\n }\n return i;\n }, {...rule.effect || {}}));\n Object.keys(effect).forEach(attr => {\n const p = this.providers[attr];\n if (!p || (p.input && !input)) return;\n let _type;\n if (!p._c) {\n _type = '*';\n } else if (p._used.indexOf(type) > -1) {\n _type = type;\n } else {\n return;\n }\n const data = {value: effect[attr], getValue: () => this.getEffect(rule, attr), ...(append || {})};\n if (ctx) {\n data.getProp = () => ctx.effectData(attr);\n data.clearProp = () => ctx.clearEffectData(attr);\n data.mergeProp = (prop) => mergeRule(data.getProp(), [prop]);\n data.id = ctx.id;\n }\n this.bus.$emit(`p:${attr}:${_type}:${p.input ? 1 : 0}`, event, [data, rule, this.api]);\n });\n }\n });\n}\n\nfunction unique(arr) {\n return arr.filter(function (item, index, arr) {\n return arr.indexOf(item, 0) === index;\n });\n}\n\nfunction getComponent(p) {\n const c = p.components;\n if (Array.isArray(c)) {\n const arr = unique(c.filter(v => v !== '*'));\n return arr.length ? arr : false;\n } else if (is.String(c)) return [c];\n else return false;\n}\n","import {defineComponent} from 'vue';\n\nconst NAME = 'fcFragment';\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n props: ['vnode'],\n render() {\n return this.vnode;\n }\n})\n","import toLine from '@form-create/utils/lib/toline';\nimport toString from '@form-create/utils/lib/tostring';\nimport extend from '@form-create/utils/lib/extend';\nimport {toProps} from '../frame/util';\nimport {createVNode, getCurrentInstance, resolveComponent, resolveDirective, withDirectives} from 'vue';\n\n\nfunction tidyDirectives(directives) {\n return Object.keys(directives).map(n => {\n const data = directives[n];\n const directive = resolveDirective(n);\n if (!directive) return;\n return [\n directive, data.value, data.arg, data.modifiers\n ]\n }).filter(v => !!v);\n}\n\nfunction makeDirective(data, vn) {\n let directives = data.directives;\n if (!directives) return vn;\n if (!Array.isArray(directives)) {\n directives = [directives];\n }\n return withDirectives(vn, directives.reduce((lst, v) => {\n return lst.concat(tidyDirectives(v));\n }, []))\n}\n\nexport function CreateNodeFactory() {\n\n const aliasMap = {};\n\n function CreateNode(handle) {\n this.vm = handle.vm;\n this.handle = handle;\n }\n\n extend(CreateNode.prototype, {\n make(tag, data, children) {\n return makeDirective(data, this.h(tag, toProps(data), children));\n },\n makeComponent(type, data, children) {\n try {\n return makeDirective(data, createVNode(type, toProps(data), children));\n } catch (e) {\n console.error(e);\n return createVNode('');\n }\n },\n h(tag, data, children) {\n const vm = this.vm || getCurrentInstance();\n const isNativeTag = vm.appContext.config.isNativeTag(tag);\n const component = this.handle.fc.prop.components[tag];\n if (!component && isNativeTag) {\n delete data.formCreateInject;\n }\n try{\n return createVNode(component || (isNativeTag ? tag : resolveComponent(tag)), data, children);\n }catch (e){\n console.error(e);\n return createVNode('');\n }\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 CreateNode.alias(k, v);\n [k, line, lower].forEach(n => {\n CreateNode.prototype[n] = function (data, children) {\n return this.make(aliasMap[k] || n, 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';\nimport {invoke} from '../frame/util';\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 adapterValidate(validate, validator) {\n validate.validator = (rule, value, callback) => {\n return validator(value, callback);\n }\n return validate;\n },\n getSlot(name) {\n const _fn = (vm) => {\n if (vm) {\n let slot = vm.slots[name];\n if (slot) {\n return slot;\n }\n return _fn(vm.setupState.parent);\n }\n return undefined;\n }\n return _fn(this.vm);\n },\n mergeOptions(args, opt) {\n return mergeProps(args.map(v => this.tidyOptions(v)), opt, this.mergeOptionsRule);\n },\n updateOptions(options) {\n this.$handle.fc.targetFormDriver('updateOptions', options, {handle: this.$handle, api: this.$handle.api})\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 fieldChange(ctx, value, formValue, setFlag) {\n },\n render(children) {\n }\n})\n","import {err} from '@form-create/utils/lib/console';\nimport {byCtx, deepGet, invoke, parseFn} from './util';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport deepSet from '@form-create/utils/lib/deepset';\nimport {deepCopy} from '@form-create/utils/lib/deepextend';\nimport toArray from '@form-create/utils/lib/toarray';\nimport debounce from '@form-create/utils/lib/debounce';\nimport {nextTick} from 'vue';\nimport {toPromise} from '@form-create/utils';\n\nconst loadData = function (fc) {\n const loadData = {\n name: 'loadData',\n _fn: [],\n loaded(inject, rule, api) {\n this.deleted(inject);\n nextTick(() => {\n let attrs = toArray(inject.getValue());\n const unwatchs = [];\n attrs.forEach(attr => {\n if (attr && (attr.attr || attr.template)) {\n let fn = (get) => {\n let group;\n if (rule && rule.__fc__) {\n group = rule.__fc__.getParentGroup();\n }\n let value;\n if (attr.template) {\n value = fc.$handle.loadStrVar(attr.template, get, group ? {rule, value: (fc.$handle.subRuleData[group.id] || {})} : null);\n } else if (attr.handler && is.Function(attr.handler)) {\n value = attr.handler(get, rule, api);\n } else {\n value = fc.$handle.loadStrVar(`{{${attr.attr}}}`, get, group ? {rule, value: (fc.$handle.subRuleData[group.id] || {})} : null);\n }\n if ((value == null || value === '') && attr.default != null) {\n value = attr.default;\n }\n if (attr.copy !== false) {\n value = deepCopy(value)\n }\n const _rule = (attr.modify ? rule : inject.getProp());\n if (attr.to === 'child') {\n if (_rule.children) {\n _rule.children[0] = value;\n } else {\n _rule.children = [value];\n }\n } else {\n deepSet(_rule, attr.to || 'options', value);\n }\n api.sync(rule);\n };\n let callback = (get) => fn(get);\n const unwatch = fc.watchLoadData(callback);\n fn = debounce(fn, attr.wait || 300)\n if (attr.watch !== false) {\n unwatchs.push(unwatch);\n } else {\n unwatch();\n }\n }\n })\n this._fn[inject.id] = unwatchs;\n });\n },\n deleted(inject) {\n if (this._fn[inject.id]) {\n this._fn[inject.id].forEach(un => {\n un();\n })\n delete this._fn[inject.id];\n }\n inject.clearProp();\n },\n };\n loadData.watch = loadData.loaded;\n return loadData;\n}\n\nconst t = function (fc) {\n const t = {\n name: 't',\n _fn: [],\n loaded(inject, rule, api) {\n this.deleted(inject);\n let attrs = inject.getValue() || {};\n const unwatchs = [];\n Object.keys(attrs).forEach(key => {\n const attr = attrs[key];\n if (attr) {\n const isObj = typeof attr === 'object';\n let fn = (get) => {\n let value = fc.t(isObj ? attr.attr : attr, isObj ? attr.params : null, get);\n const _rule = ((isObj && attr.modify) ? rule : inject.getProp());\n if (key === 'child') {\n if (_rule.children) {\n _rule.children[0] = value;\n } else {\n _rule.children = [value];\n }\n } else {\n deepSet(_rule, key, value);\n }\n api.sync(rule);\n };\n let callback = (get) => fn(get);\n const unwatch = fc.watchLoadData(callback);\n fn = debounce(fn, attr.wait || 300)\n if (attr.watch !== false) {\n unwatchs.push(unwatch);\n } else {\n unwatch();\n }\n }\n })\n this._fn[inject.id] = unwatchs;\n },\n deleted(inject) {\n if (this._fn[inject.id]) {\n this._fn[inject.id].forEach(un => {\n un();\n })\n delete this._fn[inject.id];\n }\n inject.clearProp();\n },\n };\n t.watch = t.loaded;\n return t;\n}\n\nconst componentValidate = {\n name: 'componentValidate',\n load(attr, rule, api) {\n let options = attr.getValue();\n if (!options || options.method === false) {\n attr.clearProp();\n api.clearValidateState([rule.field]);\n } else {\n if (!is.Object(options)) {\n options = {method: options};\n }\n const method = options.method;\n const validate = {\n ...options,\n validator(...args) {\n const ctx = byCtx(rule);\n if (ctx) {\n return api.exec(ctx.id, is.String(method) ? method : 'formCreateValidate', ...args, {\n attr,\n rule,\n api\n });\n }\n }\n };\n delete validate.method;\n attr.getProp().validate = [validate];\n }\n },\n watch(...args) {\n componentValidate.load(...args);\n }\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 fetchAttr.deleted(inject);\n if (is.Function(option)) {\n option = option(rule, api);\n }\n option = parseOpt(option);\n\n const set = (val) => {\n if (val === undefined) {\n inject.clearProp();\n } else {\n deepSet(inject.getProp(), option.to || 'options', val);\n }\n if (val != null && option && option.key && fc.$handle.options.globalData[option.key]) {\n fc.fetchCache.set(fc.$handle.options.globalData[option.key], {status: true, data: val});\n }\n api.sync(rule);\n }\n\n if (!option || (!option.action && !option.key)) {\n set(undefined);\n return;\n }\n option = deepCopy(option);\n if (!option.to) {\n option.to = 'options';\n }\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 fetchAttr._fn[inject.id] = fc.watchLoadData(debounce((get, change) => {\n if (change && option.watch === false) {\n return fetchAttr._fn[inject.id]();\n }\n if(option.key) {\n fc.targetRule = rule;\n const res = get('$globalData.' + option.key);\n delete fc.targetRule;\n if (res) {\n if (check()) return;\n set(res);\n }\n return ;\n }\n const _option = fc.$handle.loadFetchVar(deepCopy(option), get, rule);\n const config = {\n headers: {},\n ..._option,\n onSuccess(body, flag) {\n if (check()) return;\n let fn = (v) => flag ? v : (hasProperty(v, 'data') ? v.data : v);\n const parse = parseFn(_option.parse);\n if (is.Function(parse)) {\n fn = parse;\n } else if (parse && is.String(parse)) {\n fn = (v) => {\n return deepGet(v, parse);\n }\n }\n toPromise(fn(body, rule, api)).then(res => {\n set(res);\n })\n },\n onError(e) {\n set(undefined);\n if (check()) return;\n (onError || ((e) => err(e.message || 'fetch fail ' + _option.action)))(e, rule, api);\n }\n };\n fc.$handle.beforeFetch(config, {rule, api}).then(() => {\n if (is.Function(_option.action)) {\n toPromise(_option.action(rule, api)).then((val) => {\n config.onSuccess(val, true);\n }).catch((e) => {\n config.onError(e);\n });\n return;\n }\n invoke(() => fc.create.fetch(config, {inject, rule, api}));\n }).catch(e => {});\n }, option.wait || 600));\n }\n\n const fetchAttr = {\n name: 'fetch',\n _fn: [],\n loaded(...args) {\n run(...args);\n },\n watch(...args) {\n run(...args);\n },\n deleted(inject) {\n if (this._fn[inject.id]) {\n this._fn[inject.id]();\n delete this._fn[inject.id];\n }\n inject.clearProp();\n },\n };\n\n return fetchAttr;\n}\n\n\nexport default {\n fetch,\n loadData,\n t,\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 ctx.prop.props.innerHTML = children.default();\n return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);\n },\n renderChildren(children) {\n return {\n default: () => children.filter(v => is.String(v)).join('')\n }\n }\n}\n","import {deepGet} from './util';\n\nfunction getCookie(name) {\n name = name + '=';\n\n const decodedCookie = decodeURIComponent(document.cookie);\n const cookieArray = decodedCookie.split(';');\n\n for (let i = 0; i < cookieArray.length; i++) {\n let cookie = cookieArray[i];\n while (cookie.charAt(0) === ' ') {\n cookie = cookie.substring(1);\n }\n if (cookie.indexOf(name) === 0) {\n cookie = cookie.substring(name.length, cookie.length);\n try {\n return JSON.parse(cookie);\n } catch (e) {\n return cookie;\n }\n }\n }\n return null;\n}\n\nfunction getLocalStorage(name) {\n const value = localStorage.getItem(name);\n if (value) {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n return null;\n}\n\nfunction getSessionStorage(name) {\n const value = sessionStorage.getItem(name);\n if (value) {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n return null;\n}\n\nexport function baseDriver(driver, name) {\n if (!name) {\n return null;\n }\n const split = name.split('.');\n let value = driver(split.shift());\n\n if (!split.length) {\n return value;\n }\n if (value == null) {\n return null;\n }\n return deepGet(value, split);\n}\n\nexport function cookieDriver(name) {\n return baseDriver(getCookie, name);\n}\n\nexport function localStorageDriver(name) {\n return baseDriver(getLocalStorage, name);\n}\n\nexport function sessionStorageDriver(name) {\n return baseDriver(getSessionStorage, name);\n}","export default {\n en: {\n required: '{title} is required',\n validate: {\n url: '{title} is not a valid url',\n email: '{title} is not a valid email',\n ip: '{title} {title} is not a valid ip',\n phone: '{title} {title} is not a valid phone',\n pattern: '{title} does not match pattern {pattern}',\n uppercase: '{title} must be all uppercase',\n lowercase: '{title} must be all lowercased',\n positive: '{title} is not a positive number',\n negative: '{title} is not a negative number',\n equal: '{title} is not equal to {equal}',\n min: '{title} cannot be less than {min}',\n max: '{title} cannot be greater than {max}',\n enum: '{title} must be one of {enum}',\n hasKeys: '{title} does not contain required fields {hasKeys}',\n minLen: '{title} must be at least {minLen}',\n maxLen: '{title} cannot be longer than {maxLen}',\n len: '{title} must be exactly {len}',\n integer: '{title} is not an integer',\n number: '{title} is not an number',\n }\n },\n 'zh-cn': {\n required: '{title}不能为空',\n validate: {\n url: '{title}不是有效的 url 地址',\n email: '{title}不是有效的邮箱地址',\n ip: '{title}不是有效的 IP 地址',\n phone: '{title}不是正确的手机号',\n pattern: '{title}必须匹配 {pattern}',\n uppercase: '{title}必须全大写',\n lowercase: '{title}必须全小写',\n positive: '{title}不是正数',\n negative: '{title}不是负数',\n equal: '{title}必须等于 {equal}',\n min: '{title}必须大于等于 {min}',\n max: '{title}必须小于等于 {max}',\n enum: '{title}必须是 {enum} 之一',\n hasKeys: '{title}必须包含 {hasKeys} 字段',\n minLen: '{title}长度必须大于 {minLen}',\n maxLen: '{title}长度必须小于 {maxLen}',\n len: '{title}长度必须为 {len}',\n integer: '{title}必须为整数',\n number: '{title}必须为数字',\n },\n }\n}","import $FormCreate from '../components/formCreate';\nimport {computed, createApp, h, nextTick, reactive, ref, watch} from 'vue';\nimport makerFactory from '../factory/maker';\nimport Handle from '../handler';\nimport fetch from './fetch';\nimport {creatorFactory, mergeRule} from '..';\nimport BaseParser from '../factory/parser';\nimport {copyRule, copyRules, deepGet, invoke, mergeGlobal, parseFn, parseJson, setPrototypeOf, toJson} from './util';\nimport fragment from '../components/fragment';\nimport is, {hasProperty} from '@form-create/utils/lib/type';\nimport toCase from '@form-create/utils/lib/tocase';\nimport extend, {copy} 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 Mitt from '@form-create/utils/lib/mitt';\nimport html from '../parser/html';\nimport uniqueId from '@form-create/utils/lib/unique';\nimport {cookieDriver, localStorageDriver, sessionStorageDriver} from './dataDriver';\nimport debounce from '@form-create/utils/lib/debounce';\nimport {deepSet} from '@form-create/utils';\nimport baseLanguage from './language';\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 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 = {};\nconst defValueTag = Symbol('defValue');\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 modelFields = {};\n const drivers = {};\n const useApps = [];\n const listener = [];\n const extendApiFn = [\n config.extendApi\n ];\n const providers = {\n ...$provider\n };\n const maker = makerFactory();\n let globalConfig = {global: {}};\n const isMobile = config.isMobile === true;\n const loadData = reactive({\n $mobile: isMobile,\n });\n const CreateNode = CreateNodeFactory();\n const formulas = {};\n const prototype = {};\n\n exportAttrs(config.attrs || {});\n\n function getApi(name) {\n const val = instance[name];\n if (Array.isArray(val)) {\n return val.map(v => {\n return v.api();\n });\n } else if (val) {\n return val.api();\n }\n }\n\n function useApp(fn) {\n useApps.push(fn);\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] = is.Function(data.prop) ? data.prop : {\n ...data.prop,\n name: data.id\n };\n }\n\n function componentAlias(alias) {\n CreateNode.use(alias);\n }\n\n function parser(key) {\n if (arguments.length === 0) {\n return BaseParser;\n } else if (typeof key === 'string' && arguments.length === 1) {\n return parsers[toCase(key)];\n }\n const data = nameProp(...arguments);\n if (!data.id || !data.prop) return BaseParser;\n const name = toCase(data.id);\n const parser = data.prop;\n const base = parser.merge === true ? parsers[name] : undefined;\n parsers[name] = setPrototypeOf(parser, base || BaseParser);\n maker[name] = creatorFactory(name);\n parser.maker && extend(maker, parser.maker);\n }\n\n function component(id, component) {\n let name;\n if (is.String(id)) {\n name = id;\n if (component === undefined) {\n return components[name];\n }\n } else {\n name = id.displayName || id.name;\n component = id;\n }\n if (!name || !component) return;\n const nameAlias = toCase(name);\n components[name] = component;\n components[nameAlias] = component;\n delete CreateNode.aliasMap[name];\n delete CreateNode.aliasMap[nameAlias];\n delete parsers[name];\n delete parsers[nameAlias];\n if (component.formCreateParser) parser(name, component.formCreateParser);\n }\n\n function $form() {\n return $FormCreate(FormCreate, components, directives);\n }\n\n function createFormApp(rule, option) {\n const Type = $form();\n return createApp({\n data() {\n return reactive({\n rule, option\n });\n },\n render() {\n return h(Type, {ref: 'fc', ...this.$data});\n }\n });\n }\n\n function $vnode() {\n return 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, option) {\n let app = createFormApp(rules, option || {});\n useApps.forEach(v => {\n invoke(() => v(create, app));\n })\n const div = document.createElement('div');\n (option?.el || document.body).appendChild(div);\n const vm = app.mount(div);\n return vm.$refs.fc.fapi;\n }\n\n setPrototypeOf(create, prototype);\n\n function factory(inherit) {\n let _config = {...config};\n if (inherit) {\n _config.inherit = {\n components,\n parsers,\n directives,\n modelFields,\n providers,\n useApps,\n maker,\n formulas,\n loadData\n }\n } else {\n delete _config.inherit;\n }\n return FormCreateFactory(_config);\n }\n\n function setModelField(name, field) {\n modelFields[name] = field;\n }\n\n function setFormula(name, fn) {\n formulas[name] = fn;\n }\n\n function setDriver(name, driver) {\n const parent = drivers[name] || {};\n const parsers = parent.parsers || {};\n if (driver.parsers) {\n Object.keys(driver.parsers).forEach(k => {\n parsers[k] = setPrototypeOf(driver.parsers[k], BaseParser);\n });\n }\n driver.name = name;\n drivers[name] = {...parent, ...driver, parsers};\n }\n\n function refreshData(id) {\n if (id) {\n Object.keys(instance).forEach(v => {\n const apis = Array.isArray(instance[v]) ? instance[v] : [instance[v]];\n apis.forEach(that => {\n that.bus.$emit('$loadData.' + id);\n })\n })\n }\n }\n\n function setData(id, data) {\n deepSet(loadData, id, data);\n refreshData(id);\n }\n\n function setDataDriver(id, data) {\n const callback = (...args) => {\n return invoke(() => data(...args));\n }\n callback._driver = true;\n setData(id, callback);\n }\n\n function getData(id, def) {\n const split = (id || '').split('.');\n id = split.shift();\n const field = split.join('.');\n if (!hasProperty(loadData, id)) {\n loadData[id] = defValueTag;\n }\n if (loadData[id] !== defValueTag) {\n let val = loadData[id];\n if (val && val._driver) {\n val = val(field);\n } else if (split.length) {\n val = deepGet(val, split);\n }\n return (val == null || val === '') ? def : val;\n } else {\n return def;\n }\n }\n\n function extendApi(fn) {\n extendApiFn.push(fn);\n }\n\n function removeData(id) {\n delete loadData[id];\n refreshData(id);\n }\n\n function on(name, callback) {\n listener.push({name, callback});\n }\n\n function FormCreate(vm) {\n extend(this, {\n id: id++,\n create,\n vm,\n manager: createManager(config.manager),\n parsers,\n providers,\n modelFields,\n formulas,\n isMobile,\n rules: vm.props.rule,\n name: vm.props.name || uniqueId(),\n inFor: vm.props.inFor,\n prop: {\n components,\n directives,\n },\n get: null,\n drivers,\n renderDriver: null,\n refreshData,\n loadData,\n CreateNode,\n bus: new Mitt(),\n unwatch: [],\n options: ref({}),\n extendApiFn,\n fetchCache: new WeakMap(),\n tmpData: reactive({}),\n })\n listener.forEach(item => {\n this.bus.$on(item.name, item.callback);\n });\n nextTick(() => {\n watch(this.options, () => {\n this.$handle.$manager.updateOptions(this.options.value);\n this.api().refresh();\n }, {deep: true})\n });\n extend(vm.appContext.components, components);\n extend(vm.appContext.directives, directives);\n this.$handle = new Handle(this)\n if (this.name) {\n if (this.inFor) {\n if (!instance[this.name]) instance[this.name] = [];\n instance[this.name].push(this);\n } else {\n instance[this.name] = this;\n }\n }\n }\n\n FormCreate.isMobile = isMobile;\n\n extend(FormCreate.prototype, {\n init() {\n if (this.isSub()) {\n this.unwatch.push(watch(() => this.vm.setupState.parent.setupState.fc.options.value, () => {\n this.initOptions();\n this.$handle.api.refresh();\n }, {deep: true, flush: 'sync'}));\n }\n if (this.vm.props.driver) {\n this.renderDriver = typeof this.vm.props.driver === 'object' ? this.vm.props.driver : this.drivers[this.vm.props.driver];\n }\n if (!this.renderDriver && this.vm.setupState.parent) {\n this.renderDriver = this.vm.setupState.parent.setupState.fc.renderDriver;\n }\n if (!this.renderDriver) {\n this.renderDriver = this.drivers.default;\n }\n this.initOptions();\n this.$handle.init();\n },\n targetFormDriver(method, ...args) {\n this.bus.$emit(method, ...args);\n if (this.renderDriver && this.renderDriver[method]) {\n return invoke(() => this.renderDriver[method](...args));\n }\n },\n t(id, params, get) {\n let value = get ? get('$t.' + id) : this.globalLanguageDriver(id);\n if (value == null) {\n value = '';\n }\n if (value && params) {\n Object.keys(params).forEach(param => {\n const regex = new RegExp(`{${param}}`, 'g');\n value = value.replace(regex, params[param]);\n });\n }\n return value;\n },\n globalDataDriver(id) {\n let split = id.split('.');\n const key = split.shift();\n const option = this.options.value.globalData && this.options.value.globalData[key];\n if (option) {\n if (option.type === 'static') {\n return deepGet(option.data, split);\n } else {\n let val;\n const res = this.fetchCache.get(option);\n if (res) {\n if (res.status) {\n val = deepGet(res.data, split);\n }\n if (!res.loading) {\n return val;\n }\n res.loading = false;\n this.fetchCache.set(option, res);\n } else {\n this.fetchCache.set(option, {status: false});\n }\n const reload = debounce(() => {\n unwatch();\n const res = this.fetchCache.get(option);\n if ((this.options.value.globalData && Object.values(this.options.value.globalData).indexOf(option) !== -1)) {\n if (res) {\n res.loading = true;\n this.fetchCache.set(option, res);\n }\n this.bus.$emit('$loadData.$globalData.' + key);\n } else {\n this.fetchCache.delete(option);\n }\n }, option.wait || 600)\n\n const _emit = (data) => {\n this.fetchCache.set(option, {status: true, data});\n this.bus.$emit('$loadData.$globalData.' + key);\n };\n\n const callback = (get, change) => {\n if (change && option.watch === false) {\n return unwatch();\n }\n if (change) {\n reload();\n return;\n }\n const options = this.$handle.loadFetchVar(copy(option), get);\n options.targetRule = this.targetRule;\n this.$handle.api.fetch(options).then(res => {\n _emit(res);\n }).catch(e => {\n _emit(null);\n });\n };\n const unwatch = this.watchLoadData(callback);\n if(option.watch === false) {\n unwatch();\n }\n this.unwatch.push(unwatch);\n return val;\n }\n }\n },\n getLocale() {\n let locale = this.vm.setupState.top.props.locale;\n if (locale && typeof locale === 'object') {\n return locale.name;\n }\n if (typeof locale === 'string') {\n return locale;\n }\n return 'zh-cn';\n },\n globalLanguageDriver(id) {\n let t = this.vm.setupState.top.props.t;\n let locale = this.vm.setupState.top.props.locale;\n let value = undefined;\n if (t) {\n value = invoke(() => t(id));\n }\n if (value == null && locale && typeof locale === 'object') {\n value = deepGet(locale, id);\n }\n if (value == null) {\n const language = this.options.value.language || {};\n const locale = this.getLocale();\n value = deepGet(language[locale] || {}, id);\n if (value == null) {\n value = deepGet(baseLanguage[locale] || {}, id);\n }\n }\n return value;\n },\n globalVarDriver(id) {\n let split = id.split('.');\n const key = split.shift();\n const option = this.options.value.globalVariable && this.options.value.globalVariable[key];\n if (option) {\n const handle = is.Function(option) ? option : parseFn(option.handle);\n if (handle) {\n let val = handle((...args) => this.$handle.api.getData(...args), this.$handle.api);\n return deepGet(val, split);\n }\n }\n },\n setData(id, data, isGlobal) {\n if (!isGlobal) {\n deepSet(this.vm.setupState.top.setupState.fc.tmpData, id, data);\n this.bus.$emit('$loadData.' + id);\n } else {\n setData(id, data);\n }\n },\n getLoadData(id, def) {\n let val = null;\n if (id != null) {\n let split = id.split('.');\n const key = split.shift();\n val = deepGet(this.vm.setupState.top.setupState.fc.tmpData, id);\n if (val != null) {\n return val;\n } else if (key === '$topForm') {\n val = this.$handle.api.top.formData(true);\n } else if (key === '$scopeForm') {\n val = this.$handle.api.scope.formData(true);\n } else if (key === '$form') {\n val = this.$handle.api.formData(true);\n } else if (key === '$options') {\n val = this.options.value;\n } else if (key === '$globalData') {\n val = this.globalDataDriver(split.join('.'));\n split = [];\n } else if (key === '$var') {\n val = this.globalVarDriver(split.join('.'));\n split = [];\n } else if (key === '$locale') {\n val = this.getLocale();\n split = [];\n } else if (key === '$t') {\n val = this.globalLanguageDriver(split.join('.'));\n split = [];\n } else if (key === '$preview') {\n return this.$handle.preview;\n } else {\n val = getData(id);\n split = [];\n }\n if (val && split.length) {\n val = deepGet(val, split);\n }\n }\n return (val == null || val === '') ? def : val;\n },\n watchLoadData(fn, wait) {\n let unwatch = {};\n\n const run = (flag) => {\n if (!this.get) {\n this.get = get;\n }\n invoke(() => {\n fn(get, flag);\n });\n if (this.get === get) {\n this.get = undefined;\n }\n };\n\n const get = (id, def) => {\n let getValue;\n if (typeof id === 'object') {\n getValue = id.getValue;\n id = id.id;\n }\n if (unwatch[id]) {\n return unwatch[id].val;\n }\n const data = computed(() => {\n return getValue ? getValue() : this.getLoadData(id, def);\n })\n const split = id.split('.');\n const key = split.shift();\n const key2 = split.shift() || '';\n const callback = debounce(() => {\n const temp = getValue ? getValue() : this.getLoadData(id, def);\n if (!unwatch[id]) {\n return;\n } else if (((temp instanceof Function || is.Object(temp) || Array.isArray(temp)) && temp === unwatch[id].val) || JSON.stringify(temp) !== JSON.stringify(unwatch[id].val)) {\n unwatch[id].val = temp;\n run(true);\n }\n }, wait || 0);\n const un = watch(data, (n) => {\n callback();\n });\n this.bus.$on('$loadData.' + key, callback);\n if (key2) {\n this.bus.$on('$loadData.' + key + '.' + key2, callback);\n }\n unwatch[id] = {\n fn: (() => {\n this.bus.$off('$loadData.' + key, callback);\n if (key2) {\n this.bus.$off('$loadData.' + key + '.' + key2, callback);\n }\n un();\n }),\n val: data.value,\n }\n return data.value;\n }\n run(false);\n const un = () => {\n Object.keys(unwatch).forEach(k => unwatch[k].fn());\n unwatch = {};\n }\n this.unwatch.push(un);\n return un;\n },\n isSub() {\n return this.vm.setupState.parent && this.vm.props.extendOption;\n },\n initOptions() {\n this.options.value = {};\n let options = {\n formData: {},\n submitBtn: {},\n resetBtn: {},\n globalEvent: {},\n globalData: {}, ...deepCopy(globalConfig)\n };\n const isSubForm = this.isSub();\n if (isSubForm) {\n options = this.mergeOptions(options, this.vm.setupState.parent.setupState.fc.options.value || {}, true);\n }\n options = this.mergeOptions(options, this.vm.props.option);\n const api = this.api();\n this.targetFormDriver('initOptions', options, {api, isSubForm});\n this.updateOptions(options);\n },\n mergeOptions(target, opt, parent) {\n opt = {...opt || {}};\n parent && ['page', 'onSubmit', 'onReset', 'onCreated', 'onChange', 'onMounted', 'mounted', 'onReload', 'reload', 'formData', 'el', 'globalClass', 'style'].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.options.value = this.mergeOptions(this.options.value, options);\n this.$handle.$manager.updateOptions(this.options.value);\n this.bus.$emit('$loadData.$options');\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 unmount() {\n if (this.name) {\n if (this.inFor) {\n const idx = instance[this.name].indexOf(this);\n instance[this.name].splice(idx, 1);\n } else {\n delete instance[this.name];\n }\n }\n listener.forEach(item => {\n this.bus.$off(item.name, item.callback);\n });\n this.tmpData = {};\n this.unwatch.forEach(fn => fn());\n this.unwatch = [];\n this.$handle.reloadRule([]);\n },\n updated() {\n this.$handle.bindNextTick(() => this.bus.$emit('next-tick', this.$handle.api));\n }\n })\n\n\n function useAttr(formCreate) {\n extend(formCreate, {\n version: config.version,\n ui: config.ui,\n isMobile,\n extendApi,\n getData,\n setDataDriver,\n setData,\n removeData,\n refreshData,\n maker,\n component,\n directive,\n setModelField,\n setFormula,\n setDriver,\n register,\n $vnode,\n parser,\n use,\n factory,\n componentAlias,\n copyRule,\n copyRules,\n mergeRule,\n fetch,\n $form,\n parseFn,\n parseJson,\n toJson,\n useApp,\n getApi,\n on,\n });\n }\n\n function useStatic(formCreate) {\n extend(formCreate, {\n create,\n install(app, options) {\n globalConfig = {...globalConfig, ...(options || {})}\n const key = `_installedFormCreate${isMobile ? 'Mobile' : ''}_${config.ui}`;\n if (app[key] === true) return;\n app[key] = true;\n\n const $formCreate = function (rules, opt = {}) {\n return create(rules, opt, this);\n };\n\n useAttr($formCreate);\n\n app.config.globalProperties.$formCreate = $formCreate;\n const $component = $form();\n app.component($component.name, $component);\n useApps.forEach(v => {\n invoke(() => v(formCreate, app));\n })\n }\n })\n }\n\n useAttr(prototype);\n useStatic(prototype);\n\n setDataDriver('$cookie', cookieDriver);\n setDataDriver('$localStorage', localStorageDriver);\n setDataDriver('$sessionStorage', sessionStorageDriver);\n\n CreateNode.use({fragment: 'fcFragment'});\n\n config.install && create.use(config);\n\n useApp((_, app) => {\n app.mixin({\n props: ['formCreateInject'],\n })\n })\n\n parser(html);\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.modelFields && extend(modelFields, inherit.modelFields);\n inherit.providers && extend(providers, inherit.providers);\n inherit.useApps && extend(useApps, inherit.useApps);\n inherit.maker && extend(maker, inherit.maker);\n inherit.loadData && extend(loadData, inherit.loadData);\n inherit.formulas && extend(formulas, inherit.formulas);\n }\n\n const FcComponent = $form();\n setPrototypeOf(FcComponent, prototype);\n Object.defineProperties(FcComponent, {\n fetch: {\n get() {\n return prototype.fetch;\n },\n set(val) {\n prototype.fetch = val;\n }\n }\n })\n\n FcComponent.util = prototype;\n\n return FcComponent;\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","\nexport function $set(target, field, value) {\n target[field] = value;\n}\n\nexport function $del(target, field) {\n 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","export function format(type, msg, rule) {\n return (`[form-create ${type}]: ${msg}` + (rule ? ('\\n\\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule)) : ''))\n}\n\nexport function tip(msg, rule) {\n console.warn(format('tip', msg, rule));\n}\n\nexport function err(msg, rule) {\n console.error(format('err', msg, rule));\n}\n\nexport function logError(e) {\n err(e.toString());\n console.error(e);\n}\n","import deepExtend from './deepextend';\nimport {err} from './console';\nimport is from './type';\n\nconst PREFIX = '[[FORM-CREATE-PREFIX-';\nconst SUFFIX = '-FORM-CREATE-SUFFIX]]';\n\nexport function toJson(obj, space) {\n return JSON.stringify(deepExtend(Array.isArray(obj) ? [] : {}, obj, true), function (key, val) {\n if (val && val._isVue === true)\n return undefined;\n\n if (typeof val !== 'function') {\n return val;\n }\n if (val.__json) {\n return val.__json;\n }\n if (val.__origin)\n val = val.__origin;\n\n if (val.__emit)\n return undefined;\n return PREFIX + val + SUFFIX;\n }, space);\n}\n\nfunction makeFn(fn) {\n return (new Function('return ' + fn))();\n}\n\nexport function parseFn(fn, mode) {\n if (fn && is.String(fn) && fn.length > 4) {\n let v = fn.trim();\n let flag = false;\n try {\n if (v.indexOf(SUFFIX) > 0 && v.indexOf(PREFIX) === 0) {\n v = v.replace(SUFFIX, '').replace(PREFIX, '');\n flag = true;\n } else if (v.indexOf('$FN:') === 0) {\n v = v.substring(4);\n flag = true;\n } else if (v.indexOf('$EXEC:') === 0) {\n v = v.substring(6);\n flag = true;\n } else if (v.indexOf('$GLOBAL:') === 0) {\n const name = v.substring(8);\n v = function (...args) {\n const callback = args[0].api.getGlobalEvent(name);\n if (callback) {\n return callback.call(this, ...args);\n }\n return undefined;\n }\n v.__json = fn;\n v.__inject = true;\n return v;\n } else if (v.indexOf('$FNX:') === 0) {\n v = makeFn('function($inject){\\n' + v.substring(5) + '\\n}');\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 } else if (!mode && v.indexOf('function(') === 0 && v !== 'function(') {\n flag = true;\n }\n if (!flag) return fn;\n let val;\n try{\n val = makeFn(v);\n }catch (e){\n val = makeFn('function ' + v);\n }\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","let id = 0;\n\nexport default function uniqueId() {\n const num = 370 + (++id);\n return 'F' + Math.random().toString(36).substr(3, 3) + Number(`${Date.now()}`).toString(36) + num.toString(36) + 'c';\n}\n","export default function debounce(fn, wait) {\n var timeout = null;\n return function (...arg) {\n if (timeout !== null)\n clearTimeout(timeout);\n timeout = setTimeout(() => fn.call(this, ...arg), wait);\n }\n}\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","export default function getSlot(slots, exclude) {\n return Object.keys(slots).reduce((lst, name) => {\n if (!exclude || exclude.indexOf(name) === -1) {\n lst[name] = slots[name]\n }\n return lst;\n }, {})\n}","export default function toArray(value) {\n return Array.isArray(value)\n ? value\n : ([null, undefined, ''].indexOf(value) > -1 ? [] : [value]);\n}\n","import is from './type';\n\nexport default function toDate(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","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\nexport function upper(str) {\n return str.replace(str[0], str[0].toLocaleUpperCase());\n}","function isPromise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\n\nexport default function toPromise(value) {\n if (isPromise(value)) {\n return value;\n }\n return Promise.resolve(value);\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"],"names":["Calendar","defineComponent","name","inheritAttrs","props","placeholder","String","formCreateInject","Object","disabled","Boolean","clearable","type","modelValue","Array","minDate","Date","maxDate","emits","setup","_","show","ref","toRef","inputValue","value","watch","n","formatter","date","dayjs","format","toDate","str","defaultDate","computed","isArray","map","dateRange","undefined","formatValue","onInput","emit","strValue","range","length","join","multiple","t","open","confirm","getStrValue","hasProperty","clear","e","stopPropagation","render","h","class","this","readonly","$props","onClick","model-value","isLink","border","v-slots","right-icon","clearIcon","is","empty","_extends","$attrs","onUpdate:show","v","onConfirm","mounted","$emit","$refs","el","normalizeOptions","options","item","normalized","label","text","children","Cascader","fieldNames","Number","_fieldNames$value","findOptions","path","i","find","updateInputValue","option","deep","val","selectedOptions","round","position","onClose","onFinish","Checkbox$1","direction","onUpdateModelValue","opt","tmp","shape","Select","columnsFieldNames","selectedValues","columns","onCancel","parseFile","file","url","is_string","getFileName","uid","parseUpload","split","pop","Uploader","afterRead","Function","action","headers","method","data","uploadName","onSuccess","onError","maxCount","fileList","toArray","uploadValue","files","filter","onDelete","uploadFile","status","api","fetch","dataType","source","then","res","catch","message","onUpdate:model-value","$slots","Radio$1","DatePicker","formValue","columnsType","TimePicker","Group","field","rule","expand","button","default","max","min","defaultValue","sortBtn","title","onBeforeRemove","onBeforeAdd","parse","len","cacheRule","cacheValue","sort","form","markRaw","$form","handler","o","keys","forEach","$f","formData","deferSyncValue","deepExtend","setValue","once","deepCopy","d","expandRule","total","addRule","removeRule","methods","_value","cache","k","JSON","stringify","input","key","[object Object]","coverValue","copyRules","submitBtn","resetBtn","defVal","extend","index","nextTick","add$f","indexOf","add","push","del","splice","toPromise","addIcon","delIcon","sortUpIcon","changeSort","sortDownIcon","a","subForm","sortIcon","canMoveUp","canMoveDown","makeIcon","vm","btn","getTitle","replace","created","Type","isCardType","onUpdate:modelValue","onUpdate:api","inFor","extendOption","script","viewBox","xmlns","_openBlock","openBlock","_createElementBlock","_hoisted_1","_cache","_createElementVNode","fill","components","IconWarning","Checkbox","Radio","parsers","maker","hidden","creatorFactory","ctx","vNode","col","span","row","prop","mergeProp","alias","PRE","icon","slider","stepper","inputNumber","rate","uploader","upload","cell","timePicker","datePicker","switch","select","cascader","calendar","checkbox","radio","textarea","formItem","group","array","object","noop","assign","inBrowser","window","isObject","isDef","isFunction","isPromise","isDate","prototype","toString","call","isNaN","getTime","isMobile","test","isNumeric","get","result","_a","pick","obj","ignoreUndefined","reduce","ret","isSameValue","newValue","oldValue","numericProp","truthProp","makeRequiredProp","required","makeArrayProp","makeNumberProp","defaultVal","makeNumericProp","makeStringProp","raf","fn","requestAnimationFrame","cancelRaf","id","cancelAnimationFrame","doubleRaf","makeDOMRect","width2","height2","top","left","right","bottom","width","height","useRect","elementOrRef","element","unref","innerWidth","innerHeight","getBoundingClientRect","useParent","parent","inject","instance","getCurrentInstance","link","unlink","internalChildren","onUnmounted","ref2","findVNodeIndex","vnodes","vnode","findIndex","sortChildren","publicChildren","traverse","children2","child","isVNode","component","subTree","flattenVNodes","b","orderedPublicChildren","proxy","useChildren","reactive","getCurrentInstance2","linkChildren","provide","useCountDown","rafId","endTime","counting","deactivated","remain","ref3","time","current","computed2","parseTime","days","Math","floor","hours","minutes","seconds","milliseconds","pause","getCurrentRemain","now","setRemain","_b","onChange","microTick","macroTick","remainRemain","time1","time2","tick","millisecond","onBeforeUnmount","onActivated","onDeactivated","start","reset","totalTime","onMountedOrActivated","hook","onMounted","onActivated2","useEventListener","listener","target","passive","capture","attached","cleaned","target2","unref2","addEventListener","remove","removeEventListener","stopWatch","onUnmounted2","onDeactivated2","isRef","oldVal","useClickAway","eventName","event","every","unref3","contains","document","visibility","overflowScrollReg","defaultRoot","isElement","node","tagName","nodeType","getScrollParent","root","overflowY","getComputedStyle","parentNode","useScrollParent","scrollParent","ref5","onMounted2","CUSTOM_FIELD_INJECTION_KEY","Symbol","useCustomFieldValue","customValue","inject2","watch2","resetValidation","validateWithTrigger","getScrollTop","scrollTop","pageYOffset","setScrollTop","scrollTo","scrollX","getRootScrollTop","documentElement","body","setRootScrollTop","getElementTop","scroller","isIOS","navigator","userAgent","toLowerCase","resetScroll","preventDefault","isStopPropagation","cancelable","isHidden","elementRef","style","display","parentHidden","offsetParent","windowWidth","windowHeight","ref4","update","useWindowSize","isContainingBlock","css","transform","perspective","some","willChange","includes","addUnit","getSizeStyle","originSize","size","getZIndexStyle","zIndex","rootFontSize","convertRem","doc","fontSize","parseFloat","getRootFontSize","unitToPx","convertVw","convertVh","camelizeRE","camelize","c","toUpperCase","padZero","num","targetLength","clamp","trimExtraChar","char","regExp","slice","formatNumber","allowDot","allowMinus","addNumber","num1","num2","hasOwnProperty","deepAssign","to","from","assignKey","lang","messages","zh-CN","tel","save","cancel","delete","loading","noCoupon","nameEmpty","addContact","telInvalid","vanCalendar","end","weekdays","monthTitle","year","month","rangePrompt","maxRange","vanCascader","vanPagination","prev","next","vanPullRefresh","pulling","loosing","vanSubmitBar","vanCoupon","unlimited","discount","condition","vanCouponCell","count","vanCouponList","exchange","close","enable","vanAddressEdit","area","areaEmpty","addressEmpty","addressDetail","defaultAddress","vanAddressList","stdin_default","use","newLang","newMessages","createTranslate","prefix","args","locale","createBEM","mods","genBem","createNamespace","prefixedName","BORDER","BORDER_SURROUND","HAPTICS_FEEDBACK","FORM_KEY","callInterceptor","interceptor","done","canceled","error","returnVal","apply","withInstall","install","app","closest","arr","pre","cur","abs","POPUP_TOGGLE_KEY","onPopupReopen","callback","popupToggleStatus","useHeight","withSafeArea","setHeight","setTimeout","usePlaceholder","contentRef","bem","renderContent","_createVNode","createVNode","ACTION_BAR_KEY","actionBarProps","safeAreaInsetBottom","ActionBar","slots","renderPlaceholder","renderActionBar","van-safe-area-bottom","useExpose","apis","routeProps","route","$router","router","location","href","useRoute","badgeProps","dot","tag","color","offset","content","showZero","Badge","hasContent","getOffsetWithMinusString","startsWith","style2","background","x","y","offsetY","offsetX","marginTop","marginLeft","renderBadge","fixed","globalZIndex","CONFIG_PROVIDER_KEY","configProviderProps","theme","themeVars","themeVarsDark","themeVarsLight","themeVarsScope","iconPrefix","syncThemeVarsOnRoot","newStyle","oldStyle","setProperty","removeProperty","cssVars","formattedKey","insertDash","mapThemeVarsToCSSVars","addTheme","classList","removeTheme","newVal","immediate","newScope","oldScope","watchEffect","iconProps","badge","classPrefix","Icon","config","name2","isImageIcon","isImage","_mergeProps","src","SpinIcon","CircularIcon","cx","cy","r","loadingProps","vertical","textSize","textColor","Loading","spinnerStyle","renderIcon","DefaultIcon","renderText","aria-live","aria-busy","buttonProps","block","plain","square","hairline","nativeType","loadingSize","loadingText","loadingType","iconPosition","Button","getStyle","borderColor","classes","actionBarButtonProps","ActionBarButton","isFirst","isLast","isButton","last","first","actionBarIconProps","iconClass","role","tabindex","popupSharedProps","overlay","duration","teleport","lockScroll","lazyRender","beforeClose","overlayProps","overlayStyle","overlayClass","transitionAppear","closeOnClickOverlay","popupSharedPropKeys","useTouch","startX","startY","deltaX","deltaY","isTap","move","touch","touches","clientX","clientY","isVertical","isHorizontal","totalLockCount","useLockScroll","rootRef","shouldLock","onTouchMove","scrollHeight","offsetHeight","parseInt","lock","unlock","destroy","init","useLazyRender","inited","useScopeId","scopeId","className","customStyle","Overlay","attrs","renderOverlay","animationDuration","_withDirectives","_vShow","vShow","Content","Transition","appear","Teleport","popupProps","closeIcon","closeable","transition","closeOnPopstate","closeIconPosition","destroyOnClose","safeAreaInsetTop","Popup","opened","shouldReopen","popupRef","onClickOverlay","mergeProps","onClickCloseIcon","renderCloseIcon","timer","onOpened","clearTimeout","onClosed","onKeydown","renderPopup","van-safe-area-top","renderTransition","onAfterEnter","onAfterLeave","focus","_Fragment","actionSheetProps","actions","cancelText","description","closeOnClickAction","popupInheritKeys","updateShow","renderHeader","renderCancel","renderActionContent","subname","renderAction","renderDescription","getFirstEnabledOption","findIndexOfEnabledOption","isOptionExist","fields","findOptionByValue","PICKER_KEY","allowHtml","optionHeight","swipeDuration","visibleOptionNum","moving","startOffset","touchStartTime","momentumOffset","transitionEndTrigger","wrapper","currentOffset","currentDuration","baseOffset","updateValueByIndex","enabledIndex","trigger","isReadonly","getIndexByOffset","currentIndex","stopMomentum","onTouchStart","translateY","getElementTranslateY","onTouchEnd","distance","momentum","speed","renderOptions","optionStyle","selected","onClickOption","childData","newOffset","newIndex","onTouchstartPassive","onTouchend","onTouchcancel","transitionDuration","transitionProperty","onTransitionend","pickerToolbarProps","cancelButtonText","confirmButtonText","pickerToolbarSlots","pickerToolbarPropKeys","renderConfirm","toolbar","useSyncPropRef","getProp","setProp","propRef","isString","hyphenateRE","hyphenate","create","cacheStringFunction","listDelimiterRE","propertyDelimiterRE","styleCommentRE","parseStringStyle","cssText","trim","useId","useRefs","refs","onBeforeUpdate","useVisibilityChange","IntersectionObserver","observer","entries","intersectionRatio","unobserve","observe","stickyProps","container","offsetTop","offsetBottom","Sticky","state","isReset","rootStyle","stickyStyle","onScroll","rootRect","containerRect","difference","clientHeight","isFixed","emitScroll","swipeProps","loop","autoplay","touchable","initialSwipe","indicatorColor","showIndicators","SWIPE_KEY","Swipe","track","rect","active","swiping","dragging","delta","minOffset","ceil","trackSize","activeIndicator","isCorrectDirection","expect","trackStyle","toFixed","mainAxis","crossAxis","getTargetOffset","targetActive","currentPosition","targetOffset","pace","emitChange","getTargetActive","outRightBound","setOffset","outLeftBound","correctPosition","autoplayTimer","stopAutoplay","initialize","cb","offsetWidth","swipe","resize","renderDot","backgroundColor","swipeTo","targetIndex","ref6","usePageVisibility","visible","indicator","animated","swipeable","swipeRef","renderChildren","swipeToCurrentTab","tabsProps","sticky","shrink","ellipsis","scrollspy","showHeader","lineWidth","lineHeight","beforeChange","swipeThreshold","titleActiveColor","titleInactiveColor","TABS_KEY","tabHeight","stickyFixed","cancelScrollLeftToRaf","cancelScrollTopToRaf","navRef","wrapRef","titleRefs","setTitleRefs","lineStyle","scrollable","navStyle","getTabName","tab","currentName","activeTab","offsetTopPx","scrollOffset","scrollIntoView","nav","titles","$el","offsetLeft","scrollLeft","frames","animate","scrollLeftTo","setLine","shouldAnimate","borderRadius","setCurrentIndex","skipScrollIntoView","diff","findAvailableTab","newTab","newName","shouldEmitChange","setCurrentIndexByName","index2","scrollToCurrentContent","isDown","step","scrollTopTo","onClickTab","onStickyScroll","params","renderLine","_c","Header","van-hairline--top-bottom","complete","aria-orientation","renderTitle","getCurrentIndexOnScroll","onRendered","TabsContent","TAB_STATUS_KEY","ALL_TAB_STATUS_KEY","useAllTabStatus","TabTitle","isActive","controls","activeColor","inactiveColor","showZeroBadge","titleColor","Text","grow","aria-selected","aria-disabled","aria-controls","data-allow-mismatch","SwipeItem","rendered","shouldRender","maxActive","prevActive","nextActive","tabProps","titleClass","titleStyle","Tab","getName","parsedClass","parsedStyle","normalizeClass","styles","stringifyStyle","normalizeStyle","hasInactiveClass","allTabStatus","useProvideTabStatus","inactive","aria-hidden","aria-labelledby","_a2","withDirectives","Tabs","_Tabs","PICKER_GROUP_KEY","pickerGroupProps","tabs","nextStepText","showToolbar","showNextButton","childNodes","Comment","Fragment","acc","concat","Toolbar","onUpdate:active","$event","pickerSharedProps","pickerProps","toolbarPosition","columnsRef","assignDefaultFields","firstColumn","getColumnsType","currentColumns","formatted","cursor","columnIndex","formatCascadeColumns","hasOptions","selectedIndexes","newValues","getEventParams","params2","renderColumnItems","Column","value2","currentOption","onScrollInto","renderMask","wrapHeight","frameStyle","maskStyle","backgroundSize","renderColumns","columnsStyle","renderToolbar","resetSelectedValues","lastEmittedModelValue","getSelectedOptions","INHERIT_SLOTS","INHERIT_PROPS","makeOption","formatDataForCascade","areaList","columnsNum","columnsPlaceholder","city_list","city","county_list","county","province_list","province","showCity","showCounty","provinceMap","Map","code","set","getProvinceChildren","cityMap","getCityChildren","province2","city2","values","county2","unshift","Picker","_Picker","areaProps","Area","codes","picker","newCodes","lastCode","newCode","cellSharedProps","center","valueClass","labelClass","arrowDirection","clickable","cellProps","Cell","renderLabel","titleSlot","renderValue","slot","renderRightIcon","borderless","extra","formProps","colon","showError","labelWidth","labelAlign","inputAlign","scrollToError","scrollToErrorPosition","validateFirst","submitOnEnter","showErrorMessage","errorMessageAlign","validateTrigger","Form","getFieldsByNames","names","validate","matched","Promise","resolve","reject","validateField","errors","promise","all","validateAll","scrollToField","getValues","submit","onSubmit","getValidationStatus","isEmptyValue","getRuleMessage","startComposing","composing","endComposing","dispatchEvent","Event","getStringLength","cutString","maxlength","fieldSharedProps","leftIcon","rightIcon","autofocus","autocomplete","autocapitalize","autocorrect","errorMessage","enterkeyhint","clearTrigger","formatTrigger","spellcheck","inputmode","fieldProps","rows","rules","autosize","showWordLimit","Field","focused","validateMessage","inputRef","clearIconRef","getModelValue","showClear","hasValue","showRequiredMark","runRules","validateEmpty","pattern","runSyncRule","validator","runRuleValidator","endValidate","defaultTrigger","updateValue","originalValue","selectionEnd","valueArr","exceededLength","limitValueLength","limitDiffLen","isNumber","adjustedValue","Infinity","formatterDiffLen","bcoVal","selectionStart","valueLen","setSelectionRange","blur","adjustTextareaSize","maxHeight","minHeight","resizeTextarea","onFocus","onBlur","onClickInput","onClickLeftIcon","onClickRightIcon","labelStyle","onKeypress","keyCode","getInputId","renderInput","controlClass","custom","min-height","inputAttrs","onCompositionend","onCompositionstart","rightIconSlot","renderWordLimit","_createTextVNode","createTextVNode","renderMessage","renderFieldBody","LeftIcon","renderLeftIcon","leftIconSlot","Label","for","lockCount","popupInheritProps","toastProps","iconSize","wordBreak","forbidClick","closeOnClick","toggleClickable","clearTimer","innerHTML","usePopupState","toggle","mountComponent","RootComponent","createApp","createElement","appendChild","mount","unmount","removeChild","queue","currentOptions","defaultOptionsMap","getInstance","VanToast","createInstance","showToast","toast","parsedOptions","_Toast","switchProps","activeValue","inactiveValue","Switch","isChecked","renderLoading","checked","on","aria-checked","searchResult","showSearchResult","renderSearchResult","express","address","onSelect","DEFAULT_DATA","areaCode","isDefault","addressEditProps","isSaving","isDeleting","showArea","showDetail","showDelete","disableArea","telMaxlength","showSetDefault","saveButtonText","areaPlaceholder","deleteButtonText","detailRows","detailMaxlength","areaColumnsPlaceholder","addressInfo","telValidator","areaRef","showAreaPopup","detailFocused","areaListLoaded","areaText","hideBottomFields","makeRule","emptyMessage","onSave","onChangeDetail","assignAreaText","onAreaConfirm","onDetailBlur","renderSetDefaultCell","slots2","setAreaCode","setAddressDetail","is-link","AddressEditDetail","onSelectSearch","radioGroupProps","checkedColor","RADIO_KEY","RadioGroup","checkboxGroupProps","CHECKBOX_GROUP_KEY","CheckboxGroup","toggleAll","skipDisabled","bindGroup","tagProps","mark","Tag","renderTag","CloseIcon","checkerProps","labelPosition","labelDisabled","indeterminate","iconRef","getParentProp","disabled2","checkedCount","overlimit","iconStyle","iconClicked","nodes","label-disabled","radioProps","Checker","onToggle","checkboxProps","checked2","setParentValue","switchable","singleChoice","defaultTagText","Info","addressListProps","list","disabledText","disabledList","showAddButton","addButtonText","renderList","renderItem","AddressListItem","onEdit","List","DisabledList","DisabledText","backTopProps","shouldReshow","behavior","scroll","updateTarget","getTarget","querySelector","delay","timeout","lastRun","runCallback","throttle","barrageProps","autoPlay","barrageWrapper","barrageItems","isInitBarrage","isPlay","appendBarrageItem","createBarrageItem","innerText","animationDelay","animationName","animationTimingFunction","animationPlayState","append","dataset","updateBarrages","has","__async","__this","__arguments","generator","fulfilled","rejected","throw","play","compareMonth","date1","date2","year1","getFullYear","year2","month1","getMonth","month2","compareDay","day1","day2","compareMonthResult","getDate","cloneDate","cloneDates","dates","getDayByOffset","cloned","setDate","getMonthByOffset","setMonth","getYearByOffset","setFullYear","getPrevDay","getNextDay","getPrevMonth","getNextMonth","getPrevYear","getNextYear","getToday","today","setHours","sharedProps","pickerInheritKeys","getMonthEndDay","genOptions","iteratee","times","formatValueRange","column","minValue","maxValue","rowHeight","lastDay","currentPos","lastDayPos","isLastRowInMonth","marginBottom","renderTopInfo","topInfo","renderBottomInfo","bottomInfo","Nodes","calendarMonthProps","showMark","currentDate","allowSameDay","showSubtitle","showMonthTitle","firstDayOfWeek","setVisible","useToggle","daysRef","monthRef","formatMonthTitle","realDay","getDay","totalDay","getDayType","day","isSelected","prevDay","nextDay","prevSelected","nextSelected","getMultipleDayType","startDay","endDay","compareToStart","compareToEnd","getRangeDayType","getBottomInfo","dayType","renderMark","placeholders","days2","disabledDays","renderDay","CalendarDay","item2","onClickDisabledDate","getHeight","scrollToDate","targetDate","daysRect","totalRows","rowOffset","subtitle","showTitle","switchMode","prevMonthDisabled","prevYearDisabled","nextMonthDisabled","nextYearDisabled","onClickSubtitle","onPanelChange","isNext","showYearAction","monthSlot","yearSlot","monthDisabled","yearDisabled","monthIconName","yearIconName","MonthAction","onMonthChange","YearAction","onYearChange","renderSubtitle","canSwitch","with-switch","renderWeekDays","renderWeekDays2","calendarProps","poppable","confirmText","showConfirm","showRangePrompt","confirmDisabledText","limitDateRange","getInitialDate","bodyHeight","bodyRef","currentPanelDate","getInitialPanelDate","currentMonthRef","monthRefs","setMonthRefs","dayOffset","months","months2","buttonDisabled","heights","currentMonth","visibleRange","showed","scrollToCurrentDate","setCurrentDate","calcDateNum","checkRange","onClickDay","disabledDay","getDisabledDate","disabledDays2","endDay2","selectedIndex","dateItem","unselectedDate","renderMonth","CalendarMonth","renderFooterButton","footer","renderCalendar","CalendarHeader","getSelectedDate","imageProps","alt","fit","radius","lazyLoad","errorIcon","showLoading","loadingIcon","crossorigin","referrerpolicy","decoding","Image","imageRef","$Lazyload","overflow","onLoad","triggerLoad","loadEvent","defineProperty","enumerable","renderImage","objectFit","objectPosition","_resolveDirective","onLazyLoaded","check","onLazyLoadError","$on","$off","cardProps","desc","thumb","price","centered","currency","thumbLink","originPrice","renderThumbTag","renderThumb","renderPriceText","priceArr","showNum","showPrice","showOriginPrice","showBottom","Price","OriginPrice","Num","Footer","Bottom","tags","cascaderProps","selectedElementRefs","setSelectedElementRefs","textKey","valueKey","childrenKey","getSelectedOptionsByValue","updateTabs","optionsCursor","renderOption","selectedOption","tabIndex","nextTab","renderTab","unselected","parentElement","cellGroupProps","inset","renderGroup","circleProps","clockwise","layerColor","currentRate","strokeWidth","strokeLinecap","startPosition","viewBoxSize","sweepFlag","getPath","svgStyle","angleValue","startTime","startRate","endRate","rate2","renderHover","stroke","strokeDasharray","renderLayer","renderGradient","Stops","stop-color","x1","y1","x2","y2","ROW_KEY","rowProps","wrap","align","gutter","justify","groups","groups2","totalSpan","spaces","spaces2","averagePadding","verticalSpaces","nowrap","colProps","paddingLeft","paddingRight","COLLAPSE_KEY","collapseProps","accordion","updateName","expanded","itemName","activeName","isExpanded","CELL_SLOTS","collapseItemProps","wrapperRef","onTransitionEnd","contentHeight","onClickTitle","aria-expanded","_ConfigProvider","contactCardProps","addText","editable","DEFAULT_CONTACT","contactEditProps","isEdit","setDefaultLabel","contactInfo","contact","renderSwitch","renderSetDefault","contactListProps","renderEditIcon","countDownProps","autoStart","timeStamp","current2","timeText","currentTime","ms","charAt","parseFormat","resetTime","formatAmount","amount","Coupon","chosen","coupon","validPeriod","startAt","endAt","faceAmount","valueDesc","unitDesc","denominations","conditionMessage","originCondition","reason","couponCellProps","coupons","chosenCoupon","isExist","getValue","emptyProps","image","imageSize","Empty","renderBottom","baseId","getId","getUrlById","renderStop","opacity","stop-opacity","renderStops","fromColor","toColor","renderShadow","fx","fy","gradientTransform","rx","ry","renderBuilding","renderCloud","renderNetwork","stroke-linecap","stroke-width","renderMaterial","renderError","renderSearch","PRESET_IMAGES","search","network","couponListProps","showCount","emptyImage","enabledTitle","disabledTitle","disabledCoupons","showExchangeBar","showCloseButton","closeButtonText","inputPlaceholder","exchangeMinLength","exchangeButtonText","displayedCouponIndex","exchangeButtonLoading","exchangeButtonDisabled","couponRefs","setCouponRefs","barRef","listHeight","currentCode","updateListHeight","rootHeight","headerHeight","onExchange","scrollToCoupon","renderEmpty","renderExchangeBar","renderCouponTab","with-bottom","updateChosenCoupon","currentValues","renderDisabledTab","currentYear","datePickerProps","updatedByExternalSources","pickerRef","computedValues","isMinYear","isMaxYear","genDayOptions","isMinMonth","isMaxMonth","genYearOptions","minYear","maxYear","genMonthOptions","minMonth","maxMonth","oldValues","dialogProps","messageAlign","showCancelButton","cancelButtonColor","cancelButtonDisabled","confirmButtonColor","confirmButtonDisabled","showConfirmButton","keyboardEnabled","getActionHandler","withKeys","Enter","Escape","isolated","hasTitle","classNames","has-title","renderFooter","van-hairline--left","extend$1","_Dialog","dividerProps","dashed","contentPosition","dropdownMenuProps","autoLocate","closeOnClickOutside","DROPDOWN_KEY","showWrapper","barStyle","updateOffset","showPopup","down","onClickAway","dropdownItemProps","getEmitter","onOpen","onClickWrapper","offsetValue","getContainingBlock","match","_DropdownMenu","floatingBubbleProps","gap","axis","magnetic","gapX","gapY","boundary","initialized","updateState","prevX","prevY","nextX","nextY","onClickCapture","floatingPanelProps","anchors","contentDraggable","maxScroll","onTouchstart","moveY","absDistance","ease","header","paddingBottom","gridProps","reverse","columnNum","GRID_KEY","van-hairline--top","gridItemProps","iconColor","percent","flexBasis","paddingTop","gutterValue","contentStyle","surround","highlightProps","autoEscape","caseSensitive","highlightClass","highlightTag","keywords","sourceString","unhighlightClass","unhighlightTag","highlightChunks","flags","chunks","keyword","chunks2","regex","RegExp","exec","lastIndex","highlight","currentChunk","prevChunk","unhighlightStart","unhighlightEnd","lastChunk","chunk","getDistance","sqrt","imagePreviewItemProps","minZoom","maxZoom","rootWidth","disableZoom","doubleScale","closeOnClickImage","scale","moveX","zooming","initializing","imageRatio","swipeItem","isLongImage","initialMoveY","imageStyle","maxMoveX","displayWidth","maxMoveY","displayHeight","setScale","ratio","imageRect","origin","resetScale","fingerNum","startMoveX","startMoveY","startScale","startDistance","lastCenter","doubleTapTimer","isImageMoved","checkClose","swipeItemEl","imageEl","firstElementChild","isClickOverlay","isClickImage","checkTap","deltaTime","toggleScale","rootRatio","naturalWidth","naturalHeight","getCenter","imageSlots","imagePreviewProps","images","showIndex","activedPreviewItemRef","emitScale","emitClose","setActive","renderIndex","renderCover","cover","onDragStart","onDragEnd","renderClose","ImagePreviewItem","onScale","onLongPress","defaultConfig","showImagePreview","VanImagePreview","_ImagePreview","indexBarProps","highlightColor","stickyOffsetTop","indexList","charCodeOfA","charCodeAt","fromCharCode","INDEX_BAR_KEY","sidebar","activeAnchor","selectActiveIndex","sidebarStyle","highlightStyle","getActiveAnchor","rects","prevHeight","getMatchAnchor","scrollParentRect","getRect","activeItemTop","scrollToElement","onClickSidebar","touchActiveIndex","renderSidebar","data-index","elementFromPoint","indexAnchorProps","isSticky","anchorStyle","van-hairline--bottom","_IndexBar","listProps","finished","errorText","finishedText","immediateCheck","tabStatus","isReachEdge","placeholderRect","renderFinishedText","clickErrorText","renderErrorText","tabActive","onUpdated","Placeholder","navBarProps","leftText","rightText","leftDisabled","rightDisabled","leftArrow","navBarRef","onClickLeft","onClickRight","renderNavBar","hasLeft","hasRight","noticeBarProps","mode","wrapable","startTimer","wrapWidth","contentWidth","renderMarquee","van-ellipsis","wrapRefWidth","contentRefWidth","notifyProps","closeNotify","showNotify","VanNotify","_Notify","CollapseIcon","DeleteIcon","wider","large","onTouchmovePassive","numberKeyboardProps","blurOnClose","showDeleteKey","randomKeyOrder","closeButtonLoading","hideOnClickOutside","extraKey","genBasicKeys","keys2","j","random","temp","shuffle","genCustomKeys","extraKeys","onAnimationEnd","onPress","NumberKeyboardKey","Title","leftSlot","showClose","unfit","with-title","onAnimationend","keySlots","makePage","number","paginationProps","prevText","nextText","pageCount","totalItems","showPageSize","itemsPerPage","forceEllipses","showPrevButton","count2","pages","items","startPage","endPage","isMaxSized","page","prevPages","nextPages","updateModelValue","renderPrevButton","renderNextButton","pageDesc","aria-current","passwordInputProps","info","mask","errorInfo","getWindow","ownerDocument","defaultView","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","renderPoints","Points","showBorder","showCursor","_PickerGroup","getUAString","uaData","userAgentData","brands","brand","version","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","getWindowScroll","win","pageXOffset","getNodeName","nodeName","getDocumentElement","isScrollParent","_getComputedStyle","overflowX","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","offsets","clientLeft","clientTop","getWindowScrollBarX","getLayoutRect","getParentNode","assignedSlot","host","listScrollParents","_element$ownerDocumen","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","window2","isFirefox","currentNode","contain","placements","placement","modifierPhases","order","modifiers","visited","Set","modifier","requires","requiresIfExists","dep","depModifier","_len","arguments","_key","p","INVALID_MODIFIER_ERROR","VALID_PROPERTIES","getBasePlacement","getVariation","INVALID_ELEMENT_ERROR","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","defaultModifiers2","_generatorOptions$def2","defaultOptions","reference","popper","fn2","pending","orderedModifiers","modifiersData","elements","attributes","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","options2","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","merged2","existing","mergeByName","m","enabled","self","console","effect","s","requirement","mod","validateModifiers","_ref","identifiers","identifier","_ref2","marginRight","margin","warn","_ref3","_ref3$options","effect3","cleanupFn","forceUpdate","_state$elements","reference2","popper2","__debug_loops__","_state$orderedModifie","_state$orderedModifie2","_options","state2","onFirstUpdate","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","createPopper","_options$scroll","_options$resize","basePlacement","commonX","commonY","getMainAxisFromPlacement","computeOffsets","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","property","popperOffsets","arrow","data-popper-placement","removeAttribute","setAttribute","initialStyles","attribute","offset_default","_options$offset","offset2","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","popoverProps","actionsDirection","showArrow","popoverRef","getPopoverOptions","offsetModifier","updateLocation","with-icon","van-hairline--right","onClickAction","progressProps","pivotText","showPivot","pivotColor","trackColor","percentage","renderPivot","safePercentage","portionStyle","TEXT_STATUS","pullRefreshProps","headHeight","successText","pullingText","loosingText","pullDistance","successDuration","reachTop","getHeadStyle","isTouchable","setStatus","isLoading","getStatusText","renderStatus","checkPosition","success","rateProps","voidIcon","allowHalf","voidColor","disabledColor","itemRefs","setItemRefs","groupRef","unselectable","untouchable","cardinal","getRateStatus","ranges","groupRefRect","minRectTop","MAX_SAFE_INTEGER","maxRectTop","MIN_SAFE_INTEGER","updateRanges","score","getScoreByPosition","curTop","renderStar","isFull","isVoid","renderHalf","aria-setsize","aria-posinset","full","aria-readonly","figureArr","isStart","props2","newFigureArr","translatePx","itemStyle","--van-translate","--van-duration","--van-delay","figure","rollingTextProps","startNum","targetNum","textList","stopOrder","isCustomType","itemLength","getTextArrByIdx","idx","targetNumArr","startNumArr","getFigureArr","start2","i2","getDelay","rolling","RollingTextItem","_Row","searchProps","actionText","showAction","fieldRef","onClear","fieldPropNames","renderField","fieldAttrs","with-message","show-action","iconMap","qq","weibo","qrcode","poster","wechat","weapp-qrcode","wechat-moments","shareSheetProps","renderRows","renderCancelButton","SIDEBAR_KEY","sidebarProps","Sidebar","getActive","sidebarItemProps","SidebarItem","signatureProps","tips","penColor","clearButtonText","canvasRef","getContext","isRenderCanvas","hasCanvasSupport","canvas","canvasRect","canvasWidth","canvasHeight","touchStart","beginPath","strokeStyle","touchMove","mouseX","mouseY","lineCap","lineJoin","lineTo","touchEnd","setCanvasBgColor","ctx2","fillStyle","fillRect","emptyCtx","toDataURL","isCanvasEmpty","jpg","jpeg","clearRect","closePath","getImageData","putImageData","onTouchmove","skeletonTitleProps","titleWidth","skeletonAvatarProps","avatarSize","avatarShape","skeletonParagraphProps","rowWidth","skeletonProps","avatar","renderAvatar","SkeletonAvatar","SkeletonTitle","getRowWidth","template","SkeletonParagraph","skeletonImageProps","imageShape","sliderProps","barHeight","buttonSize","buttonIndex","startValue","dragStatus","scope","wrapperStyle","isRange","calcMainAxis","calcOffset","updateStartValue","handleRangeValue","getButtonClassName","renderButtonContent","dragIndex","renderButton","aria-valuemin","aria-valuenow","aria-valuemax","spaceProps","mergedAlign","getMargin","getMarginStyle","filterEmpty","stepsProps","activeIcon","finishIcon","inactiveIcon","STEPS_KEY","onClickStep","parentProps","getStatus","renderCircle","isEqual","value1","stepperProps","integer","showPlus","showMinus","showInput","longPress","autoFixed","allowEmpty","inputWidth","disablePlus","disableMinus","disableInput","decimalLength","actionType","getInitialValue","minusDisabled","plusDisabled","inputStyle","buttonStyle","pair","isLongPress","longPressTimer","longPressStep","onMousedown","createListeners","_Steps","submitBarProps","tip","tipIcon","textAlign","buttonText","buttonType","buttonColor","suffixLabel","pricePair","decimal","renderTip","onClickButton","renderSubmitBar","swipeCellProps","leftWidth","rightWidth","lockClick","isInBeforeClosing","leftRef","rightRef","getWidthByRef","side","threshold","getClickHandler","renderSideContent","contentSlot","tabbarProps","TABBAR_KEY","enableSafeArea","renderTabbar","afterChange","tabbarItemProps","route2","$route","pathMatched","nameMatched","textEllipsisProps","dots","expandText","collapseText","hasAction","actionRef","needRecalculate","pxToNum","calcEllipsised","cloneContainer","isConnected","originStyle","getPropertyValue","calcEllipsisText","middle","actionHTML","outerHTML","middleTail","leftPart","rightPart","leftMiddle","rightMiddle","calcEllipse","tail","middle2","validateTime","fullColumns","timePickerProps","minHour","maxHour","minMinute","maxMinute","minSecond","maxSecond","minTime","maxTime","getValidTime","timeLimitArr","fullTime","hour","minute","second","minH","minM","minS","maxH","maxM","maxS","getSelectedTime","treeSelectProps","selectedIcon","mainActiveIndex","activeId","isActiveItem","renderSubItem","onSidebarChange","onClickSidebarItem","Items","readFileContent","resultType","reader","FileReader","onload","readAsDataURL","readAsText","isOversize","maxSize","IMAGE_REGEXP","isImageFile","imageFit","deletable","reupload","previewSize","beforeDelete","MaskIcon","showMessage","onPreview","onReupload","renderDeleteIcon","shadow","aria-label","renderPreview","objectUrl","uploaderProps","accept","uploadIcon","uploadText","showUpload","beforeRead","previewImage","previewOptions","previewFullImage","urls","reuploadIndex","isReuploading","getDetail","resetInput","onAfterRead","valid","invalid","filterFiles","readFile","remainCount","contents","URL","createObjectURL","response","imagePreview","onClosePreview","reuploadFile","chooseFile","onInputClick","renderPreviewItem","needPickData","previewData","UploaderPreviewItem","deleteFile","imageFiles","renderPreviewList","onClickUpload","renderUpload","lessThanMax","Input","click","revokeObjectURL","closeImagePreview","watermarkProps","rotate","fullPage","tidy","isFalse","tidyRule","_rule","svgElRef","watermarkUrl","imageBase64","renderWatermark","rotateStyle","transformOrigin","svgWidth","svgHeight","xmlns:xlink","padding","xlink:href","revokeWatermarkUrl","generateWatermarkUrl","svgStr","svgBlob","Blob","makeSvgToBlobUrl","crossOrigin","referrerPolicy","drawImage","makeImageToBase64","backgroundImage","manager","clearValidateState","tidyOptions","tidyBool","def","getDefaultOptions","adapterValidate","err","beforeRender","$handle","preview","slotLen","setSlot","makeFormBtn","$r","getSlots","makeRow","makeWrap","uni","isTitle","_col","cls","injectValidate","$render","mergeClass","makeInfo","makeCol","native","_ctx$refRule","_ctx$refRule2","titleProp","infoProp","getSlot","refRule","__$title","flag","_prop","_ctx$refRule3","__$info","targetHook","vn","makeSubmitBtn","makeResetBtn","fApi","resetFields","tidyBtnProp","Undef","extendApi","formEl","$manager","wrapEl","getFieldCtx","forms","isScope","emitEvent","sub","clearSub","helper","tidyFields","clearSubValidateState","getCtxs","submitBtnProps","isShow","resetBtnProps","refreshOptions","successFn","failFn","validateOnSubmit","beforeSubmit","invoke","insertAt","head","getElementsByTagName","firstChild","insertBefore","styleSheet","createTextNode","load","parseVal","_title","clearProp","updateMessage","_rule$__fc__$refRule$","__fc__","getLocale","sync","FormCreate","componentAlias","register","parser","FormCreateMobile","FormCreateFactory","ui","normal","formCreateMobile","keyAttrs","arrayAttrs","normalAttrs","normalMerge","toArrayMerge","functionalMerge","writable","configurable","copyRule","mergeRule","merge","getRule","funcProxy","that","defineProperties","initial","byCtx","__origin__","logError","makeSlotBag","slotBag","slotName","vnFn","mergeBag","bag","toProps","toCase","upper","setPrototypeOf","proto","changeType","==","!=",">",">=","<","<=","notOn","in","notIn","between","notBetween","notEmpty","deepGet","convertFieldToConditions","parts","conditions","currentCondition","part","getGroupInject","$FormCreate","directives","driver","fc","setupState","toRefs","ctxInject","destroyed","unique","renderRule","fapi","isMore","styleEl","onBeforeMount","globalClass","subCss","toLine","emit$topForm","debounce","bus","emit$scopeForm","emit$form","emit$change","rmSubForm","getSubForm","updated","addSubForm","initOptions","refresh","flush","isBreakWatch","updateAppendData","reloadRule","toJson","forceCoverValue","json","Creator","_data","appendProto","$set","modelField","_clone","clone","constructor","commonMaker","make","makerFactory","factory","getBody","xhr","responseText","XMLHttpRequest","onProgress","evt","loaded","query","queryString","URLSearchParams","onerror","msg","Error","getError","FormData","setRequestHeader","filename","withCredentials","send","asyncFetch","_fetch","parseFn","targetRule","copy","Render","handle","CreateNode","force","tmpInput","initCache","initRender","clearCacheAll","clearCache","setCache","getCache","useCache","cacheConfig","getTypeSlot","_fn","renderSlot","ctxs","isFragment","initProp","mergeGlobal","initNone","loadChildrenPending","renderCtx","global","trueType","g","originType","loadPending","optionsTo","deepSet","parseSide","renderSides","suffix","renderId","ctxProp","injectProp","cacheFlag","slotValue","model","slotUpdate","_load","loadChildren","renderSlots","_vn","targetFormDriver","none","__v_isVNode","stable","$stable","getModelField","modelFields","aliasMap","getWrap","onUpdateValue","vnodeMounted","__rule__","fc.updateValue","fc.el","exportEl","getFormData","modelEmit","onEmitInput","onBaseInput","toValue","trueArray","defaultRender","makeComponent","lower","createChildrenVnodes","createRuleVnode","useRender$1","EVENT","RuleContext","isInput","linkOn","ctrlRule","subRule","payload","updateKey","findCtrl","ctrl","isCtrl","__ctrl","strFn","getParentGroup","onUpdate","updateChildren","onReload","getPending","$api","setPending","reload","effectData","clearEffectData","updateType","getType","setParser","_this$refRule","__$validate","hasHidden","unwatch","un","appendLink","watchTo","watchCtx","rmCtrl","deleted","rm","_rm","noWatch","rmCtx","BaseParser","toFormValue","renderDriver","defaultPreview","noneKey","oldValueTag","Handler","watching","reloading","noWatchFn","deferSyncFn","isMounted","subRuleData","appendData","ignoreFields","providers","cycleLoad","loadedId","changeStatus","pageEnd","nextReload","lifecycle","initData","extendApiFn","fieldCtx","nameCtx","allSubForm","subs","isPreview","siblings","formulas","appendValue","removeField","getCtx","after","prepend","hiddenStatus","displayStatus","bind","updateOptions","hideForm","hide","clearChangeStatus","updateRule","updateRules","mergeRules","findType","findTypes","getRenderRule","getRefRule","setEffect","attr","substr","updateValidate","updateValidates","validates","refreshValidate","onReset","space","closeModal","getChildrenRuleList","getParentRule","getParentSubRule","getChildrenFormData","ignore","setChildrenFormData","getGlobalEvent","globalEvent","getGlobalData","globalData","loadData","emitGlobalEvent","getInjectData","setGlobalData","setData","setGlobalVar","$once","nextRefresh","emitsOptions","getCurrentFormRule","_h$vm$setupState$getG","loadFetchVar","fail","beforeFetch","watchFetch","watchLoadData","change","_opt","wait","getData","getLoadData","watchData","isGlobal","refreshData","changeValue","changeField","Api","useProvider","usePage","loadRule","__init","globalBeforeFetch","parseInjectEvent","injectEvent","parseEventLst","parseEvent","__inject","parseEmit","emitPrefix","eventInject","emitKey","fieldKey","arg","__emit","_inject","__origin","__json","loadStrVar","vars","matches","extractVar","_split","shift","treeToVal","tree","lastVal","parseTemplateToTree","tokens","depth","token","replaceAll","loadVal","useInject","limit","pageLoad","pageFn","clearNextTick","bindNextTick","useRender","parseRule","fullRule","loadFn","loadCtrl","control","syncProp","_loadRule","syncForm","preIndex","isRepeat","ruleEffect","repeat","isCopy","isInit","parseJson","bindParser","rmSubRuleData","setCtx","_preIndex","refreshUpdate","refreshControl","useCtrl","getCtrl","handleFn","hideLst","ruleCon","ctrlCtx","_reloadRule","useLoader","setFlag","setFormData","syncValue","valueChange","fieldChange","isQuote","isChange","subData","isIgnore","ignoreHiddenFields","linkField","refreshRule","useInput","getNameCtx","setIdCtx","rmIdCtx","lst","getParser","adapter","computedRule","computedValue","compute","linkage","linkageVariable","beforeValidate","getValidateMessage","formatRule","isInteger","checkCondition","or","one","variableVal","variable","compare","invert","computeValue","rmSub","$del","useContext","_mounted","_ctx$prop","run","deepName","_parent$prop","useLifecycle","ps","getComponent","onEffect","provider","used","_used","_ctx$rule","emitEffect","getEffect","_type","useEffect","fragment","makeDirective","directive","resolveDirective","tidyDirectives","createManager","CustomManager","Manager","mergeOptionsRule","mergeOptions","componentValidate","$provider","fetchAttr","parseOpt","fetchCache","_option","unwatchs","modify","isObj","html","getCookie","cookieArray","decodeURIComponent","cookie","substring","getLocalStorage","localStorage","getItem","getSessionStorage","sessionStorage","baseDriver","cookieDriver","localStorageDriver","sessionStorageDriver","baseLanguage","en","email","ip","phone","uppercase","lowercase","positive","negative","equal","enum","hasKeys","minLen","maxLen","zh-cn","parseProp","nameProp","defValueTag","isArr","nst","PREFIX","SUFFIX","makeFn","drivers","useApps","globalConfig","$mobile","isNativeTag","appContext","resolveComponent","line","toLocaleLowerCase","CreateNodeFactory","getApi","useApp","base","displayName","nameAlias","formCreateParser","$vnode","$data","createFormApp","div","inherit","_config","setModelField","setFormula","setDriver","setDataDriver","_driver","removeData","uniqueId","Mitt","WeakMap","tmpData","Handle","useAttr","formCreate","exportAttrs","isSub","globalLanguageDriver","param","globalDataDriver","_emit","language","globalVarDriver","globalVariable","key2","isSubForm","$formCreate","globalProperties","$component","mixin","FcComponent","util","exclude","_isVue"],"mappings":"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"}