UNPKG

8.44 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4var _typeof3 = require("@babel/runtime/helpers/typeof");
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13var _classnames = _interopRequireDefault(require("classnames"));
14var _react = _interopRequireWildcard(require("react"));
15var _commonUtils = require("./utils/commonUtils");
16function _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); }
17function _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; }
18var BaseInput = function BaseInput(props) {
19 var _element$props, _element$props2;
20 var inputEl = props.inputElement,
21 children = props.children,
22 prefixCls = props.prefixCls,
23 prefix = props.prefix,
24 suffix = props.suffix,
25 addonBefore = props.addonBefore,
26 addonAfter = props.addonAfter,
27 className = props.className,
28 style = props.style,
29 disabled = props.disabled,
30 readOnly = props.readOnly,
31 focused = props.focused,
32 triggerFocus = props.triggerFocus,
33 allowClear = props.allowClear,
34 value = props.value,
35 handleReset = props.handleReset,
36 hidden = props.hidden,
37 classes = props.classes,
38 classNames = props.classNames,
39 dataAttrs = props.dataAttrs,
40 styles = props.styles,
41 components = props.components;
42 var inputElement = children !== null && children !== void 0 ? children : inputEl;
43 var AffixWrapperComponent = (components === null || components === void 0 ? void 0 : components.affixWrapper) || 'span';
44 var GroupWrapperComponent = (components === null || components === void 0 ? void 0 : components.groupWrapper) || 'span';
45 var WrapperComponent = (components === null || components === void 0 ? void 0 : components.wrapper) || 'span';
46 var GroupAddonComponent = (components === null || components === void 0 ? void 0 : components.groupAddon) || 'span';
47 var containerRef = (0, _react.useRef)(null);
48 var onInputClick = function onInputClick(e) {
49 var _containerRef$current;
50 if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {
51 triggerFocus === null || triggerFocus === void 0 || triggerFocus();
52 }
53 };
54 var element = /*#__PURE__*/(0, _react.cloneElement)(inputElement, {
55 value: value
56 });
57
58 // ================== Prefix & Suffix ================== //
59 if ((0, _commonUtils.hasPrefixSuffix)(props)) {
60 var _clsx2;
61 // ================== Clear Icon ================== //
62 var clearIcon = null;
63 if (allowClear) {
64 var _clsx;
65 var needClear = !disabled && !readOnly && value;
66 var clearIconCls = "".concat(prefixCls, "-clear-icon");
67 var iconNode = (0, _typeof2.default)(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';
68 clearIcon = /*#__PURE__*/_react.default.createElement("span", {
69 onClick: handleReset
70 // Do not trigger onBlur when clear input
71 // https://github.com/ant-design/ant-design/issues/31200
72 ,
73 onMouseDown: function onMouseDown(e) {
74 return e.preventDefault();
75 },
76 className: (0, _classnames.default)(clearIconCls, (_clsx = {}, (0, _defineProperty2.default)(_clsx, "".concat(clearIconCls, "-hidden"), !needClear), (0, _defineProperty2.default)(_clsx, "".concat(clearIconCls, "-has-suffix"), !!suffix), _clsx)),
77 role: "button",
78 tabIndex: -1
79 }, iconNode);
80 }
81 var affixWrapperPrefixCls = "".concat(prefixCls, "-affix-wrapper");
82 var affixWrapperCls = (0, _classnames.default)(affixWrapperPrefixCls, (_clsx2 = {}, (0, _defineProperty2.default)(_clsx2, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_clsx2, "".concat(affixWrapperPrefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_clsx2, "".concat(affixWrapperPrefixCls, "-focused"), focused), (0, _defineProperty2.default)(_clsx2, "".concat(affixWrapperPrefixCls, "-readonly"), readOnly), (0, _defineProperty2.default)(_clsx2, "".concat(affixWrapperPrefixCls, "-input-with-clear-btn"), suffix && allowClear && value), _clsx2), classes === null || classes === void 0 ? void 0 : classes.affixWrapper, classNames === null || classNames === void 0 ? void 0 : classNames.affixWrapper);
83 var suffixNode = (suffix || allowClear) && /*#__PURE__*/_react.default.createElement("span", {
84 className: (0, _classnames.default)("".concat(prefixCls, "-suffix"), classNames === null || classNames === void 0 ? void 0 : classNames.suffix),
85 style: styles === null || styles === void 0 ? void 0 : styles.suffix
86 }, clearIcon, suffix);
87 element = /*#__PURE__*/_react.default.createElement(AffixWrapperComponent, (0, _extends2.default)({
88 className: affixWrapperCls,
89 style: styles === null || styles === void 0 ? void 0 : styles.affixWrapper,
90 onClick: onInputClick
91 }, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.affixWrapper, {
92 ref: containerRef
93 }), prefix && /*#__PURE__*/_react.default.createElement("span", {
94 className: (0, _classnames.default)("".concat(prefixCls, "-prefix"), classNames === null || classNames === void 0 ? void 0 : classNames.prefix),
95 style: styles === null || styles === void 0 ? void 0 : styles.prefix
96 }, prefix), element, suffixNode);
97 }
98
99 // ================== Addon ================== //
100 if ((0, _commonUtils.hasAddon)(props)) {
101 var wrapperCls = "".concat(prefixCls, "-group");
102 var addonCls = "".concat(wrapperCls, "-addon");
103 var groupWrapperCls = "".concat(wrapperCls, "-wrapper");
104 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);
105 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);
106
107 // Need another wrapper for changing display:table to display:inline-block
108 // and put style prop in wrapper
109 element = /*#__PURE__*/_react.default.createElement(GroupWrapperComponent, {
110 className: mergedGroupClassName
111 }, /*#__PURE__*/_react.default.createElement(WrapperComponent, {
112 className: mergedWrapperClassName
113 }, addonBefore && /*#__PURE__*/_react.default.createElement(GroupAddonComponent, {
114 className: addonCls
115 }, addonBefore), element, addonAfter && /*#__PURE__*/_react.default.createElement(GroupAddonComponent, {
116 className: addonCls
117 }, addonAfter)));
118 }
119
120 // `className` and `style` are always on the root element
121 return /*#__PURE__*/_react.default.cloneElement(element, {
122 className: (0, _classnames.default)((_element$props = element.props) === null || _element$props === void 0 ? void 0 : _element$props.className, className) || null,
123 style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (_element$props2 = element.props) === null || _element$props2 === void 0 ? void 0 : _element$props2.style), style),
124 hidden: hidden
125 });
126};
127var _default = exports.default = BaseInput;
\No newline at end of file