1 | import _extends from 'babel-runtime/helpers/extends';
|
2 | import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
|
3 | import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
|
4 | import _inherits from 'babel-runtime/helpers/inherits';
|
5 |
|
6 | var _class, _temp;
|
7 |
|
8 | import React from 'react';
|
9 | import PropTypes from 'prop-types';
|
10 | import classNames from 'classnames';
|
11 | import { func } from '../../util';
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | var noop = func.noop;
|
19 | var Dots = (_temp = _class = function (_React$Component) {
|
20 | _inherits(Dots, _React$Component);
|
21 |
|
22 | function Dots() {
|
23 | _classCallCheck(this, Dots);
|
24 |
|
25 | return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
|
26 | }
|
27 |
|
28 | Dots.prototype.handleChangeSlide = function handleChangeSlide(options, e) {
|
29 | e.preventDefault();
|
30 |
|
31 | this.props.changeSlide(options);
|
32 | };
|
33 |
|
34 | Dots.prototype.render = function render() {
|
35 | var _props = this.props,
|
36 | prefix = _props.prefix,
|
37 | slideCount = _props.slideCount,
|
38 | slidesToScroll = _props.slidesToScroll,
|
39 | currentSlide = _props.currentSlide,
|
40 | dotsClass = _props.dotsClass,
|
41 | dotsDirection = _props.dotsDirection,
|
42 | dotsRender = _props.dotsRender,
|
43 | triggerType = _props.triggerType,
|
44 | rtl = _props.rtl;
|
45 |
|
46 |
|
47 | var dotsClazz = classNames(prefix + 'slick-dots', dotsDirection, dotsClass);
|
48 | var dotCount = Math.ceil(slideCount / slidesToScroll);
|
49 | var children = [];
|
50 |
|
51 | for (var i = 0; i < dotCount; i++) {
|
52 | var _handleProp;
|
53 |
|
54 | var leftBound = i * slidesToScroll;
|
55 | var rightBound = leftBound + slidesToScroll - 1;
|
56 | var itemClazz = classNames(prefix + 'slick-dots-item', {
|
57 | active: currentSlide >= leftBound && currentSlide <= rightBound
|
58 | });
|
59 | var dotOptions = {
|
60 | message: 'dots',
|
61 | index: i,
|
62 | slidesToScroll: slidesToScroll,
|
63 | currentSlide: currentSlide
|
64 | };
|
65 |
|
66 | var handleProp = (_handleProp = {}, _handleProp[triggerType.toLowerCase() === 'hover' ? 'onMouseEnter' : 'onClick'] = this.handleChangeSlide.bind(this, dotOptions), _handleProp);
|
67 |
|
68 | var docIndex = i;
|
69 | var currentSlideIndex = currentSlide;
|
70 | if (rtl) {
|
71 | docIndex = dotCount - 1 - i;
|
72 | currentSlideIndex = dotCount - 1 - currentSlide;
|
73 | }
|
74 |
|
75 | children.push(React.createElement(
|
76 | 'li',
|
77 | _extends({ key: i, className: itemClazz }, handleProp),
|
78 | dotsRender instanceof Function ? React.createElement(
|
79 | 'span',
|
80 | null,
|
81 | dotsRender(docIndex, currentSlideIndex)
|
82 | ) :
|
83 |
|
84 | React.createElement('button', { tabIndex: '-1' })
|
85 | ));
|
86 | }
|
87 |
|
88 | return React.createElement(
|
89 | 'ul',
|
90 | { className: dotsClazz, 'aria-hidden': 'true' },
|
91 | children
|
92 | );
|
93 | };
|
94 |
|
95 | return Dots;
|
96 | }(React.Component), _class.propTypes = {
|
97 | prefix: PropTypes.string,
|
98 | currentSlide: PropTypes.number,
|
99 | changeSlide: PropTypes.func,
|
100 | dotsClass: PropTypes.string,
|
101 | slideCount: PropTypes.number,
|
102 | slidesToScroll: PropTypes.number,
|
103 | dotsDirection: PropTypes.oneOf(['hoz', 'ver']),
|
104 | dotsRender: PropTypes.func,
|
105 | triggerType: PropTypes.string
|
106 | }, _class.defaultProps = {
|
107 | changeSlide: noop
|
108 | }, _temp);
|
109 | Dots.displayName = 'Dots';
|
110 | export { Dots as default }; |
\ | No newline at end of file |