antd-mobile
Version:
基于 React 的移动设计规范实现
144 lines (113 loc) • 4.88 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = undefined;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _nukaCarousel = require('nuka-carousel');
var _nukaCarousel2 = _interopRequireDefault(_nukaCarousel);
var _objectAssign = require('object-assign');
var _objectAssign2 = _interopRequireDefault(_objectAssign);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var Carousel = function (_React$Component) {
(0, _inherits3["default"])(Carousel, _React$Component);
function Carousel(props) {
(0, _classCallCheck3["default"])(this, Carousel);
var _this = (0, _possibleConstructorReturn3["default"])(this, _React$Component.call(this, props));
_this.state = {
selectedIndex: _this.props.selectedIndex
};
_this.onChange = _this.onChange.bind(_this);
return _this;
}
Carousel.prototype.onChange = function onChange(index) {
this.setState({ selectedIndex: index });
};
Carousel.prototype.render = function render() {
var _props = this.props;
var prefixCls = _props.prefixCls;
var children = _props.children;
var current = this.state.selectedIndex;
var wrapCls = void 0;
if (!children) {
return null;
}
var props = (0, _objectAssign2["default"])({}, this.props);
if (props.infinite) {
props.wrapAround = true;
}
if (props.selectedIndex) {
props.slideIndex = props.selectedIndex;
}
if (props.beforeChange) {
props.beforeSlide = props.beforeChange;
}
if (props.afterChange) {
props.afterSlide = props.afterChange;
}
if (props.vertical) {
wrapCls = props.prefixCls + ' ' + props.prefixCls + '-vertical';
}
var Decorators = [{
component: _react2["default"].createClass({
displayName: 'component',
render: function render() {
var self = this;
var indexes = this.getIndexes(self.props.slideCount, self.props.slidesToScroll);
return _react2["default"].createElement(
'div',
{ className: prefixCls + '-wrap' },
indexes.map(function (index) {
var _classNames;
var dotCls = (0, _classnames2["default"])((_classNames = {}, (0, _defineProperty3["default"])(_classNames, prefixCls + '-wrap-dot', true), (0, _defineProperty3["default"])(_classNames, prefixCls + '-wrap-dot-active', index === current), _classNames));
return _react2["default"].createElement(
'div',
{ className: dotCls, key: index },
_react2["default"].createElement('span', null)
);
})
);
},
getIndexes: function getIndexes(count, inc) {
var arr = [];
for (var i = 0; i < count; i += inc) {
arr.push(i);
}
return arr;
}
}),
position: 'BottomCenter'
}];
return _react2["default"].createElement(
'div',
{ className: wrapCls },
_react2["default"].createElement(_nukaCarousel2["default"], (0, _extends3["default"])({}, props, { decorators: Decorators, afterSlide: this.onChange }))
);
};
return Carousel;
}(_react2["default"].Component);
exports["default"] = Carousel;
Carousel.defaultProps = {
prefixCls: 'am-carousel',
dots: true,
arrows: false,
autoplay: false,
infinite: false,
edgeEasing: 'linear',
cellAlign: 'center',
selectedIndex: 0
};
module.exports = exports['default'];
;