UNPKG

1.87 kBJavaScriptView Raw
1(function (global, factory) {
2 if (typeof define === "function" && define.amd) {
3 define(["exports"], factory);
4 } else if (typeof exports !== "undefined") {
5 factory(exports);
6 } else {
7 var mod = {
8 exports: {}
9 };
10 factory(mod.exports);
11 global.resize = mod.exports;
12 }
13})(this, function (_exports) {
14 "use strict";
15
16 Object.defineProperty(_exports, "__esModule", {
17 value: true
18 });
19 _exports.default = void 0;
20 /**
21 * Copyright IBM Corp. 2016, 2018
22 *
23 * This source code is licensed under the Apache-2.0 license found in the
24 * LICENSE file in the root directory of this source tree.
25 */
26 // mdn resize function
27
28 var optimizedResize =
29 /* #__PURE__ */
30 function optimizedResize() {
31 var callbacks = [];
32 var running = false; // run the actual callbacks
33
34 function runCallbacks() {
35 callbacks.forEach(function (callback) {
36 callback();
37 });
38 running = false;
39 } // fired on resize event
40
41
42 function resize() {
43 if (!running) {
44 running = true;
45 window.requestAnimationFrame(runCallbacks);
46 }
47 } // adds callback to loop
48
49
50 function addCallback(callback) {
51 if (callback) {
52 var index = callbacks.indexOf(callback);
53
54 if (index < 0) {
55 callbacks.push(callback);
56 }
57 }
58 }
59
60 return {
61 // public method to add additional callback
62 add: function add(callback) {
63 if (!callbacks.length) {
64 window.addEventListener('resize', resize);
65 }
66
67 addCallback(callback);
68 return {
69 release: function release() {
70 var index = callbacks.indexOf(callback);
71
72 if (index >= 0) {
73 callbacks.splice(index, 1);
74 }
75 }
76 };
77 }
78 };
79 }();
80
81 var _default = optimizedResize;
82 _exports.default = _default;
83});
\No newline at end of file