UNPKG

nuka-carousel

Version:
137 lines (129 loc) 3.66 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _createReactClass = require('create-react-class'); var _createReactClass2 = _interopRequireDefault(_createReactClass); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var DefaultDecorators = [{ component: (0, _createReactClass2.default)({ displayName: 'component', render: function render() { return _react2.default.createElement( 'button', { style: this.getButtonStyles(this.props.currentSlide === 0 && !this.props.wrapAround), onClick: this.handleClick }, 'PREV' ); }, handleClick: function handleClick(e) { e.preventDefault(); this.props.previousSlide(); }, getButtonStyles: function getButtonStyles(disabled) { return { border: 0, background: 'rgba(0,0,0,0.4)', color: 'white', padding: 10, outline: 0, opacity: disabled ? 0.3 : 1, cursor: 'pointer' }; } }), position: 'CenterLeft' }, { component: (0, _createReactClass2.default)({ displayName: 'component', render: function render() { return _react2.default.createElement( 'button', { style: this.getButtonStyles(this.props.currentSlide + this.props.slidesToScroll >= this.props.slideCount && !this.props.wrapAround), onClick: this.handleClick }, 'NEXT' ); }, handleClick: function handleClick(e) { e.preventDefault(); this.props.nextSlide(); }, getButtonStyles: function getButtonStyles(disabled) { return { border: 0, background: 'rgba(0,0,0,0.4)', color: 'white', padding: 10, outline: 0, opacity: disabled ? 0.3 : 1, cursor: 'pointer' }; } }), position: 'CenterRight' }, { component: (0, _createReactClass2.default)({ displayName: 'component', render: function render() { var self = this; var indexes = this.getIndexes(self.props.slideCount, self.props.slidesToScroll); return _react2.default.createElement( 'ul', { style: self.getListStyles() }, indexes.map(function (index) { return _react2.default.createElement( 'li', { style: self.getListItemStyles(), key: index }, _react2.default.createElement( 'button', { style: self.getButtonStyles(self.props.currentSlide === index), onClick: self.props.goToSlide.bind(null, index) }, '\u2022' ) ); }) ); }, getIndexes: function getIndexes(count, inc) { var arr = []; for (var i = 0; i < count; i += inc) { arr.push(i); } return arr; }, getListStyles: function getListStyles() { return { position: 'relative', margin: 0, top: -10, padding: 0 }; }, getListItemStyles: function getListItemStyles() { return { listStyleType: 'none', display: 'inline-block' }; }, getButtonStyles: function getButtonStyles(active) { return { border: 0, background: 'transparent', color: 'black', cursor: 'pointer', padding: 10, outline: 0, fontSize: 24, opacity: active ? 1 : 0.5 }; } }), position: 'BottomCenter' }]; exports.default = DefaultDecorators; module.exports = exports['default'];