Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/ui / dist / components / organisms / MediaCarousel / MediaCarousel.js
Size: Mime:
"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