backpack-ui
Version:
Lonely Planet's Components
239 lines (196 loc) • 6.71 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.rules = undefined;
var _extends2 = require("babel-runtime/helpers/extends");
var _extends3 = _interopRequireDefault(_extends2);
var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require("babel-runtime/helpers/createClass");
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require("babel-runtime/helpers/inherits");
var _inherits3 = _interopRequireDefault(_inherits2);
var _defineProperty2 = require("babel-runtime/helpers/defineProperty");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _radium = require("radium");
var _radium2 = _interopRequireDefault(_radium);
var _reactSlick = require("react-slick");
var _reactSlick2 = _interopRequireDefault(_reactSlick);
var _colors = require("../../styles/colors");
var _colors2 = _interopRequireDefault(_colors);
var _mq = require("../../styles/mq");
var _mq2 = _interopRequireDefault(_mq);
var _zIndex = require("../../styles/zIndex");
var _zIndex2 = _interopRequireDefault(_zIndex);
var _color = require("../../utils/color");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var rules = exports.rules = {
".slick-dots": {
marginRight: "auto",
marginLeft: "auto",
height: "34px",
position: "absolute",
textAlign: "center",
right: 0,
left: 0,
bottom: "32px"
},
".slick-dots li": {
width: "12px"
},
".slick-dots li:first-of-type": {
marginLeft: 0
},
".slick-track": {
position: "relative"
},
".slick-slide": {
zIndex: _zIndex2.default.default,
position: "relative !important",
width: "100%"
},
".slick-slide.slick-active": {
zIndex: _zIndex2.default.middle,
position: "relative !important"
},
".slick-slide img": {
maxWidth: "100px"
},
".slick-dots button:before": {
opacity: 1,
fontSize: "10px",
color: "rgba(" + (0, _color.rgb)(_colors2.default.bgPrimary) + ", 0.37)"
},
".slick-dots .slick-active button:before": {
opacity: 1,
color: "rgba(" + (0, _color.rgb)(_colors2.default.bgPrimary) + ", 1)"
},
".slick-prev": {
left: "52px",
zIndex: _zIndex2.default.middle + 1
},
".slick-next": {
right: "52px",
zIndex: _zIndex2.default.middle + 1
},
".slick-arrow:before": {
content: "",
display: "none"
},
".slick-slider": { display: "none" },
".slick-slider.slick-initialized,.slick-slide:first-child": { display: "block" },
".slick-cloned:first-of-type": {
display: "none !important"
}
};
var styles = {
slideContainer: (0, _defineProperty3.default)({
overflowY: "hidden",
minHeight: "370px"
}, "@media (min-width: " + _mq2.default.min[720] + ")", {
minHeight: "650px"
}),
slide: (0, _defineProperty3.default)({
width: "100%",
position: "absolute",
minHeight: "370px"
}, "@media (min-width: " + _mq2.default.min[720] + ")", {
minHeight: "650px"
}),
// REM units being used to match what is currently in rizz-next
isUnderGlobalHeader: (0, _defineProperty3.default)({
marginTop: "-5rem"
}, "@media (min-width: " + _mq2.default.min[720] + ")", {
marginTop: "-13rem"
})
};
var MastheadSlider = function (_Component) {
(0, _inherits3.default)(MastheadSlider, _Component);
function MastheadSlider(props) {
(0, _classCallCheck3.default)(this, MastheadSlider);
var _this = (0, _possibleConstructorReturn3.default)(this, (MastheadSlider.__proto__ || (0, _getPrototypeOf2.default)(MastheadSlider)).call(this, props));
_this.renderSlide = _this.renderSlide.bind(_this);
return _this;
}
(0, _createClass3.default)(MastheadSlider, [{
key: "renderSlide",
value: function renderSlide(slide, index) {
return _react2.default.createElement(
"div",
{ key: index, style: [styles.slide, { height: this.props.height }] },
slide
);
}
}, {
key: "render",
value: function render() {
var _props = this.props,
slides = _props.slides,
settings = _props.settings,
customSettings = _props.customSettings,
isUnderGlobalHeader = _props.isUnderGlobalHeader;
return _react2.default.createElement(
"div",
{
className: "MastheadSlider",
style: [styles.slideContainer, isUnderGlobalHeader && styles.isUnderGlobalHeader, {
height: this.props.height
}]
},
_react2.default.createElement(_radium.Style, {
scopeSelector: ".MastheadSlider",
rules: rules
}),
_react2.default.createElement(
_reactSlick2.default,
(0, _extends3.default)({}, settings, customSettings),
slides.map(this.renderSlide)
)
);
}
}]);
return MastheadSlider;
}(_react.Component);
MastheadSlider.propTypes = {
isUnderGlobalHeader: _propTypes2.default.bool,
height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
slides: _propTypes2.default.arrayOf(_propTypes2.default.node),
settings: _propTypes2.default.objectOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool, _propTypes2.default.object, _propTypes2.default.array])),
customSettings: _propTypes2.default.objectOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool, _propTypes2.default.object]))
};
MastheadSlider.defaultProps = {
// React Slick settings
height: "100vh",
settings: {
dots: true,
dotsClass: "slick-dots container",
touchThreshold: 10,
pauseOnHover: false,
autoplaySpeed: 7000,
infinite: true,
speed: 250,
slidesToShow: 1,
slidesToScroll: 1,
fade: false,
cssEase: "linear",
arrows: true,
swipe: true,
responsive: [{
breakpoint: 720,
settings: {
arrows: false,
centerMode: false
}
}]
}
};
exports.default = (0, _radium2.default)(MastheadSlider);