1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _react = require('react');
|
8 |
|
9 | var _react2 = _interopRequireDefault(_react);
|
10 |
|
11 | var _propTypes = require('prop-types');
|
12 |
|
13 | var _propTypes2 = _interopRequireDefault(_propTypes);
|
14 |
|
15 | var _beeDropdown = require('bee-dropdown');
|
16 |
|
17 | var _beeDropdown2 = _interopRequireDefault(_beeDropdown);
|
18 |
|
19 | var _beeMenus = require('bee-menus');
|
20 |
|
21 | var _beeMenus2 = _interopRequireDefault(_beeMenus);
|
22 |
|
23 | var _beeButton = require('bee-button');
|
24 |
|
25 | var _beeButton2 = _interopRequireDefault(_beeButton);
|
26 |
|
27 | var _beeIcon = require('bee-icon');
|
28 |
|
29 | var _beeIcon2 = _interopRequireDefault(_beeIcon);
|
30 |
|
31 | var _i18n = require('./lib/i18n');
|
32 |
|
33 | var _i18n2 = _interopRequireDefault(_i18n);
|
34 |
|
35 | var _tool = require('bee-locale/build/tool');
|
36 |
|
37 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
38 |
|
39 | function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
|
40 |
|
41 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
42 |
|
43 | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
44 |
|
45 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } |
46 |
|
47 |
|
48 |
|
49 | var Item = _beeMenus2["default"].Item;
|
50 |
|
51 | var FilterDropDown = function (_Component) {
|
52 | _inherits(FilterDropDown, _Component);
|
53 |
|
54 | function FilterDropDown() {
|
55 | _classCallCheck(this, FilterDropDown);
|
56 |
|
57 | var _this = _possibleConstructorReturn(this, _Component.call(this));
|
58 |
|
59 | _this.onSelectDropdown = function (item) {
|
60 | var _this$props = _this.props,
|
61 | onSelectDropdown = _this$props.onSelectDropdown,
|
62 | filterDropdownType = _this$props.filterDropdownType;
|
63 |
|
64 | if (onSelectDropdown) {
|
65 | if (filterDropdownType == 'string') {
|
66 | _this.setState({
|
67 | selectValue: [item.key]
|
68 | }, function () {
|
69 | onSelectDropdown(item);
|
70 | });
|
71 | }
|
72 | if (filterDropdownType == 'number') {
|
73 | _this.setState({
|
74 | selectNumberValue: [item.key]
|
75 | }, function () {
|
76 | onSelectDropdown(item);
|
77 | });
|
78 | }
|
79 | }
|
80 | };
|
81 |
|
82 | _this.onClickClear = function () {
|
83 | var onClickClear = _this.props.onClickClear;
|
84 |
|
85 | if (onClickClear) {
|
86 | _this.setState({
|
87 |
|
88 |
|
89 | }, function () {
|
90 | onClickClear();
|
91 | });
|
92 | }
|
93 | };
|
94 |
|
95 | _this.getMenu = function () {
|
96 | var _this$state = _this.state,
|
97 | selectValue = _this$state.selectValue,
|
98 | selectNumberValue = _this$state.selectNumberValue;
|
99 | var _this$props2 = _this.props,
|
100 | filterDropdownType = _this$props2.filterDropdownType,
|
101 | filterDropdownIncludeKeys = _this$props2.filterDropdownIncludeKeys;
|
102 |
|
103 | var locale = (0, _tool.getComponentLocale)(_this.props, _this.context, 'Table', function () {
|
104 | return _i18n2["default"];
|
105 | });
|
106 | var stringEnum = {
|
107 | LIKE: 'include',
|
108 | ULIKE: 'exclusive',
|
109 | EQ: 'equal',
|
110 | UEQ: 'unequal',
|
111 | START: 'begin',
|
112 | END: 'end'
|
113 | };
|
114 | var numberEnum = {
|
115 | GT: 'greater_than',
|
116 | GTEQ: 'great_than_equal_to',
|
117 | LT: 'less_than',
|
118 | LTEQ: 'less_than_equal_to',
|
119 | EQ: 'be_equal_to',
|
120 | UEQ: 'not_equal_to'
|
121 | };
|
122 | if (filterDropdownIncludeKeys != undefined) {
|
123 | switch (filterDropdownType) {
|
124 | case 'string':
|
125 | return _react2["default"].createElement(
|
126 | _beeMenus2["default"],
|
127 | {
|
128 | onClick: _this.onSelectDropdown,
|
129 | selectedKeys: selectValue
|
130 | },
|
131 | filterDropdownIncludeKeys.map(function (item) {
|
132 | return _react2["default"].createElement(
|
133 | Item,
|
134 | { key: item },
|
135 | locale[stringEnum[item]]
|
136 | );
|
137 | })
|
138 | );
|
139 | case 'number':
|
140 | return _react2["default"].createElement(
|
141 | _beeMenus2["default"],
|
142 | {
|
143 | onClick: _this.onSelectDropdown,
|
144 | selectedKeys: selectNumberValue
|
145 | },
|
146 | filterDropdownIncludeKeys.map(function (item) {
|
147 | return _react2["default"].createElement(
|
148 | Item,
|
149 | { key: item },
|
150 | locale[numberEnum[item]]
|
151 | );
|
152 | })
|
153 | );
|
154 | default:
|
155 | return _react2["default"].createElement('div', null);
|
156 | }
|
157 | } else {
|
158 | switch (filterDropdownType) {
|
159 | case 'string':
|
160 | return _react2["default"].createElement(
|
161 | _beeMenus2["default"],
|
162 | {
|
163 | onClick: _this.onSelectDropdown,
|
164 | selectedKeys: selectValue
|
165 | },
|
166 | _react2["default"].createElement(
|
167 | Item,
|
168 | { key: 'LIKE' },
|
169 | locale['include']
|
170 | ),
|
171 | _react2["default"].createElement(
|
172 | Item,
|
173 | { key: 'ULIKE' },
|
174 | locale['exclusive']
|
175 | ),
|
176 | _react2["default"].createElement(
|
177 | Item,
|
178 | { key: 'EQ' },
|
179 | locale['equal']
|
180 | ),
|
181 | _react2["default"].createElement(
|
182 | Item,
|
183 | { key: 'UEQ' },
|
184 | locale['unequal']
|
185 | ),
|
186 | _react2["default"].createElement(
|
187 | Item,
|
188 | { key: 'RLIKE' },
|
189 | locale['begin']
|
190 | ),
|
191 | _react2["default"].createElement(
|
192 | Item,
|
193 | { key: 'LLIKE' },
|
194 | locale['end']
|
195 | )
|
196 | );
|
197 | case 'number':
|
198 | return _react2["default"].createElement(
|
199 | _beeMenus2["default"],
|
200 | {
|
201 | onClick: _this.onSelectDropdown,
|
202 | selectedKeys: selectNumberValue
|
203 | },
|
204 | _react2["default"].createElement(
|
205 | Item,
|
206 | { key: 'GT' },
|
207 | locale['greater_than']
|
208 | ),
|
209 | _react2["default"].createElement(
|
210 | Item,
|
211 | { key: 'GTEQ' },
|
212 | locale['great_than_equal_to']
|
213 | ),
|
214 | _react2["default"].createElement(
|
215 | Item,
|
216 | { key: 'LT' },
|
217 | locale['less_than']
|
218 | ),
|
219 | _react2["default"].createElement(
|
220 | Item,
|
221 | { key: 'LTEQ' },
|
222 | locale['less_than_equal_to']
|
223 | ),
|
224 | _react2["default"].createElement(
|
225 | Item,
|
226 | { key: 'EQ' },
|
227 | locale['be_equal_to']
|
228 | ),
|
229 | _react2["default"].createElement(
|
230 | Item,
|
231 | { key: 'UEQ' },
|
232 | locale['not_equal_to']
|
233 | )
|
234 | );
|
235 | default:
|
236 | return _react2["default"].createElement('div', null);
|
237 | }
|
238 | }
|
239 | };
|
240 |
|
241 | _this.state = {
|
242 | selectValue: ['LIKE'],
|
243 | selectNumberValue: ['EQ']
|
244 | };
|
245 | return _this;
|
246 | }
|
247 | |
248 |
|
249 |
|
250 |
|
251 |
|
252 |
|
253 |
|
254 | |
255 |
|
256 |
|
257 |
|
258 |
|
259 |
|
260 | |
261 |
|
262 |
|
263 |
|
264 |
|
265 |
|
266 |
|
267 | FilterDropDown.prototype.render = function render() {
|
268 | var isShowCondition = this.props.isShowCondition;
|
269 |
|
270 |
|
271 | return _react2["default"].createElement(
|
272 | 'div',
|
273 | { className: 'filter-btns' },
|
274 | isShowCondition == 'show' && _react2["default"].createElement(
|
275 | _beeDropdown2["default"],
|
276 | {
|
277 | overlayClassName: 'u-filter-dropdown-menu-wrap',
|
278 | trigger: ['click'],
|
279 | overlay: this.getMenu(),
|
280 | animation: 'slide-up'
|
281 | },
|
282 | _react2["default"].createElement(
|
283 | _beeButton2["default"],
|
284 | {
|
285 | shape: 'border',
|
286 | style: { marginLeft: "2px", minWidth: "0px", width: "26px", lineHeight: "24px", padding: 0 }
|
287 | },
|
288 | _react2["default"].createElement(_beeIcon2["default"], { style: { padding: 0, color: '#585858' }, type: 'uf-filter' })
|
289 | )
|
290 | ),
|
291 | _react2["default"].createElement(
|
292 | _beeButton2["default"],
|
293 | {
|
294 | onClick: this.onClickClear,
|
295 | shape: 'border',
|
296 | style: { marginLeft: "2px", minWidth: "0px", width: "26px", lineHeight: "24px", padding: 0, "visibility": this.props.isShowClear || this.state.selectValue.length > 0 ? "visible" : "hidden" }
|
297 | },
|
298 | _react2["default"].createElement(_beeIcon2["default"], { style: { padding: 0, color: '#585858', "visibility": this.props.isShowClear || this.state.selectValue.length > 0 ? "visible" : "hidden" }, type: 'uf-filterno' })
|
299 | )
|
300 | );
|
301 | };
|
302 |
|
303 | return FilterDropDown;
|
304 | }(_react.Component);
|
305 |
|
306 | FilterDropDown.propTypes = {
|
307 | isShowCondition: _propTypes2["default"].string,
|
308 | filterDropdownType: _propTypes2["default"].oneOf(['string', 'number'])
|
309 | };
|
310 |
|
311 | FilterDropDown.defaultProps = {
|
312 | isShowCondition: 'show',
|
313 | filterDropdownType: 'string'
|
314 | };
|
315 |
|
316 | FilterDropDown.contextTypes = {
|
317 | beeLocale: _propTypes2["default"].object
|
318 | };
|
319 | exports["default"] = FilterDropDown;
|
320 | module.exports = exports['default']; |
\ | No newline at end of file |