1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
8 |
|
9 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
10 |
|
11 | var _createClass2 = require('babel-runtime/helpers/createClass');
|
12 |
|
13 | var _createClass3 = _interopRequireDefault(_createClass2);
|
14 |
|
15 | var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
|
16 |
|
17 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
18 |
|
19 | var _inherits2 = require('babel-runtime/helpers/inherits');
|
20 |
|
21 | var _inherits3 = _interopRequireDefault(_inherits2);
|
22 |
|
23 | var _react = require('react');
|
24 |
|
25 | var React = _interopRequireWildcard(_react);
|
26 |
|
27 | var _DatePicker = require('./DatePicker.base');
|
28 |
|
29 | var _DatePicker2 = _interopRequireDefault(_DatePicker);
|
30 |
|
31 | var _WeekPanel = require('./date/WeekPanel');
|
32 |
|
33 | var _WeekPanel2 = _interopRequireDefault(_WeekPanel);
|
34 |
|
35 | var _SingleMonth = require('./date/SingleMonth');
|
36 |
|
37 | var _SingleMonth2 = _interopRequireDefault(_SingleMonth);
|
38 |
|
39 | var _DOMScroller = require('zscroller/lib/DOMScroller');
|
40 |
|
41 | var _DOMScroller2 = _interopRequireDefault(_DOMScroller);
|
42 |
|
43 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
44 |
|
45 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
46 |
|
47 | var DatePicker = function (_Component) {
|
48 | (0, _inherits3['default'])(DatePicker, _Component);
|
49 |
|
50 | function DatePicker() {
|
51 | (0, _classCallCheck3['default'])(this, DatePicker);
|
52 |
|
53 | var _this = (0, _possibleConstructorReturn3['default'])(this, (DatePicker.__proto__ || Object.getPrototypeOf(DatePicker)).apply(this, arguments));
|
54 |
|
55 | _this.genMonthComponent = function (data) {
|
56 | if (!data) return;
|
57 | return React.createElement(_SingleMonth2['default'], { key: data.title, locale: _this.props.locale || {}, monthData: data, rowSize: _this.props.rowSize, onCellClick: _this.onCellClick, getDateExtra: _this.props.getDateExtra, ref: function ref(dom) {
|
58 | data.componentRef = dom || undefined;
|
59 | data.updateLayout = function () {
|
60 | _this.computeHeight(data, dom);
|
61 | };
|
62 | data.updateLayout();
|
63 | } });
|
64 | };
|
65 | _this.computeHeight = function (data, singleMonth) {
|
66 | if (singleMonth && singleMonth.wrapperDivDOM) {
|
67 |
|
68 | if (!data.height && !singleMonth.wrapperDivDOM.clientHeight) {
|
69 | setTimeout(function () {
|
70 | return _this.computeHeight(data, singleMonth);
|
71 | }, 500);
|
72 | return;
|
73 | }
|
74 | data.height = singleMonth.wrapperDivDOM.clientHeight || data.height || 0;
|
75 | data.y = singleMonth.wrapperDivDOM.offsetTop || data.y || 0;
|
76 | }
|
77 | };
|
78 | _this.setLayout = function (dom) {
|
79 | if (!_this.scroller) {
|
80 | var _this$props = _this.props,
|
81 | infinite = _this$props.infinite,
|
82 | initalMonths = _this$props.initalMonths,
|
83 | onLayout = _this$props.onLayout;
|
84 |
|
85 | onLayout && onLayout(dom.clientHeight);
|
86 | var scrollHandler = _this.createOnScroll();
|
87 | if (infinite) {
|
88 | _this.scroller = new _DOMScroller2['default'](dom.children[0], {
|
89 | scrollingX: false,
|
90 | onScroll: function onScroll() {
|
91 | return scrollHandler({
|
92 | client: dom.clientHeight,
|
93 | full: dom.children[0].clientHeight,
|
94 | top: _this.scroller.getValues().top
|
95 | });
|
96 | }
|
97 | }).scroller;
|
98 | _this.scroller.activatePullToRefresh(40, function () {}, function () {}, function () {
|
99 | _this.canLoadPrev() && _this.genMonthData(_this.state.months[0].firstDate, -1);
|
100 | _this.visibleMonth = _this.visibleMonth.slice(0, initalMonths);
|
101 | _this.state.months.forEach(function (m) {
|
102 | m.updateLayout && m.updateLayout();
|
103 | });
|
104 | _this.scroller.finishPullToRefresh();
|
105 | });
|
106 | } else {
|
107 | _this.scroller = true;
|
108 | dom.onscroll = function (evt) {
|
109 | scrollHandler({
|
110 | client: dom.clientHeight,
|
111 | full: evt.target.clientHeight,
|
112 | top: evt.target.scrollTop
|
113 | });
|
114 | };
|
115 | }
|
116 | }
|
117 | };
|
118 | return _this;
|
119 | }
|
120 |
|
121 | (0, _createClass3['default'])(DatePicker, [{
|
122 | key: 'render',
|
123 | value: function render() {
|
124 | var _this2 = this;
|
125 |
|
126 | var _props = this.props,
|
127 | infinite = _props.infinite,
|
128 | _props$prefixCls = _props.prefixCls,
|
129 | prefixCls = _props$prefixCls === undefined ? '' : _props$prefixCls,
|
130 | _props$locale = _props.locale,
|
131 | locale = _props$locale === undefined ? {} : _props$locale;
|
132 |
|
133 | return React.createElement(
|
134 | 'div',
|
135 | { className: prefixCls + ' date-picker' },
|
136 | React.createElement(_WeekPanel2['default'], null),
|
137 | React.createElement(
|
138 | 'div',
|
139 | { className: 'wrapper', style: {
|
140 | overflowX: 'hidden',
|
141 | overflowY: infinite ? 'hidden' : 'scroll'
|
142 | }, ref: this.setLayout },
|
143 | React.createElement(
|
144 | 'div',
|
145 | null,
|
146 | this.canLoadPrev() && React.createElement(
|
147 | 'div',
|
148 | { className: 'load-tip' },
|
149 | locale.loadPrevMonth
|
150 | ),
|
151 | React.createElement(
|
152 | 'div',
|
153 | { className: 'months' },
|
154 | this.state.months.map(function (m) {
|
155 | var hidden = m.height && _this2.visibleMonth.indexOf(m) < 0;
|
156 | if (hidden) {
|
157 | return React.createElement('div', { key: m.title + '_shallow', style: { height: m.height } });
|
158 | }
|
159 | return m.component;
|
160 | })
|
161 | )
|
162 | )
|
163 | )
|
164 | );
|
165 | }
|
166 | }]);
|
167 | return DatePicker;
|
168 | }(_DatePicker2['default']);
|
169 |
|
170 | exports['default'] = DatePicker;
|
171 | module.exports = exports['default']; |
\ | No newline at end of file |