140 lines
8.9 KiB
JavaScript
140 lines
8.9 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
var _react = _interopRequireWildcard(require("react"));
|
|
var _commonUtils = require("./utils/commonUtils");
|
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
var BaseInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
var _element$props, _element$props2;
|
|
var inputEl = props.inputElement,
|
|
children = props.children,
|
|
prefixCls = props.prefixCls,
|
|
prefix = props.prefix,
|
|
suffix = props.suffix,
|
|
addonBefore = props.addonBefore,
|
|
addonAfter = props.addonAfter,
|
|
className = props.className,
|
|
style = props.style,
|
|
disabled = props.disabled,
|
|
readOnly = props.readOnly,
|
|
focused = props.focused,
|
|
triggerFocus = props.triggerFocus,
|
|
allowClear = props.allowClear,
|
|
value = props.value,
|
|
handleReset = props.handleReset,
|
|
hidden = props.hidden,
|
|
classes = props.classes,
|
|
classNames = props.classNames,
|
|
dataAttrs = props.dataAttrs,
|
|
styles = props.styles,
|
|
components = props.components,
|
|
onClear = props.onClear;
|
|
var inputElement = children !== null && children !== void 0 ? children : inputEl;
|
|
var AffixWrapperComponent = (components === null || components === void 0 ? void 0 : components.affixWrapper) || 'span';
|
|
var GroupWrapperComponent = (components === null || components === void 0 ? void 0 : components.groupWrapper) || 'span';
|
|
var WrapperComponent = (components === null || components === void 0 ? void 0 : components.wrapper) || 'span';
|
|
var GroupAddonComponent = (components === null || components === void 0 ? void 0 : components.groupAddon) || 'span';
|
|
var containerRef = (0, _react.useRef)(null);
|
|
var onInputClick = function onInputClick(e) {
|
|
var _containerRef$current;
|
|
if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {
|
|
triggerFocus === null || triggerFocus === void 0 || triggerFocus();
|
|
}
|
|
};
|
|
var hasAffix = (0, _commonUtils.hasPrefixSuffix)(props);
|
|
var element = /*#__PURE__*/(0, _react.cloneElement)(inputElement, {
|
|
value: value,
|
|
className: (0, _classnames.default)(inputElement.props.className, !hasAffix && (classNames === null || classNames === void 0 ? void 0 : classNames.variant)) || null
|
|
});
|
|
|
|
// ======================== Ref ======================== //
|
|
var groupRef = (0, _react.useRef)(null);
|
|
_react.default.useImperativeHandle(ref, function () {
|
|
return {
|
|
nativeElement: groupRef.current || containerRef.current
|
|
};
|
|
});
|
|
|
|
// ================== Prefix & Suffix ================== //
|
|
if (hasAffix) {
|
|
// ================== Clear Icon ================== //
|
|
var clearIcon = null;
|
|
if (allowClear) {
|
|
var needClear = !disabled && !readOnly && value;
|
|
var clearIconCls = "".concat(prefixCls, "-clear-icon");
|
|
var iconNode = (0, _typeof2.default)(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';
|
|
clearIcon = /*#__PURE__*/_react.default.createElement("span", {
|
|
onClick: function onClick(event) {
|
|
handleReset === null || handleReset === void 0 || handleReset(event);
|
|
onClear === null || onClear === void 0 || onClear();
|
|
}
|
|
// Do not trigger onBlur when clear input
|
|
// https://github.com/ant-design/ant-design/issues/31200
|
|
,
|
|
onMouseDown: function onMouseDown(e) {
|
|
return e.preventDefault();
|
|
},
|
|
className: (0, _classnames.default)(clearIconCls, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(clearIconCls, "-hidden"), !needClear), "".concat(clearIconCls, "-has-suffix"), !!suffix)),
|
|
role: "button",
|
|
tabIndex: -1
|
|
}, iconNode);
|
|
}
|
|
var affixWrapperPrefixCls = "".concat(prefixCls, "-affix-wrapper");
|
|
var affixWrapperCls = (0, _classnames.default)(affixWrapperPrefixCls, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(prefixCls, "-disabled"), disabled), "".concat(affixWrapperPrefixCls, "-disabled"), disabled), "".concat(affixWrapperPrefixCls, "-focused"), focused), "".concat(affixWrapperPrefixCls, "-readonly"), readOnly), "".concat(affixWrapperPrefixCls, "-input-with-clear-btn"), suffix && allowClear && value), classes === null || classes === void 0 ? void 0 : classes.affixWrapper, classNames === null || classNames === void 0 ? void 0 : classNames.affixWrapper, classNames === null || classNames === void 0 ? void 0 : classNames.variant);
|
|
var suffixNode = (suffix || allowClear) && /*#__PURE__*/_react.default.createElement("span", {
|
|
className: (0, _classnames.default)("".concat(prefixCls, "-suffix"), classNames === null || classNames === void 0 ? void 0 : classNames.suffix),
|
|
style: styles === null || styles === void 0 ? void 0 : styles.suffix
|
|
}, clearIcon, suffix);
|
|
element = /*#__PURE__*/_react.default.createElement(AffixWrapperComponent, (0, _extends2.default)({
|
|
className: affixWrapperCls,
|
|
style: styles === null || styles === void 0 ? void 0 : styles.affixWrapper,
|
|
onClick: onInputClick
|
|
}, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.affixWrapper, {
|
|
ref: containerRef
|
|
}), prefix && /*#__PURE__*/_react.default.createElement("span", {
|
|
className: (0, _classnames.default)("".concat(prefixCls, "-prefix"), classNames === null || classNames === void 0 ? void 0 : classNames.prefix),
|
|
style: styles === null || styles === void 0 ? void 0 : styles.prefix
|
|
}, prefix), element, suffixNode);
|
|
}
|
|
|
|
// ================== Addon ================== //
|
|
if ((0, _commonUtils.hasAddon)(props)) {
|
|
var wrapperCls = "".concat(prefixCls, "-group");
|
|
var addonCls = "".concat(wrapperCls, "-addon");
|
|
var groupWrapperCls = "".concat(wrapperCls, "-wrapper");
|
|
var mergedWrapperClassName = (0, _classnames.default)("".concat(prefixCls, "-wrapper"), wrapperCls, classes === null || classes === void 0 ? void 0 : classes.wrapper, classNames === null || classNames === void 0 ? void 0 : classNames.wrapper);
|
|
var mergedGroupClassName = (0, _classnames.default)(groupWrapperCls, (0, _defineProperty2.default)({}, "".concat(groupWrapperCls, "-disabled"), disabled), classes === null || classes === void 0 ? void 0 : classes.group, classNames === null || classNames === void 0 ? void 0 : classNames.groupWrapper);
|
|
|
|
// Need another wrapper for changing display:table to display:inline-block
|
|
// and put style prop in wrapper
|
|
element = /*#__PURE__*/_react.default.createElement(GroupWrapperComponent, {
|
|
className: mergedGroupClassName,
|
|
ref: groupRef
|
|
}, /*#__PURE__*/_react.default.createElement(WrapperComponent, {
|
|
className: mergedWrapperClassName
|
|
}, addonBefore && /*#__PURE__*/_react.default.createElement(GroupAddonComponent, {
|
|
className: addonCls
|
|
}, addonBefore), element, addonAfter && /*#__PURE__*/_react.default.createElement(GroupAddonComponent, {
|
|
className: addonCls
|
|
}, addonAfter)));
|
|
}
|
|
|
|
// `className` and `style` are always on the root element
|
|
return /*#__PURE__*/_react.default.cloneElement(element, {
|
|
className: (0, _classnames.default)((_element$props = element.props) === null || _element$props === void 0 ? void 0 : _element$props.className, className) || null,
|
|
style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (_element$props2 = element.props) === null || _element$props2 === void 0 ? void 0 : _element$props2.style), style),
|
|
hidden: hidden
|
|
});
|
|
});
|
|
var _default = exports.default = BaseInput; |