cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
1,384 lines • 106 kB
JavaScript
import "./esm/utils/dom.mjs";
import { deleteProps, extend, now, bindModuleMethods, getTranslate, nextTick } from "./esm/utils/utils.mjs";
import { getSupport } from "./esm/utils/get-support.mjs";
import { getDevice } from "./esm/utils/get-device.mjs";
import { getBrowser } from "./esm/utils/get-browser.mjs";
import { getWindow, getDocument } from "../ssr-window/ssr-window.esm.mjs";
import $ from "../dom7/dom7.esm.mjs";
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor)
descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps)
_defineProperties(Constructor.prototype, protoProps);
if (staticProps)
_defineProperties(Constructor, staticProps);
return Constructor;
}
function _extends() {
_extends = Object.assign || function(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
var modular = {
useParams: function useParams(instanceParams) {
var instance = this;
if (!instance.modules)
return;
Object.keys(instance.modules).forEach(function(moduleName) {
var module = instance.modules[moduleName];
if (module.params) {
extend(instanceParams, module.params);
}
});
},
useModules: function useModules(modulesParams) {
if (modulesParams === void 0) {
modulesParams = {};
}
var instance = this;
if (!instance.modules)
return;
Object.keys(instance.modules).forEach(function(moduleName) {
var module = instance.modules[moduleName];
var moduleParams = modulesParams[moduleName] || {};
if (module.on && instance.on) {
Object.keys(module.on).forEach(function(moduleEventName) {
instance.on(moduleEventName, module.on[moduleEventName]);
});
}
if (module.create) {
module.create.bind(instance)(moduleParams);
}
});
}
};
var eventsEmitter = {
on: function on(events2, handler, priority) {
var self = this;
if (typeof handler !== "function")
return self;
var method = priority ? "unshift" : "push";
events2.split(" ").forEach(function(event) {
if (!self.eventsListeners[event])
self.eventsListeners[event] = [];
self.eventsListeners[event][method](handler);
});
return self;
},
once: function once(events2, handler, priority) {
var self = this;
if (typeof handler !== "function")
return self;
function onceHandler() {
self.off(events2, onceHandler);
if (onceHandler.__emitterProxy) {
delete onceHandler.__emitterProxy;
}
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
handler.apply(self, args);
}
onceHandler.__emitterProxy = handler;
return self.on(events2, onceHandler, priority);
},
onAny: function onAny(handler, priority) {
var self = this;
if (typeof handler !== "function")
return self;
var method = priority ? "unshift" : "push";
if (self.eventsAnyListeners.indexOf(handler) < 0) {
self.eventsAnyListeners[method](handler);
}
return self;
},
offAny: function offAny(handler) {
var self = this;
if (!self.eventsAnyListeners)
return self;
var index = self.eventsAnyListeners.indexOf(handler);
if (index >= 0) {
self.eventsAnyListeners.splice(index, 1);
}
return self;
},
off: function off(events2, handler) {
var self = this;
if (!self.eventsListeners)
return self;
events2.split(" ").forEach(function(event) {
if (typeof handler === "undefined") {
self.eventsListeners[event] = [];
} else if (self.eventsListeners[event]) {
self.eventsListeners[event].forEach(function(eventHandler, index) {
if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
self.eventsListeners[event].splice(index, 1);
}
});
}
});
return self;
},
emit: function emit() {
var self = this;
if (!self.eventsListeners)
return self;
var events2;
var data;
var context;
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
if (typeof args[0] === "string" || Array.isArray(args[0])) {
events2 = args[0];
data = args.slice(1, args.length);
context = self;
} else {
events2 = args[0].events;
data = args[0].data;
context = args[0].context || self;
}
data.unshift(context);
var eventsArray = Array.isArray(events2) ? events2 : events2.split(" ");
eventsArray.forEach(function(event) {
if (self.eventsListeners && self.eventsListeners[event]) {
var handlers = [];
self.eventsListeners[event].forEach(function(eventHandler) {
handlers.push(eventHandler);
});
handlers.forEach(function(eventHandler) {
eventHandler.apply(context, data);
});
}
});
return self;
}
};
function updateSize() {
var swiper = this;
var width;
var height;
var $el = swiper.$el;
if (typeof swiper.params.width !== "undefined" && swiper.params.width !== null) {
width = swiper.params.width;
} else {
width = $el[0].clientWidth;
}
if (typeof swiper.params.height !== "undefined" && swiper.params.width !== null) {
height = swiper.params.height;
} else {
height = $el[0].clientHeight;
}
if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
return;
}
width = width - parseInt($el.css("padding-left") || 0, 10) - parseInt($el.css("padding-right") || 0, 10);
height = height - parseInt($el.css("padding-top") || 0, 10) - parseInt($el.css("padding-bottom") || 0, 10);
if (Number.isNaN(width))
width = 0;
if (Number.isNaN(height))
height = 0;
extend(swiper, {
width,
height,
size: swiper.isHorizontal() ? width : height
});
}
function updateSlides() {
var swiper = this;
var window = getWindow();
var params = swiper.params;
var $wrapperEl = swiper.$wrapperEl, swiperSize = swiper.size, rtl = swiper.rtlTranslate, wrongRTL = swiper.wrongRTL;
var isVirtual = swiper.virtual && params.virtual.enabled;
var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
var slides = $wrapperEl.children("." + swiper.params.slideClass);
var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
var snapGrid = [];
var slidesGrid = [];
var slidesSizesGrid = [];
function slidesForMargin(slideEl, slideIndex) {
if (!params.cssMode)
return true;
if (slideIndex === slides.length - 1) {
return false;
}
return true;
}
var offsetBefore = params.slidesOffsetBefore;
if (typeof offsetBefore === "function") {
offsetBefore = params.slidesOffsetBefore.call(swiper);
}
var offsetAfter = params.slidesOffsetAfter;
if (typeof offsetAfter === "function") {
offsetAfter = params.slidesOffsetAfter.call(swiper);
}
var previousSnapGridLength = swiper.snapGrid.length;
var previousSlidesGridLength = swiper.snapGrid.length;
var spaceBetween = params.spaceBetween;
var slidePosition = -offsetBefore;
var prevSlideSize = 0;
var index = 0;
if (typeof swiperSize === "undefined") {
return;
}
if (typeof spaceBetween === "string" && spaceBetween.indexOf("%") >= 0) {
spaceBetween = parseFloat(spaceBetween.replace("%", "")) / 100 * swiperSize;
}
swiper.virtualSize = -spaceBetween;
if (rtl)
slides.css({
marginLeft: "",
marginTop: ""
});
else
slides.css({
marginRight: "",
marginBottom: ""
});
var slidesNumberEvenToRows;
if (params.slidesPerColumn > 1) {
if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {
slidesNumberEvenToRows = slidesLength;
} else {
slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;
}
if (params.slidesPerView !== "auto" && params.slidesPerColumnFill === "row") {
slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);
}
}
var slideSize;
var slidesPerColumn = params.slidesPerColumn;
var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;
var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);
for (var i = 0; i < slidesLength; i += 1) {
slideSize = 0;
var slide2 = slides.eq(i);
if (params.slidesPerColumn > 1) {
var newSlideOrderIndex = void 0;
var column = void 0;
var row = void 0;
if (params.slidesPerColumnFill === "row" && params.slidesPerGroup > 1) {
var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));
var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;
var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);
row = Math.floor(slideIndexInGroup / columnsInGroup);
column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;
newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;
slide2.css({
"-webkit-box-ordinal-group": newSlideOrderIndex,
"-moz-box-ordinal-group": newSlideOrderIndex,
"-ms-flex-order": newSlideOrderIndex,
"-webkit-order": newSlideOrderIndex,
order: newSlideOrderIndex
});
} else if (params.slidesPerColumnFill === "column") {
column = Math.floor(i / slidesPerColumn);
row = i - column * slidesPerColumn;
if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {
row += 1;
if (row >= slidesPerColumn) {
row = 0;
column += 1;
}
}
} else {
row = Math.floor(i / slidesPerRow);
column = i - row * slidesPerRow;
}
slide2.css("margin-" + (swiper.isHorizontal() ? "top" : "left"), row !== 0 && params.spaceBetween && params.spaceBetween + "px");
}
if (slide2.css("display") === "none")
continue;
if (params.slidesPerView === "auto") {
var slideStyles = window.getComputedStyle(slide2[0], null);
var currentTransform = slide2[0].style.transform;
var currentWebKitTransform = slide2[0].style.webkitTransform;
if (currentTransform) {
slide2[0].style.transform = "none";
}
if (currentWebKitTransform) {
slide2[0].style.webkitTransform = "none";
}
if (params.roundLengths) {
slideSize = swiper.isHorizontal() ? slide2.outerWidth(true) : slide2.outerHeight(true);
} else {
if (swiper.isHorizontal()) {
var width = parseFloat(slideStyles.getPropertyValue("width") || 0);
var paddingLeft = parseFloat(slideStyles.getPropertyValue("padding-left") || 0);
var paddingRight = parseFloat(slideStyles.getPropertyValue("padding-right") || 0);
var marginLeft = parseFloat(slideStyles.getPropertyValue("margin-left") || 0);
var marginRight = parseFloat(slideStyles.getPropertyValue("margin-right") || 0);
var boxSizing = slideStyles.getPropertyValue("box-sizing");
if (boxSizing && boxSizing === "border-box") {
slideSize = width + marginLeft + marginRight;
} else {
slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;
}
} else {
var height = parseFloat(slideStyles.getPropertyValue("height") || 0);
var paddingTop = parseFloat(slideStyles.getPropertyValue("padding-top") || 0);
var paddingBottom = parseFloat(slideStyles.getPropertyValue("padding-bottom") || 0);
var marginTop = parseFloat(slideStyles.getPropertyValue("margin-top") || 0);
var marginBottom = parseFloat(slideStyles.getPropertyValue("margin-bottom") || 0);
var _boxSizing = slideStyles.getPropertyValue("box-sizing");
if (_boxSizing && _boxSizing === "border-box") {
slideSize = height + marginTop + marginBottom;
} else {
slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;
}
}
}
if (currentTransform) {
slide2[0].style.transform = currentTransform;
}
if (currentWebKitTransform) {
slide2[0].style.webkitTransform = currentWebKitTransform;
}
if (params.roundLengths)
slideSize = Math.floor(slideSize);
} else {
slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
if (params.roundLengths)
slideSize = Math.floor(slideSize);
if (slides[i]) {
if (swiper.isHorizontal()) {
slides[i].style.width = slideSize + "px";
} else {
slides[i].style.height = slideSize + "px";
}
}
}
if (slides[i]) {
slides[i].swiperSlideSize = slideSize;
}
slidesSizesGrid.push(slideSize);
if (params.centeredSlides) {
slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
if (prevSlideSize === 0 && i !== 0)
slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
if (i === 0)
slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
if (Math.abs(slidePosition) < 1 / 1e3)
slidePosition = 0;
if (params.roundLengths)
slidePosition = Math.floor(slidePosition);
if (index % params.slidesPerGroup === 0)
snapGrid.push(slidePosition);
slidesGrid.push(slidePosition);
} else {
if (params.roundLengths)
slidePosition = Math.floor(slidePosition);
if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0)
snapGrid.push(slidePosition);
slidesGrid.push(slidePosition);
slidePosition = slidePosition + slideSize + spaceBetween;
}
swiper.virtualSize += slideSize + spaceBetween;
prevSlideSize = slideSize;
index += 1;
}
swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
var newSlidesGrid;
if (rtl && wrongRTL && (params.effect === "slide" || params.effect === "coverflow")) {
$wrapperEl.css({
width: swiper.virtualSize + params.spaceBetween + "px"
});
}
if (params.setWrapperSize) {
if (swiper.isHorizontal())
$wrapperEl.css({
width: swiper.virtualSize + params.spaceBetween + "px"
});
else
$wrapperEl.css({
height: swiper.virtualSize + params.spaceBetween + "px"
});
}
if (params.slidesPerColumn > 1) {
swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;
swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;
if (swiper.isHorizontal())
$wrapperEl.css({
width: swiper.virtualSize + params.spaceBetween + "px"
});
else
$wrapperEl.css({
height: swiper.virtualSize + params.spaceBetween + "px"
});
if (params.centeredSlides) {
newSlidesGrid = [];
for (var _i = 0; _i < snapGrid.length; _i += 1) {
var slidesGridItem = snapGrid[_i];
if (params.roundLengths)
slidesGridItem = Math.floor(slidesGridItem);
if (snapGrid[_i] < swiper.virtualSize + snapGrid[0])
newSlidesGrid.push(slidesGridItem);
}
snapGrid = newSlidesGrid;
}
}
if (!params.centeredSlides) {
newSlidesGrid = [];
for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {
var _slidesGridItem = snapGrid[_i2];
if (params.roundLengths)
_slidesGridItem = Math.floor(_slidesGridItem);
if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {
newSlidesGrid.push(_slidesGridItem);
}
}
snapGrid = newSlidesGrid;
if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
snapGrid.push(swiper.virtualSize - swiperSize);
}
}
if (snapGrid.length === 0)
snapGrid = [0];
if (params.spaceBetween !== 0) {
if (swiper.isHorizontal()) {
if (rtl)
slides.filter(slidesForMargin).css({
marginLeft: spaceBetween + "px"
});
else
slides.filter(slidesForMargin).css({
marginRight: spaceBetween + "px"
});
} else
slides.filter(slidesForMargin).css({
marginBottom: spaceBetween + "px"
});
}
if (params.centeredSlides && params.centeredSlidesBounds) {
var allSlidesSize = 0;
slidesSizesGrid.forEach(function(slideSizeValue) {
allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);
});
allSlidesSize -= params.spaceBetween;
var maxSnap = allSlidesSize - swiperSize;
snapGrid = snapGrid.map(function(snap) {
if (snap < 0)
return -offsetBefore;
if (snap > maxSnap)
return maxSnap + offsetAfter;
return snap;
});
}
if (params.centerInsufficientSlides) {
var _allSlidesSize = 0;
slidesSizesGrid.forEach(function(slideSizeValue) {
_allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);
});
_allSlidesSize -= params.spaceBetween;
if (_allSlidesSize < swiperSize) {
var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;
snapGrid.forEach(function(snap, snapIndex) {
snapGrid[snapIndex] = snap - allSlidesOffset;
});
slidesGrid.forEach(function(snap, snapIndex) {
slidesGrid[snapIndex] = snap + allSlidesOffset;
});
}
}
extend(swiper, {
slides,
snapGrid,
slidesGrid,
slidesSizesGrid
});
if (slidesLength !== previousSlidesLength) {
swiper.emit("slidesLengthChange");
}
if (snapGrid.length !== previousSnapGridLength) {
if (swiper.params.watchOverflow)
swiper.checkOverflow();
swiper.emit("snapGridLengthChange");
}
if (slidesGrid.length !== previousSlidesGridLength) {
swiper.emit("slidesGridLengthChange");
}
if (params.watchSlidesProgress || params.watchSlidesVisibility) {
swiper.updateSlidesOffset();
}
}
function updateAutoHeight(speed) {
var swiper = this;
var activeSlides = [];
var newHeight = 0;
var i;
if (typeof speed === "number") {
swiper.setTransition(speed);
} else if (speed === true) {
swiper.setTransition(swiper.params.speed);
}
if (swiper.params.slidesPerView !== "auto" && swiper.params.slidesPerView > 1) {
if (swiper.params.centeredSlides) {
swiper.visibleSlides.each(function(slide2) {
activeSlides.push(slide2);
});
} else {
for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
var index = swiper.activeIndex + i;
if (index > swiper.slides.length)
break;
activeSlides.push(swiper.slides.eq(index)[0]);
}
}
} else {
activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);
}
for (i = 0; i < activeSlides.length; i += 1) {
if (typeof activeSlides[i] !== "undefined") {
var height = activeSlides[i].offsetHeight;
newHeight = height > newHeight ? height : newHeight;
}
}
if (newHeight)
swiper.$wrapperEl.css("height", newHeight + "px");
}
function updateSlidesOffset() {
var swiper = this;
var slides = swiper.slides;
for (var i = 0; i < slides.length; i += 1) {
slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;
}
}
function updateSlidesProgress(translate2) {
if (translate2 === void 0) {
translate2 = this && this.translate || 0;
}
var swiper = this;
var params = swiper.params;
var slides = swiper.slides, rtl = swiper.rtlTranslate;
if (slides.length === 0)
return;
if (typeof slides[0].swiperSlideOffset === "undefined")
swiper.updateSlidesOffset();
var offsetCenter = -translate2;
if (rtl)
offsetCenter = translate2;
slides.removeClass(params.slideVisibleClass);
swiper.visibleSlidesIndexes = [];
swiper.visibleSlides = [];
for (var i = 0; i < slides.length; i += 1) {
var slide2 = slides[i];
var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide2.swiperSlideOffset) / (slide2.swiperSlideSize + params.spaceBetween);
if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {
var slideBefore = -(offsetCenter - slide2.swiperSlideOffset);
var slideAfter = slideBefore + swiper.slidesSizesGrid[i];
var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
if (isVisible) {
swiper.visibleSlides.push(slide2);
swiper.visibleSlidesIndexes.push(i);
slides.eq(i).addClass(params.slideVisibleClass);
}
}
slide2.progress = rtl ? -slideProgress : slideProgress;
}
swiper.visibleSlides = $(swiper.visibleSlides);
}
function updateProgress(translate2) {
var swiper = this;
if (typeof translate2 === "undefined") {
var multiplier = swiper.rtlTranslate ? -1 : 1;
translate2 = swiper && swiper.translate && swiper.translate * multiplier || 0;
}
var params = swiper.params;
var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
var progress = swiper.progress, isBeginning = swiper.isBeginning, isEnd = swiper.isEnd;
var wasBeginning = isBeginning;
var wasEnd = isEnd;
if (translatesDiff === 0) {
progress = 0;
isBeginning = true;
isEnd = true;
} else {
progress = (translate2 - swiper.minTranslate()) / translatesDiff;
isBeginning = progress <= 0;
isEnd = progress >= 1;
}
extend(swiper, {
progress,
isBeginning,
isEnd
});
if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight)
swiper.updateSlidesProgress(translate2);
if (isBeginning && !wasBeginning) {
swiper.emit("reachBeginning toEdge");
}
if (isEnd && !wasEnd) {
swiper.emit("reachEnd toEdge");
}
if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
swiper.emit("fromEdge");
}
swiper.emit("progress", progress);
}
function updateSlidesClasses() {
var swiper = this;
var slides = swiper.slides, params = swiper.params, $wrapperEl = swiper.$wrapperEl, activeIndex = swiper.activeIndex, realIndex = swiper.realIndex;
var isVirtual = swiper.virtual && params.virtual.enabled;
slides.removeClass(params.slideActiveClass + " " + params.slideNextClass + " " + params.slidePrevClass + " " + params.slideDuplicateActiveClass + " " + params.slideDuplicateNextClass + " " + params.slideDuplicatePrevClass);
var activeSlide;
if (isVirtual) {
activeSlide = swiper.$wrapperEl.find("." + params.slideClass + '[data-swiper-slide-index="' + activeIndex + '"]');
} else {
activeSlide = slides.eq(activeIndex);
}
activeSlide.addClass(params.slideActiveClass);
if (params.loop) {
if (activeSlide.hasClass(params.slideDuplicateClass)) {
$wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ')[data-swiper-slide-index="' + realIndex + '"]').addClass(params.slideDuplicateActiveClass);
} else {
$wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + '[data-swiper-slide-index="' + realIndex + '"]').addClass(params.slideDuplicateActiveClass);
}
}
var nextSlide = activeSlide.nextAll("." + params.slideClass).eq(0).addClass(params.slideNextClass);
if (params.loop && nextSlide.length === 0) {
nextSlide = slides.eq(0);
nextSlide.addClass(params.slideNextClass);
}
var prevSlide = activeSlide.prevAll("." + params.slideClass).eq(0).addClass(params.slidePrevClass);
if (params.loop && prevSlide.length === 0) {
prevSlide = slides.eq(-1);
prevSlide.addClass(params.slidePrevClass);
}
if (params.loop) {
if (nextSlide.hasClass(params.slideDuplicateClass)) {
$wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ')[data-swiper-slide-index="' + nextSlide.attr("data-swiper-slide-index") + '"]').addClass(params.slideDuplicateNextClass);
} else {
$wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + '[data-swiper-slide-index="' + nextSlide.attr("data-swiper-slide-index") + '"]').addClass(params.slideDuplicateNextClass);
}
if (prevSlide.hasClass(params.slideDuplicateClass)) {
$wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ')[data-swiper-slide-index="' + prevSlide.attr("data-swiper-slide-index") + '"]').addClass(params.slideDuplicatePrevClass);
} else {
$wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + '[data-swiper-slide-index="' + prevSlide.attr("data-swiper-slide-index") + '"]').addClass(params.slideDuplicatePrevClass);
}
}
swiper.emitSlidesClasses();
}
function updateActiveIndex(newActiveIndex) {
var swiper = this;
var translate2 = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
var slidesGrid = swiper.slidesGrid, snapGrid = swiper.snapGrid, params = swiper.params, previousIndex = swiper.activeIndex, previousRealIndex = swiper.realIndex, previousSnapIndex = swiper.snapIndex;
var activeIndex = newActiveIndex;
var snapIndex;
if (typeof activeIndex === "undefined") {
for (var i = 0; i < slidesGrid.length; i += 1) {
if (typeof slidesGrid[i + 1] !== "undefined") {
if (translate2 >= slidesGrid[i] && translate2 < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
activeIndex = i;
} else if (translate2 >= slidesGrid[i] && translate2 < slidesGrid[i + 1]) {
activeIndex = i + 1;
}
} else if (translate2 >= slidesGrid[i]) {
activeIndex = i;
}
}
if (params.normalizeSlideIndex) {
if (activeIndex < 0 || typeof activeIndex === "undefined")
activeIndex = 0;
}
}
if (snapGrid.indexOf(translate2) >= 0) {
snapIndex = snapGrid.indexOf(translate2);
} else {
var skip = Math.min(params.slidesPerGroupSkip, activeIndex);
snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
}
if (snapIndex >= snapGrid.length)
snapIndex = snapGrid.length - 1;
if (activeIndex === previousIndex) {
if (snapIndex !== previousSnapIndex) {
swiper.snapIndex = snapIndex;
swiper.emit("snapIndexChange");
}
return;
}
var realIndex = parseInt(swiper.slides.eq(activeIndex).attr("data-swiper-slide-index") || activeIndex, 10);
extend(swiper, {
snapIndex,
realIndex,
previousIndex,
activeIndex
});
swiper.emit("activeIndexChange");
swiper.emit("snapIndexChange");
if (previousRealIndex !== realIndex) {
swiper.emit("realIndexChange");
}
if (swiper.initialized || swiper.params.runCallbacksOnInit) {
swiper.emit("slideChange");
}
}
function updateClickedSlide(e) {
var swiper = this;
var params = swiper.params;
var slide2 = $(e.target).closest("." + params.slideClass)[0];
var slideFound = false;
if (slide2) {
for (var i = 0; i < swiper.slides.length; i += 1) {
if (swiper.slides[i] === slide2)
slideFound = true;
}
}
if (slide2 && slideFound) {
swiper.clickedSlide = slide2;
if (swiper.virtual && swiper.params.virtual.enabled) {
swiper.clickedIndex = parseInt($(slide2).attr("data-swiper-slide-index"), 10);
} else {
swiper.clickedIndex = $(slide2).index();
}
} else {
swiper.clickedSlide = void 0;
swiper.clickedIndex = void 0;
return;
}
if (params.slideToClickedSlide && swiper.clickedIndex !== void 0 && swiper.clickedIndex !== swiper.activeIndex) {
swiper.slideToClickedSlide();
}
}
var update = {
updateSize,
updateSlides,
updateAutoHeight,
updateSlidesOffset,
updateSlidesProgress,
updateProgress,
updateSlidesClasses,
updateActiveIndex,
updateClickedSlide
};
function getSwiperTranslate(axis) {
if (axis === void 0) {
axis = this.isHorizontal() ? "x" : "y";
}
var swiper = this;
var params = swiper.params, rtl = swiper.rtlTranslate, translate2 = swiper.translate, $wrapperEl = swiper.$wrapperEl;
if (params.virtualTranslate) {
return rtl ? -translate2 : translate2;
}
if (params.cssMode) {
return translate2;
}
var currentTranslate = getTranslate($wrapperEl[0], axis);
if (rtl)
currentTranslate = -currentTranslate;
return currentTranslate || 0;
}
function setTranslate(translate2, byController) {
var swiper = this;
var rtl = swiper.rtlTranslate, params = swiper.params, $wrapperEl = swiper.$wrapperEl, wrapperEl = swiper.wrapperEl, progress = swiper.progress;
var x = 0;
var y = 0;
var z = 0;
if (swiper.isHorizontal()) {
x = rtl ? -translate2 : translate2;
} else {
y = translate2;
}
if (params.roundLengths) {
x = Math.floor(x);
y = Math.floor(y);
}
if (params.cssMode) {
wrapperEl[swiper.isHorizontal() ? "scrollLeft" : "scrollTop"] = swiper.isHorizontal() ? -x : -y;
} else if (!params.virtualTranslate) {
$wrapperEl.transform("translate3d(" + x + "px, " + y + "px, " + z + "px)");
}
swiper.previousTranslate = swiper.translate;
swiper.translate = swiper.isHorizontal() ? x : y;
var newProgress;
var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
if (translatesDiff === 0) {
newProgress = 0;
} else {
newProgress = (translate2 - swiper.minTranslate()) / translatesDiff;
}
if (newProgress !== progress) {
swiper.updateProgress(translate2);
}
swiper.emit("setTranslate", swiper.translate, byController);
}
function minTranslate() {
return -this.snapGrid[0];
}
function maxTranslate() {
return -this.snapGrid[this.snapGrid.length - 1];
}
function translateTo(translate2, speed, runCallbacks, translateBounds, internal) {
if (translate2 === void 0) {
translate2 = 0;
}
if (speed === void 0) {
speed = this.params.speed;
}
if (runCallbacks === void 0) {
runCallbacks = true;
}
if (translateBounds === void 0) {
translateBounds = true;
}
var swiper = this;
var params = swiper.params, wrapperEl = swiper.wrapperEl;
if (swiper.animating && params.preventInteractionOnTransition) {
return false;
}
var minTranslate2 = swiper.minTranslate();
var maxTranslate2 = swiper.maxTranslate();
var newTranslate;
if (translateBounds && translate2 > minTranslate2)
newTranslate = minTranslate2;
else if (translateBounds && translate2 < maxTranslate2)
newTranslate = maxTranslate2;
else
newTranslate = translate2;
swiper.updateProgress(newTranslate);
if (params.cssMode) {
var isH = swiper.isHorizontal();
if (speed === 0) {
wrapperEl[isH ? "scrollLeft" : "scrollTop"] = -newTranslate;
} else {
if (wrapperEl.scrollTo) {
var _wrapperEl$scrollTo;
wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? "left" : "top"] = -newTranslate, _wrapperEl$scrollTo.behavior = "smooth", _wrapperEl$scrollTo));
} else {
wrapperEl[isH ? "scrollLeft" : "scrollTop"] = -newTranslate;
}
}
return true;
}
if (speed === 0) {
swiper.setTransition(0);
swiper.setTranslate(newTranslate);
if (runCallbacks) {
swiper.emit("beforeTransitionStart", speed, internal);
swiper.emit("transitionEnd");
}
} else {
swiper.setTransition(speed);
swiper.setTranslate(newTranslate);
if (runCallbacks) {
swiper.emit("beforeTransitionStart", speed, internal);
swiper.emit("transitionStart");
}
if (!swiper.animating) {
swiper.animating = true;
if (!swiper.onTranslateToWrapperTransitionEnd) {
swiper.onTranslateToWrapperTransitionEnd = function transitionEnd2(e) {
if (!swiper || swiper.destroyed)
return;
if (e.target !== this)
return;
swiper.$wrapperEl[0].removeEventListener("transitionend", swiper.onTranslateToWrapperTransitionEnd);
swiper.$wrapperEl[0].removeEventListener("webkitTransitionEnd", swiper.onTranslateToWrapperTransitionEnd);
swiper.onTranslateToWrapperTransitionEnd = null;
delete swiper.onTranslateToWrapperTransitionEnd;
if (runCallbacks) {
swiper.emit("transitionEnd");
}
};
}
swiper.$wrapperEl[0].addEventListener("transitionend", swiper.onTranslateToWrapperTransitionEnd);
swiper.$wrapperEl[0].addEventListener("webkitTransitionEnd", swiper.onTranslateToWrapperTransitionEnd);
}
}
return true;
}
var translate = {
getTranslate: getSwiperTranslate,
setTranslate,
minTranslate,
maxTranslate,
translateTo
};
function setTransition(duration, byController) {
var swiper = this;
if (!swiper.params.cssMode) {
swiper.$wrapperEl.transition(duration);
}
swiper.emit("setTransition", duration, byController);
}
function transitionStart(runCallbacks, direction) {
if (runCallbacks === void 0) {
runCallbacks = true;
}
var swiper = this;
var activeIndex = swiper.activeIndex, params = swiper.params, previousIndex = swiper.previousIndex;
if (params.cssMode)
return;
if (params.autoHeight) {
swiper.updateAutoHeight();
}
var dir = direction;
if (!dir) {
if (activeIndex > previousIndex)
dir = "next";
else if (activeIndex < previousIndex)
dir = "prev";
else
dir = "reset";
}
swiper.emit("transitionStart");
if (runCallbacks && activeIndex !== previousIndex) {
if (dir === "reset") {
swiper.emit("slideResetTransitionStart");
return;
}
swiper.emit("slideChangeTransitionStart");
if (dir === "next") {
swiper.emit("slideNextTransitionStart");
} else {
swiper.emit("slidePrevTransitionStart");
}
}
}
function transitionEnd(runCallbacks, direction) {
if (runCallbacks === void 0) {
runCallbacks = true;
}
var swiper = this;
var activeIndex = swiper.activeIndex, previousIndex = swiper.previousIndex, params = swiper.params;
swiper.animating = false;
if (params.cssMode)
return;
swiper.setTransition(0);
var dir = direction;
if (!dir) {
if (activeIndex > previousIndex)
dir = "next";
else if (activeIndex < previousIndex)
dir = "prev";
else
dir = "reset";
}
swiper.emit("transitionEnd");
if (runCallbacks && activeIndex !== previousIndex) {
if (dir === "reset") {
swiper.emit("slideResetTransitionEnd");
return;
}
swiper.emit("slideChangeTransitionEnd");
if (dir === "next") {
swiper.emit("slideNextTransitionEnd");
} else {
swiper.emit("slidePrevTransitionEnd");
}
}
}
var transition = {
setTransition,
transitionStart,
transitionEnd
};
function slideTo(index, speed, runCallbacks, internal) {
if (index === void 0) {
index = 0;
}
if (speed === void 0) {
speed = this.params.speed;
}
if (runCallbacks === void 0) {
runCallbacks = true;
}
var swiper = this;
var slideIndex = index;
if (slideIndex < 0)
slideIndex = 0;
var params = swiper.params, snapGrid = swiper.snapGrid, slidesGrid = swiper.slidesGrid, previousIndex = swiper.previousIndex, activeIndex = swiper.activeIndex, rtl = swiper.rtlTranslate, wrapperEl = swiper.wrapperEl;
if (swiper.animating && params.preventInteractionOnTransition) {
return false;
}
var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
if (snapIndex >= snapGrid.length)
snapIndex = snapGrid.length - 1;
if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {
swiper.emit("beforeSlideChangeStart");
}
var translate2 = -snapGrid[snapIndex];
swiper.updateProgress(translate2);
if (params.normalizeSlideIndex) {
for (var i = 0; i < slidesGrid.length; i += 1) {
if (-Math.floor(translate2 * 100) >= Math.floor(slidesGrid[i] * 100)) {
slideIndex = i;
}
}
}
if (swiper.initialized && slideIndex !== activeIndex) {
if (!swiper.allowSlideNext && translate2 < swiper.translate && translate2 < swiper.minTranslate()) {
return false;
}
if (!swiper.allowSlidePrev && translate2 > swiper.translate && translate2 > swiper.maxTranslate()) {
if ((activeIndex || 0) !== slideIndex)
return false;
}
}
var direction;
if (slideIndex > activeIndex)
direction = "next";
else if (slideIndex < activeIndex)
direction = "prev";
else
direction = "reset";
if (rtl && -translate2 === swiper.translate || !rtl && translate2 === swiper.translate) {
swiper.updateActiveIndex(slideIndex);
if (params.autoHeight) {
swiper.updateAutoHeight();
}
swiper.updateSlidesClasses();
if (params.effect !== "slide") {
swiper.setTranslate(translate2);
}
if (direction !== "reset") {
swiper.transitionStart(runCallbacks, direction);
swiper.transitionEnd(runCallbacks, direction);
}
return false;
}
if (params.cssMode) {
var isH = swiper.isHorizontal();
var t = -translate2;
if (rtl) {
t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;
}
if (speed === 0) {
wrapperEl[isH ? "scrollLeft" : "scrollTop"] = t;
} else {
if (wrapperEl.scrollTo) {
var _wrapperEl$scrollTo;
wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? "left" : "top"] = t, _wrapperEl$scrollTo.behavior = "smooth", _wrapperEl$scrollTo));
} else {
wrapperEl[isH ? "scrollLeft" : "scrollTop"] = t;
}
}
return true;
}
if (speed === 0) {
swiper.setTransition(0);
swiper.setTranslate(translate2);
swiper.updateActiveIndex(slideIndex);
swiper.updateSlidesClasses();
swiper.emit("beforeTransitionStart", speed, internal);
swiper.transitionStart(runCallbacks, direction);
swiper.transitionEnd(runCallbacks, direction);
} else {
swiper.setTransition(speed);
swiper.setTranslate(translate2);
swiper.updateActiveIndex(slideIndex);
swiper.updateSlidesClasses();
swiper.emit("beforeTransitionStart", speed, internal);
swiper.transitionStart(runCallbacks, direction);
if (!swiper.animating) {
swiper.animating = true;
if (!swiper.onSlideToWrapperTransitionEnd) {
swiper.onSlideToWrapperTransitionEnd = function transitionEnd2(e) {
if (!swiper || swiper.destroyed)
return;
if (e.target !== this)
return;
swiper.$wrapperEl[0].removeEventListener("transitionend", swiper.onSlideToWrapperTransitionEnd);
swiper.$wrapperEl[0].removeEventListener("webkitTransitionEnd", swiper.onSlideToWrapperTransitionEnd);
swiper.onSlideToWrapperTransitionEnd = null;
delete swiper.onSlideToWrapperTransitionEnd;
swiper.transitionEnd(runCallbacks, direction);
};
}
swiper.$wrapperEl[0].addEventListener("transitionend", swiper.onSlideToWrapperTransitionEnd);
swiper.$wrapperEl[0].addEventListener("webkitTransitionEnd", swiper.onSlideToWrapperTransitionEnd);
}
}
return true;
}
function slideToLoop(index, speed, runCallbacks, internal) {
if (index === void 0) {
index = 0;
}
if (speed === void 0) {
speed = this.params.speed;
}
if (runCallbacks === void 0) {
runCallbacks = true;
}
var swiper = this;
var newIndex = index;
if (swiper.params.loop) {
newIndex += swiper.loopedSlides;
}
return swiper.slideTo(newIndex, speed, runCallbacks, internal);
}
function slideNext(speed, runCallbacks, internal) {
if (speed === void 0) {
speed = this.params.speed;
}
if (runCallbacks === void 0) {
runCallbacks = true;
}
var swiper = this;
var params = swiper.params, animating = swiper.animating;
var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;
if (params.loop) {
if (animating && params.loopPreventsSlide)
return false;
swiper.loopFix();
swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
}
return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
}
function slidePrev(speed, runCallbacks, internal) {
if (speed === void 0) {
speed = this.params.speed;
}
if (runCallbacks === void 0) {
runCallbacks = true;
}
var swiper = this;
var params = swiper.params, animating = swiper.animating, snapGrid = swiper.snapGrid, slidesGrid = swiper.slidesGrid, rtlTranslate = swiper.rtlTranslate;
if (params.loop) {
if (animating && params.loopPreventsSlide)
return false;
swiper.loopFix();
swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
}
var translate2 = rtlTranslate ? swiper.translate : -swiper.translate;
function normalize(val) {
if (val < 0)
return -Math.floor(Math.abs(val));
return Math.floor(val);
}
var normalizedTranslate = normalize(translate2);
var normalizedSnapGrid = snapGrid.map(function(val) {
return normalize(val);
});
snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];
var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
if (typeof prevSnap === "undefined" && params.cssMode) {
snapGrid.forEach(function(snap) {
if (!prevSnap && normalizedTranslate >= snap)
prevSnap = snap;
});
}
var prevIndex;
if (typeof prevSnap !== "undefined") {
prevIndex = slidesGrid.indexOf(prevSnap);
if (prevIndex < 0)
prevIndex = swiper.activeIndex - 1;
}
return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
}
function slideReset(speed, runCallbacks, internal) {
if (speed === void 0) {
speed = this.params.speed;
}
if (runCallbacks === void 0) {
runCallbacks = true;
}
var swiper = this;
return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
}
function slideToClosest(speed, runCallbacks, internal, threshold) {
if (speed === void 0) {
speed = this.params.speed;
}
if (runCallbacks === void 0) {
runCallbacks = true;
}
if (threshold === void 0) {
threshold = 0.5;
}
var swiper = this;
var index = swiper.activeIndex;
var skip = Math.min(swiper.params.slidesPerGroupSkip, index);
var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
var translate2 = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
if (translate2 >= swiper.snapGrid[snapIndex]) {
var currentSnap = swiper.snapGrid[snapIndex];
var nextSnap = swiper.snapGrid[snapIndex + 1];
if (translate2 - currentSnap > (nextSnap - currentSnap) * threshold) {
index += swiper.params.slidesPerGroup;
}
} else {
var prevSnap = swiper.snapGrid[snapIndex - 1];
var _currentSnap = swiper.snapGrid[snapIndex];
if (translate2 - prevSnap <= (_currentSnap - prevSnap) * threshold) {
index -= swiper.params.slidesPerGroup;
}
}
index = Math.max(index, 0);
index = Math.min(index, swiper.slidesGrid.length - 1);
return swiper.slideTo(index, speed, runCallbacks, internal);
}
function slideToClickedSlide() {
var swiper = this;
var params = swiper.params, $wrapperEl = swiper.$wrapperEl;
var slidesPerView = params.slidesPerView === "auto" ? swiper.slidesPerViewDynamic() : params.slidesPerView;
var slideToIndex = swiper.clickedIndex;
var realIndex;
if (params.loop) {
if (swiper.animating)
return;
realIndex = parseInt($(swiper.clickedSlide).attr("data-swiper-slide-index"), 10);
if (params.centeredSlides) {
if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {
swiper.loopFix();
slideToIndex = $wrapperEl.children("." + params.slideClass + '[data-swiper-slide-index="' + realIndex + '"]:not(.' + params.slideDuplicateClass + ")").eq(0).index();
nextTick(function() {
swiper.slideTo(slideToIndex);
});
} else {
swiper.slideTo(slideToIndex);
}
} else if (slideToIndex > swiper.slides.length - slidesPerView) {
swiper.loopFix();
slideToIndex = $wrapperEl.children("." + params.slideClass + '[data-swiper-slide-index="' + realIndex + '"]:not(.' + params.slideDuplicateClass + ")").eq(0).index();
nextTick(function() {
swiper.slideTo(slideToIndex);
});
} else {
swiper.slideTo(slideToIndex);
}
} else {
swiper.slideTo(slideToIndex);
}
}
var slide = {
slideTo,
slideToLoop,
slideNext,
slidePrev,
slideReset,
slideToClosest,
slideToClickedSlide
};
function loopCreate() {
var swiper = this;
var document = getDocument();
var params = swiper.params, $wrapperEl = swiper.$wrapperEl;
$wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass).remove();
var slides = $wrapperEl.children("." + params.slideClass);
if (params.loopFillGroupWithBlank) {
var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;
if (blankSlidesNum !== params.slidesPerGroup) {
for (var i = 0; i < blankSlidesNum; i += 1) {
var blankNode = $(document.createElement("div")).addClass(params.slideClass + " " + params.slideBlankClass);
$wrapperEl.append(blankNode);
}
slides = $wrapperEl.children("." + params.slideClass);
}
}
if (params.slidesPerView === "auto" && !params.loopedSlides)
params.loopedSlides = slides.length;
swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));
swiper.loopedSlides += params.loopAdditionalSlides;
if (swiper.loopedSlides > slides.length) {
swiper.loopedSlides = slides.length;
}
var prependSlides = [];
var appendSlides = [];
slides.each(function(el, index) {
var slide2 = $(el);
if (index < swiper.loopedSlides) {
appendSlides.push(el);
}
if (index < slides.length && index >= slides.length - swiper.loopedSlides) {
prependSlides.push(el);
}
slide2.attr("data-swiper-slide-index", index);
});
for (var _i = 0; _i < appendSlides.length; _i += 1) {
$wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));
}
for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {
$wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));
}
}
function loopFix() {
var swiper = this;
swiper.emit("beforeLoopFix");
var activeIndex = swiper.activeIndex, slides = swiper.slides, loopedSlides = swiper.loopedSlides, allowSlidePrev = swiper.allowSlidePrev, allowSlideNext = swiper.allowSlideNext, snapGrid = swiper.snapGrid, rtl = swiper.rtlTranslate;
var newIndex;
swiper.allowSlidePrev = true;
swiper.allowSlideNext = true;
var snapTranslate = -snapGrid[activeIndex];
var diff = snapTranslate - swiper.getTranslate();
if (activeIndex < loopedSlides) {
newIndex = slides.length - loopedSlides * 3 + activeIndex;
newIndex += loopedSlides;
var slideChanged = swiper.slideTo(newIndex, 0, false, true);
if (slideChanged && diff !== 0) {
swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
}
} else if (activeIndex >= slides.length - loopedSlides) {
newIndex = -slides.length + activeIndex + loopedSlides;
newIndex += loopedSlides;
var _slideChanged = swiper.slideTo(newIndex, 0, false, true);
if (_slideChanged && diff !== 0) {
swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
}
}
swiper.allowSlidePrev = allowSlidePrev;
swiper.allowSlideNext = allowSlideNext;
swiper.emit("loopFix");
}
function loopDestroy() {
var swiper = this;
var $wrapperEl = swiper.$wrapperEl, params = swiper.params, slides = swiper.slides;
$wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + ",." + params.slideClass + "." + params.slideBlankClass).remove();
slides.removeAttr("data-swiper-slide-index");
}
var loop = {
loopCreate,
loopFix,
loopDestroy
};
function setGrabCursor(moving) {
var swiper = this;
if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode)
return;
var el = swiper.el;
el.style.cursor = "move";
el.style.cursor = moving ? "-webkit-grabbing" : "-webkit-grab";
el.style.cursor = moving ? "-moz-grabbin" : "-moz-grab";
el.style.cursor = moving ? "grabbing" : "grab";
}
function unsetGrabCursor() {
var swiper = this;
if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
return;
}
swiper.el.style.cursor = "";
}
var grabCursor = {
setGrabCursor,
unsetGrabCursor
};
function appendSlide(slides) {
var swiper = this;
var $wrapperEl = swiper.$wrapperEl, params = swiper.params;
if (params.loop) {
swiper.loopDestroy();
}
if (typeof slides === "object" && "length" in slides) {
for (var i = 0; i < slides.length; i += 1) {
if (slides[i])
$wrapperEl.append(slides[i]);
}
} e