UNPKG

tdesign-react

Version:
382 lines (374 loc) 16.8 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var defineProperty = require('../_chunks/dep-cc768e34.js'); var slicedToArray = require('../_chunks/dep-e17e2d31.js'); var objectWithoutProperties = require('../_chunks/dep-810b3643.js'); var React = require('react'); var classNames = require('classnames'); var tdesignIconsReact = require('tdesign-icons-react'); var input_index = require('../input/index.js'); var hooks_useConfig = require('../hooks/useConfig.js'); var hooks_useGlobalIcon = require('../hooks/useGlobalIcon.js'); var hooks_useControlled = require('../hooks/useControlled.js'); var _util_parseTNode = require('../_util/parseTNode.js'); var rangeInput_defaultProps = require('./defaultProps.js'); var hooks_useDefaultProps = require('../hooks/useDefaultProps.js'); var isFunction = require('../_chunks/dep-bed9d73e.js'); require('../_chunks/dep-6d4d8660.js'); require('../_chunks/dep-b7d577ac.js'); require('../input/Input.js'); require('../hooks/useLayoutEffect.js'); require('../_chunks/dep-3f65dfe7.js'); require('../_chunks/dep-3e2d2665.js'); require('../_chunks/dep-f0379c5f.js'); require('../_chunks/dep-028b759d.js'); require('../_chunks/dep-ddacd27a.js'); require('../_util/forwardRefWithStatics.js'); require('hoist-non-react-statics'); require('../input/InputGroup.js'); require('../config-provider/ConfigContext.js'); require('../_chunks/dep-3a869b87.js'); require('../_chunks/dep-ac58e1cc.js'); require('dayjs'); require('../_chunks/dep-7da96a57.js'); require('../_chunks/dep-07b911d8.js'); require('../_chunks/dep-4b02d669.js'); require('../_chunks/dep-8a116183.js'); require('../_chunks/dep-4671b9bd.js'); require('../_chunks/dep-47bdc05f.js'); require('../_chunks/dep-cab13149.js'); require('../_chunks/dep-a30819a4.js'); require('../_chunks/dep-6a7ba247.js'); require('../_chunks/dep-780eda7b.js'); require('../_chunks/dep-c87d9752.js'); require('../_chunks/dep-bd956a2d.js'); require('../_chunks/dep-0cdb3286.js'); require('../_chunks/dep-865c186c.js'); require('../_chunks/dep-f4e58639.js'); require('../_chunks/dep-781a2854.js'); require('../_chunks/dep-1ef213f8.js'); require('../_chunks/dep-e2c832a5.js'); require('../locale/LocalReceiver.js'); require('../config-provider/ConfigProvider.js'); require('../_chunks/dep-ed886f2a.js'); require('../_chunks/dep-aeef4e56.js'); require('../_chunks/dep-0c1ca63f.js'); require('../_chunks/dep-fd5d57c1.js'); require('../_chunks/dep-ac2874ce.js'); require('../_chunks/dep-6cfc06a0.js'); require('../_chunks/dep-5d9d080b.js'); require('../input/defaultProps.js'); require('../input/useLengthLimit.js'); require('../_chunks/dep-4bc3c0ab.js'); require('../_chunks/dep-b8d4cf07.js'); require('../_chunks/dep-64a1054a.js'); require('../_chunks/dep-422caf30.js'); require('../_util/noop.js'); require('../_chunks/dep-4be7f839.js'); require('../_chunks/dep-d42c60f4.js'); require('../_chunks/dep-05b4c661.js'); require('../_chunks/dep-62193a48.js'); require('../_chunks/dep-f076775e.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames); var _excluded = ["className", "style", "activeIndex", "borderless", "disabled", "format", "inputProps", "label", "placeholder", "readonly", "separator", "status", "size", "tips", "suffix", "prefixIcon", "suffixIcon", "clearable", "showClearIconOnEmpty", "onClick", "onEnter", "onClear", "onFocus", "onBlur", "onMouseenter", "onMouseleave", "onChange"]; 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._defineProperty(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; } function calcArrayValue(value) { return Array.isArray(value) ? value : [value, value]; } var renderIcon = function renderIcon(classPrefix, type, icon) { var result = _util_parseTNode["default"](icon); var iconClassName = icon ? "".concat(classPrefix, "-range-input__").concat(type, "-icon") : ""; return result ? /* @__PURE__ */React__default["default"].createElement("span", { className: "".concat(classPrefix, "-range-input__").concat(type, " ").concat(iconClassName) }, result) : null; }; var RangeInput = /*#__PURE__*/React__default["default"].forwardRef(function (originalProps, ref) { var _useConfig = hooks_useConfig["default"](), classPrefix = _useConfig.classPrefix; var _useGlobalIcon = hooks_useGlobalIcon["default"]({ CloseCircleFilledIcon: tdesignIconsReact.CloseCircleFilledIcon }), CloseCircleFilledIcon = _useGlobalIcon.CloseCircleFilledIcon; var props = hooks_useDefaultProps["default"](originalProps, rangeInput_defaultProps.rangeInputDefaultProps); var className = props.className, style = props.style, activeIndex = props.activeIndex, borderless = props.borderless, disabled = props.disabled, format = props.format, inputProps = props.inputProps, label = props.label, placeholder = props.placeholder, readonly = props.readonly, separator = props.separator, status = props.status, size = props.size, tips = props.tips, suffix = props.suffix, prefixIcon = props.prefixIcon, suffixIcon = props.suffixIcon, clearable = props.clearable, showClearIconOnEmpty = props.showClearIconOnEmpty, _onClick = props.onClick, onEnter = props.onEnter, onClear = props.onClear, onFocus = props.onFocus, onBlur = props.onBlur, onMouseenter = props.onMouseenter, onMouseleave = props.onMouseleave, onChangeFromProps = props.onChange, restProps = objectWithoutProperties._objectWithoutProperties(props, _excluded); var name = "".concat(classPrefix, "-range-input"); var wrapperRef = React.useRef(null); var inputRefs = { firstInputRef: React.useRef(null), secondInputRef: React.useRef(null) }; var _useState = React.useState(false), _useState2 = slicedToArray._slicedToArray(_useState, 2), isFocused = _useState2[0], toggleIsFocused = _useState2[1]; var _useState3 = React.useState(false), _useState4 = slicedToArray._slicedToArray(_useState3, 2), isHover = _useState4[0], toggleIsHover = _useState4[1]; var _calcArrayValue = calcArrayValue(format), _calcArrayValue2 = slicedToArray._slicedToArray(_calcArrayValue, 2), firstFormat = _calcArrayValue2[0], secondFormat = _calcArrayValue2[1]; var _calcArrayValue3 = calcArrayValue(placeholder), _calcArrayValue4 = slicedToArray._slicedToArray(_calcArrayValue3, 2), _calcArrayValue4$ = _calcArrayValue4[0], firstPlaceholder = _calcArrayValue4$ === void 0 ? "\u8BF7\u8F93\u5165\u5185\u5BB9" : _calcArrayValue4$, _calcArrayValue4$2 = _calcArrayValue4[1], secondPlaceholder = _calcArrayValue4$2 === void 0 ? "\u8BF7\u8F93\u5165\u5185\u5BB9" : _calcArrayValue4$2; var _calcArrayValue5 = calcArrayValue(inputProps), _calcArrayValue6 = slicedToArray._slicedToArray(_calcArrayValue5, 2), firstInputProps = _calcArrayValue6[0], secondInputProps = _calcArrayValue6[1]; var _useControlled = hooks_useControlled["default"](props, "value", onChangeFromProps), _useControlled2 = slicedToArray._slicedToArray(_useControlled, 2), value = _useControlled2[0], _onChange = _useControlled2[1]; var _ref = value || [], _ref2 = slicedToArray._slicedToArray(_ref, 2), firstValue = _ref2[0], secondValue = _ref2[1]; var isShowClearIcon = (clearable && (value === null || value === void 0 ? void 0 : value.length) && !disabled || showClearIconOnEmpty) && isHover; var suffixIconNew = suffixIcon; if (isShowClearIcon) { suffixIconNew = /* @__PURE__ */React__default["default"].createElement(CloseCircleFilledIcon, { className: "".concat(name, "__suffix-clear"), onMouseDown: handleMouseDown, onClick: handleClear }); } var labelContent = isFunction.isFunction(label) ? label() : label; var prefixIconContent = renderIcon(classPrefix, "prefix", _util_parseTNode["default"](prefixIcon)); var suffixContent = isFunction.isFunction(suffix) ? suffix() : suffix; var suffixIconContent = renderIcon(classPrefix, "suffix", _util_parseTNode["default"](suffixIconNew)); function handleMouseDown(e) { e.stopPropagation(); e.nativeEvent.stopImmediatePropagation(); } function handleClear(e) { onClear === null || onClear === void 0 || onClear({ e: e }); _onChange === null || _onChange === void 0 || _onChange(["", ""], { e: e, trigger: "clear", position: "all" }); } function handleEnter(rangeValue, context) { onEnter === null || onEnter === void 0 || onEnter(rangeValue, context); } function handleFocus(rangeValue, context) { onFocus === null || onFocus === void 0 || onFocus(rangeValue, context); toggleIsFocused(true); } function handleBlur(rangeValue, context) { onBlur === null || onBlur === void 0 || onBlur(rangeValue, context); toggleIsFocused(false); } function handleMouseEnter(e) { var _props$onMouseEnter; toggleIsHover(true); onMouseenter === null || onMouseenter === void 0 || onMouseenter({ e: e }); (_props$onMouseEnter = props.onMouseEnter) === null || _props$onMouseEnter === void 0 || _props$onMouseEnter.call(props, { e: e }); } function handleMouseLeave(e) { var _props$onMouseLeave; toggleIsHover(false); onMouseleave === null || onMouseleave === void 0 || onMouseleave({ e: e }); (_props$onMouseLeave = props.onMouseLeave) === null || _props$onMouseLeave === void 0 || _props$onMouseLeave.call(props, { e: e }); } React.useImperativeHandle(ref, function () { return { currentElement: wrapperRef.current, firstInputElement: inputRefs.firstInputRef.current, secondInputElement: inputRefs.secondInputRef.current, focus: function focus(options) { var _inputRefs$current; var _ref3 = options || {}, _ref3$position = _ref3.position, position = _ref3$position === void 0 ? "first" : _ref3$position; (_inputRefs$current = inputRefs["".concat(position, "InputRef")].current) === null || _inputRefs$current === void 0 || _inputRefs$current.focus(); }, blur: function blur(options) { var _inputRefs$current2; var _ref4 = options || {}, _ref4$position = _ref4.position, position = _ref4$position === void 0 ? "first" : _ref4$position; (_inputRefs$current2 = inputRefs["".concat(position, "InputRef")].current) === null || _inputRefs$current2 === void 0 || _inputRefs$current2.blur(); }, select: function select(options) { var _inputRefs$current3; var _ref5 = options || {}, _ref5$position = _ref5.position, position = _ref5$position === void 0 ? "first" : _ref5$position; (_inputRefs$current3 = inputRefs["".concat(position, "InputRef")].current) === null || _inputRefs$current3 === void 0 || _inputRefs$current3.select(); } }; }); return /* @__PURE__ */React__default["default"].createElement("div", _objectSpread(_objectSpread({ ref: wrapperRef, style: style, className: classNames__default["default"](name, className, defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty({}, "".concat(classPrefix, "-is-disabled"), disabled), "".concat(classPrefix, "-is-focused"), isFocused), "".concat(classPrefix, "-is-").concat(status), status), "".concat(classPrefix, "-size-l"), size === "large"), "".concat(classPrefix, "-size-s"), size === "small"), "".concat(name, "--prefix"), prefixIconContent || labelContent), "".concat(name, "--suffix"), suffixContent || suffixIconContent), "".concat(name, "--borderless"), borderless)) }, restProps), {}, { onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave }), /* @__PURE__ */React__default["default"].createElement("div", { className: "".concat(name, "__inner") }, prefixIconContent, labelContent ? /* @__PURE__ */React__default["default"].createElement("div", { className: "".concat(classPrefix, "-input__prefix") }, labelContent) : null, /* @__PURE__ */React__default["default"].createElement(input_index.Input, _objectSpread({ ref: inputRefs.firstInputRef, className: "".concat(name, "__inner-left"), inputClass: classNames__default["default"](defineProperty._defineProperty({}, "".concat(classPrefix, "-is-focused"), activeIndex === 0)), placeholder: firstPlaceholder, disabled: disabled, readonly: readonly, format: firstFormat, value: firstValue, onClick: function onClick(_ref6) { var e = _ref6.e; return _onClick === null || _onClick === void 0 ? void 0 : _onClick({ e: e, position: "first" }); }, onClear: function onClear() { return _onChange === null || _onChange === void 0 ? void 0 : _onChange([], { position: "first", trigger: "input" }); }, onEnter: function onEnter(val, _ref7) { var e = _ref7.e; return handleEnter([val, secondValue], { e: e, position: "first" }); }, onFocus: function onFocus(val, _ref8) { var e = _ref8.e; return handleFocus([val, secondValue], { e: e, position: "first" }); }, onBlur: function onBlur(val, _ref9) { var e = _ref9.e; return handleBlur([val, secondValue], { e: e, position: "first" }); }, onChange: function onChange(val, _ref0) { var e = _ref0.e; return _onChange === null || _onChange === void 0 ? void 0 : _onChange([val, secondValue], { e: e, position: "first", trigger: "input" }); } }, firstInputProps)), /* @__PURE__ */React__default["default"].createElement("div", { className: "".concat(name, "__inner-separator") }, separator), /* @__PURE__ */React__default["default"].createElement(input_index.Input, _objectSpread({ ref: inputRefs.secondInputRef, className: "".concat(name, "__inner-right"), inputClass: classNames__default["default"](defineProperty._defineProperty({}, "".concat(classPrefix, "-is-focused"), activeIndex === 1)), placeholder: secondPlaceholder, disabled: disabled, readonly: readonly, format: secondFormat, value: secondValue, onClick: function onClick(_ref1) { var e = _ref1.e; return _onClick === null || _onClick === void 0 ? void 0 : _onClick({ e: e, position: "second" }); }, onClear: function onClear() { return _onChange === null || _onChange === void 0 ? void 0 : _onChange([], { position: "second", trigger: "input" }); }, onEnter: function onEnter(val, _ref10) { var e = _ref10.e; return handleEnter([firstValue, val], { e: e, position: "second" }); }, onFocus: function onFocus(val, _ref11) { var e = _ref11.e; return handleFocus([firstValue, val], { e: e, position: "second" }); }, onBlur: function onBlur(val, _ref12) { var e = _ref12.e; return handleBlur([firstValue, val], { e: e, position: "second" }); }, onChange: function onChange(val, _ref13) { var e = _ref13.e; return _onChange === null || _onChange === void 0 ? void 0 : _onChange([firstValue, val], { e: e, position: "second", trigger: "input" }); } }, secondInputProps)), suffixContent ? /* @__PURE__ */React__default["default"].createElement("div", { className: "".concat(name, "__suffix") }, suffixContent) : null, suffixIconContent), tips && /* @__PURE__ */React__default["default"].createElement("div", { className: "".concat(name, "__tips") }, tips)); }); RangeInput.displayName = "RangeInput"; exports["default"] = RangeInput; //# sourceMappingURL=RangeInput.js.map