UNPKG

6.41 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _typeof = require("@babel/runtime/helpers/typeof");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = void 0;
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
16var React = _interopRequireWildcard(require("react"));
17
18var _classnames = _interopRequireDefault(require("classnames"));
19
20var _ref = require("rc-util/lib/ref");
21
22var _SearchOutlined = _interopRequireDefault(require("@ant-design/icons/SearchOutlined"));
23
24var _Input = _interopRequireDefault(require("./Input"));
25
26var _button = _interopRequireDefault(require("../button"));
27
28var _SizeContext = _interopRequireDefault(require("../config-provider/SizeContext"));
29
30var _configProvider = require("../config-provider");
31
32var _reactNode = require("../_util/reactNode");
33
34function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
36function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
38var __rest = void 0 && (void 0).__rest || function (s, e) {
39 var t = {};
40
41 for (var p in s) {
42 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
43 }
44
45 if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
46 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
47 }
48 return t;
49};
50
51var Search = /*#__PURE__*/React.forwardRef(function (props, ref) {
52 var _classNames;
53
54 var customizePrefixCls = props.prefixCls,
55 customizeInputPrefixCls = props.inputPrefixCls,
56 className = props.className,
57 customizeSize = props.size,
58 suffix = props.suffix,
59 _props$enterButton = props.enterButton,
60 enterButton = _props$enterButton === void 0 ? false : _props$enterButton,
61 addonAfter = props.addonAfter,
62 loading = props.loading,
63 disabled = props.disabled,
64 customOnSearch = props.onSearch,
65 customOnChange = props.onChange,
66 restProps = __rest(props, ["prefixCls", "inputPrefixCls", "className", "size", "suffix", "enterButton", "addonAfter", "loading", "disabled", "onSearch", "onChange"]);
67
68 var _React$useContext = React.useContext(_configProvider.ConfigContext),
69 getPrefixCls = _React$useContext.getPrefixCls,
70 direction = _React$useContext.direction;
71
72 var contextSize = React.useContext(_SizeContext["default"]);
73 var size = customizeSize || contextSize;
74 var inputRef = React.useRef(null);
75
76 var onChange = function onChange(e) {
77 if (e && e.target && e.type === 'click' && customOnSearch) {
78 customOnSearch(e.target.value, e);
79 }
80
81 if (customOnChange) {
82 customOnChange(e);
83 }
84 };
85
86 var onMouseDown = function onMouseDown(e) {
87 var _a;
88
89 if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {
90 e.preventDefault();
91 }
92 };
93
94 var onSearch = function onSearch(e) {
95 var _a;
96
97 if (customOnSearch) {
98 customOnSearch((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input.value, e);
99 }
100 };
101
102 var prefixCls = getPrefixCls('input-search', customizePrefixCls);
103 var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);
104 var searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(_SearchOutlined["default"], null) : null;
105 var btnClassName = "".concat(prefixCls, "-button");
106 var button;
107 var enterButtonAsElement = enterButton || {};
108 var isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;
109
110 if (isAntdButton || enterButtonAsElement.type === 'button') {
111 button = (0, _reactNode.cloneElement)(enterButtonAsElement, (0, _extends2["default"])({
112 onMouseDown: onMouseDown,
113 onClick: onSearch,
114 key: 'enterButton'
115 }, isAntdButton ? {
116 className: btnClassName,
117 size: size
118 } : {}));
119 } else {
120 button = /*#__PURE__*/React.createElement(_button["default"], {
121 className: btnClassName,
122 type: enterButton ? 'primary' : undefined,
123 size: size,
124 disabled: disabled,
125 key: "enterButton",
126 onMouseDown: onMouseDown,
127 onClick: onSearch,
128 loading: loading,
129 icon: searchIcon
130 }, enterButton);
131 }
132
133 if (addonAfter) {
134 button = [button, (0, _reactNode.cloneElement)(addonAfter, {
135 key: 'addonAfter'
136 })];
137 }
138
139 var cls = (0, _classnames["default"])(prefixCls, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-rtl"), direction === 'rtl'), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-").concat(size), !!size), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-with-button"), !!enterButton), _classNames), className);
140 return /*#__PURE__*/React.createElement(_Input["default"], (0, _extends2["default"])({
141 ref: (0, _ref.composeRef)(inputRef, ref),
142 onPressEnter: onSearch
143 }, restProps, {
144 size: size,
145 prefixCls: inputPrefixCls,
146 addonAfter: button,
147 suffix: suffix,
148 onChange: onChange,
149 className: cls,
150 disabled: disabled
151 }));
152});
153Search.displayName = 'Search';
154var _default = Search;
155exports["default"] = _default;
\No newline at end of file