UNPKG

4.07 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends2 = require('babel-runtime/helpers/extends');
8
9var _extends3 = _interopRequireDefault(_extends2);
10
11var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
12
13var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14
15var _createClass2 = require('babel-runtime/helpers/createClass');
16
17var _createClass3 = _interopRequireDefault(_createClass2);
18
19var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
20
21var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22
23var _inherits2 = require('babel-runtime/helpers/inherits');
24
25var _inherits3 = _interopRequireDefault(_inherits2);
26
27var _react = require('react');
28
29var _react2 = _interopRequireDefault(_react);
30
31var _propTypes = require('prop-types');
32
33var _propTypes2 = _interopRequireDefault(_propTypes);
34
35var _utils = require('./utils');
36
37function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
38
39var 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.'); // eslint-disable-line
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
95Thumb.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};
106Thumb.defaultProps = {
107 component: 'div',
108 componentProps: {},
109 thumbClick: function thumbClick() {}
110};
111Thumb.isBannerAnimThumb = true;
112
113exports['default'] = Thumb;
114module.exports = exports['default'];
\No newline at end of file