UNPKG

yzsd

Version:
149 lines 6.16 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _extends from "@babel/runtime/helpers/esm/extends"; import _typeof from "@babel/runtime/helpers/esm/typeof"; var __rest = this && this.__rest || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; import classNames from "classnames"; import RcInput from 'rc-input'; import { composeRef } from "rc-util/es/ref"; import React, { forwardRef, useEffect, useRef } from 'react'; import useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout'; import { hasPrefixSuffix, getStatusClassNames } from './utils'; export function fixControlledValue(value) { if (typeof value === 'undefined' || value === null) { return ''; } return String(value); } export function resolveOnChange(target, e, onChange, targerValue) { if (!onChange) { return; } var event = e; if (e.type === 'click') { var currentTarget = target.cloneNode(true); event = Object.create(e, { target: { value: currentTarget }, currentTarget: { value: currentTarget } }); currentTarget.value = ''; onChange(event); return; } if (targerValue !== undefined) { event = Object.create(e, { target: { value: target }, currentTarget: { value: target } }); target.value = targerValue; onChange(event); return; } onChange(event); } export function triggerFocus(element, option) { if (!element) { return; } element.focus(option); var _ref = option || {}, cursor = _ref.cursor; if (cursor) { var len = element.value.length; switch (cursor) { case 'start': element.setSelectionRange(0, 0); break; case 'end': element.setSelectionRange(len, len); break; default: element.setSelectionRange(0, len); break; } } } var Input = /*#__PURE__*/forwardRef(function (props, ref) { var _classNames, _classNames2, _classNames3; var _props$prefixCls = props.prefixCls, customizePrefixCls = _props$prefixCls === void 0 ? 'yzs-input' : _props$prefixCls, _props$bordered = props.bordered, bordered = _props$bordered === void 0 ? true : _props$bordered, customStatus = props.status, customSize = props.size, customDisabled = props.disabled, onBlur = props.onBlur, onFocus = props.onFocus, suffix = props.suffix, allowClear = props.allowClear, addonAfter = props.addonAfter, addonBefore = props.addonBefore, className = props.className, onChange = props.onChange, rest = __rest(props, ["prefixCls", "bordered", "status", "size", "disabled", "onBlur", "onFocus", "suffix", "allowClear", "addonAfter", "addonBefore", "className", "onChange"]); var inputRef = useRef(null); var mergedSize = customSize; var mergedDisabled = customDisabled; var mergedStatus = customStatus; var inputHasPrefixSuffix = hasPrefixSuffix(props); var prevHasPrefixSuffix = useRef(inputHasPrefixSuffix); useEffect(function () { if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) { prevHasPrefixSuffix.current = inputHasPrefixSuffix; } }, [inputHasPrefixSuffix]); var removePasswordTimeout = useRemovePasswordTimeout(inputRef, true); var handleBlur = function handleBlur(e) { removePasswordTimeout(); onBlur === null || onBlur === void 0 ? void 0 : onBlur(e); }; var handleFocus = function handleFocus(e) { removePasswordTimeout(); onFocus === null || onFocus === void 0 ? void 0 : onFocus(e); }; var handleChange = function handleChange(e) { removePasswordTimeout(); onChange === null || onChange === void 0 ? void 0 : onChange(e); }; var suffixNode = suffix && /*#__PURE__*/React.createElement(React.Fragment, null, suffix); var mergedAllowClear; if (_typeof(allowClear) === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) { mergedAllowClear = allowClear; } else if (allowClear) { mergedAllowClear = { clearIcon: 'x' }; } return /*#__PURE__*/React.createElement(RcInput, _extends({ ref: composeRef(ref, inputRef), prefixCls: customizePrefixCls }, rest, { disabled: mergedDisabled, onBlur: handleBlur, onFocus: handleFocus, suffix: suffixNode, allowClear: mergedAllowClear, className: classNames(className), onChange: handleChange, addonAfter: addonAfter && /*#__PURE__*/React.createElement(React.Fragment, null, addonAfter), addonBefore: addonBefore && /*#__PURE__*/React.createElement(React.Fragment, null, addonBefore), inputClassName: classNames((_classNames = {}, _defineProperty(_classNames, "".concat(customizePrefixCls, "-sm"), mergedSize === 'small'), _defineProperty(_classNames, "".concat(customizePrefixCls, "-lg"), mergedSize === 'large'), _defineProperty(_classNames, "".concat(customizePrefixCls, "-borderless"), !bordered), _classNames), !inputHasPrefixSuffix && getStatusClassNames(customizePrefixCls, mergedStatus)), affixWrapperClassName: classNames((_classNames2 = {}, _defineProperty(_classNames2, "".concat(customizePrefixCls, "-affix-wrapper-sm"), mergedSize === 'small'), _defineProperty(_classNames2, "".concat(customizePrefixCls, "-affix-wrapper-lg"), mergedSize === 'large'), _defineProperty(_classNames2, "".concat(customizePrefixCls, "-affix-wrapper-borderless"), !bordered), _classNames2)), groupClassName: classNames((_classNames3 = {}, _defineProperty(_classNames3, "".concat(customizePrefixCls, "-group-wrapper-sm"), mergedSize === 'small'), _defineProperty(_classNames3, "".concat(customizePrefixCls, "-group-wrapper-lg"), mergedSize === 'large'), _classNames3), getStatusClassNames("".concat(customizePrefixCls, "-group-wrapper"), mergedStatus)) })); }); export default Input;