1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _extends2 = require('babel-runtime/helpers/extends');
|
8 |
|
9 | var _extends3 = _interopRequireDefault(_extends2);
|
10 |
|
11 | var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
12 |
|
13 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
14 |
|
15 | var _createClass2 = require('babel-runtime/helpers/createClass');
|
16 |
|
17 | var _createClass3 = _interopRequireDefault(_createClass2);
|
18 |
|
19 | var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
|
20 |
|
21 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
22 |
|
23 | var _inherits2 = require('babel-runtime/helpers/inherits');
|
24 |
|
25 | var _inherits3 = _interopRequireDefault(_inherits2);
|
26 |
|
27 | var _react = require('react');
|
28 |
|
29 | var _react2 = _interopRequireDefault(_react);
|
30 |
|
31 | var _propTypes = require('prop-types');
|
32 |
|
33 | var _propTypes2 = _interopRequireDefault(_propTypes);
|
34 |
|
35 | var _utils = require('./utils');
|
36 |
|
37 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
38 |
|
39 | var Thumb = function (_Component) {
|
40 | (0, _inherits3['default'])(Thumb, _Component);
|
41 |
|
42 | function Thumb() {
|
43 | var _ref;
|
44 |
|
45 | var _temp, _this, _ret;
|
46 |
|
47 | (0, _classCallCheck3['default'])(this, Thumb);
|
48 |
|
49 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
50 | args[_key] = arguments[_key];
|
51 | }
|
52 |
|
53 | return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref = Thumb.__proto__ || Object.getPrototypeOf(Thumb)).call.apply(_ref, [this].concat(args))), _this), _this.getDefaultThumb = function () {
|
54 | var children = [];
|
55 | for (var i = 0; i < _this.props.length; i++) {
|
56 | children.push(_react2['default'].createElement('span', { key: i }));
|
57 | }
|
58 | return children;
|
59 | }, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
|
60 | }
|
61 |
|
62 | (0, _createClass3['default'])(Thumb, [{
|
63 | key: 'render',
|
64 | value: function render() {
|
65 | var _this2 = this;
|
66 |
|
67 | var className = 'banner-anim-thumb';
|
68 | var defaultClass = className + '-default';
|
69 | className = (className + ' ' + (this.props.prefixCls || '')).trim();
|
70 | className = !this.props['default'] ? className : (className + ' ' + defaultClass).trim();
|
71 | var children = this.props['default'] ? this.getDefaultThumb() : this.props.children;
|
72 | if (this.props.length && (0, _utils.toArrayChildren)(children).length !== this.props.length) {
|
73 | console.warn('The thumbnail length and the images length different.');
|
74 | }
|
75 | var childToRender = (0, _utils.toArrayChildren)(children).map(function (item, i) {
|
76 | var props = (0, _extends3['default'])({}, item.props);
|
77 | props.onClick = function (e) {
|
78 | e.stopPropagation();
|
79 | _this2.props.thumbClick(i);
|
80 | };
|
81 | props.className = ((props.className || '') + ' ' + (_this2.props.active === i ? 'active' : '')).trim();
|
82 | return _react2['default'].cloneElement(item, props);
|
83 | });
|
84 | var props = (0, _extends3['default'])({}, this.props, this.props.componentProps);
|
85 | ['length', 'thumbClick', 'active', 'default', 'component', 'componentProps', 'prefixCls'].forEach(function (key) {
|
86 | return delete props[key];
|
87 | });
|
88 | props.className = className;
|
89 | return _react2['default'].createElement(this.props.component, props, childToRender);
|
90 | }
|
91 | }]);
|
92 | return Thumb;
|
93 | }(_react.Component);
|
94 |
|
95 | Thumb.propTypes = {
|
96 | children: _propTypes2['default'].any,
|
97 | style: _propTypes2['default'].object,
|
98 | prefixCls: _propTypes2['default'].string,
|
99 | component: _propTypes2['default'].any,
|
100 | thumbClick: _propTypes2['default'].func,
|
101 | 'default': _propTypes2['default'].bool,
|
102 | length: _propTypes2['default'].number,
|
103 | active: _propTypes2['default'].number,
|
104 | componentProps: _propTypes2['default'].object
|
105 | };
|
106 | Thumb.defaultProps = {
|
107 | component: 'div',
|
108 | componentProps: {},
|
109 | thumbClick: function thumbClick() {}
|
110 | };
|
111 | Thumb.isBannerAnimThumb = true;
|
112 |
|
113 | exports['default'] = Thumb;
|
114 | module.exports = exports['default']; |
\ | No newline at end of file |