UNPKG

2.98 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.default = void 0;
5
6var _ssrWindow = require("ssr-window");
7
8var _utils = require("../../utils/utils");
9
10var supportsResizeObserver = function supportsResizeObserver() {
11 var window = (0, _ssrWindow.getWindow)();
12 return typeof window.ResizeObserver !== 'undefined';
13};
14
15var _default = {
16 name: 'resize',
17 create: function create() {
18 var swiper = this;
19 (0, _utils.extend)(swiper, {
20 resize: {
21 observer: null,
22 createObserver: function createObserver() {
23 if (!swiper || swiper.destroyed || !swiper.initialized) return;
24 swiper.resize.observer = new ResizeObserver(function (entries) {
25 var width = swiper.width,
26 height = swiper.height;
27 var newWidth = width;
28 var newHeight = height;
29 entries.forEach(function (_ref) {
30 var contentBoxSize = _ref.contentBoxSize,
31 contentRect = _ref.contentRect,
32 target = _ref.target;
33 if (target && target !== swiper.el) return;
34 newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
35 newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
36 });
37
38 if (newWidth !== width || newHeight !== height) {
39 swiper.resize.resizeHandler();
40 }
41 });
42 swiper.resize.observer.observe(swiper.el);
43 },
44 removeObserver: function removeObserver() {
45 if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {
46 swiper.resize.observer.unobserve(swiper.el);
47 swiper.resize.observer = null;
48 }
49 },
50 resizeHandler: function resizeHandler() {
51 if (!swiper || swiper.destroyed || !swiper.initialized) return;
52 swiper.emit('beforeResize');
53 swiper.emit('resize');
54 },
55 orientationChangeHandler: function orientationChangeHandler() {
56 if (!swiper || swiper.destroyed || !swiper.initialized) return;
57 swiper.emit('orientationchange');
58 }
59 }
60 });
61 },
62 on: {
63 init: function init(swiper) {
64 var window = (0, _ssrWindow.getWindow)();
65
66 if (swiper.params.resizeObserver && supportsResizeObserver()) {
67 swiper.resize.createObserver();
68 return;
69 } // Emit resize
70
71
72 window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange
73
74 window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);
75 },
76 destroy: function destroy(swiper) {
77 var window = (0, _ssrWindow.getWindow)();
78 swiper.resize.removeObserver();
79 window.removeEventListener('resize', swiper.resize.resizeHandler);
80 window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);
81 }
82 }
83};
84exports.default = _default;
\No newline at end of file