UNPKG

1.76 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4exports.removeResizeListener = exports.addResizeListener = undefined;
5
6var _resizeObserverPolyfill = require('resize-observer-polyfill');
7
8var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);
9
10function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12var isServer = typeof window === 'undefined';
13
14/* istanbul ignore next */
15var resizeHandler = function resizeHandler(entries) {
16 for (var _iterator = entries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
17 var _ref;
18
19 if (_isArray) {
20 if (_i >= _iterator.length) break;
21 _ref = _iterator[_i++];
22 } else {
23 _i = _iterator.next();
24 if (_i.done) break;
25 _ref = _i.value;
26 }
27
28 var entry = _ref;
29
30 var listeners = entry.target.__resizeListeners__ || [];
31 if (listeners.length) {
32 listeners.forEach(function (fn) {
33 fn();
34 });
35 }
36 }
37};
38
39/* istanbul ignore next */
40var addResizeListener = exports.addResizeListener = function addResizeListener(element, fn) {
41 if (isServer) return;
42 if (!element.__resizeListeners__) {
43 element.__resizeListeners__ = [];
44 element.__ro__ = new _resizeObserverPolyfill2.default(resizeHandler);
45 element.__ro__.observe(element);
46 }
47 element.__resizeListeners__.push(fn);
48};
49
50/* istanbul ignore next */
51var removeResizeListener = exports.removeResizeListener = function removeResizeListener(element, fn) {
52 if (!element || !element.__resizeListeners__) return;
53 element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
54 if (!element.__resizeListeners__.length) {
55 element.__ro__.disconnect();
56 }
57};
\No newline at end of file