UNPKG

tdesign-vue-next

Version:
253 lines (245 loc) 14 kB
/** * tdesign v1.19.2 * (c) 2026 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var Vue = require('vue'); var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties'); var _defineProperty = require('@babel/runtime/helpers/defineProperty'); var tdesignIconsVueNext = require('tdesign-icons-vue-next'); var input_props = require('./props.js'); require('@babel/runtime/helpers/toConsumableArray'); require('@babel/runtime/helpers/typeof'); require('../_chunks/dep-35e23c2b.js'); var index$5 = require('../_chunks/dep-1862d466.js'); var index$4 = require('../_chunks/dep-38acad3d.js'); var index$3 = require('../_chunks/dep-0238ed9a.js'); var index$2 = require('../_chunks/dep-362c5212.js'); var index = require('../_chunks/dep-c26a7d50.js'); require('@babel/runtime/helpers/slicedToArray'); require('../_chunks/dep-0989c3be.js'); var index$1 = require('../_chunks/dep-9dbade68.js'); var input_hooks_useInput = require('./hooks/useInput.js'); var input_hooks_useInputEventHandler = require('./hooks/useInputEventHandler.js'); var input_hooks_useInputWidth = require('./hooks/useInputWidth.js'); var helper = require('../_chunks/dep-2aa3d3cf.js'); var configProvider_hooks_useConfig = require('../config-provider/hooks/useConfig.js'); require('../_chunks/dep-4a7162e7.js'); require('../_chunks/dep-8d990e66.js'); require('../_chunks/dep-2dcf9237.js'); require('../_chunks/dep-22dc294c.js'); require('../_chunks/dep-bf76dead.js'); require('../_chunks/dep-631750cd.js'); require('../_chunks/dep-4cb26289.js'); require('../_chunks/dep-a6551cc4.js'); require('../_chunks/dep-7d9abefd.js'); require('../_chunks/dep-2fb8d44f.js'); require('../_chunks/dep-80a41429.js'); require('../_chunks/dep-91305690.js'); require('../_chunks/dep-0b92e695.js'); require('../_chunks/dep-b2024592.js'); require('../_chunks/dep-9f98bf9b.js'); require('../_chunks/dep-74b143e0.js'); require('../_chunks/dep-be1af85d.js'); require('../_chunks/dep-db9c85b1.js'); require('dayjs'); require('../_chunks/dep-82fe2026.js'); require('../_chunks/dep-33b46a52.js'); require('../_chunks/dep-930a2de5.js'); require('../_chunks/dep-c3bbd06c.js'); require('../_chunks/dep-6d87f74d.js'); require('../_chunks/dep-281f7eb2.js'); require('../_chunks/dep-f8f7b1af.js'); require('../_chunks/dep-66d3f30f.js'); require('../_chunks/dep-e1d22111.js'); require('../_chunks/dep-754c0523.js'); require('../_chunks/dep-7076a08a.js'); require('@babel/runtime/helpers/createClass'); require('@babel/runtime/helpers/classCallCheck'); require('../form/constants/index.js'); require('../_chunks/dep-ce9c15f5.js'); require('./hooks/useLengthLimit.js'); require('../_chunks/dep-692bdebe.js'); require('../_chunks/dep-44195fb2.js'); require('../_chunks/dep-e2122882.js'); require('../_chunks/dep-3d29e358.js'); require('../_chunks/dep-6212811d.js'); require('../_chunks/dep-2fc884aa.js'); require('../_chunks/dep-75d6da05.js'); require('../_chunks/dep-274369eb.js'); require('../_chunks/dep-df6e14a0.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties); var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty); var _excluded = ["isHover", "tStatus", "inputRef", "renderType", "showClear", "focused", "inputValue", "isComposition", "compositionValue", "innerValue", "limitNumber"]; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var _Input = Vue.defineComponent({ name: "TInput", props: _objectSpread(_objectSpread({}, input_props["default"]), {}, { showInput: { type: Boolean, "default": true }, keepWrapperWidth: { type: Boolean, "default": false } }), setup: function setup(props2, _ref) { var expose = _ref.expose; var _useConfig = configProvider_hooks_useConfig.useConfig("input"), globalConfig = _useConfig.globalConfig; var _useGlobalIcon = index.useGlobalIcon({ BrowseIcon: tdesignIconsVueNext.BrowseIcon, BrowseOffIcon: tdesignIconsVueNext.BrowseOffIcon, CloseCircleFilledIcon: tdesignIconsVueNext.CloseCircleFilledIcon }), BrowseIcon = _useGlobalIcon.BrowseIcon, BrowseOffIcon = _useGlobalIcon.BrowseOffIcon, CloseCircleFilledIcon = _useGlobalIcon.CloseCircleFilledIcon; var readonly = index$1.useReadonly(); var isDisabled = index$2.useDisabled(); var COMPONENT_NAME = index$3.usePrefixClass("input"); var INPUT_WRAP_CLASS = index$3.usePrefixClass("input__wrap"); var INPUT_TIPS_CLASS = index$3.usePrefixClass("input__tips"); var _useCommonClassName = index$4.useCommonClassName(), STATUS = _useCommonClassName.STATUS, SIZE = _useCommonClassName.SIZE; var classPrefix = index$3.usePrefixClass(); var renderTNodeJSX = index$5.useTNodeJSX(); var _useInput = input_hooks_useInput.useInput(props2, expose), isHover = _useInput.isHover, tStatus = _useInput.tStatus, inputRef = _useInput.inputRef, renderType = _useInput.renderType, showClear = _useInput.showClear, focused = _useInput.focused, inputValue = _useInput.inputValue, isComposition = _useInput.isComposition, compositionValue = _useInput.compositionValue, innerValue = _useInput.innerValue, limitNumber = _useInput.limitNumber, inputHandle = _objectWithoutProperties__default["default"](_useInput, _excluded); var _useInputWidth = input_hooks_useInputWidth.useInputWidth(props2, inputRef, innerValue), inputPreRef = _useInputWidth.inputPreRef; var inputEventHandler = input_hooks_useInputEventHandler.useInputEventHandler(props2, isHover, isComposition); var tPlaceholder = Vue.computed(function () { var _props2$placeholder; return (_props2$placeholder = props2.placeholder) !== null && _props2$placeholder !== void 0 ? _props2$placeholder : globalConfig.value.placeholder; }); var inputAttrs = Vue.computed(function () { var _props2$autocomplete; var value = { autofocus: props2.autofocus, disabled: isDisabled.value, readonly: readonly.value, placeholder: tPlaceholder.value, name: props2.name || void 0, type: renderType.value, autocomplete: (_props2$autocomplete = props2.autocomplete) !== null && _props2$autocomplete !== void 0 ? _props2$autocomplete : globalConfig.value.autocomplete || void 0, unselectable: readonly.value ? "on" : "off", spellcheck: props2.spellCheck }; return helper.getValidAttrs(value); }); var wrapClasses = Vue.computed(function () { return [INPUT_WRAP_CLASS.value, _defineProperty__default["default"]({}, "".concat(COMPONENT_NAME.value, "--auto-width"), props2.autoWidth && !props2.keepWrapperWidth)]; }); var inputEvents = helper.getValidAttrs({ onFocus: inputHandle.emitFocus, onBlur: inputHandle.formatAndEmitBlur, onKeydown: inputEventHandler.handleKeydown, onKeyup: inputEventHandler.handleKeyUp, onKeypress: inputEventHandler.handleKeypress, onPaste: inputEventHandler.onHandlePaste, onCompositionend: inputHandle.onHandleCompositionend, onCompositionstart: inputHandle.onHandleCompositionstart }); return function () { var _compositionValue$val, _inputValue$value, _compositionValue$val2; var prefixIcon = renderTNodeJSX("prefixIcon"); var suffixIcon = renderTNodeJSX("suffixIcon"); var passwordIcon = renderTNodeJSX("passwordIcon"); var label = renderTNodeJSX("label", { silent: true }); var suffix = renderTNodeJSX("suffix"); var limitNode = limitNumber.value && props2.showLimitNumber ? Vue.createVNode("div", { "class": ["".concat(classPrefix.value, "-input__limit-number"), _defineProperty__default["default"]({}, "".concat(classPrefix.value, "-is-disabled"), isDisabled.value)] }, [limitNumber.value]) : null; var labelContent = label ? Vue.createVNode("div", { "class": "".concat(COMPONENT_NAME.value, "__prefix") }, [label]) : null; var suffixContent = suffix || limitNode ? Vue.createVNode("div", { "class": "".concat(COMPONENT_NAME.value, "__suffix") }, [suffix, limitNode]) : null; if (props2.type === "password") { var passwordClass = [_defineProperty__default["default"]({}, "".concat(COMPONENT_NAME.value, "__suffix-clear"), !isDisabled.value)]; if (renderType.value === "password") { suffixIcon = Vue.createVNode(BrowseOffIcon, { "class": passwordClass, "onClick": inputHandle.emitPassword }, null); } else if (renderType.value === "text") { suffixIcon = Vue.createVNode(BrowseIcon, { "class": passwordClass, "onClick": inputHandle.emitPassword }, null); } } if (showClear.value) { if (props2.type === "password") { passwordIcon = Vue.createVNode(CloseCircleFilledIcon, { "ref": inputHandle.clearIconRef, "class": "".concat(COMPONENT_NAME.value, "__suffix-clear"), "onClick": inputHandle.emitClear, "onMousedown": inputHandle.onClearIconMousedown }, null); } else { suffixIcon = Vue.createVNode(CloseCircleFilledIcon, { "ref": inputHandle.clearIconRef, "class": "".concat(COMPONENT_NAME.value, "__suffix-clear"), "onClick": inputHandle.emitClear, "onMousedown": inputHandle.onClearIconMousedown }, null); } } var classes = [COMPONENT_NAME.value, props2.inputClass, _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, SIZE.value[props2.size], props2.size !== "medium"), STATUS.value.disabled, isDisabled.value), STATUS.value.focused, isDisabled.value ? false : focused.value), "".concat(classPrefix.value, "-is-").concat(tStatus.value), tStatus.value && tStatus.value !== "default"), "".concat(classPrefix.value, "-align-").concat(props2.align), props2.align !== "left"), "".concat(classPrefix.value, "-is-readonly"), readonly.value), "".concat(COMPONENT_NAME.value, "--prefix"), prefixIcon || labelContent), "".concat(COMPONENT_NAME.value, "--suffix"), suffixIcon || suffixContent), "".concat(COMPONENT_NAME.value, "--borderless"), props2.borderless), "".concat(COMPONENT_NAME.value, "--focused"), focused.value)]; var tips = renderTNodeJSX("tips"); var tipsClasses = [INPUT_TIPS_CLASS.value, "".concat(classPrefix.value, "-tips"), "".concat(classPrefix.value, "-is-").concat(tStatus.value || "default")]; return Vue.withDirectives(Vue.createVNode("div", { "class": wrapClasses.value }, [Vue.createVNode("div", { "class": classes, "onClick": inputHandle.onRootClick, "onMouseenter": inputEventHandler.onInputMouseenter, "onMouseleave": inputEventHandler.onInputMouseleave, "onWheel": inputEventHandler.onHandleMousewheel }, [prefixIcon ? Vue.createVNode("span", { "class": ["".concat(COMPONENT_NAME.value, "__prefix"), "".concat(COMPONENT_NAME.value, "__prefix-icon")] }, [prefixIcon]) : null, labelContent, Vue.createVNode("input", Vue.mergeProps({ "class": ["".concat(COMPONENT_NAME.value, "__inner"), _defineProperty__default["default"]({}, "".concat(COMPONENT_NAME.value, "--soft-hidden"), !props2.showInput)] }, inputAttrs.value, inputEvents, { "ref": inputRef, "value": isComposition.value ? (_compositionValue$val = compositionValue.value) !== null && _compositionValue$val !== void 0 ? _compositionValue$val : "" : (_inputValue$value = inputValue.value) !== null && _inputValue$value !== void 0 ? _inputValue$value : "", "onInput": function onInput(e) { return inputHandle.handleInput(e); } }), null), props2.autoWidth && Vue.createVNode("span", { "ref": inputPreRef, "class": "".concat(classPrefix.value, "-input__input-pre") }, [isComposition.value ? (_compositionValue$val2 = compositionValue.value) !== null && _compositionValue$val2 !== void 0 ? _compositionValue$val2 : "" : innerValue.value || tPlaceholder.value]), suffixContent, passwordIcon ? Vue.createVNode("span", { "class": ["".concat(COMPONENT_NAME.value, "__suffix"), "".concat(COMPONENT_NAME.value, "__suffix-icon"), "".concat(COMPONENT_NAME.value, "__clear")] }, [passwordIcon]) : null, suffixIcon ? Vue.createVNode("span", { "class": ["".concat(COMPONENT_NAME.value, "__suffix"), "".concat(COMPONENT_NAME.value, "__suffix-icon"), _defineProperty__default["default"]({}, "".concat(COMPONENT_NAME.value, "__clear"), showClear.value)] }, [suffixIcon]) : null]), tips && Vue.createVNode("div", { "class": tipsClasses }, [tips])]), [[Vue.vShow, props2.type !== "hidden"]]); }; } }); exports["default"] = _Input; //# sourceMappingURL=input.js.map