first commit
This commit is contained in:
687
frontend/node_modules/@ant-design/react-slick/es/inner-slider.js
generated
vendored
Normal file
687
frontend/node_modules/@ant-design/react-slick/es/inner-slider.js
generated
vendored
Normal file
@@ -0,0 +1,687 @@
|
||||
"use strict";
|
||||
|
||||
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
||||
import _extends from "@babel/runtime/helpers/esm/extends";
|
||||
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
||||
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
||||
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
||||
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
||||
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
||||
import _isNativeReflectConstruct from "@babel/runtime/helpers/esm/isNativeReflectConstruct";
|
||||
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
||||
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
||||
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
||||
var _excluded = ["animating"];
|
||||
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
||||
import React from "react";
|
||||
import initialState from "./initial-state";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import classnames from "classnames";
|
||||
import { getOnDemandLazySlides, extractObject, initializedState, getHeight, canGoNext, slideHandler, changeSlide, keyHandler, swipeStart, swipeMove, swipeEnd, getPreClones, getPostClones, getTrackLeft, getTrackCSS } from "./utils/innerSliderUtils";
|
||||
import { Track } from "./track";
|
||||
import { Dots } from "./dots";
|
||||
import { PrevArrow, NextArrow } from "./arrows";
|
||||
import ResizeObserver from "resize-observer-polyfill";
|
||||
export var InnerSlider = /*#__PURE__*/function (_React$Component) {
|
||||
function InnerSlider(props) {
|
||||
var _this;
|
||||
_classCallCheck(this, InnerSlider);
|
||||
_this = _callSuper(this, InnerSlider, [props]);
|
||||
_defineProperty(_this, "listRefHandler", function (ref) {
|
||||
return _this.list = ref;
|
||||
});
|
||||
_defineProperty(_this, "trackRefHandler", function (ref) {
|
||||
return _this.track = ref;
|
||||
});
|
||||
_defineProperty(_this, "adaptHeight", function () {
|
||||
if (_this.props.adaptiveHeight && _this.list) {
|
||||
var elem = _this.list.querySelector("[data-index=\"".concat(_this.state.currentSlide, "\"]"));
|
||||
_this.list.style.height = getHeight(elem) + "px";
|
||||
}
|
||||
});
|
||||
_defineProperty(_this, "componentDidMount", function () {
|
||||
_this.props.onInit && _this.props.onInit();
|
||||
if (_this.props.lazyLoad) {
|
||||
var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, _this.props), _this.state));
|
||||
if (slidesToLoad.length > 0) {
|
||||
_this.setState(function (prevState) {
|
||||
return {
|
||||
lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)
|
||||
};
|
||||
});
|
||||
if (_this.props.onLazyLoad) {
|
||||
_this.props.onLazyLoad(slidesToLoad);
|
||||
}
|
||||
}
|
||||
}
|
||||
var spec = _objectSpread({
|
||||
listRef: _this.list,
|
||||
trackRef: _this.track
|
||||
}, _this.props);
|
||||
_this.updateState(spec, true, function () {
|
||||
_this.adaptHeight();
|
||||
_this.props.autoplay && _this.autoPlay("playing");
|
||||
});
|
||||
if (_this.props.lazyLoad === "progressive") {
|
||||
_this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);
|
||||
}
|
||||
_this.ro = new ResizeObserver(function () {
|
||||
if (_this.state.animating) {
|
||||
_this.onWindowResized(false); // don't set trackStyle hence don't break animation
|
||||
_this.callbackTimers.push(setTimeout(function () {
|
||||
return _this.onWindowResized();
|
||||
}, _this.props.speed));
|
||||
} else {
|
||||
_this.onWindowResized();
|
||||
}
|
||||
});
|
||||
_this.ro.observe(_this.list);
|
||||
document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(".slick-slide"), function (slide) {
|
||||
slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;
|
||||
slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;
|
||||
});
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener("resize", _this.onWindowResized);
|
||||
} else {
|
||||
window.attachEvent("onresize", _this.onWindowResized);
|
||||
}
|
||||
});
|
||||
_defineProperty(_this, "componentWillUnmount", function () {
|
||||
if (_this.animationEndCallback) {
|
||||
clearTimeout(_this.animationEndCallback);
|
||||
}
|
||||
if (_this.lazyLoadTimer) {
|
||||
clearInterval(_this.lazyLoadTimer);
|
||||
}
|
||||
if (_this.callbackTimers.length) {
|
||||
_this.callbackTimers.forEach(function (timer) {
|
||||
return clearTimeout(timer);
|
||||
});
|
||||
_this.callbackTimers = [];
|
||||
}
|
||||
if (window.addEventListener) {
|
||||
window.removeEventListener("resize", _this.onWindowResized);
|
||||
} else {
|
||||
window.detachEvent("onresize", _this.onWindowResized);
|
||||
}
|
||||
if (_this.autoplayTimer) {
|
||||
clearInterval(_this.autoplayTimer);
|
||||
}
|
||||
_this.ro.disconnect();
|
||||
});
|
||||
_defineProperty(_this, "componentDidUpdate", function (prevProps) {
|
||||
_this.checkImagesLoad();
|
||||
_this.props.onReInit && _this.props.onReInit();
|
||||
if (_this.props.lazyLoad) {
|
||||
var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, _this.props), _this.state));
|
||||
if (slidesToLoad.length > 0) {
|
||||
_this.setState(function (prevState) {
|
||||
return {
|
||||
lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)
|
||||
};
|
||||
});
|
||||
if (_this.props.onLazyLoad) {
|
||||
_this.props.onLazyLoad(slidesToLoad);
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (this.props.onLazyLoad) {
|
||||
// this.props.onLazyLoad([leftMostSlide])
|
||||
// }
|
||||
_this.adaptHeight();
|
||||
var spec = _objectSpread(_objectSpread({
|
||||
listRef: _this.list,
|
||||
trackRef: _this.track
|
||||
}, _this.props), _this.state);
|
||||
var setTrackStyle = _this.didPropsChange(prevProps);
|
||||
setTrackStyle && _this.updateState(spec, setTrackStyle, function () {
|
||||
if (_this.state.currentSlide >= React.Children.count(_this.props.children)) {
|
||||
_this.changeSlide({
|
||||
message: "index",
|
||||
index: React.Children.count(_this.props.children) - _this.props.slidesToShow,
|
||||
currentSlide: _this.state.currentSlide
|
||||
});
|
||||
}
|
||||
if (prevProps.autoplay !== _this.props.autoplay || prevProps.autoplaySpeed !== _this.props.autoplaySpeed) {
|
||||
if (!prevProps.autoplay && _this.props.autoplay) {
|
||||
_this.autoPlay("playing");
|
||||
} else if (_this.props.autoplay) {
|
||||
_this.autoPlay("update");
|
||||
} else {
|
||||
_this.pause("paused");
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
_defineProperty(_this, "onWindowResized", function (setTrackStyle) {
|
||||
if (_this.debouncedResize) _this.debouncedResize.cancel();
|
||||
_this.debouncedResize = debounce(50, function () {
|
||||
return _this.resizeWindow(setTrackStyle);
|
||||
});
|
||||
_this.debouncedResize();
|
||||
});
|
||||
_defineProperty(_this, "resizeWindow", function () {
|
||||
var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
||||
var isTrackMounted = Boolean(_this.track && _this.track.node);
|
||||
// prevent warning: setting state on unmounted component (server side rendering)
|
||||
if (!isTrackMounted) return;
|
||||
var spec = _objectSpread(_objectSpread({
|
||||
listRef: _this.list,
|
||||
trackRef: _this.track
|
||||
}, _this.props), _this.state);
|
||||
_this.updateState(spec, setTrackStyle, function () {
|
||||
if (_this.props.autoplay) _this.autoPlay("update");else _this.pause("paused");
|
||||
});
|
||||
// animating state should be cleared while resizing, otherwise autoplay stops working
|
||||
_this.setState({
|
||||
animating: false
|
||||
});
|
||||
clearTimeout(_this.animationEndCallback);
|
||||
delete _this.animationEndCallback;
|
||||
});
|
||||
_defineProperty(_this, "updateState", function (spec, setTrackStyle, callback) {
|
||||
var updatedState = initializedState(spec);
|
||||
spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {
|
||||
slideIndex: updatedState.currentSlide
|
||||
});
|
||||
var targetLeft = getTrackLeft(spec);
|
||||
spec = _objectSpread(_objectSpread({}, spec), {}, {
|
||||
left: targetLeft
|
||||
});
|
||||
var trackStyle = getTrackCSS(spec);
|
||||
if (setTrackStyle || React.Children.count(_this.props.children) !== React.Children.count(spec.children)) {
|
||||
updatedState["trackStyle"] = trackStyle;
|
||||
}
|
||||
_this.setState(updatedState, callback);
|
||||
});
|
||||
_defineProperty(_this, "ssrInit", function () {
|
||||
if (_this.props.variableWidth) {
|
||||
var _trackWidth = 0,
|
||||
_trackLeft = 0;
|
||||
var childrenWidths = [];
|
||||
var preClones = getPreClones(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {
|
||||
slideCount: _this.props.children.length
|
||||
}));
|
||||
var postClones = getPostClones(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {
|
||||
slideCount: _this.props.children.length
|
||||
}));
|
||||
_this.props.children.forEach(function (child) {
|
||||
childrenWidths.push(child.props.style.width);
|
||||
_trackWidth += child.props.style.width;
|
||||
});
|
||||
for (var i = 0; i < preClones; i++) {
|
||||
_trackLeft += childrenWidths[childrenWidths.length - 1 - i];
|
||||
_trackWidth += childrenWidths[childrenWidths.length - 1 - i];
|
||||
}
|
||||
for (var _i = 0; _i < postClones; _i++) {
|
||||
_trackWidth += childrenWidths[_i];
|
||||
}
|
||||
for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {
|
||||
_trackLeft += childrenWidths[_i2];
|
||||
}
|
||||
var _trackStyle = {
|
||||
width: _trackWidth + "px",
|
||||
left: -_trackLeft + "px"
|
||||
};
|
||||
if (_this.props.centerMode) {
|
||||
var currentWidth = "".concat(childrenWidths[_this.state.currentSlide], "px");
|
||||
_trackStyle.left = "calc(".concat(_trackStyle.left, " + (100% - ").concat(currentWidth, ") / 2 ) ");
|
||||
}
|
||||
return {
|
||||
trackStyle: _trackStyle
|
||||
};
|
||||
}
|
||||
var childrenCount = React.Children.count(_this.props.children);
|
||||
var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {
|
||||
slideCount: childrenCount
|
||||
});
|
||||
var slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;
|
||||
var trackWidth = 100 / _this.props.slidesToShow * slideCount;
|
||||
var slideWidth = 100 / slideCount;
|
||||
var trackLeft = -slideWidth * (getPreClones(spec) + _this.state.currentSlide) * trackWidth / 100;
|
||||
if (_this.props.centerMode) {
|
||||
trackLeft += (100 - slideWidth * trackWidth / 100) / 2;
|
||||
}
|
||||
var trackStyle = {
|
||||
width: trackWidth + "%",
|
||||
left: trackLeft + "%"
|
||||
};
|
||||
return {
|
||||
slideWidth: slideWidth + "%",
|
||||
trackStyle: trackStyle
|
||||
};
|
||||
});
|
||||
_defineProperty(_this, "checkImagesLoad", function () {
|
||||
var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(".slick-slide img") || [];
|
||||
var imagesCount = images.length,
|
||||
loadedCount = 0;
|
||||
Array.prototype.forEach.call(images, function (image) {
|
||||
var handler = function handler() {
|
||||
return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();
|
||||
};
|
||||
if (!image.onclick) {
|
||||
image.onclick = function () {
|
||||
return image.parentNode.focus();
|
||||
};
|
||||
} else {
|
||||
var prevClickHandler = image.onclick;
|
||||
image.onclick = function (e) {
|
||||
prevClickHandler(e);
|
||||
image.parentNode.focus();
|
||||
};
|
||||
}
|
||||
if (!image.onload) {
|
||||
if (_this.props.lazyLoad) {
|
||||
image.onload = function () {
|
||||
_this.adaptHeight();
|
||||
_this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));
|
||||
};
|
||||
} else {
|
||||
image.onload = handler;
|
||||
image.onerror = function () {
|
||||
handler();
|
||||
_this.props.onLazyLoadError && _this.props.onLazyLoadError();
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
_defineProperty(_this, "progressiveLazyLoad", function () {
|
||||
var slidesToLoad = [];
|
||||
var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);
|
||||
for (var index = _this.state.currentSlide; index < _this.state.slideCount + getPostClones(spec); index++) {
|
||||
if (_this.state.lazyLoadedList.indexOf(index) < 0) {
|
||||
slidesToLoad.push(index);
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (var _index = _this.state.currentSlide - 1; _index >= -getPreClones(spec); _index--) {
|
||||
if (_this.state.lazyLoadedList.indexOf(_index) < 0) {
|
||||
slidesToLoad.push(_index);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (slidesToLoad.length > 0) {
|
||||
_this.setState(function (state) {
|
||||
return {
|
||||
lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)
|
||||
};
|
||||
});
|
||||
if (_this.props.onLazyLoad) {
|
||||
_this.props.onLazyLoad(slidesToLoad);
|
||||
}
|
||||
} else {
|
||||
if (_this.lazyLoadTimer) {
|
||||
clearInterval(_this.lazyLoadTimer);
|
||||
delete _this.lazyLoadTimer;
|
||||
}
|
||||
}
|
||||
});
|
||||
_defineProperty(_this, "slideHandler", function (index) {
|
||||
var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
var _this$props = _this.props,
|
||||
asNavFor = _this$props.asNavFor,
|
||||
beforeChange = _this$props.beforeChange,
|
||||
onLazyLoad = _this$props.onLazyLoad,
|
||||
speed = _this$props.speed,
|
||||
afterChange = _this$props.afterChange;
|
||||
// capture currentslide before state is updated
|
||||
var currentSlide = _this.state.currentSlide;
|
||||
var _slideHandler = slideHandler(_objectSpread(_objectSpread(_objectSpread({
|
||||
index: index
|
||||
}, _this.props), _this.state), {}, {
|
||||
trackRef: _this.track,
|
||||
useCSS: _this.props.useCSS && !dontAnimate
|
||||
})),
|
||||
state = _slideHandler.state,
|
||||
nextState = _slideHandler.nextState;
|
||||
if (!state) return;
|
||||
beforeChange && beforeChange(currentSlide, state.currentSlide);
|
||||
var slidesToLoad = state.lazyLoadedList.filter(function (value) {
|
||||
return _this.state.lazyLoadedList.indexOf(value) < 0;
|
||||
});
|
||||
onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);
|
||||
if (!_this.props.waitForAnimate && _this.animationEndCallback) {
|
||||
clearTimeout(_this.animationEndCallback);
|
||||
afterChange && afterChange(currentSlide);
|
||||
delete _this.animationEndCallback;
|
||||
}
|
||||
_this.setState(state, function () {
|
||||
// asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode
|
||||
if (asNavFor && _this.asNavForIndex !== index) {
|
||||
_this.asNavForIndex = index;
|
||||
asNavFor.innerSlider.slideHandler(index);
|
||||
}
|
||||
if (!nextState) return;
|
||||
_this.animationEndCallback = setTimeout(function () {
|
||||
var animating = nextState.animating,
|
||||
firstBatch = _objectWithoutProperties(nextState, _excluded);
|
||||
_this.setState(firstBatch, function () {
|
||||
_this.callbackTimers.push(setTimeout(function () {
|
||||
return _this.setState({
|
||||
animating: animating
|
||||
});
|
||||
}, 10));
|
||||
afterChange && afterChange(state.currentSlide);
|
||||
delete _this.animationEndCallback;
|
||||
});
|
||||
}, speed);
|
||||
});
|
||||
});
|
||||
_defineProperty(_this, "changeSlide", function (options) {
|
||||
var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);
|
||||
var targetSlide = changeSlide(spec, options);
|
||||
if (targetSlide !== 0 && !targetSlide) return;
|
||||
if (dontAnimate === true) {
|
||||
_this.slideHandler(targetSlide, dontAnimate);
|
||||
} else {
|
||||
_this.slideHandler(targetSlide);
|
||||
}
|
||||
_this.props.autoplay && _this.autoPlay("update");
|
||||
if (_this.props.focusOnSelect) {
|
||||
var nodes = _this.list.querySelectorAll(".slick-current");
|
||||
nodes[0] && nodes[0].focus();
|
||||
}
|
||||
});
|
||||
_defineProperty(_this, "clickHandler", function (e) {
|
||||
if (_this.clickable === false) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
}
|
||||
_this.clickable = true;
|
||||
});
|
||||
_defineProperty(_this, "keyHandler", function (e) {
|
||||
var dir = keyHandler(e, _this.props.accessibility, _this.props.rtl);
|
||||
dir !== "" && _this.changeSlide({
|
||||
message: dir
|
||||
});
|
||||
});
|
||||
_defineProperty(_this, "selectHandler", function (options) {
|
||||
_this.changeSlide(options);
|
||||
});
|
||||
_defineProperty(_this, "disableBodyScroll", function () {
|
||||
var preventDefault = function preventDefault(e) {
|
||||
e = e || window.event;
|
||||
if (e.preventDefault) e.preventDefault();
|
||||
e.returnValue = false;
|
||||
};
|
||||
window.ontouchmove = preventDefault;
|
||||
});
|
||||
_defineProperty(_this, "enableBodyScroll", function () {
|
||||
window.ontouchmove = null;
|
||||
});
|
||||
_defineProperty(_this, "swipeStart", function (e) {
|
||||
if (_this.props.verticalSwiping) {
|
||||
_this.disableBodyScroll();
|
||||
}
|
||||
var state = swipeStart(e, _this.props.swipe, _this.props.draggable);
|
||||
state !== "" && _this.setState(state);
|
||||
});
|
||||
_defineProperty(_this, "swipeMove", function (e) {
|
||||
var state = swipeMove(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {
|
||||
trackRef: _this.track,
|
||||
listRef: _this.list,
|
||||
slideIndex: _this.state.currentSlide
|
||||
}));
|
||||
if (!state) return;
|
||||
if (state["swiping"]) {
|
||||
_this.clickable = false;
|
||||
}
|
||||
_this.setState(state);
|
||||
});
|
||||
_defineProperty(_this, "swipeEnd", function (e) {
|
||||
var state = swipeEnd(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {
|
||||
trackRef: _this.track,
|
||||
listRef: _this.list,
|
||||
slideIndex: _this.state.currentSlide
|
||||
}));
|
||||
if (!state) return;
|
||||
var triggerSlideHandler = state["triggerSlideHandler"];
|
||||
delete state["triggerSlideHandler"];
|
||||
_this.setState(state);
|
||||
if (triggerSlideHandler === undefined) return;
|
||||
_this.slideHandler(triggerSlideHandler);
|
||||
if (_this.props.verticalSwiping) {
|
||||
_this.enableBodyScroll();
|
||||
}
|
||||
});
|
||||
_defineProperty(_this, "touchEnd", function (e) {
|
||||
_this.swipeEnd(e);
|
||||
_this.clickable = true;
|
||||
});
|
||||
_defineProperty(_this, "slickPrev", function () {
|
||||
// this and fellow methods are wrapped in setTimeout
|
||||
// to make sure initialize setState has happened before
|
||||
// any of such methods are called
|
||||
_this.callbackTimers.push(setTimeout(function () {
|
||||
return _this.changeSlide({
|
||||
message: "previous"
|
||||
});
|
||||
}, 0));
|
||||
});
|
||||
_defineProperty(_this, "slickNext", function () {
|
||||
_this.callbackTimers.push(setTimeout(function () {
|
||||
return _this.changeSlide({
|
||||
message: "next"
|
||||
});
|
||||
}, 0));
|
||||
});
|
||||
_defineProperty(_this, "slickGoTo", function (slide) {
|
||||
var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
slide = Number(slide);
|
||||
if (isNaN(slide)) return "";
|
||||
_this.callbackTimers.push(setTimeout(function () {
|
||||
return _this.changeSlide({
|
||||
message: "index",
|
||||
index: slide,
|
||||
currentSlide: _this.state.currentSlide
|
||||
}, dontAnimate);
|
||||
}, 0));
|
||||
});
|
||||
_defineProperty(_this, "play", function () {
|
||||
var nextIndex;
|
||||
if (_this.props.rtl) {
|
||||
nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;
|
||||
} else {
|
||||
if (canGoNext(_objectSpread(_objectSpread({}, _this.props), _this.state))) {
|
||||
nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
_this.slideHandler(nextIndex);
|
||||
});
|
||||
_defineProperty(_this, "autoPlay", function (playType) {
|
||||
if (_this.autoplayTimer) {
|
||||
clearInterval(_this.autoplayTimer);
|
||||
}
|
||||
var autoplaying = _this.state.autoplaying;
|
||||
if (playType === "update") {
|
||||
if (autoplaying === "hovered" || autoplaying === "focused" || autoplaying === "paused") {
|
||||
return;
|
||||
}
|
||||
} else if (playType === "leave") {
|
||||
if (autoplaying === "paused" || autoplaying === "focused") {
|
||||
return;
|
||||
}
|
||||
} else if (playType === "blur") {
|
||||
if (autoplaying === "paused" || autoplaying === "hovered") {
|
||||
return;
|
||||
}
|
||||
}
|
||||
_this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);
|
||||
_this.setState({
|
||||
autoplaying: "playing"
|
||||
});
|
||||
});
|
||||
_defineProperty(_this, "pause", function (pauseType) {
|
||||
if (_this.autoplayTimer) {
|
||||
clearInterval(_this.autoplayTimer);
|
||||
_this.autoplayTimer = null;
|
||||
}
|
||||
var autoplaying = _this.state.autoplaying;
|
||||
if (pauseType === "paused") {
|
||||
_this.setState({
|
||||
autoplaying: "paused"
|
||||
});
|
||||
} else if (pauseType === "focused") {
|
||||
if (autoplaying === "hovered" || autoplaying === "playing") {
|
||||
_this.setState({
|
||||
autoplaying: "focused"
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// pauseType is 'hovered'
|
||||
if (autoplaying === "playing") {
|
||||
_this.setState({
|
||||
autoplaying: "hovered"
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
_defineProperty(_this, "onDotsOver", function () {
|
||||
return _this.props.autoplay && _this.pause("hovered");
|
||||
});
|
||||
_defineProperty(_this, "onDotsLeave", function () {
|
||||
return _this.props.autoplay && _this.state.autoplaying === "hovered" && _this.autoPlay("leave");
|
||||
});
|
||||
_defineProperty(_this, "onTrackOver", function () {
|
||||
return _this.props.autoplay && _this.pause("hovered");
|
||||
});
|
||||
_defineProperty(_this, "onTrackLeave", function () {
|
||||
return _this.props.autoplay && _this.state.autoplaying === "hovered" && _this.autoPlay("leave");
|
||||
});
|
||||
_defineProperty(_this, "onSlideFocus", function () {
|
||||
return _this.props.autoplay && _this.pause("focused");
|
||||
});
|
||||
_defineProperty(_this, "onSlideBlur", function () {
|
||||
return _this.props.autoplay && _this.state.autoplaying === "focused" && _this.autoPlay("blur");
|
||||
});
|
||||
_defineProperty(_this, "render", function () {
|
||||
var className = classnames("slick-slider", _this.props.className, {
|
||||
"slick-vertical": _this.props.vertical,
|
||||
"slick-initialized": true
|
||||
});
|
||||
var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);
|
||||
var trackProps = extractObject(spec, ["fade", "cssEase", "speed", "infinite", "centerMode", "focusOnSelect", "currentSlide", "lazyLoad", "lazyLoadedList", "rtl", "slideWidth", "slideHeight", "listHeight", "vertical", "slidesToShow", "slidesToScroll", "slideCount", "trackStyle", "variableWidth", "unslick", "centerPadding", "targetSlide", "useCSS"]);
|
||||
var pauseOnHover = _this.props.pauseOnHover;
|
||||
trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {
|
||||
onMouseEnter: pauseOnHover ? _this.onTrackOver : null,
|
||||
onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,
|
||||
onMouseOver: pauseOnHover ? _this.onTrackOver : null,
|
||||
focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null
|
||||
});
|
||||
var dots;
|
||||
if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {
|
||||
var dotProps = extractObject(spec, ["dotsClass", "slideCount", "slidesToShow", "currentSlide", "slidesToScroll", "clickHandler", "children", "customPaging", "infinite", "appendDots"]);
|
||||
var pauseOnDotsHover = _this.props.pauseOnDotsHover;
|
||||
dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {
|
||||
clickHandler: _this.changeSlide,
|
||||
onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,
|
||||
onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,
|
||||
onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null
|
||||
});
|
||||
dots = /*#__PURE__*/React.createElement(Dots, dotProps);
|
||||
}
|
||||
var prevArrow, nextArrow;
|
||||
var arrowProps = extractObject(spec, ["infinite", "centerMode", "currentSlide", "slideCount", "slidesToShow", "prevArrow", "nextArrow"]);
|
||||
arrowProps.clickHandler = _this.changeSlide;
|
||||
if (_this.props.arrows) {
|
||||
prevArrow = /*#__PURE__*/React.createElement(PrevArrow, arrowProps);
|
||||
nextArrow = /*#__PURE__*/React.createElement(NextArrow, arrowProps);
|
||||
}
|
||||
var verticalHeightStyle = null;
|
||||
if (_this.props.vertical) {
|
||||
verticalHeightStyle = {
|
||||
height: _this.state.listHeight
|
||||
};
|
||||
}
|
||||
var centerPaddingStyle = null;
|
||||
if (_this.props.vertical === false) {
|
||||
if (_this.props.centerMode === true) {
|
||||
centerPaddingStyle = {
|
||||
padding: "0px " + _this.props.centerPadding
|
||||
};
|
||||
}
|
||||
} else {
|
||||
if (_this.props.centerMode === true) {
|
||||
centerPaddingStyle = {
|
||||
padding: _this.props.centerPadding + " 0px"
|
||||
};
|
||||
}
|
||||
}
|
||||
var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);
|
||||
var touchMove = _this.props.touchMove;
|
||||
var listProps = {
|
||||
className: "slick-list",
|
||||
style: listStyle,
|
||||
onClick: _this.clickHandler,
|
||||
onMouseDown: touchMove ? _this.swipeStart : null,
|
||||
onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,
|
||||
onMouseUp: touchMove ? _this.swipeEnd : null,
|
||||
onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,
|
||||
onTouchStart: touchMove ? _this.swipeStart : null,
|
||||
onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,
|
||||
onTouchEnd: touchMove ? _this.touchEnd : null,
|
||||
onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,
|
||||
onKeyDown: _this.props.accessibility ? _this.keyHandler : null
|
||||
};
|
||||
var innerSliderProps = {
|
||||
className: className,
|
||||
dir: "ltr",
|
||||
style: _this.props.style
|
||||
};
|
||||
if (_this.props.unslick) {
|
||||
listProps = {
|
||||
className: "slick-list"
|
||||
};
|
||||
innerSliderProps = {
|
||||
className: className,
|
||||
style: _this.props.style
|
||||
};
|
||||
}
|
||||
return /*#__PURE__*/React.createElement("div", innerSliderProps, !_this.props.unslick ? prevArrow : "", /*#__PURE__*/React.createElement("div", _extends({
|
||||
ref: _this.listRefHandler
|
||||
}, listProps), /*#__PURE__*/React.createElement(Track, _extends({
|
||||
ref: _this.trackRefHandler
|
||||
}, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : "", !_this.props.unslick ? dots : "");
|
||||
});
|
||||
_this.list = null;
|
||||
_this.track = null;
|
||||
_this.state = _objectSpread(_objectSpread({}, initialState), {}, {
|
||||
currentSlide: _this.props.initialSlide,
|
||||
targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,
|
||||
slideCount: React.Children.count(_this.props.children)
|
||||
});
|
||||
_this.callbackTimers = [];
|
||||
_this.clickable = true;
|
||||
_this.debouncedResize = null;
|
||||
var ssrState = _this.ssrInit();
|
||||
_this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);
|
||||
return _this;
|
||||
}
|
||||
_inherits(InnerSlider, _React$Component);
|
||||
return _createClass(InnerSlider, [{
|
||||
key: "didPropsChange",
|
||||
value: function didPropsChange(prevProps) {
|
||||
var setTrackStyle = false;
|
||||
for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {
|
||||
var key = _Object$keys[_i3];
|
||||
// eslint-disable-next-line no-prototype-builtins
|
||||
if (!prevProps.hasOwnProperty(key)) {
|
||||
setTrackStyle = true;
|
||||
break;
|
||||
}
|
||||
if (_typeof(prevProps[key]) === "object" || typeof prevProps[key] === "function" || isNaN(prevProps[key])) {
|
||||
continue;
|
||||
}
|
||||
if (prevProps[key] !== this.props[key]) {
|
||||
setTrackStyle = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return setTrackStyle || React.Children.count(this.props.children) !== React.Children.count(prevProps.children);
|
||||
}
|
||||
}]);
|
||||
}(React.Component);
|
||||
Reference in New Issue
Block a user