{"version":3,"file":"input.vue2.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToInput'\n});\n</script>\n<template>\n\t<label :id=\"id\" :key=\"langKey\" v-tip=\"changed ? t('to.common.originalValue', valueStore[0]) : ''\" :flex=\"flex ? flex : null\" class=\"to-input\" :class=\"setClass\" :style=\"setStyle\" @click=\"click\">\n\t\t<span v-if=\"verifiable && (rule || required || ToFormItem.required)\" v-show=\"false\" :trim=\"trim\" :req=\"validateRequired\" class=\"to-validate\" :desc=\"validateDesc\" :rule=\"rule\" :value=\"data\"></span>\n\n\t\t<span class=\"to-input-wrapper\">\n\t\t\t<to-icon v-if=\"props.step\" v-dis=\"Number(data) === Number(props.min) || props.disabled\" v-press=\"reduce\" class=\"to-input-decrease\" :value=\"props.stepIconMode ? 'expand' : 'reduce'\" link />\n\n\t\t\t<!-- 前缀 -->\n\t\t\t<span v-if=\"$slots.prefix || props.step\" class=\"to-input-prefix\">\n\t\t\t\t<slot name=\"prefix\" />\n\t\t\t</span>\n\n\t\t\t<span v-if=\"props.prefix\" class=\"to-input-prefix-text\">\n\t\t\t\t<span>{{ props.prefix }}</span>\n\t\t\t</span>\n\n\t\t\t<!-- 输入框部分 -->\n\t\t\t<span v-if=\"props.type === 'textarea'\" class=\"to-input-content\">\n\t\t\t\t<textarea ref=\"inputRef\" v-model=\"data\" class=\"to-input-box\" :autocomplete=\"props.autocomplete ? 'on' : 'new-password'\" :maxlength=\"props.maxlength\" :placeholder=\"iPlaceholder\" :disabled=\"props.disabled\" :tabindex=\"props.tabindex\" @keyup=\"inputKeyup\" @keydown.exact=\"inputKeydown\" @cut=\"inputCut\" @focus=\"inputFocus\" @blur=\"inputBlur\" @paste=\"inputPaste\" @keypress=\"inputKeyPress\" @change=\"inputChange\" @input=\"inputInput\" @keydown.enter.exact=\"inputEnter\" @keydown.ctrl.enter.exact=\"inputCtrlEnter\" @keydown.meta.enter.exact=\"inputCtrlEnter\" />\n\t\t\t</span>\n\n\t\t\t<span v-else-if=\"props.type === 'html'\" class=\"to-input-html\">\n\t\t\t\t{{ props.html }}\n\t\t\t\t<slot name=\"html\" />\n\t\t\t</span>\n\n\t\t\t<span v-else class=\"to-input-content\">\n\t\t\t\t<to-icon v-if=\"icon\" :value=\"icon\" class=\"to-input-icon\"></to-icon>\n\t\t\t\t<input ref=\"inputRef\" v-model=\"data\" class=\"to-input-box\" :autocomplete=\"props.autocomplete ? 'on' : 'new-password'\" :tabindex=\"props.tabindex\" :maxlength=\"props.maxlength\" :placeholder=\"iPlaceholder\" :type=\"itype\" :disabled=\"props.disabled\" @keyup=\"inputKeyup\" @keydown.exact=\"inputKeydown\" @cut=\"inputCut\" @focus=\"inputFocus\" @blur=\"inputBlur\" @paste=\"inputPaste\" @keypress=\"inputKeyPress\" @change=\"inputChange\" @input=\"inputInput\" @keydown.enter.exact=\"inputEnter\" @keydown.ctrl.enter.exact=\"inputCtrlEnter\" @keydown.meta.enter.exact=\"inputCtrlEnter\" />\n\t\t\t</span>\n\n\t\t\t<to-icon v-if=\"!props.disabled && props.clearable && !props.step\" v-show=\"clearVisible\" class=\"to-input-clear\" link value=\"close\" @click.stop=\"clear\" />\n\n\t\t\t<span v-if=\"props.maxlength !== Infinity && props.count && props.type !== 'textarea'\" class=\"to-input-count\">\n\t\t\t\t<span class=\"to-input-count-text\">{{ getDataLength }}/{{ props.maxlength }}</span>\n\t\t\t</span>\n\n\t\t\t<!-- 后缀区 -->\n\t\t\t<span v-if=\"props.suffix\" class=\"to-input-suffix-text\">\n\t\t\t\t<span>{{ props.suffix }}</span>\n\t\t\t</span>\n\n\t\t\t<span v-if=\"($slots.default || $slots.suffix || props.step) && type !== 'textarea'\" class=\"to-input-suffix\">\n\t\t\t\t<slot />\n\t\t\t\t<slot name=\"suffix\" />\n\t\t\t</span>\n\n\t\t\t<to-icon v-if=\"props.step\" v-dis=\"Number(data) === Number(props.max) || props.disabled\" v-press=\"increase\" class=\"to-input-increase\" :value=\"props.stepIconMode ? 'collapse' : 'add'\" link />\n\t\t</span>\n\n\t\t<span v-if=\"props.type === 'textarea' && ((props.maxlength !== Infinity && props.count) || $slots.fn || $slots.default || props.suggestion)\" class=\"to-input-fn\">\n\t\t\t<span v-if=\"$slots.fn || $slots.default\" class=\"to-input-suffix-slot\">\n\t\t\t\t<slot v-if=\"type === 'textarea'\" />\n\t\t\t\t<slot v-if=\"type === 'textarea'\" name=\"fn\" />\n\t\t\t</span>\n\t\t\t<span class=\"to-input-suggestion\">\n\t\t\t\t<template v-if=\"props.suggestion\">\n\t\t\t\t\t<ToButton v-for=\"(item, i) in props.suggestion.split(',')\" :key=\"i\" class=\"to-input-suggestion-item\" @click=\"addSuggestion(item)\">{{ item }}</ToButton>\n\t\t\t\t</template>\n\t\t\t</span>\n\t\t\t<span v-if=\"props.maxlength !== Infinity && props.count\" class=\"to-input-count\">\n\t\t\t\t<span class=\"to-input-count-text\">{{ getDataLength }}/{{ props.maxlength }}</span>\n\t\t\t</span>\n\t\t</span>\n\n\t\t<span v-if=\"errorTip\" v-color=\"'danger'\" class=\"to-box-tip\">\n\t\t\t<template v-if=\"errorType === 'rule'\">\n\t\t\t\t{{ t('to.input.inputError') }}\n\t\t\t\t<to-icon v-tip.danger=\"errorTip\" style=\"height: auto\" value=\"help\" color=\"danger\" mode=\"toast\"></to-icon>\n\t\t\t</template>\n\t\t\t<template v-else> {{ t('to.input.required') }} </template>\n\t\t</span>\n\t</label>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, computed, watch, CSSProperties, onMounted, inject, nextTick, getCurrentInstance } from 'vue'\nimport { ToIcon, ToButton } from '@touchvue/components'\nimport { vDis, vTip, vPress } from '@touchvue/directives'\nimport { t, langKey } from '@touchvue/locale'\n\nconst ins = getCurrentInstance()\n\n\nconst props = defineProps({\n\tflex: Boolean,\n\t// 是否自动获取焦点\n\tautofocus: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tdesc: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\trule: {\n\t\ttype: [String, Boolean],\n\t\tdefault: ''\n\t},\n\tverifiable: {\n\t\ttype: Boolean,\n\t\tdefault: true\n\t},\n\trequired: {\n\t\ttype: Boolean,\n\t\tdefault: null\n\t},\n\tvalidateTip: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tpropErrorType: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tpropErrorTip: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tid: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\ttype: {\n\t\ttype: String,\n\t\tdefault: 'text'\n\t},\n\ticon: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\ttabindex: {\n\t\ttype: String,\n\t\tdefault: '1'\n\t},\n\tautocomplete: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tmax: {\n\t\ttype: [String, Number],\n\t\tdefault: Infinity\n\t},\n\tmin: {\n\t\ttype: [String, Number],\n\t\tdefault: -Infinity\n\t},\n\tmaxlength: {\n\t\ttype: [String, Number],\n\t\tdefault: Infinity\n\t},\n\tdot: {\n\t\ttype: [String, Number],\n\t\tdefault: 0\n\t},\n\tstep: {\n\t\ttype: [String, Number],\n\t\tdefault: null\n\t},\n\tstepIconMode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tspChars: {\n\t\ttype: [String, Boolean],\n\t\tdefault: ''\n\t},\n\tprefix: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tsuffix: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tsuggestion: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tsuggestionType: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tsuggestionSymbol: {\n\t\ttype: String,\n\t\tdefault: '、'\n\t},\n\tclearable: {\n\t\ttype: Boolean,\n\t\tdefault: true\n\t},\n\tpreventFocus: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tcomparable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tmodelValue: {\n\t\ttype: [String, Number],\n\t\tdefault: () => ''\n\t},\n\thtml: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\ttrim: {\n\t\ttype: Boolean,\n\t\tdefault: true\n\t},\n\tcolor: {\n\t\ttype: String,\n\t\tdefault: 'default'\n\t},\n\tplaceholderColor: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tmode: {\n\t\ttype: String,\n\t\tdefault: 'default'\n\t},\n\twidth: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\theight: {\n\t\ttype: [Number, String],\n\t\tdefault: ''\n\t},\n\tlink: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tconversionType: {\n\t\ttype: [String, Number],\n\t\tdefault: 0\n\t},\n\tcount: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t}\n})\n\nconst emit = defineEmits(['update:modelValue', 'click', 'clear', 'input', 'keyup', 'change', 'keydown', 'cut', 'paste', 'keypress', 'focus', 'blur', 'enter', 'ctrlenter'])\n\nconst ToForm = inject<{ comparable?: boolean }>('ToForm', {})\nconst ToFormItem = inject<{ required?: boolean; label?: string }>('ToFormItem', {})\n\nconst errorTip = ref('')\nconst errorType = ref('rule')\nconst valueStore = ref([])\n// const prevent = ref(false)\n// const inited = ref(false)\nconst focused = ref(false)\nconst data = ref(props.modelValue)\nconst clearVisible = ref(false)\nconst itype = ref('text')\n// const disabled = computed(() => props.disabled)\nconst disabled = ref(props.disabled)\n// const multipleNumber = ref(1)\nconst inputRef = ref<HTMLInputElement | HTMLTextAreaElement | null>(null)\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tclearVisible.value = !!val\n\t\tdata.value = val\n\t},\n\t{ immediate: true, deep: true }\n)\nwatch(\n\t() => props.type,\n\tval => {\n\t\titype.value = val\n\t}\n)\n\nwatch(\n\t() => data.value,\n\tval => {\n\t\terrorTip.value = ''\n\t\tclearVisible.value = !!val\n\t\tif (props.type === 'number') {\n\t\t\t// 先转换为纯数字字符串\n\t\t\tdata.value = (data.value + '').replace(/[^0-9.-]/g, '')\n\t\t\t// 多重负号去重\n\t\t\tif (data.value.indexOf('-') > -1) {\n\t\t\t\tif (data.value.indexOf('-') === 0) {\n\t\t\t\t\tif (data.value.indexOf('.') === 1) {\n\t\t\t\t\t\tdata.value = '-0' + data.value.replace(/[-]/g, '')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdata.value = '-' + data.value.replace(/[-]/g, '')\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdata.value = data.value.replace(/[-]/g, '')\n\t\t\t\t}\n\t\t\t}\n\t\t\t//小数点去重\n\t\t\tdata.value = data.value.replace(/(\\..*?)\\./g, '$1')\n\t\t\t// 小数点长度判断\n\t\t\tif (data.value.indexOf('.') > -1) {\n\t\t\t\t// 小圆点开头的自动补 0\n\t\t\t\tif (data.value.indexOf('.') === 0) {\n\t\t\t\t\tdata.value = '0' + data.value\n\t\t\t\t}\n\n\t\t\t\t// 分别获取和处理小数点前后的字符\n\t\t\t\tlet pre = data.value.substring(0, data.value.indexOf('.'))\n\t\t\t\tlet suf = data.value.substring(data.value.indexOf('.') + 1)\n\t\t\t\tsuf = suf.replace(/[/.]/g, '').substring(0, Number(props.dot))\n\n\t\t\t\t// 拼接字符串\n\t\t\t\tdata.value = `${pre}.${suf}`\n\t\t\t}\n\n\t\t\tif (Number(data.value) < Number(props.min)) {\n\t\t\t\tdata.value = props.min\n\t\t\t}\n\t\t\tif (Number(data.value) > Number(props.max)) {\n\t\t\t\tdata.value = props.max\n\t\t\t}\n\n\t\t\tif (String(data.value).length > Number(props.maxlength)) {\n\t\t\t\tdata.value = Number(String(data.value).slice(0, Number(props.maxlength)))\n\t\t\t}\n\t\t}\n\t\tif (iSpChars.value) {\n\t\t\tconst filterData = filter(iSpChars.value, val)\n\t\t\tif (filterData !== false) {\n\t\t\t\tdata.value = filterData\n\t\t\t}\n\t\t}\n\t\temit('update:modelValue', data.value)\n\t}\n)\n\nwatch(\n\t() => props.propErrorType,\n\tval => {\n\t\terrorType.value = val\n\t}\n)\n\nwatch(\n\t() => props.propErrorTip,\n\tval => {\n\t\terrorTip.value = val\n\t}\n)\n\nwatch(\n\t() => props.autofocus,\n\tval => {\n\t\tif (val) {\n\t\t\tfocusInput()\n\t\t}\n\t}\n)\n\nconst filter = (chars, from) => {\n\tif (chars && from) {\n\t\tconst check = new RegExp(\n\t\t\t`[${chars\n\t\t\t\t.split(',')\n\t\t\t\t.map(char => '\\\\' + char)\n\t\t\t\t.join('')}]+`,\n\t\t\t''\n\t\t)\n\t\tconst reg = new RegExp(\n\t\t\t`[${chars\n\t\t\t\t.split(',')\n\t\t\t\t.map(char => '\\\\' + char)\n\t\t\t\t.join('')}]*`,\n\t\t\t'g'\n\t\t)\n\t\tif (check.test(from)) {\n\t\t\treturn from.replace(reg, '')\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\treturn false\n\t}\n}\n\nconst focusInput = () => {\n\tif (inputRef.value) {\n\t\ttry {\n\t\t\t// 确保元素未被禁用\n\t\t\tif (!inputRef.value.disabled) {\n\t\t\t\t// 延迟聚焦，给元素更多准备时间\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tinputRef.value?.focus()\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error('输入框聚焦失败:', error)\n\t\t}\n\t}\n}\n\nonMounted(() => {\n\tdata.value = props.modelValue\n\titype.value = props.type\n\tif (props.autofocus) {\n\t\tnextTick(() => {\n\t\t\tfocusInput()\n\t\t})\n\t}\n})\n\nconst iPlaceholder = computed(() => {\n\tif (!disabled.value && !props.placeholder) {\n\t\treturn t('to.common.placeholder.input')\n\t} else {\n\t\treturn props.placeholder\n\t}\n})\n\nconst iSpChars = computed(() => {\n\tif (props.spChars) {\n\t\treturn props.spChars\n\t}\n\treturn ins.appContext.config.globalProperties.$TouchUI?.input?.spChars ?? '/,\\\\,[,],{,},\"'\n})\n\nconst setClass = computed(() => {\n\tconst arr = ['to-disable-target']\n\tif (errorTip.value) {\n\t\tarr.push('to-input-mode-line')\n\t\tarr.push('to-input-color-danger')\n\t\tarr.push('to-input-tip-show')\n\t} else {\n\t\tif (props.mode) {\n\t\t\tfor (let i = 0; i < props.mode.split(' ').length; i++) {\n\t\t\t\tarr.push(`mode-${props.mode.split(' ')[i]}`)\n\t\t\t}\n\t\t}\n\t\tif (props.type) {\n\t\t\tarr.push(`type-${props.type}`)\n\t\t}\n\t\tif (props.disabled || disabled.value) {\n\t\t\tarr.push(`is-disabled`)\n\t\t}\n\t\tif (focused.value) {\n\t\t\tarr.push('is-focused')\n\t\t}\n\t\tif (props.color) {\n\t\t\tarr.push(`color-${props.color}`)\n\t\t}\n\t\tif (props.link) {\n\t\t\tarr.push('is-link')\n\t\t}\n\t\tif (props.step) {\n\t\t\tarr.push('is-step')\n\t\t}\n\t\tif ((ToForm && ToForm.comparable) || props.comparable) {\n\t\t\tarr.push('to-compare')\n\t\t}\n\t\tif (changed.value) {\n\t\t\tarr.push('to-input-changed')\n\t\t}\n\t}\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tconst obj: CSSProperties = {}\n\tif (props.width) {\n\t\tif (!isNaN(Number(props.width))) {\n\t\t\tobj.width = props.width + 'em'\n\t\t} else {\n\t\t\tobj.width = props.width\n\t\t}\n\t}\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = props.height\n\t\t}\n\t}\n\treturn obj\n})\n\nconst changed = computed(() => {\n\tif ((props.comparable || ToForm?.comparable) && valueStore.value.length > 0 && data.value !== valueStore.value[0]) {\n\t\treturn true\n\t} else {\n\t\treturn false\n\t}\n})\n\nconst validateRequired = computed(() => {\n\tif (props.required === false) {\n\t\treturn 'false'\n\t} else if (props.required) {\n\t\treturn 'true'\n\t} else if (ToFormItem && ToFormItem.required) {\n\t\treturn 'true'\n\t} else {\n\t\treturn 'false'\n\t}\n})\n\nconst validateDesc = computed(() => {\n\tif (props.desc) {\n\t\treturn props.desc\n\t} else if (ToFormItem && ToFormItem.label) {\n\t\treturn ToFormItem.label\n\t} else {\n\t\treturn ''\n\t}\n})\n\nconst getDataLength = computed(() => {\n\tif (data.value || data.value === 0) {\n\t\treturn String(data.value).length\n\t} else {\n\t\treturn 0\n\t}\n})\n\nconst setDisabled = (f: boolean) => {\n\tdisabled.value = f\n}\n\nfunction inputKeyup(e) {\n\temit('keyup', data.value, e)\n}\nfunction inputChange() {\n\temit('change', data.value)\n}\nfunction inputKeydown(e) {\n\temit('keydown', data.value, e)\n}\nfunction inputCut() {\n\temit('cut', data.value)\n}\nfunction inputFocus() {\n\terrorTip.value = ''\n\tif (props.disabled) return false\n\tfocused.value = true\n\temit('focus', data.value)\n}\nfunction inputBlur() {\n\tif (props.disabled) return false\n\tfocused.value = false\n\tif (props.trim && data.value && typeof data.value === 'string') {\n\t\tdata.value = String(data.value).trim()\n\t}\n\temit('blur', data.value)\n}\nfunction inputPaste() {\n\temit('paste', data.value)\n}\nfunction inputKeyPress(e) {\n\temit('keypress', data.value, e)\n}\nfunction inputInput() {\n\temit('input', data.value)\n}\nfunction inputEnter() {\n\temit('enter', data.value)\n}\nfunction inputCtrlEnter() {\n\temit('ctrlenter', data.value)\n}\nfunction clear() {\n\tdata.value = ''\n\tclearVisible.value = false\n\temit('clear')\n}\nfunction reduce() {\n\tdata.value = Number(data.value) - Number(props.step)\n}\nfunction increase() {\n\tdata.value = Number(data.value) + Number(props.step)\n}\nfunction addSuggestion(item: any) {\n\tdata.value += item\n}\n\nfunction click(e: MouseEvent) {\n\t// 须透传原生事件，父组件使用 @click.stop 等修饰符时才能调用 stopPropagation\n\temit('click', e)\n}\nfunction compare() {\n\tvalueStore.value.unshift(data.value)\n}\n// 撤销\nfunction restore() {\n\tdata.value = valueStore.value[0]\n\tvalueStore.value.splice(0, 1)\n}\n\ndefineExpose({\n\tcompare,\n\trestore,\n\tchanged,\n\tsetDisabled,\n\terrorTip,\n\terrorType,\n\tfocus: focusInput\n})\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_unref","_normalizeClass","_createElementVNode","_createBlock","_createCommentVNode","$slots","_renderSlot","_toDisplayString","_Fragment","_renderList","_createTextVNode","_createVNode"],"mappings":"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"}