/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory() : typeof define === 'function' && define.amd ? define(factory) : (factory()); }(this, (function () { 'use strict'; var __values = (undefined && undefined.__values) || function (o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; }; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ Zone.__load_patch('ResizeObserver', function (global, Zone, api) { var ResizeObserver = global['ResizeObserver']; if (!ResizeObserver) { return; } var resizeObserverSymbol = api.symbol('ResizeObserver'); api.patchMethod(global, 'ResizeObserver', function (delegate) { return function (self, args) { var callback = args.length > 0 ? args[0] : null; if (callback) { args[0] = function (entries, observer) { var _this = this; var e_1, _a; var zones = {}; var currZone = Zone.current; try { for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) { var entry = entries_1_1.value; var zone = entry.target[resizeObserverSymbol]; if (!zone) { zone = currZone; } var zoneEntriesInfo = zones[zone.name]; if (!zoneEntriesInfo) { zones[zone.name] = zoneEntriesInfo = { entries: [], zone: zone }; } zoneEntriesInfo.entries.push(entry); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1); } finally { if (e_1) throw e_1.error; } } Object.keys(zones).forEach(function (zoneName) { var zoneEntriesInfo = zones[zoneName]; if (zoneEntriesInfo.zone !== Zone.current) { zoneEntriesInfo.zone.run(callback, _this, [zoneEntriesInfo.entries, observer], 'ResizeObserver'); } else { callback.call(_this, zoneEntriesInfo.entries, observer); } }); }; } return args.length > 0 ? new ResizeObserver(args[0]) : new ResizeObserver(); }; }); api.patchMethod(ResizeObserver.prototype, 'observe', function (delegate) { return function (self, args) { var target = args.length > 0 ? args[0] : null; if (!target) { return delegate.apply(self, args); } var targets = self[resizeObserverSymbol]; if (!targets) { targets = self[resizeObserverSymbol] = []; } targets.push(target); target[resizeObserverSymbol] = Zone.current; return delegate.apply(self, args); }; }); api.patchMethod(ResizeObserver.prototype, 'unobserve', function (delegate) { return function (self, args) { var target = args.length > 0 ? args[0] : null; if (!target) { return delegate.apply(self, args); } var targets = self[resizeObserverSymbol]; if (targets) { for (var i = 0; i < targets.length; i++) { if (targets[i] === target) { targets.splice(i, 1); break; } } } target[resizeObserverSymbol] = undefined; return delegate.apply(self, args); }; }); api.patchMethod(ResizeObserver.prototype, 'disconnect', function (delegate) { return function (self, args) { var targets = self[resizeObserverSymbol]; if (targets) { targets.forEach(function (target) { target[resizeObserverSymbol] = undefined; }); self[resizeObserverSymbol] = undefined; } return delegate.apply(self, args); }; }); }); })));