infinity-forge
Version:
94 lines • 4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = setBreakpoint;
var utils_1 = require("../../shared/utils.js");
var isGridEnabled = function (swiper, params) {
return swiper.grid && params.grid && params.grid.rows > 1;
};
function setBreakpoint() {
var swiper = this;
var realIndex = swiper.realIndex, initialized = swiper.initialized, params = swiper.params, el = swiper.el;
var breakpoints = params.breakpoints;
if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0))
return;
// Get breakpoint for window width and update parameters
var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);
if (!breakpoint || swiper.currentBreakpoint === breakpoint)
return;
var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
var breakpointParams = breakpointOnlyParams || swiper.originalParams;
var wasMultiRow = isGridEnabled(swiper, params);
var isMultiRow = isGridEnabled(swiper, breakpointParams);
var wasGrabCursor = swiper.params.grabCursor;
var isGrabCursor = breakpointParams.grabCursor;
var wasEnabled = params.enabled;
if (wasMultiRow && !isMultiRow) {
el.classList.remove("".concat(params.containerModifierClass, "grid"), "".concat(params.containerModifierClass, "grid-column"));
swiper.emitContainerClasses();
}
else if (!wasMultiRow && isMultiRow) {
el.classList.add("".concat(params.containerModifierClass, "grid"));
if ((breakpointParams.grid.fill && breakpointParams.grid.fill === 'column') ||
(!breakpointParams.grid.fill && params.grid.fill === 'column')) {
el.classList.add("".concat(params.containerModifierClass, "grid-column"));
}
swiper.emitContainerClasses();
}
if (wasGrabCursor && !isGrabCursor) {
swiper.unsetGrabCursor();
}
else if (!wasGrabCursor && isGrabCursor) {
swiper.setGrabCursor();
}
// Toggle navigation, pagination, scrollbar
['navigation', 'pagination', 'scrollbar'].forEach(function (prop) {
if (typeof breakpointParams[prop] === 'undefined')
return;
var wasModuleEnabled = params[prop] && params[prop].enabled;
var isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
if (wasModuleEnabled && !isModuleEnabled) {
swiper[prop].disable();
}
if (!wasModuleEnabled && isModuleEnabled) {
swiper[prop].enable();
}
});
var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
var wasLoop = params.loop;
if (directionChanged && initialized) {
swiper.changeDirection();
}
(0, utils_1.extend)(swiper.params, breakpointParams);
var isEnabled = swiper.params.enabled;
var hasLoop = swiper.params.loop;
Object.assign(swiper, {
allowTouchMove: swiper.params.allowTouchMove,
allowSlideNext: swiper.params.allowSlideNext,
allowSlidePrev: swiper.params.allowSlidePrev,
});
if (wasEnabled && !isEnabled) {
swiper.disable();
}
else if (!wasEnabled && isEnabled) {
swiper.enable();
}
swiper.currentBreakpoint = breakpoint;
swiper.emit('_beforeBreakpoint', breakpointParams);
if (initialized) {
if (needsReLoop) {
swiper.loopDestroy();
swiper.loopCreate(realIndex);
swiper.updateSlides();
}
else if (!wasLoop && hasLoop) {
swiper.loopCreate(realIndex);
swiper.updateSlides();
}
else if (wasLoop && !hasLoop) {
swiper.loopDestroy();
}
}
swiper.emit('breakpoint', breakpointParams);
}
//# sourceMappingURL=setBreakpoint.js.map