1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports["default"] = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15 |
|
16 | var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
17 |
|
18 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
19 |
|
20 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
21 |
|
22 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
23 |
|
24 | var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
25 |
|
26 | var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
27 |
|
28 | var _react = _interopRequireWildcard(require("react"));
|
29 |
|
30 | var _classnames = _interopRequireDefault(require("classnames"));
|
31 |
|
32 | var _Input = _interopRequireDefault(require("./Input"));
|
33 |
|
34 | var _button = _interopRequireDefault(require("../button"));
|
35 |
|
36 | var _enum = require("../_util/enum");
|
37 |
|
38 | var _configure = require("../configure");
|
39 |
|
40 | function _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 |
|
69 | var Search =
|
70 |
|
71 | function (_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 |
|
192 | exports["default"] = Search;
|
193 | Search.displayName = 'Search';
|
194 | Search.defaultProps = {
|
195 | enterButton: false,
|
196 | size: _enum.Size.small
|
197 | };
|
198 |
|