Repository URL to install this package:
|
Version:
4.2.0-a11y.0 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const tslib_1 = require("tslib");
const react_1 = tslib_1.__importDefault(require("react"));
const mobx_react_1 = require("mobx-react");
const exotic_1 = require("exotic");
const deps_1 = require("./deps");
const renderProps_1 = require("./renderProps");
const handlers_1 = require("./handlers");
let MediaCarousel = class MediaCarousel extends react_1.default.Component {
constructor() {
super(...arguments);
this.observableState = deps_1.toMediaCarouselState(this.props);
this.handleArrowNavigation = event => {
if (event && event.keyCode === 37) {
this.observableState.toPrevious();
} else if (event && event.keyCode === 39) {
this.observableState.toNext();
}
};
}
render() {
const _a = this.props,
{
renderWrapper
} = _a,
remainingProps = tslib_1.__rest(_a, ["renderWrapper"]);
const items = this.props && this.props.list || []; // assigning values to state
const deviceColSpan = deps_1.getDeviceColSpan(remainingProps);
const swipingAttributes = {
onTouchStart: handlers_1.handleTouchStart,
onTouchMove: handlers_1.handleTouchMove,
onTouchEnd: e => handlers_1.handleTouchEnd(e, this.observableState, remainingProps),
onMouseDown: handlers_1.handleDragStart,
onMouseUp: e => handlers_1.handleDragEnd(e, this.observableState, remainingProps),
translatePercentage: this.observableState.translatePercentage
};
const attributes = deviceColSpan >= items.length ? Object.assign({}, remainingProps, {
hasArrows: false,
hasBullets: false
}) : Object.assign({}, remainingProps, {
swipingAttributes
});
this.observableState.update(remainingProps);
this.observableState.setStep(deviceColSpan);
const children = react_1.default.createElement(react_1.default.Fragment, null, renderProps_1.defaultRenderCarouselPanel(Object.assign({
handleArrowNavigation: this.handleArrowNavigation
}, attributes), this.observableState));
const view = renderWrapper(Object.assign({
children
}, remainingProps), this.observableState);
return view;
}
};
MediaCarousel.defaultProps = {
// props
className: '',
list: exotic_1.EMPTY_ARRAY,
gridGap: 10,
desktopColSpan: 4,
tabletColSpan: 3,
mobileColSpan: 2,
itemHeight: 300,
hasArrows: true,
hasBullets: true,
// renderProps
renderItem: renderProps_1.defaultRenderItem,
renderList: renderProps_1.defaultRenderList,
renderArrows: renderProps_1.defaultRenderArrows,
renderBullets: renderProps_1.defaultRenderBullets,
renderWrapper: renderProps_1.defaultRenderWrapper
};
MediaCarousel = tslib_1.__decorate([mobx_react_1.observer], MediaCarousel);
exports.MediaCarousel = MediaCarousel;
exports.default = MediaCarousel; //# sourceMappingURL=MediaCarousel.js.map