| 'use strict'; | 
|   | 
| exports.__esModule = true; | 
| exports.removeResizeListener = exports.addResizeListener = undefined; | 
|   | 
| var _resizeObserverPolyfill = require('resize-observer-polyfill'); | 
|   | 
| var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill); | 
|   | 
| var _throttleDebounce = require('throttle-debounce'); | 
|   | 
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | 
|   | 
| var isServer = typeof window === 'undefined'; | 
|   | 
| /* istanbul ignore next */ | 
| var resizeHandler = function resizeHandler(entries) { | 
|   for (var _iterator = entries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { | 
|     var _ref; | 
|   | 
|     if (_isArray) { | 
|       if (_i >= _iterator.length) break; | 
|       _ref = _iterator[_i++]; | 
|     } else { | 
|       _i = _iterator.next(); | 
|       if (_i.done) break; | 
|       _ref = _i.value; | 
|     } | 
|   | 
|     var entry = _ref; | 
|   | 
|     var listeners = entry.target.__resizeListeners__ || []; | 
|     if (listeners.length) { | 
|       listeners.forEach(function (fn) { | 
|         fn(); | 
|       }); | 
|     } | 
|   } | 
| }; | 
|   | 
| /* istanbul ignore next */ | 
| var addResizeListener = exports.addResizeListener = function addResizeListener(element, fn) { | 
|   if (isServer) return; | 
|   if (!element.__resizeListeners__) { | 
|     element.__resizeListeners__ = []; | 
|     element.__ro__ = new _resizeObserverPolyfill2.default((0, _throttleDebounce.debounce)(16, resizeHandler)); | 
|     element.__ro__.observe(element); | 
|   } | 
|   element.__resizeListeners__.push(fn); | 
| }; | 
|   | 
| /* istanbul ignore next */ | 
| var removeResizeListener = exports.removeResizeListener = function removeResizeListener(element, fn) { | 
|   if (!element || !element.__resizeListeners__) return; | 
|   element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1); | 
|   if (!element.__resizeListeners__.length) { | 
|     element.__ro__.disconnect(); | 
|   } | 
| }; |