native-fn
Version:
2 lines (1 loc) • 1.54 kB
JavaScript
;var e=[],n={innerWidth:-1,innerHeight:-1,outerWidth:-1,outerHeight:-1,scale:1},t=null,i={get value(){return r()},onchange:function(n,i){void 0===i&&(i=!1);var u={fn:n,capture:!1,once:!1};"boolean"==typeof i&&(i={capture:i});void 0!==i.capture&&(u.capture=i.capture);void 0!==i.once&&(u.once=i.once);void 0!==i.signal&&(u.signal=i.signal);var s=l(u);-1===s?(e.push(u),1===e.length&&(h=u.capture,t=r(),"function"==typeof globalThis.addEventListener&&globalThis.addEventListener("resize",o,h))):e[s].once&&!u.once&&(e[s].once=!1);var h;var c=function(){void 0!==u.signal&&u.signal.removeEventListener("abort",c),a(u)};void 0!==u.signal&&(u.signal.aborted?a(u):u.signal.addEventListener("abort",c));return function(){a(u)}},Constants:{},Errors:{}};function r(){return void 0!==globalThis.innerWidth?{innerWidth:globalThis.innerWidth,innerHeight:globalThis.innerHeight,outerWidth:globalThis.outerWidth,outerHeight:globalThis.outerHeight,scale:globalThis.devicePixelRatio||1}:n}function o(){var n=r();null!==t&&n.innerWidth===t.innerWidth&&n.innerHeight===t.innerHeight&&n.outerWidth===t.outerWidth&&n.outerHeight===t.outerHeight&&n.scale===t.scale||(t=n,function(n){for(var t=0;t<e.length;t++){var i=e[t];i.fn(n),i.once&&a(i)}}(n))}function a(n){var i,r=l(n);-1!==r&&e.splice(r,1),0===e.length&&(i=n.capture,t=null,"function"==typeof globalThis.removeEventListener&&globalThis.removeEventListener("resize",o,i))}function l(n){for(var t=0;t<e.length;t++)if(e[t].fn===n.fn&&e[t].capture===n.capture)return t;return-1}module.exports=i;