UNPKG

6.09 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = void 0;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
18var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
20var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
22var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
24var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
26var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
28var _react = _interopRequireWildcard(require("react"));
29
30var _classnames = _interopRequireDefault(require("classnames"));
31
32var _Input = _interopRequireDefault(require("./Input"));
33
34var _button = _interopRequireDefault(require("../button"));
35
36var _enum = require("../_util/enum");
37
38var _configure = require("../configure");
39
40function _createSuper(Derived) {
41 function isNativeReflectConstruct() {
42 if (typeof Reflect === "undefined" || !Reflect.construct) return false;
43 if (Reflect.construct.sham) return false;
44 if (typeof Proxy === "function") return true;
45
46 try {
47 Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
48 return true;
49 } catch (e) {
50 return false;
51 }
52 }
53
54 return function () {
55 var Super = (0, _getPrototypeOf2["default"])(Derived),
56 result;
57
58 if (isNativeReflectConstruct()) {
59 var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor;
60 result = Reflect.construct(Super, arguments, NewTarget);
61 } else {
62 result = Super.apply(this, arguments);
63 }
64
65 return (0, _possibleConstructorReturn2["default"])(this, result);
66 };
67}
68
69var Search =
70/*#__PURE__*/
71function (_Component) {
72 (0, _inherits2["default"])(Search, _Component);
73
74 var _super = _createSuper(Search);
75
76 function Search() {
77 var _this;
78
79 (0, _classCallCheck2["default"])(this, Search);
80 _this = _super.apply(this, arguments);
81
82 _this.onSearch = function () {
83 var onSearch = _this.props.onSearch;
84
85 if (onSearch) {
86 onSearch(_this.input.input.value);
87 }
88
89 _this.input.focus();
90 };
91
92 _this.saveInput = function (node) {
93 _this.input = node;
94 };
95
96 return _this;
97 }
98
99 (0, _createClass2["default"])(Search, [{
100 key: "focus",
101 value: function focus() {
102 this.input.focus();
103 }
104 }, {
105 key: "blur",
106 value: function blur() {
107 this.input.blur();
108 }
109 }, {
110 key: "getPrefixCls",
111 value: function getPrefixCls() {
112 var prefixCls = this.props.prefixCls;
113 return (0, _configure.getPrefixCls)('input-search', prefixCls);
114 }
115 }, {
116 key: "getButtonOrIcon",
117 value: function getButtonOrIcon() {
118 var _this$props = this.props,
119 enterButton = _this$props.enterButton,
120 size = _this$props.size;
121
122 if (!enterButton) {
123 return _react["default"].createElement(_button["default"], {
124 type: "primary",
125 size: size,
126 shape: "circle",
127 icon: "search"
128 });
129 }
130
131 var enterButtonAsElement = enterButton;
132
133 if (enterButtonAsElement.type === _button["default"] || enterButtonAsElement.type === 'button') {
134 return (0, _react.cloneElement)(enterButtonAsElement, enterButtonAsElement.type === _button["default"] ? {
135 className: "".concat(this.getPrefixCls(), "-button"),
136 size: size,
137 onClick: this.onSearch
138 } : {
139 onClick: this.onSearch
140 });
141 }
142
143 if (enterButton === true) {
144 return _react["default"].createElement(_button["default"], {
145 type: "primary",
146 size: size,
147 shape: "circle",
148 onClick: this.onSearch,
149 icon: "search"
150 });
151 }
152
153 return _react["default"].createElement(_button["default"], {
154 type: "primary",
155 size: size,
156 onClick: this.onSearch,
157 key: "enterButton"
158 }, enterButton);
159 }
160 }, {
161 key: "render",
162 value: function render() {
163 var _classNames;
164
165 var _this$props2 = this.props,
166 className = _this$props2.className,
167 inputPrefixCls = _this$props2.inputPrefixCls,
168 size = _this$props2.size,
169 suffix = _this$props2.suffix,
170 enterButton = _this$props2.enterButton,
171 others = (0, _objectWithoutProperties2["default"])(_this$props2, ["className", "inputPrefixCls", "size", "suffix", "enterButton"]);
172 var prefixCls = this.getPrefixCls();
173 delete others.onSearch;
174 delete others.prefixCls;
175 var buttonOrIcon = this.getButtonOrIcon();
176 var searchSuffix = suffix ? [suffix, buttonOrIcon] : buttonOrIcon;
177 var inputClassName = (0, _classnames["default"])(prefixCls, className, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-enter-button"), !!enterButton), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-").concat(size), !!size), _classNames));
178 return _react["default"].createElement(_Input["default"], (0, _extends2["default"])({
179 onPressEnter: this.onSearch
180 }, others, {
181 size: size,
182 className: inputClassName,
183 prefixCls: (0, _configure.getPrefixCls)('input', inputPrefixCls),
184 suffix: searchSuffix,
185 ref: this.saveInput
186 }));
187 }
188 }]);
189 return Search;
190}(_react.Component);
191
192exports["default"] = Search;
193Search.displayName = 'Search';
194Search.defaultProps = {
195 enterButton: false,
196 size: _enum.Size.small
197};
198//# sourceMappingURL=Search.js.map