UNPKG

iep-ui

Version:

An enterprise-class UI design language and Vue-based implementation

67 lines (57 loc) 2.04 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.removeResizeListener = exports.addResizeListener = undefined; var _resizeObserverPolyfill = require('resize-observer-polyfill'); var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var isServer = typeof window === 'undefined'; /* istanbul ignore next */ var resizeHandler = function resizeHandler(entries) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var entry = _step.value; var listeners = entry.target.__resizeListeners__ || []; if (listeners.length) { listeners.forEach(function (fn) { fn(); }); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator['return']) { _iterator['return'](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } }; /* istanbul ignore next */ var addResizeListener = exports.addResizeListener = function addResizeListener(element, fn) { if (isServer) return; if (!element.__resizeListeners__) { element.__resizeListeners__ = []; element.__ro__ = new _resizeObserverPolyfill2['default'](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(); } };