1 | 'use strict';
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.default = undefined;
|
5 |
|
6 | var _extends2 = require('babel-runtime/helpers/extends');
|
7 |
|
8 | var _extends3 = _interopRequireDefault(_extends2);
|
9 |
|
10 | var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
|
11 |
|
12 | var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
|
13 |
|
14 | var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
15 |
|
16 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
17 |
|
18 | var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
|
19 |
|
20 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
21 |
|
22 | var _inherits2 = require('babel-runtime/helpers/inherits');
|
23 |
|
24 | var _inherits3 = _interopRequireDefault(_inherits2);
|
25 |
|
26 | var _class, _temp2;
|
27 |
|
28 |
|
29 | var _react = require('react');
|
30 |
|
31 | var _react2 = _interopRequireDefault(_react);
|
32 |
|
33 | var _propTypes = require('prop-types');
|
34 |
|
35 | var _propTypes2 = _interopRequireDefault(_propTypes);
|
36 |
|
37 | var _reactDom = require('react-dom');
|
38 |
|
39 | var _menu = require('../../menu');
|
40 |
|
41 | var _menu2 = _interopRequireDefault(_menu);
|
42 |
|
43 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
44 |
|
45 | var SelectMenu = (_temp2 = _class = function (_Component) {
|
46 | (0, _inherits3.default)(SelectMenu, _Component);
|
47 |
|
48 | function SelectMenu() {
|
49 | var _temp, _this, _ret;
|
50 |
|
51 | (0, _classCallCheck3.default)(this, SelectMenu);
|
52 |
|
53 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
54 | args[_key] = arguments[_key];
|
55 | }
|
56 |
|
57 | return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.saveRef = function (ref) {
|
58 | _this.menuEl = ref;
|
59 | }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
|
60 | }
|
61 |
|
62 | SelectMenu.prototype.componentDidMount = function componentDidMount() {
|
63 | this.scrollToSelectedItem();
|
64 | };
|
65 |
|
66 | SelectMenu.prototype.scrollToSelectedItem = function scrollToSelectedItem() {
|
67 | var _props = this.props,
|
68 | prefix = _props.prefix,
|
69 | dataSource = _props.dataSource,
|
70 | value = _props.value;
|
71 |
|
72 |
|
73 | var selectedIndex = dataSource.findIndex(function (item) {
|
74 | return item.value === value;
|
75 | });
|
76 |
|
77 | if (selectedIndex === -1) {
|
78 | return;
|
79 | }
|
80 |
|
81 | var itemSelector = '.' + prefix + 'menu-item';
|
82 | var menu = (0, _reactDom.findDOMNode)(this.menuEl);
|
83 | var targetItem = menu.querySelectorAll(itemSelector)[selectedIndex];
|
84 | if (targetItem) {
|
85 | menu.scrollTop = targetItem.offsetTop - Math.floor((menu.clientHeight / targetItem.clientHeight - 1) / 2) * targetItem.clientHeight;
|
86 | }
|
87 | };
|
88 |
|
89 | SelectMenu.prototype.render = function render() {
|
90 | var _props2 = this.props,
|
91 | prefix = _props2.prefix,
|
92 | dataSource = _props2.dataSource,
|
93 | onChange = _props2.onChange,
|
94 | value = _props2.value,
|
95 | className = _props2.className,
|
96 | others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'dataSource', 'onChange', 'value', 'className']);
|
97 |
|
98 | return _react2.default.createElement(
|
99 | _menu2.default,
|
100 | (0, _extends3.default)({}, others, {
|
101 | ref: this.saveRef,
|
102 | selectMode: 'single',
|
103 | selectedKeys: [String(value)],
|
104 | onSelect: function onSelect(selectKeys) {
|
105 | return onChange(Number(selectKeys[0]));
|
106 | },
|
107 | role: 'listbox',
|
108 | className: prefix + 'calendar-panel-menu ' + className
|
109 | }),
|
110 | dataSource.map(function (_ref) {
|
111 | var label = _ref.label,
|
112 | value = _ref.value;
|
113 | return _react2.default.createElement(
|
114 | _menu2.default.Item,
|
115 | { key: value },
|
116 | label
|
117 | );
|
118 | })
|
119 | );
|
120 | };
|
121 |
|
122 | return SelectMenu;
|
123 | }(_react.Component), _class.isNextMenu = true, _class.propTypes = {
|
124 | dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
|
125 | value: _propTypes2.default.number,
|
126 | prefix: _propTypes2.default.string,
|
127 | onChange: _propTypes2.default.func,
|
128 | children: _propTypes2.default.node
|
129 | }, _temp2);
|
130 | SelectMenu.displayName = 'SelectMenu';
|
131 | exports.default = SelectMenu;
|
132 | module.exports = exports['default']; |
\ | No newline at end of file |